Merge branch 'master' into staging
This commit is contained in:
		
						commit
						8e7f97b9ff
					
				
					 49 changed files with 4590 additions and 2725 deletions
				
			
		| 
						 | 
					@ -25510,7 +25510,7 @@ evaluates to.  As an example, @var{file} might contain a definition like this:
 | 
				
			||||||
            %base-services))))
 | 
					            %base-services))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(list (machine
 | 
					(list (machine
 | 
				
			||||||
       (system %system)
 | 
					       (operating-system %system)
 | 
				
			||||||
       (environment managed-host-environment-type)
 | 
					       (environment managed-host-environment-type)
 | 
				
			||||||
       (configuration (machine-ssh-configuration
 | 
					       (configuration (machine-ssh-configuration
 | 
				
			||||||
                       (host-name "localhost")
 | 
					                       (host-name "localhost")
 | 
				
			||||||
| 
						 | 
					@ -25530,12 +25530,28 @@ complex deployment may involve, for example, starting virtual machines through
 | 
				
			||||||
a Virtual Private Server (VPS) provider.  In such a case, a different
 | 
					a Virtual Private Server (VPS) provider.  In such a case, a different
 | 
				
			||||||
@var{environment} type would be used.
 | 
					@var{environment} type would be used.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Do note that you first need to generate a key pair on the coordinator machine
 | 
				
			||||||
 | 
					to allow the daemon to export signed archives of files from the store
 | 
				
			||||||
 | 
					(@pxref{Invoking guix archive}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@example
 | 
				
			||||||
 | 
					# guix archive --generate-key
 | 
				
			||||||
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@noindent
 | 
				
			||||||
 | 
					Each target machine must authorize the key of the master machine so that it
 | 
				
			||||||
 | 
					accepts store items it receives from the coordinator:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@example
 | 
				
			||||||
 | 
					# guix archive --authorize < coordinator-public-key.txt
 | 
				
			||||||
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@deftp {Data Type} machine
 | 
					@deftp {Data Type} machine
 | 
				
			||||||
This is the data type representing a single machine in a heterogeneous Guix
 | 
					This is the data type representing a single machine in a heterogeneous Guix
 | 
				
			||||||
deployment.
 | 
					deployment.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@table @asis
 | 
					@table @asis
 | 
				
			||||||
@item @code{system}
 | 
					@item @code{operating-system}
 | 
				
			||||||
The object of the operating system configuration to deploy.
 | 
					The object of the operating system configuration to deploy.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{environment}
 | 
					@item @code{environment}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -772,6 +772,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/elfutils-tests-ptrace.patch		\
 | 
					  %D%/packages/patches/elfutils-tests-ptrace.patch		\
 | 
				
			||||||
  %D%/packages/patches/elixir-path-length.patch			\
 | 
					  %D%/packages/patches/elixir-path-length.patch			\
 | 
				
			||||||
  %D%/packages/patches/einstein-build.patch			\
 | 
					  %D%/packages/patches/einstein-build.patch			\
 | 
				
			||||||
 | 
					  %D%/packages/patches/emacs-dired-toggle-sudo-emacs-26.patch   \
 | 
				
			||||||
  %D%/packages/patches/emacs-exec-path.patch			\
 | 
					  %D%/packages/patches/emacs-exec-path.patch			\
 | 
				
			||||||
  %D%/packages/patches/emacs-fix-scheme-indent-function.patch	\
 | 
					  %D%/packages/patches/emacs-fix-scheme-indent-function.patch	\
 | 
				
			||||||
  %D%/packages/patches/emacs-json-reformat-fix-tests.patch	\
 | 
					  %D%/packages/patches/emacs-json-reformat-fix-tests.patch	\
 | 
				
			||||||
| 
						 | 
					@ -1022,7 +1023,8 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/libotr-test-auth-fix.patch		\
 | 
					  %D%/packages/patches/libotr-test-auth-fix.patch		\
 | 
				
			||||||
  %D%/packages/patches/libmad-armv7-thumb-pt1.patch		\
 | 
					  %D%/packages/patches/libmad-armv7-thumb-pt1.patch		\
 | 
				
			||||||
  %D%/packages/patches/libmad-armv7-thumb-pt2.patch		\
 | 
					  %D%/packages/patches/libmad-armv7-thumb-pt2.patch		\
 | 
				
			||||||
  %D%/packages/patches/libmad-frame-length.patch		\
 | 
					  %D%/packages/patches/libmad-length-check.patch		\
 | 
				
			||||||
 | 
					  %D%/packages/patches/libmad-md_size.patch			\
 | 
				
			||||||
  %D%/packages/patches/libmad-mips-newgcc.patch			\
 | 
					  %D%/packages/patches/libmad-mips-newgcc.patch			\
 | 
				
			||||||
  %D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch		\
 | 
					  %D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch		\
 | 
				
			||||||
  %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch	\
 | 
					  %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch	\
 | 
				
			||||||
| 
						 | 
					@ -1043,7 +1045,6 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/libutils-add-includes.patch		\
 | 
					  %D%/packages/patches/libutils-add-includes.patch		\
 | 
				
			||||||
  %D%/packages/patches/libutils-remove-damaging-includes.patch	\
 | 
					  %D%/packages/patches/libutils-remove-damaging-includes.patch	\
 | 
				
			||||||
  %D%/packages/patches/libvdpau-va-gl-unbundle.patch		\
 | 
					  %D%/packages/patches/libvdpau-va-gl-unbundle.patch		\
 | 
				
			||||||
  %D%/packages/patches/libvirt-remove-ATTRIBUTE_UNUSED.patch	\
 | 
					 | 
				
			||||||
  %D%/packages/patches/libvpx-CVE-2016-2818.patch		\
 | 
					  %D%/packages/patches/libvpx-CVE-2016-2818.patch		\
 | 
				
			||||||
  %D%/packages/patches/libvpx-use-after-free-in-postproc.patch	\
 | 
					  %D%/packages/patches/libvpx-use-after-free-in-postproc.patch	\
 | 
				
			||||||
  %D%/packages/patches/libxslt-generated-ids.patch		\
 | 
					  %D%/packages/patches/libxslt-generated-ids.patch		\
 | 
				
			||||||
| 
						 | 
					@ -1305,6 +1306,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/soundconverter-remove-gconf-dependency.patch	\
 | 
					  %D%/packages/patches/soundconverter-remove-gconf-dependency.patch	\
 | 
				
			||||||
  %D%/packages/patches/sssd-curl-compat.patch			\
 | 
					  %D%/packages/patches/sssd-curl-compat.patch			\
 | 
				
			||||||
  %D%/packages/patches/steghide-fixes.patch			\
 | 
					  %D%/packages/patches/steghide-fixes.patch			\
 | 
				
			||||||
 | 
					  %D%/packages/patches/strace-ipc-tests.patch			\
 | 
				
			||||||
  %D%/packages/patches/streamlink-update-test.patch		\
 | 
					  %D%/packages/patches/streamlink-update-test.patch		\
 | 
				
			||||||
  %D%/packages/patches/stumpwm-fix-broken-read-one-line.patch	\
 | 
					  %D%/packages/patches/stumpwm-fix-broken-read-one-line.patch	\
 | 
				
			||||||
  %D%/packages/patches/superlu-dist-awpm-grid.patch		\
 | 
					  %D%/packages/patches/superlu-dist-awpm-grid.patch		\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -34,7 +34,7 @@
 | 
				
			||||||
            machine?
 | 
					            machine?
 | 
				
			||||||
            this-machine
 | 
					            this-machine
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            machine-system
 | 
					            machine-operating-system
 | 
				
			||||||
            machine-environment
 | 
					            machine-environment
 | 
				
			||||||
            machine-configuration
 | 
					            machine-configuration
 | 
				
			||||||
            machine-display-name
 | 
					            machine-display-name
 | 
				
			||||||
| 
						 | 
					@ -85,14 +85,14 @@
 | 
				
			||||||
  make-machine
 | 
					  make-machine
 | 
				
			||||||
  machine?
 | 
					  machine?
 | 
				
			||||||
  this-machine
 | 
					  this-machine
 | 
				
			||||||
  (system        machine-system)       ; <operating-system>
 | 
					  (operating-system machine-operating-system) ; <operating-system>
 | 
				
			||||||
  (environment      machine-environment)      ; symbol
 | 
					  (environment      machine-environment)      ; symbol
 | 
				
			||||||
  (configuration    machine-configuration     ; configuration object
 | 
					  (configuration    machine-configuration     ; configuration object
 | 
				
			||||||
                    (default #f)))            ; specific to environment
 | 
					                    (default #f)))            ; specific to environment
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (machine-display-name machine)
 | 
					(define (machine-display-name machine)
 | 
				
			||||||
  "Return the host-name identifying MACHINE."
 | 
					  "Return the host-name identifying MACHINE."
 | 
				
			||||||
  (operating-system-host-name (machine-system machine)))
 | 
					  (operating-system-host-name (machine-operating-system machine)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (machine-remote-eval machine exp)
 | 
					(define (machine-remote-eval machine exp)
 | 
				
			||||||
  "Evaluate EXP, a gexp, on MACHINE. Ensure that all the elements EXP refers to
 | 
					  "Evaluate EXP, a gexp, on MACHINE. Ensure that all the elements EXP refers to
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -20,6 +20,9 @@
 | 
				
			||||||
  #:use-module (gnu machine)
 | 
					  #:use-module (gnu machine)
 | 
				
			||||||
  #:autoload   (gnu packages gnupg) (guile-gcrypt)
 | 
					  #:autoload   (gnu packages gnupg) (guile-gcrypt)
 | 
				
			||||||
  #:use-module (gnu system)
 | 
					  #:use-module (gnu system)
 | 
				
			||||||
 | 
					  #:use-module (gnu system file-systems)
 | 
				
			||||||
 | 
					  #:use-module (gnu system uuid)
 | 
				
			||||||
 | 
					  #:use-module (guix diagnostics)
 | 
				
			||||||
  #:use-module (guix gexp)
 | 
					  #:use-module (guix gexp)
 | 
				
			||||||
  #:use-module (guix i18n)
 | 
					  #:use-module (guix i18n)
 | 
				
			||||||
  #:use-module (guix modules)
 | 
					  #:use-module (guix modules)
 | 
				
			||||||
| 
						 | 
					@ -29,6 +32,7 @@
 | 
				
			||||||
  #:use-module (guix scripts system reconfigure)
 | 
					  #:use-module (guix scripts system reconfigure)
 | 
				
			||||||
  #:use-module (guix ssh)
 | 
					  #:use-module (guix ssh)
 | 
				
			||||||
  #:use-module (guix store)
 | 
					  #:use-module (guix store)
 | 
				
			||||||
 | 
					  #:use-module (guix utils)
 | 
				
			||||||
  #:use-module (ice-9 match)
 | 
					  #:use-module (ice-9 match)
 | 
				
			||||||
  #:use-module (srfi srfi-19)
 | 
					  #:use-module (srfi srfi-19)
 | 
				
			||||||
  #:use-module (srfi srfi-26)
 | 
					  #:use-module (srfi srfi-26)
 | 
				
			||||||
| 
						 | 
					@ -40,6 +44,7 @@
 | 
				
			||||||
            machine-ssh-configuration
 | 
					            machine-ssh-configuration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            machine-ssh-configuration-host-name
 | 
					            machine-ssh-configuration-host-name
 | 
				
			||||||
 | 
					            machine-ssh-configuration-build-locally?
 | 
				
			||||||
            machine-ssh-configuration-port
 | 
					            machine-ssh-configuration-port
 | 
				
			||||||
            machine-ssh-configuration-user
 | 
					            machine-ssh-configuration-user
 | 
				
			||||||
            machine-ssh-configuration-session))
 | 
					            machine-ssh-configuration-session))
 | 
				
			||||||
| 
						 | 
					@ -63,6 +68,8 @@
 | 
				
			||||||
  machine-ssh-configuration?
 | 
					  machine-ssh-configuration?
 | 
				
			||||||
  this-machine-ssh-configuration
 | 
					  this-machine-ssh-configuration
 | 
				
			||||||
  (host-name      machine-ssh-configuration-host-name) ; string
 | 
					  (host-name      machine-ssh-configuration-host-name) ; string
 | 
				
			||||||
 | 
					  (build-locally? machine-ssh-configuration-build-locally?
 | 
				
			||||||
 | 
					                  (default #t))
 | 
				
			||||||
  (port           machine-ssh-configuration-port       ; integer
 | 
					  (port           machine-ssh-configuration-port       ; integer
 | 
				
			||||||
                  (default 22))
 | 
					                  (default 22))
 | 
				
			||||||
  (user           machine-ssh-configuration-user       ; string
 | 
					  (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
 | 
					  "Internal implementation of 'machine-remote-eval' for MACHINE instances with
 | 
				
			||||||
an environment type of 'managed-host."
 | 
					an environment type of 'managed-host."
 | 
				
			||||||
  (maybe-raise-unsupported-configuration-error machine)
 | 
					  (maybe-raise-unsupported-configuration-error machine)
 | 
				
			||||||
  (remote-eval exp (machine-ssh-session machine)))
 | 
					  (remote-eval exp (machine-ssh-session machine)
 | 
				
			||||||
 | 
					               #:build-locally?
 | 
				
			||||||
 | 
					               (machine-ssh-configuration-build-locally?
 | 
				
			||||||
 | 
					                (machine-configuration machine))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; Safety checks.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (machine-check-file-system-availability machine)
 | 
				
			||||||
 | 
					  "Raise a '&message' error condition if any of the file-systems specified in
 | 
				
			||||||
 | 
					MACHINE's 'system' declaration do not exist on the machine."
 | 
				
			||||||
 | 
					  (define file-systems
 | 
				
			||||||
 | 
					    (filter (lambda (fs)
 | 
				
			||||||
 | 
					              (and (file-system-mount? fs)
 | 
				
			||||||
 | 
					                   (not (member (file-system-type fs)
 | 
				
			||||||
 | 
					                                %pseudo-file-system-types))
 | 
				
			||||||
 | 
					                   (not (memq 'bind-mount (file-system-flags fs)))))
 | 
				
			||||||
 | 
					            (operating-system-file-systems (machine-operating-system machine))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (define (check-literal-file-system fs)
 | 
				
			||||||
 | 
					    (define remote-exp
 | 
				
			||||||
 | 
					      #~(catch 'system-error
 | 
				
			||||||
 | 
					          (lambda ()
 | 
				
			||||||
 | 
					            (stat #$(file-system-device fs))
 | 
				
			||||||
 | 
					            #t)
 | 
				
			||||||
 | 
					          (lambda args
 | 
				
			||||||
 | 
					            (system-error-errno args))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    (mlet %store-monad ((errno (machine-remote-eval machine remote-exp)))
 | 
				
			||||||
 | 
					      (when (number? errno)
 | 
				
			||||||
 | 
					        (raise (condition
 | 
				
			||||||
 | 
					                (&message
 | 
				
			||||||
 | 
					                 (message (format #f (G_ "device '~a' not found: ~a")
 | 
				
			||||||
 | 
					                                  (file-system-device fs)
 | 
				
			||||||
 | 
					                                  (strerror errno)))))))
 | 
				
			||||||
 | 
					      (return #t)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (define (check-labeled-file-system fs)
 | 
				
			||||||
 | 
					    (define remote-exp
 | 
				
			||||||
 | 
					      (with-imported-modules '((gnu build file-systems))
 | 
				
			||||||
 | 
					        #~(begin
 | 
				
			||||||
 | 
					            (use-modules (gnu build file-systems))
 | 
				
			||||||
 | 
					            (find-partition-by-label #$(file-system-label->string
 | 
				
			||||||
 | 
					                                        (file-system-device fs))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    (mlet %store-monad ((result (machine-remote-eval machine remote-exp)))
 | 
				
			||||||
 | 
					      (unless result
 | 
				
			||||||
 | 
					        (raise (condition
 | 
				
			||||||
 | 
					                (&message
 | 
				
			||||||
 | 
					                 (message (format #f (G_ "no file system with label '~a'")
 | 
				
			||||||
 | 
					                                  (file-system-label->string
 | 
				
			||||||
 | 
					                                   (file-system-device fs))))))))
 | 
				
			||||||
 | 
					      (return #t)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (define (check-uuid-file-system fs)
 | 
				
			||||||
 | 
					    (define remote-exp
 | 
				
			||||||
 | 
					      (with-imported-modules (source-module-closure
 | 
				
			||||||
 | 
					                              '((gnu build file-systems)
 | 
				
			||||||
 | 
					                                (gnu system uuid)))
 | 
				
			||||||
 | 
					        #~(begin
 | 
				
			||||||
 | 
					            (use-modules (gnu build file-systems)
 | 
				
			||||||
 | 
					                         (gnu system uuid))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            (define uuid
 | 
				
			||||||
 | 
					              (string->uuid #$(uuid->string (file-system-device fs))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            (find-partition-by-uuid uuid))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    (mlet %store-monad ((result (machine-remote-eval machine remote-exp)))
 | 
				
			||||||
 | 
					      (unless result
 | 
				
			||||||
 | 
					        (raise (condition
 | 
				
			||||||
 | 
					                (&message
 | 
				
			||||||
 | 
					                 (message (format #f (G_ "no file system with UUID '~a'")
 | 
				
			||||||
 | 
					                                  (uuid->string (file-system-device fs))))))))
 | 
				
			||||||
 | 
					      (return #t)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (mbegin %store-monad
 | 
				
			||||||
 | 
					    (mapm %store-monad check-literal-file-system
 | 
				
			||||||
 | 
					          (filter (lambda (fs)
 | 
				
			||||||
 | 
					                    (string? (file-system-device fs)))
 | 
				
			||||||
 | 
					                  file-systems))
 | 
				
			||||||
 | 
					    (mapm %store-monad check-labeled-file-system
 | 
				
			||||||
 | 
					          (filter (lambda (fs)
 | 
				
			||||||
 | 
					                    (file-system-label? (file-system-device fs)))
 | 
				
			||||||
 | 
					                  file-systems))
 | 
				
			||||||
 | 
					    (mapm %store-monad check-uuid-file-system
 | 
				
			||||||
 | 
					          (filter (lambda (fs)
 | 
				
			||||||
 | 
					              (uuid? (file-system-device fs)))
 | 
				
			||||||
 | 
					                  file-systems))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (machine-check-initrd-modules machine)
 | 
				
			||||||
 | 
					  "Raise a '&message' error condition if any of the modules needed by
 | 
				
			||||||
 | 
					'needed-for-boot' file systems in MACHINE are not available in the initrd."
 | 
				
			||||||
 | 
					  (define file-systems
 | 
				
			||||||
 | 
					    (filter file-system-needed-for-boot?
 | 
				
			||||||
 | 
					            (operating-system-file-systems (machine-operating-system machine))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (define (missing-modules fs)
 | 
				
			||||||
 | 
					    (define remote-exp
 | 
				
			||||||
 | 
					      (let ((device (file-system-device fs)))
 | 
				
			||||||
 | 
					        (with-imported-modules (source-module-closure
 | 
				
			||||||
 | 
					                                '((gnu build file-systems)
 | 
				
			||||||
 | 
					                                  (gnu build linux-modules)
 | 
				
			||||||
 | 
					                                  (gnu system uuid)))
 | 
				
			||||||
 | 
					          #~(begin
 | 
				
			||||||
 | 
					              (use-modules (gnu build file-systems)
 | 
				
			||||||
 | 
					                           (gnu build linux-modules)
 | 
				
			||||||
 | 
					                           (gnu system uuid))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              (define dev
 | 
				
			||||||
 | 
					                #$(cond ((string? device) device)
 | 
				
			||||||
 | 
					                        ((uuid? device) #~(find-partition-by-uuid
 | 
				
			||||||
 | 
					                                           (string->uuid
 | 
				
			||||||
 | 
					                                            #$(uuid->string device))))
 | 
				
			||||||
 | 
					                        ((file-system-label? device)
 | 
				
			||||||
 | 
					                         #~(find-partition-by-label
 | 
				
			||||||
 | 
					                            (file-system-label->string #$device)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              (missing-modules dev '#$(operating-system-initrd-modules
 | 
				
			||||||
 | 
					                                       (machine-operating-system machine)))))))
 | 
				
			||||||
 | 
					    (mlet %store-monad ((missing (machine-remote-eval machine remote-exp)))
 | 
				
			||||||
 | 
					      (return (list fs missing))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (mlet %store-monad ((device (mapm %store-monad missing-modules file-systems)))
 | 
				
			||||||
 | 
					    (for-each (match-lambda
 | 
				
			||||||
 | 
					                ((fs missing)
 | 
				
			||||||
 | 
					                 (unless (null? missing)
 | 
				
			||||||
 | 
					                   (raise (condition
 | 
				
			||||||
 | 
					                           (&message
 | 
				
			||||||
 | 
					                            (message (format #f (G_ "~a missing modules ~{ ~a~}~%")
 | 
				
			||||||
 | 
					                                             (file-system-device fs)
 | 
				
			||||||
 | 
					                                             missing))))))))
 | 
				
			||||||
 | 
					              device)
 | 
				
			||||||
 | 
					    (return #t)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (check-deployment-sanity machine)
 | 
				
			||||||
 | 
					  "Raise a '&message' error condition if it is clear that deploying MACHINE's
 | 
				
			||||||
 | 
					'system' declaration would fail."
 | 
				
			||||||
 | 
					  (mbegin %store-monad
 | 
				
			||||||
 | 
					    (machine-check-file-system-availability machine)
 | 
				
			||||||
 | 
					    (machine-check-initrd-modules machine)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -165,8 +314,9 @@ of MACHINE's system profile, ordered from most recent to oldest."
 | 
				
			||||||
  "Internal implementation of 'deploy-machine' for MACHINE instances with an
 | 
					  "Internal implementation of 'deploy-machine' for MACHINE instances with an
 | 
				
			||||||
environment type of 'managed-host."
 | 
					environment type of 'managed-host."
 | 
				
			||||||
  (maybe-raise-unsupported-configuration-error machine)
 | 
					  (maybe-raise-unsupported-configuration-error machine)
 | 
				
			||||||
  (mlet %store-monad ((boot-parameters (machine-boot-parameters machine)))
 | 
					  (mlet %store-monad ((_ (check-deployment-sanity machine))
 | 
				
			||||||
    (let* ((os (machine-system machine))
 | 
					                      (boot-parameters (machine-boot-parameters machine)))
 | 
				
			||||||
 | 
					    (let* ((os (machine-operating-system machine))
 | 
				
			||||||
           (eval (cut machine-remote-eval machine <>))
 | 
					           (eval (cut machine-remote-eval machine <>))
 | 
				
			||||||
           (menu-entries (map boot-parameters->menu-entry boot-parameters))
 | 
					           (menu-entries (map boot-parameters->menu-entry boot-parameters))
 | 
				
			||||||
           (bootloader-configuration (operating-system-bootloader os))
 | 
					           (bootloader-configuration (operating-system-bootloader os))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1181,7 +1181,7 @@ commands and their arguments.")
 | 
				
			||||||
(define-public wpa-supplicant-minimal
 | 
					(define-public wpa-supplicant-minimal
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "wpa-supplicant-minimal")
 | 
					    (name "wpa-supplicant-minimal")
 | 
				
			||||||
    (version "2.8")
 | 
					    (version "2.9")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append
 | 
					              (uri (string-append
 | 
				
			||||||
| 
						 | 
					@ -1189,7 +1189,7 @@ commands and their arguments.")
 | 
				
			||||||
                    version ".tar.gz"))
 | 
					                    version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "15ixzm347n8w6gdvi3j3yks3i15qmp6by9ayvswm34d929m372d6"))
 | 
					                "05qzak1mssnxcgdrafifxh9w86a4ha69qabkg4bsigk499xyxggw"))
 | 
				
			||||||
              (modules '((guix build utils)))
 | 
					              (modules '((guix build utils)))
 | 
				
			||||||
              (snippet
 | 
					              (snippet
 | 
				
			||||||
               '(begin
 | 
					               '(begin
 | 
				
			||||||
| 
						 | 
					@ -2606,7 +2606,7 @@ buffers.")
 | 
				
			||||||
     `(#:tests? #f              ; many of the tests try to load kernel modules
 | 
					     `(#:tests? #f              ; many of the tests try to load kernel modules
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-after 'unpack 'autogen
 | 
					         (replace 'bootstrap
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
             ;; Don't run configure in this phase.
 | 
					             ;; Don't run configure in this phase.
 | 
				
			||||||
             (setenv "NOCONFIGURE" "1")
 | 
					             (setenv "NOCONFIGURE" "1")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -236,8 +236,7 @@ the real span of the lattice.")
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("texlive" ,(texlive-union
 | 
					     `(("texlive" ,(texlive-union
 | 
				
			||||||
                    (list texlive-fonts-amsfonts
 | 
					                    (list texlive-amsfonts)))))
 | 
				
			||||||
                          texlive-latex-amsfonts)))))
 | 
					 | 
				
			||||||
    (inputs `(("gmp" ,gmp)
 | 
					    (inputs `(("gmp" ,gmp)
 | 
				
			||||||
              ("libx11" ,libx11)
 | 
					              ("libx11" ,libx11)
 | 
				
			||||||
              ("perl" ,perl)
 | 
					              ("perl" ,perl)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3700,7 +3700,7 @@ library.")
 | 
				
			||||||
(define-public faudio
 | 
					(define-public faudio
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "faudio")
 | 
					    (name "faudio")
 | 
				
			||||||
    (version "19.07")
 | 
					    (version "19.08")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -3709,7 +3709,7 @@ library.")
 | 
				
			||||||
             (commit version)))
 | 
					             (commit version)))
 | 
				
			||||||
       (file-name (string-append name "-" version "-checkout"))
 | 
					       (file-name (string-append name "-" version "-checkout"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1wf6skc5agaikc9qgwk8bx56sad31fafs53lqqn4jmx8i76pl0lw"))))
 | 
					        (base32 "1v13kfhyr46241vb6a4dcb4gw5f149525sprwa9cj4rv6wlcqgm5"))))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:tests? #f                      ; No tests.
 | 
					     '(#:tests? #f                      ; No tests.
 | 
				
			||||||
       #:configure-flags '("-DFFMPEG=ON")))
 | 
					       #:configure-flags '("-DFFMPEG=ON")))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1212,14 +1212,14 @@ determining dependencies between variables, code improvement suggestions.")
 | 
				
			||||||
(define-public r-chippeakanno
 | 
					(define-public r-chippeakanno
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-chippeakanno")
 | 
					    (name "r-chippeakanno")
 | 
				
			||||||
    (version "3.18.1")
 | 
					    (version "3.18.2")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (bioconductor-uri "ChIPpeakAnno" version))
 | 
					       (uri (bioconductor-uri "ChIPpeakAnno" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "1mwi5s600c3jxy8f1azfrndc3g06qvhbmrp9wqac9nwjbfx1kfji"))))
 | 
					         "0wzwdxvvr7wknz5jnan0wsp81c1gv4d2qx0mrb1yybqf4z068779"))))
 | 
				
			||||||
    (properties `((upstream-name . "ChIPpeakAnno")))
 | 
					    (properties `((upstream-name . "ChIPpeakAnno")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
| 
						 | 
					@ -1521,14 +1521,14 @@ experiments.")
 | 
				
			||||||
(define-public r-genomicinteractions
 | 
					(define-public r-genomicinteractions
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-genomicinteractions")
 | 
					    (name "r-genomicinteractions")
 | 
				
			||||||
    (version "1.18.0")
 | 
					    (version "1.18.1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (bioconductor-uri "GenomicInteractions" version))
 | 
					       (uri (bioconductor-uri "GenomicInteractions" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "0ipvm3c1cqd46n60lsrqzf6fx4b3lwia57jyfx9wcqqg205qj73b"))))
 | 
					         "0hq2n5yfr9h2ayn10dy9lz08gd2q0awrm5cy2kqdmz4d8ss4r94p"))))
 | 
				
			||||||
    (properties
 | 
					    (properties
 | 
				
			||||||
     `((upstream-name . "GenomicInteractions")))
 | 
					     `((upstream-name . "GenomicInteractions")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
| 
						 | 
					@ -3529,14 +3529,14 @@ position-specific scores within R and Bioconductor.")
 | 
				
			||||||
(define-public r-atacseqqc
 | 
					(define-public r-atacseqqc
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-atacseqqc")
 | 
					    (name "r-atacseqqc")
 | 
				
			||||||
    (version "1.8.1")
 | 
					    (version "1.8.5")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (bioconductor-uri "ATACseqQC" version))
 | 
					       (uri (bioconductor-uri "ATACseqQC" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "0h5j3724hnd86w22vy3whqx6gkf0nf2dxd2clgzdvjzblbcd5s69"))))
 | 
					         "1i8f0vs0z4jbc2yvj1diay7jhcmb1a82zv96xllk771f25nvmmxp"))))
 | 
				
			||||||
    (properties `((upstream-name . "ATACseqQC")))
 | 
					    (properties `((upstream-name . "ATACseqQC")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
| 
						 | 
					@ -3621,14 +3621,14 @@ annotations and ontologies.")
 | 
				
			||||||
(define-public r-abaenrichment
 | 
					(define-public r-abaenrichment
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-abaenrichment")
 | 
					    (name "r-abaenrichment")
 | 
				
			||||||
    (version "1.14.0")
 | 
					    (version "1.14.1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (bioconductor-uri "ABAEnrichment" version))
 | 
					       (uri (bioconductor-uri "ABAEnrichment" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "0av1dysk7qa8c4a0pp7yq89k8c4y40d2gyvsb8f27slvv2i3aad2"))))
 | 
					         "1w322wsp6bd3gyfwzgdf088cvfmpq774knr57d0dj420ljf4xn48"))))
 | 
				
			||||||
    (properties `((upstream-name . "ABAEnrichment")))
 | 
					    (properties `((upstream-name . "ABAEnrichment")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
| 
						 | 
					@ -4841,14 +4841,14 @@ annotations.")
 | 
				
			||||||
(define-public r-rsubread
 | 
					(define-public r-rsubread
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-rsubread")
 | 
					    (name "r-rsubread")
 | 
				
			||||||
    (version "1.34.4")
 | 
					    (version "1.34.6")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (bioconductor-uri "Rsubread" version))
 | 
					       (uri (bioconductor-uri "Rsubread" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "1230p8nsakifmpsqfiaj8rpm7npa8ab903mfjmayfa71n6yzvcbs"))))
 | 
					         "0nnfh4hnrs5kd72m8c50cidbsxjz12szw2vynpmg8q0wpd99q550"))))
 | 
				
			||||||
    (properties `((upstream-name . "Rsubread")))
 | 
					    (properties `((upstream-name . "Rsubread")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (inputs `(("zlib" ,zlib)))
 | 
					    (inputs `(("zlib" ,zlib)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,6 +13,7 @@
 | 
				
			||||||
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
 | 
					;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
 | 
				
			||||||
;;; Copyright © 2018 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
 | 
					;;; Copyright © 2018 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
 | 
				
			||||||
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
					;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
				
			||||||
 | 
					;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -4206,8 +4207,15 @@ command, or queried for specific k-mers with @code{jellyfish query}.")
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-after 'unpack 'set-cc
 | 
					         (add-after 'unpack 'set-cc
 | 
				
			||||||
           (lambda _ (setenv "CC" "gcc") #t))
 | 
					           (lambda _ (setenv "CC" "gcc") #t))
 | 
				
			||||||
         ;; FIXME: This fails with "permission denied".
 | 
					
 | 
				
			||||||
         (delete 'reset-gzip-timestamps))))
 | 
					         (add-before 'reset-gzip-timestamps 'make-files-writable
 | 
				
			||||||
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             ;; Make sure .gz files are writable so that the
 | 
				
			||||||
 | 
					             ;; 'reset-gzip-timestamps' phase can do its work.
 | 
				
			||||||
 | 
					             (let ((out (assoc-ref outputs "out")))
 | 
				
			||||||
 | 
					               (for-each make-file-writable
 | 
				
			||||||
 | 
					                         (find-files out "\\.gz$"))
 | 
				
			||||||
 | 
					               #t))))))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("python-cython" ,python-cython)
 | 
					     `(("python-cython" ,python-cython)
 | 
				
			||||||
       ("python-pytest" ,python-pytest)
 | 
					       ("python-pytest" ,python-pytest)
 | 
				
			||||||
| 
						 | 
					@ -7450,13 +7458,13 @@ names in their natural, rather than lexicographic, order.")
 | 
				
			||||||
(define-public r-edger
 | 
					(define-public r-edger
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-edger")
 | 
					    (name "r-edger")
 | 
				
			||||||
    (version "3.26.5")
 | 
					    (version "3.26.6")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (bioconductor-uri "edgeR" version))
 | 
					              (uri (bioconductor-uri "edgeR" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0iba4krz30dx5b0s89n5cfkwn64867s7vmvvfqms9lbcr4kj439m"))))
 | 
					                "17vadhamjv4x0l4qqq2p2fi6j2bkllz5zd8dq761vgd5ic23zizm"))))
 | 
				
			||||||
    (properties `((upstream-name . "edgeR")))
 | 
					    (properties `((upstream-name . "edgeR")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
| 
						 | 
					@ -7517,13 +7525,13 @@ coding changes and predict coding outcomes.")
 | 
				
			||||||
(define-public r-limma
 | 
					(define-public r-limma
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-limma")
 | 
					    (name "r-limma")
 | 
				
			||||||
    (version "3.40.2")
 | 
					    (version "3.40.6")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (bioconductor-uri "limma" version))
 | 
					              (uri (bioconductor-uri "limma" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1d4ig2b7fa9mwja52isxrwmprfdjdk1mlcf2skhdp51l24z6wbk7"))))
 | 
					                "166z8cdh6w90rldqqaar7hyaskwiy4smawjfbn4sn58clv6q3mp8"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (home-page "http://bioinf.wehi.edu.au/limma")
 | 
					    (home-page "http://bioinf.wehi.edu.au/limma")
 | 
				
			||||||
    (synopsis "Package for linear models for microarray and RNA-seq data")
 | 
					    (synopsis "Package for linear models for microarray and RNA-seq data")
 | 
				
			||||||
| 
						 | 
					@ -7650,13 +7658,13 @@ annotation data packages using SQLite data storage.")
 | 
				
			||||||
(define-public r-biomart
 | 
					(define-public r-biomart
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-biomart")
 | 
					    (name "r-biomart")
 | 
				
			||||||
    (version "2.40.1")
 | 
					    (version "2.40.3")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (bioconductor-uri "biomaRt" version))
 | 
					              (uri (bioconductor-uri "biomaRt" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1abl0c4qbhfqf9ixdp74183phm7s8rszrr5ldczm59b8vyng8rhx"))))
 | 
					                "022m1r44s00c5k9bmv0lr22lcn662nhc91aazvv0yyysxjamyf60"))))
 | 
				
			||||||
    (properties
 | 
					    (properties
 | 
				
			||||||
     `((upstream-name . "biomaRt")))
 | 
					     `((upstream-name . "biomaRt")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
| 
						 | 
					@ -7811,13 +7819,13 @@ array-like objects like @code{DataFrame} objects (typically with Rle columns),
 | 
				
			||||||
(define-public r-summarizedexperiment
 | 
					(define-public r-summarizedexperiment
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-summarizedexperiment")
 | 
					    (name "r-summarizedexperiment")
 | 
				
			||||||
    (version "1.14.0")
 | 
					    (version "1.14.1")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (bioconductor-uri "SummarizedExperiment" version))
 | 
					              (uri (bioconductor-uri "SummarizedExperiment" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1ypk63pdml89y81pr41i2zq0fimsaxsa5lgpg6xs5cwikyaq0pci"))))
 | 
					                "0bhwgzrdipr0qjzc4j0qspqprx3v1rvshmx4j6506dv43pqlgp3f"))))
 | 
				
			||||||
    (properties
 | 
					    (properties
 | 
				
			||||||
     `((upstream-name . "SummarizedExperiment")))
 | 
					     `((upstream-name . "SummarizedExperiment")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
| 
						 | 
					@ -7875,13 +7883,13 @@ alignments.")
 | 
				
			||||||
(define-public r-rtracklayer
 | 
					(define-public r-rtracklayer
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-rtracklayer")
 | 
					    (name "r-rtracklayer")
 | 
				
			||||||
    (version "1.44.0")
 | 
					    (version "1.44.2")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (bioconductor-uri "rtracklayer" version))
 | 
					              (uri (bioconductor-uri "rtracklayer" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "161gcks9b12993g9k27gf7wfh8lgd8m8rr7x2slgfqqssk0yrmpd"))))
 | 
					                "03b4rfsbzjjf5kxcsjv7kq8hrsgcvz9rfzcn2v7fx3nr818pbb8s"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:phases
 | 
				
			||||||
| 
						 | 
					@ -7922,13 +7930,13 @@ as well as query and modify the browser state, such as the current viewport.")
 | 
				
			||||||
(define-public r-genomicfeatures
 | 
					(define-public r-genomicfeatures
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-genomicfeatures")
 | 
					    (name "r-genomicfeatures")
 | 
				
			||||||
    (version "1.36.3")
 | 
					    (version "1.36.4")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (bioconductor-uri "GenomicFeatures" version))
 | 
					              (uri (bioconductor-uri "GenomicFeatures" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0zkd57i5qjxsravv0gbyckc0wrnqzgxd61ibh3jmhmrccrr9ihn3"))))
 | 
					                "0mzqv8pyxx5nwchyx3radym9ws2f9hb50xc9abjsjs4w4pv91j3k"))))
 | 
				
			||||||
    (properties
 | 
					    (properties
 | 
				
			||||||
     `((upstream-name . "GenomicFeatures")))
 | 
					     `((upstream-name . "GenomicFeatures")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
| 
						 | 
					@ -8346,13 +8354,13 @@ paired-end data.")
 | 
				
			||||||
(define-public r-rcas
 | 
					(define-public r-rcas
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-rcas")
 | 
					    (name "r-rcas")
 | 
				
			||||||
    (version "1.10.0")
 | 
					    (version "1.10.1")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (bioconductor-uri "RCAS" version))
 | 
					              (uri (bioconductor-uri "RCAS" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1h4vf5gzilqbdrd8m9l3zc2m4sca8cir8366a7njgd558k7ld5kl"))))
 | 
					                "06z5zmdi34jblw37z6ff8hb6lvvi0chwr37acwqfn8d27ax9lakz"))))
 | 
				
			||||||
    (properties `((upstream-name . "RCAS")))
 | 
					    (properties `((upstream-name . "RCAS")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
| 
						 | 
					@ -9410,14 +9418,14 @@ of mass spectrometry based proteomics data.")
 | 
				
			||||||
(define-public r-msnid
 | 
					(define-public r-msnid
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-msnid")
 | 
					    (name "r-msnid")
 | 
				
			||||||
    (version "1.18.0")
 | 
					    (version "1.18.1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (bioconductor-uri "MSnID" version))
 | 
					       (uri (bioconductor-uri "MSnID" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "18mp8zacawhfapfwpq8czbswxix2ykvqhwjga54v0a99zg3k87h3"))))
 | 
					         "1n49l5mjdz7p4g2nwsbhm1jcj42sv6lsriq77n2imvacsvk0qfmb"))))
 | 
				
			||||||
    (properties `((upstream-name . "MSnID")))
 | 
					    (properties `((upstream-name . "MSnID")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
					@ -195,7 +195,7 @@ by no means limited to these applications.)  This package provides XML DTDs.")
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    ;; TODO: Add xfig/transfig for fig2dev utility
 | 
					    ;; TODO: Add xfig/transfig for fig2dev utility
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("texlive" ,(texlive-union (list texlive-latex-amsfonts
 | 
					     `(("texlive" ,(texlive-union (list texlive-amsfonts
 | 
				
			||||||
                                        texlive-latex-anysize
 | 
					                                        texlive-latex-anysize
 | 
				
			||||||
                                        texlive-latex-appendix
 | 
					                                        texlive-latex-appendix
 | 
				
			||||||
                                        texlive-latex-changebar
 | 
					                                        texlive-latex-changebar
 | 
				
			||||||
| 
						 | 
					@ -219,7 +219,6 @@ by no means limited to these applications.)  This package provides XML DTDs.")
 | 
				
			||||||
                                        texlive-latex-url
 | 
					                                        texlive-latex-url
 | 
				
			||||||
                                        texlive-latex-wasysym
 | 
					                                        texlive-latex-wasysym
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                        texlive-fonts-amsfonts
 | 
					 | 
				
			||||||
                                        texlive-fonts-ec
 | 
					                                        texlive-fonts-ec
 | 
				
			||||||
                                        texlive-fonts-rsfs
 | 
					                                        texlive-fonts-rsfs
 | 
				
			||||||
                                        texlive-fonts-stmaryrd
 | 
					                                        texlive-fonts-stmaryrd
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -63,12 +63,13 @@
 | 
				
			||||||
    (arguments '(#:tests? #f))
 | 
					    (arguments '(#:tests? #f))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("python-requests" ,python-requests-2.20)
 | 
					     `(("python-requests" ,python-requests-2.20)
 | 
				
			||||||
       ("python-docker-pycreds" ,python-docker-pycreds)
 | 
					 | 
				
			||||||
       ("python-ipaddress" ,python-ipaddress)
 | 
					       ("python-ipaddress" ,python-ipaddress)
 | 
				
			||||||
       ("python-paramiko" ,python-paramiko)
 | 
					 | 
				
			||||||
       ("python-six" ,python-six)
 | 
					       ("python-six" ,python-six)
 | 
				
			||||||
       ("python-urllib3" ,python-urllib3-1.24)
 | 
					       ("python-urllib3" ,python-urllib3-1.24)
 | 
				
			||||||
       ("python-websocket-client" ,python-websocket-client)))
 | 
					       ("python-websocket-client" ,python-websocket-client)))
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("python-docker-pycreds" ,python-docker-pycreds)
 | 
				
			||||||
 | 
					       ("python-paramiko" ,python-paramiko))) ; adds SSH support
 | 
				
			||||||
    (home-page "https://github.com/docker/docker-py/")
 | 
					    (home-page "https://github.com/docker/docker-py/")
 | 
				
			||||||
    (synopsis "Python client for Docker")
 | 
					    (synopsis "Python client for Docker")
 | 
				
			||||||
    (description "Docker-Py is a Python client for the Docker container
 | 
					    (description "Docker-Py is a Python client for the Docker container
 | 
				
			||||||
| 
						 | 
					@ -113,17 +114,11 @@ client.")
 | 
				
			||||||
    ;; TODO: Tests require running Docker daemon.
 | 
					    ;; TODO: Tests require running Docker daemon.
 | 
				
			||||||
    (arguments '(#:tests? #f))
 | 
					    (arguments '(#:tests? #f))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("python2-backport-ssl-match-hostname"
 | 
					     `(("python-cached-property"
 | 
				
			||||||
        ,python2-backport-ssl-match-hostname)
 | 
					 | 
				
			||||||
       ("python-cached-property"
 | 
					 | 
				
			||||||
        ,python-cached-property)
 | 
					        ,python-cached-property)
 | 
				
			||||||
       ("python-colorama" ,python-colorama)
 | 
					 | 
				
			||||||
       ("python-docker-py" ,python-docker-py)
 | 
					       ("python-docker-py" ,python-docker-py)
 | 
				
			||||||
       ("python-docker-pycreds" ,python-docker-pycreds)
 | 
					 | 
				
			||||||
       ("python-dockerpty" ,python-dockerpty)
 | 
					       ("python-dockerpty" ,python-dockerpty)
 | 
				
			||||||
       ("python-docopt" ,python-docopt)
 | 
					       ("python-docopt" ,python-docopt)
 | 
				
			||||||
       ("python-ipaddress" ,python-ipaddress)
 | 
					 | 
				
			||||||
       ("python-paramiko" ,python-paramiko)
 | 
					 | 
				
			||||||
       ("python-jsonschema" ,python-jsonschema-2.6)
 | 
					       ("python-jsonschema" ,python-jsonschema-2.6)
 | 
				
			||||||
       ("python-pyyaml" ,python-pyyaml)
 | 
					       ("python-pyyaml" ,python-pyyaml)
 | 
				
			||||||
       ("python-requests" ,python-requests-2.20)
 | 
					       ("python-requests" ,python-requests-2.20)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3389,6 +3389,76 @@ for the current function or variable in the minibuffer.")
 | 
				
			||||||
completion candidate when using the Company text completion framework.")
 | 
					completion candidate when using the Company text completion framework.")
 | 
				
			||||||
    (license license:gpl3+)))
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public emacs-math-symbol-lists
 | 
				
			||||||
 | 
					  (let ((commit "dc7531cff0c845d5470a50c24d5d7309b2ced7eb")
 | 
				
			||||||
 | 
					        (revision "1"))
 | 
				
			||||||
 | 
					    (package
 | 
				
			||||||
 | 
					      (name "emacs-math-symbol-lists")
 | 
				
			||||||
 | 
					      (version (git-version "1.2.1" revision commit))
 | 
				
			||||||
 | 
					      (source
 | 
				
			||||||
 | 
					       (origin
 | 
				
			||||||
 | 
					         (method git-fetch)
 | 
				
			||||||
 | 
					         (uri (git-reference
 | 
				
			||||||
 | 
					               (url "https://github.com/vspinu/math-symbol-lists.git")
 | 
				
			||||||
 | 
					               (commit commit)))
 | 
				
			||||||
 | 
					         (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					         (sha256
 | 
				
			||||||
 | 
					          (base32 "094m21i9rns6m59cmhxcivxxafbg52w8f8na4y3v47aq67zmhhqm"))))
 | 
				
			||||||
 | 
					      (build-system emacs-build-system)
 | 
				
			||||||
 | 
					      (home-page "https://github.com/vspinu/math-symbol-lists")
 | 
				
			||||||
 | 
					      (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
 | 
				
			||||||
 | 
					      (description "This is a storage package used by completion engines like
 | 
				
			||||||
 | 
					@code{company-math}.")
 | 
				
			||||||
 | 
					      (license license:gpl3+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public emacs-company-math
 | 
				
			||||||
 | 
					  (let ((commit "600e49449644f6835f9dc3501bc58461999e8ab9")
 | 
				
			||||||
 | 
					        (revision "1"))
 | 
				
			||||||
 | 
					    (package
 | 
				
			||||||
 | 
					      (name "emacs-company-math")
 | 
				
			||||||
 | 
					      (version (git-version "1.3" revision commit))
 | 
				
			||||||
 | 
					      (source
 | 
				
			||||||
 | 
					       (origin
 | 
				
			||||||
 | 
					         (method git-fetch)
 | 
				
			||||||
 | 
					         (uri (git-reference
 | 
				
			||||||
 | 
					               (url "https://github.com/vspinu/company-math.git")
 | 
				
			||||||
 | 
					               (commit commit)))
 | 
				
			||||||
 | 
					         (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					         (sha256
 | 
				
			||||||
 | 
					          (base32
 | 
				
			||||||
 | 
					           "1ps2lpkzn8mjbpcbvvy1qz3xbgrh6951x8y9bsd1fm32drdph9lh"))))
 | 
				
			||||||
 | 
					      (build-system emacs-build-system)
 | 
				
			||||||
 | 
					      (propagated-inputs
 | 
				
			||||||
 | 
					       `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
 | 
				
			||||||
 | 
					         ("emacs-company" ,emacs-company)))
 | 
				
			||||||
 | 
					      (home-page "https://github.com/vspinu/company-math")
 | 
				
			||||||
 | 
					      (synopsis "Completion backends for Unicode math symbols and @code{LaTeX} tags")
 | 
				
			||||||
 | 
					      (description "This package provides a backend for use with
 | 
				
			||||||
 | 
					@code{company-mode} allowing for completion of common math symbols.")
 | 
				
			||||||
 | 
					      (license license:gpl3+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public emacs-nswbuff
 | 
				
			||||||
 | 
					  (let ((commit "362da7f3687e2eb5bb11667347de85f4a9d002bc")
 | 
				
			||||||
 | 
					        (revision "1"))
 | 
				
			||||||
 | 
					    (package
 | 
				
			||||||
 | 
					      (name "emacs-nswbuff")
 | 
				
			||||||
 | 
					      (version (git-version "1.0" revision commit))
 | 
				
			||||||
 | 
					      (source
 | 
				
			||||||
 | 
					       (origin
 | 
				
			||||||
 | 
					         (method git-fetch)
 | 
				
			||||||
 | 
					         (uri (git-reference
 | 
				
			||||||
 | 
					               (url "https://github.com/joostkremers/nswbuff.git")
 | 
				
			||||||
 | 
					               (commit commit)))
 | 
				
			||||||
 | 
					         (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					         (sha256
 | 
				
			||||||
 | 
					          (base32 "0l2xfz8z5qd4hz3kv6zn7h6qq3narkilri8a071y1n8j31jps4ma"))))
 | 
				
			||||||
 | 
					      (build-system emacs-build-system)
 | 
				
			||||||
 | 
					      (home-page "https://github.com/joostkremers/nswbuff")
 | 
				
			||||||
 | 
					      (synopsis "Quickly switch between buffers")
 | 
				
			||||||
 | 
					      (description "This package allows for navigating between buffers within
 | 
				
			||||||
 | 
					a customizable list.")
 | 
				
			||||||
 | 
					      (license license:gpl3+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public emacs-multiple-cursors
 | 
					(define-public emacs-multiple-cursors
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "emacs-multiple-cursors")
 | 
					    (name "emacs-multiple-cursors")
 | 
				
			||||||
| 
						 | 
					@ -3410,6 +3480,32 @@ completion candidate when using the Company text completion framework.")
 | 
				
			||||||
simultaneous cursors.")
 | 
					simultaneous cursors.")
 | 
				
			||||||
    (license license:gpl3+)))
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public emacs-mc-extras
 | 
				
			||||||
 | 
					  (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
 | 
				
			||||||
 | 
					        (revision "1"))
 | 
				
			||||||
 | 
					    (package
 | 
				
			||||||
 | 
					      (name "emacs-mc-extras")
 | 
				
			||||||
 | 
					      (version (git-version "1.2.4" revision commit))
 | 
				
			||||||
 | 
					      (source
 | 
				
			||||||
 | 
					       (origin
 | 
				
			||||||
 | 
					         (method git-fetch)
 | 
				
			||||||
 | 
					         (uri (git-reference
 | 
				
			||||||
 | 
					               (url "https://github.com/knu/mc-extras.el.git")
 | 
				
			||||||
 | 
					               (commit commit)))
 | 
				
			||||||
 | 
					         (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					         (sha256
 | 
				
			||||||
 | 
					          (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
 | 
				
			||||||
 | 
					      (build-system emacs-build-system)
 | 
				
			||||||
 | 
					      (propagated-inputs
 | 
				
			||||||
 | 
					       `(("emacs-multiple-cursors" ,emacs-multiple-cursors)))
 | 
				
			||||||
 | 
					      (home-page "https://github.com/knu/mc-extras.el")
 | 
				
			||||||
 | 
					      (synopsis "Extra functions for manipulating multiple cursors")
 | 
				
			||||||
 | 
					      (description
 | 
				
			||||||
 | 
					       "This package provides additional functions for
 | 
				
			||||||
 | 
					@code{multiple-cursors}, including functions for marking s-expressions,
 | 
				
			||||||
 | 
					comparing characters, removing cursors, and more.")
 | 
				
			||||||
 | 
					      (license license:bsd-2))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public emacs-typo
 | 
					(define-public emacs-typo
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "emacs-typo")
 | 
					    (name "emacs-typo")
 | 
				
			||||||
| 
						 | 
					@ -4011,6 +4107,38 @@ minutes is started automatically.  Every 4 breaks a long break is
 | 
				
			||||||
started with 20 minutes.  All values are customizable.")
 | 
					started with 20 minutes.  All values are customizable.")
 | 
				
			||||||
    (license license:gpl3+)))
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public emacs-org-sidebar
 | 
				
			||||||
 | 
					  (let ((commit "74ca98b9920f3de3f13d49866581435e1ec63ec5")
 | 
				
			||||||
 | 
					        (revision "1"))
 | 
				
			||||||
 | 
					    (package
 | 
				
			||||||
 | 
					      (name "emacs-org-sidebar")
 | 
				
			||||||
 | 
					      (version (git-version "0.1" revision commit))
 | 
				
			||||||
 | 
					      (source
 | 
				
			||||||
 | 
					       (origin
 | 
				
			||||||
 | 
					         (method git-fetch)
 | 
				
			||||||
 | 
					         (uri (git-reference
 | 
				
			||||||
 | 
					               (url "https://github.com/alphapapa/org-sidebar.git")
 | 
				
			||||||
 | 
					               (commit commit)))
 | 
				
			||||||
 | 
					         (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					         (sha256
 | 
				
			||||||
 | 
					          (base32 "03p1ndyw2qp2skib5hszc4xyh84w7p2mhkd4a9dy6qv8q47xpsqn"))))
 | 
				
			||||||
 | 
					      (build-system emacs-build-system)
 | 
				
			||||||
 | 
					      (propagated-inputs
 | 
				
			||||||
 | 
					       `(("emacs-dash" ,emacs-dash)
 | 
				
			||||||
 | 
					         ("emacs-org-super-agenda" ,emacs-org-super-agenda)
 | 
				
			||||||
 | 
					         ("emacs-org" ,emacs-org)
 | 
				
			||||||
 | 
					         ("emacs-org-ql" ,emacs-org-ql)
 | 
				
			||||||
 | 
					         ("emacs-s" ,emacs-s)))
 | 
				
			||||||
 | 
					      (home-page "https://github.com/alphapapa/org-sidebar")
 | 
				
			||||||
 | 
					      (synopsis "Helpful sidebar for Org buffers")
 | 
				
			||||||
 | 
					      (description "This package provides a sidebar for Org buffers.  At the
 | 
				
			||||||
 | 
					top is a chronological list of scheduled and deadlined tasks in the current
 | 
				
			||||||
 | 
					buffer (similar to the Org agenda ,but without all its features), and below
 | 
				
			||||||
 | 
					that is a list of all other non-done to-do items.  If the buffer is narrowed,
 | 
				
			||||||
 | 
					the sidebar only shows items in the narrowed portion; this allows seeing an
 | 
				
			||||||
 | 
					overview of tasks in a subtree.")
 | 
				
			||||||
 | 
					      (license license:gpl3+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public emacs-org-trello
 | 
					(define-public emacs-org-trello
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "emacs-org-trello")
 | 
					    (name "emacs-org-trello")
 | 
				
			||||||
| 
						 | 
					@ -4604,19 +4732,24 @@ automatically.")
 | 
				
			||||||
    (license license:gpl3+)))
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public emacs-ivy
 | 
					(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
 | 
					    (package
 | 
				
			||||||
      (name "emacs-ivy")
 | 
					      (name "emacs-ivy")
 | 
				
			||||||
    (version "0.12.0")
 | 
					      (version (git-version "0.12.0" revision commit))
 | 
				
			||||||
      (source
 | 
					      (source
 | 
				
			||||||
       (origin
 | 
					       (origin
 | 
				
			||||||
         (method git-fetch)
 | 
					         (method git-fetch)
 | 
				
			||||||
         (uri (git-reference
 | 
					         (uri (git-reference
 | 
				
			||||||
               (url "https://github.com/abo-abo/swiper.git")
 | 
					               (url "https://github.com/abo-abo/swiper.git")
 | 
				
			||||||
             (commit version)))
 | 
					               (commit commit)))
 | 
				
			||||||
         (file-name (git-file-name name version))
 | 
					         (file-name (git-file-name name version))
 | 
				
			||||||
         (sha256
 | 
					         (sha256
 | 
				
			||||||
          (base32
 | 
					          (base32
 | 
				
			||||||
         "0xgngn3jhmyn6mlkk9kmgfgh0w5i50b27syr4cgfgarg6p77j05w"))))
 | 
					           "142axxc6vsl14cfyvzj9csiykxdn7vhw88fy955hzx7av4qfqg4x"))))
 | 
				
			||||||
      (build-system emacs-build-system)
 | 
					      (build-system emacs-build-system)
 | 
				
			||||||
      (arguments
 | 
					      (arguments
 | 
				
			||||||
       `(#:phases
 | 
					       `(#: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
 | 
					@code{ivy-next-line} and @code{ivy-previous-line}.  The matching is done by
 | 
				
			||||||
splitting the input text by spaces and re-building it into a regular
 | 
					splitting the input text by spaces and re-building it into a regular
 | 
				
			||||||
expression.")
 | 
					expression.")
 | 
				
			||||||
    (license license:gpl3+)))
 | 
					      (license license:gpl3+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public emacs-ivy-pass
 | 
					(define-public emacs-ivy-pass
 | 
				
			||||||
  (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
 | 
					  (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
 | 
				
			||||||
| 
						 | 
					@ -5228,7 +5361,7 @@ strings, and code folding.")
 | 
				
			||||||
(define-public emacs-nodejs-repl
 | 
					(define-public emacs-nodejs-repl
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "emacs-nodejs-repl")
 | 
					    (name "emacs-nodejs-repl")
 | 
				
			||||||
    (version "0.2.1")
 | 
					    (version "0.2.2")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method git-fetch)
 | 
					              (method git-fetch)
 | 
				
			||||||
              (uri (git-reference
 | 
					              (uri (git-reference
 | 
				
			||||||
| 
						 | 
					@ -5237,7 +5370,7 @@ strings, and code folding.")
 | 
				
			||||||
              (file-name (git-file-name name version))
 | 
					              (file-name (git-file-name name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "05ccv87rnw7fss3lib8m9sywjrj6n92fnd7mmhmjh27g2klqc83z"))))
 | 
					                "1kkj888k9x5n0i7xkia177gzsa84my3g8n0n7v65281cc4f1yhk5"))))
 | 
				
			||||||
    (build-system emacs-build-system)
 | 
					    (build-system emacs-build-system)
 | 
				
			||||||
    (home-page "https://github.com/abicky/nodejs-repl.el")
 | 
					    (home-page "https://github.com/abicky/nodejs-repl.el")
 | 
				
			||||||
    (synopsis "Node.js REPL inside Emacs")
 | 
					    (synopsis "Node.js REPL inside Emacs")
 | 
				
			||||||
| 
						 | 
					@ -5580,28 +5713,35 @@ environments (virtualenv) inside Emacs.")
 | 
				
			||||||
    (license license:gpl3+)))
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public emacs-highlight-indentation
 | 
					(define-public emacs-highlight-indentation
 | 
				
			||||||
 | 
					  ;; Last release version is from 2015.
 | 
				
			||||||
 | 
					  (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
 | 
				
			||||||
 | 
					        (revision "1"))
 | 
				
			||||||
    (package
 | 
					    (package
 | 
				
			||||||
      (name "emacs-highlight-indentation")
 | 
					      (name "emacs-highlight-indentation")
 | 
				
			||||||
    (version "0.7.0")
 | 
					      (version (git-version "0.7.0" revision commit))
 | 
				
			||||||
    (source (origin
 | 
					      (source
 | 
				
			||||||
 | 
					       (origin
 | 
				
			||||||
         (method git-fetch)
 | 
					         (method git-fetch)
 | 
				
			||||||
         (uri (git-reference
 | 
					         (uri (git-reference
 | 
				
			||||||
               (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
 | 
					               (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
 | 
				
			||||||
                    (commit (string-append "v" version))))
 | 
					               (commit commit)))
 | 
				
			||||||
         (file-name (git-file-name name version))
 | 
					         (file-name (git-file-name name version))
 | 
				
			||||||
         (sha256
 | 
					         (sha256
 | 
				
			||||||
          (base32
 | 
					          (base32
 | 
				
			||||||
                "00l54k75qk24a0znzl4ij3s3nrnr2wy9ha3za8apphzlm98m907k"))))
 | 
					           "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
 | 
				
			||||||
      (build-system emacs-build-system)
 | 
					      (build-system emacs-build-system)
 | 
				
			||||||
      (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
 | 
					      (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
 | 
				
			||||||
      (synopsis "Highlighting 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
 | 
					@enumerate
 | 
				
			||||||
@item @code{highlight-indentation-mode}, which displays guidelines
 | 
					@item @code{highlight-indentation-mode}, which displays guidelines
 | 
				
			||||||
indentation (space indentation only).
 | 
					  indentation (space indentation only).
 | 
				
			||||||
@item @code{highlight-indentation-current-column-mode}, which displays guidelines for the current-point indentation (space indentation only).
 | 
					@item @code{highlight-indentation-current-column-mode}, which displays
 | 
				
			||||||
 | 
					  guidelines for the current-point indentation (space indentation only).
 | 
				
			||||||
@end enumerate")
 | 
					@end enumerate")
 | 
				
			||||||
    (license license:gpl2+)))
 | 
					      (license license:gpl2+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public emacs-elpy
 | 
					(define-public emacs-elpy
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -5931,7 +6071,7 @@ ack, ag, helm and pt.")
 | 
				
			||||||
(define-public emacs-helm
 | 
					(define-public emacs-helm
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "emacs-helm")
 | 
					    (name "emacs-helm")
 | 
				
			||||||
    (version "3.2")
 | 
					    (version "3.3")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -5940,7 +6080,7 @@ ack, ag, helm and pt.")
 | 
				
			||||||
             (commit (string-append "v" version))))
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "12yyprpgh2by2pd41i4z9gz55fxg0f90x03bfrsf791xwbhf6931"))))
 | 
					        (base32 "0fqhw7r9fcsja5d3pgbipw7pkw9nj534faav6hi45413hc3gyv92"))))
 | 
				
			||||||
    (build-system emacs-build-system)
 | 
					    (build-system emacs-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("emacs-async" ,emacs-async)
 | 
					     `(("emacs-async" ,emacs-async)
 | 
				
			||||||
| 
						 | 
					@ -6119,21 +6259,21 @@ xref, etc...) are still available, but with better integration.")
 | 
				
			||||||
      (license license:gpl3+))))
 | 
					      (license license:gpl3+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public emacs-lua-mode
 | 
					(define-public emacs-lua-mode
 | 
				
			||||||
  (let ((commit "652e299cb967fccca827dda381d61a9c144d97de")
 | 
					  (let ((commit "95c64bb5634035630e8c59d10d4a1d1003265743")
 | 
				
			||||||
        (revision "1"))
 | 
					        (revision "2"))
 | 
				
			||||||
    (package
 | 
					    (package
 | 
				
			||||||
      (name "emacs-lua-mode")
 | 
					      (name "emacs-lua-mode")
 | 
				
			||||||
      (version (string-append "20151025." revision "-" (string-take commit 9)))
 | 
					      (version (git-version "20151025" revision commit))
 | 
				
			||||||
      (home-page "https://github.com/immerrr/lua-mode/")
 | 
					      (home-page "https://github.com/immerrr/lua-mode/")
 | 
				
			||||||
      (source (origin
 | 
					      (source (origin
 | 
				
			||||||
                (method git-fetch)
 | 
					                (method git-fetch)
 | 
				
			||||||
                (uri (git-reference
 | 
					                (uri (git-reference
 | 
				
			||||||
                      (url home-page)
 | 
					                      (url home-page)
 | 
				
			||||||
                      (commit commit)))
 | 
					                      (commit commit)))
 | 
				
			||||||
                (file-name (string-append name "-" version ".checkout"))
 | 
					                (file-name (git-file-name name version))
 | 
				
			||||||
                (sha256
 | 
					                (sha256
 | 
				
			||||||
                 (base32
 | 
					                 (base32
 | 
				
			||||||
                  "053025k930wh0lak6rc1973ynfrmm8zsyzfqhhd39x7abkl41hc9"))))
 | 
					                  "1mra4db25ds64526dsj8m5yv0kfq3lgggjh1x6xmqypdaryddbcp"))))
 | 
				
			||||||
      (build-system emacs-build-system)
 | 
					      (build-system emacs-build-system)
 | 
				
			||||||
      (synopsis "Major mode for lua")
 | 
					      (synopsis "Major mode for lua")
 | 
				
			||||||
      (description
 | 
					      (description
 | 
				
			||||||
| 
						 | 
					@ -6399,12 +6539,11 @@ aligning text objects based on separators.")
 | 
				
			||||||
      (license license:gpl3+))))
 | 
					      (license license:gpl3+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public emacs-evil-expat
 | 
					(define-public emacs-evil-expat
 | 
				
			||||||
  (let ((commit "4c344ea19b789002d759a202ffbf594730d2c59a")
 | 
					  (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
 | 
				
			||||||
        (version "0.0.1")
 | 
					 | 
				
			||||||
        (revision "1"))
 | 
					        (revision "1"))
 | 
				
			||||||
    (package
 | 
					    (package
 | 
				
			||||||
      (name "emacs-evil-expat")
 | 
					      (name "emacs-evil-expat")
 | 
				
			||||||
      (version (git-version version revision commit))
 | 
					      (version (git-version "0.0.1" revision commit))
 | 
				
			||||||
      (source
 | 
					      (source
 | 
				
			||||||
       (origin
 | 
					       (origin
 | 
				
			||||||
         (method git-fetch)
 | 
					         (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -6414,7 +6553,7 @@ aligning text objects based on separators.")
 | 
				
			||||||
         (file-name (git-file-name name version))
 | 
					         (file-name (git-file-name name version))
 | 
				
			||||||
         (sha256
 | 
					         (sha256
 | 
				
			||||||
          (base32
 | 
					          (base32
 | 
				
			||||||
           "16v7fnldxag6l1lsnrnhdjkga9qi78lbdfbb82k6pmv04991mbkr"))))
 | 
					           "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
 | 
				
			||||||
      (build-system emacs-build-system)
 | 
					      (build-system emacs-build-system)
 | 
				
			||||||
      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
 | 
					      (propagated-inputs `(("emacs-evil" ,emacs-evil)))
 | 
				
			||||||
      (home-page "https://github.com/edkolev/evil-expat")
 | 
					      (home-page "https://github.com/edkolev/evil-expat")
 | 
				
			||||||
| 
						 | 
					@ -6587,14 +6726,14 @@ passive voice.")
 | 
				
			||||||
    (name "emacs-org")
 | 
					    (name "emacs-org")
 | 
				
			||||||
    ;; emacs-org-contrib inherits from this package.  Please update its sha256
 | 
					    ;; emacs-org-contrib inherits from this package.  Please update its sha256
 | 
				
			||||||
    ;; checksum as well.
 | 
					    ;; checksum as well.
 | 
				
			||||||
    (version "9.2.3")
 | 
					    (version "9.2.5")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "http://elpa.gnu.org/packages/org-"
 | 
					              (uri (string-append "https://elpa.gnu.org/packages/org-"
 | 
				
			||||||
                                  version ".tar"))
 | 
					                                  version ".tar"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0hqy4lns9q5p0l1ylgmlckqprn9sbasszhznanmv0rsh0gzhsbyw"))))
 | 
					                "1pid1sykgz83i4ry5n8f270finag6sm7ckqxn5lkikyya43wlzx1"))))
 | 
				
			||||||
    (build-system emacs-build-system)
 | 
					    (build-system emacs-build-system)
 | 
				
			||||||
    (home-page "https://orgmode.org/")
 | 
					    (home-page "https://orgmode.org/")
 | 
				
			||||||
    (synopsis "Outline-based notes management and organizer")
 | 
					    (synopsis "Outline-based notes management and organizer")
 | 
				
			||||||
| 
						 | 
					@ -6608,14 +6747,14 @@ programming and reproducible research.")
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (inherit emacs-org)
 | 
					    (inherit emacs-org)
 | 
				
			||||||
    (name "emacs-org-contrib")
 | 
					    (name "emacs-org-contrib")
 | 
				
			||||||
    (version "20190715")
 | 
					    (version "20190805")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
 | 
					              (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-"
 | 
				
			||||||
                                  version ".tar"))
 | 
					                                  version ".tar"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0yxxkcaxhp5bmjsfdd9pz79rj9s7nb4gj5ci51sh4pf8mimk9542"))))
 | 
					                "1mw91hwbqyjq5pyz9hzdhvjlc2bphqpi23yqd3sdk1crpc87s40c"))))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:modules ((guix build emacs-build-system)
 | 
					     `(#:modules ((guix build emacs-build-system)
 | 
				
			||||||
                  (guix build utils)
 | 
					                  (guix build utils)
 | 
				
			||||||
| 
						 | 
					@ -7159,6 +7298,56 @@ find files owned by packages...  And much more, including performing all the
 | 
				
			||||||
above over the network.")
 | 
					above over the network.")
 | 
				
			||||||
      (license license:gpl3+))))
 | 
					      (license license:gpl3+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public emacs-helm-org-rifle
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "emacs-helm-org-rifle")
 | 
				
			||||||
 | 
					    (version "1.6.1")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method git-fetch)
 | 
				
			||||||
 | 
					       (uri (git-reference
 | 
				
			||||||
 | 
					             (url "https://github.com/alphapapa/helm-org-rifle")
 | 
				
			||||||
 | 
					             (commit version)))
 | 
				
			||||||
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "1r38xhwvgbv6kn5x159phz3xgss7f1rc7icq27rnr4d8aj91wm6k"))))
 | 
				
			||||||
 | 
					    (build-system emacs-build-system)
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("emacs-dash" ,emacs-dash)
 | 
				
			||||||
 | 
					       ("emacs-f" ,emacs-f)
 | 
				
			||||||
 | 
					       ("emacs-helm" ,emacs-helm)
 | 
				
			||||||
 | 
					       ("emacs-s" ,emacs-s)))
 | 
				
			||||||
 | 
					    (home-page "https://github.com/alphapapa/helm-org-rifle")
 | 
				
			||||||
 | 
					    (synopsis "Rifle through Org files")
 | 
				
			||||||
 | 
					    (description "This package searches both headings and contents of entries
 | 
				
			||||||
 | 
					in Org buffers and displays matching entries.")
 | 
				
			||||||
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public emacs-dired-toggle-sudo
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "emacs-dired-toggle-sudo")
 | 
				
			||||||
 | 
					    (version "1.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method git-fetch)
 | 
				
			||||||
 | 
					       (uri (git-reference
 | 
				
			||||||
 | 
					             (url "https://github.com/renard/dired-toggle-sudo")
 | 
				
			||||||
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "0ajj8d6k5in2hclcrqckinfh80ylddplva0ryfbkzsjkfq167cv2"))
 | 
				
			||||||
 | 
					       (patches
 | 
				
			||||||
 | 
					        (search-patches
 | 
				
			||||||
 | 
					         "emacs-dired-toggle-sudo-emacs-26.patch"))))
 | 
				
			||||||
 | 
					    (build-system emacs-build-system)
 | 
				
			||||||
 | 
					    (home-page "https://github.com/renard/dired-toggle-sudo")
 | 
				
			||||||
 | 
					    (synopsis "Browse directory with @code{sudo} privileges")
 | 
				
			||||||
 | 
					    (description "This package allows for the use of @code{dired} with
 | 
				
			||||||
 | 
					@code{sudo} privileges.")
 | 
				
			||||||
 | 
					    (license license:wtfpl2)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public emacs-memoize
 | 
					(define-public emacs-memoize
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "emacs-memoize")
 | 
					    (name "emacs-memoize")
 | 
				
			||||||
| 
						 | 
					@ -8528,12 +8717,11 @@ the actual transformations.")
 | 
				
			||||||
      (license license:gpl2+))))
 | 
					      (license license:gpl2+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public emacs-dired-hacks
 | 
					(define-public emacs-dired-hacks
 | 
				
			||||||
  (let ((commit "2c1234592aee91dcd9401bcd67213e6a4a464fd9")
 | 
					  (let ((commit "886befe113fae397407c804f72c45613d1d43535")
 | 
				
			||||||
        (revision "1"))
 | 
					        (revision "2"))
 | 
				
			||||||
    (package
 | 
					    (package
 | 
				
			||||||
      (name "emacs-dired-hacks")
 | 
					      (name "emacs-dired-hacks")
 | 
				
			||||||
      (version (string-append "0.0.1-" revision "."
 | 
					      (version (git-version "0.0.1" revision commit))
 | 
				
			||||||
                              (string-take commit 7)))
 | 
					 | 
				
			||||||
      (source (origin
 | 
					      (source (origin
 | 
				
			||||||
                (method git-fetch)
 | 
					                (method git-fetch)
 | 
				
			||||||
                (uri (git-reference
 | 
					                (uri (git-reference
 | 
				
			||||||
| 
						 | 
					@ -8542,7 +8730,7 @@ the actual transformations.")
 | 
				
			||||||
                (file-name (git-file-name name version))
 | 
					                (file-name (git-file-name name version))
 | 
				
			||||||
                (sha256
 | 
					                (sha256
 | 
				
			||||||
                 (base32
 | 
					                 (base32
 | 
				
			||||||
                  "1g7mky41cahpryzj6frdgzdymknpqq7pidzfjj9304887kijmhj3"))))
 | 
					                  "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"))))
 | 
				
			||||||
      (build-system emacs-build-system)
 | 
					      (build-system emacs-build-system)
 | 
				
			||||||
      (propagated-inputs
 | 
					      (propagated-inputs
 | 
				
			||||||
       `(("emacs-dash" ,emacs-dash)
 | 
					       `(("emacs-dash" ,emacs-dash)
 | 
				
			||||||
| 
						 | 
					@ -8553,7 +8741,9 @@ the actual transformations.")
 | 
				
			||||||
      (synopsis
 | 
					      (synopsis
 | 
				
			||||||
       "Collection of useful dired additions")
 | 
					       "Collection of useful dired additions")
 | 
				
			||||||
      (description
 | 
					      (description
 | 
				
			||||||
       "Collection of Emacs dired mode additions:
 | 
					       "This package provides the following collection of Emacs dired mode
 | 
				
			||||||
 | 
					additions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@itemize
 | 
					@itemize
 | 
				
			||||||
@item dired-avfs
 | 
					@item dired-avfs
 | 
				
			||||||
@item dired-columns
 | 
					@item dired-columns
 | 
				
			||||||
| 
						 | 
					@ -8623,6 +8813,32 @@ available key bindings that follow C-x (or as many as space allows given your
 | 
				
			||||||
settings).")
 | 
					settings).")
 | 
				
			||||||
    (license license:gpl3+)))
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public emacs-hercules
 | 
				
			||||||
 | 
					  (let ((commit "3345904a0dab4c7a4d4478f0766f1d9f5d1bb501")
 | 
				
			||||||
 | 
					        (revision "1"))
 | 
				
			||||||
 | 
					    (package
 | 
				
			||||||
 | 
					      (name "emacs-hercules")
 | 
				
			||||||
 | 
					      (version (git-version "0.2" revision commit))
 | 
				
			||||||
 | 
					      (source
 | 
				
			||||||
 | 
					       (origin
 | 
				
			||||||
 | 
					         (method git-fetch)
 | 
				
			||||||
 | 
					         (uri (git-reference
 | 
				
			||||||
 | 
					               (url "https://gitlab.com/jjzmajic/hercules.el.git")
 | 
				
			||||||
 | 
					               (commit commit)))
 | 
				
			||||||
 | 
					         (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					         (sha256
 | 
				
			||||||
 | 
					          (base32 "0cpq8h6l47nqhzch6snax5yrhxl8p4wn35q13ci35lj3iq8kmlk8"))))
 | 
				
			||||||
 | 
					      (build-system emacs-build-system)
 | 
				
			||||||
 | 
					      (propagated-inputs
 | 
				
			||||||
 | 
					       `(("emacs-which-key" ,emacs-which-key)))
 | 
				
			||||||
 | 
					      (home-page "https://gitlab.com/jjzmajic/hercules.el")
 | 
				
			||||||
 | 
					      (synopsis "Call a chain of related commands without repeated prefix keys")
 | 
				
			||||||
 | 
					      (description
 | 
				
			||||||
 | 
					       "This package provides sticky-key-like functionality to obviate the
 | 
				
			||||||
 | 
					need for repeated prefix-key sequences, and can reuse existing keymaps. The
 | 
				
			||||||
 | 
					list of commands is displayed in a handy popup.")
 | 
				
			||||||
 | 
					      (license license:gpl3+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public emacs-ws-butler
 | 
					(define-public emacs-ws-butler
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "emacs-ws-butler")
 | 
					    (name "emacs-ws-butler")
 | 
				
			||||||
| 
						 | 
					@ -10433,18 +10649,21 @@ as well as functions for navigating between these headings.")
 | 
				
			||||||
    (license license:gpl3+)))
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public emacs-org-super-agenda
 | 
					(define-public emacs-org-super-agenda
 | 
				
			||||||
 | 
					  ;; emacs-org-sidebar depends on a newer commit than the latest release version.
 | 
				
			||||||
 | 
					  (let ((commit "375bde4ca72494ac88a2a9738754f047fe45cc4e")
 | 
				
			||||||
 | 
					        (revision "1"))
 | 
				
			||||||
    (package
 | 
					    (package
 | 
				
			||||||
      (name "emacs-org-super-agenda")
 | 
					      (name "emacs-org-super-agenda")
 | 
				
			||||||
   (version "1.1")
 | 
					      (version (git-version "1.1.1" revision commit))
 | 
				
			||||||
      (source (origin
 | 
					      (source (origin
 | 
				
			||||||
                (method git-fetch)
 | 
					                (method git-fetch)
 | 
				
			||||||
                (uri (git-reference
 | 
					                (uri (git-reference
 | 
				
			||||||
                      (url "https://github.com/alphapapa/org-super-agenda")
 | 
					                      (url "https://github.com/alphapapa/org-super-agenda")
 | 
				
			||||||
                  (commit version)))
 | 
					                      (commit commit)))
 | 
				
			||||||
                (file-name (git-file-name name version))
 | 
					                (file-name (git-file-name name version))
 | 
				
			||||||
                (sha256
 | 
					                (sha256
 | 
				
			||||||
                 (base32
 | 
					                 (base32
 | 
				
			||||||
              "0vzf91lsxnhwf52kvm8ycpf0wb9c8l91689vyhwgv4wz8q6cvjwp"))))
 | 
					                  "0hrwf02fqjm0d9gj146ax67ib76093qpqh7066dcxj2gy20625yj"))))
 | 
				
			||||||
      (build-system emacs-build-system)
 | 
					      (build-system emacs-build-system)
 | 
				
			||||||
      (propagated-inputs
 | 
					      (propagated-inputs
 | 
				
			||||||
       `(("emacs-org" ,emacs-org)
 | 
					       `(("emacs-org" ,emacs-org)
 | 
				
			||||||
| 
						 | 
					@ -10455,7 +10674,7 @@ as well as functions for navigating between these headings.")
 | 
				
			||||||
      (synopsis "Supercharged Org agenda")
 | 
					      (synopsis "Supercharged Org agenda")
 | 
				
			||||||
      (description "This package allows items in the Org agenda to be grouped
 | 
					      (description "This package allows items in the Org agenda to be grouped
 | 
				
			||||||
into sections while preserving the structure imposed by any timestamps.")
 | 
					into sections while preserving the structure imposed by any timestamps.")
 | 
				
			||||||
   (license license:gpl3+)))
 | 
					      (license license:gpl3+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public emacs-org-make-toc
 | 
					(define-public emacs-org-make-toc
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -12676,6 +12895,29 @@ When @code{gac-automatically-push-p} is non-nil, it also tries to push to
 | 
				
			||||||
the current upstream.")
 | 
					the current upstream.")
 | 
				
			||||||
    (license license:gpl3+)))
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public emacs-scroll-on-drag
 | 
				
			||||||
 | 
					  (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
 | 
				
			||||||
 | 
					        (revision "1"))
 | 
				
			||||||
 | 
					    (package
 | 
				
			||||||
 | 
					      (name "emacs-scroll-on-drag")
 | 
				
			||||||
 | 
					      (version (git-version "0.1" revision commit))
 | 
				
			||||||
 | 
					      (source
 | 
				
			||||||
 | 
					       (origin
 | 
				
			||||||
 | 
					         (method git-fetch)
 | 
				
			||||||
 | 
					         (uri (git-reference
 | 
				
			||||||
 | 
					               (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
 | 
				
			||||||
 | 
					               (commit commit)))
 | 
				
			||||||
 | 
					         (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					         (sha256
 | 
				
			||||||
 | 
					          (base32
 | 
				
			||||||
 | 
					           "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
 | 
				
			||||||
 | 
					      (build-system emacs-build-system)
 | 
				
			||||||
 | 
					      (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
 | 
				
			||||||
 | 
					      (synopsis "Interactive scrolling")
 | 
				
			||||||
 | 
					      (description "This package permits scrolling at increasing speeds based
 | 
				
			||||||
 | 
					on drag distance.")
 | 
				
			||||||
 | 
					      (license license:gpl3+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public emacs-company-restclient
 | 
					(define-public emacs-company-restclient
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "emacs-company-restclient")
 | 
					    (name "emacs-company-restclient")
 | 
				
			||||||
| 
						 | 
					@ -13692,12 +13934,11 @@ server with @code{M-x pinentry-start}.")
 | 
				
			||||||
      (license license:gpl3+))))
 | 
					      (license license:gpl3+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public emacs-so-long
 | 
					(define-public emacs-so-long
 | 
				
			||||||
  (let ((commit "3ebe97decdb5cbbfba82ca686e0ad2c7d2722b4a")
 | 
					  (let ((commit "cfae473b1bf65f78ddb015159e667ec0103d881c")
 | 
				
			||||||
        (version "1.0")
 | 
					        (revision "2"))
 | 
				
			||||||
        (revision "1"))
 | 
					 | 
				
			||||||
    (package
 | 
					    (package
 | 
				
			||||||
      (name "emacs-so-long")
 | 
					      (name "emacs-so-long")
 | 
				
			||||||
      (version (git-version version revision commit))
 | 
					      (version (git-version "1.0" revision commit))
 | 
				
			||||||
      (source
 | 
					      (source
 | 
				
			||||||
       (origin
 | 
					       (origin
 | 
				
			||||||
         (method git-fetch)
 | 
					         (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -13707,7 +13948,7 @@ server with @code{M-x pinentry-start}.")
 | 
				
			||||||
         (file-name (git-file-name name version))
 | 
					         (file-name (git-file-name name version))
 | 
				
			||||||
         (sha256
 | 
					         (sha256
 | 
				
			||||||
          (base32
 | 
					          (base32
 | 
				
			||||||
           "0fi71g5rsdsi978jz8406k8hvzgnssm9wxar8yqfhs97178r9s5m"))))
 | 
					           "0g943n5cl9lz5s7hszg6yvp10xd1xvd8mfgxyg0yckmp8fqkswin"))))
 | 
				
			||||||
      (build-system emacs-build-system)
 | 
					      (build-system emacs-build-system)
 | 
				
			||||||
      (home-page "https://www.emacswiki.org/emacs/SoLong")
 | 
					      (home-page "https://www.emacswiki.org/emacs/SoLong")
 | 
				
			||||||
      (synopsis "Improve performance in files with long lines")
 | 
					      (synopsis "Improve performance in files with long lines")
 | 
				
			||||||
| 
						 | 
					@ -14142,7 +14383,7 @@ buffers – other modes on the TODO list).
 | 
				
			||||||
(define-public emacs-magit-todos
 | 
					(define-public emacs-magit-todos
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "emacs-magit-todos")
 | 
					    (name "emacs-magit-todos")
 | 
				
			||||||
    (version "1.2")
 | 
					    (version "1.3")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -14152,7 +14393,7 @@ buffers – other modes on the TODO list).
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "17a18gszbypz82bj36xbfyykc4s9rz83vwmpxvlf65svhd51c0nh"))))
 | 
					         "0gfm6wn2a4v5i9lfsvvin0kwpr9n96ddm3z4yf50jd3kg2igzry1"))))
 | 
				
			||||||
    (build-system emacs-build-system)
 | 
					    (build-system emacs-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("emacs-async" ,emacs-async)
 | 
					     `(("emacs-async" ,emacs-async)
 | 
				
			||||||
| 
						 | 
					@ -16189,7 +16430,7 @@ previewed by scrolling up and down within a @code{dired} buffer.")
 | 
				
			||||||
(define-public emacs-counsel-etags
 | 
					(define-public emacs-counsel-etags
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "emacs-counsel-etags")
 | 
					    (name "emacs-counsel-etags")
 | 
				
			||||||
    (version "1.8.4")
 | 
					    (version "1.8.7")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method git-fetch)
 | 
					       (method git-fetch)
 | 
				
			||||||
| 
						 | 
					@ -16199,7 +16440,7 @@ previewed by scrolling up and down within a @code{dired} buffer.")
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "14my9jvxl26a5yn381h5pi5481y9d9gyk7wnxxd0s4sjc964c5h5"))))
 | 
					         "0vjcjspfrz1csnmfi6r7p7f070a496adxkqnsxwx1gx8cpylwp1g"))))
 | 
				
			||||||
    (build-system emacs-build-system)
 | 
					    (build-system emacs-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("emacs-ivy" ,emacs-ivy)))
 | 
					     `(("emacs-ivy" ,emacs-ivy)))
 | 
				
			||||||
| 
						 | 
					@ -16632,6 +16873,30 @@ provided.  Those alternative commands are and bound by default to their
 | 
				
			||||||
corresponding Evil keys.")
 | 
					corresponding Evil keys.")
 | 
				
			||||||
      (license license:expat))))
 | 
					      (license license:expat))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public emacs-evil-traces
 | 
				
			||||||
 | 
					  (let ((commit "b41b7432b8110378c199a3d25af464083777f453")
 | 
				
			||||||
 | 
					        (revision "1"))
 | 
				
			||||||
 | 
					    (package
 | 
				
			||||||
 | 
					      (name "emacs-evil-traces")
 | 
				
			||||||
 | 
					      (version (git-version "0.0.1" revision commit))
 | 
				
			||||||
 | 
					      (source (origin
 | 
				
			||||||
 | 
					                (method git-fetch)
 | 
				
			||||||
 | 
					                (uri (git-reference
 | 
				
			||||||
 | 
					                      (url "https://github.com/mamapanda/evil-traces.git")
 | 
				
			||||||
 | 
					                      (commit commit)))
 | 
				
			||||||
 | 
					                (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					                (sha256
 | 
				
			||||||
 | 
					                 (base32
 | 
				
			||||||
 | 
					                  "0a15f2saynz9fws1h5s7py3cshsk4xs1kwgwj1m5rsin36g0j6hc"))))
 | 
				
			||||||
 | 
					      (build-system emacs-build-system)
 | 
				
			||||||
 | 
					      (propagated-inputs
 | 
				
			||||||
 | 
					       `(("emacs-evil" ,emacs-evil)))
 | 
				
			||||||
 | 
					      (home-page "https://github.com/mamapanda/evil-traces")
 | 
				
			||||||
 | 
					      (synopsis "Visual hints for @code{evil-ex}")
 | 
				
			||||||
 | 
					      (description "This package adds visual hints to certain @code{ex}
 | 
				
			||||||
 | 
					commands in @code{evil-mode}.")
 | 
				
			||||||
 | 
					      (license license:gpl3+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public emacs-xterm-color
 | 
					(define-public emacs-xterm-color
 | 
				
			||||||
  (let ((commit "a452ab38a7cfae97078062ff8885b5d74fd1e5a6")
 | 
					  (let ((commit "a452ab38a7cfae97078062ff8885b5d74fd1e5a6")
 | 
				
			||||||
        (version "1.8")
 | 
					        (version "1.8")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -119,8 +119,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; Building from recent Git because the official 5.0 release no longer builds.
 | 
					;; Building from recent Git because the official 5.0 release no longer builds.
 | 
				
			||||||
(define-public dolphin-emu
 | 
					(define-public dolphin-emu
 | 
				
			||||||
  (let ((commit "2c57e709d0f9e4010a4415de4192de887e37f187")
 | 
					  (let ((commit "24718c1a389e4f51db974575cd15c372485b92e2")
 | 
				
			||||||
        (revision "5"))
 | 
					        (revision "6"))
 | 
				
			||||||
    (package
 | 
					    (package
 | 
				
			||||||
      (name "dolphin-emu")
 | 
					      (name "dolphin-emu")
 | 
				
			||||||
      (version (git-version "5.0" revision commit))
 | 
					      (version (git-version "5.0" revision commit))
 | 
				
			||||||
| 
						 | 
					@ -146,7 +146,7 @@
 | 
				
			||||||
             #t))
 | 
					             #t))
 | 
				
			||||||
         (sha256
 | 
					         (sha256
 | 
				
			||||||
          (base32
 | 
					          (base32
 | 
				
			||||||
           "0aszfdfvs7yg4bmrd3qxwsiz7hx3mrj29f4aw86bz7h9j7hkh57f"))))
 | 
					           "1d92rhnw307j3m6swk6bycb8fyc7vw2hfgakd5hpsc4qw65vxfq8"))))
 | 
				
			||||||
      (build-system cmake-build-system)
 | 
					      (build-system cmake-build-system)
 | 
				
			||||||
      (arguments
 | 
					      (arguments
 | 
				
			||||||
       '(#:tests? #f
 | 
					       '(#:tests? #f
 | 
				
			||||||
| 
						 | 
					@ -250,12 +250,6 @@ turbo speed, networked multiplayer, and graphical enhancements.")
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "02i648i50dwicv1vaql15rccv4g8h5blf5g6inv67lrfxpbkvlf0"))))
 | 
					                "02i648i50dwicv1vaql15rccv4g8h5blf5g6inv67lrfxpbkvlf0"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					 | 
				
			||||||
     `(#:phases (modify-phases %standard-phases
 | 
					 | 
				
			||||||
                  (add-after
 | 
					 | 
				
			||||||
                   'unpack 'autogen.sh
 | 
					 | 
				
			||||||
                   (lambda _
 | 
					 | 
				
			||||||
                     (invoke "sh" "autogen.sh"))))))
 | 
					 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("autoconf" ,autoconf)
 | 
					     `(("autoconf" ,autoconf)
 | 
				
			||||||
       ("automake" ,automake)))
 | 
					       ("automake" ,automake)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,7 +33,7 @@
 | 
				
			||||||
(define-public enchant
 | 
					(define-public enchant
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "enchant")
 | 
					    (name "enchant")
 | 
				
			||||||
    (version "2.2.4")
 | 
					    (version "2.2.5")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "https://github.com/AbiWord/enchant/releases"
 | 
					              (uri (string-append "https://github.com/AbiWord/enchant/releases"
 | 
				
			||||||
| 
						 | 
					@ -41,7 +41,7 @@
 | 
				
			||||||
                                  version ".tar.gz"))
 | 
					                                  version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1p6a3qmrh8bjzds6x7rg9da0ir44gg804jzkf634h39wsa4vdmpm"))))
 | 
					                "0iqwzs11i9fvqdxv5kn0svcn2mzymn657qf3j66lg8dx1nh4xkpz"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:configure-flags '("--disable-static"
 | 
					     '(#:configure-flags '("--disable-static"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -131,6 +131,11 @@ topology functions.")
 | 
				
			||||||
                   (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
 | 
					                   (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
 | 
				
			||||||
                   (goa-path (string-append
 | 
					                   (goa-path (string-append
 | 
				
			||||||
                              (assoc-ref inputs "gnome-online-accounts")
 | 
					                              (assoc-ref inputs "gnome-online-accounts")
 | 
				
			||||||
 | 
					                              "/lib:"
 | 
				
			||||||
 | 
					                              (assoc-ref inputs "gnome-online-accounts:lib")
 | 
				
			||||||
 | 
					                              "/lib"))
 | 
				
			||||||
 | 
					                   (geocode-glib-path (string-append
 | 
				
			||||||
 | 
					                                       (assoc-ref inputs "geocode-glib")
 | 
				
			||||||
                                       "/lib"))
 | 
					                                       "/lib"))
 | 
				
			||||||
                   (webkitgtk-path (string-append
 | 
					                   (webkitgtk-path (string-append
 | 
				
			||||||
                                    (assoc-ref inputs "webkitgtk")
 | 
					                                    (assoc-ref inputs "webkitgtk")
 | 
				
			||||||
| 
						 | 
					@ -141,7 +146,8 @@ topology functions.")
 | 
				
			||||||
                 ;; There seems to be no way to embed the path of
 | 
					                 ;; There seems to be no way to embed the path of
 | 
				
			||||||
                 ;; libgoa-1.0.so.0, libwebkit2gtk-4.0.so.37 and
 | 
					                 ;; libgoa-1.0.so.0, libwebkit2gtk-4.0.so.37 and
 | 
				
			||||||
                 ;; libjavascriptcoregtk-4.0.so.18.
 | 
					                 ;; libjavascriptcoregtk-4.0.so.18.
 | 
				
			||||||
                 `("LD_LIBRARY_PATH" ":" prefix (,goa-path ,webkitgtk-path)))
 | 
					                 `("LD_LIBRARY_PATH" ":" prefix
 | 
				
			||||||
 | 
					                   (,goa-path ,webkitgtk-path ,geocode-glib-path)))
 | 
				
			||||||
               #t))))))
 | 
					               #t))))))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("gobject-introspection" ,gobject-introspection)
 | 
					     `(("gobject-introspection" ,gobject-introspection)
 | 
				
			||||||
| 
						 | 
					@ -163,6 +169,7 @@ topology functions.")
 | 
				
			||||||
       ("gjs" ,gjs)
 | 
					       ("gjs" ,gjs)
 | 
				
			||||||
       ("glib" ,glib)
 | 
					       ("glib" ,glib)
 | 
				
			||||||
       ("gnome-online-accounts" ,gnome-online-accounts)
 | 
					       ("gnome-online-accounts" ,gnome-online-accounts)
 | 
				
			||||||
 | 
					       ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
 | 
				
			||||||
       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
 | 
					       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
 | 
				
			||||||
       ("rest" ,rest)
 | 
					       ("rest" ,rest)
 | 
				
			||||||
       ("webkitgtk" ,webkitgtk)))
 | 
					       ("webkitgtk" ,webkitgtk)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,6 +38,7 @@
 | 
				
			||||||
;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
 | 
					;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
 | 
				
			||||||
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
 | 
					;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
 | 
				
			||||||
;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
 | 
					;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
 | 
				
			||||||
 | 
					;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -8152,15 +8153,18 @@ advanced image management tool")
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("cairo" ,cairo)
 | 
					     `(("cairo" ,cairo)
 | 
				
			||||||
       ("gobject-introspection" ,gobject-introspection)
 | 
					       ("gobject-introspection" ,gobject-introspection)
 | 
				
			||||||
 | 
					       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
 | 
				
			||||||
       ("python2-pycairo" ,python2-pycairo)
 | 
					       ("python2-pycairo" ,python2-pycairo)
 | 
				
			||||||
       ("python2-pygobject" ,python2-pygobject)
 | 
					       ("python2-pygobject" ,python2-pygobject)
 | 
				
			||||||
       ("python2-psutil" ,python2-psutil)
 | 
					       ("python2-psutil" ,python2-psutil)
 | 
				
			||||||
       ("vte" ,vte)))
 | 
					       ("vte" ,vte)))
 | 
				
			||||||
    (propagated-inputs
 | 
					 | 
				
			||||||
     ;; Terminator refuses to start when these are not present.
 | 
					 | 
				
			||||||
     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
 | 
					 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:python ,python-2                          ;Python 3 not supported
 | 
					     `(#:python ,python-2                          ; Python 3 isn't supported
 | 
				
			||||||
 | 
					       #:imported-modules ((guix build glib-or-gtk-build-system)
 | 
				
			||||||
 | 
					                           ,@%python-build-system-modules)
 | 
				
			||||||
 | 
					       #:modules ((guix build python-build-system)
 | 
				
			||||||
 | 
					                  ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
 | 
				
			||||||
 | 
					                  (guix build utils))
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-after
 | 
					         (add-after
 | 
				
			||||||
| 
						 | 
					@ -8171,10 +8175,60 @@ advanced image management tool")
 | 
				
			||||||
              (wrap-program prog
 | 
					              (wrap-program prog
 | 
				
			||||||
                `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
 | 
					                `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
 | 
				
			||||||
                `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
 | 
					                `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
 | 
				
			||||||
              #t))))))
 | 
					              #t)))
 | 
				
			||||||
 | 
					         (add-after 'wrap-program 'glib-or-gtk-wrap
 | 
				
			||||||
 | 
					           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
 | 
				
			||||||
    (home-page "https://gnometerminator.blogspot.com/")
 | 
					    (home-page "https://gnometerminator.blogspot.com/")
 | 
				
			||||||
    (synopsis "Store and run multiple GNOME terminals in one window")
 | 
					    (synopsis "Store and run multiple GNOME terminals in one window")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
     "Terminator allows you to run multiple GNOME terminals in a grid and
 | 
					     "Terminator allows you to run multiple GNOME terminals in a grid and
 | 
				
			||||||
+tabs, and it supports drag and drop re-ordering of terminals.")
 | 
					+tabs, and it supports drag and drop re-ordering of terminals.")
 | 
				
			||||||
    (license license:gpl2)))
 | 
					    (license license:gpl2)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public libhandy
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "libhandy")
 | 
				
			||||||
 | 
					    (version "0.0.10")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method git-fetch)
 | 
				
			||||||
 | 
					       (uri (git-reference
 | 
				
			||||||
 | 
					             (url "https://source.puri.sm/Librem5/libhandy")
 | 
				
			||||||
 | 
					             (commit (string-append "v" version))))
 | 
				
			||||||
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "1702hbdqhfpgw0c4vj2ag08vgl83byiryrbngbq11b9azmj3jhzs"))))
 | 
				
			||||||
 | 
					    (build-system meson-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:configure-flags
 | 
				
			||||||
 | 
					       '("-Dglade_catalog=disabled"
 | 
				
			||||||
 | 
					         "-Dgtk_doc=true")
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-after 'unpack 'disable-broken-test
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             ;; This test fails for unknown reasons
 | 
				
			||||||
 | 
					             (substitute* "tests/meson.build"
 | 
				
			||||||
 | 
					               (("'test-dialog',") ""))
 | 
				
			||||||
 | 
					             #t))
 | 
				
			||||||
 | 
					         (add-before 'check 'pre-check
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             ;; Tests require a running X server.
 | 
				
			||||||
 | 
					             (system "Xvfb :1 &")
 | 
				
			||||||
 | 
					             (setenv "DISPLAY" ":1")
 | 
				
			||||||
 | 
					             #t)))))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("gtk+" ,gtk+)))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("glib:bin" ,glib "bin")
 | 
				
			||||||
 | 
					       ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
 | 
				
			||||||
 | 
					       ("vala" ,vala)
 | 
				
			||||||
 | 
					       ("gtk-doc" ,gtk-doc)
 | 
				
			||||||
 | 
					       ("pkg-config" ,pkg-config)
 | 
				
			||||||
 | 
					       ("gettext" ,gettext-minimal)
 | 
				
			||||||
 | 
					       ("xorg-server" ,xorg-server)))
 | 
				
			||||||
 | 
					    (home-page "https://source.puri.sm/Librem5/libhandy")
 | 
				
			||||||
 | 
					    (synopsis "Library full of GTK+ widgets for mobile phones")
 | 
				
			||||||
 | 
					    (description "The aim of the handy library is to help with developing user
 | 
				
			||||||
 | 
					intefaces for mobile devices using GTK+.")
 | 
				
			||||||
 | 
					    (license license:lgpl2.1+)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -595,9 +595,6 @@ collection of tools for doing simple manipulations of TIFF images.")
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:phases
 | 
					     '(#:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-after 'unpack 'autogen
 | 
					 | 
				
			||||||
           (lambda _
 | 
					 | 
				
			||||||
             (invoke "sh" "autobuild")))
 | 
					 | 
				
			||||||
         (add-after 'unpack 'patch-reg-wrapper
 | 
					         (add-after 'unpack 'patch-reg-wrapper
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
             (substitute* "prog/reg_wrapper.sh"
 | 
					             (substitute* "prog/reg_wrapper.sh"
 | 
				
			||||||
| 
						 | 
					@ -1108,14 +1105,14 @@ channels.")
 | 
				
			||||||
(define-public exiv2
 | 
					(define-public exiv2
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "exiv2")
 | 
					    (name "exiv2")
 | 
				
			||||||
    (version "0.27.1")
 | 
					    (version "0.27.2")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (string-append "https://www.exiv2.org/builds/exiv2-" version
 | 
					       (uri (string-append "https://www.exiv2.org/builds/exiv2-" version
 | 
				
			||||||
                           "-Source.tar.gz"))
 | 
					                           "-Source.tar.gz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "109hbfk63dh14fz20ivq20gcclb9jj9jmh48w4lcn6zxh1ljh9gi"))))
 | 
					        (base32 "0gqminvj14xm3rgbnydbywf22608js80rp7nmxxk4497j5mzali6"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments '(#:tests? #f))          ; no test suite
 | 
					    (arguments '(#:tests? #f))          ; no test suite
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
| 
						 | 
					@ -1240,12 +1237,6 @@ ISO/IEC 15444-1).")
 | 
				
			||||||
     `(("autoconf" ,autoconf)
 | 
					     `(("autoconf" ,autoconf)
 | 
				
			||||||
       ("automake" ,automake)
 | 
					       ("automake" ,automake)
 | 
				
			||||||
       ("libtool" ,libtool)))
 | 
					       ("libtool" ,libtool)))
 | 
				
			||||||
    (arguments
 | 
					 | 
				
			||||||
     '(#:phases
 | 
					 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					 | 
				
			||||||
         (add-after 'unpack 'autogen
 | 
					 | 
				
			||||||
           (lambda _
 | 
					 | 
				
			||||||
             (invoke "sh" "autogen.sh"))))))
 | 
					 | 
				
			||||||
    (synopsis "Scaling, colorspace conversion, and dithering library")
 | 
					    (synopsis "Scaling, colorspace conversion, and dithering library")
 | 
				
			||||||
    (description "Zimg implements the commonly required image processing basics
 | 
					    (description "Zimg implements the commonly required image processing basics
 | 
				
			||||||
of scaling, colorspace conversion, and depth conversion.  A simple API enables
 | 
					of scaling, colorspace conversion, and depth conversion.  A simple API enables
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -41,7 +41,7 @@
 | 
				
			||||||
(define-public libevent
 | 
					(define-public libevent
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "libevent")
 | 
					    (name "libevent")
 | 
				
			||||||
    (version "2.1.10")
 | 
					    (version "2.1.11")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
             (method url-fetch)
 | 
					             (method url-fetch)
 | 
				
			||||||
             (uri (string-append
 | 
					             (uri (string-append
 | 
				
			||||||
| 
						 | 
					@ -49,7 +49,7 @@
 | 
				
			||||||
                   version "-stable/libevent-" version "-stable.tar.gz"))
 | 
					                   version "-stable/libevent-" version "-stable.tar.gz"))
 | 
				
			||||||
             (sha256
 | 
					             (sha256
 | 
				
			||||||
              (base32
 | 
					              (base32
 | 
				
			||||||
               "1c25928gdv495clxk2v1d4gkr5py7ack4gx2n7d13frnld0syr78"))))
 | 
					               "0g988zqm45sj1hlhhz4il5z4dpi5dl74hzjwzl4md37a09iaqnx6"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
      ;; This skips some of the tests which fail on armhf and aarch64.
 | 
					      ;; This skips some of the tests which fail on armhf and aarch64.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -350,42 +350,42 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
 | 
				
			||||||
                        "linux-" version ".tar.xz"))
 | 
					                        "linux-" version ".tar.xz"))
 | 
				
			||||||
    (sha256 hash)))
 | 
					    (sha256 hash)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public linux-libre-5.2-version "5.2.5")
 | 
					(define-public linux-libre-5.2-version "5.2.7")
 | 
				
			||||||
(define-public linux-libre-5.2-pristine-source
 | 
					(define-public linux-libre-5.2-pristine-source
 | 
				
			||||||
  (let ((version linux-libre-5.2-version)
 | 
					  (let ((version linux-libre-5.2-version)
 | 
				
			||||||
        (hash (base32 "15ndscsp3yqgas901g6inpmyvinz4cwr5y3md516j2pr8cl40if6")))
 | 
					        (hash (base32 "1aazhf0v8bv4py0wnqkdmiy80fchnix431l0hda2fkwsdf9njgnv")))
 | 
				
			||||||
   (make-linux-libre-source version
 | 
					   (make-linux-libre-source version
 | 
				
			||||||
                            (%upstream-linux-source version hash)
 | 
					                            (%upstream-linux-source version hash)
 | 
				
			||||||
                            deblob-scripts-5.2)))
 | 
					                            deblob-scripts-5.2)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public linux-libre-4.19-version "4.19.63")
 | 
					(define-public linux-libre-4.19-version "4.19.65")
 | 
				
			||||||
(define-public linux-libre-4.19-pristine-source
 | 
					(define-public linux-libre-4.19-pristine-source
 | 
				
			||||||
  (let ((version linux-libre-4.19-version)
 | 
					  (let ((version linux-libre-4.19-version)
 | 
				
			||||||
        (hash (base32 "0pfjwpa6szvdr941y13806hlsgsbslfsvkrd5534p1iip5h8g63m")))
 | 
					        (hash (base32 "1pyyhr2airxzk4c6n7140yl723dc7yw7igy5i5i2ih0nd4c3k6g5")))
 | 
				
			||||||
    (make-linux-libre-source version
 | 
					    (make-linux-libre-source version
 | 
				
			||||||
                             (%upstream-linux-source version hash)
 | 
					                             (%upstream-linux-source version hash)
 | 
				
			||||||
                             deblob-scripts-4.19)))
 | 
					                             deblob-scripts-4.19)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public linux-libre-4.14-version "4.14.135")
 | 
					(define-public linux-libre-4.14-version "4.14.137")
 | 
				
			||||||
(define-public linux-libre-4.14-pristine-source
 | 
					(define-public linux-libre-4.14-pristine-source
 | 
				
			||||||
  (let ((version linux-libre-4.14-version)
 | 
					  (let ((version linux-libre-4.14-version)
 | 
				
			||||||
        (hash (base32 "0x2v0pj4hjb71qkxbqn4ymg6zmyabp91kylyzd270nbig7i234a2")))
 | 
					        (hash (base32 "0a72pab0zxy28i02glnzj6avzcf0a4gxxnadbdd343rh549yky4k")))
 | 
				
			||||||
    (make-linux-libre-source version
 | 
					    (make-linux-libre-source version
 | 
				
			||||||
                             (%upstream-linux-source version hash)
 | 
					                             (%upstream-linux-source version hash)
 | 
				
			||||||
                             deblob-scripts-4.14)))
 | 
					                             deblob-scripts-4.14)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public linux-libre-4.9-version "4.9.186")
 | 
					(define-public linux-libre-4.9-version "4.9.188")
 | 
				
			||||||
(define-public linux-libre-4.9-pristine-source
 | 
					(define-public linux-libre-4.9-pristine-source
 | 
				
			||||||
  (let ((version linux-libre-4.9-version)
 | 
					  (let ((version linux-libre-4.9-version)
 | 
				
			||||||
        (hash (base32 "0sjbp7m6d625rw06wv34a0805d1lgldii4pxiqfpja871m1q8914")))
 | 
					        (hash (base32 "08p2cfc9982b804vmkapfasgipf6969g625ih7z3062xn99rhlr7")))
 | 
				
			||||||
    (make-linux-libre-source version
 | 
					    (make-linux-libre-source version
 | 
				
			||||||
                             (%upstream-linux-source version hash)
 | 
					                             (%upstream-linux-source version hash)
 | 
				
			||||||
                             deblob-scripts-4.9)))
 | 
					                             deblob-scripts-4.9)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public linux-libre-4.4-version "4.4.186")
 | 
					(define-public linux-libre-4.4-version "4.4.188")
 | 
				
			||||||
(define-public linux-libre-4.4-pristine-source
 | 
					(define-public linux-libre-4.4-pristine-source
 | 
				
			||||||
  (let ((version linux-libre-4.4-version)
 | 
					  (let ((version linux-libre-4.4-version)
 | 
				
			||||||
        (hash (base32 "113rjf8842glzi23y1g1yrwncihv2saah6wz0r726r06bk9p64hb")))
 | 
					        (hash (base32 "1llxamm62kgqd7dig98n8m16qas8dd8rrkmwpfcdgyf8rag216ff")))
 | 
				
			||||||
    (make-linux-libre-source version
 | 
					    (make-linux-libre-source version
 | 
				
			||||||
                             (%upstream-linux-source version hash)
 | 
					                             (%upstream-linux-source version hash)
 | 
				
			||||||
                             deblob-scripts-4.4)))
 | 
					                             deblob-scripts-4.4)))
 | 
				
			||||||
| 
						 | 
					@ -1402,15 +1402,18 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
 | 
				
			||||||
(define-public strace
 | 
					(define-public strace
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "strace")
 | 
					    (name "strace")
 | 
				
			||||||
    (version "5.1")
 | 
					    (version "5.2")
 | 
				
			||||||
    (home-page "https://strace.io")
 | 
					    (home-page "https://strace.io")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
             (method url-fetch)
 | 
					             (method url-fetch)
 | 
				
			||||||
             (uri (string-append home-page "/files/" version
 | 
					             (uri (string-append home-page "/files/" version
 | 
				
			||||||
                                 "/strace-" version ".tar.xz"))
 | 
					                                 "/strace-" version ".tar.xz"))
 | 
				
			||||||
 | 
					             ;; XXX Remove the 'regenerate-tests' phase below when
 | 
				
			||||||
 | 
					             ;; "strace-ipc-tests.patch" is no longer applied.
 | 
				
			||||||
 | 
					             (patches (search-patches "strace-ipc-tests.patch"))
 | 
				
			||||||
             (sha256
 | 
					             (sha256
 | 
				
			||||||
              (base32
 | 
					              (base32
 | 
				
			||||||
               "12wsga1v3rab24gr0mpfip7j7gwr90m8f9h6fviqxa3xgnwl38zm"))))
 | 
					               "1li49i75wrdw91hchyyd8spnzfcmxcfyfb5g9zbaza89aq4bq4ym"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:phases
 | 
					     '(#:phases
 | 
				
			||||||
| 
						 | 
					@ -1419,7 +1422,14 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
             (substitute* "strace.c"
 | 
					             (substitute* "strace.c"
 | 
				
			||||||
               (("/bin/sh") (which "sh")))
 | 
					               (("/bin/sh") (which "sh")))
 | 
				
			||||||
             #t)))
 | 
					             #t))
 | 
				
			||||||
 | 
					         (add-before 'configure 'regenerate-tests
 | 
				
			||||||
 | 
					           ;; XXX Remove this phase when "strace-ipc-tests.patch" is no longer
 | 
				
			||||||
 | 
					           ;; applied in the 'source' field above.  This phase is needed to
 | 
				
			||||||
 | 
					           ;; regenerate many other files from tests/gen_tests.in, which is
 | 
				
			||||||
 | 
					           ;; modified by the aforementioned patch.
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             (invoke "tests/gen_tests.sh"))))
 | 
				
			||||||
       ;; Don't fail if the architecture doesn't support different personalities.
 | 
					       ;; Don't fail if the architecture doesn't support different personalities.
 | 
				
			||||||
       #:configure-flags '("--enable-mpers=check")
 | 
					       #:configure-flags '("--enable-mpers=check")
 | 
				
			||||||
       ;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32459>.
 | 
					       ;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32459>.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -193,7 +193,7 @@ classification.")
 | 
				
			||||||
                (uri (svn-reference
 | 
					                (uri (svn-reference
 | 
				
			||||||
                      (url "http://svn.code.sf.net/p/ghmm/code/trunk")
 | 
					                      (url "http://svn.code.sf.net/p/ghmm/code/trunk")
 | 
				
			||||||
                      (revision svn-revision)))
 | 
					                      (revision svn-revision)))
 | 
				
			||||||
                (file-name (string-append name "-" version))
 | 
					                (file-name (string-append name "-" version "-checkout"))
 | 
				
			||||||
                (sha256
 | 
					                (sha256
 | 
				
			||||||
                 (base32
 | 
					                 (base32
 | 
				
			||||||
                  "0qbq1rqp94l530f043qzp8aw5lj7dng9wq0miffd7spd1ff638wq"))))
 | 
					                  "0qbq1rqp94l530f043qzp8aw5lj7dng9wq0miffd7spd1ff638wq"))))
 | 
				
			||||||
| 
						 | 
					@ -251,10 +251,7 @@ classification.")
 | 
				
			||||||
                  (string-append indent
 | 
					                  (string-append indent
 | 
				
			||||||
                                 "@unittest.skip(\"Disabled by Guix\")\n"
 | 
					                                 "@unittest.skip(\"Disabled by Guix\")\n"
 | 
				
			||||||
                                 line)))
 | 
					                                 line)))
 | 
				
			||||||
               #t))
 | 
					               #t)))))
 | 
				
			||||||
           (add-after 'disable-broken-tests 'autogen
 | 
					 | 
				
			||||||
             (lambda _
 | 
					 | 
				
			||||||
               (invoke "bash" "autogen.sh"))))))
 | 
					 | 
				
			||||||
      (inputs
 | 
					      (inputs
 | 
				
			||||||
       `(("python" ,python-2) ; only Python 2 is supported
 | 
					       `(("python" ,python-2) ; only Python 2 is supported
 | 
				
			||||||
         ("libxml2" ,libxml2)))
 | 
					         ("libxml2" ,libxml2)))
 | 
				
			||||||
| 
						 | 
					@ -821,8 +818,14 @@ computing environments.")
 | 
				
			||||||
             (setenv "HOME" "/tmp")
 | 
					             (setenv "HOME" "/tmp")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
             (invoke "pytest" "sklearn" "-m" "not network")))
 | 
					             (invoke "pytest" "sklearn" "-m" "not network")))
 | 
				
			||||||
         ;; FIXME: This fails with permission denied
 | 
					         (add-before 'reset-gzip-timestamps 'make-files-writable
 | 
				
			||||||
         (delete 'reset-gzip-timestamps))))
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             ;; Make sure .gz files are writable so that the
 | 
				
			||||||
 | 
					             ;; 'reset-gzip-timestamps' phase can do its work.
 | 
				
			||||||
 | 
					             (let ((out (assoc-ref outputs "out")))
 | 
				
			||||||
 | 
					               (for-each make-file-writable
 | 
				
			||||||
 | 
					                         (find-files out "\\.gz$"))
 | 
				
			||||||
 | 
					               #t))))))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("openblas" ,openblas)))
 | 
					     `(("openblas" ,openblas)))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1051,7 +1051,7 @@ useful features.")
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
      '(#:phases
 | 
					      '(#:phases
 | 
				
			||||||
        (modify-phases %standard-phases
 | 
					        (modify-phases %standard-phases
 | 
				
			||||||
          (add-after 'unpack 'autogen
 | 
					          (replace 'bootstrap
 | 
				
			||||||
            (lambda _
 | 
					            (lambda _
 | 
				
			||||||
              (setenv "NOCONFIGURE" "true")
 | 
					              (setenv "NOCONFIGURE" "true")
 | 
				
			||||||
              (invoke "sh" "autogen.sh"))))
 | 
					              (invoke "sh" "autogen.sh"))))
 | 
				
			||||||
| 
						 | 
					@ -1365,12 +1365,7 @@ It supports mbox/Maildir and its own dbox/mdbox formats.")
 | 
				
			||||||
     `(#:tests? #f ;No tests exist.
 | 
					     `(#:tests? #f ;No tests exist.
 | 
				
			||||||
       #:configure-flags (list (string-append "--with-dovecot="
 | 
					       #:configure-flags (list (string-append "--with-dovecot="
 | 
				
			||||||
                                              (assoc-ref %build-inputs "dovecot")
 | 
					                                              (assoc-ref %build-inputs "dovecot")
 | 
				
			||||||
                                              "/lib/dovecot"))
 | 
					                                              "/lib/dovecot"))))
 | 
				
			||||||
       #:phases
 | 
					 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					 | 
				
			||||||
         (add-after 'unpack 'autogen
 | 
					 | 
				
			||||||
           (lambda _
 | 
					 | 
				
			||||||
             (invoke "sh" "autogen.sh"))))))
 | 
					 | 
				
			||||||
    (home-page "https://0xacab.org/riseuplabs/trees")
 | 
					    (home-page "https://0xacab.org/riseuplabs/trees")
 | 
				
			||||||
    (synopsis "NaCL-based Dovecot email storage encryption plugin")
 | 
					    (synopsis "NaCL-based Dovecot email storage encryption plugin")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
| 
						 | 
					@ -1421,12 +1416,7 @@ using libsodium sealed boxes.
 | 
				
			||||||
       `(#:tests? #f ;No tests exist.
 | 
					       `(#:tests? #f ;No tests exist.
 | 
				
			||||||
         #:configure-flags (list (string-append "--with-dovecot="
 | 
					         #:configure-flags (list (string-append "--with-dovecot="
 | 
				
			||||||
                                                (assoc-ref %build-inputs "dovecot")
 | 
					                                                (assoc-ref %build-inputs "dovecot")
 | 
				
			||||||
                                                "/lib/dovecot"))
 | 
					                                                "/lib/dovecot"))))
 | 
				
			||||||
         #:phases
 | 
					 | 
				
			||||||
         (modify-phases %standard-phases
 | 
					 | 
				
			||||||
           (add-after 'unpack 'autogen
 | 
					 | 
				
			||||||
             (lambda _
 | 
					 | 
				
			||||||
               (invoke "sh" "autogen.sh"))))))
 | 
					 | 
				
			||||||
      (home-page "https://github.com/LuckyFellow/dovecot-libsodium-plugin")
 | 
					      (home-page "https://github.com/LuckyFellow/dovecot-libsodium-plugin")
 | 
				
			||||||
      (synopsis "Libsodium password hashing schemes plugin for Dovecot")
 | 
					      (synopsis "Libsodium password hashing schemes plugin for Dovecot")
 | 
				
			||||||
      (description
 | 
					      (description
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4333,14 +4333,14 @@ are noisy or are discontinuous at the solution.")
 | 
				
			||||||
(define-public r-desolve
 | 
					(define-public r-desolve
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-desolve")
 | 
					    (name "r-desolve")
 | 
				
			||||||
    (version "1.21")
 | 
					    (version "1.24")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
      (origin
 | 
					      (origin
 | 
				
			||||||
        (method url-fetch)
 | 
					        (method url-fetch)
 | 
				
			||||||
        (uri (cran-uri "deSolve" version))
 | 
					        (uri (cran-uri "deSolve" version))
 | 
				
			||||||
        (sha256
 | 
					        (sha256
 | 
				
			||||||
         (base32
 | 
					         (base32
 | 
				
			||||||
          "0qqc4mknw1jblzcmph1dg3k1p6w42yal0k1xjh8pqk7yb3a75hs5"))))
 | 
					          "0hkvspq0fp8j64l9zayab2l2nazazhwfgfym0jllh0xv5a12r99s"))))
 | 
				
			||||||
    (properties `((upstream-name . "deSolve")))
 | 
					    (properties `((upstream-name . "deSolve")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -65,7 +65,8 @@
 | 
				
			||||||
              "14460zhacxhswnzb36qfpd1f2wbk10qvksvm6wyq5hpvdgnw7ymv"))
 | 
					              "14460zhacxhswnzb36qfpd1f2wbk10qvksvm6wyq5hpvdgnw7ymv"))
 | 
				
			||||||
            (patches (search-patches "libmad-armv7-thumb-pt1.patch"
 | 
					            (patches (search-patches "libmad-armv7-thumb-pt1.patch"
 | 
				
			||||||
                                     "libmad-armv7-thumb-pt2.patch"
 | 
					                                     "libmad-armv7-thumb-pt2.patch"
 | 
				
			||||||
                                     "libmad-frame-length.patch"
 | 
					                                     "libmad-md_size.patch"
 | 
				
			||||||
 | 
					                                     "libmad-length-check.patch"
 | 
				
			||||||
                                     "libmad-mips-newgcc.patch"))))
 | 
					                                     "libmad-mips-newgcc.patch"))))
 | 
				
			||||||
   (build-system gnu-build-system)
 | 
					   (build-system gnu-build-system)
 | 
				
			||||||
   (arguments
 | 
					   (arguments
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1027,7 +1027,7 @@ the boot loader configuration.")
 | 
				
			||||||
(define-public flatpak
 | 
					(define-public flatpak
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
   (name "flatpak")
 | 
					   (name "flatpak")
 | 
				
			||||||
   (version "1.2.4")
 | 
					   (version "1.4.2")
 | 
				
			||||||
   (source
 | 
					   (source
 | 
				
			||||||
    (origin
 | 
					    (origin
 | 
				
			||||||
     (method url-fetch)
 | 
					     (method url-fetch)
 | 
				
			||||||
| 
						 | 
					@ -1035,7 +1035,7 @@ the boot loader configuration.")
 | 
				
			||||||
                         version "/flatpak-" version ".tar.xz"))
 | 
					                         version "/flatpak-" version ".tar.xz"))
 | 
				
			||||||
     (sha256
 | 
					     (sha256
 | 
				
			||||||
      (base32
 | 
					      (base32
 | 
				
			||||||
       "1qf3ys84fzv11z6f6li59rxjdjbyrv7cyi9539k73r9i9pckjr8v"))))
 | 
					       "08nmpp26mgv0vp3mlwk97rnp0j7i108h4hr9nllja19sjxnrlygj"))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   ;; Wrap 'flatpak' so that GIO_EXTRA_MODULES is set, thereby allowing GIO to
 | 
					   ;; Wrap 'flatpak' so that GIO_EXTRA_MODULES is set, thereby allowing GIO to
 | 
				
			||||||
   ;; find the TLS backend in glib-networking.
 | 
					   ;; find the TLS backend in glib-networking.
 | 
				
			||||||
| 
						 | 
					@ -1063,6 +1063,7 @@ the boot loader configuration.")
 | 
				
			||||||
   (inputs `(("appstream-glib" ,appstream-glib)
 | 
					   (inputs `(("appstream-glib" ,appstream-glib)
 | 
				
			||||||
             ("bubblewrap" ,bubblewrap)
 | 
					             ("bubblewrap" ,bubblewrap)
 | 
				
			||||||
             ("dconf" ,dconf)
 | 
					             ("dconf" ,dconf)
 | 
				
			||||||
 | 
					             ("fuse" ,fuse)
 | 
				
			||||||
             ("gdk-pixbuf" ,gdk-pixbuf)
 | 
					             ("gdk-pixbuf" ,gdk-pixbuf)
 | 
				
			||||||
             ("gpgme" ,gpgme)
 | 
					             ("gpgme" ,gpgme)
 | 
				
			||||||
             ("json-glib" ,json-glib)
 | 
					             ("json-glib" ,json-glib)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										49
									
								
								gnu/packages/patches/emacs-dired-toggle-sudo-emacs-26.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								gnu/packages/patches/emacs-dired-toggle-sudo-emacs-26.patch
									
										
									
									
									
										Normal 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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;
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
							
								
								
									
										819
									
								
								gnu/packages/patches/libmad-length-check.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										819
									
								
								gnu/packages/patches/libmad-length-check.patch
									
										
									
									
									
										Normal 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;
 | 
				
			||||||
							
								
								
									
										60
									
								
								gnu/packages/patches/libmad-md_size.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								gnu/packages/patches/libmad-md_size.patch
									
										
									
									
									
										Normal 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 -
 | 
				
			||||||
| 
						 | 
					@ -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)
 | 
					 | 
				
			||||||
							
								
								
									
										30
									
								
								gnu/packages/patches/strace-ipc-tests.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								gnu/packages/patches/strace-ipc-tests.patch
									
										
									
									
									
										Normal 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
 | 
				
			||||||
| 
						 | 
					@ -4082,7 +4082,7 @@ relic support.")
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "0h3wfnpv5d4d3f9xzmwkchay6251nhzngdv3f6xia56mj4hxabs0"))))
 | 
					         "0h3wfnpv5d4d3f9xzmwkchay6251nhzngdv3f6xia56mj4hxabs0"))))
 | 
				
			||||||
    (build-system perl-build-system)
 | 
					    (build-system perl-build-system)
 | 
				
			||||||
    (inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("perl-clone-choose" ,perl-clone-choose)))
 | 
					     `(("perl-clone-choose" ,perl-clone-choose)))
 | 
				
			||||||
    (home-page "https://metacpan.org/release/Hash-Merge")
 | 
					    (home-page "https://metacpan.org/release/Hash-Merge")
 | 
				
			||||||
    (synopsis "Merge arbitrarily deep hashes into a single hash")
 | 
					    (synopsis "Merge arbitrarily deep hashes into a single hash")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -198,8 +198,7 @@ colors, styles, options and details.")
 | 
				
			||||||
       ("perl" ,perl)
 | 
					       ("perl" ,perl)
 | 
				
			||||||
       ("texinfo" ,texinfo)           ;For generating documentation
 | 
					       ("texinfo" ,texinfo)           ;For generating documentation
 | 
				
			||||||
       ;; For the manual and the tests.
 | 
					       ;; For the manual and the tests.
 | 
				
			||||||
       ("texlive" ,(texlive-union (list texlive-fonts-amsfonts
 | 
					       ("texlive" ,(texlive-union (list texlive-amsfonts
 | 
				
			||||||
                                        texlive-latex-amsfonts
 | 
					 | 
				
			||||||
                                        texlive-latex-geometry
 | 
					                                        texlive-latex-geometry
 | 
				
			||||||
                                        texlive-latex-graphics
 | 
					                                        texlive-latex-graphics
 | 
				
			||||||
                                        texlive-latex-oberdiek ; for ifluatex
 | 
					                                        texlive-latex-oberdiek ; for ifluatex
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3500,12 +3500,11 @@ color scales, and color space conversion easy.  It has support for:
 | 
				
			||||||
       ("pkg-config" ,pkg-config)
 | 
					       ("pkg-config" ,pkg-config)
 | 
				
			||||||
       ("python-sphinx" ,python-sphinx)
 | 
					       ("python-sphinx" ,python-sphinx)
 | 
				
			||||||
       ("python-numpydoc" ,python-numpydoc)
 | 
					       ("python-numpydoc" ,python-numpydoc)
 | 
				
			||||||
       ("texlive" ,(texlive-union (list texlive-fonts-amsfonts
 | 
					       ("texlive" ,(texlive-union (list texlive-fonts-cm-super
 | 
				
			||||||
                                        texlive-fonts-cm-super
 | 
					 | 
				
			||||||
                                        texlive-fonts-ec
 | 
					                                        texlive-fonts-ec
 | 
				
			||||||
                                        texlive-generic-ifxetex
 | 
					                                        texlive-generic-ifxetex
 | 
				
			||||||
                                        texlive-generic-pdftex
 | 
					                                        texlive-generic-pdftex
 | 
				
			||||||
                                        texlive-latex-amsfonts
 | 
					                                        texlive-amsfonts
 | 
				
			||||||
                                        texlive-latex-capt-of
 | 
					                                        texlive-latex-capt-of
 | 
				
			||||||
                                        texlive-latex-cmap
 | 
					                                        texlive-latex-cmap
 | 
				
			||||||
                                        texlive-latex-environ
 | 
					                                        texlive-latex-environ
 | 
				
			||||||
| 
						 | 
					@ -3904,7 +3903,7 @@ toolkits.")
 | 
				
			||||||
       ("python-ipykernel" ,python-ipykernel)
 | 
					       ("python-ipykernel" ,python-ipykernel)
 | 
				
			||||||
       ("python-mock" ,python-mock)
 | 
					       ("python-mock" ,python-mock)
 | 
				
			||||||
       ("graphviz" ,graphviz)
 | 
					       ("graphviz" ,graphviz)
 | 
				
			||||||
       ("texlive" ,(texlive-union (list texlive-latex-amsfonts
 | 
					       ("texlive" ,(texlive-union (list texlive-amsfonts
 | 
				
			||||||
                                        texlive-latex-amsmath
 | 
					                                        texlive-latex-amsmath
 | 
				
			||||||
                                        texlive-latex-enumitem
 | 
					                                        texlive-latex-enumitem
 | 
				
			||||||
                                        texlive-latex-expdlist
 | 
					                                        texlive-latex-expdlist
 | 
				
			||||||
| 
						 | 
					@ -3915,7 +3914,6 @@ toolkits.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                        texlive-generic-pdftex
 | 
					                                        texlive-generic-pdftex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                        texlive-fonts-amsfonts
 | 
					 | 
				
			||||||
                                        texlive-fonts-ec
 | 
					                                        texlive-fonts-ec
 | 
				
			||||||
                                        texlive-fonts-adobe-times
 | 
					                                        texlive-fonts-adobe-times
 | 
				
			||||||
                                        texlive-fonts-txfonts)))
 | 
					                                        texlive-fonts-txfonts)))
 | 
				
			||||||
| 
						 | 
					@ -5472,11 +5470,10 @@ computing.")
 | 
				
			||||||
     `(("python-sphinx" ,python-sphinx)
 | 
					     `(("python-sphinx" ,python-sphinx)
 | 
				
			||||||
       ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
 | 
					       ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
 | 
				
			||||||
       ;; FIXME: It's possible that a smaller union would work just as well.
 | 
					       ;; FIXME: It's possible that a smaller union would work just as well.
 | 
				
			||||||
       ("texlive" ,(texlive-union (list texlive-fonts-amsfonts
 | 
					       ("texlive" ,(texlive-union (list texlive-amsfonts
 | 
				
			||||||
                                        texlive-fonts-ec
 | 
					                                        texlive-fonts-ec
 | 
				
			||||||
                                        texlive-generic-ifxetex
 | 
					                                        texlive-generic-ifxetex
 | 
				
			||||||
                                        texlive-generic-pdftex
 | 
					                                        texlive-generic-pdftex
 | 
				
			||||||
                                        texlive-latex-amsfonts
 | 
					 | 
				
			||||||
                                        texlive-latex-capt-of
 | 
					                                        texlive-latex-capt-of
 | 
				
			||||||
                                        texlive-latex-cmap
 | 
					                                        texlive-latex-cmap
 | 
				
			||||||
                                        texlive-latex-environ
 | 
					                                        texlive-latex-environ
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -153,14 +153,14 @@ anywhere.")
 | 
				
			||||||
(define-public samba
 | 
					(define-public samba
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "samba")
 | 
					    (name "samba")
 | 
				
			||||||
    (version "4.10.5")
 | 
					    (version "4.10.6")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
             (method url-fetch)
 | 
					             (method url-fetch)
 | 
				
			||||||
             (uri (string-append "https://download.samba.org/pub/samba/stable/"
 | 
					             (uri (string-append "https://download.samba.org/pub/samba/stable/"
 | 
				
			||||||
                                 "samba-" version ".tar.gz"))
 | 
					                                 "samba-" version ".tar.gz"))
 | 
				
			||||||
             (sha256
 | 
					             (sha256
 | 
				
			||||||
              (base32
 | 
					              (base32
 | 
				
			||||||
               "0xb3mz38hcayqxchk0ws9mxn10vswsn97jbxl4gcwi4cbrnjc43c"))))
 | 
					               "0hpgdqlyczj98pkh2ldglvvnkrb1q541r3qikdvxq0qjvd9fpywy"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:phases
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -75,6 +75,7 @@
 | 
				
			||||||
  #:use-module (gnu packages time)
 | 
					  #:use-module (gnu packages time)
 | 
				
			||||||
  #:use-module (gnu packages tls)
 | 
					  #:use-module (gnu packages tls)
 | 
				
			||||||
  #:use-module (gnu packages base)
 | 
					  #:use-module (gnu packages base)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages version-control)
 | 
				
			||||||
  #:use-module (gnu packages web)
 | 
					  #:use-module (gnu packages web)
 | 
				
			||||||
  #:use-module (gnu packages xml)
 | 
					  #:use-module (gnu packages xml)
 | 
				
			||||||
  #:use-module (gnu packages xorg)
 | 
					  #:use-module (gnu packages xorg)
 | 
				
			||||||
| 
						 | 
					@ -319,9 +320,8 @@ as.POSIXct(if (\"\" != Sys.getenv(\"SOURCE_DATE_EPOCH\")) {\
 | 
				
			||||||
       ("perl" ,perl)
 | 
					       ("perl" ,perl)
 | 
				
			||||||
       ("pkg-config" ,pkg-config)
 | 
					       ("pkg-config" ,pkg-config)
 | 
				
			||||||
       ("texinfo" ,texinfo) ; for building HTML manuals
 | 
					       ("texinfo" ,texinfo) ; for building HTML manuals
 | 
				
			||||||
       ("texlive" ,(texlive-union (list texlive-fonts-amsfonts
 | 
					       ("texlive" ,(texlive-union (list texlive-fonts-ec
 | 
				
			||||||
                                        texlive-fonts-ec
 | 
					                                        texlive-amsfonts
 | 
				
			||||||
                                        texlive-latex-amsfonts
 | 
					 | 
				
			||||||
                                        texlive-latex-base
 | 
					                                        texlive-latex-base
 | 
				
			||||||
                                        texlive-latex-fancyvrb
 | 
					                                        texlive-latex-fancyvrb
 | 
				
			||||||
                                        texlive-latex-graphics
 | 
					                                        texlive-latex-graphics
 | 
				
			||||||
| 
						 | 
					@ -397,14 +397,14 @@ available, greatly increasing its breadth and scope.")
 | 
				
			||||||
(define-public r-boot
 | 
					(define-public r-boot
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-boot")
 | 
					    (name "r-boot")
 | 
				
			||||||
    (version "1.3-22")
 | 
					    (version "1.3-23")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "boot" version))
 | 
					       (uri (cran-uri "boot" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "1z2dig1mi76b3b9ck6qlkh07l3hs478gaf70db5nv8x7w2qhq7yg"))))
 | 
					         "0bx07zbb5nfz2xfgnzbspg7r5vxz4bjdz1ry4d1vk434vlcrxj1h"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (home-page "https://cran.r-project.org/web/packages/boot")
 | 
					    (home-page "https://cran.r-project.org/web/packages/boot")
 | 
				
			||||||
    (synopsis "Bootstrap functions for R")
 | 
					    (synopsis "Bootstrap functions for R")
 | 
				
			||||||
| 
						 | 
					@ -502,14 +502,14 @@ code for possible problems.")
 | 
				
			||||||
(define-public r-foreign
 | 
					(define-public r-foreign
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-foreign")
 | 
					    (name "r-foreign")
 | 
				
			||||||
    (version "0.8-71")
 | 
					    (version "0.8-72")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "foreign" version))
 | 
					       (uri (cran-uri "foreign" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "1mv04w3ycz0ymsszn8aa87k6k5sb8mg8lhf1b8w4zpfrphpkkliv"))))
 | 
					         "124c9229is44p2rv7xyh2q86nsfi7vzyyh5n3c5ihziqrp4ig723"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (home-page "https://cran.r-project.org/web/packages/foreign")
 | 
					    (home-page "https://cran.r-project.org/web/packages/foreign")
 | 
				
			||||||
    (synopsis "Read data stored by other statistics software")
 | 
					    (synopsis "Read data stored by other statistics software")
 | 
				
			||||||
| 
						 | 
					@ -588,14 +588,14 @@ and operations on them using LAPACK and SuiteSparse.")
 | 
				
			||||||
(define-public r-nlme
 | 
					(define-public r-nlme
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-nlme")
 | 
					    (name "r-nlme")
 | 
				
			||||||
    (version "3.1-140")
 | 
					    (version "3.1-141")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "nlme" version))
 | 
					       (uri (cran-uri "nlme" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "0k9x5j34fx093a023da9ny3b3101lbwpmfm27mkvfj950l22z88x"))))
 | 
					         "0ml00g79bimjcl0sgn6h55l5b4gfmnsnc1vvmivggn0318k4c04i"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("r-lattice" ,r-lattice)))
 | 
					     `(("r-lattice" ,r-lattice)))
 | 
				
			||||||
| 
						 | 
					@ -804,13 +804,13 @@ effects of different types of color-blindness.")
 | 
				
			||||||
(define-public r-digest
 | 
					(define-public r-digest
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-digest")
 | 
					    (name "r-digest")
 | 
				
			||||||
    (version "0.6.19")
 | 
					    (version "0.6.20")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "digest" version))
 | 
					       (uri (cran-uri "digest" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1x6cbj9qvkk7pxv9xdqibazw3x8psjp6x0m0ildx1jwyb2ymkl98"))))
 | 
					        (base32 "1irhk2jaj9cg57cxprgyn1if06x121xwcxh1fzzn3148bl5lnrq5"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    ;; Vignettes require r-knitr, which requires r-digest, so we have to
 | 
					    ;; Vignettes require r-knitr, which requires r-digest, so we have to
 | 
				
			||||||
    ;; disable them and the tests.
 | 
					    ;; disable them and the tests.
 | 
				
			||||||
| 
						 | 
					@ -1603,18 +1603,19 @@ R packages that praise their users.")
 | 
				
			||||||
(define-public r-testthat
 | 
					(define-public r-testthat
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-testthat")
 | 
					    (name "r-testthat")
 | 
				
			||||||
    (version "2.1.1")
 | 
					    (version "2.2.1")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (cran-uri "testthat" version))
 | 
					              (uri (cran-uri "testthat" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "03jgr0hlr77yp0aib4v30yjyjrjsa8dczr02yk21m93vl25vqvkp"))))
 | 
					                "0y0bvggm4pzkzp6xn7b8cf3ybqp9ijxkhhyp3z49a9iipc90bvk7"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("r-cli" ,r-cli)
 | 
					     `(("r-cli" ,r-cli)
 | 
				
			||||||
       ("r-crayon" ,r-crayon)
 | 
					       ("r-crayon" ,r-crayon)
 | 
				
			||||||
       ("r-digest" ,r-digest)
 | 
					       ("r-digest" ,r-digest)
 | 
				
			||||||
 | 
					       ("r-evaluate" ,r-evaluate)
 | 
				
			||||||
       ("r-magrittr" ,r-magrittr)
 | 
					       ("r-magrittr" ,r-magrittr)
 | 
				
			||||||
       ("r-praise" ,r-praise)
 | 
					       ("r-praise" ,r-praise)
 | 
				
			||||||
       ("r-r6" ,r-r6)
 | 
					       ("r-r6" ,r-r6)
 | 
				
			||||||
| 
						 | 
					@ -1696,13 +1697,13 @@ and printing capabilities than traditional data frames.")
 | 
				
			||||||
(define-public r-dplyr
 | 
					(define-public r-dplyr
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-dplyr")
 | 
					    (name "r-dplyr")
 | 
				
			||||||
    (version "0.8.1")
 | 
					    (version "0.8.3")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (cran-uri "dplyr" version))
 | 
					              (uri (cran-uri "dplyr" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1nw12hzk1jcac5879nfmf1yp98jpb3i59qkb8sfpk2cd6zqgfgjz"))))
 | 
					                "032c89wa04g9rih9shyvwl3il0bsrv3xk489x6867sk9bb3amd38"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("r-assertthat" ,r-assertthat)
 | 
					     `(("r-assertthat" ,r-assertthat)
 | 
				
			||||||
| 
						 | 
					@ -1979,13 +1980,13 @@ inference for statistical models.")
 | 
				
			||||||
(define-public r-coda
 | 
					(define-public r-coda
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-coda")
 | 
					    (name "r-coda")
 | 
				
			||||||
    (version "0.19-2")
 | 
					    (version "0.19-3")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (cran-uri "coda" version))
 | 
					              (uri (cran-uri "coda" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "03fs3sdrrym3is92dgpa6ydk3m63gaihwy7bva4k0wm2hxm7x2k7"))))
 | 
					                "1mn50bshky968gn4nf6vnkaa768fnvm1xmhkms7szwdw9341zpyk"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("r-lattice" ,r-lattice)))
 | 
					     `(("r-lattice" ,r-lattice)))
 | 
				
			||||||
| 
						 | 
					@ -2021,14 +2022,14 @@ and environmental data in the framework of Euclidean exploratory methods.")
 | 
				
			||||||
(define-public r-xml2
 | 
					(define-public r-xml2
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-xml2")
 | 
					    (name "r-xml2")
 | 
				
			||||||
    (version "1.2.0")
 | 
					    (version "1.2.1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "xml2" version))
 | 
					       (uri (cran-uri "xml2" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "154lmksfiwkhnlmryas25mjhfg6k4mmnnk7bbb29mnn5x5pr2yha"))))
 | 
					         "0186d7r36xw1z9f8ajz35a0dz4ch6hmrjl9536yc7vq78v4vn5an"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("libxml2" ,libxml2)
 | 
					     `(("libxml2" ,libxml2)
 | 
				
			||||||
| 
						 | 
					@ -2136,14 +2137,14 @@ R version.")
 | 
				
			||||||
(define-public r-checkmate
 | 
					(define-public r-checkmate
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-checkmate")
 | 
					    (name "r-checkmate")
 | 
				
			||||||
    (version "1.9.3")
 | 
					    (version "1.9.4")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "checkmate" version))
 | 
					       (uri (cran-uri "checkmate" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "15ccwvmw73c2zz1k10k5zdn8px0rrbnvs1b4nzvlb0iwj7cimhp4"))))
 | 
					         "08ddpgs4mv5d5y4j054pm8drmxkn7yvhfpbghwxlizjpnxa5g8ps"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("r-backports" ,r-backports)))
 | 
					     `(("r-backports" ,r-backports)))
 | 
				
			||||||
| 
						 | 
					@ -2333,14 +2334,14 @@ collation, and NAMESPACE files.")
 | 
				
			||||||
(define-public r-openssl
 | 
					(define-public r-openssl
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-openssl")
 | 
					    (name "r-openssl")
 | 
				
			||||||
    (version "1.4")
 | 
					    (version "1.4.1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "openssl" version))
 | 
					       (uri (cran-uri "openssl" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "0mh4xwb9wnn5j2n1zzmjldqjqv2nn4wdidiixxciaqrqsi0l9834"))))
 | 
					         "1ihz2qi33lhngl19xdanq0pbmfaacy63794mg8ll7z2lab3yryzp"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("libressl" ,libressl)))
 | 
					     `(("libressl" ,libressl)))
 | 
				
			||||||
| 
						 | 
					@ -2366,13 +2367,13 @@ integers.")
 | 
				
			||||||
(define-public r-httr
 | 
					(define-public r-httr
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-httr")
 | 
					    (name "r-httr")
 | 
				
			||||||
    (version "1.4.0")
 | 
					    (version "1.4.1")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (cran-uri "httr" version))
 | 
					              (uri (cran-uri "httr" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0j6vknwyvkjpjsxwch4q02aik4dnm3h4l0wc7dgzc555bm1g2cyn"))))
 | 
					                "0mp1il13q6n49n2hv1p2p8x6avjan6dr5az19ql4hb78pc3pwp37"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("r-curl" ,r-curl)
 | 
					     `(("r-curl" ,r-curl)
 | 
				
			||||||
| 
						 | 
					@ -2392,20 +2393,16 @@ functions make it easy to control additional request components.")
 | 
				
			||||||
(define-public r-git2r
 | 
					(define-public r-git2r
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-git2r")
 | 
					    (name "r-git2r")
 | 
				
			||||||
    (version "0.25.2")
 | 
					    (version "0.26.1")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (cran-uri "git2r" version))
 | 
					              (uri (cran-uri "git2r" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "15kpvz6ry2r8ii5hzinjwkggc5kgmkbcpsdwzahsf8gha52w80p0"))))
 | 
					                "0dbl845sahv2i641ncaf06w06djravwc5wknp9syzx0ad8l0kmhk"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    ;; This R package contains modified sources of libgit2.  This modified
 | 
					 | 
				
			||||||
    ;; version of libgit2 is built as the package is built.  Hence libgit2 is
 | 
					 | 
				
			||||||
    ;; not among the inputs of this package.
 | 
					 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("libssh2" ,libssh2) ; for SSH transport
 | 
					     `(("libgit2" ,libgit2)
 | 
				
			||||||
       ("openssl" ,openssl)
 | 
					 | 
				
			||||||
       ("zlib" ,zlib)))
 | 
					       ("zlib" ,zlib)))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)))
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
| 
						 | 
					@ -2438,13 +2435,13 @@ informative error messages when it's not available.")
 | 
				
			||||||
(define-public r-devtools
 | 
					(define-public r-devtools
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-devtools")
 | 
					    (name "r-devtools")
 | 
				
			||||||
    (version "2.0.2")
 | 
					    (version "2.1.0")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (cran-uri "devtools" version))
 | 
					              (uri (cran-uri "devtools" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "028pppj39ng7q17k27531s8k00lmw982vz5krn74n9b8f2azm8lr"))))
 | 
					                "0393v7nr22gr5g9afgrhq4ab3lwbqy6fd3shnmlhdpqam5357xy1"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("r-callr" ,r-callr)
 | 
					     `(("r-callr" ,r-callr)
 | 
				
			||||||
| 
						 | 
					@ -2457,9 +2454,11 @@ informative error messages when it's not available.")
 | 
				
			||||||
       ("r-pkgbuild" ,r-pkgbuild)
 | 
					       ("r-pkgbuild" ,r-pkgbuild)
 | 
				
			||||||
       ("r-pkgload" ,r-pkgload)
 | 
					       ("r-pkgload" ,r-pkgload)
 | 
				
			||||||
       ("r-rcmdcheck" ,r-rcmdcheck)
 | 
					       ("r-rcmdcheck" ,r-rcmdcheck)
 | 
				
			||||||
 | 
					       ("r-roxygen2" ,r-roxygen2)
 | 
				
			||||||
       ("r-remotes" ,r-remotes)
 | 
					       ("r-remotes" ,r-remotes)
 | 
				
			||||||
       ("r-rstudioapi" ,r-rstudioapi)
 | 
					       ("r-rstudioapi" ,r-rstudioapi)
 | 
				
			||||||
       ("r-sessioninfo" ,r-sessioninfo)
 | 
					       ("r-sessioninfo" ,r-sessioninfo)
 | 
				
			||||||
 | 
					       ("r-testthat" ,r-testthat)
 | 
				
			||||||
       ("r-usethis" ,r-usethis)
 | 
					       ("r-usethis" ,r-usethis)
 | 
				
			||||||
       ("r-withr" ,r-withr)))
 | 
					       ("r-withr" ,r-withr)))
 | 
				
			||||||
    (home-page "https://github.com/hadley/devtools")
 | 
					    (home-page "https://github.com/hadley/devtools")
 | 
				
			||||||
| 
						 | 
					@ -2490,18 +2489,19 @@ were originally a part of the r-devtools package.")
 | 
				
			||||||
(define-public r-hms
 | 
					(define-public r-hms
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-hms")
 | 
					    (name "r-hms")
 | 
				
			||||||
    (version "0.4.2")
 | 
					    (version "0.5.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "hms" version))
 | 
					       (uri (cran-uri "hms" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "1g6hslk3z0xga38r71irxq802wskg6nv804mp8y9f7i2wfrj0y55"))))
 | 
					         "06snfqdczr0x0nbp7qnvwhlp2pw0wx9c2y3xb4gr1wrvbik74y58"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("r-rlang" ,r-rlang)
 | 
					     `(("r-rlang" ,r-rlang)
 | 
				
			||||||
       ("r-pkgconfig" ,r-pkgconfig)))
 | 
					       ("r-pkgconfig" ,r-pkgconfig)
 | 
				
			||||||
 | 
					       ("r-vctrs" ,r-vctrs)))
 | 
				
			||||||
    (home-page "https://github.com/rstats-db/hms")
 | 
					    (home-page "https://github.com/rstats-db/hms")
 | 
				
			||||||
    (synopsis "Pretty time of day")
 | 
					    (synopsis "Pretty time of day")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
| 
						 | 
					@ -2597,13 +2597,13 @@ well as additional utilities such as panel and axis annotation functions.")
 | 
				
			||||||
(define-public r-rcpparmadillo
 | 
					(define-public r-rcpparmadillo
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-rcpparmadillo")
 | 
					    (name "r-rcpparmadillo")
 | 
				
			||||||
    (version "0.9.500.2.0")
 | 
					    (version "0.9.600.4.0")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (cran-uri "RcppArmadillo" version))
 | 
					              (uri (cran-uri "RcppArmadillo" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1lyvpb7n54ijlqns29qiixqr39334knf67cnixvlic58945glrhv"))))
 | 
					                "07jg2667xyhmp1fbcdi5nnhmkk81da76s9rlswfq4k2sjsmbfmr0"))))
 | 
				
			||||||
    (properties `((upstream-name . "RcppArmadillo")))
 | 
					    (properties `((upstream-name . "RcppArmadillo")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    ;; All needed for vignettes
 | 
					    ;; All needed for vignettes
 | 
				
			||||||
| 
						 | 
					@ -2695,14 +2695,14 @@ certain criterion, e.g., it contains a certain regular file.")
 | 
				
			||||||
(define-public r-rmarkdown
 | 
					(define-public r-rmarkdown
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-rmarkdown")
 | 
					    (name "r-rmarkdown")
 | 
				
			||||||
    (version "1.13")
 | 
					    (version "1.14")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
      (origin
 | 
					      (origin
 | 
				
			||||||
        (method url-fetch)
 | 
					        (method url-fetch)
 | 
				
			||||||
        (uri (cran-uri "rmarkdown" version))
 | 
					        (uri (cran-uri "rmarkdown" version))
 | 
				
			||||||
        (sha256
 | 
					        (sha256
 | 
				
			||||||
          (base32
 | 
					          (base32
 | 
				
			||||||
            "1vv3b8nlw8ra19492rjg3na42lwh3xr5a2jy2ia81fvvs846pywn"))))
 | 
					            "0qfw5rkvwqpgix32g6qy9xrr50awmm146aqbm836xravih2b2dpn"))))
 | 
				
			||||||
    (properties `((upstream-name . "rmarkdown")))
 | 
					    (properties `((upstream-name . "rmarkdown")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
| 
						 | 
					@ -2788,17 +2788,18 @@ that package, other packages are unaffected.")
 | 
				
			||||||
(define-public r-blob
 | 
					(define-public r-blob
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-blob")
 | 
					    (name "r-blob")
 | 
				
			||||||
    (version "1.1.1")
 | 
					    (version "1.2.0")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (cran-uri "blob" version))
 | 
					              (uri (cran-uri "blob" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0lsg91hk508dd95ivig2lwg62qafwnarjw68110kx63cfk4zkjxc"))))
 | 
					                "08z071jzac4gasgfgab0y5g3ilfmlw08ln813wphxg07hsiczw8s"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("r-prettyunits" ,r-prettyunits)
 | 
					     `(("r-prettyunits" ,r-prettyunits)
 | 
				
			||||||
       ("r-tibble" ,r-tibble)))
 | 
					       ("r-rlang" ,r-rlang)
 | 
				
			||||||
 | 
					       ("r-vctrs" ,r-vctrs)))
 | 
				
			||||||
    (home-page "https://github.com/hadley/blob")
 | 
					    (home-page "https://github.com/hadley/blob")
 | 
				
			||||||
    (synopsis "Simple S3 Class for representing vectors of binary data")
 | 
					    (synopsis "Simple S3 Class for representing vectors of binary data")
 | 
				
			||||||
    (description "Raw vectors in R are useful for storing a single binary
 | 
					    (description "Raw vectors in R are useful for storing a single binary
 | 
				
			||||||
| 
						 | 
					@ -2810,13 +2811,13 @@ a column in data frame.")
 | 
				
			||||||
(define-public r-rsqlite
 | 
					(define-public r-rsqlite
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-rsqlite")
 | 
					    (name "r-rsqlite")
 | 
				
			||||||
    (version "2.1.1")
 | 
					    (version "2.1.2")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (cran-uri "RSQLite" version))
 | 
					              (uri (cran-uri "RSQLite" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1giwk4335sc6yhj3rs8h070g1mwy38kyqyqv6vcfxvskykj7vp6z"))))
 | 
					                "1inrhap5cs0wry2jbw42fx9wwxb3qdzlpy0ba4f6a29bs8jx9nk6"))))
 | 
				
			||||||
    (properties `((upstream-name . "RSQLite")))
 | 
					    (properties `((upstream-name . "RSQLite")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
| 
						 | 
					@ -3069,14 +3070,14 @@ standard R subsetting and Kronecker products.")
 | 
				
			||||||
(define-public r-iterators
 | 
					(define-public r-iterators
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-iterators")
 | 
					    (name "r-iterators")
 | 
				
			||||||
    (version "1.0.10")
 | 
					    (version "1.0.12")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "iterators" version))
 | 
					       (uri (cran-uri "iterators" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "1s3iykfvccpnzs73z90rx18qvbvgw2dgl4nfcrvm5m1850qb5qd9"))))
 | 
					         "0jwzxaa3jm1xzgfv5pn0xqkk7rhm0xwvgn85w7xaw8xx1vb33gwn"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (home-page "https://cran.r-project.org/web/packages/iterators")
 | 
					    (home-page "https://cran.r-project.org/web/packages/iterators")
 | 
				
			||||||
    (synopsis "Iterator construct for R")
 | 
					    (synopsis "Iterator construct for R")
 | 
				
			||||||
| 
						 | 
					@ -3089,14 +3090,14 @@ data.")
 | 
				
			||||||
(define-public r-foreach
 | 
					(define-public r-foreach
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-foreach")
 | 
					    (name "r-foreach")
 | 
				
			||||||
    (version "1.4.4")
 | 
					    (version "1.4.7")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "foreach" version))
 | 
					       (uri (cran-uri "foreach" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "0j2yj0rn0d5nbzz9nq5rqqgnxhp9pbd92q4klsarl2xpsn8119y0"))))
 | 
					         "0q7iyniw5iri4hl57bhil3r69s5wnaijzn0q0x4h3z42245jqqwm"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("r-codetools" ,r-codetools)
 | 
					     `(("r-codetools" ,r-codetools)
 | 
				
			||||||
| 
						 | 
					@ -3117,14 +3118,14 @@ parallel.")
 | 
				
			||||||
(define-public r-doparallel
 | 
					(define-public r-doparallel
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-doparallel")
 | 
					    (name "r-doparallel")
 | 
				
			||||||
    (version "1.0.14")
 | 
					    (version "1.0.15")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "doParallel" version))
 | 
					       (uri (cran-uri "doParallel" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "01qjs4iw9f1kgymcypj0m2s4pvgqhxaycpli0fb8lq3dc0vpzfyb"))))
 | 
					         "0vnqbha3gig3awbfvsfx3ni5jir398md1n7xmsb8jihnjsk7xbbi"))))
 | 
				
			||||||
    (properties `((upstream-name . "doParallel")))
 | 
					    (properties `((upstream-name . "doParallel")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
| 
						 | 
					@ -3140,14 +3141,14 @@ using the parallel package.")
 | 
				
			||||||
(define-public r-domc
 | 
					(define-public r-domc
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-domc")
 | 
					    (name "r-domc")
 | 
				
			||||||
    (version "1.3.5")
 | 
					    (version "1.3.6")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "doMC" version))
 | 
					       (uri (cran-uri "doMC" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "1vfrykvfvsyq12mypd266867ml1dcwc3rj5k9c3wrn5bddcm88kr"))))
 | 
					         "1cn9gxavhvjswip8pwvkpi7q6wpzdllcsdjabga8akf55nggqxr9"))))
 | 
				
			||||||
    (properties `((upstream-name . "doMC")))
 | 
					    (properties `((upstream-name . "doMC")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
| 
						 | 
					@ -3163,13 +3164,13 @@ using the multicore functionality of the parallel package.")
 | 
				
			||||||
(define-public r-dt
 | 
					(define-public r-dt
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-dt")
 | 
					    (name "r-dt")
 | 
				
			||||||
    (version "0.7")
 | 
					    (version "0.8")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (cran-uri "DT" version))
 | 
					              (uri (cran-uri "DT" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0b6ywgzk9b35y5f69zwfz3vv7qwqqj3xsmy0xymf7nfcvrqg3qqx"))))
 | 
					                "08cfmv3d5awvd9h8648bvidcg2ak5pvl2p6vqwqwy1l82ia506ch"))))
 | 
				
			||||||
    (properties
 | 
					    (properties
 | 
				
			||||||
     `((upstream-name . "DT")))
 | 
					     `((upstream-name . "DT")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
| 
						 | 
					@ -3177,6 +3178,7 @@ using the multicore functionality of the parallel package.")
 | 
				
			||||||
     `(("r-crosstalk" ,r-crosstalk)
 | 
					     `(("r-crosstalk" ,r-crosstalk)
 | 
				
			||||||
       ("r-htmltools" ,r-htmltools)
 | 
					       ("r-htmltools" ,r-htmltools)
 | 
				
			||||||
       ("r-htmlwidgets" ,r-htmlwidgets)
 | 
					       ("r-htmlwidgets" ,r-htmlwidgets)
 | 
				
			||||||
 | 
					       ("r-jsonlite" ,r-jsonlite)
 | 
				
			||||||
       ("r-magrittr" ,r-magrittr)
 | 
					       ("r-magrittr" ,r-magrittr)
 | 
				
			||||||
       ("r-promises" ,r-promises)))
 | 
					       ("r-promises" ,r-promises)))
 | 
				
			||||||
    (home-page "http://rstudio.github.io/DT")
 | 
					    (home-page "http://rstudio.github.io/DT")
 | 
				
			||||||
| 
						 | 
					@ -3315,14 +3317,14 @@ package registries.")
 | 
				
			||||||
(define-public r-rngtools
 | 
					(define-public r-rngtools
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-rngtools")
 | 
					    (name "r-rngtools")
 | 
				
			||||||
    (version "1.3.1.1")
 | 
					    (version "1.4")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "rngtools" version))
 | 
					       (uri (cran-uri "rngtools" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "0k1nlcxggflq0043m15dfclnqnzchkpw2ik7jk82h4dqwvysiqcr"))))
 | 
					         "1kivj594bn774lbn29ws2rmzy2km99sza0j3jqvhal6hwmk27a9s"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("r-digest" ,r-digest)
 | 
					     `(("r-digest" ,r-digest)
 | 
				
			||||||
| 
						 | 
					@ -4566,19 +4568,19 @@ Farebrother's algorithm or Liu et al.'s algorithm.")
 | 
				
			||||||
(define-public r-cowplot
 | 
					(define-public r-cowplot
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-cowplot")
 | 
					    (name "r-cowplot")
 | 
				
			||||||
    (version "0.9.4")
 | 
					    (version "1.0.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "cowplot" version))
 | 
					       (uri (cran-uri "cowplot" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "0yvalwalvyddyqk0q66y8361nxlh2cvp3ssazax9g5q89lghjmzv"))))
 | 
					         "19cqdhgfyr1wj0fz0c5ly8f0aiy9sfgzq6lzb78hkx0hdp2agybh"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("r-ggplot2" ,r-ggplot2)
 | 
					     `(("r-ggplot2" ,r-ggplot2)
 | 
				
			||||||
       ("r-gtable" ,r-gtable)
 | 
					       ("r-gtable" ,r-gtable)
 | 
				
			||||||
       ("r-plyr" ,r-plyr)
 | 
					       ("r-rlang" ,r-rlang)
 | 
				
			||||||
       ("r-scales" ,r-scales)))
 | 
					       ("r-scales" ,r-scales)))
 | 
				
			||||||
    (home-page "https://github.com/wilkelab/cowplot")
 | 
					    (home-page "https://github.com/wilkelab/cowplot")
 | 
				
			||||||
    (synopsis "Streamlined plot theme and plot annotations for ggplot2")
 | 
					    (synopsis "Streamlined plot theme and plot annotations for ggplot2")
 | 
				
			||||||
| 
						 | 
					@ -4640,14 +4642,14 @@ regression.")
 | 
				
			||||||
(define-public r-fastica
 | 
					(define-public r-fastica
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-fastica")
 | 
					    (name "r-fastica")
 | 
				
			||||||
    (version "1.2-1")
 | 
					    (version "1.2-2")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "fastICA" version))
 | 
					       (uri (cran-uri "fastICA" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "108z2ymby5y4h8l4l2krqwm28rya93gq09yylgilnm3afvfrfabg"))))
 | 
					         "1zpijqcipm0aa3rxj0mys06lskqy4dbppjpxr1aby0j16y9ka8ij"))))
 | 
				
			||||||
    (properties `((upstream-name . "fastICA")))
 | 
					    (properties `((upstream-name . "fastICA")))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (home-page "https://cran.r-project.org/web/packages/fastICA")
 | 
					    (home-page "https://cran.r-project.org/web/packages/fastICA")
 | 
				
			||||||
| 
						 | 
					@ -4749,14 +4751,14 @@ models, generalized linear models and model-based clustering.")
 | 
				
			||||||
(define-public r-mclust
 | 
					(define-public r-mclust
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-mclust")
 | 
					    (name "r-mclust")
 | 
				
			||||||
    (version "5.4.4")
 | 
					    (version "5.4.5")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "mclust" version))
 | 
					       (uri (cran-uri "mclust" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "039ymr57bq5327gypizw0v2qb81j6bkqhjdh8yj23qa5sh51phyc"))))
 | 
					         "0whandnda1fnjn5k3hgxdbp3b0xr7nlzy1j37saqb536h8q9dwkm"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("gfortran" ,gfortran)))
 | 
					     `(("gfortran" ,gfortran)))
 | 
				
			||||||
| 
						 | 
					@ -4919,14 +4921,14 @@ generally.")
 | 
				
			||||||
(define-public r-robust
 | 
					(define-public r-robust
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-robust")
 | 
					    (name "r-robust")
 | 
				
			||||||
    (version "0.4-18")
 | 
					    (version "0.4-18.1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "robust" version))
 | 
					       (uri (cran-uri "robust" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "1b7qh1aff500nd6dh4y2ipmjgdiq8991shflb63pc39vpc0ny6g4"))))
 | 
					         "0xs098pfw5zdcdk3rsxkylfl6d2pyp566s5v92bzhgl7h8c90cfy"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("r-fit-models" ,r-fit-models)
 | 
					     `(("r-fit-models" ,r-fit-models)
 | 
				
			||||||
| 
						 | 
					@ -5025,14 +5027,14 @@ VGLMs can be loosely thought of as multivariate generalised linear models.")
 | 
				
			||||||
(define-public r-pbapply
 | 
					(define-public r-pbapply
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-pbapply")
 | 
					    (name "r-pbapply")
 | 
				
			||||||
    (version "1.4-0")
 | 
					    (version "1.4-1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "pbapply" version))
 | 
					       (uri (cran-uri "pbapply" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "0bn7a9ni36xy5acnrl9ky3gd1k8jr5kxgazzh3pzd1q6bri1nx7k"))))
 | 
					         "1bbws9n90cqnnp5k58hp852jwmm6513jnhn4vzhl9f8x314k6qxk"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (home-page "https://github.com/psolymos/pbapply")
 | 
					    (home-page "https://github.com/psolymos/pbapply")
 | 
				
			||||||
    (synopsis "Adding progress bar to apply functions")
 | 
					    (synopsis "Adding progress bar to apply functions")
 | 
				
			||||||
| 
						 | 
					@ -5138,14 +5140,14 @@ using modular prediction and response module classes.")
 | 
				
			||||||
(define-public r-quantreg
 | 
					(define-public r-quantreg
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "r-quantreg")
 | 
					    (name "r-quantreg")
 | 
				
			||||||
    (version "5.41")
 | 
					    (version "5.42.1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (cran-uri "quantreg" version))
 | 
					       (uri (cran-uri "quantreg" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "110ax3ngn6i94h7iw7ha67kfsmj94hycp7lk62nmyvkp34vpfykh"))))
 | 
					         "1aycnghci329yqw63kybv7sfjjx5whq3xs7xzic4wsaj7j4b1hjc"))))
 | 
				
			||||||
    (build-system r-build-system)
 | 
					    (build-system r-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("gfortran" ,gfortran)))
 | 
					     `(("gfortran" ,gfortran)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -57,6 +57,7 @@
 | 
				
			||||||
  #:use-module (gnu packages golang)
 | 
					  #:use-module (gnu packages golang)
 | 
				
			||||||
  #:use-module (gnu packages gtk)
 | 
					  #:use-module (gnu packages gtk)
 | 
				
			||||||
  #:use-module (gnu packages image)
 | 
					  #:use-module (gnu packages image)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages libcanberra)
 | 
				
			||||||
  #:use-module (gnu packages libevent)
 | 
					  #:use-module (gnu packages libevent)
 | 
				
			||||||
  #:use-module (gnu packages linux)
 | 
					  #:use-module (gnu packages linux)
 | 
				
			||||||
  #:use-module (gnu packages ncurses)
 | 
					  #:use-module (gnu packages ncurses)
 | 
				
			||||||
| 
						 | 
					@ -954,7 +955,7 @@ tmux.")
 | 
				
			||||||
(define-public kitty
 | 
					(define-public kitty
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "kitty")
 | 
					    (name "kitty")
 | 
				
			||||||
    (version "0.14.2")
 | 
					    (version "0.14.3")
 | 
				
			||||||
    (home-page "https://sw.kovidgoyal.net/kitty/")
 | 
					    (home-page "https://sw.kovidgoyal.net/kitty/")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
| 
						 | 
					@ -965,7 +966,7 @@ tmux.")
 | 
				
			||||||
       (file-name (git-file-name name version))
 | 
					       (file-name (git-file-name name version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "15iv3k7iryf10n8n67d37x24pzcarq97a3dr42lbld00k1lx19az"))
 | 
					         "0wi6b6b1nyp16rcpcghk6by62wy6qsamv1xdymyn0zbqgd8h9n6b"))
 | 
				
			||||||
       (modules '((guix build utils)))
 | 
					       (modules '((guix build utils)))
 | 
				
			||||||
       (snippet
 | 
					       (snippet
 | 
				
			||||||
        '(begin
 | 
					        '(begin
 | 
				
			||||||
| 
						 | 
					@ -984,6 +985,7 @@ tmux.")
 | 
				
			||||||
     `(("python" ,python)
 | 
					     `(("python" ,python)
 | 
				
			||||||
       ("harfbuzz" ,harfbuzz)
 | 
					       ("harfbuzz" ,harfbuzz)
 | 
				
			||||||
       ("zlib" ,zlib)
 | 
					       ("zlib" ,zlib)
 | 
				
			||||||
 | 
					       ("libcanberra" ,libcanberra)
 | 
				
			||||||
       ("libpng" ,libpng)
 | 
					       ("libpng" ,libpng)
 | 
				
			||||||
       ("freetype" ,freetype)
 | 
					       ("freetype" ,freetype)
 | 
				
			||||||
       ("fontconfig" ,fontconfig)
 | 
					       ("fontconfig" ,fontconfig)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										4049
									
								
								gnu/packages/tex.scm
									
										
									
									
									
								
							
							
						
						
									
										4049
									
								
								gnu/packages/tex.scm
									
										
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
					@ -473,16 +473,18 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
 | 
				
			||||||
(define-public x265
 | 
					(define-public x265
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "x265")
 | 
					    (name "x265")
 | 
				
			||||||
    (version "3.1.1")
 | 
					    (version "3.1.2")
 | 
				
			||||||
    (outputs '("out" "static"))
 | 
					    (outputs '("out" "static"))
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
      (origin
 | 
					      (origin
 | 
				
			||||||
        (method url-fetch)
 | 
					        (method url-fetch)
 | 
				
			||||||
        (uri (string-append "https://download.videolan.org/videolan/x265/"
 | 
					        (uri (list (string-append "https://bitbucket.org/multicoreware/x265"
 | 
				
			||||||
                            "x265_" version ".tar.gz"))
 | 
					                                  "/downloads/x265_" version ".tar.gz")
 | 
				
			||||||
 | 
					                   (string-append "https://download.videolan.org/videolan/x265/"
 | 
				
			||||||
 | 
					                                  "x265_" version ".tar.gz")))
 | 
				
			||||||
        (sha256
 | 
					        (sha256
 | 
				
			||||||
         (base32
 | 
					         (base32
 | 
				
			||||||
          "1l68lgdbsi4wjz5vad98ggx7mf92rnvzlq34m6w0a08ark3h0yc2"))
 | 
					          "1ajr59gjj47gnczfb2qhmzclj746pdiq9a1d81b0mq22k8f5yy3g"))
 | 
				
			||||||
        (patches (search-patches "x265-arm-flags.patch"))
 | 
					        (patches (search-patches "x265-arm-flags.patch"))
 | 
				
			||||||
        (modules '((guix build utils)))
 | 
					        (modules '((guix build utils)))
 | 
				
			||||||
        (snippet '(begin
 | 
					        (snippet '(begin
 | 
				
			||||||
| 
						 | 
					@ -790,17 +792,18 @@ operate properly.")
 | 
				
			||||||
(define-public ffmpeg
 | 
					(define-public ffmpeg
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "ffmpeg")
 | 
					    (name "ffmpeg")
 | 
				
			||||||
    (version "4.1.4")
 | 
					    (version "4.2")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
             (method url-fetch)
 | 
					             (method url-fetch)
 | 
				
			||||||
             (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
 | 
					             (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
 | 
				
			||||||
                                 version ".tar.xz"))
 | 
					                                 version ".tar.xz"))
 | 
				
			||||||
             (sha256
 | 
					             (sha256
 | 
				
			||||||
              (base32
 | 
					              (base32
 | 
				
			||||||
               "1qd7a10gs12ifcp31gramcgqjl77swskjfp7cijibgyg5yl4kw7i"))))
 | 
					               "1mgcxm7sqkajx35px05szsmn9mawwm03cfpmk3br7bcp3a1i0gq2"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("fontconfig" ,fontconfig)
 | 
					     `(("dav1d" ,dav1d)
 | 
				
			||||||
 | 
					       ("fontconfig" ,fontconfig)
 | 
				
			||||||
       ("freetype" ,freetype)
 | 
					       ("freetype" ,freetype)
 | 
				
			||||||
       ("frei0r-plugins" ,frei0r-plugins)
 | 
					       ("frei0r-plugins" ,frei0r-plugins)
 | 
				
			||||||
       ("gnutls" ,gnutls)
 | 
					       ("gnutls" ,gnutls)
 | 
				
			||||||
| 
						 | 
					@ -899,6 +902,7 @@ operate properly.")
 | 
				
			||||||
         "--enable-libbluray"
 | 
					         "--enable-libbluray"
 | 
				
			||||||
         "--enable-libcaca"
 | 
					         "--enable-libcaca"
 | 
				
			||||||
         "--enable-libcdio"
 | 
					         "--enable-libcdio"
 | 
				
			||||||
 | 
					         "--enable-libdav1d"
 | 
				
			||||||
         "--enable-libfreetype"
 | 
					         "--enable-libfreetype"
 | 
				
			||||||
         "--enable-libmp3lame"
 | 
					         "--enable-libmp3lame"
 | 
				
			||||||
         "--enable-libopus"
 | 
					         "--enable-libopus"
 | 
				
			||||||
| 
						 | 
					@ -981,9 +985,10 @@ audio/video codec library.")
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     (substitute-keyword-arguments (package-arguments ffmpeg)
 | 
					     (substitute-keyword-arguments (package-arguments ffmpeg)
 | 
				
			||||||
       ((#:configure-flags flags)
 | 
					       ((#:configure-flags flags)
 | 
				
			||||||
        `(delete "--enable-libaom" ,flags))))
 | 
					        `(delete "--enable-libdav1d" (delete "--enable-libaom"
 | 
				
			||||||
    (inputs (alist-delete "libaom"
 | 
					                 ,flags)))))
 | 
				
			||||||
                          (package-inputs ffmpeg)))))
 | 
					    (inputs (alist-delete "dav1d" (alist-delete "libaom"
 | 
				
			||||||
 | 
					                          (package-inputs ffmpeg))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public ffmpeg-for-stepmania
 | 
					(define-public ffmpeg-for-stepmania
 | 
				
			||||||
  (hidden-package
 | 
					  (hidden-package
 | 
				
			||||||
| 
						 | 
					@ -2061,12 +2066,6 @@ capabilities.")
 | 
				
			||||||
       ("libass" ,libass)
 | 
					       ("libass" ,libass)
 | 
				
			||||||
       ("tesseract-ocr" ,tesseract-ocr)
 | 
					       ("tesseract-ocr" ,tesseract-ocr)
 | 
				
			||||||
       ("zimg" ,zimg)))
 | 
					       ("zimg" ,zimg)))
 | 
				
			||||||
    (arguments
 | 
					 | 
				
			||||||
     '(#:phases
 | 
					 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					 | 
				
			||||||
         (add-after 'unpack 'autogen
 | 
					 | 
				
			||||||
           (lambda _
 | 
					 | 
				
			||||||
             (invoke "sh" "autogen.sh"))))))
 | 
					 | 
				
			||||||
    (home-page "http://www.vapoursynth.com/")
 | 
					    (home-page "http://www.vapoursynth.com/")
 | 
				
			||||||
    (synopsis "Video processing framework")
 | 
					    (synopsis "Video processing framework")
 | 
				
			||||||
    (description "VapourSynth is a C++ library and Python module for video
 | 
					    (description "VapourSynth is a C++ library and Python module for video
 | 
				
			||||||
| 
						 | 
					@ -2509,12 +2508,6 @@ Other features include a live preview and live streaming.")
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "18yfkr70lr1x1hc8snn2ldnbzdcc7b64xmkqrfk8w59gpg7sl1xn"))))
 | 
					                "18yfkr70lr1x1hc8snn2ldnbzdcc7b64xmkqrfk8w59gpg7sl1xn"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					 | 
				
			||||||
     `(#:phases
 | 
					 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					 | 
				
			||||||
         (add-after 'unpack 'autogen.sh
 | 
					 | 
				
			||||||
           (lambda _
 | 
					 | 
				
			||||||
             (invoke "sh" "autogen.sh"))))))
 | 
					 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("autoconf" ,autoconf)
 | 
					     `(("autoconf" ,autoconf)
 | 
				
			||||||
       ("automake" ,automake)))
 | 
					       ("automake" ,automake)))
 | 
				
			||||||
| 
						 | 
					@ -2894,10 +2887,7 @@ practically any type of media.")
 | 
				
			||||||
         (add-after 'unpack 'change-to-build-dir
 | 
					         (add-after 'unpack 'change-to-build-dir
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
             (chdir "Project/GNU/Library")
 | 
					             (chdir "Project/GNU/Library")
 | 
				
			||||||
             #t))
 | 
					             #t)))))
 | 
				
			||||||
         (add-after 'change-to-build-dir 'autogen
 | 
					 | 
				
			||||||
           (lambda _
 | 
					 | 
				
			||||||
             (invoke "sh" "autogen.sh"))))))
 | 
					 | 
				
			||||||
    (home-page "https://mediaarea.net/en/MediaInfo")
 | 
					    (home-page "https://mediaarea.net/en/MediaInfo")
 | 
				
			||||||
    (synopsis "Library for retrieving media metadata")
 | 
					    (synopsis "Library for retrieving media metadata")
 | 
				
			||||||
    (description "MediaInfo is a library used for retrieving technical
 | 
					    (description "MediaInfo is a library used for retrieving technical
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -390,16 +390,14 @@ manage system or application containers.")
 | 
				
			||||||
(define-public libvirt
 | 
					(define-public libvirt
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "libvirt")
 | 
					    (name "libvirt")
 | 
				
			||||||
    (version "5.5.0")
 | 
					    (version "5.6.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (string-append "https://libvirt.org/sources/libvirt-"
 | 
					       (uri (string-append "https://libvirt.org/sources/libvirt-"
 | 
				
			||||||
                           version ".tar.xz"))
 | 
					                           version ".tar.xz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1s1mzw4cmkcfivs1kphpgy4lpddx0w1qnjysr4ggk5558w4yy1i3"))
 | 
					        (base32 "1d5rmcx5fgb024hw8chbiv886n3jal5wp2yajjk5l4qh9s9gkx35"))))
 | 
				
			||||||
       (patches
 | 
					 | 
				
			||||||
        (search-patches "libvirt-remove-ATTRIBUTE_UNUSED.patch"))))
 | 
					 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:configure-flags
 | 
					     `(#:configure-flags
 | 
				
			||||||
| 
						 | 
					@ -523,15 +521,15 @@ three libraries:
 | 
				
			||||||
(define-public python-libvirt
 | 
					(define-public python-libvirt
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-libvirt")
 | 
					    (name "python-libvirt")
 | 
				
			||||||
    (version "5.5.0")
 | 
					    (version "5.6.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       ;; The latest version hosted on PyPI at 5.5.0 release time was 5.3.0.
 | 
					       ;; The latest version hosted on PyPI at 5.6.0 release time was 5.5.0.
 | 
				
			||||||
       (uri (string-append "https://libvirt.org/sources/python/libvirt-python-"
 | 
					       (uri (string-append "https://libvirt.org/sources/python/libvirt-python-"
 | 
				
			||||||
                           version ".tar.gz"))
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "00x6idyw9xrrr21vrnsyw37q2sd8yh4n6pwh0l28hh9yp3nsy72n"))))
 | 
					        (base32 "11i440aibykxw22fzyavmrvn67s8rmnijw5bag0yx9r8jpnkzwad"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:phases
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,7 @@
 | 
				
			||||||
;;; Copyright © 2013, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 | 
					;;; Copyright © 2013, 2016, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 | 
				
			||||||
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 | 
					;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 | 
				
			||||||
;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
 | 
					;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
 | 
				
			||||||
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
 | 
					;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
 | 
				
			||||||
;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
					;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
				
			||||||
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
 | 
					;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
 | 
				
			||||||
;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
 | 
					;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
 | 
				
			||||||
| 
						 | 
					@ -227,11 +227,6 @@ the entire VPN in a network namespace accessible only through SSH.")
 | 
				
			||||||
       ("automake" ,automake)))
 | 
					       ("automake" ,automake)))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("libevent" ,libevent)))
 | 
					     `(("libevent" ,libevent)))
 | 
				
			||||||
    (arguments
 | 
					 | 
				
			||||||
     '(#:phases
 | 
					 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					 | 
				
			||||||
         (add-after 'unpack 'autogen
 | 
					 | 
				
			||||||
           (lambda _ (invoke "sh" "autogen.sh"))))))
 | 
					 | 
				
			||||||
    (home-page "https://github.com/cernekee/ocproxy")
 | 
					    (home-page "https://github.com/cernekee/ocproxy")
 | 
				
			||||||
    (synopsis "OpenConnect proxy")
 | 
					    (synopsis "OpenConnect proxy")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
| 
						 | 
					@ -252,11 +247,12 @@ the user specifically asks to proxy, so the @dfn{VPN} interface no longer
 | 
				
			||||||
            (sha256 (base32
 | 
					            (sha256 (base32
 | 
				
			||||||
                     "1wlypi68kqqg2mdck8wvf6aanhrmf9i7z6lngyxvcrp23jdzz34h"))))
 | 
					                     "1wlypi68kqqg2mdck8wvf6aanhrmf9i7z6lngyxvcrp23jdzz34h"))))
 | 
				
			||||||
   (build-system gnu-build-system)
 | 
					   (build-system gnu-build-system)
 | 
				
			||||||
   (inputs
 | 
					   (propagated-inputs
 | 
				
			||||||
    `(("libxml2" ,libxml2)
 | 
					    `(("libxml2" ,libxml2)
 | 
				
			||||||
      ("gnutls" ,gnutls)
 | 
					      ("gnutls" ,gnutls)
 | 
				
			||||||
      ("vpnc-scripts" ,vpnc-scripts)
 | 
					 | 
				
			||||||
      ("zlib" ,zlib)))
 | 
					      ("zlib" ,zlib)))
 | 
				
			||||||
 | 
					   (inputs
 | 
				
			||||||
 | 
					    `(("vpnc-scripts" ,vpnc-scripts)))
 | 
				
			||||||
   (native-inputs
 | 
					   (native-inputs
 | 
				
			||||||
    `(("gettext" ,gettext-minimal)
 | 
					    `(("gettext" ,gettext-minimal)
 | 
				
			||||||
      ("pkg-config" ,pkg-config)))
 | 
					      ("pkg-config" ,pkg-config)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -131,20 +131,19 @@ the leaves of a full binary tree.")
 | 
				
			||||||
(define-public i3status
 | 
					(define-public i3status
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "i3status")
 | 
					    (name "i3status")
 | 
				
			||||||
    (version "2.12")
 | 
					    (version "2.13")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "https://i3wm.org/i3status/i3status-"
 | 
					              (uri (string-append "https://i3wm.org/i3status/i3status-"
 | 
				
			||||||
                                  version ".tar.bz2"))
 | 
					                                  version ".tar.bz2"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "06krpbijv4yi33nypg6qcn4hilcrdyarsdpd9fmr2cq46qaqiikg"))))
 | 
					                "0rhlzb96mw64z2jnhwz9nibc7pxg549626lz5642xxk5hpzwk2ff"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
 | 
					     `(;; XXX: Do an "out of source" build to work around
 | 
				
			||||||
       #:phases
 | 
					       ;; <https://github.com/i3/i3status/issues/339>.
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       #:out-of-source? #t
 | 
				
			||||||
         (delete 'configure))
 | 
					 | 
				
			||||||
       #:tests? #f)) ; no test suite
 | 
					       #:tests? #f)) ; no test suite
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("openlibm" ,openlibm)
 | 
					     `(("openlibm" ,openlibm)
 | 
				
			||||||
| 
						 | 
					@ -156,7 +155,10 @@ the leaves of a full binary tree.")
 | 
				
			||||||
       ("libcap" ,libcap)
 | 
					       ("libcap" ,libcap)
 | 
				
			||||||
       ("asciidoc" ,asciidoc)))
 | 
					       ("asciidoc" ,asciidoc)))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)))
 | 
					     `(("pkg-config" ,pkg-config)
 | 
				
			||||||
 | 
					       ("docbook-xsl" ,docbook-xsl)
 | 
				
			||||||
 | 
					       ("libxml2" ,libxml2)             ;for XML_CATALOG_FILES
 | 
				
			||||||
 | 
					       ("xmlto" ,xmlto)))
 | 
				
			||||||
    (home-page "https://i3wm.org/i3status/")
 | 
					    (home-page "https://i3wm.org/i3status/")
 | 
				
			||||||
    (synopsis "Status bar for i3bar, dzen2, xmobar or similar programs")
 | 
					    (synopsis "Status bar for i3bar, dzen2, xmobar or similar programs")
 | 
				
			||||||
    (description "i3status is a small program for generating a status bar for
 | 
					    (description "i3status is a small program for generating a status bar for
 | 
				
			||||||
| 
						 | 
					@ -171,14 +173,14 @@ commands would.")
 | 
				
			||||||
(define-public i3-wm
 | 
					(define-public i3-wm
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "i3-wm")
 | 
					    (name "i3-wm")
 | 
				
			||||||
    (version "4.16.1")
 | 
					    (version "4.17")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "https://i3wm.org/downloads/i3-"
 | 
					              (uri (string-append "https://i3wm.org/downloads/i3-"
 | 
				
			||||||
                                  version ".tar.bz2"))
 | 
					                                  version ".tar.bz2"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0xl56y196vxv001gvx35xwfr25zah8m3xwizp9ycdgdc0rfc4rdb"))))
 | 
					                "1z8qmkkq9dhqmqy8sjw3rnpnmnb8v7lr456bs0qzp23bgpj17gjf"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:configure-flags
 | 
					     `(#:configure-flags
 | 
				
			||||||
| 
						 | 
					@ -288,8 +290,6 @@ Despite the name it should work with any X11 window manager.")
 | 
				
			||||||
      (arguments
 | 
					      (arguments
 | 
				
			||||||
       `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
 | 
					       `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
 | 
				
			||||||
         #:phases (modify-phases %standard-phases
 | 
					         #:phases (modify-phases %standard-phases
 | 
				
			||||||
                    (add-after 'unpack 'autogen
 | 
					 | 
				
			||||||
                      (lambda _ (invoke "sh" "autogen.sh")))
 | 
					 | 
				
			||||||
                    (add-after 'install 'install-doc
 | 
					                    (add-after 'install 'install-doc
 | 
				
			||||||
                      (lambda* (#:key outputs #:allow-other-keys)
 | 
					                      (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
                        (let* ((out (assoc-ref outputs "out"))
 | 
					                        (let* ((out (assoc-ref outputs "out"))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2909,8 +2909,8 @@ X server.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public xf86-video-intel
 | 
					(define-public xf86-video-intel
 | 
				
			||||||
  (let ((commit "6afed33b2d673d88674f0c76efe500ae414e8e1b")
 | 
					  (let ((commit "6f4972d5c368c30e971a23c1dc370d3e43761282")
 | 
				
			||||||
        (revision "13"))
 | 
					        (revision "14"))
 | 
				
			||||||
    (package
 | 
					    (package
 | 
				
			||||||
      (name "xf86-video-intel")
 | 
					      (name "xf86-video-intel")
 | 
				
			||||||
      (version (git-version "2.99.917" revision commit))
 | 
					      (version (git-version "2.99.917" revision commit))
 | 
				
			||||||
| 
						 | 
					@ -2923,7 +2923,7 @@ X server.")
 | 
				
			||||||
               (commit commit)))
 | 
					               (commit commit)))
 | 
				
			||||||
         (sha256
 | 
					         (sha256
 | 
				
			||||||
          (base32
 | 
					          (base32
 | 
				
			||||||
           "1s3fqlqzmql7s15m7qy21vai93n6q9f0ccpv0p353rwfx16mmf35"))
 | 
					           "0bc46qqglzfm4g9q4c2vgynvps2ng0xvlxnjpm9d6z4q6scdhz59"))
 | 
				
			||||||
         (file-name (git-file-name name version))))
 | 
					         (file-name (git-file-name name version))))
 | 
				
			||||||
      (build-system gnu-build-system)
 | 
					      (build-system gnu-build-system)
 | 
				
			||||||
      (inputs `(("mesa" ,mesa)
 | 
					      (inputs `(("mesa" ,mesa)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,8 +19,10 @@
 | 
				
			||||||
(define-module (gnu tests reconfigure)
 | 
					(define-module (gnu tests reconfigure)
 | 
				
			||||||
  #:use-module (gnu bootloader)
 | 
					  #:use-module (gnu bootloader)
 | 
				
			||||||
  #:use-module (gnu services shepherd)
 | 
					  #:use-module (gnu services shepherd)
 | 
				
			||||||
  #:use-module (gnu system vm)
 | 
					 | 
				
			||||||
  #:use-module (gnu system)
 | 
					  #:use-module (gnu system)
 | 
				
			||||||
 | 
					  #:use-module (gnu system accounts)
 | 
				
			||||||
 | 
					  #:use-module (gnu system shadow)
 | 
				
			||||||
 | 
					  #:use-module (gnu system vm)
 | 
				
			||||||
  #:use-module (gnu tests)
 | 
					  #:use-module (gnu tests)
 | 
				
			||||||
  #:use-module (guix derivations)
 | 
					  #:use-module (guix derivations)
 | 
				
			||||||
  #:use-module (guix gexp)
 | 
					  #:use-module (guix gexp)
 | 
				
			||||||
| 
						 | 
					@ -43,7 +45,13 @@
 | 
				
			||||||
generation of the system profile."
 | 
					generation of the system profile."
 | 
				
			||||||
  (define os
 | 
					  (define os
 | 
				
			||||||
    (marionette-operating-system
 | 
					    (marionette-operating-system
 | 
				
			||||||
     (simple-operating-system)
 | 
					     (operating-system
 | 
				
			||||||
 | 
					       (inherit (simple-operating-system))
 | 
				
			||||||
 | 
					       (users (cons (user-account
 | 
				
			||||||
 | 
					                     (name "jakob")
 | 
				
			||||||
 | 
					                     (group "users")
 | 
				
			||||||
 | 
					                     (home-directory "/home/jakob"))
 | 
				
			||||||
 | 
					                    %base-user-accounts)))
 | 
				
			||||||
     #:imported-modules '((gnu services herd)
 | 
					     #:imported-modules '((gnu services herd)
 | 
				
			||||||
                          (guix combinators))))
 | 
					                          (guix combinators))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -84,7 +92,25 @@ generation of the system profile."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            (test-equal "script created new generation"
 | 
					            (test-equal "script created new generation"
 | 
				
			||||||
              (length (system-generations marionette))
 | 
					              (length (system-generations marionette))
 | 
				
			||||||
              (1+ (length generations-prior))))
 | 
					              (1+ (length generations-prior)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            (test-assert "script activated the new generation"
 | 
				
			||||||
 | 
					              (and (eqv? 'symlink
 | 
				
			||||||
 | 
					                         (marionette-eval
 | 
				
			||||||
 | 
					                          '(stat:type (lstat "/run/current-system"))
 | 
				
			||||||
 | 
					                          marionette))
 | 
				
			||||||
 | 
					                   (string= #$os
 | 
				
			||||||
 | 
					                            (marionette-eval
 | 
				
			||||||
 | 
					                             '(readlink "/run/current-system")
 | 
				
			||||||
 | 
					                             marionette))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            (test-assert "script activated user accounts"
 | 
				
			||||||
 | 
					              (marionette-eval
 | 
				
			||||||
 | 
					               '(string-contains (call-with-input-file "/etc/passwd"
 | 
				
			||||||
 | 
					                                   (lambda (port)
 | 
				
			||||||
 | 
					                                     (get-string-all port)))
 | 
				
			||||||
 | 
					                                 "jakob")
 | 
				
			||||||
 | 
					               marionette)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          (test-end)
 | 
					          (test-end)
 | 
				
			||||||
          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
 | 
					          (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,6 +30,7 @@
 | 
				
			||||||
            texlive-build
 | 
					            texlive-build
 | 
				
			||||||
            texlive-build-system
 | 
					            texlive-build-system
 | 
				
			||||||
            texlive-ref
 | 
					            texlive-ref
 | 
				
			||||||
 | 
					            texlive-origin
 | 
				
			||||||
            %texlive-tag
 | 
					            %texlive-tag
 | 
				
			||||||
            %texlive-revision))
 | 
					            %texlive-revision))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -44,6 +45,20 @@
 | 
				
			||||||
(define %texlive-tag "texlive-2018.2")
 | 
					(define %texlive-tag "texlive-2018.2")
 | 
				
			||||||
(define %texlive-revision 49435)
 | 
					(define %texlive-revision 49435)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (texlive-origin name version locations hash)
 | 
				
			||||||
 | 
					  "Return an <origin> object for a TeX Live package consisting of multiple
 | 
				
			||||||
 | 
					LOCATIONS with a provided HASH.  Use NAME and VERSION to compute a prettier
 | 
				
			||||||
 | 
					name for the checkout directory."
 | 
				
			||||||
 | 
					  (origin
 | 
				
			||||||
 | 
					    (method svn-multi-fetch)
 | 
				
			||||||
 | 
					    (uri (svn-multi-reference
 | 
				
			||||||
 | 
					          (url (string-append "svn://www.tug.org/texlive/tags/"
 | 
				
			||||||
 | 
					                              %texlive-tag "/Master/texmf-dist/"))
 | 
				
			||||||
 | 
					          (locations locations)
 | 
				
			||||||
 | 
					          (revision %texlive-revision)))
 | 
				
			||||||
 | 
					    (file-name (string-append name "-" version "-checkout"))
 | 
				
			||||||
 | 
					    (sha256 hash)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (texlive-ref component id)
 | 
					(define (texlive-ref component id)
 | 
				
			||||||
  "Return a <svn-reference> object for the package ID, which is part of the
 | 
					  "Return a <svn-reference> object for the package ID, which is part of the
 | 
				
			||||||
given Texlive COMPONENT."
 | 
					given Texlive COMPONENT."
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,7 +36,7 @@
 | 
				
			||||||
  "Fetch REVISION from URL into DIRECTORY.  REVISION must be an integer, and a
 | 
					  "Fetch REVISION from URL into DIRECTORY.  REVISION must be an integer, and a
 | 
				
			||||||
valid Subversion revision.  Return #t on success, #f otherwise."
 | 
					valid Subversion revision.  Return #t on success, #f otherwise."
 | 
				
			||||||
  (apply invoke svn-command
 | 
					  (apply invoke svn-command
 | 
				
			||||||
         "checkout" "--non-interactive"
 | 
					         "export" "--non-interactive"
 | 
				
			||||||
         ;; Trust the server certificate.  This is OK as we
 | 
					         ;; Trust the server certificate.  This is OK as we
 | 
				
			||||||
         ;; verify the checksum later.  This can be removed when
 | 
					         ;; verify the checksum later.  This can be removed when
 | 
				
			||||||
         ;; ca-certificates package is added.
 | 
					         ;; ca-certificates package is added.
 | 
				
			||||||
| 
						 | 
					@ -46,13 +46,6 @@ valid Subversion revision.  Return #t on success, #f otherwise."
 | 
				
			||||||
                       (string-append "--password=" password))
 | 
					                       (string-append "--password=" password))
 | 
				
			||||||
                 '())
 | 
					                 '())
 | 
				
			||||||
           ,url ,directory))
 | 
					           ,url ,directory))
 | 
				
			||||||
 | 
					 | 
				
			||||||
  ;; The contents of '.svn' vary as a function of the current status
 | 
					 | 
				
			||||||
  ;; of the repo.  Since we want a fixed output, this directory needs
 | 
					 | 
				
			||||||
  ;; to be taken out.
 | 
					 | 
				
			||||||
  (with-directory-excursion directory
 | 
					 | 
				
			||||||
    (for-each delete-file-recursively (find-files "." "^\\.svn$" #:directories? #t)))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  #t)
 | 
					  #t)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; svn.scm ends here
 | 
					;;; svn.scm ends here
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,6 +19,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-module (guix scripts deploy)
 | 
					(define-module (guix scripts deploy)
 | 
				
			||||||
  #:use-module (gnu machine)
 | 
					  #:use-module (gnu machine)
 | 
				
			||||||
 | 
					  #:use-module (guix discovery)
 | 
				
			||||||
  #:use-module (guix scripts)
 | 
					  #:use-module (guix scripts)
 | 
				
			||||||
  #:use-module (guix scripts build)
 | 
					  #:use-module (guix scripts build)
 | 
				
			||||||
  #:use-module (guix store)
 | 
					  #:use-module (guix store)
 | 
				
			||||||
| 
						 | 
					@ -74,7 +75,10 @@ Perform the deployment specified by FILE.\n"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (load-source-file file)
 | 
					(define (load-source-file file)
 | 
				
			||||||
  "Load FILE as a user module."
 | 
					  "Load FILE as a user module."
 | 
				
			||||||
  (let ((module (make-user-module '((gnu) (gnu machine) (gnu machine ssh)))))
 | 
					  (let* ((guix-path (dirname (search-path %load-path "guix.scm")))
 | 
				
			||||||
 | 
					         (environment-modules (scheme-modules* guix-path "gnu/machine"))
 | 
				
			||||||
 | 
					         (module (make-user-module (append '((gnu) (gnu machine))
 | 
				
			||||||
 | 
					                                           environment-modules))))
 | 
				
			||||||
    (load* file module)))
 | 
					    (load* file module)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (guix-deploy . args)
 | 
					(define (guix-deploy . args)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -195,21 +195,31 @@ BOOTLOADER-PACKAGE."
 | 
				
			||||||
                        (srfi srfi-34)
 | 
					                        (srfi srfi-34)
 | 
				
			||||||
                        (srfi srfi-35))
 | 
					                        (srfi srfi-35))
 | 
				
			||||||
           (let* ((gc-root (string-append #$target %gc-roots-directory "/bootcfg"))
 | 
					           (let* ((gc-root (string-append #$target %gc-roots-directory "/bootcfg"))
 | 
				
			||||||
                  (temp-gc-root (string-append gc-root ".new")))
 | 
					                  (new-gc-root (string-append gc-root ".new")))
 | 
				
			||||||
             (switch-symlinks temp-gc-root gc-root)
 | 
					             ;; #$bootcfg has dependencies.
 | 
				
			||||||
             (install-boot-config #$bootcfg #$bootcfg-file #$target)
 | 
					             ;; The bootloader magically loads the configuration from
 | 
				
			||||||
 | 
					             ;; (string-append #$target #$bootcfg-file) (for example
 | 
				
			||||||
 | 
					             ;; "/boot/grub/grub.cfg").
 | 
				
			||||||
 | 
					             ;; If we didn't do something special, the garbage collector
 | 
				
			||||||
 | 
					             ;; would remove the dependencies of #$bootcfg.
 | 
				
			||||||
 | 
					             ;; Register #$bootcfg as a GC root.
 | 
				
			||||||
             ;; Preserve the previous activation's garbage collector root
 | 
					             ;; Preserve the previous activation's garbage collector root
 | 
				
			||||||
             ;; until the bootloader installer has run, so that a failure in
 | 
					             ;; until the bootloader installer has run, so that a failure in
 | 
				
			||||||
             ;; the bootloader's installer script doesn't leave the user with
 | 
					             ;; the bootloader's installer script doesn't leave the user with
 | 
				
			||||||
             ;; a broken installation.
 | 
					             ;; a broken installation.
 | 
				
			||||||
 | 
					             (switch-symlinks new-gc-root #$bootcfg)
 | 
				
			||||||
 | 
					             (install-boot-config #$bootcfg #$bootcfg-file #$target)
 | 
				
			||||||
             (when #$installer
 | 
					             (when #$installer
 | 
				
			||||||
               (catch #t
 | 
					               (catch #t
 | 
				
			||||||
                 (lambda ()
 | 
					                 (lambda ()
 | 
				
			||||||
                   (#$installer #$bootloader-package #$device #$target))
 | 
					                   (#$installer #$bootloader-package #$device #$target))
 | 
				
			||||||
                 (lambda args
 | 
					                 (lambda args
 | 
				
			||||||
                   (delete-file temp-gc-root)
 | 
					                   (delete-file new-gc-root)
 | 
				
			||||||
                   (apply throw args))))
 | 
					                   (apply throw args))))
 | 
				
			||||||
             (rename-file temp-gc-root gc-root)))))))
 | 
					             ;; We are sure that the installation of the bootloader
 | 
				
			||||||
 | 
					             ;; succeeded, so we can replace the old GC root by the new
 | 
				
			||||||
 | 
					             ;; GC root now.
 | 
				
			||||||
 | 
					             (rename-file new-gc-root gc-root)))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define* (install-bootloader eval configuration bootcfg
 | 
					(define* (install-bootloader eval configuration bootcfg
 | 
				
			||||||
                             #:key
 | 
					                             #:key
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 | 
					;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 | 
				
			||||||
;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
 | 
					;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
 | 
				
			||||||
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
 | 
					;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -32,7 +32,14 @@
 | 
				
			||||||
            svn-reference-url
 | 
					            svn-reference-url
 | 
				
			||||||
            svn-reference-revision
 | 
					            svn-reference-revision
 | 
				
			||||||
            svn-fetch
 | 
					            svn-fetch
 | 
				
			||||||
            download-svn-to-store))
 | 
					            download-svn-to-store
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            svn-multi-reference
 | 
				
			||||||
 | 
					            svn-multi-reference?
 | 
				
			||||||
 | 
					            svn-multi-reference-url
 | 
				
			||||||
 | 
					            svn-multi-reference-revision
 | 
				
			||||||
 | 
					            svn-multi-reference-locations
 | 
				
			||||||
 | 
					            svn-multi-fetch))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; Commentary:
 | 
					;;; Commentary:
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -83,6 +90,54 @@ HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
 | 
				
			||||||
                      #:guile-for-build guile
 | 
					                      #:guile-for-build guile
 | 
				
			||||||
                      #:local-build? #t)))
 | 
					                      #:local-build? #t)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-record-type* <svn-multi-reference>
 | 
				
			||||||
 | 
					  svn-multi-reference make-svn-multi-reference
 | 
				
			||||||
 | 
					  svn-multi-reference?
 | 
				
			||||||
 | 
					  (url        svn-multi-reference-url)                 ; string
 | 
				
			||||||
 | 
					  (revision   svn-multi-reference-revision)            ; number
 | 
				
			||||||
 | 
					  (locations  svn-multi-reference-locations)           ; list of strings
 | 
				
			||||||
 | 
					  (user-name  svn-multi-reference-user-name (default #f))
 | 
				
			||||||
 | 
					  (password   svn-multi-reference-password (default #f)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define* (svn-multi-fetch ref hash-algo hash
 | 
				
			||||||
 | 
					                          #:optional name
 | 
				
			||||||
 | 
					                          #:key (system (%current-system)) (guile (default-guile))
 | 
				
			||||||
 | 
					                          (svn (subversion-package)))
 | 
				
			||||||
 | 
					  "Return a fixed-output derivation that fetches REF, a <svn-multi-reference>
 | 
				
			||||||
 | 
					object.  The output is expected to have recursive hash HASH of type
 | 
				
			||||||
 | 
					HASH-ALGO (a symbol).  Use NAME as the file name, or a generic name if #f."
 | 
				
			||||||
 | 
					  (define build
 | 
				
			||||||
 | 
					    (with-imported-modules '((guix build svn)
 | 
				
			||||||
 | 
					                             (guix build utils))
 | 
				
			||||||
 | 
					      #~(begin
 | 
				
			||||||
 | 
					          (use-modules (guix build svn)
 | 
				
			||||||
 | 
					                       (guix build utils)
 | 
				
			||||||
 | 
					                       (srfi srfi-1))
 | 
				
			||||||
 | 
					          (every (lambda (location)
 | 
				
			||||||
 | 
					                   ;; The directory must exist if we are to fetch only a
 | 
				
			||||||
 | 
					                   ;; single file.
 | 
				
			||||||
 | 
					                   (unless (string-suffix? "/" location)
 | 
				
			||||||
 | 
					                     (mkdir-p (string-append #$output "/" (dirname location))))
 | 
				
			||||||
 | 
					                   (svn-fetch (string-append '#$(svn-multi-reference-url ref)
 | 
				
			||||||
 | 
					                                             "/" location)
 | 
				
			||||||
 | 
					                              '#$(svn-multi-reference-revision ref)
 | 
				
			||||||
 | 
					                              (if (string-suffix? "/" location)
 | 
				
			||||||
 | 
					                                  (string-append #$output "/" location)
 | 
				
			||||||
 | 
					                                  (string-append #$output "/" (dirname location)))
 | 
				
			||||||
 | 
					                              #:svn-command (string-append #+svn "/bin/svn")
 | 
				
			||||||
 | 
					                              #:user-name #$(svn-multi-reference-user-name ref)
 | 
				
			||||||
 | 
					                              #:password #$(svn-multi-reference-password ref)))
 | 
				
			||||||
 | 
					                 '#$(svn-multi-reference-locations ref)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (mlet %store-monad ((guile (package->derivation guile system)))
 | 
				
			||||||
 | 
					    (gexp->derivation (or name "svn-checkout") build
 | 
				
			||||||
 | 
					                      #:system system
 | 
				
			||||||
 | 
					                      #:hash-algo hash-algo
 | 
				
			||||||
 | 
					                      #:hash hash
 | 
				
			||||||
 | 
					                      #:recursive? #t
 | 
				
			||||||
 | 
					                      #:guile-for-build guile
 | 
				
			||||||
 | 
					                      #:local-build? #t)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define* (download-svn-to-store store ref
 | 
					(define* (download-svn-to-store store ref
 | 
				
			||||||
                                #:optional (name (basename (svn-reference-url ref)))
 | 
					                                #:optional (name (basename (svn-reference-url ref)))
 | 
				
			||||||
                                #:key (log (current-error-port)))
 | 
					                                #:key (log (current-error-port)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in a new issue