Merge branch 'master' into core-updates
This commit is contained in:
		
						commit
						ea45e2c500
					
				
					 38 changed files with 1102 additions and 378 deletions
				
			
		| 
						 | 
					@ -201,6 +201,13 @@ MODULES +=					\
 | 
				
			||||||
 | 
					
 | 
				
			||||||
endif HAVE_GUILE_SSH
 | 
					endif HAVE_GUILE_SSH
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if HAVE_GUILE_GIT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MODULES +=					\
 | 
				
			||||||
 | 
					  guix/git.scm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					endif HAVE_GUILE_GIT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if BUILD_DAEMON_OFFLOAD
 | 
					if BUILD_DAEMON_OFFLOAD
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MODULES +=					\
 | 
					MODULES +=					\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -97,6 +97,13 @@ Guile major version (2.0 or 2.2), or #f if none of the packages matches."
 | 
				
			||||||
                             "guile2.2-ssh"
 | 
					                             "guile2.2-ssh"
 | 
				
			||||||
                             "guile2.0-ssh"))
 | 
					                             "guile2.0-ssh"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define guile-git
 | 
				
			||||||
 | 
					  (package-for-current-guile "guile-git"
 | 
				
			||||||
 | 
					                             "guile2.0-git"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define guile-bytestructures
 | 
				
			||||||
 | 
					  (package-for-current-guile "guile-bytestructures"
 | 
				
			||||||
 | 
					                             "guile2.0-bytestructures"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; The actual build procedure.
 | 
					;; The actual build procedure.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -148,19 +155,42 @@ files."
 | 
				
			||||||
    #~(begin
 | 
					    #~(begin
 | 
				
			||||||
        (use-modules (guix build pull))
 | 
					        (use-modules (guix build pull))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        (let ((json (string-append #$guile-json "/share/guile/site/"
 | 
					        (letrec-syntax ((maybe-load-path
 | 
				
			||||||
                                   #$(effective-version))))
 | 
					                         (syntax-rules ()
 | 
				
			||||||
 | 
					                           ((_ item rest ...)
 | 
				
			||||||
 | 
					                            (let ((tail (maybe-load-path rest ...)))
 | 
				
			||||||
 | 
					                              (if (string? item)
 | 
				
			||||||
 | 
					                                  (cons (string-append item
 | 
				
			||||||
 | 
					                                                       "/share/guile/site/"
 | 
				
			||||||
 | 
					                                                       #$(effective-version))
 | 
				
			||||||
 | 
					                                        tail)
 | 
				
			||||||
 | 
					                                  tail)))
 | 
				
			||||||
 | 
					                           ((_)
 | 
				
			||||||
 | 
					                            '()))))
 | 
				
			||||||
          (set! %load-path
 | 
					          (set! %load-path
 | 
				
			||||||
            (cons* json
 | 
					                (append
 | 
				
			||||||
                   (string-append #$guile-ssh "/share/guile/site/"
 | 
					                 (maybe-load-path #$guile-json #$guile-ssh
 | 
				
			||||||
                                  #$(effective-version))
 | 
					                                  #$guile-git #$guile-bytestructures)
 | 
				
			||||||
                   %load-path))
 | 
					                 %load-path)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        (letrec-syntax ((maybe-load-compiled-path
 | 
				
			||||||
 | 
					                         (syntax-rules ()
 | 
				
			||||||
 | 
					                           ((_ item rest ...)
 | 
				
			||||||
 | 
					                            (let ((tail (maybe-load-compiled-path rest ...)))
 | 
				
			||||||
 | 
					                              (if (string? item)
 | 
				
			||||||
 | 
					                                  (cons (string-append item
 | 
				
			||||||
 | 
					                                                       "/lib/guile/"
 | 
				
			||||||
 | 
					                                                       #$(effective-version)
 | 
				
			||||||
 | 
					                                                       "/site-ccache")
 | 
				
			||||||
 | 
					                                        tail)
 | 
				
			||||||
 | 
					                                  tail)))
 | 
				
			||||||
 | 
					                           ((_)
 | 
				
			||||||
 | 
					                            '()))))
 | 
				
			||||||
          (set! %load-compiled-path
 | 
					          (set! %load-compiled-path
 | 
				
			||||||
            (cons* json
 | 
					                (append
 | 
				
			||||||
                   (string-append #$guile-ssh "/lib/guile/"
 | 
					                 (maybe-load-compiled-path #$guile-json #$guile-ssh
 | 
				
			||||||
                                  #$(effective-version)
 | 
					                                           #$guile-git #$guile-bytestructures)
 | 
				
			||||||
                                  "/site-ccache")
 | 
					                 %load-compiled-path)))
 | 
				
			||||||
                   %load-compiled-path)))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ;; XXX: The 'guile-ssh' package prior to Guix commit 92b7258 was
 | 
					        ;; XXX: The 'guile-ssh' package prior to Guix commit 92b7258 was
 | 
				
			||||||
        ;; broken: libguile-ssh could not be found.  Work around that.
 | 
					        ;; broken: libguile-ssh could not be found.  Work around that.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -104,6 +104,10 @@ dnl Guile-JSON is used in various places.
 | 
				
			||||||
GUILE_MODULE_AVAILABLE([have_guile_json], [(json)])
 | 
					GUILE_MODULE_AVAILABLE([have_guile_json], [(json)])
 | 
				
			||||||
AM_CONDITIONAL([HAVE_GUILE_JSON], [test "x$have_guile_json" = "xyes"])
 | 
					AM_CONDITIONAL([HAVE_GUILE_JSON], [test "x$have_guile_json" = "xyes"])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dnl Check for Guile-Git.
 | 
				
			||||||
 | 
					GUILE_MODULE_AVAILABLE([have_guile_git], [(git)])
 | 
				
			||||||
 | 
					AM_CONDITIONAL([HAVE_GUILE_GIT], [test "x$have_guile_git" = "xyes"])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dnl Make sure we have a full-fledged Guile.
 | 
					dnl Make sure we have a full-fledged Guile.
 | 
				
			||||||
GUIX_ASSERT_GUILE_FEATURES([regex posix socket net-db threads])
 | 
					GUIX_ASSERT_GUILE_FEATURES([regex posix socket net-db threads])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										185
									
								
								doc/guix.texi
									
										
									
									
									
								
							
							
						
						
									
										185
									
								
								doc/guix.texi
									
										
									
									
									
								
							| 
						 | 
					@ -37,7 +37,8 @@ Copyright @copyright{} 2017 Carlo Zancanaro@*
 | 
				
			||||||
Copyright @copyright{} 2017 Thomas Danckaert@*
 | 
					Copyright @copyright{} 2017 Thomas Danckaert@*
 | 
				
			||||||
Copyright @copyright{} 2017 humanitiesNerd@*
 | 
					Copyright @copyright{} 2017 humanitiesNerd@*
 | 
				
			||||||
Copyright @copyright{} 2017 Christopher Allan Webber@*
 | 
					Copyright @copyright{} 2017 Christopher Allan Webber@*
 | 
				
			||||||
Copyright @copyright{} 2017 Marius Bakke
 | 
					Copyright @copyright{} 2017 Marius Bakke@*
 | 
				
			||||||
 | 
					Copyright @copyright{} 2017 Hartmut Goebel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Permission is granted to copy, distribute and/or modify this document
 | 
					Permission is granted to copy, distribute and/or modify this document
 | 
				
			||||||
under the terms of the GNU Free Documentation License, Version 1.3 or
 | 
					under the terms of the GNU Free Documentation License, Version 1.3 or
 | 
				
			||||||
| 
						 | 
					@ -138,7 +139,7 @@ Programming Interface
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Defining Packages
 | 
					Defining Packages
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* package Reference::           The package data type.
 | 
					* package Reference ::          The package data type.
 | 
				
			||||||
* origin Reference::            The origin data type.
 | 
					* origin Reference::            The origin data type.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Utilities
 | 
					Utilities
 | 
				
			||||||
| 
						 | 
					@ -163,6 +164,7 @@ Invoking @command{guix build}
 | 
				
			||||||
* Common Build Options::        Build options for most commands.
 | 
					* Common Build Options::        Build options for most commands.
 | 
				
			||||||
* Package Transformation Options::  Creating variants of packages.
 | 
					* Package Transformation Options::  Creating variants of packages.
 | 
				
			||||||
* Additional Build Options::    Options specific to 'guix build'.
 | 
					* Additional Build Options::    Options specific to 'guix build'.
 | 
				
			||||||
 | 
					* Debugging Build Failures::    Real life packaging experience.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GNU Distribution
 | 
					GNU Distribution
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -199,7 +201,7 @@ System Configuration
 | 
				
			||||||
* X.509 Certificates::          Authenticating HTTPS servers.
 | 
					* X.509 Certificates::          Authenticating HTTPS servers.
 | 
				
			||||||
* Name Service Switch::         Configuring libc's name service switch.
 | 
					* Name Service Switch::         Configuring libc's name service switch.
 | 
				
			||||||
* Initial RAM Disk::            Linux-Libre bootstrapping.
 | 
					* Initial RAM Disk::            Linux-Libre bootstrapping.
 | 
				
			||||||
* GRUB Configuration::          Configuring the boot loader.
 | 
					* Bootloader Configuration::    Configuring the boot loader.
 | 
				
			||||||
* Invoking guix system::        Instantiating a system configuration.
 | 
					* Invoking guix system::        Instantiating a system configuration.
 | 
				
			||||||
* Running GuixSD in a VM::      How to run GuixSD in a virtual machine.
 | 
					* Running GuixSD in a VM::      How to run GuixSD in a virtual machine.
 | 
				
			||||||
* Defining Services::           Adding new service definitions.
 | 
					* Defining Services::           Adding new service definitions.
 | 
				
			||||||
| 
						 | 
					@ -4866,7 +4868,7 @@ described in the subsections below.
 | 
				
			||||||
* Common Build Options::        Build options for most commands.
 | 
					* Common Build Options::        Build options for most commands.
 | 
				
			||||||
* Package Transformation Options::  Creating variants of packages.
 | 
					* Package Transformation Options::  Creating variants of packages.
 | 
				
			||||||
* Additional Build Options::    Options specific to 'guix build'.
 | 
					* Additional Build Options::    Options specific to 'guix build'.
 | 
				
			||||||
* Debugging Build Failures::    Real life packaging experience
 | 
					* Debugging Build Failures::    Real life packaging experience.
 | 
				
			||||||
@end menu
 | 
					@end menu
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@node Common Build Options
 | 
					@node Common Build Options
 | 
				
			||||||
| 
						 | 
					@ -7797,7 +7799,7 @@ instance to support new system services.
 | 
				
			||||||
* X.509 Certificates::          Authenticating HTTPS servers.
 | 
					* X.509 Certificates::          Authenticating HTTPS servers.
 | 
				
			||||||
* Name Service Switch::         Configuring libc's name service switch.
 | 
					* Name Service Switch::         Configuring libc's name service switch.
 | 
				
			||||||
* Initial RAM Disk::            Linux-Libre bootstrapping.
 | 
					* Initial RAM Disk::            Linux-Libre bootstrapping.
 | 
				
			||||||
* GRUB Configuration::          Configuring the boot loader.
 | 
					* Bootloader Configuration::    Configuring the boot loader.
 | 
				
			||||||
* Invoking guix system::        Instantiating a system configuration.
 | 
					* Invoking guix system::        Instantiating a system configuration.
 | 
				
			||||||
* Running GuixSD in a VM::      How to run GuixSD in a virtual machine.
 | 
					* Running GuixSD in a VM::      How to run GuixSD in a virtual machine.
 | 
				
			||||||
* Defining Services::           Adding new service definitions.
 | 
					* Defining Services::           Adding new service definitions.
 | 
				
			||||||
| 
						 | 
					@ -7980,7 +7982,7 @@ system, should you ever need to.
 | 
				
			||||||
Speaking of roll-back, each time you run @command{guix system
 | 
					Speaking of roll-back, each time you run @command{guix system
 | 
				
			||||||
reconfigure}, a new @dfn{generation} of the system is created---without
 | 
					reconfigure}, a new @dfn{generation} of the system is created---without
 | 
				
			||||||
modifying or deleting previous generations.  Old system generations get
 | 
					modifying or deleting previous generations.  Old system generations get
 | 
				
			||||||
an entry in the GRUB boot menu, allowing you to boot them in case
 | 
					an entry in the bootloader boot menu, allowing you to boot them in case
 | 
				
			||||||
something went wrong with the latest generation.  Reassuring, no?  The
 | 
					something went wrong with the latest generation.  Reassuring, no?  The
 | 
				
			||||||
@command{guix system list-generations} command lists the system
 | 
					@command{guix system list-generations} command lists the system
 | 
				
			||||||
generations available on disk.  It is also possible to roll back the
 | 
					generations available on disk.  It is also possible to roll back the
 | 
				
			||||||
| 
						 | 
					@ -8036,7 +8038,7 @@ List of strings or gexps representing additional arguments to pass on
 | 
				
			||||||
the command-line of the kernel---e.g., @code{("console=ttyS0")}.
 | 
					the command-line of the kernel---e.g., @code{("console=ttyS0")}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{bootloader}
 | 
					@item @code{bootloader}
 | 
				
			||||||
The system bootloader configuration object.  @xref{GRUB Configuration}.
 | 
					The system bootloader configuration object.  @xref{Bootloader Configuration}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{initrd} (default: @code{base-initrd})
 | 
					@item @code{initrd} (default: @code{base-initrd})
 | 
				
			||||||
@cindex initrd
 | 
					@cindex initrd
 | 
				
			||||||
| 
						 | 
					@ -15711,32 +15713,52 @@ upon booting.  All the derivations referenced by @var{exp} are
 | 
				
			||||||
automatically copied to the initrd.
 | 
					automatically copied to the initrd.
 | 
				
			||||||
@end deffn
 | 
					@end deffn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@node GRUB Configuration
 | 
					@node Bootloader Configuration
 | 
				
			||||||
@subsection GRUB Configuration
 | 
					@subsection Bootloader Configuration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@cindex GRUB
 | 
					@cindex bootloader
 | 
				
			||||||
@cindex boot loader
 | 
					@cindex boot loader
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The operating system uses GNU@tie{}GRUB as its boot loader
 | 
					The operating system supports multiple bootloaders.  The bootloader is
 | 
				
			||||||
(@pxref{Overview, overview of GRUB,, grub, GNU GRUB Manual}).  It is
 | 
					configured using @code{bootloader-configuration} declaration.  All the
 | 
				
			||||||
configured using a @code{grub-configuration} declaration.  This data type
 | 
					fields of this structure are bootloader agnostic except for one field,
 | 
				
			||||||
is exported by the @code{(gnu system grub)} module and described below.
 | 
					@code{bootloader} that indicates the bootloader to be configured and
 | 
				
			||||||
 | 
					installed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@deftp {Data Type} grub-configuration
 | 
					Some of the bootloaders do not honor every field of
 | 
				
			||||||
The type of a GRUB configuration declaration.
 | 
					@code{bootloader-configuration}.  For instance, the extlinux
 | 
				
			||||||
 | 
					bootloader does not support themes and thus ignores the @code{theme}
 | 
				
			||||||
 | 
					field.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@deftp {Data Type} bootloader-configuration
 | 
				
			||||||
 | 
					The type of a bootloader configuration declaration.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@table @asis
 | 
					@table @asis
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item @code{bootloader}
 | 
				
			||||||
 | 
					@cindex EFI, bootloader
 | 
				
			||||||
 | 
					@cindex UEFI, bootloader
 | 
				
			||||||
 | 
					@cindex BIOS, bootloader
 | 
				
			||||||
 | 
					The bootloader to use, as a @code{bootloader} object. For now
 | 
				
			||||||
 | 
					@code{grub-bootloader}, @code{grub-efi-bootloader} and
 | 
				
			||||||
 | 
					@code{extlinux-bootloader} are supported.  @code{grub-efi-bootloader},
 | 
				
			||||||
 | 
					allows to boot on modern systems using the @dfn{Unified Extensible
 | 
				
			||||||
 | 
					Firmware Interface} (UEFI).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Available bootloaders are described in @code{(gnu bootloader @dots{})}
 | 
				
			||||||
 | 
					modules.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{device}
 | 
					@item @code{device}
 | 
				
			||||||
This is a string denoting the boot device.  It must be a device name
 | 
					This is a string denoting the boot device.  It must be a device name
 | 
				
			||||||
understood by the @command{grub-install} command, such as
 | 
					understood by the bootloader @command{installer} command, such as
 | 
				
			||||||
@code{/dev/sda} or @code{(hd0)} (@pxref{Invoking grub-install,,, grub,
 | 
					@code{/dev/sda} or @code{(hd0)} (for GRUB, @pxref{Invoking grub-install,,, grub,
 | 
				
			||||||
GNU GRUB Manual}).
 | 
					GNU GRUB Manual}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{menu-entries} (default: @code{()})
 | 
					@item @code{menu-entries} (default: @code{()})
 | 
				
			||||||
A possibly empty list of @code{menu-entry} objects (see below), denoting
 | 
					A possibly empty list of @code{menu-entry} objects (see below), denoting
 | 
				
			||||||
entries to appear in the GRUB boot menu, in addition to the current
 | 
					entries to appear in the bootloader menu, in addition to the current
 | 
				
			||||||
system entry and the entry pointing to previous system generations.
 | 
					system entry and the entry pointing to previous system generations.
 | 
				
			||||||
 | 
					generations.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{default-entry} (default: @code{0})
 | 
					@item @code{default-entry} (default: @code{0})
 | 
				
			||||||
The index of the default boot menu entry.  Index 0 is for the entry of the
 | 
					The index of the default boot menu entry.  Index 0 is for the entry of the
 | 
				
			||||||
| 
						 | 
					@ -15746,42 +15768,37 @@ current system.
 | 
				
			||||||
The number of seconds to wait for keyboard input before booting.  Set to
 | 
					The number of seconds to wait for keyboard input before booting.  Set to
 | 
				
			||||||
0 to boot immediately, and to -1 to wait indefinitely.
 | 
					0 to boot immediately, and to -1 to wait indefinitely.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{theme} (default: @var{%default-theme})
 | 
					@item @code{theme} (default: @var{#f})
 | 
				
			||||||
The @code{grub-theme} object describing the theme to use.
 | 
					The bootloader theme object describing the theme to use.  If no theme
 | 
				
			||||||
 | 
					is provided, some bootloaders might use a default theme, that's true
 | 
				
			||||||
@item @code{grub} (default: @code{grub})
 | 
					for GRUB.
 | 
				
			||||||
@cindex EFI, bootloader
 | 
					 | 
				
			||||||
@cindex UEFI, bootloader
 | 
					 | 
				
			||||||
@cindex BIOS, bootloader
 | 
					 | 
				
			||||||
The GRUB package to use.  Currently either @code{grub}, for ``legacy''
 | 
					 | 
				
			||||||
x86 BIOS systems, or @code{grub-efi}, for modern systems using the
 | 
					 | 
				
			||||||
@dfn{Unified Extensible Firmware Interface} (UEFI).
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{terminal-outputs} (default: @code{'gfxterm})
 | 
					@item @code{terminal-outputs} (default: @code{'gfxterm})
 | 
				
			||||||
The output terminals used for the GRUB boot menu, as a list of symbols.
 | 
					The output terminals used for the bootloader boot menu, as a list of
 | 
				
			||||||
These values are accepted: @code{console}, @code{serial},
 | 
					symbols.  GRUB accepts the values: @code{console}, @code{serial},
 | 
				
			||||||
@code{serial_@{0-3@}}, @code{gfxterm}, @code{vga_text}, @code{mda_text},
 | 
					@code{serial_@{0-3@}}, @code{gfxterm}, @code{vga_text},
 | 
				
			||||||
@code{morse}, and @code{pkmodem}.  This field corresponds to the GRUB
 | 
					@code{mda_text}, @code{morse}, and @code{pkmodem}.  This field
 | 
				
			||||||
variable GRUB_TERMINAL_OUTPUT (@pxref{Simple configuration,,, grub,GNU
 | 
					corresponds to the GRUB variable GRUB_TERMINAL_OUTPUT (@pxref{Simple
 | 
				
			||||||
GRUB manual}).
 | 
					configuration,,, grub,GNU GRUB manual}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{terminal-inputs} (default: @code{'()})
 | 
					@item @code{terminal-inputs} (default: @code{'()})
 | 
				
			||||||
The input terminals used for the GRUB boot menu, as a list of symbols.
 | 
					The input terminals used for the bootloader boot menu, as a list of
 | 
				
			||||||
The default is the native platform terminal as determined by GRUB at
 | 
					symbols.  For GRUB, the default is the native platform terminal as
 | 
				
			||||||
run-time.  These values are accepted: @code{console}, @code{serial},
 | 
					determined at run-time.  GRUB accepts the values: @code{console},
 | 
				
			||||||
@code{serial_@{0-3@}}, @code{at_keyboard}, and @code{usb_keyboard}.
 | 
					@code{serial}, @code{serial_@{0-3@}}, @code{at_keyboard}, and
 | 
				
			||||||
This field corresponds to the GRUB variable GRUB_TERMINAL_INPUT
 | 
					@code{usb_keyboard}.  This field corresponds to the GRUB variable
 | 
				
			||||||
(@pxref{Simple configuration,,, grub,GNU GRUB manual}).
 | 
					GRUB_TERMINAL_INPUT (@pxref{Simple configuration,,, grub,GNU GRUB
 | 
				
			||||||
 | 
					manual}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{serial-unit} (default: @code{#f})
 | 
					@item @code{serial-unit} (default: @code{#f})
 | 
				
			||||||
The serial unit used by GRUB, as an integer from 0 to 3.  The default
 | 
					The serial unit used by the bootloader, as an integer from 0 to 3.
 | 
				
			||||||
value is chosen by GRUB at run-time; currently GRUB chooses 0, which
 | 
					For GRUB it is choosen at run-time; currently GRUB chooses 0, which
 | 
				
			||||||
corresponds to COM1 (@pxref{Serial terminal,,, grub,GNU GRUB manual}).
 | 
					corresponds to COM1 (@pxref{Serial terminal,,, grub,GNU GRUB manual}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item @code{serial-speed} (default: @code{#f})
 | 
					@item @code{serial-speed} (default: @code{#f})
 | 
				
			||||||
The speed of the serial interface, as an integer.  The default value is
 | 
					The speed of the serial interface, as an integer.  For GRUB, the
 | 
				
			||||||
chosen by GRUB at run-time; currently GRUB chooses 9600@tie{}bps
 | 
					default value is chosen at run-time; currently GRUB chooses
 | 
				
			||||||
(@pxref{Serial terminal,,, grub,GNU GRUB manual}).
 | 
					9600@tie{}bps (@pxref{Serial terminal,,, grub,GNU GRUB manual}).
 | 
				
			||||||
@end table
 | 
					@end table
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@end deftp
 | 
					@end deftp
 | 
				
			||||||
| 
						 | 
					@ -15805,7 +15822,7 @@ along these lines:
 | 
				
			||||||
Details below.
 | 
					Details below.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@deftp {Data Type} menu-entry
 | 
					@deftp {Data Type} menu-entry
 | 
				
			||||||
The type of an entry in the GRUB boot menu.
 | 
					The type of an entry in the bootloader menu.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@table @asis
 | 
					@table @asis
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15819,9 +15836,9 @@ The Linux kernel image to boot, for example:
 | 
				
			||||||
(file-append linux-libre "/bzImage")
 | 
					(file-append linux-libre "/bzImage")
 | 
				
			||||||
@end example
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
It is also possible to specify a device explicitly in the file path
 | 
					For GRUB, it is also possible to specify a device explicitly in the
 | 
				
			||||||
using GRUB's device naming convention (@pxref{Naming convention,,, grub,
 | 
					file path using GRUB's device naming convention (@pxref{Naming
 | 
				
			||||||
GNU GRUB manual}), for example:
 | 
					convention,,, grub, GNU GRUB manual}), for example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@example
 | 
					@example
 | 
				
			||||||
"(hd0,msdos1)/boot/vmlinuz"
 | 
					"(hd0,msdos1)/boot/vmlinuz"
 | 
				
			||||||
| 
						 | 
					@ -15837,33 +15854,30 @@ The list of extra Linux kernel command-line arguments---e.g.,
 | 
				
			||||||
@item @code{initrd}
 | 
					@item @code{initrd}
 | 
				
			||||||
A G-Expression or string denoting the file name of the initial RAM disk
 | 
					A G-Expression or string denoting the file name of the initial RAM disk
 | 
				
			||||||
to use (@pxref{G-Expressions}).
 | 
					to use (@pxref{G-Expressions}).
 | 
				
			||||||
 | 
					 | 
				
			||||||
@item @code{device} (default: @code{#f})
 | 
					@item @code{device} (default: @code{#f})
 | 
				
			||||||
The device where the kernel and initrd are to be found---i.e., the GRUB
 | 
					The device where the kernel and initrd are to be found---i.e., for GRUB,
 | 
				
			||||||
@dfn{root} for this menu entry (@pxref{root,,, grub, GNU GRUB manual}).
 | 
					@dfn{root} for this menu entry (@pxref{root,,, grub, GNU GRUB manual}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This may be a file system label (a string), a file system UUID (a
 | 
					This may be a file system label (a string), a file system UUID (a
 | 
				
			||||||
bytevector, @pxref{File Systems}), or @code{#f}, in which case GRUB will
 | 
					bytevector, @pxref{File Systems}), or @code{#f}, in which case
 | 
				
			||||||
search the device containing the file specified by the @code{linux}
 | 
					the bootloader will search the device containing the file specified by
 | 
				
			||||||
field (@pxref{search,,, grub, GNU GRUB manual}).  It must @emph{not} be
 | 
					the @code{linux} field (@pxref{search,,, grub, GNU GRUB manual}).  It
 | 
				
			||||||
an OS device name such as @file{/dev/sda1}.
 | 
					must @emph{not} be an OS device name such as @file{/dev/sda1}.
 | 
				
			||||||
 | 
					 | 
				
			||||||
@item @code{device-mount-point} (default: @code{"/"})
 | 
					 | 
				
			||||||
The mount point of the above device on the system.  You probably do not
 | 
					 | 
				
			||||||
need to change the default value.  GuixSD uses it to strip the prefix of
 | 
					 | 
				
			||||||
store file names for systems where @file{/gnu} or @file{/gnu/store} is
 | 
					 | 
				
			||||||
on a separate partition.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@end table
 | 
					@end table
 | 
				
			||||||
@end deftp
 | 
					@end deftp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@c FIXME: Write documentation once it's stable.
 | 
					@c FIXME: Write documentation once it's stable.
 | 
				
			||||||
Themes are created using the @code{grub-theme} form, which is not
 | 
					Fow now only GRUB has theme support. GRUB themes are created using
 | 
				
			||||||
documented yet.
 | 
					the @code{grub-theme} form, which is not documented yet.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@defvr {Scheme Variable} %default-theme
 | 
					@defvr {Scheme Variable} %default-theme
 | 
				
			||||||
This is the default GRUB theme used by the operating system, with a
 | 
					This is the default GRUB theme used by the operating system if no
 | 
				
			||||||
fancy background image displaying the GNU and Guix logos.
 | 
					@code{theme} field is specified in @code{bootloader-configuration}
 | 
				
			||||||
 | 
					record.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It comes with a fancy background image displaying the GNU and Guix
 | 
				
			||||||
 | 
					logos.
 | 
				
			||||||
@end defvr
 | 
					@end defvr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15903,9 +15917,10 @@ list-generations}).  If that generation already exists, it will be
 | 
				
			||||||
overwritten.  This behavior mirrors that of @command{guix package}
 | 
					overwritten.  This behavior mirrors that of @command{guix package}
 | 
				
			||||||
(@pxref{Invoking guix package}).
 | 
					(@pxref{Invoking guix package}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
It also adds a GRUB menu entry for the new OS configuration, and moves
 | 
					It also adds a bootloader menu entry for the new OS configuration,
 | 
				
			||||||
entries for older configurations to a submenu---unless
 | 
					---unless @option{--no-bootloader} is passed.  For GRUB, it moves
 | 
				
			||||||
@option{--no-bootloader} is passed.
 | 
					entries for older configurations to a submenu, allowing you to choose
 | 
				
			||||||
 | 
					an older system generation at boot time should you need it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@quotation Note
 | 
					@quotation Note
 | 
				
			||||||
@c The paragraph below refers to the problem discussed at
 | 
					@c The paragraph below refers to the problem discussed at
 | 
				
			||||||
| 
						 | 
					@ -15919,11 +15934,16 @@ once @command{reconfigure} has completed.
 | 
				
			||||||
@item switch-generation
 | 
					@item switch-generation
 | 
				
			||||||
@cindex generations
 | 
					@cindex generations
 | 
				
			||||||
Switch to an existing system generation.  This action atomically
 | 
					Switch to an existing system generation.  This action atomically
 | 
				
			||||||
switches the system profile to the specified system generation.  It also
 | 
					switches the system profile to the specified system generation.  It
 | 
				
			||||||
rearranges the system's existing GRUB menu entries.  It makes the menu
 | 
					also rearranges the system's existing bootloader menu entries.  It
 | 
				
			||||||
entry for the specified system generation the default, and it moves the
 | 
					makes the menu entry for the specified system generation the default,
 | 
				
			||||||
entries for the other generations to a submenu.  The next time the
 | 
					and it moves the entries for the other generatiors to a submenu, if
 | 
				
			||||||
system boots, it will use the specified system generation.
 | 
					supported by the bootloader being used.  The next time the system
 | 
				
			||||||
 | 
					boots, it will use the specified system generation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The bootloader itself is not being reinstalled when using this
 | 
				
			||||||
 | 
					command.  Thus, the installed bootloader is used with an updated
 | 
				
			||||||
 | 
					configuration file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The target generation can be specified explicitly by its generation
 | 
					The target generation can be specified explicitly by its generation
 | 
				
			||||||
number.  For example, the following invocation would switch to system
 | 
					number.  For example, the following invocation would switch to system
 | 
				
			||||||
| 
						 | 
					@ -15945,11 +15965,11 @@ guix system switch-generation -- -1
 | 
				
			||||||
@end example
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Currently, the effect of invoking this action is @emph{only} to switch
 | 
					Currently, the effect of invoking this action is @emph{only} to switch
 | 
				
			||||||
the system profile to an existing generation and rearrange the GRUB menu
 | 
					the system profile to an existing generation and rearrange the
 | 
				
			||||||
entries.  To actually start using the target system generation, you must
 | 
					bootloader menu entries.  To actually start using the target system
 | 
				
			||||||
reboot after running this action.  In the future, it will be updated to
 | 
					generation, you must reboot after running this action.  In the future,
 | 
				
			||||||
do the same things as @command{reconfigure}, like activating and
 | 
					it will be updated to do the same things as @command{reconfigure},
 | 
				
			||||||
deactivating services.
 | 
					like activating and deactivating services.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This action will fail if the specified generation does not exist.
 | 
					This action will fail if the specified generation does not exist.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15984,8 +16004,9 @@ files, packages, and so on.  It also creates other essential files
 | 
				
			||||||
needed for the system to operate correctly---e.g., the @file{/etc},
 | 
					needed for the system to operate correctly---e.g., the @file{/etc},
 | 
				
			||||||
@file{/var}, and @file{/run} directories, and the @file{/bin/sh} file.
 | 
					@file{/var}, and @file{/run} directories, and the @file{/bin/sh} file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This command also installs GRUB on the device specified in
 | 
					This command also installs bootloader on the device specified in
 | 
				
			||||||
@file{my-os-config}, unless the @option{--no-bootloader} option was passed.
 | 
					@file{my-os-config}, unless the @option{--no-bootloader} option was
 | 
				
			||||||
 | 
					passed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item vm
 | 
					@item vm
 | 
				
			||||||
@cindex virtual machine
 | 
					@cindex virtual machine
 | 
				
			||||||
| 
						 | 
					@ -16125,7 +16146,7 @@ build users of the daemon (@pxref{Build Environment Setup}).
 | 
				
			||||||
Once you have built, configured, re-configured, and re-re-configured
 | 
					Once you have built, configured, re-configured, and re-re-configured
 | 
				
			||||||
your GuixSD installation, you may find it useful to list the operating
 | 
					your GuixSD installation, you may find it useful to list the operating
 | 
				
			||||||
system generations available on disk---and that you can choose from the
 | 
					system generations available on disk---and that you can choose from the
 | 
				
			||||||
GRUB boot menu:
 | 
					bootloader boot menu:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@table @code
 | 
					@table @code
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 | 
					;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 | 
				
			||||||
 | 
					;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -28,13 +29,16 @@
 | 
				
			||||||
;;; Code:
 | 
					;;; Code:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define %artwork-repository
 | 
					(define %artwork-repository
 | 
				
			||||||
  (origin
 | 
					  (let ((commit "6998d30425289b087c64f63e7415df2241e591db"))
 | 
				
			||||||
    (method git-fetch)
 | 
					    (origin
 | 
				
			||||||
    (uri (git-reference
 | 
					      (method git-fetch)
 | 
				
			||||||
          (url "git://git.savannah.gnu.org/guix/guix-artwork.git")
 | 
					      (uri (git-reference
 | 
				
			||||||
          (commit "6998d30")))
 | 
					             (url "git://git.savannah.gnu.org/guix/guix-artwork.git")
 | 
				
			||||||
    (sha256
 | 
					             (commit commit)))
 | 
				
			||||||
     (base32
 | 
					      (file-name (string-append "guix-artwork-" (string-take commit 7)
 | 
				
			||||||
      "0k7j3pj9s3zqiqmfkapypssvzx3f12yr0cc2rbzxqfii0b4clp1j"))))
 | 
					                                "-checkout"))
 | 
				
			||||||
 | 
					      (sha256
 | 
				
			||||||
 | 
					       (base32
 | 
				
			||||||
 | 
					        "0k7j3pj9s3zqiqmfkapypssvzx3f12yr0cc2rbzxqfii0b4clp1j")))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; artwork.scm ends here
 | 
					;;; artwork.scm ends here
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,7 +23,15 @@
 | 
				
			||||||
  #:use-module (guix records)
 | 
					  #:use-module (guix records)
 | 
				
			||||||
  #:use-module (guix ui)
 | 
					  #:use-module (guix ui)
 | 
				
			||||||
  #:use-module (srfi srfi-1)
 | 
					  #:use-module (srfi srfi-1)
 | 
				
			||||||
  #:export (bootloader
 | 
					  #:export (menu-entry
 | 
				
			||||||
 | 
					            menu-entry?
 | 
				
			||||||
 | 
					            menu-entry-label
 | 
				
			||||||
 | 
					            menu-entry-device
 | 
				
			||||||
 | 
					            menu-entry-linux
 | 
				
			||||||
 | 
					            menu-entry-linux-arguments
 | 
				
			||||||
 | 
					            menu-entry-initrd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            bootloader
 | 
				
			||||||
            bootloader?
 | 
					            bootloader?
 | 
				
			||||||
            bootloader-name
 | 
					            bootloader-name
 | 
				
			||||||
            bootloader-package
 | 
					            bootloader-package
 | 
				
			||||||
| 
						 | 
					@ -48,6 +56,22 @@
 | 
				
			||||||
            %bootloaders
 | 
					            %bootloaders
 | 
				
			||||||
            lookup-bootloader-by-name))
 | 
					            lookup-bootloader-by-name))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; Menu-entry record.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-record-type* <menu-entry>
 | 
				
			||||||
 | 
					  menu-entry make-menu-entry
 | 
				
			||||||
 | 
					  menu-entry?
 | 
				
			||||||
 | 
					  (label           menu-entry-label)
 | 
				
			||||||
 | 
					  (device          menu-entry-device       ; file system uuid, label, or #f
 | 
				
			||||||
 | 
					                   (default #f))
 | 
				
			||||||
 | 
					  (linux           menu-entry-linux)
 | 
				
			||||||
 | 
					  (linux-arguments menu-entry-linux-arguments
 | 
				
			||||||
 | 
					                   (default '()))          ; list of string-valued gexps
 | 
				
			||||||
 | 
					  (initrd          menu-entry-initrd))     ; file name of the initrd as a gexp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; Bootloader record.
 | 
					;;; Bootloader record.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,7 +37,8 @@
 | 
				
			||||||
corresponding to old generations of the system."
 | 
					corresponding to old generations of the system."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  (define all-entries
 | 
					  (define all-entries
 | 
				
			||||||
    (append entries (bootloader-configuration-menu-entries config)))
 | 
					    (append entries (map menu-entry->boot-parameters
 | 
				
			||||||
 | 
					                         (bootloader-configuration-menu-entries config))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  (define (boot-parameters->gexp params)
 | 
					  (define (boot-parameters->gexp params)
 | 
				
			||||||
    (let ((label (boot-parameters-label params))
 | 
					    (let ((label (boot-parameters-label params))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -66,12 +66,15 @@
 | 
				
			||||||
(define (strip-mount-point mount-point file)
 | 
					(define (strip-mount-point mount-point file)
 | 
				
			||||||
  "Strip MOUNT-POINT from FILE, which is a gexp or other lowerable object
 | 
					  "Strip MOUNT-POINT from FILE, which is a gexp or other lowerable object
 | 
				
			||||||
denoting a file name."
 | 
					denoting a file name."
 | 
				
			||||||
  (if (string=? mount-point "/")
 | 
					  (match mount-point
 | 
				
			||||||
      file
 | 
					    ((? string? mount-point)
 | 
				
			||||||
      #~(let ((file #$file))
 | 
					     (if (string=? mount-point "/")
 | 
				
			||||||
          (if (string-prefix? #$mount-point file)
 | 
					         file
 | 
				
			||||||
              (substring #$file #$(string-length mount-point))
 | 
					         #~(let ((file #$file))
 | 
				
			||||||
              file))))
 | 
					             (if (string-prefix? #$mount-point file)
 | 
				
			||||||
 | 
					                 (substring #$file #$(string-length mount-point))
 | 
				
			||||||
 | 
					                 file))))
 | 
				
			||||||
 | 
					    (#f file)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-record-type* <grub-image>
 | 
					(define-record-type* <grub-image>
 | 
				
			||||||
  grub-image make-grub-image
 | 
					  grub-image make-grub-image
 | 
				
			||||||
| 
						 | 
					@ -103,19 +106,6 @@ denoting a file name."
 | 
				
			||||||
   (color-highlight '((fg . yellow) (bg . black)))
 | 
					   (color-highlight '((fg . yellow) (bg . black)))
 | 
				
			||||||
   (color-normal    '((fg . light-gray) (bg . black))))) ;XXX: #x303030
 | 
					   (color-normal    '((fg . light-gray) (bg . black))))) ;XXX: #x303030
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-record-type* <menu-entry>
 | 
					 | 
				
			||||||
  menu-entry make-menu-entry
 | 
					 | 
				
			||||||
  menu-entry?
 | 
					 | 
				
			||||||
  (label           menu-entry-label)
 | 
					 | 
				
			||||||
  (device          menu-entry-device       ; file system uuid, label, or #f
 | 
					 | 
				
			||||||
                   (default #f))
 | 
					 | 
				
			||||||
  (device-mount-point menu-entry-device-mount-point
 | 
					 | 
				
			||||||
                      (default "/"))
 | 
					 | 
				
			||||||
  (linux           menu-entry-linux)
 | 
					 | 
				
			||||||
  (linux-arguments menu-entry-linux-arguments
 | 
					 | 
				
			||||||
                   (default '()))          ; list of string-valued gexps
 | 
					 | 
				
			||||||
  (initrd          menu-entry-initrd))     ; file name of the initrd as a gexp
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; Background image & themes.
 | 
					;;; Background image & themes.
 | 
				
			||||||
| 
						 | 
					@ -312,16 +302,6 @@ code."
 | 
				
			||||||
        (#f
 | 
					        (#f
 | 
				
			||||||
         #~(format #f "search --file --set ~a" #$file)))))
 | 
					         #~(format #f "search --file --set ~a" #$file)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (boot-parameters->menu-entry conf)
 | 
					 | 
				
			||||||
  "Convert a <boot-parameters> instance to a corresponding <menu-entry>."
 | 
					 | 
				
			||||||
  (menu-entry
 | 
					 | 
				
			||||||
   (label (boot-parameters-label conf))
 | 
					 | 
				
			||||||
   (device (boot-parameters-store-device conf))
 | 
					 | 
				
			||||||
   (device-mount-point (boot-parameters-store-mount-point conf))
 | 
					 | 
				
			||||||
   (linux (boot-parameters-kernel conf))
 | 
					 | 
				
			||||||
   (linux-arguments (boot-parameters-kernel-arguments conf))
 | 
					 | 
				
			||||||
   (initrd (boot-parameters-initrd conf))))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define* (grub-configuration-file config entries
 | 
					(define* (grub-configuration-file config entries
 | 
				
			||||||
                                  #:key
 | 
					                                  #:key
 | 
				
			||||||
                                  (system (%current-system))
 | 
					                                  (system (%current-system))
 | 
				
			||||||
| 
						 | 
					@ -331,33 +311,36 @@ code."
 | 
				
			||||||
STORE-FS, a <file-system> object.  OLD-ENTRIES is taken to be a list of menu
 | 
					STORE-FS, a <file-system> object.  OLD-ENTRIES is taken to be a list of menu
 | 
				
			||||||
entries corresponding to old generations of the system."
 | 
					entries corresponding to old generations of the system."
 | 
				
			||||||
  (define all-entries
 | 
					  (define all-entries
 | 
				
			||||||
    (map boot-parameters->menu-entry
 | 
					    (append entries (map menu-entry->boot-parameters
 | 
				
			||||||
         (append entries
 | 
					                         (bootloader-configuration-menu-entries config))))
 | 
				
			||||||
                 (bootloader-configuration-menu-entries config))))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  (define entry->gexp
 | 
					  (define (boot-parameters->gexp params)
 | 
				
			||||||
    (match-lambda
 | 
					    (let ((device (boot-parameters-store-device params))
 | 
				
			||||||
     (($ <menu-entry> label device device-mount-point
 | 
					          (device-mount-point (boot-parameters-store-mount-point params))
 | 
				
			||||||
                      linux arguments initrd)
 | 
					          (label (boot-parameters-label params))
 | 
				
			||||||
 | 
					          (kernel (boot-parameters-kernel params))
 | 
				
			||||||
 | 
					          (arguments (boot-parameters-kernel-arguments params))
 | 
				
			||||||
 | 
					          (initrd (boot-parameters-initrd params)))
 | 
				
			||||||
      ;; Here DEVICE is the store and DEVICE-MOUNT-POINT is its mount point.
 | 
					      ;; Here DEVICE is the store and DEVICE-MOUNT-POINT is its mount point.
 | 
				
			||||||
      ;; Use the right file names for LINUX and INITRD in case
 | 
					      ;; Use the right file names for KERNEL and INITRD in case
 | 
				
			||||||
      ;; DEVICE-MOUNT-POINT is not "/", meaning that the store is on a
 | 
					      ;; DEVICE-MOUNT-POINT is not "/", meaning that the store is on a
 | 
				
			||||||
      ;; separate partition.
 | 
					      ;; separate partition.
 | 
				
			||||||
      (let ((linux  (strip-mount-point device-mount-point linux))
 | 
					      (let ((kernel  (strip-mount-point device-mount-point kernel))
 | 
				
			||||||
            (initrd (strip-mount-point device-mount-point initrd)))
 | 
					            (initrd  (strip-mount-point device-mount-point initrd)))
 | 
				
			||||||
        #~(format port "menuentry ~s {
 | 
					        #~(format port "menuentry ~s {
 | 
				
			||||||
  ~a
 | 
					  ~a
 | 
				
			||||||
  linux ~a ~a
 | 
					  linux ~a ~a
 | 
				
			||||||
  initrd ~a
 | 
					  initrd ~a
 | 
				
			||||||
}~%"
 | 
					}~%"
 | 
				
			||||||
                  #$label
 | 
					                  #$label
 | 
				
			||||||
                  #$(grub-root-search device linux)
 | 
					                  #$(grub-root-search device kernel)
 | 
				
			||||||
                  #$linux (string-join (list #$@arguments))
 | 
					                  #$kernel (string-join (list #$@arguments))
 | 
				
			||||||
                  #$initrd)))))
 | 
					                  #$initrd))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  (mlet %store-monad ((sugar (eye-candy config
 | 
					  (mlet %store-monad ((sugar (eye-candy config
 | 
				
			||||||
                                        (menu-entry-device (first all-entries))
 | 
					                                        (boot-parameters-store-device
 | 
				
			||||||
                                        (menu-entry-device-mount-point
 | 
					                                         (first all-entries))
 | 
				
			||||||
 | 
					                                        (boot-parameters-store-mount-point
 | 
				
			||||||
                                         (first all-entries))
 | 
					                                         (first all-entries))
 | 
				
			||||||
                                        #:system system
 | 
					                                        #:system system
 | 
				
			||||||
                                        #:port #~port)))
 | 
					                                        #:port #~port)))
 | 
				
			||||||
| 
						 | 
					@ -374,12 +357,12 @@ set default=~a
 | 
				
			||||||
set timeout=~a~%"
 | 
					set timeout=~a~%"
 | 
				
			||||||
                    #$(bootloader-configuration-default-entry config)
 | 
					                    #$(bootloader-configuration-default-entry config)
 | 
				
			||||||
                    #$(bootloader-configuration-timeout config))
 | 
					                    #$(bootloader-configuration-timeout config))
 | 
				
			||||||
            #$@(map entry->gexp all-entries)
 | 
					            #$@(map boot-parameters->gexp all-entries)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            #$@(if (pair? old-entries)
 | 
					            #$@(if (pair? old-entries)
 | 
				
			||||||
                   #~((format port "
 | 
					                   #~((format port "
 | 
				
			||||||
submenu \"GNU system, old configurations...\" {~%")
 | 
					submenu \"GNU system, old configurations...\" {~%")
 | 
				
			||||||
                      #$@(map entry->gexp (map boot-parameters->menu-entry old-entries))
 | 
					                      #$@(map boot-parameters->gexp old-entries)
 | 
				
			||||||
                      (format port "}~%"))
 | 
					                      (format port "}~%"))
 | 
				
			||||||
                   #~()))))
 | 
					                   #~()))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,6 +43,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            uuid->string
 | 
					            uuid->string
 | 
				
			||||||
            string->uuid
 | 
					            string->uuid
 | 
				
			||||||
 | 
					            string->iso9660-uuid
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            bind-mount
 | 
					            bind-mount
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -235,6 +236,27 @@ Trailing spaces are trimmed."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; <http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-119.pdf>.
 | 
					;; <http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-119.pdf>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define %iso9660-uuid-rx
 | 
				
			||||||
 | 
					  ;;                   Y                m                d                H                M                S                ss
 | 
				
			||||||
 | 
					  (make-regexp "^([[:digit:]]{4})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})-([[:digit:]]{2})$"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (string->iso9660-uuid str)
 | 
				
			||||||
 | 
					  "Parse STR as a ISO9660 UUID (which is really a timestamp - see /dev/disk/by-uuid).
 | 
				
			||||||
 | 
					Return its contents as a 16-byte bytevector.  Return #f if STR is not a valid
 | 
				
			||||||
 | 
					ISO9660 UUID representation."
 | 
				
			||||||
 | 
					  (and=> (regexp-exec %iso9660-uuid-rx str)
 | 
				
			||||||
 | 
					         (lambda (match)
 | 
				
			||||||
 | 
					           (letrec-syntax ((match-numerals
 | 
				
			||||||
 | 
					                            (syntax-rules ()
 | 
				
			||||||
 | 
					                              ((_ index (name rest ...) body)
 | 
				
			||||||
 | 
					                               (let ((name (match:substring match index)))
 | 
				
			||||||
 | 
					                                 (match-numerals (+ 1 index) (rest ...) body)))
 | 
				
			||||||
 | 
					                              ((_ index () body)
 | 
				
			||||||
 | 
					                               body))))
 | 
				
			||||||
 | 
					            (match-numerals 1 (year month day hour minute second hundredths)
 | 
				
			||||||
 | 
					              (string->utf8 (string-append year month day
 | 
				
			||||||
 | 
					                                           hour minute second hundredths)))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (iso9660-superblock? sblock)
 | 
					(define (iso9660-superblock? sblock)
 | 
				
			||||||
  "Return #t when SBLOCK is an iso9660 volume descriptor."
 | 
					  "Return #t when SBLOCK is an iso9660 volume descriptor."
 | 
				
			||||||
  (bytevector=? (sub-bytevector sblock 1 6)
 | 
					  (bytevector=? (sub-bytevector sblock 1 6)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -256,7 +256,7 @@ GNU_SYSTEM_MODULES =				\
 | 
				
			||||||
  %D%/packages/man.scm				\
 | 
					  %D%/packages/man.scm				\
 | 
				
			||||||
  %D%/packages/mail.scm				\
 | 
					  %D%/packages/mail.scm				\
 | 
				
			||||||
  %D%/packages/make-bootstrap.scm		\
 | 
					  %D%/packages/make-bootstrap.scm		\
 | 
				
			||||||
  %D%/packages/markdown.scm			\
 | 
					  %D%/packages/markup.scm			\
 | 
				
			||||||
  %D%/packages/marst.scm			\
 | 
					  %D%/packages/marst.scm			\
 | 
				
			||||||
  %D%/packages/mate.scm             \
 | 
					  %D%/packages/mate.scm             \
 | 
				
			||||||
  %D%/packages/maths.scm			\
 | 
					  %D%/packages/maths.scm			\
 | 
				
			||||||
| 
						 | 
					@ -504,7 +504,6 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/agg-am_c_prototype.patch			\
 | 
					  %D%/packages/patches/agg-am_c_prototype.patch			\
 | 
				
			||||||
  %D%/packages/patches/antiword-CVE-2014-8123.patch			\
 | 
					  %D%/packages/patches/antiword-CVE-2014-8123.patch			\
 | 
				
			||||||
  %D%/packages/patches/apr-skip-getservbyname-test.patch	\
 | 
					  %D%/packages/patches/apr-skip-getservbyname-test.patch	\
 | 
				
			||||||
  %D%/packages/patches/artanis-fix-Makefile.in.patch		\
 | 
					 | 
				
			||||||
  %D%/packages/patches/aspell-default-dict-dir.patch		\
 | 
					  %D%/packages/patches/aspell-default-dict-dir.patch		\
 | 
				
			||||||
  %D%/packages/patches/ath9k-htc-firmware-binutils.patch	\
 | 
					  %D%/packages/patches/ath9k-htc-firmware-binutils.patch	\
 | 
				
			||||||
  %D%/packages/patches/ath9k-htc-firmware-gcc.patch		\
 | 
					  %D%/packages/patches/ath9k-htc-firmware-gcc.patch		\
 | 
				
			||||||
| 
						 | 
					@ -945,6 +944,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/qtscript-disable-tests.patch		\
 | 
					  %D%/packages/patches/qtscript-disable-tests.patch		\
 | 
				
			||||||
  %D%/packages/patches/quickswitch-fix-dmenu-check.patch	\
 | 
					  %D%/packages/patches/quickswitch-fix-dmenu-check.patch	\
 | 
				
			||||||
  %D%/packages/patches/rapicorn-isnan.patch			\
 | 
					  %D%/packages/patches/rapicorn-isnan.patch			\
 | 
				
			||||||
 | 
					  %D%/packages/patches/raptor2-heap-overflow.patch		\
 | 
				
			||||||
  %D%/packages/patches/ratpoison-shell.patch			\
 | 
					  %D%/packages/patches/ratpoison-shell.patch			\
 | 
				
			||||||
  %D%/packages/patches/rcs-5.9.4-noreturn.patch			\
 | 
					  %D%/packages/patches/rcs-5.9.4-noreturn.patch			\
 | 
				
			||||||
  %D%/packages/patches/readline-link-ncurses.patch		\
 | 
					  %D%/packages/patches/readline-link-ncurses.patch		\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -93,7 +93,7 @@ systems in a FITS image header.")
 | 
				
			||||||
(define-public gnuastro
 | 
					(define-public gnuastro
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "gnuastro")
 | 
					    (name "gnuastro")
 | 
				
			||||||
    (version "0.2")
 | 
					    (version "0.3")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
| 
						 | 
					@ -101,7 +101,7 @@ systems in a FITS image header.")
 | 
				
			||||||
                           version ".tar.gz"))
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "0099g7zqg1gr9y94ybhyjgx9pkn9zv4rj1xb00fkybfw8w6ij9iv"))))
 | 
					         "109xjwbs36gbkx5sd5yzf6ailfcldc5d28vl1n19z0ylfzww4nwa"))))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("cfitsio" ,cfitsio)
 | 
					     `(("cfitsio" ,cfitsio)
 | 
				
			||||||
       ("gsl" ,gsl)
 | 
					       ("gsl" ,gsl)
 | 
				
			||||||
| 
						 | 
					@ -109,7 +109,7 @@ systems in a FITS image header.")
 | 
				
			||||||
       ("wcslib" ,wcslib)))
 | 
					       ("wcslib" ,wcslib)))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (home-page "https://www.gnu.org/software/gnuastro/")
 | 
					    (home-page "https://www.gnu.org/software/gnuastro/")
 | 
				
			||||||
    (synopsis "Astronomical data manipulation programs")
 | 
					    (synopsis "Astronomy utilities")
 | 
				
			||||||
    (description "The GNU Astronomy Utilities (Gnuastro) is a suite of
 | 
					    (description "The GNU Astronomy Utilities (Gnuastro) is a suite of
 | 
				
			||||||
programs for the manipulation and analysis of astronomical data.")
 | 
					programs for the manipulation and analysis of astronomical data.")
 | 
				
			||||||
    (license license:gpl3+)))
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -85,6 +85,7 @@
 | 
				
			||||||
  #:use-module (gnu packages ruby)
 | 
					  #:use-module (gnu packages ruby)
 | 
				
			||||||
  #:use-module (gnu packages serialization)
 | 
					  #:use-module (gnu packages serialization)
 | 
				
			||||||
  #:use-module (gnu packages statistics)
 | 
					  #:use-module (gnu packages statistics)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages swig)
 | 
				
			||||||
  #:use-module (gnu packages tbb)
 | 
					  #:use-module (gnu packages tbb)
 | 
				
			||||||
  #:use-module (gnu packages tex)
 | 
					  #:use-module (gnu packages tex)
 | 
				
			||||||
  #:use-module (gnu packages texinfo)
 | 
					  #:use-module (gnu packages texinfo)
 | 
				
			||||||
| 
						 | 
					@ -2093,7 +2094,7 @@ identify enrichments with functional annotations of the genome.")
 | 
				
			||||||
(define-public diamond
 | 
					(define-public diamond
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "diamond")
 | 
					    (name "diamond")
 | 
				
			||||||
    (version "0.9.3")
 | 
					    (version "0.9.6")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append
 | 
					              (uri (string-append
 | 
				
			||||||
| 
						 | 
					@ -2102,7 +2103,7 @@ identify enrichments with functional annotations of the genome.")
 | 
				
			||||||
              (file-name (string-append name "-" version ".tar.gz"))
 | 
					              (file-name (string-append name "-" version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1fs5ilvda50vfdg9wll35w8hcpq3jlkp8q2kim4llkwljkj8bls3"))))
 | 
					                "1y8a10b695pvgn7kk2s87jdwbdf7iszpnr6139pw8ina1ajs4w8y"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:tests? #f ; no "check" target
 | 
					     '(#:tests? #f ; no "check" target
 | 
				
			||||||
| 
						 | 
					@ -9223,3 +9224,311 @@ working with SAM and BAM files.  Current parallelised functionality is
 | 
				
			||||||
an important subset of samtools functionality, including view, index,
 | 
					an important subset of samtools functionality, including view, index,
 | 
				
			||||||
sort, markdup, and depth.")
 | 
					sort, markdup, and depth.")
 | 
				
			||||||
    (license license:gpl2+)))
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ritornello
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ritornello")
 | 
				
			||||||
 | 
					    (version "1.0.0")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "https://github.com/KlugerLab/"
 | 
				
			||||||
 | 
					                                  "Ritornello/archive/v"
 | 
				
			||||||
 | 
					                                  version ".tar.gz"))
 | 
				
			||||||
 | 
					              (file-name (string-append name "-" version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "02nik86gq9ljjriv6pamwlmqnfky3ads1fpklx6mc3hx6k40pg38"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:tests? #f                      ; there are no tests
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-after 'unpack 'patch-samtools-references
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (substitute* '("src/SamStream.h"
 | 
				
			||||||
 | 
					                            "src/BufferedGenomeReader.h")
 | 
				
			||||||
 | 
					               (("<sam.h>") "<samtools/sam.h>"))
 | 
				
			||||||
 | 
					             #t))
 | 
				
			||||||
 | 
					         (delete 'configure)
 | 
				
			||||||
 | 
					         (replace 'install
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (let* ((out    (assoc-ref outputs "out"))
 | 
				
			||||||
 | 
					                    (bin    (string-append out "/bin/")))
 | 
				
			||||||
 | 
					               (mkdir-p bin)
 | 
				
			||||||
 | 
					               (install-file "bin/Ritornello" bin)
 | 
				
			||||||
 | 
					               #t))))))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("samtools" ,samtools-0.1)
 | 
				
			||||||
 | 
					       ("fftw" ,fftw)
 | 
				
			||||||
 | 
					       ("boost" ,boost)
 | 
				
			||||||
 | 
					       ("zlib" ,zlib)))
 | 
				
			||||||
 | 
					    (home-page "https://github.com/KlugerLab/Ritornello")
 | 
				
			||||||
 | 
					    (synopsis "Control-free peak caller for ChIP-seq data")
 | 
				
			||||||
 | 
					    (description "Ritornello is a ChIP-seq peak calling algorithm based on
 | 
				
			||||||
 | 
					signal processing that can accurately call binding events without the need to
 | 
				
			||||||
 | 
					do a pair total DNA input or IgG control sample.  It has been tested for use
 | 
				
			||||||
 | 
					with narrow binding events such as transcription factor ChIP-seq.")
 | 
				
			||||||
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public trim-galore
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "trim-galore")
 | 
				
			||||||
 | 
					    (version "0.4.2")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "http://www.bioinformatics.babraham.ac.uk/"
 | 
				
			||||||
 | 
					                           "projects/trim_galore/trim_galore_v"
 | 
				
			||||||
 | 
					                           version ".zip"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "0b9qdxi4521gsrjvbhgky8g7kry9b5nx3byzaxkgxz7p4k8bn1mn"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:tests? #f                      ; no tests
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         ;; The archive contains plain files.
 | 
				
			||||||
 | 
					         (replace 'unpack
 | 
				
			||||||
 | 
					           (lambda* (#:key source #:allow-other-keys)
 | 
				
			||||||
 | 
					             (zero? (system* "unzip" source))))
 | 
				
			||||||
 | 
					         (delete 'configure)
 | 
				
			||||||
 | 
					         (delete 'build)
 | 
				
			||||||
 | 
					         (add-after 'unpack 'hardcode-tool-references
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (substitute* "trim_galore"
 | 
				
			||||||
 | 
					               (("\\$path_to_cutadapt = 'cutadapt'")
 | 
				
			||||||
 | 
					                (string-append "$path_to_cutadapt = '"
 | 
				
			||||||
 | 
					                               (assoc-ref inputs "cutadapt")
 | 
				
			||||||
 | 
					                               "/bin/cutadapt'"))
 | 
				
			||||||
 | 
					               (("\\| gzip")
 | 
				
			||||||
 | 
					                (string-append "| "
 | 
				
			||||||
 | 
					                               (assoc-ref inputs "gzip")
 | 
				
			||||||
 | 
					                               "/bin/gzip"))
 | 
				
			||||||
 | 
					               (("\"gunzip")
 | 
				
			||||||
 | 
					                (string-append "\""
 | 
				
			||||||
 | 
					                               (assoc-ref inputs "gzip")
 | 
				
			||||||
 | 
					                               "/bin/gunzip")))
 | 
				
			||||||
 | 
					             #t))
 | 
				
			||||||
 | 
					         (replace 'install
 | 
				
			||||||
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (let ((bin (string-append (assoc-ref outputs "out")
 | 
				
			||||||
 | 
					                                       "/bin")))
 | 
				
			||||||
 | 
					               (mkdir-p bin)
 | 
				
			||||||
 | 
					               (install-file "trim_galore" bin)
 | 
				
			||||||
 | 
					               #t))))))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("gzip" ,gzip)
 | 
				
			||||||
 | 
					       ("perl" ,perl)
 | 
				
			||||||
 | 
					       ("cutadapt" ,cutadapt)))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("unzip" ,unzip)))
 | 
				
			||||||
 | 
					    (home-page "http://www.bioinformatics.babraham.ac.uk/projects/trim_galore/")
 | 
				
			||||||
 | 
					    (synopsis "Wrapper around Cutadapt and FastQC")
 | 
				
			||||||
 | 
					    (description "Trim Galore! is a wrapper script to automate quality and
 | 
				
			||||||
 | 
					adapter trimming as well as quality control, with some added functionality to
 | 
				
			||||||
 | 
					remove biased methylation positions for RRBS sequence files.")
 | 
				
			||||||
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public gess
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "gess")
 | 
				
			||||||
 | 
					    (version "1.0")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "http://compbio.uthscsa.edu/"
 | 
				
			||||||
 | 
					                                  "GESS_Web/files/"
 | 
				
			||||||
 | 
					                                  "gess-" version ".src.tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "0hyk403kxscclzfs24pvdgiv0wm03kjcziqdrp5w46cb049gz0d7"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:tests? #f                      ; no tests
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (delete 'configure)
 | 
				
			||||||
 | 
					         (delete 'build)
 | 
				
			||||||
 | 
					         (replace 'install
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (let* ((python (assoc-ref inputs "python"))
 | 
				
			||||||
 | 
					                    (out    (assoc-ref outputs "out"))
 | 
				
			||||||
 | 
					                    (bin    (string-append out "/bin/"))
 | 
				
			||||||
 | 
					                    (target (string-append
 | 
				
			||||||
 | 
					                             out "/lib/python2.7/site-packages/gess/")))
 | 
				
			||||||
 | 
					               (mkdir-p target)
 | 
				
			||||||
 | 
					               (copy-recursively "." target)
 | 
				
			||||||
 | 
					               ;; Make GESS.py executable
 | 
				
			||||||
 | 
					               (chmod (string-append target "GESS.py") #o555)
 | 
				
			||||||
 | 
					               ;; Add Python shebang to the top and make Matplotlib
 | 
				
			||||||
 | 
					               ;; usable.
 | 
				
			||||||
 | 
					               (substitute* (string-append target "GESS.py")
 | 
				
			||||||
 | 
					                 (("\"\"\"Description:" line)
 | 
				
			||||||
 | 
					                  (string-append "#!" (which "python") "
 | 
				
			||||||
 | 
					import matplotlib
 | 
				
			||||||
 | 
					matplotlib.use('Agg')
 | 
				
			||||||
 | 
					" line)))
 | 
				
			||||||
 | 
					               ;; Make sure GESS has all modules in its path
 | 
				
			||||||
 | 
					               (wrap-program (string-append target "GESS.py")
 | 
				
			||||||
 | 
					                 `("PYTHONPATH" ":" prefix (,target ,(getenv "PYTHONPATH"))))
 | 
				
			||||||
 | 
					               (mkdir-p bin)
 | 
				
			||||||
 | 
					               (symlink (string-append target "GESS.py")
 | 
				
			||||||
 | 
					                        (string-append bin "GESS.py"))
 | 
				
			||||||
 | 
					               #t))))))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("python" ,python-2)
 | 
				
			||||||
 | 
					       ("python2-pysam" ,python2-pysam)
 | 
				
			||||||
 | 
					       ("python2-scipy" ,python2-scipy)
 | 
				
			||||||
 | 
					       ("python2-numpy" ,python2-numpy)
 | 
				
			||||||
 | 
					       ("python2-networkx" ,python2-networkx)
 | 
				
			||||||
 | 
					       ("python2-biopython" ,python2-biopython)))
 | 
				
			||||||
 | 
					    (home-page "http://compbio.uthscsa.edu/GESS_Web/")
 | 
				
			||||||
 | 
					    (synopsis "Detect exon-skipping events from raw RNA-seq data")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "GESS is an implementation of a novel computational method to detect de
 | 
				
			||||||
 | 
					novo exon-skipping events directly from raw RNA-seq data without the prior
 | 
				
			||||||
 | 
					knowledge of gene annotation information.  GESS stands for the graph-based
 | 
				
			||||||
 | 
					exon-skipping scanner detection scheme.")
 | 
				
			||||||
 | 
					    (license license:bsd-3)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public phylip
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "phylip")
 | 
				
			||||||
 | 
					    (version "3.696")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "http://evolution.gs.washington.edu/phylip/"
 | 
				
			||||||
 | 
					                           "download/phylip-" version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "01jar1rayhr2gba2pgbw49m56rc5z4p5wn3ds0m188hrlln4a2nd"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:tests? #f                      ; no check target
 | 
				
			||||||
 | 
					       #:make-flags (list "-f" "Makefile.unx" "install")
 | 
				
			||||||
 | 
					       #:parallel-build? #f             ; not supported
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-after 'unpack 'enter-dir
 | 
				
			||||||
 | 
					           (lambda _ (chdir "src") #t))
 | 
				
			||||||
 | 
					         (delete 'configure)
 | 
				
			||||||
 | 
					         (replace 'install
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (let ((target (string-append (assoc-ref outputs "out")
 | 
				
			||||||
 | 
					                                          "/bin")))
 | 
				
			||||||
 | 
					               (mkdir-p target)
 | 
				
			||||||
 | 
					               (for-each (lambda (file)
 | 
				
			||||||
 | 
					                           (install-file file target))
 | 
				
			||||||
 | 
					                         (find-files "../exe" ".*")))
 | 
				
			||||||
 | 
					             #t)))))
 | 
				
			||||||
 | 
					    (home-page "http://evolution.genetics.washington.edu/phylip/")
 | 
				
			||||||
 | 
					    (synopsis "Tools for inferring phylogenies")
 | 
				
			||||||
 | 
					    (description "PHYLIP (the PHYLogeny Inference Package) is a package of
 | 
				
			||||||
 | 
					programs for inferring phylogenies (evolutionary trees).")
 | 
				
			||||||
 | 
					    (license license:bsd-2)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public imp
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "imp")
 | 
				
			||||||
 | 
					    (version "2.6.2")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "https://integrativemodeling.org/"
 | 
				
			||||||
 | 
					                           version "/download/imp-" version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "0lxqx7vh79d771svr611dkilp6sn30qrbw8zvscbrm37v38d2j6h"))))
 | 
				
			||||||
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(;; FIXME: Some tests fail because they produce warnings, others fail
 | 
				
			||||||
 | 
					       ;; because the PYTHONPATH does not include the modeller's directory.
 | 
				
			||||||
 | 
					       #:tests? #f
 | 
				
			||||||
 | 
					       ;; Do not place libraries in an architecture-specific directory.
 | 
				
			||||||
 | 
					       #:configure-flags
 | 
				
			||||||
 | 
					       (list "-DCMAKE_INSTALL_LIBDIR=lib")))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("boost" ,boost)
 | 
				
			||||||
 | 
					       ("gsl" ,gsl)
 | 
				
			||||||
 | 
					       ("swig" ,swig)
 | 
				
			||||||
 | 
					       ("hdf5" ,hdf5)
 | 
				
			||||||
 | 
					       ("fftw" ,fftw)
 | 
				
			||||||
 | 
					       ("python" ,python-2)))
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("python2-numpy" ,python2-numpy)
 | 
				
			||||||
 | 
					       ("python2-scipy" ,python2-scipy)
 | 
				
			||||||
 | 
					       ("python2-pandas" ,python2-pandas)
 | 
				
			||||||
 | 
					       ("python2-scikit-learn" ,python2-scikit-learn)
 | 
				
			||||||
 | 
					       ("python2-networkx" ,python2-networkx)))
 | 
				
			||||||
 | 
					    (home-page "https://integrativemodeling.org")
 | 
				
			||||||
 | 
					    (synopsis "Integrative modeling platform")
 | 
				
			||||||
 | 
					    (description "IMP's broad goal is to contribute to a comprehensive
 | 
				
			||||||
 | 
					structural characterization of biomolecules ranging in size and complexity
 | 
				
			||||||
 | 
					from small peptides to large macromolecular assemblies, by integrating data
 | 
				
			||||||
 | 
					from diverse biochemical and biophysical experiments.  IMP provides a C++ and
 | 
				
			||||||
 | 
					Python toolbox for solving complex modeling problems, and a number of
 | 
				
			||||||
 | 
					applications for tackling some common problems in a user-friendly way.")
 | 
				
			||||||
 | 
					    ;; IMP is largely available under the GNU Lesser GPL; see the file
 | 
				
			||||||
 | 
					    ;; COPYING.LGPL for the full text of this license. Some IMP modules are
 | 
				
			||||||
 | 
					    ;; available under the GNU GPL (see the file COPYING.GPL).
 | 
				
			||||||
 | 
					    (license (list license:lgpl2.1+
 | 
				
			||||||
 | 
					                   license:gpl3+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public tadbit
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "tadbit")
 | 
				
			||||||
 | 
					    (version "0.2")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "https://github.com/3DGenomes/TADbit/"
 | 
				
			||||||
 | 
					                                  "archive/v" version ".tar.gz"))
 | 
				
			||||||
 | 
					              (file-name (string-append name "-" version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "1cnfqrl4685zar4nnw94j94nhvl2h29jm448nadqi1h05z6fdk4f"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(;; Tests are included and must be run after installation, but
 | 
				
			||||||
 | 
					       ;; they are incomplete and thus cannot be run.
 | 
				
			||||||
 | 
					       #:tests? #f
 | 
				
			||||||
 | 
					       #:python ,python-2
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-after 'unpack 'fix-problems-with-setup.py
 | 
				
			||||||
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             ;; setup.py opens these files for writing
 | 
				
			||||||
 | 
					             (chmod "_pytadbit/_version.py" #o664)
 | 
				
			||||||
 | 
					             (chmod "README.rst" #o664)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					             ;; Don't attempt to install the bash completions to
 | 
				
			||||||
 | 
					             ;; the home directory.
 | 
				
			||||||
 | 
					             (rename-file "extras/.bash_completion"
 | 
				
			||||||
 | 
					                          "extras/tadbit")
 | 
				
			||||||
 | 
					             (substitute* "setup.py"
 | 
				
			||||||
 | 
					               (("\\(path.expanduser\\('~'\\)")
 | 
				
			||||||
 | 
					                (string-append "(\""
 | 
				
			||||||
 | 
					                               (assoc-ref outputs "out")
 | 
				
			||||||
 | 
					                               "/etc/bash_completion.d\""))
 | 
				
			||||||
 | 
					               (("extras/\\.bash_completion")
 | 
				
			||||||
 | 
					                "extras/tadbit"))
 | 
				
			||||||
 | 
					             #t)))))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     ;; TODO: add Chimera for visualization
 | 
				
			||||||
 | 
					     `(("imp" ,imp)
 | 
				
			||||||
 | 
					       ("mcl" ,mcl)
 | 
				
			||||||
 | 
					       ("python2-scipy" ,python2-scipy)
 | 
				
			||||||
 | 
					       ("python2-numpy" ,python2-numpy)
 | 
				
			||||||
 | 
					       ("python2-matplotlib" ,python2-matplotlib)
 | 
				
			||||||
 | 
					       ("python2-pysam" ,python2-pysam)))
 | 
				
			||||||
 | 
					    (home-page "http://3dgenomes.github.io/TADbit/")
 | 
				
			||||||
 | 
					    (synopsis "Analyze, model, and explore 3C-based data")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "TADbit is a complete Python library to deal with all steps to analyze,
 | 
				
			||||||
 | 
					model, and explore 3C-based data.  With TADbit the user can map FASTQ files to
 | 
				
			||||||
 | 
					obtain raw interaction binned matrices (Hi-C like matrices), normalize and
 | 
				
			||||||
 | 
					correct interaction matrices, identify adn compare the so-called
 | 
				
			||||||
 | 
					@dfn{Topologically Associating Domains} (TADs), build 3D models from the
 | 
				
			||||||
 | 
					interaction matrices, and finally, extract structural properties from the
 | 
				
			||||||
 | 
					models.  TADbit is complemented by TADkit for visualizing 3D models.")
 | 
				
			||||||
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,6 +4,7 @@
 | 
				
			||||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 | 
					;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 | 
					;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 | 
				
			||||||
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
					;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 | 
				
			||||||
 | 
					;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -191,7 +192,7 @@ COCOMO model or user-provided parameters.")
 | 
				
			||||||
(define-public the-silver-searcher
 | 
					(define-public the-silver-searcher
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "the-silver-searcher")
 | 
					    (name "the-silver-searcher")
 | 
				
			||||||
    (version "1.0.2")
 | 
					    (version "2.0.0")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append
 | 
					              (uri (string-append
 | 
				
			||||||
| 
						 | 
					@ -199,7 +200,7 @@ COCOMO model or user-provided parameters.")
 | 
				
			||||||
                    version ".tar.gz"))
 | 
					                    version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0v54himv65w294l0k4lhdyc6kvpgijn8b9g5356479fzy7hphjkg"))))
 | 
					                "04wm3r5p2mgv8mdkvysak0d5199h5y0yzl032624brfxpzmqfcq0"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)))
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4814,7 +4814,8 @@ Emacs.")
 | 
				
			||||||
                          ;; determined by emacs' standard initialization
 | 
					                          ;; determined by emacs' standard initialization
 | 
				
			||||||
                          ;; procedure
 | 
					                          ;; procedure
 | 
				
			||||||
                          (list ""))))
 | 
					                          (list ""))))
 | 
				
			||||||
                 #t))))))
 | 
					                 #t))))
 | 
				
			||||||
 | 
					         #:include (cons* "^reporters/.*\\.el$" %default-include)))
 | 
				
			||||||
      (home-page "https://github.com/rejeep/ert-runner.el")
 | 
					      (home-page "https://github.com/rejeep/ert-runner.el")
 | 
				
			||||||
      (synopsis "Opinionated Ert testing workflow")
 | 
					      (synopsis "Opinionated Ert testing workflow")
 | 
				
			||||||
      (description "@code{ert-runner} is a tool for Emacs projects tested
 | 
					      (description "@code{ert-runner} is a tool for Emacs projects tested
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -959,7 +959,7 @@ match, cannon keep, and grave-itation pit.")
 | 
				
			||||||
(define minetest-data
 | 
					(define minetest-data
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "minetest-data")
 | 
					    (name "minetest-data")
 | 
				
			||||||
    (version "0.4.15")
 | 
					    (version "0.4.16")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append
 | 
					              (uri (string-append
 | 
				
			||||||
| 
						 | 
					@ -968,7 +968,7 @@ match, cannon keep, and grave-itation pit.")
 | 
				
			||||||
              (file-name (string-append name "-" version ".tar.gz"))
 | 
					              (file-name (string-append name "-" version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "12kxklcd1b5n0f369zf3xxhvkrizxj4d9xv0dh8crfqiymaym0zm"))))
 | 
					                "0nibpm600rbv9dg1zgcsl5grlbqx0b5l6cg1lp6sqkwvjialb4ga"))))
 | 
				
			||||||
    (build-system trivial-build-system)
 | 
					    (build-system trivial-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("source" ,source)
 | 
					     `(("source" ,source)
 | 
				
			||||||
| 
						 | 
					@ -1000,7 +1000,7 @@ match, cannon keep, and grave-itation pit.")
 | 
				
			||||||
(define-public minetest
 | 
					(define-public minetest
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "minetest")
 | 
					    (name "minetest")
 | 
				
			||||||
    (version "0.4.15")
 | 
					    (version "0.4.16")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append
 | 
					              (uri (string-append
 | 
				
			||||||
| 
						 | 
					@ -1009,7 +1009,7 @@ match, cannon keep, and grave-itation pit.")
 | 
				
			||||||
              (file-name (string-append name "-" version ".tar.gz"))
 | 
					              (file-name (string-append name "-" version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1ag3jcj7kpq3ph12zirk1c0mj9i0g50wmw932f8gi11liq8yd12n"))))
 | 
					                "0mbnf1ma4gsw9ah68ply04059xkfx5psdxwalxp78sgmx4ypkwqf"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:configure-flags
 | 
					     '(#:configure-flags
 | 
				
			||||||
| 
						 | 
					@ -4035,7 +4035,7 @@ fish.  The whole game is accompanied by quiet, comforting music.")
 | 
				
			||||||
(define-public crawl
 | 
					(define-public crawl
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "crawl")
 | 
					    (name "crawl")
 | 
				
			||||||
    (version "0.19.5")
 | 
					    (version "0.20.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
| 
						 | 
					@ -4049,7 +4049,7 @@ fish.  The whole game is accompanied by quiet, comforting music.")
 | 
				
			||||||
                            version "-nodeps.tar.xz")))
 | 
					                            version "-nodeps.tar.xz")))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "00yl2lb2shglxlxzpyk99zvglfx4amjybqwnzdcasvbiggb4cj18"))))
 | 
					         "0127dgldij2h4m7cf32yy9ndv4vcz03g4km71lmxrsi5mw7ljgpd"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("lua51" ,lua-5.1)
 | 
					     `(("lua51" ,lua-5.1)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2634,6 +2634,7 @@ output devices.")
 | 
				
			||||||
                         (("/bin/true") (which "true"))))))))
 | 
					                         (("/bin/true") (which "true"))))))))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)
 | 
					     `(("pkg-config" ,pkg-config)
 | 
				
			||||||
 | 
					       ("gobject-introspection" ,gobject-introspection)
 | 
				
			||||||
       ("intltool" ,intltool)))
 | 
					       ("intltool" ,intltool)))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("avahi" ,avahi)
 | 
					     `(("avahi" ,avahi)
 | 
				
			||||||
| 
						 | 
					@ -5110,6 +5111,10 @@ properties, screen resolution, and other GNOME parameters.")
 | 
				
			||||||
       ("startup-notification" ,startup-notification)
 | 
					       ("startup-notification" ,startup-notification)
 | 
				
			||||||
       ("telepathy-logger" ,telepathy-logger)
 | 
					       ("telepathy-logger" ,telepathy-logger)
 | 
				
			||||||
       ("upower" ,upower)
 | 
					       ("upower" ,upower)
 | 
				
			||||||
 | 
					       ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
 | 
				
			||||||
 | 
					       ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
 | 
				
			||||||
 | 
					       ("librsvg" ,librsvg)
 | 
				
			||||||
 | 
					       ("geoclue" ,geoclue)
 | 
				
			||||||
       ;; XXX: required by libgjs.la.
 | 
					       ;; XXX: required by libgjs.la.
 | 
				
			||||||
       ("readline" ,readline)))
 | 
					       ("readline" ,readline)))
 | 
				
			||||||
    (synopsis "Desktop shell for GNOME")
 | 
					    (synopsis "Desktop shell for GNOME")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -239,7 +239,8 @@ without requiring the source code to be rewritten.")
 | 
				
			||||||
              (snippet '(for-each delete-file
 | 
					              (snippet '(for-each delete-file
 | 
				
			||||||
                                  (find-files "prebuilt" "\\.go$")))))
 | 
					                                  (find-files "prebuilt" "\\.go$")))))
 | 
				
			||||||
    (properties '((timeout . 72000)               ;20 hours
 | 
					    (properties '((timeout . 72000)               ;20 hours
 | 
				
			||||||
                  (max-silent-time . 10800)))     ;3 hours (needed on ARM)
 | 
					                  (max-silent-time . 21600)))     ;6 hours (needed on ARM
 | 
				
			||||||
 | 
					                                                  ;  when heavily loaded)
 | 
				
			||||||
    (native-search-paths
 | 
					    (native-search-paths
 | 
				
			||||||
     (list (search-path-specification
 | 
					     (list (search-path-specification
 | 
				
			||||||
            (variable "GUILE_LOAD_PATH")
 | 
					            (variable "GUILE_LOAD_PATH")
 | 
				
			||||||
| 
						 | 
					@ -393,18 +394,17 @@ program can be installed in one go.")
 | 
				
			||||||
(define-public artanis
 | 
					(define-public artanis
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "artanis")
 | 
					    (name "artanis")
 | 
				
			||||||
    (version "0.1.2")
 | 
					    (version "0.2.1")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "ftp://alpha.gnu.org/gnu/artanis/artanis-"
 | 
					              (uri (string-append "ftp://alpha.gnu.org/gnu/artanis/artanis-"
 | 
				
			||||||
                                  version ".tar.gz"))
 | 
					                                  version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "19m3ak12cqk8js9d2mdg11kh4fjsq8frfpd10qw75h0zpr5cywpp"))
 | 
					                "041ajcg2pz918kd9iqcj4inpzddc3impvz3r2nhlpbv8zrz011hn"))))
 | 
				
			||||||
              (patches (search-patches "artanis-fix-Makefile.in.patch"))))
 | 
					 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    ;; TODO: Add guile-dbi and guile-dbd optional dependencies.
 | 
					    ;; TODO: Add guile-dbi and guile-dbd optional dependencies.
 | 
				
			||||||
    (inputs `(("guile" ,guile-2.0)))
 | 
					    (inputs `(("guile" ,guile-2.2)))
 | 
				
			||||||
    (native-inputs `(("bash"       ,bash)         ;for the `source' builtin
 | 
					    (native-inputs `(("bash"       ,bash)         ;for the `source' builtin
 | 
				
			||||||
                     ("pkgconfig"  ,pkg-config)
 | 
					                     ("pkgconfig"  ,pkg-config)
 | 
				
			||||||
                     ("util-linux" ,util-linux))) ;for the `script' command
 | 
					                     ("util-linux" ,util-linux))) ;for the `script' command
 | 
				
			||||||
| 
						 | 
					@ -412,15 +412,15 @@ program can be installed in one go.")
 | 
				
			||||||
     '(#:make-flags
 | 
					     '(#:make-flags
 | 
				
			||||||
       ;; TODO: The documentation must be built with the `docs' target.
 | 
					       ;; TODO: The documentation must be built with the `docs' target.
 | 
				
			||||||
       (let* ((out (assoc-ref %outputs "out"))
 | 
					       (let* ((out (assoc-ref %outputs "out"))
 | 
				
			||||||
              (dir (string-append out "/share/guile/site/2.0")))
 | 
					              (scm (string-append out "/share/guile/site/2.2"))
 | 
				
			||||||
 | 
					              (go  (string-append out "/lib/guile/2.2/site-ccache")))
 | 
				
			||||||
         ;; Don't use (%site-dir) for site paths.
 | 
					         ;; Don't use (%site-dir) for site paths.
 | 
				
			||||||
         (list (string-append "MOD_PATH=" dir)
 | 
					         (list (string-append "MOD_PATH=" scm)
 | 
				
			||||||
               (string-append "MOD_COMPILED_PATH=" dir)))
 | 
					               (string-append "MOD_COMPILED_PATH=" go)))
 | 
				
			||||||
       #:test-target "test"
 | 
					       #:test-target "test"
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-before
 | 
					         (add-before 'install 'substitute-root-dir
 | 
				
			||||||
          'install 'substitute-root-dir
 | 
					 | 
				
			||||||
          (lambda* (#:key outputs #:allow-other-keys)
 | 
					          (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
            (let ((out  (assoc-ref outputs "out")))
 | 
					            (let ((out  (assoc-ref outputs "out")))
 | 
				
			||||||
              (substitute* "Makefile"   ;ignore the execution of bash.bashrc
 | 
					              (substitute* "Makefile"   ;ignore the execution of bash.bashrc
 | 
				
			||||||
| 
						 | 
					@ -428,7 +428,17 @@ program can be installed in one go.")
 | 
				
			||||||
              (substitute* "Makefile"   ;set the root of config files to OUT
 | 
					              (substitute* "Makefile"   ;set the root of config files to OUT
 | 
				
			||||||
                ((" /etc") (string-append " " out "/etc")))
 | 
					                ((" /etc") (string-append " " out "/etc")))
 | 
				
			||||||
              (mkdir-p (string-append out "/bin")) ;for the `art' executable
 | 
					              (mkdir-p (string-append out "/bin")) ;for the `art' executable
 | 
				
			||||||
              #t))))))
 | 
					              #t)))
 | 
				
			||||||
 | 
					         (add-after 'install 'wrap-art
 | 
				
			||||||
 | 
					           (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (let* ((out (assoc-ref outputs "out"))
 | 
				
			||||||
 | 
					                    (bin (string-append out "/bin"))
 | 
				
			||||||
 | 
					                    (scm (string-append out "/share/guile/site/2.2"))
 | 
				
			||||||
 | 
					                    (go  (string-append out "/lib/guile/2.2/site-ccache")))
 | 
				
			||||||
 | 
					               (wrap-program (string-append bin "/art")
 | 
				
			||||||
 | 
					                 `("GUILE_LOAD_PATH" ":" prefix (,scm))
 | 
				
			||||||
 | 
					                 `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,go)))
 | 
				
			||||||
 | 
					               #t))))))
 | 
				
			||||||
    (synopsis "Web application framework written in Guile")
 | 
					    (synopsis "Web application framework written in Guile")
 | 
				
			||||||
    (description "GNU Artanis is a web application framework written in Guile
 | 
					    (description "GNU Artanis is a web application framework written in Guile
 | 
				
			||||||
Scheme.  A web application framework (WAF) is a software framework that is
 | 
					Scheme.  A web application framework (WAF) is a software framework that is
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,8 +43,11 @@
 | 
				
			||||||
  #:use-module (gnu packages glib)
 | 
					  #:use-module (gnu packages glib)
 | 
				
			||||||
  #:use-module (gnu packages gnome)
 | 
					  #:use-module (gnu packages gnome)
 | 
				
			||||||
  #:use-module (gnu packages gnupg)
 | 
					  #:use-module (gnu packages gnupg)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages graphics)
 | 
				
			||||||
  #:use-module (gnu packages gstreamer)
 | 
					  #:use-module (gnu packages gstreamer)
 | 
				
			||||||
  #:use-module (gnu packages image)
 | 
					  #:use-module (gnu packages image)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages kerberos)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages libreoffice)
 | 
				
			||||||
  #:use-module (gnu packages linux)
 | 
					  #:use-module (gnu packages linux)
 | 
				
			||||||
  #:use-module (gnu packages mp3)
 | 
					  #:use-module (gnu packages mp3)
 | 
				
			||||||
  #:use-module (gnu packages pdf)
 | 
					  #:use-module (gnu packages pdf)
 | 
				
			||||||
| 
						 | 
					@ -120,6 +123,8 @@ common build settings used in software produced by the KDE community.")
 | 
				
			||||||
                "177647r2jqfm32hqcz2nqfqv6v48hn5ab2vc31svba2wz23fkgk7"))))
 | 
					                "177647r2jqfm32hqcz2nqfqv6v48hn5ab2vc31svba2wz23fkgk7"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     ;; TODO: Add qttools to build the Qt Designer plugin.
 | 
				
			||||||
 | 
					     ;; TODO: Think about adding pulseaudio. Is it required for sound?
 | 
				
			||||||
     `(("extra-cmake-modules" ,extra-cmake-modules)))
 | 
					     `(("extra-cmake-modules" ,extra-cmake-modules)))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("qtbase" ,qtbase)))
 | 
					     `(("qtbase" ,qtbase)))
 | 
				
			||||||
| 
						 | 
					@ -202,7 +207,8 @@ Phonon-GStreamer is a backend based on the GStreamer multimedia library.")
 | 
				
			||||||
    (home-page "https://community.kde.org/Frameworks")
 | 
					    (home-page "https://community.kde.org/Frameworks")
 | 
				
			||||||
    (synopsis "C++ bindings/wrapper for gpgme")
 | 
					    (synopsis "C++ bindings/wrapper for gpgme")
 | 
				
			||||||
    (description "C++ bindings/wrapper for gpgme.")
 | 
					    (description "C++ bindings/wrapper for gpgme.")
 | 
				
			||||||
    (license license:lgpl2.1+)))
 | 
					    (license license:lgpl2.1+)
 | 
				
			||||||
 | 
					    (properties `((superseded . ,gpgme)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public kpmcore
 | 
					(define-public kpmcore
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -292,6 +298,7 @@ http://freedesktop.org/wiki/Specifications/open-collaboration-services/")
 | 
				
			||||||
     `(("dbus" ,dbus)
 | 
					     `(("dbus" ,dbus)
 | 
				
			||||||
       ("extra-cmake-modules" ,extra-cmake-modules)))
 | 
					       ("extra-cmake-modules" ,extra-cmake-modules)))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
 | 
					     ;; TODO: qtdeclarative (yields one failing test)
 | 
				
			||||||
     `(("qtbase" ,qtbase)))
 | 
					     `(("qtbase" ,qtbase)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:configure-flags
 | 
					     `(#:configure-flags
 | 
				
			||||||
| 
						 | 
					@ -639,11 +646,16 @@ infrastructure.")
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1nmlwvy2jdmh0m6bmahvk68vl2rs9s28c10dkncpi6gvhsdkigqx"))))
 | 
					                "1nmlwvy2jdmh0m6bmahvk68vl2rs9s28c10dkncpi6gvhsdkigqx"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
 | 
					    ;; TODO: Build packages for the Python bindings.  Ideally this will be
 | 
				
			||||||
 | 
					    ;; done for all versions of python guix supports.  Requires python,
 | 
				
			||||||
 | 
					    ;; python-sip, clang-python, libclang.  Requires python-2 in all cases for
 | 
				
			||||||
 | 
					    ;; clang-python.
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("extra-cmake-modules" ,extra-cmake-modules)
 | 
					     `(("extra-cmake-modules" ,extra-cmake-modules)
 | 
				
			||||||
       ("xorg-server" ,xorg-server)))
 | 
					       ("pkg-config" ,pkg-config)))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("qtbase" ,qtbase)))
 | 
					     `(("qtbase" ,qtbase)
 | 
				
			||||||
 | 
					       ("qtx11extras" ,qtx11extras)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
| 
						 | 
					@ -743,19 +755,17 @@ or user activity.")
 | 
				
			||||||
                "1liq1ppa7xb1dcncv25c2a0xy3l9bvb2a56cff90c0b0vwr239q5"))))
 | 
					                "1liq1ppa7xb1dcncv25c2a0xy3l9bvb2a56cff90c0b0vwr239q5"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("extra-cmake-modules" ,extra-cmake-modules)
 | 
					     `(("extra-cmake-modules" ,extra-cmake-modules)))
 | 
				
			||||||
       ("xorg-server" ,xorg-server)))
 | 
					 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("qtbase" ,qtbase)))
 | 
					     `(("qtbase" ,qtbase)
 | 
				
			||||||
 | 
					       ("qtdeclarative" ,qtdeclarative)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-before 'check 'start-xorg-server
 | 
					         (add-before 'check 'check-setup
 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					           (lambda _
 | 
				
			||||||
             ;; The test suite requires a running X server.
 | 
					             ;; make Qt render "offscreen", required for tests
 | 
				
			||||||
             (system (string-append (assoc-ref inputs "xorg-server")
 | 
					             (setenv "QT_QPA_PLATFORM" "offscreen")
 | 
				
			||||||
                                    "/bin/Xvfb :1 &"))
 | 
					 | 
				
			||||||
             (setenv "DISPLAY" ":1")
 | 
					 | 
				
			||||||
             #t)))))
 | 
					             #t)))))
 | 
				
			||||||
    (home-page "https://community.kde.org/Frameworks")
 | 
					    (home-page "https://community.kde.org/Frameworks")
 | 
				
			||||||
    (synopsis "Set of item models extending the Qt model-view framework")
 | 
					    (synopsis "Set of item models extending the Qt model-view framework")
 | 
				
			||||||
| 
						 | 
					@ -805,8 +815,7 @@ model to observers
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("extra-cmake-modules" ,extra-cmake-modules)
 | 
					     `(("extra-cmake-modules" ,extra-cmake-modules)
 | 
				
			||||||
       ("qttools" ,qttools)
 | 
					       ("qttools" ,qttools)))
 | 
				
			||||||
       ("xorg-server" ,xorg-server)))
 | 
					 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("qtbase" ,qtbase)))
 | 
					     `(("qtbase" ,qtbase)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
| 
						 | 
					@ -815,13 +824,8 @@ model to observers
 | 
				
			||||||
         (add-before 'check 'check-setup
 | 
					         (add-before 'check 'check-setup
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
             (setenv "DBUS_FATAL_WARNINGS" "0")
 | 
					             (setenv "DBUS_FATAL_WARNINGS" "0")
 | 
				
			||||||
             #t))
 | 
					             ;; make Qt render "offscreen", required for tests
 | 
				
			||||||
         (add-before 'check 'start-xorg-server
 | 
					             (setenv "QT_QPA_PLATFORM" "offscreen")
 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					 | 
				
			||||||
             ;; The test suite requires a running X server.
 | 
					 | 
				
			||||||
             (system (string-append (assoc-ref inputs "xorg-server")
 | 
					 | 
				
			||||||
                                    "/bin/Xvfb :1 &"))
 | 
					 | 
				
			||||||
             (setenv "DISPLAY" ":1")
 | 
					 | 
				
			||||||
             #t)))))
 | 
					             #t)))))
 | 
				
			||||||
    (home-page "https://community.kde.org/Frameworks")
 | 
					    (home-page "https://community.kde.org/Frameworks")
 | 
				
			||||||
    (synopsis "Set of item views extending the Qt model-view framework")
 | 
					    (synopsis "Set of item views extending the Qt model-view framework")
 | 
				
			||||||
| 
						 | 
					@ -845,19 +849,16 @@ to flat and hierarchical lists.")
 | 
				
			||||||
                "1ffy9b08128ym024wlfgnzk52vpy0mbaa91dhndpr40qcz0i67sh"))))
 | 
					                "1ffy9b08128ym024wlfgnzk52vpy0mbaa91dhndpr40qcz0i67sh"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("extra-cmake-modules" ,extra-cmake-modules)
 | 
					     `(("extra-cmake-modules" ,extra-cmake-modules)))
 | 
				
			||||||
       ("xorg-server" ,xorg-server)))
 | 
					 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("qtbase" ,qtbase)))
 | 
					     `(("qtbase" ,qtbase)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-before 'check 'start-xorg-server
 | 
					         (add-before 'check 'check-setup
 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					           (lambda _ ; kplotting
 | 
				
			||||||
             ;; The test suite requires a running X server.
 | 
					             ;; make Qt render "offscreen", required for tests
 | 
				
			||||||
             (system (string-append (assoc-ref inputs "xorg-server")
 | 
					             (setenv "QT_QPA_PLATFORM" "offscreen")
 | 
				
			||||||
                                    "/bin/Xvfb :1 &"))
 | 
					 | 
				
			||||||
             (setenv "DISPLAY" ":1")
 | 
					 | 
				
			||||||
             #t)))))
 | 
					             #t)))))
 | 
				
			||||||
    (home-page "https://community.kde.org/Frameworks")
 | 
					    (home-page "https://community.kde.org/Frameworks")
 | 
				
			||||||
    (synopsis "Data plotting library")
 | 
					    (synopsis "Data plotting library")
 | 
				
			||||||
| 
						 | 
					@ -976,8 +977,7 @@ represented by a QPoint or a QSize.")
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("qtbase" ,qtbase)))
 | 
					     `(("qtbase" ,qtbase)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f ; FIXME: Regression after update to qt 5.7
 | 
					     `(#:phases
 | 
				
			||||||
       #:phases
 | 
					 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-before 'check 'check-setup
 | 
					         (add-before 'check 'check-setup
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
| 
						 | 
					@ -1020,6 +1020,7 @@ configuration pages, message boxes, and password requests.")
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("extra-cmake-modules" ,extra-cmake-modules)
 | 
					     `(("extra-cmake-modules" ,extra-cmake-modules)
 | 
				
			||||||
       ("pkg-config" ,pkg-config)
 | 
					       ("pkg-config" ,pkg-config)
 | 
				
			||||||
 | 
					       ("dbus" ,dbus) ; for the tests
 | 
				
			||||||
       ("qttools" ,qttools)
 | 
					       ("qttools" ,qttools)
 | 
				
			||||||
       ("xorg-server" ,xorg-server))) ; for the tests
 | 
					       ("xorg-server" ,xorg-server))) ; for the tests
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
| 
						 | 
					@ -1028,7 +1029,31 @@ configuration pages, message boxes, and password requests.")
 | 
				
			||||||
       ("qtx11extras" ,qtx11extras)
 | 
					       ("qtx11extras" ,qtx11extras)
 | 
				
			||||||
       ("xcb-utils-keysyms" ,xcb-util-keysyms)))
 | 
					       ("xcb-utils-keysyms" ,xcb-util-keysyms)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f)) ; FIXME: 8/10 tests fail.
 | 
					     `(#:tests? #f ; FIXME: 3/12 tests fail.
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (delete 'check)
 | 
				
			||||||
 | 
					         (add-after 'install 'check
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
 | 
				
			||||||
 | 
					             ;; TODO: Simplify and use "common" phases when test-suite passes
 | 
				
			||||||
 | 
					             (if tests?
 | 
				
			||||||
 | 
					                 (begin
 | 
				
			||||||
 | 
					                   (let ((out (assoc-ref outputs "out")))
 | 
				
			||||||
 | 
					                     (setenv "QT_PLUGIN_PATH"
 | 
				
			||||||
 | 
					                             (string-append out "/lib/plugins:"
 | 
				
			||||||
 | 
					                                            (getenv "QT_PLUGIN_PATH"))))
 | 
				
			||||||
 | 
					                   ;; The test suite requires a running X server, setting
 | 
				
			||||||
 | 
					                   ;; QT_QPA_PLATFORM=offscreen does not suffice and even make
 | 
				
			||||||
 | 
					                   ;; some tests fail.
 | 
				
			||||||
 | 
					                   (system (string-append (assoc-ref inputs "xorg-server")
 | 
				
			||||||
 | 
					                                          "/bin/Xvfb :1 -screen 0 640x480x24 &"))
 | 
				
			||||||
 | 
					                   (setenv "DISPLAY" ":1")
 | 
				
			||||||
 | 
					                   (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
 | 
				
			||||||
 | 
					                   (setenv "DBUS_FATAL_WARNINGS" "0")
 | 
				
			||||||
 | 
					                   (zero? (system* "dbus-launch" "ctest" ".")))
 | 
				
			||||||
 | 
					                 (begin
 | 
				
			||||||
 | 
					                   (format #t "test suite not run~%")
 | 
				
			||||||
 | 
					                   #t)))))))
 | 
				
			||||||
    (home-page "https://community.kde.org/Frameworks")
 | 
					    (home-page "https://community.kde.org/Frameworks")
 | 
				
			||||||
    (synopsis "KDE access to the windowing system")
 | 
					    (synopsis "KDE access to the windowing system")
 | 
				
			||||||
    (description "KWindowSystem provides information about and allows
 | 
					    (description "KWindowSystem provides information about and allows
 | 
				
			||||||
| 
						 | 
					@ -1175,6 +1200,7 @@ which are used in DBus communication.")
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("qtbase" ,qtbase)
 | 
					     `(("qtbase" ,qtbase)
 | 
				
			||||||
       ("udev" ,eudev)))
 | 
					       ("udev" ,eudev)))
 | 
				
			||||||
 | 
					    ;; TODO: Add runtime-only dependency MediaPlayerInfo
 | 
				
			||||||
    (home-page "https://community.kde.org/Frameworks")
 | 
					    (home-page "https://community.kde.org/Frameworks")
 | 
				
			||||||
    (synopsis "Desktop hardware abstraction")
 | 
					    (synopsis "Desktop hardware abstraction")
 | 
				
			||||||
    (description "Solid is a device integration framework.  It provides a way of
 | 
					    (description "Solid is a device integration framework.  It provides a way of
 | 
				
			||||||
| 
						 | 
					@ -1200,7 +1226,9 @@ system.")
 | 
				
			||||||
     `(("extra-cmake-modules" ,extra-cmake-modules)
 | 
					     `(("extra-cmake-modules" ,extra-cmake-modules)
 | 
				
			||||||
       ("qttools" ,qttools)))
 | 
					       ("qttools" ,qttools)))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("qtbase" ,qtbase)))
 | 
					     `(("hunspell" ,hunspell)
 | 
				
			||||||
 | 
					       ;; TODO: hspell (for Hebrew), Voikko (for Finish)
 | 
				
			||||||
 | 
					       ("qtbase" ,qtbase)))
 | 
				
			||||||
    (home-page "https://community.kde.org/Frameworks")
 | 
					    (home-page "https://community.kde.org/Frameworks")
 | 
				
			||||||
    (synopsis "Multi-language spell checker")
 | 
					    (synopsis "Multi-language spell checker")
 | 
				
			||||||
    (description "Sonnet is a plugin-based spell checking library for Qt-based
 | 
					    (description "Sonnet is a plugin-based spell checking library for Qt-based
 | 
				
			||||||
| 
						 | 
					@ -1301,8 +1329,7 @@ utilities.")
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("extra-cmake-modules" ,extra-cmake-modules)
 | 
					     `(("extra-cmake-modules" ,extra-cmake-modules)
 | 
				
			||||||
       ("qttools" ,qttools)
 | 
					       ("qttools" ,qttools)))
 | 
				
			||||||
       ("xorg-server" ,xorg-server)))
 | 
					 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("kconfig" ,kconfig)
 | 
					     `(("kconfig" ,kconfig)
 | 
				
			||||||
       ("kwidgetsaddons" ,kwidgetsaddons)
 | 
					       ("kwidgetsaddons" ,kwidgetsaddons)
 | 
				
			||||||
| 
						 | 
					@ -1337,8 +1364,7 @@ integrated it into your application's other widgets.")
 | 
				
			||||||
                "1cshay7dhbqgh62nq85vd9sm20gq9s9f70mdnzjjh1q7cajybkp3"))))
 | 
					                "1cshay7dhbqgh62nq85vd9sm20gq9s9f70mdnzjjh1q7cajybkp3"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("extra-cmake-modules" ,extra-cmake-modules)
 | 
					     `(("extra-cmake-modules" ,extra-cmake-modules)))
 | 
				
			||||||
       ("xorg-server" ,xorg-server)))
 | 
					 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("kcoreaddons" ,kcoreaddons)
 | 
					     `(("kcoreaddons" ,kcoreaddons)
 | 
				
			||||||
       ("kwindowsystem" ,kwindowsystem)
 | 
					       ("kwindowsystem" ,kwindowsystem)
 | 
				
			||||||
| 
						 | 
					@ -1347,12 +1373,10 @@ integrated it into your application's other widgets.")
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-before 'check 'start-xorg-server
 | 
					         (add-before 'check 'check-setup
 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					           (lambda _
 | 
				
			||||||
             ;; The test suite requires a running X server.
 | 
					             ;; make Qt render "offscreen", required for tests
 | 
				
			||||||
             (system "Xvfb :1 &")
 | 
					             (setenv "QT_QPA_PLATFORM" "offscreen")
 | 
				
			||||||
             (sleep 2)              ;XXX: give the server enough time to start
 | 
					 | 
				
			||||||
             (setenv "DISPLAY" ":1")
 | 
					 | 
				
			||||||
             #t)))))
 | 
					             #t)))))
 | 
				
			||||||
    (home-page "https://community.kde.org/Frameworks")
 | 
					    (home-page "https://community.kde.org/Frameworks")
 | 
				
			||||||
    (synopsis "Graceful handling of application crashes")
 | 
					    (synopsis "Graceful handling of application crashes")
 | 
				
			||||||
| 
						 | 
					@ -1476,19 +1500,26 @@ by applications to write metadata.")
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("extra-cmake-modules" ,extra-cmake-modules)
 | 
					     `(("extra-cmake-modules" ,extra-cmake-modules)
 | 
				
			||||||
       ("xorg-server" ,xorg-server)))
 | 
					       ("pkg-config" ,pkg-config)))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("qtbase" ,qtbase)))
 | 
					     `(("karchive" ,karchive) ; for Krita and OpenRaster images
 | 
				
			||||||
 | 
					       ("openexr" ,openexr) ; for OpenEXR high dynamic-range images
 | 
				
			||||||
 | 
					       ("qtbase" ,qtbase)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-before 'check 'start-xorg-server
 | 
					         (add-before 'check 'check-setup
 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					           (lambda _
 | 
				
			||||||
             ;; The test suite requires a running X server.
 | 
					             ;; make Qt render "offscreen", required for tests
 | 
				
			||||||
             (system (string-append (assoc-ref inputs "xorg-server")
 | 
					             (setenv "QT_QPA_PLATFORM" "offscreen")
 | 
				
			||||||
                                    "/bin/Xvfb :1 &"))
 | 
					             #t)))
 | 
				
			||||||
             (setenv "DISPLAY" ":1")
 | 
					       ;; FIXME: The header files of ilmbase (propagated by openexr) are not
 | 
				
			||||||
             #t)))))
 | 
					       ;; found when included by the header files of openexr, and an explicit
 | 
				
			||||||
 | 
					       ;; flag needs to be set.
 | 
				
			||||||
 | 
					       #:configure-flags
 | 
				
			||||||
 | 
					       (list (string-append "-DCMAKE_CXX_FLAGS=-I"
 | 
				
			||||||
 | 
					                            (assoc-ref %build-inputs "ilmbase")
 | 
				
			||||||
 | 
					                            "/include/OpenEXR"))))
 | 
				
			||||||
    (home-page "https://community.kde.org/Frameworks")
 | 
					    (home-page "https://community.kde.org/Frameworks")
 | 
				
			||||||
    (synopsis "Plugins to allow QImage to support extra file formats")
 | 
					    (synopsis "Plugins to allow QImage to support extra file formats")
 | 
				
			||||||
    (description "This framework provides additional image format plugins for
 | 
					    (description "This framework provides additional image format plugins for
 | 
				
			||||||
| 
						 | 
					@ -1550,6 +1581,9 @@ asynchronous jobs.")
 | 
				
			||||||
       ("kwindowsystem" ,kwindowsystem)
 | 
					       ("kwindowsystem" ,kwindowsystem)
 | 
				
			||||||
       ("phonon" ,phonon)
 | 
					       ("phonon" ,phonon)
 | 
				
			||||||
       ("qtbase" ,qtbase)
 | 
					       ("qtbase" ,qtbase)
 | 
				
			||||||
 | 
					       ;; TODO: qtspeech (new in Qt 5.9)
 | 
				
			||||||
 | 
					       ;; TODO: Think about adding dbusmenu-qt5 from
 | 
				
			||||||
 | 
					       ;; https://launchpad.net/libdbusmenu-qt
 | 
				
			||||||
       ("qtx11extras" ,qtx11extras)))
 | 
					       ("qtx11extras" ,qtx11extras)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:phases
 | 
				
			||||||
| 
						 | 
					@ -1588,10 +1622,11 @@ covers feedback and persistent events.")
 | 
				
			||||||
     `(("karchive" ,karchive)
 | 
					     `(("karchive" ,karchive)
 | 
				
			||||||
       ("kconfig" ,kconfig)
 | 
					       ("kconfig" ,kconfig)
 | 
				
			||||||
       ("kcoreaddons" ,kcoreaddons)
 | 
					       ("kcoreaddons" ,kcoreaddons)
 | 
				
			||||||
 | 
					       ("kdoctools" ,kdoctools)
 | 
				
			||||||
       ("ki18n" ,ki18n)
 | 
					       ("ki18n" ,ki18n)
 | 
				
			||||||
       ("qtbase" ,qtbase)))
 | 
					       ("qtbase" ,qtbase)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f ; FIXME: 1/4 tests fail.
 | 
					     `(#:tests? #f ; FIXME: 3/9 tests fail.
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-before 'check 'check-setup
 | 
					         (add-before 'check 'check-setup
 | 
				
			||||||
| 
						 | 
					@ -1624,6 +1659,7 @@ were traditional plugins.")
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("kcoreaddons" ,kcoreaddons)
 | 
					     `(("kcoreaddons" ,kcoreaddons)
 | 
				
			||||||
       ("ki18n" ,ki18n)
 | 
					       ("ki18n" ,ki18n)
 | 
				
			||||||
 | 
					       ;; TODO: utempter, for managing UTMP entries
 | 
				
			||||||
       ("qtbase" ,qtbase)))
 | 
					       ("qtbase" ,qtbase)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f ; FIXME: 1/1 tests fail.
 | 
					     `(#:tests? #f ; FIXME: 1/1 tests fail.
 | 
				
			||||||
| 
						 | 
					@ -1989,7 +2025,8 @@ their settings.")
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-before 'check 'start-xorg-server
 | 
					         (add-before 'check 'start-xorg-server
 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					           (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
             ;; The test suite requires a running X server.
 | 
					             ;; The test suite requires a running X server, setting
 | 
				
			||||||
 | 
					             ;; QT_QPA_PLATFORM=offscreen does not suffice.
 | 
				
			||||||
             (system (string-append (assoc-ref inputs "xorg-server")
 | 
					             (system (string-append (assoc-ref inputs "xorg-server")
 | 
				
			||||||
                                    "/bin/Xvfb :1 -screen 0 640x480x24 &"))
 | 
					                                    "/bin/Xvfb :1 -screen 0 640x480x24 &"))
 | 
				
			||||||
             (setenv "DISPLAY" ":1")
 | 
					             (setenv "DISPLAY" ":1")
 | 
				
			||||||
| 
						 | 
					@ -2219,8 +2256,7 @@ window does not need focus for them to be activated.")
 | 
				
			||||||
       ("qtbase" ,qtbase)
 | 
					       ("qtbase" ,qtbase)
 | 
				
			||||||
       ("qtsvg" ,qtsvg)))
 | 
					       ("qtsvg" ,qtsvg)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f ; FIXME: Test failure
 | 
					     `(#:phases
 | 
				
			||||||
       #:phases
 | 
					 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-before 'check 'check-setup
 | 
					         (add-before 'check 'check-setup
 | 
				
			||||||
           (lambda* (#:key inputs #:allow-other-keys)
 | 
					           (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
| 
						 | 
					@ -2252,7 +2288,8 @@ in applications using the KDE Frameworks.")
 | 
				
			||||||
                "08429kjihpaip73wszr3rsii8sdlwgm3kxx7g0hpjhkj9d2jq3m1"))))
 | 
					                "08429kjihpaip73wszr3rsii8sdlwgm3kxx7g0hpjhkj9d2jq3m1"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("extra-cmake-modules" ,extra-cmake-modules)))
 | 
					     `(("extra-cmake-modules" ,extra-cmake-modules)
 | 
				
			||||||
 | 
					       ("pkg-config" ,pkg-config)))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("kauth" ,kauth)
 | 
					     `(("kauth" ,kauth)
 | 
				
			||||||
       ("kbookmarks" ,kbookmarks)
 | 
					       ("kbookmarks" ,kbookmarks)
 | 
				
			||||||
| 
						 | 
					@ -2262,6 +2299,7 @@ in applications using the KDE Frameworks.")
 | 
				
			||||||
       ("kconfigwidgets" ,kconfigwidgets)
 | 
					       ("kconfigwidgets" ,kconfigwidgets)
 | 
				
			||||||
       ("kcoreaddons" ,kcoreaddons)
 | 
					       ("kcoreaddons" ,kcoreaddons)
 | 
				
			||||||
       ("kcrash" ,kcrash)
 | 
					       ("kcrash" ,kcrash)
 | 
				
			||||||
 | 
					       ("kdoctools" ,kdoctools)
 | 
				
			||||||
       ("kio" ,kio)
 | 
					       ("kio" ,kio)
 | 
				
			||||||
       ("kitemviews" ,kitemviews)
 | 
					       ("kitemviews" ,kitemviews)
 | 
				
			||||||
       ("ki18n" ,ki18n)
 | 
					       ("ki18n" ,ki18n)
 | 
				
			||||||
| 
						 | 
					@ -2270,6 +2308,7 @@ in applications using the KDE Frameworks.")
 | 
				
			||||||
       ("kwidgetsaddons" ,kwidgetsaddons)
 | 
					       ("kwidgetsaddons" ,kwidgetsaddons)
 | 
				
			||||||
       ("kwindowsystem" ,kwindowsystem)
 | 
					       ("kwindowsystem" ,kwindowsystem)
 | 
				
			||||||
       ("kxmlgui" ,kxmlgui)
 | 
					       ("kxmlgui" ,kxmlgui)
 | 
				
			||||||
 | 
					       ("libcap" ,libcap) ; to install start_kdeinit with CAP_SYS_RESOURCE
 | 
				
			||||||
       ("qtbase" ,qtbase)
 | 
					       ("qtbase" ,qtbase)
 | 
				
			||||||
       ("solid" ,solid)))
 | 
					       ("solid" ,solid)))
 | 
				
			||||||
    (home-page "https://community.kde.org/Frameworks")
 | 
					    (home-page "https://community.kde.org/Frameworks")
 | 
				
			||||||
| 
						 | 
					@ -2310,6 +2349,7 @@ makes starting KDE applications faster and reduces memory consumption.")
 | 
				
			||||||
       ("extra-cmake-modules" ,extra-cmake-modules)))
 | 
					       ("extra-cmake-modules" ,extra-cmake-modules)))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("acl" ,acl)
 | 
					     `(("acl" ,acl)
 | 
				
			||||||
 | 
					       ("krb5" ,mit-krb5)
 | 
				
			||||||
       ("karchive" ,karchive)
 | 
					       ("karchive" ,karchive)
 | 
				
			||||||
       ("kauth" ,kauth)
 | 
					       ("kauth" ,kauth)
 | 
				
			||||||
       ("kcodecs" ,kcodecs)
 | 
					       ("kcodecs" ,kcodecs)
 | 
				
			||||||
| 
						 | 
					@ -2326,6 +2366,7 @@ makes starting KDE applications faster and reduces memory consumption.")
 | 
				
			||||||
       ("libxml2" ,libxml2)
 | 
					       ("libxml2" ,libxml2)
 | 
				
			||||||
       ("libxslt" ,libxslt)
 | 
					       ("libxslt" ,libxslt)
 | 
				
			||||||
       ("qtbase" ,qtbase)
 | 
					       ("qtbase" ,qtbase)
 | 
				
			||||||
 | 
					       ("qtscript" ,qtscript)
 | 
				
			||||||
       ("qtx11extras" ,qtx11extras)
 | 
					       ("qtx11extras" ,qtx11extras)
 | 
				
			||||||
       ("sonnet" ,sonnet)))
 | 
					       ("sonnet" ,sonnet)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
| 
						 | 
					@ -2664,9 +2705,11 @@ types or handled by application specific code.")
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("kparts" ,kparts)))
 | 
					     `(("kparts" ,kparts)))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("extra-cmake-modules" ,extra-cmake-modules)))
 | 
					     `(("extra-cmake-modules" ,extra-cmake-modules)
 | 
				
			||||||
 | 
					       ("pkg-config" ,pkg-config)))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("karchive" ,karchive)
 | 
					     `(;; TODO: editor-config
 | 
				
			||||||
 | 
					       ("karchive" ,karchive)
 | 
				
			||||||
       ("kauth" ,kauth)
 | 
					       ("kauth" ,kauth)
 | 
				
			||||||
       ("kbookmarks" ,kbookmarks)
 | 
					       ("kbookmarks" ,kbookmarks)
 | 
				
			||||||
       ("kcodecs" ,kcodecs)
 | 
					       ("kcodecs" ,kcodecs)
 | 
				
			||||||
| 
						 | 
					@ -2745,6 +2788,7 @@ library.")
 | 
				
			||||||
       ("kservice" ,kservice)
 | 
					       ("kservice" ,kservice)
 | 
				
			||||||
       ("kwidgetsaddons" ,kwidgetsaddons)
 | 
					       ("kwidgetsaddons" ,kwidgetsaddons)
 | 
				
			||||||
       ("kwindowsystem" ,kwindowsystem)
 | 
					       ("kwindowsystem" ,kwindowsystem)
 | 
				
			||||||
 | 
					       ;; TODO: qtspeech (new in Qt 5.9)
 | 
				
			||||||
       ("qtbase" ,qtbase)))
 | 
					       ("qtbase" ,qtbase)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:phases
 | 
				
			||||||
| 
						 | 
					@ -2778,7 +2822,7 @@ It supports rich text as well as plain text.")
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("extra-cmake-modules" ,extra-cmake-modules)))
 | 
					     `(("extra-cmake-modules" ,extra-cmake-modules)))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("gpgmepp" ,gpgmepp)
 | 
					     `(("gpgme" ,gpgme) ;; TODO: Add gpgme Qt-bindings
 | 
				
			||||||
       ("kauth" ,kauth)
 | 
					       ("kauth" ,kauth)
 | 
				
			||||||
       ("kcodecs" ,kcodecs)
 | 
					       ("kcodecs" ,kcodecs)
 | 
				
			||||||
       ("kconfig" ,kconfig)
 | 
					       ("kconfig" ,kconfig)
 | 
				
			||||||
| 
						 | 
					@ -2915,7 +2959,8 @@ setUrl, setUserAgent and call.")
 | 
				
			||||||
     `(("kpackage" ,kpackage)
 | 
					     `(("kpackage" ,kpackage)
 | 
				
			||||||
       ("kservice" ,kservice)))
 | 
					       ("kservice" ,kservice)))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("extra-cmake-modules" ,extra-cmake-modules)))
 | 
					     `(("extra-cmake-modules" ,extra-cmake-modules)
 | 
				
			||||||
 | 
					       ("pkg-config" ,pkg-config)))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("kactivities" ,kactivities)
 | 
					     `(("kactivities" ,kactivities)
 | 
				
			||||||
       ("karchive" ,karchive)
 | 
					       ("karchive" ,karchive)
 | 
				
			||||||
| 
						 | 
					@ -2937,6 +2982,7 @@ setUrl, setUserAgent and call.")
 | 
				
			||||||
       ("ki18n" ,ki18n)
 | 
					       ("ki18n" ,ki18n)
 | 
				
			||||||
       ("kjobwidgets" ,kjobwidgets)
 | 
					       ("kjobwidgets" ,kjobwidgets)
 | 
				
			||||||
       ("knotificantions" ,knotifications)
 | 
					       ("knotificantions" ,knotifications)
 | 
				
			||||||
 | 
					       ("kwayland" ,kwayland)
 | 
				
			||||||
       ("kwidgetsaddons" ,kwidgetsaddons)
 | 
					       ("kwidgetsaddons" ,kwidgetsaddons)
 | 
				
			||||||
       ("kwindowsystem" ,kwindowsystem)
 | 
					       ("kwindowsystem" ,kwindowsystem)
 | 
				
			||||||
       ("kxmlgui" ,kxmlgui)
 | 
					       ("kxmlgui" ,kxmlgui)
 | 
				
			||||||
| 
						 | 
					@ -2947,7 +2993,7 @@ setUrl, setUserAgent and call.")
 | 
				
			||||||
       ("qtx11extras" ,qtx11extras)
 | 
					       ("qtx11extras" ,qtx11extras)
 | 
				
			||||||
       ("solid" ,solid)))
 | 
					       ("solid" ,solid)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f ; FIXME: 13/14 tests fail.
 | 
					     `(#:tests? #f ; FIXME: 9/15 tests fail.
 | 
				
			||||||
       #:phases
 | 
					       #:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-before 'check 'check-setup
 | 
					         (add-before 'check 'check-setup
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -293,6 +293,8 @@ used in KDE development tools Kompare and KDevelop.")
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-before 'configure 'patch-cmakelists
 | 
					         (add-before 'configure 'patch-cmakelists
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             ;; TODO: Verify: This should no longer be necessary, since
 | 
				
			||||||
 | 
					             ;; KF5AuthConfig.cmake.in contains this already.
 | 
				
			||||||
             (substitute* "processcore/CMakeLists.txt"
 | 
					             (substitute* "processcore/CMakeLists.txt"
 | 
				
			||||||
               (("KAUTH_HELPER_INSTALL_DIR") "KDE_INSTALL_LIBEXECDIR"))))
 | 
					               (("KAUTH_HELPER_INSTALL_DIR") "KDE_INSTALL_LIBEXECDIR"))))
 | 
				
			||||||
         (replace 'check
 | 
					         (replace 'check
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -72,6 +72,7 @@
 | 
				
			||||||
  #:use-module (gnu packages libusb)
 | 
					  #:use-module (gnu packages libusb)
 | 
				
			||||||
  #:use-module (gnu packages man)
 | 
					  #:use-module (gnu packages man)
 | 
				
			||||||
  #:use-module (gnu packages maths)
 | 
					  #:use-module (gnu packages maths)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages multiprecision)
 | 
				
			||||||
  #:use-module (gnu packages ncurses)
 | 
					  #:use-module (gnu packages ncurses)
 | 
				
			||||||
  #:use-module (gnu packages networking)
 | 
					  #:use-module (gnu packages networking)
 | 
				
			||||||
  #:use-module (gnu packages ninja)
 | 
					  #:use-module (gnu packages ninja)
 | 
				
			||||||
| 
						 | 
					@ -357,8 +358,8 @@ It has been modified to remove all non-free binary blobs.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define %intel-compatible-systems '("x86_64-linux" "i686-linux"))
 | 
					(define %intel-compatible-systems '("x86_64-linux" "i686-linux"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define %linux-libre-version "4.11.3")
 | 
					(define %linux-libre-version "4.11.4")
 | 
				
			||||||
(define %linux-libre-hash "14fbn9s7n86p5yivr4vmh4axdavny6xw1qk63cfwlcma7426wmva")
 | 
					(define %linux-libre-hash "11nd9pv18vz3g82ja71dkz9mbs0ffb8yamsd44d381szmmm2kpj8")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public linux-libre
 | 
					(define-public linux-libre
 | 
				
			||||||
  (make-linux-libre %linux-libre-version
 | 
					  (make-linux-libre %linux-libre-version
 | 
				
			||||||
| 
						 | 
					@ -367,14 +368,14 @@ It has been modified to remove all non-free binary blobs.")
 | 
				
			||||||
                    #:configuration-file kernel-config))
 | 
					                    #:configuration-file kernel-config))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public linux-libre-4.9
 | 
					(define-public linux-libre-4.9
 | 
				
			||||||
  (make-linux-libre "4.9.30"
 | 
					  (make-linux-libre "4.9.31"
 | 
				
			||||||
                    "1m1ii9n65lwkbwx0ifj13vgdfr0mnx8n7sfvhf5mn4r8krhxi77a"
 | 
					                    "0amc35c9f2rym6grb277yscnx8ybn8d4fbc2a59sgkg1lsdv7n4q"
 | 
				
			||||||
                    %intel-compatible-systems
 | 
					                    %intel-compatible-systems
 | 
				
			||||||
                    #:configuration-file kernel-config))
 | 
					                    #:configuration-file kernel-config))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public linux-libre-4.4
 | 
					(define-public linux-libre-4.4
 | 
				
			||||||
  (make-linux-libre "4.4.70"
 | 
					  (make-linux-libre "4.4.71"
 | 
				
			||||||
                    "1dvcj3mk42m91y1x41yh52frjdcwip1wj57qwlkmrpg02icr0b3s"
 | 
					                    "0nrd165crx9m9s1px98if6q5dcdqwmas9kh8i4rw51gz2xinh0gx"
 | 
				
			||||||
                    %intel-compatible-systems
 | 
					                    %intel-compatible-systems
 | 
				
			||||||
                    #:configuration-file kernel-config))
 | 
					                    #:configuration-file kernel-config))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3850,6 +3851,36 @@ libnftnl has been previously known as libnftables.  This library is currently
 | 
				
			||||||
used by nftables.")
 | 
					used by nftables.")
 | 
				
			||||||
    (license license:gpl2+)))
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public nftables
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "nftables")
 | 
				
			||||||
 | 
					    (version "0.7")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "http://www.nftables.org/projects/nftables"
 | 
				
			||||||
 | 
					                           "/files/nftables-" version ".tar.bz2"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "0hzdqigdx4i6jbpxbdyq4zy4p4waqn8l6vvz7685ikh1v0wr4qzy"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (inputs `(("bison", bison)
 | 
				
			||||||
 | 
					              ("flex", flex)
 | 
				
			||||||
 | 
					              ("gmp", gmp)
 | 
				
			||||||
 | 
					              ("libmnl", libmnl)
 | 
				
			||||||
 | 
					              ("libnftnl", libnftnl)
 | 
				
			||||||
 | 
					              ("readline", readline)))
 | 
				
			||||||
 | 
					    (native-inputs `(("pkg-config", pkg-config)))
 | 
				
			||||||
 | 
					    (home-page "http://www.nftables.org")
 | 
				
			||||||
 | 
					    (synopsis "Userspace utility for Linux packet filtering")
 | 
				
			||||||
 | 
					    (description "nftables is the project that aims to replace the existing
 | 
				
			||||||
 | 
					{ip,ip6,arp,eb}tables framework.  Basically, this project provides a new packet
 | 
				
			||||||
 | 
					filtering framework, a new userspace utility and also a compatibility layer for
 | 
				
			||||||
 | 
					{ip,ip6}tables.  nftables is built upon the building blocks of the Netfilter
 | 
				
			||||||
 | 
					infrastructure such as the existing hooks, the connection tracking system, the
 | 
				
			||||||
 | 
					userspace queueing component and the logging subsystem.")
 | 
				
			||||||
 | 
					    (license license:gpl2)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public proot
 | 
					(define-public proot
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "proot")
 | 
					    (name "proot")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,6 +2,7 @@
 | 
				
			||||||
;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
 | 
					;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
 | 
				
			||||||
;;; Copyright © 2015 David Thompson <davet@gnu.org>
 | 
					;;; Copyright © 2015 David Thompson <davet@gnu.org>
 | 
				
			||||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 | 
					;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 | 
				
			||||||
 | 
					;;; Copyright © 2017 ng0 <ng0@no-reply.pragmatique.xyz>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -18,7 +19,7 @@
 | 
				
			||||||
;;; You should have received a copy of the GNU General Public License
 | 
					;;; You should have received a copy of the GNU General Public License
 | 
				
			||||||
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 | 
					;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-module (gnu packages markdown)
 | 
					(define-module (gnu packages markup)
 | 
				
			||||||
  #:use-module (guix licenses)
 | 
					  #:use-module (guix licenses)
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
| 
						 | 
					@ -130,3 +131,39 @@ for parsing and rendering CommonMark.")
 | 
				
			||||||
    ;; licensed. The CommonMark specification is Creative Commons CC-BY-SA 4.0
 | 
					    ;; licensed. The CommonMark specification is Creative Commons CC-BY-SA 4.0
 | 
				
			||||||
    ;; licensed. See 'COPYING' in the source distribution for more information.
 | 
					    ;; licensed. See 'COPYING' in the source distribution for more information.
 | 
				
			||||||
    (license (list bsd-2 expat cc-by-sa4.0))))
 | 
					    (license (list bsd-2 expat cc-by-sa4.0))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public smu
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "smu")
 | 
				
			||||||
 | 
					    (version "1.4")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "https://github.com/Gottox/smu/archive/v"
 | 
				
			||||||
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
 | 
					       (file-name (string-append name "-" version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "0iazl45rkz8ngsb5hpykl76w0ngvdvqqhym1qz5wykgmrzk293rp"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:make-flags (list "CC=gcc"
 | 
				
			||||||
 | 
					                          (string-append "PREFIX="
 | 
				
			||||||
 | 
					                                         (assoc-ref %outputs "out")))
 | 
				
			||||||
 | 
					       #:tests? #f ;No tests included
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (delete 'configure))))
 | 
				
			||||||
 | 
					    (home-page "https://github.com/Gottox/smu")
 | 
				
			||||||
 | 
					    (synopsis "Simple markup")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Smu is a very simple and minimal markup language.  It is
 | 
				
			||||||
 | 
					designed for using in wiki-like environments.  Smu makes it very
 | 
				
			||||||
 | 
					easy to write your documents on the fly and convert them into HTML.
 | 
				
			||||||
 | 
					Smu is capable to parse very large documents.  As long as you avoid an huge
 | 
				
			||||||
 | 
					amount of indents it scales just great.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Smu was started as a rewrite of Markdown but became something more
 | 
				
			||||||
 | 
					lightweight and consistent.  The biggest difference between Markdown
 | 
				
			||||||
 | 
					and smu is that smu doesn't support reference style links.")
 | 
				
			||||||
 | 
					    (license x11)))
 | 
				
			||||||
| 
						 | 
					@ -1,70 +0,0 @@
 | 
				
			||||||
Applies until an Artanis release comes with the following patches
 | 
					 | 
				
			||||||
applied:
 | 
					 | 
				
			||||||
* <https://savannah.gnu.org/patch/?func=detailitem&item_id=9130>
 | 
					 | 
				
			||||||
* <https://savannah.gnu.org/patch/?func=detailitem&item_id=9131>
 | 
					 | 
				
			||||||
diff -ru artanis-0.1.2/Makefile.in artanis-0.1.2.1/Makefile.in
 | 
					 | 
				
			||||||
--- artanis-0.1.2/Makefile.in	2016-02-10 12:35:18.800490571 -0200
 | 
					 | 
				
			||||||
+++ artanis-0.1.2.1/Makefile.in	2016-10-15 19:44:35.140907367 -0300
 | 
					 | 
				
			||||||
@@ -19,9 +19,18 @@
 | 
					 | 
				
			||||||
 MOD_OBJ := $(OBJ)/artanis
 | 
					 | 
				
			||||||
 BIN := bin
 | 
					 | 
				
			||||||
 TEMP_LIB_PATH := $(OBJ)
 | 
					 | 
				
			||||||
-MOD_PATH := $(shell guile -c "(display (%site-dir))")
 | 
					 | 
				
			||||||
 MOD_COMPILED_PATH := $(shell guile -c "(display (%site-ccache-dir))")
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+ifdef DESTDIR
 | 
					 | 
				
			||||||
+INFO_DIR := $(DESTDIR)/share/info/
 | 
					 | 
				
			||||||
+MOD_PATH := $(DESTDIR)/$(shell guile -c "(display (%site-dir))")
 | 
					 | 
				
			||||||
 MOD_TARGET_PATH := $(DESTDIR)/$(MOD_COMPILED_PATH)
 | 
					 | 
				
			||||||
+else
 | 
					 | 
				
			||||||
+INFO_DIR := $(PREFIX)/share/info/
 | 
					 | 
				
			||||||
+MOD_PATH := $(shell guile -c "(display (%site-dir))")
 | 
					 | 
				
			||||||
+MOD_TARGET_PATH := $(MOD_COMPILED_PATH)
 | 
					 | 
				
			||||||
+endif
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
 GUILE_CFLAGS := -Wunsupported-warning -Wunbound-variable -Warity-mismatch -Wduplicate-case-datum -Wbad-case-datum -Wformat
 | 
					 | 
				
			||||||
 GUILEC := GUILE_LOAD_COMPILED_PATH=$(TEMP_LIB_PATH) guild compile $(GUILE_CFLAGS)
 | 
					 | 
				
			||||||
 ARTANIS_ETC := $(SRC)/etc/artanis
 | 
					 | 
				
			||||||
@@ -36,7 +45,6 @@
 | 
					 | 
				
			||||||
 GENDOCS :=$(BUILD_AUX)/gendocs.sh
 | 
					 | 
				
			||||||
 CHK_TEXINFO := $(BUILD_AUX)/check_texinfo.scm
 | 
					 | 
				
			||||||
 CP := cp -frd -P
 | 
					 | 
				
			||||||
-INFO_DIR := $(PREFIX)/share/info/
 | 
					 | 
				
			||||||
 TARBALL_NAME := artanis-$(VERSION)
 | 
					 | 
				
			||||||
 TMP_DIR := $(shell mktemp -d)
 | 
					 | 
				
			||||||
 ANN_GEN := $(BUILD_AUX)/announce-gen
 | 
					 | 
				
			||||||
@@ -124,18 +132,29 @@
 | 
					 | 
				
			||||||
 	-rm -f config.{h,log}
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 install: $(ALL_TARGETS)
 | 
					 | 
				
			||||||
-	mkdir -p $(DESTDIR)/$(MOD_PATH)
 | 
					 | 
				
			||||||
-	$(CP) $(MOD) $(DESTDIR)/$(MOD_PATH)/
 | 
					 | 
				
			||||||
+	mkdir -p $(MOD_PATH)
 | 
					 | 
				
			||||||
+	$(CP) $(MOD) $(MOD_PATH)/
 | 
					 | 
				
			||||||
 	mkdir -p $(MOD_TARGET_PATH)/
 | 
					 | 
				
			||||||
 	$(CP) $(MOD_OBJ) $(MOD_TARGET_PATH)/
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+ifdef DESTDIR
 | 
					 | 
				
			||||||
 	$(CP) $(ARTANIS_ETC) $(DESTDIR)/etc/
 | 
					 | 
				
			||||||
 	$(CP) $(ARTANIS_PAGES) $(DESTDIR)/etc/artanis/
 | 
					 | 
				
			||||||
-	mkdir -p $(DESTDIR)/$(PREFIX)/bin/
 | 
					 | 
				
			||||||
-	$(CP) $(BIN)/art $(DESTDIR)/$(PREFIX)/bin/
 | 
					 | 
				
			||||||
+	mkdir -p $(DESTDIR)/bin/
 | 
					 | 
				
			||||||
+	$(CP) $(BIN)/art $(DESTDIR)/bin/
 | 
					 | 
				
			||||||
 	mkdir -p $(DESTDIR)/etc/bash_completion.d/
 | 
					 | 
				
			||||||
 	$(CP) $(CMDCOMP) $(DESTDIR)/etc/bash_completion.d/
 | 
					 | 
				
			||||||
+else
 | 
					 | 
				
			||||||
+	$(CP) $(ARTANIS_ETC) $(PREFIX)/etc/
 | 
					 | 
				
			||||||
+	$(CP) $(ARTANIS_PAGES) $(PREFIX)/etc/artanis/
 | 
					 | 
				
			||||||
+	mkdir -p $(PREFIX)/bin/
 | 
					 | 
				
			||||||
+	$(CP) $(BIN)/art $(PREFIX)/bin/
 | 
					 | 
				
			||||||
+	mkdir -p $(PREFIX)/etc/bash_completion.d/
 | 
					 | 
				
			||||||
+	$(CP) $(CMDCOMP) $(PREFIX)/etc/bash_completion.d/
 | 
					 | 
				
			||||||
+endif
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
 	if [ -e /etc/bash.bashrc ]; then source /etc/bash.bashrc; fi
 | 
					 | 
				
			||||||
-	if [ -e artanis.info ]; then mkdir -p $(DESTDIR)/$(INFO_DIR); $(CP) artanis.info $(DESTDIR)/$(INFO_DIR)/; fi
 | 
					 | 
				
			||||||
+	if [ -e artanis.info ]; then mkdir -p $(INFO_DIR); $(CP) artanis.info $(INFO_DIR)/; fi
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 distclean: distclean-mk clean clean-config clean-tarball
 | 
					 | 
				
			||||||
 	-rm -f $(BIN)/art
 | 
					 | 
				
			||||||
							
								
								
									
										51
									
								
								gnu/packages/patches/raptor2-heap-overflow.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								gnu/packages/patches/raptor2-heap-overflow.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,51 @@
 | 
				
			||||||
 | 
					This patch addresses two heap overflow bugs in raptor2:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					http://seclists.org/oss-sec/2017/q2/424
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Patch copied from libreoffice:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					https://github.com/LibreOffice/core/blob/master/external/redland/raptor/0001-Calcualte-max-nspace-declarations-correctly-for-XML-.patch.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					From 590681e546cd9aa18d57dc2ea1858cb734a3863f Mon Sep 17 00:00:00 2001
 | 
				
			||||||
 | 
					From: Dave Beckett <dave@dajobe.org>
 | 
				
			||||||
 | 
					Date: Sun, 16 Apr 2017 23:15:12 +0100
 | 
				
			||||||
 | 
					Subject: [PATCH] Calcualte max nspace declarations correctly for XML writer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(raptor_xml_writer_start_element_common): Calculate max including for
 | 
				
			||||||
 | 
					each attribute a potential name and value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Fixes Issues #0000617 http://bugs.librdf.org/mantis/view.php?id=617
 | 
				
			||||||
 | 
					and #0000618 http://bugs.librdf.org/mantis/view.php?id=618
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					 src/raptor_xml_writer.c | 7 ++++---
 | 
				
			||||||
 | 
					 1 file changed, 4 insertions(+), 3 deletions(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					diff --git a/src/raptor_xml_writer.c b/src/raptor_xml_writer.c
 | 
				
			||||||
 | 
					index 693b946..0d3a36a 100644
 | 
				
			||||||
 | 
					--- a/src/raptor_xml_writer.c
 | 
				
			||||||
 | 
					+++ b/src/raptor_xml_writer.c
 | 
				
			||||||
 | 
					@@ -181,9 +181,10 @@ raptor_xml_writer_start_element_common(raptor_xml_writer* xml_writer,
 | 
				
			||||||
 | 
					   size_t nspace_declarations_count = 0;  
 | 
				
			||||||
 | 
					   unsigned int i;
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-  /* max is 1 per element and 1 for each attribute + size of declared */
 | 
				
			||||||
 | 
					   if(nstack) {
 | 
				
			||||||
 | 
					-    int nspace_max_count = element->attribute_count+1;
 | 
				
			||||||
 | 
					+    int nspace_max_count = element->attribute_count * 2; /* attr and value */
 | 
				
			||||||
 | 
					+    if(element->name->nspace)
 | 
				
			||||||
 | 
					+      nspace_max_count++;
 | 
				
			||||||
 | 
					     if(element->declared_nspaces)
 | 
				
			||||||
 | 
					       nspace_max_count += raptor_sequence_size(element->declared_nspaces);
 | 
				
			||||||
 | 
					     if(element->xml_language)
 | 
				
			||||||
 | 
					@@ -237,7 +238,7 @@ raptor_xml_writer_start_element_common(raptor_xml_writer* xml_writer,
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					       }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-      /* Add the attribute + value */
 | 
				
			||||||
 | 
					+      /* Add the attribute's value */
 | 
				
			||||||
 | 
					       nspace_declarations[nspace_declarations_count].declaration=
 | 
				
			||||||
 | 
					         raptor_qname_format_as_xml(element->attributes[i],
 | 
				
			||||||
 | 
					                                    &nspace_declarations[nspace_declarations_count].length);
 | 
				
			||||||
 | 
					-- 
 | 
				
			||||||
 | 
					2.9.3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -53,7 +53,7 @@
 | 
				
			||||||
(define-public php
 | 
					(define-public php
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "php")
 | 
					    (name "php")
 | 
				
			||||||
    (version "7.1.5")
 | 
					    (version "7.1.6")
 | 
				
			||||||
    (home-page "https://secure.php.net/")
 | 
					    (home-page "https://secure.php.net/")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
| 
						 | 
					@ -61,7 +61,7 @@
 | 
				
			||||||
                                  name "-" version ".tar.xz"))
 | 
					                                  name "-" version ".tar.xz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1b7njiqgy66ga5c8wsm78mqqjr7lj3hlpwbbvksi2mn4jv1s6jfi"))
 | 
					                "0nr49gqhk4pv8kcdc60cl1mgwlinawpraq9ba15whzmb472lsn01"))
 | 
				
			||||||
              (modules '((guix build utils)))
 | 
					              (modules '((guix build utils)))
 | 
				
			||||||
              (snippet
 | 
					              (snippet
 | 
				
			||||||
               '(with-directory-excursion "ext"
 | 
					               '(with-directory-excursion "ext"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -533,26 +533,24 @@ John the Ripper).")
 | 
				
			||||||
(define-public python-paramiko
 | 
					(define-public python-paramiko
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-paramiko")
 | 
					    (name "python-paramiko")
 | 
				
			||||||
    (version "1.17.4")
 | 
					    (version "2.1.2")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (pypi-uri "paramiko" version))
 | 
					       (uri (pypi-uri "paramiko" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "1rs2qcmskcmq66q6g5al08wa41l9am0fad5r719m8wf91msyylqw"))))
 | 
					         "04734n0wy3hxk6rij4fr29in5jmr70nxpc7pqi2ksbjysfz4kbjz"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(;; FIXME: One test fails with "EOFError not raised by connect".
 | 
					     '(#:phases
 | 
				
			||||||
       #:tests? #f))
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
       ;; #:phases
 | 
					         (replace 'check
 | 
				
			||||||
       ;; (modify-phases %standard-phases
 | 
					           (lambda _
 | 
				
			||||||
       ;;   (replace 'check
 | 
					             (zero? (system* "python" "test.py")))))))
 | 
				
			||||||
       ;;     (lambda _
 | 
					 | 
				
			||||||
       ;;       (zero? (system* "python" "test.py")))))))
 | 
					 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("python-pycrypto" ,python-pycrypto)
 | 
					     `(("python-pyasn1" ,python-pyasn1)
 | 
				
			||||||
       ("python-ecdsa" ,python-ecdsa)))
 | 
					       ("python-cryptography" ,python-cryptography)))
 | 
				
			||||||
    (home-page "http://www.paramiko.org/")
 | 
					    (home-page "http://www.paramiko.org/")
 | 
				
			||||||
    (synopsis "SSHv2 protocol library")
 | 
					    (synopsis "SSHv2 protocol library")
 | 
				
			||||||
    (description "Paramiko is a python implementation of the SSHv2 protocol,
 | 
					    (description "Paramiko is a python implementation of the SSHv2 protocol,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -53,6 +53,8 @@
 | 
				
			||||||
             (method url-fetch)
 | 
					             (method url-fetch)
 | 
				
			||||||
             (uri (string-append "http://download.librdf.org/source/" name
 | 
					             (uri (string-append "http://download.librdf.org/source/" name
 | 
				
			||||||
                                 "-" version ".tar.gz"))
 | 
					                                 "-" version ".tar.gz"))
 | 
				
			||||||
 | 
					             (patches
 | 
				
			||||||
 | 
					              (search-patches "raptor2-heap-overflow.patch"))
 | 
				
			||||||
             (sha256
 | 
					             (sha256
 | 
				
			||||||
              (base32
 | 
					              (base32
 | 
				
			||||||
               "1vc02im4mpc28zxzgli68k6j0dakh0k3s389bm436yvqajxg19xd"))))
 | 
					               "1vc02im4mpc28zxzgli68k6j0dakh0k3s389bm436yvqajxg19xd"))))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -282,7 +282,7 @@ it a convenient format to store user input files.")
 | 
				
			||||||
(define-public capnproto
 | 
					(define-public capnproto
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "capnproto")
 | 
					    (name "capnproto")
 | 
				
			||||||
    (version "0.6.0")
 | 
					    (version "0.6.1")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append
 | 
					              (uri (string-append
 | 
				
			||||||
| 
						 | 
					@ -290,7 +290,7 @@ it a convenient format to store user input files.")
 | 
				
			||||||
                    version ".tar.gz"))
 | 
					                    version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0gpp1cxsb9nfd7qkjjykzknx03y0z0n4bq5q0fmxci7w38ci22g5"))))
 | 
					                "010s9yhq4531wvdfrdf2477zswhck6cjfby79w73rff3v06090l0"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:phases
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -503,11 +503,11 @@ Its features include:
 | 
				
			||||||
@end enumerate\n")
 | 
					@end enumerate\n")
 | 
				
			||||||
    (license bsd-2)))
 | 
					    (license bsd-2)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public s
 | 
					(define-public s-shell
 | 
				
			||||||
  (let ((commit "6604341edb3a775ff94415762af3ee9bd86bfb3c")
 | 
					  (let ((commit "6604341edb3a775ff94415762af3ee9bd86bfb3c")
 | 
				
			||||||
        (revision "1"))
 | 
					        (revision "1"))
 | 
				
			||||||
    (package
 | 
					    (package
 | 
				
			||||||
      (name "s")
 | 
					      (name "s-shell")
 | 
				
			||||||
      (version (string-append "0.0.0-" revision "." (string-take commit 7)))
 | 
					      (version (string-append "0.0.0-" revision "." (string-take commit 7)))
 | 
				
			||||||
      (source
 | 
					      (source
 | 
				
			||||||
       (origin
 | 
					       (origin
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5231,3 +5231,57 @@ devices that don't have Cairo's capabilities such as alpha support or
 | 
				
			||||||
anti-aliasing.  Backends are modular such that any subset of backends
 | 
					anti-aliasing.  Backends are modular such that any subset of backends
 | 
				
			||||||
is supported.")
 | 
					is supported.")
 | 
				
			||||||
    (license license:gpl2)))
 | 
					    (license license:gpl2)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public r-lubridate
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "r-lubridate")
 | 
				
			||||||
 | 
					    (version "1.6.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (cran-uri "lubridate" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "0ci6rwij9i1inn840m0mlh1nqgh6vm2lada9kdnjpcjp5kyfv1qs"))))
 | 
				
			||||||
 | 
					    (build-system r-build-system)
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("r-stringr" ,r-stringr)))
 | 
				
			||||||
 | 
					    (home-page
 | 
				
			||||||
 | 
					     "http://cran.r-project.org/web/packages/lubridate")
 | 
				
			||||||
 | 
					    (synopsis "Make dealing with dates a little easier")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "This package provides functions to work with date-times and time-spans:
 | 
				
			||||||
 | 
					fast and user friendly parsing of date-time data, extraction and updating of
 | 
				
			||||||
 | 
					components of a date-time (years, months, days, hours, minutes, and seconds),
 | 
				
			||||||
 | 
					algebraic manipulation on date-time and time-span objects.  The 'lubridate'
 | 
				
			||||||
 | 
					package has a consistent and memorable syntax that makes working with dates
 | 
				
			||||||
 | 
					easy and fun.")
 | 
				
			||||||
 | 
					    (license license:gpl2)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public r-fdrtool
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "r-fdrtool")
 | 
				
			||||||
 | 
					    (version "1.2.15")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (cran-uri "fdrtool" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "1h46frlk7d9f4qx0bg6p55nrm9wwwz2sv6d1nz7061wdfsm69yb5"))))
 | 
				
			||||||
 | 
					    (build-system r-build-system)
 | 
				
			||||||
 | 
					    (home-page "http://strimmerlab.org/software/fdrtool/")
 | 
				
			||||||
 | 
					    (synopsis "Estimation of false discovery rates and higher criticism")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "This package provides tools to estimate both tail area-based false
 | 
				
			||||||
 | 
					discovery rates (Fdr) as well as local false discovery rates (fdr) for a
 | 
				
			||||||
 | 
					variety of null models (p-values, z-scores, correlation coefficients,
 | 
				
			||||||
 | 
					t-scores).  The proportion of null values and the parameters of the null
 | 
				
			||||||
 | 
					distribution are adaptively estimated from the data.  In addition, the package
 | 
				
			||||||
 | 
					contains functions for non-parametric density estimation (Grenander
 | 
				
			||||||
 | 
					estimator), for monotone regression (isotonic regression and antitonic
 | 
				
			||||||
 | 
					regression with weights), for computing the greatest convex minorant (GCM) and
 | 
				
			||||||
 | 
					the least concave majorant (LCM), for the half-normal and correlation
 | 
				
			||||||
 | 
					distributions, and for computing empirical higher criticism (HC) scores and
 | 
				
			||||||
 | 
					the corresponding decision threshold.")
 | 
				
			||||||
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -103,23 +103,15 @@ in intelligent transportation networks.")
 | 
				
			||||||
(define-public p11-kit
 | 
					(define-public p11-kit
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "p11-kit")
 | 
					    (name "p11-kit")
 | 
				
			||||||
    (version "0.23.2")
 | 
					    (version "0.23.7")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
      (method url-fetch)
 | 
					      (method url-fetch)
 | 
				
			||||||
      (uri (string-append "https://p11-glue.freedesktop.org/releases/p11-kit-"
 | 
					      (uri (string-append "https://github.com/p11-glue/p11-kit/releases/"
 | 
				
			||||||
                          version ".tar.gz"))
 | 
					                          "download/" version "/p11-kit-" version ".tar.gz"))
 | 
				
			||||||
      (sha256
 | 
					      (sha256
 | 
				
			||||||
       (base32
 | 
					       (base32
 | 
				
			||||||
        "1w7szm190phlkg7qx05ychlj2dbvkgkhx9gw6dx4d5rw62l6wwms"))
 | 
					        "0hdy4h8byvcvd4av504xqfqyd1h6xy914j034mq3c6v4ya37r3lq"))))
 | 
				
			||||||
      (modules '((guix build utils))) ; for substitute*
 | 
					 | 
				
			||||||
      (snippet
 | 
					 | 
				
			||||||
        '(begin
 | 
					 | 
				
			||||||
           ;; Drop one test that fails, also when trying to compile manually.
 | 
					 | 
				
			||||||
           ;; Reported upstream at
 | 
					 | 
				
			||||||
           ;; https://bugs.freedesktop.org/show_bug.cgi?id=89027
 | 
					 | 
				
			||||||
           (substitute* "Makefile.in"
 | 
					 | 
				
			||||||
             (("test-module\\$\\(EXEEXT\\) ") ""))))))
 | 
					 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)))
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
| 
						 | 
					@ -478,25 +470,17 @@ security, and applying best practice development processes.")
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python-acme")
 | 
					    (name "python-acme")
 | 
				
			||||||
    ;; Remember to update the hash of certbot when updating python-acme.
 | 
					    ;; Remember to update the hash of certbot when updating python-acme.
 | 
				
			||||||
    (version "0.14.2")
 | 
					    (version "0.15.0")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (pypi-uri "acme" version))
 | 
					              (uri (pypi-uri "acme" version))
 | 
				
			||||||
      (sha256
 | 
					      (sha256
 | 
				
			||||||
       (base32
 | 
					       (base32
 | 
				
			||||||
        "1kbgpjabbly7r757vyr1050ixnm9hyvrbf9n6aq49cgmb147ysqn"))))
 | 
					        "11zwgj663vr575pbqw74ia10wxaw16i8rnkcivsrbsx148rxdbcz"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:phases
 | 
				
			||||||
       (modify-phases %standard-phases
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
         (add-after 'unpack 'patch-dependency
 | 
					 | 
				
			||||||
           ;; This module is part of the Python standard library, so we don't
 | 
					 | 
				
			||||||
           ;; need to use an external package.
 | 
					 | 
				
			||||||
           ;; https://github.com/certbot/certbot/pull/2249
 | 
					 | 
				
			||||||
           (lambda _
 | 
					 | 
				
			||||||
             (substitute* "setup.py"
 | 
					 | 
				
			||||||
               (("'argparse',") ""))
 | 
					 | 
				
			||||||
             #t))
 | 
					 | 
				
			||||||
         (add-after 'build 'build-documentation
 | 
					         (add-after 'build 'build-documentation
 | 
				
			||||||
           (lambda _
 | 
					           (lambda _
 | 
				
			||||||
             (zero? (system* "make" "-C" "docs" "man" "info"))))
 | 
					             (zero? (system* "make" "-C" "docs" "man" "info"))))
 | 
				
			||||||
| 
						 | 
					@ -543,7 +527,7 @@ security, and applying best practice development processes.")
 | 
				
			||||||
              (uri (pypi-uri name version))
 | 
					              (uri (pypi-uri name version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1b39hybswzm8mkarg1mwpx47wffqg57jcgi52mz5iz60rxym9j2v"))))
 | 
					                "1srvmjxz75dbafx7xfg1w3n9h3srr9p2ljnfsih9dwwd5cxh9i5q"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:python ,python-2
 | 
					     `(#:python ,python-2
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -461,14 +461,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
 | 
				
			||||||
(define-public ffmpeg
 | 
					(define-public ffmpeg
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "ffmpeg")
 | 
					    (name "ffmpeg")
 | 
				
			||||||
    (version "3.3.1")
 | 
					    (version "3.3.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
 | 
				
			||||||
               "0bwgm6z6k3khb91qh9xv15inykkfchpkm0lcdckkxhkacpyaf0mp"))))
 | 
					               "11974vcfsy8w0i6f4lfwqmg80xkfybqw7vw6zzrcn5i6ncddx60r"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("fontconfig" ,fontconfig)
 | 
					     `(("fontconfig" ,fontconfig)
 | 
				
			||||||
| 
						 | 
					@ -2176,7 +2176,7 @@ many codecs and formats supported by libmediainfo.")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append
 | 
					              (uri (string-append
 | 
				
			||||||
                    "http://www.live555.com/liveMedia/public/live."
 | 
					                    "https://download.videolan.org/contrib/live555/live."
 | 
				
			||||||
                    version ".tar.gz"))
 | 
					                    version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,7 @@
 | 
				
			||||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 | 
					;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 | 
				
			||||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 | 
					;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 | 
				
			||||||
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 | 
					;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 | 
				
			||||||
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
 | 
					;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
 | 
				
			||||||
;;; Copyright © 2016 Petter <petter@mykolab.ch>
 | 
					;;; Copyright © 2016 Petter <petter@mykolab.ch>
 | 
				
			||||||
;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
 | 
					;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
 | 
				
			||||||
;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
 | 
					;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
 | 
				
			||||||
| 
						 | 
					@ -47,6 +47,7 @@
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
  #:use-module (gnu packages documentation)
 | 
					  #:use-module (gnu packages documentation)
 | 
				
			||||||
  #:use-module (gnu packages algebra)
 | 
					  #:use-module (gnu packages algebra)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages autotools)
 | 
				
			||||||
  #:use-module (gnu packages compression)
 | 
					  #:use-module (gnu packages compression)
 | 
				
			||||||
  #:use-module (gnu packages image)
 | 
					  #:use-module (gnu packages image)
 | 
				
			||||||
  #:use-module (gnu packages pkg-config)
 | 
					  #:use-module (gnu packages pkg-config)
 | 
				
			||||||
| 
						 | 
					@ -117,22 +118,29 @@ program.")
 | 
				
			||||||
(define-public xclip
 | 
					(define-public xclip
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "xclip")
 | 
					    (name "xclip")
 | 
				
			||||||
    (version "0.12")
 | 
					    (version "0.13")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
      (origin
 | 
					      (origin
 | 
				
			||||||
        (method url-fetch)
 | 
					        (method url-fetch)
 | 
				
			||||||
        (uri (string-append
 | 
					        (uri (string-append "https://github.com/astrand/xclip"
 | 
				
			||||||
              "mirror://sourceforge/" name "/" name "/" version "/"
 | 
					                            "/archive/" version ".tar.gz"))
 | 
				
			||||||
              name "-" version ".tar.gz"))
 | 
					 | 
				
			||||||
        (sha256
 | 
					        (sha256
 | 
				
			||||||
          (base32
 | 
					          (base32
 | 
				
			||||||
           "0ibcf46rldnv0r424qcnai1fa5iq3lm5q5rdd7snsi5sb78gmixp"))))
 | 
					           "0n7pczk9vv30zf8qfln8ba3hnif9yfdxg0m84djac469wc28hnya"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:tests? #f))   ; There is no test suite
 | 
					     '(#:tests? #f     ; There is no test suite
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         ;; Since version 0.13, bootstrapped releases are no longer available.
 | 
				
			||||||
 | 
					         (add-after 'unpack 'bootstrap
 | 
				
			||||||
 | 
					           (lambda _ (zero? (system* "autoreconf" "-v")))))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("autoconf" ,autoconf)
 | 
				
			||||||
 | 
					       ("automake" ,automake)))
 | 
				
			||||||
    (inputs `(("libxmu" ,libxmu)
 | 
					    (inputs `(("libxmu" ,libxmu)
 | 
				
			||||||
              ("libxt" ,libxt)))
 | 
					              ("libxt" ,libxt)))
 | 
				
			||||||
    (home-page "http://xclip.sourceforge.net/")
 | 
					    (home-page "https://github.com/astrand/xclip")
 | 
				
			||||||
    (synopsis "Command line interface to X11 clipboard")
 | 
					    (synopsis "Command line interface to X11 clipboard")
 | 
				
			||||||
    (description "Xclip is a command line interface to the X11 clipboard.  It
 | 
					    (description "Xclip is a command line interface to the X11 clipboard.  It
 | 
				
			||||||
can also be used for copying files, as an alternative to sftp/scp, thus
 | 
					can also be used for copying files, as an alternative to sftp/scp, thus
 | 
				
			||||||
| 
						 | 
					@ -441,7 +449,7 @@ of the screen selected by mouse.")
 | 
				
			||||||
(define-public slop
 | 
					(define-public slop
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "slop")
 | 
					    (name "slop")
 | 
				
			||||||
    (version "6.3.41")
 | 
					    (version "6.3.43")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append
 | 
					              (uri (string-append
 | 
				
			||||||
| 
						 | 
					@ -450,7 +458,7 @@ of the screen selected by mouse.")
 | 
				
			||||||
              (file-name (string-append name "-" version ".tar.gz"))
 | 
					              (file-name (string-append name "-" version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1yiv0ak1z7zbmcdw0dwx2gpblrh7l7s3l7y7sgpx071dy8s4rqpb"))))
 | 
					                "0kazcnnarc61d3rjysaym9vadf31wisfd3sn076rsjnsldm4y66h"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:tests? #f)) ; no "check" target
 | 
					     '(#:tests? #f)) ; no "check" target
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2621,7 +2621,7 @@ as USB mice.")
 | 
				
			||||||
(define-public xf86-video-ati
 | 
					(define-public xf86-video-ati
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "xf86-video-ati")
 | 
					    (name "xf86-video-ati")
 | 
				
			||||||
    (version "7.8.0")
 | 
					    (version "7.9.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
      (origin
 | 
					      (origin
 | 
				
			||||||
        (method url-fetch)
 | 
					        (method url-fetch)
 | 
				
			||||||
| 
						 | 
					@ -2631,7 +2631,7 @@ as USB mice.")
 | 
				
			||||||
               ".tar.bz2"))
 | 
					               ".tar.bz2"))
 | 
				
			||||||
        (sha256
 | 
					        (sha256
 | 
				
			||||||
          (base32
 | 
					          (base32
 | 
				
			||||||
            "1ynnm4v4261xmg94b7jam9hjyym4n2nqba23rv23v3wjfbkms7s0"))))
 | 
					            "0xcq0lncb5p4sas5866qpkjyp1v8ksalw7m1gmqb3brhccp8gb9w"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (inputs `(("mesa" ,mesa)
 | 
					    (inputs `(("mesa" ,mesa)
 | 
				
			||||||
              ("xxf86driproto" ,xf86driproto)
 | 
					              ("xxf86driproto" ,xf86driproto)
 | 
				
			||||||
| 
						 | 
					@ -3019,7 +3019,7 @@ graphics cards.")
 | 
				
			||||||
(define-public xf86-video-openchrome
 | 
					(define-public xf86-video-openchrome
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "xf86-video-openchrome")
 | 
					    (name "xf86-video-openchrome")
 | 
				
			||||||
    (version "0.5.0")
 | 
					    (version "0.6.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
      (origin
 | 
					      (origin
 | 
				
			||||||
        (method url-fetch)
 | 
					        (method url-fetch)
 | 
				
			||||||
| 
						 | 
					@ -3029,7 +3029,7 @@ graphics cards.")
 | 
				
			||||||
               ".tar.bz2"))
 | 
					               ".tar.bz2"))
 | 
				
			||||||
        (sha256
 | 
					        (sha256
 | 
				
			||||||
         (base32
 | 
					         (base32
 | 
				
			||||||
          "1fsmr455lk89zl795d6b5ypyqjim40j3h2vjch52lcssjw9xdza9"))))
 | 
					          "0x9gq3hw6k661k82ikd1y2kkk4dmgv310xr5q59dwn4k6z37aafs"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (inputs `(("libx11" ,libx11)
 | 
					    (inputs `(("libx11" ,libx11)
 | 
				
			||||||
              ("libxext" ,libxext)
 | 
					              ("libxext" ,libxext)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -112,6 +112,7 @@
 | 
				
			||||||
            boot-parameters-initrd
 | 
					            boot-parameters-initrd
 | 
				
			||||||
            read-boot-parameters
 | 
					            read-boot-parameters
 | 
				
			||||||
            read-boot-parameters-file
 | 
					            read-boot-parameters-file
 | 
				
			||||||
 | 
					            menu-entry->boot-parameters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            local-host-aliases
 | 
					            local-host-aliases
 | 
				
			||||||
            %setuid-programs
 | 
					            %setuid-programs
 | 
				
			||||||
| 
						 | 
					@ -299,6 +300,19 @@ The object has its kernel-arguments extended in order to make it bootable."
 | 
				
			||||||
                                                     system
 | 
					                                                     system
 | 
				
			||||||
                                                     root-device)))
 | 
					                                                     root-device)))
 | 
				
			||||||
      #f)))
 | 
					      #f)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (menu-entry->boot-parameters menu-entry)
 | 
				
			||||||
 | 
					  "Convert a <menu-entry> instance to a corresponding <boot-parameters>."
 | 
				
			||||||
 | 
					  (boot-parameters
 | 
				
			||||||
 | 
					   (label (menu-entry-label menu-entry))
 | 
				
			||||||
 | 
					   (root-device #f)
 | 
				
			||||||
 | 
					   (boot-name 'custom)
 | 
				
			||||||
 | 
					   (store-device #f)
 | 
				
			||||||
 | 
					   (store-mount-point #f)
 | 
				
			||||||
 | 
					   (kernel (menu-entry-linux menu-entry))
 | 
				
			||||||
 | 
					   (kernel-arguments (menu-entry-linux-arguments menu-entry))
 | 
				
			||||||
 | 
					   (initrd (menu-entry-initrd menu-entry))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; Services.
 | 
					;;; Services.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +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 © 2016 Andreas Enge <andreas@enge.fr>
 | 
					;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
 | 
				
			||||||
 | 
					;;; Copyright © 2017 Mark H Weaver <mhw@netris.org>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -114,7 +115,16 @@
 | 
				
			||||||
                        ;; udev-populated /dev/disk/by-id directory but udev may
 | 
					                        ;; udev-populated /dev/disk/by-id directory but udev may
 | 
				
			||||||
                        ;; be unavailable at the time we run this.
 | 
					                        ;; be unavailable at the time we run this.
 | 
				
			||||||
                        (if (bytevector? source)
 | 
					                        (if (bytevector? source)
 | 
				
			||||||
                            (or (find-partition-by-luks-uuid source)
 | 
					                            (or (let loop ((tries-left 10))
 | 
				
			||||||
 | 
					                                  (and (positive? tries-left)
 | 
				
			||||||
 | 
					                                       (or (find-partition-by-luks-uuid source)
 | 
				
			||||||
 | 
					                                           ;; If the underlying partition is
 | 
				
			||||||
 | 
					                                           ;; not found, try again after
 | 
				
			||||||
 | 
					                                           ;; waiting a second, up to ten
 | 
				
			||||||
 | 
					                                           ;; times.  FIXME: This should be
 | 
				
			||||||
 | 
					                                           ;; dealt with in a more robust way.
 | 
				
			||||||
 | 
					                                           (begin (sleep 1)
 | 
				
			||||||
 | 
					                                                  (loop (- tries-left 1))))))
 | 
				
			||||||
                                (error "LUKS partition not found" source))
 | 
					                                (error "LUKS partition not found" source))
 | 
				
			||||||
                            source)
 | 
					                            source)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,6 +17,8 @@
 | 
				
			||||||
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 | 
					;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-module (guix build-system emacs)
 | 
					(define-module (guix build-system emacs)
 | 
				
			||||||
 | 
					  #:use-module ((guix build emacs-build-system)
 | 
				
			||||||
 | 
					                #:select (%default-include %default-exclude))
 | 
				
			||||||
  #:use-module (guix store)
 | 
					  #:use-module (guix store)
 | 
				
			||||||
  #:use-module (guix utils)
 | 
					  #:use-module (guix utils)
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
| 
						 | 
					@ -28,7 +30,10 @@
 | 
				
			||||||
  #:use-module (srfi srfi-26)
 | 
					  #:use-module (srfi srfi-26)
 | 
				
			||||||
  #:export (%emacs-build-system-modules
 | 
					  #:export (%emacs-build-system-modules
 | 
				
			||||||
            emacs-build
 | 
					            emacs-build
 | 
				
			||||||
            emacs-build-system))
 | 
					            emacs-build-system)
 | 
				
			||||||
 | 
					  #:re-export (%default-include         ;for convenience
 | 
				
			||||||
 | 
					               %default-exclude))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; Commentary:
 | 
					;; Commentary:
 | 
				
			||||||
;;
 | 
					;;
 | 
				
			||||||
| 
						 | 
					@ -83,8 +88,8 @@
 | 
				
			||||||
                      (phases '(@ (guix build emacs-build-system)
 | 
					                      (phases '(@ (guix build emacs-build-system)
 | 
				
			||||||
                                  %standard-phases))
 | 
					                                  %standard-phases))
 | 
				
			||||||
                      (outputs '("out"))
 | 
					                      (outputs '("out"))
 | 
				
			||||||
                      (include ''("^[^/]*\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$"))
 | 
					                      (include (quote %default-include))
 | 
				
			||||||
                      (exclude ''("^\\.dir-locals\\.el$" "-pkg\\.el$" "^[^/]*tests?\\.el$"))
 | 
					                      (exclude (quote %default-exclude))
 | 
				
			||||||
                      (search-paths '())
 | 
					                      (search-paths '())
 | 
				
			||||||
                      (system (%current-system))
 | 
					                      (system (%current-system))
 | 
				
			||||||
                      (guile #f)
 | 
					                      (guile #f)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,6 +29,8 @@
 | 
				
			||||||
  #:use-module (ice-9 regex)
 | 
					  #:use-module (ice-9 regex)
 | 
				
			||||||
  #:use-module (ice-9 match)
 | 
					  #:use-module (ice-9 match)
 | 
				
			||||||
  #:export (%standard-phases
 | 
					  #:export (%standard-phases
 | 
				
			||||||
 | 
					            %default-include
 | 
				
			||||||
 | 
					            %default-exclude
 | 
				
			||||||
            emacs-build))
 | 
					            emacs-build))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; Commentary:
 | 
					;; Commentary:
 | 
				
			||||||
| 
						 | 
					@ -42,6 +44,11 @@
 | 
				
			||||||
;; archive signature.
 | 
					;; archive signature.
 | 
				
			||||||
(define %install-suffix "/share/emacs/site-lisp/guix.d")
 | 
					(define %install-suffix "/share/emacs/site-lisp/guix.d")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; These are the default inclusion/exclusion regexps for the install phase.
 | 
				
			||||||
 | 
					(define %default-include '("^[^/]*\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$"))
 | 
				
			||||||
 | 
					(define %default-exclude '("^\\.dir-locals\\.el$" "-pkg\\.el$"
 | 
				
			||||||
 | 
					                           "^[^/]*tests?\\.el$"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define gnu:unpack (assoc-ref gnu:%standard-phases 'unpack))
 | 
					(define gnu:unpack (assoc-ref gnu:%standard-phases 'unpack))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (store-file->elisp-source-file file)
 | 
					(define (store-file->elisp-source-file file)
 | 
				
			||||||
| 
						 | 
					@ -96,8 +103,8 @@ store in '.el' files."
 | 
				
			||||||
    #t))
 | 
					    #t))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define* (install #:key outputs
 | 
					(define* (install #:key outputs
 | 
				
			||||||
                  (include '("^[^/]*\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$"))
 | 
					                  (include %default-include)
 | 
				
			||||||
                  (exclude '("^\\.dir-locals\\.el$" "-pkg\\.el$" "^[^/]*tests?\\.el$"))
 | 
					                  (exclude %default-exclude)
 | 
				
			||||||
                  #:allow-other-keys)
 | 
					                  #:allow-other-keys)
 | 
				
			||||||
  "Install the package contents."
 | 
					  "Install the package contents."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										123
									
								
								guix/git.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										123
									
								
								guix/git.scm
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,123 @@
 | 
				
			||||||
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
 | 
					;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; GNU Guix is free software; you can redistribute it and/or modify it
 | 
				
			||||||
 | 
					;;; under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					;;; the Free Software Foundation; either version 3 of the License, or (at
 | 
				
			||||||
 | 
					;;; your option) any later version.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; GNU Guix is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					;;; WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					;;; GNU General Public License for more details.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-module (guix git)
 | 
				
			||||||
 | 
					  #:use-module (git)
 | 
				
			||||||
 | 
					  #:use-module (git object)
 | 
				
			||||||
 | 
					  #:use-module (guix base32)
 | 
				
			||||||
 | 
					  #:use-module (guix hash)
 | 
				
			||||||
 | 
					  #:use-module (guix build utils)
 | 
				
			||||||
 | 
					  #:use-module (guix store)
 | 
				
			||||||
 | 
					  #:use-module (guix utils)
 | 
				
			||||||
 | 
					  #:use-module (rnrs bytevectors)
 | 
				
			||||||
 | 
					  #:use-module (ice-9 match)
 | 
				
			||||||
 | 
					  #:use-module (srfi srfi-1)
 | 
				
			||||||
 | 
					  #:export (%repository-cache-directory
 | 
				
			||||||
 | 
					            latest-repository-commit))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define %repository-cache-directory
 | 
				
			||||||
 | 
					  (make-parameter "/var/cache/guix/checkouts"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-syntax-rule (with-libgit2 thunk ...)
 | 
				
			||||||
 | 
					  (dynamic-wind
 | 
				
			||||||
 | 
					    (lambda ()
 | 
				
			||||||
 | 
					      (libgit2-init!))
 | 
				
			||||||
 | 
					    (lambda ()
 | 
				
			||||||
 | 
					      thunk ...)
 | 
				
			||||||
 | 
					    (lambda ()
 | 
				
			||||||
 | 
					      (libgit2-shutdown))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define* (url-cache-directory url
 | 
				
			||||||
 | 
					                              #:optional (cache-directory
 | 
				
			||||||
 | 
					                                          (%repository-cache-directory)))
 | 
				
			||||||
 | 
					  "Return the directory associated to URL in %repository-cache-directory."
 | 
				
			||||||
 | 
					  (string-append
 | 
				
			||||||
 | 
					   cache-directory "/"
 | 
				
			||||||
 | 
					   (bytevector->base32-string (sha256 (string->utf8 url)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (clone* url directory)
 | 
				
			||||||
 | 
					  "Clone git repository at URL into DIRECTORY.  Upon failure,
 | 
				
			||||||
 | 
					make sure no empty directory is left behind."
 | 
				
			||||||
 | 
					  (with-throw-handler #t
 | 
				
			||||||
 | 
					    (lambda ()
 | 
				
			||||||
 | 
					      (mkdir-p directory)
 | 
				
			||||||
 | 
					      (clone url directory))
 | 
				
			||||||
 | 
					    (lambda _
 | 
				
			||||||
 | 
					      (false-if-exception (rmdir directory)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (repository->head-sha1 repo)
 | 
				
			||||||
 | 
					  "Return the sha1 of the HEAD commit in REPOSITORY as a string."
 | 
				
			||||||
 | 
					  (let ((oid (reference-target (repository-head repo))))
 | 
				
			||||||
 | 
					    (oid->string (commit-id (commit-lookup repo oid)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (url+commit->name url sha1)
 | 
				
			||||||
 | 
					  "Return the string \"<REPO-NAME>-<SHA1:7>\" where REPO-NAME is the name of
 | 
				
			||||||
 | 
					the git repository, extracted from URL and SHA1:7 the seven first digits
 | 
				
			||||||
 | 
					of SHA1 string."
 | 
				
			||||||
 | 
					  (string-append
 | 
				
			||||||
 | 
					   (string-replace-substring
 | 
				
			||||||
 | 
					    (last (string-split url #\/)) ".git" "")
 | 
				
			||||||
 | 
					   "-" (string-take sha1 7)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define* (copy-to-store store cache-directory #:key url repository)
 | 
				
			||||||
 | 
					  "Copy items in cache-directory to store.  URL and REPOSITORY are used
 | 
				
			||||||
 | 
					to forge store directory name."
 | 
				
			||||||
 | 
					  (let* ((commit (repository->head-sha1 repository))
 | 
				
			||||||
 | 
					         (name   (url+commit->name url commit)))
 | 
				
			||||||
 | 
					    (values (add-to-store store name #t "sha256" cache-directory) commit)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (switch-to-ref repository ref)
 | 
				
			||||||
 | 
					  "Switch to REPOSITORY's branch, commit or tag specified by REF."
 | 
				
			||||||
 | 
					  (let* ((oid (match ref
 | 
				
			||||||
 | 
					                (('branch . branch)
 | 
				
			||||||
 | 
					                 (reference-target
 | 
				
			||||||
 | 
					                  (branch-lookup repository branch BRANCH-REMOTE)))
 | 
				
			||||||
 | 
					                (('commit . commit)
 | 
				
			||||||
 | 
					                 (string->oid commit))
 | 
				
			||||||
 | 
					                (('tag    . tag)
 | 
				
			||||||
 | 
					                 (reference-name->oid repository
 | 
				
			||||||
 | 
					                                      (string-append "refs/tags/" tag)))))
 | 
				
			||||||
 | 
					         (obj (object-lookup repository oid)))
 | 
				
			||||||
 | 
					    (reset repository obj RESET_HARD)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define* (latest-repository-commit store url
 | 
				
			||||||
 | 
					                                   #:key
 | 
				
			||||||
 | 
					                                   (cache-directory
 | 
				
			||||||
 | 
					                                    (%repository-cache-directory))
 | 
				
			||||||
 | 
					                                   (ref '(branch . "origin/master")))
 | 
				
			||||||
 | 
					  "Return two values: the content of the git repository at URL copied into a
 | 
				
			||||||
 | 
					store directory and the sha1 of the top level commit in this directory.  The
 | 
				
			||||||
 | 
					reference to be checkout, once the repository is fetched, is specified by REF.
 | 
				
			||||||
 | 
					REF is pair whose key is [branch | commit | tag] and value the associated
 | 
				
			||||||
 | 
					data, respectively [<branch name> | <sha1> | <tag name>].
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Git repositories are kept in the cache directory specified by
 | 
				
			||||||
 | 
					%repository-cache-directory parameter."
 | 
				
			||||||
 | 
					  (with-libgit2
 | 
				
			||||||
 | 
					   (let* ((cache-dir     (url-cache-directory url cache-directory))
 | 
				
			||||||
 | 
					          (cache-exists? (openable-repository? cache-dir))
 | 
				
			||||||
 | 
					          (repository    (if cache-exists?
 | 
				
			||||||
 | 
					                             (repository-open cache-dir)
 | 
				
			||||||
 | 
					                             (clone* url cache-dir))))
 | 
				
			||||||
 | 
					     ;; Only fetch remote if it has not been cloned just before.
 | 
				
			||||||
 | 
					     (when cache-exists?
 | 
				
			||||||
 | 
					       (remote-fetch (remote-lookup repository "origin")))
 | 
				
			||||||
 | 
					     (switch-to-ref repository ref)
 | 
				
			||||||
 | 
					     (copy-to-store store cache-dir
 | 
				
			||||||
 | 
					                    #:url url
 | 
				
			||||||
 | 
					                    #:repository repository))))
 | 
				
			||||||
		Reference in a new issue