Merge branch 'master' into core-updates
This commit is contained in:
		
						commit
						75710da667
					
				
					 131 changed files with 6648 additions and 1338 deletions
				
			
		
							
								
								
									
										3
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							| 
						 | 
					@ -120,8 +120,7 @@ GTAGS
 | 
				
			||||||
/emacs/Makefile
 | 
					/emacs/Makefile
 | 
				
			||||||
/emacs/guix-autoloads.el
 | 
					/emacs/guix-autoloads.el
 | 
				
			||||||
/emacs/guix-helper.scm
 | 
					/emacs/guix-helper.scm
 | 
				
			||||||
/emacs/guix-init.el
 | 
					/emacs/guix-config.el
 | 
				
			||||||
/emacs/guix-profiles.el
 | 
					 | 
				
			||||||
/doc/os-config-bare-bones.texi
 | 
					/doc/os-config-bare-bones.texi
 | 
				
			||||||
/doc/os-config-desktop.texi
 | 
					/doc/os-config-desktop.texi
 | 
				
			||||||
/doc/*.1
 | 
					/doc/*.1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -58,6 +58,7 @@ MODULES =					\
 | 
				
			||||||
  guix/build-system/perl.scm			\
 | 
					  guix/build-system/perl.scm			\
 | 
				
			||||||
  guix/build-system/python.scm			\
 | 
					  guix/build-system/python.scm			\
 | 
				
			||||||
  guix/build-system/waf.scm			\
 | 
					  guix/build-system/waf.scm			\
 | 
				
			||||||
 | 
					  guix/build-system/r.scm			\
 | 
				
			||||||
  guix/build-system/ruby.scm			\
 | 
					  guix/build-system/ruby.scm			\
 | 
				
			||||||
  guix/build-system/trivial.scm			\
 | 
					  guix/build-system/trivial.scm			\
 | 
				
			||||||
  guix/ftp-client.scm				\
 | 
					  guix/ftp-client.scm				\
 | 
				
			||||||
| 
						 | 
					@ -77,6 +78,7 @@ MODULES =					\
 | 
				
			||||||
  guix/build/gnu-dist.scm			\
 | 
					  guix/build/gnu-dist.scm			\
 | 
				
			||||||
  guix/build/perl-build-system.scm		\
 | 
					  guix/build/perl-build-system.scm		\
 | 
				
			||||||
  guix/build/python-build-system.scm		\
 | 
					  guix/build/python-build-system.scm		\
 | 
				
			||||||
 | 
					  guix/build/r-build-system.scm			\
 | 
				
			||||||
  guix/build/ruby-build-system.scm		\
 | 
					  guix/build/ruby-build-system.scm		\
 | 
				
			||||||
  guix/build/waf-build-system.scm		\
 | 
					  guix/build/waf-build-system.scm		\
 | 
				
			||||||
  guix/build/haskell-build-system.scm		\
 | 
					  guix/build/haskell-build-system.scm		\
 | 
				
			||||||
| 
						 | 
					@ -97,6 +99,7 @@ MODULES =					\
 | 
				
			||||||
  guix/import/gnu.scm				\
 | 
					  guix/import/gnu.scm				\
 | 
				
			||||||
  guix/import/snix.scm				\
 | 
					  guix/import/snix.scm				\
 | 
				
			||||||
  guix/import/cabal.scm				\
 | 
					  guix/import/cabal.scm				\
 | 
				
			||||||
 | 
					  guix/import/cran.scm				\
 | 
				
			||||||
  guix/import/hackage.scm			\
 | 
					  guix/import/hackage.scm			\
 | 
				
			||||||
  guix/import/elpa.scm   			\
 | 
					  guix/import/elpa.scm   			\
 | 
				
			||||||
  guix/scripts/download.scm			\
 | 
					  guix/scripts/download.scm			\
 | 
				
			||||||
| 
						 | 
					@ -112,6 +115,7 @@ MODULES =					\
 | 
				
			||||||
  guix/scripts/refresh.scm			\
 | 
					  guix/scripts/refresh.scm			\
 | 
				
			||||||
  guix/scripts/system.scm			\
 | 
					  guix/scripts/system.scm			\
 | 
				
			||||||
  guix/scripts/lint.scm				\
 | 
					  guix/scripts/lint.scm				\
 | 
				
			||||||
 | 
					  guix/scripts/import/cran.scm			\
 | 
				
			||||||
  guix/scripts/import/gnu.scm			\
 | 
					  guix/scripts/import/gnu.scm			\
 | 
				
			||||||
  guix/scripts/import/nix.scm			\
 | 
					  guix/scripts/import/nix.scm			\
 | 
				
			||||||
  guix/scripts/import/hackage.scm		\
 | 
					  guix/scripts/import/hackage.scm		\
 | 
				
			||||||
| 
						 | 
					@ -198,6 +202,7 @@ SCM_TESTS =					\
 | 
				
			||||||
  tests/packages.scm				\
 | 
					  tests/packages.scm				\
 | 
				
			||||||
  tests/snix.scm				\
 | 
					  tests/snix.scm				\
 | 
				
			||||||
  tests/hackage.scm				\
 | 
					  tests/hackage.scm				\
 | 
				
			||||||
 | 
					  tests/cran.scm				\
 | 
				
			||||||
  tests/elpa.scm				\
 | 
					  tests/elpa.scm				\
 | 
				
			||||||
  tests/store.scm				\
 | 
					  tests/store.scm				\
 | 
				
			||||||
  tests/monads.scm				\
 | 
					  tests/monads.scm				\
 | 
				
			||||||
| 
						 | 
					@ -226,7 +231,8 @@ MODULES +=					\
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SCM_TESTS += 					\
 | 
					SCM_TESTS += 					\
 | 
				
			||||||
  tests/pypi.scm				\
 | 
					  tests/pypi.scm				\
 | 
				
			||||||
  tests/cpan.scm
 | 
					  tests/cpan.scm				\
 | 
				
			||||||
 | 
					  tests/gem.scm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -205,8 +205,7 @@ AM_CONDITIONAL([HAVE_EMACS], [test "x$EMACS" != "xno"])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
emacsuidir="${guilemoduledir}/guix/emacs"
 | 
					emacsuidir="${guilemoduledir}/guix/emacs"
 | 
				
			||||||
AC_SUBST([emacsuidir])
 | 
					AC_SUBST([emacsuidir])
 | 
				
			||||||
AC_CONFIG_FILES([emacs/guix-init.el
 | 
					AC_CONFIG_FILES([emacs/guix-config.el
 | 
				
			||||||
                 emacs/guix-profiles.el
 | 
					 | 
				
			||||||
                 emacs/guix-helper.scm])
 | 
					                 emacs/guix-helper.scm])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
AC_OUTPUT
 | 
					AC_OUTPUT
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										104
									
								
								doc/emacs.texi
									
										
									
									
									
								
							
							
						
						
									
										104
									
								
								doc/emacs.texi
									
										
									
									
									
								
							| 
						 | 
					@ -1,29 +1,22 @@
 | 
				
			||||||
@node Emacs Interface
 | 
					@node Emacs Interface
 | 
				
			||||||
@section Emacs Interface
 | 
					@chapter Emacs Interface
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@cindex Emacs
 | 
					@cindex Emacs
 | 
				
			||||||
GNU Guix comes with a visual user interface for GNU@tie{}Emacs, known
 | 
					GNU Guix comes with several useful modules (known as ``guix.el'') for
 | 
				
			||||||
as ``guix.el''.  It can be used for routine package management tasks,
 | 
					GNU@tie{}Emacs which are intended to make an Emacs user interaction with
 | 
				
			||||||
pretty much like the @command{guix package} command (@pxref{Invoking
 | 
					Guix convenient and fun.
 | 
				
			||||||
guix package}).  Specifically, ``guix.el'' makes it easy to:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@itemize
 | 
					 | 
				
			||||||
@item browse and display packages and generations;
 | 
					 | 
				
			||||||
@item search, install, upgrade and remove packages;
 | 
					 | 
				
			||||||
@item display packages from previous generations;
 | 
					 | 
				
			||||||
@item do some other useful things.
 | 
					 | 
				
			||||||
@end itemize
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@menu
 | 
					@menu
 | 
				
			||||||
* Initial Setup: Emacs Initial Setup.	Preparing @file{~/.emacs}.
 | 
					* Initial Setup: Emacs Initial Setup.	Preparing @file{~/.emacs}.
 | 
				
			||||||
* Usage: Emacs Usage.			Using the interface.
 | 
					* Package Management: Emacs Package Management.	Managing packages and generations.
 | 
				
			||||||
* Configuration: Emacs Configuration.	Configuring the interface.
 | 
					* Popup Interface: Emacs Popup Interface.	Magit-like interface for guix commands.
 | 
				
			||||||
* Prettify Mode: Emacs Prettify.	Abbreviating @file{/gnu/store/@dots{}} file names.
 | 
					* Prettify Mode: Emacs Prettify.	Abbreviating @file{/gnu/store/@dots{}} file names.
 | 
				
			||||||
* Completions: Emacs Completions.       Completing @command{guix} shell command.
 | 
					* Completions: Emacs Completions.       Completing @command{guix} shell command.
 | 
				
			||||||
@end menu
 | 
					@end menu
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@node Emacs Initial Setup
 | 
					@node Emacs Initial Setup
 | 
				
			||||||
@subsection Initial Setup
 | 
					@section Initial Setup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
On the Guix System Distribution (@pxref{GNU Distribution}), ``guix.el''
 | 
					On the Guix System Distribution (@pxref{GNU Distribution}), ``guix.el''
 | 
				
			||||||
is ready to use, provided Guix is installed system-wide, which is the
 | 
					is ready to use, provided Guix is installed system-wide, which is the
 | 
				
			||||||
| 
						 | 
					@ -43,6 +36,12 @@ later;
 | 
				
			||||||
@uref{http://nongnu.org/geiser/, Geiser}, version 0.3 or later: it is
 | 
					@uref{http://nongnu.org/geiser/, Geiser}, version 0.3 or later: it is
 | 
				
			||||||
used for interacting with the Guile process.
 | 
					used for interacting with the Guile process.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item
 | 
				
			||||||
 | 
					@uref{https://github.com/magit/magit/, magit-popup library}.  You
 | 
				
			||||||
 | 
					already have this library if you use Magit 2.1.0 or later.  This library
 | 
				
			||||||
 | 
					is an optional dependency---it is required only for @kbd{M-x@tie{}guix}
 | 
				
			||||||
 | 
					command (@pxref{Emacs Popup Interface}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@end itemize
 | 
					@end itemize
 | 
				
			||||||
 | 
					
 | 
				
			||||||
When it is done ``guix.el'' may be configured by requiring a special
 | 
					When it is done ``guix.el'' may be configured by requiring a special
 | 
				
			||||||
| 
						 | 
					@ -105,22 +104,32 @@ emacs, The GNU Emacs Manual}).
 | 
				
			||||||
You can activate Emacs packages installed in your profile whenever you
 | 
					You can activate Emacs packages installed in your profile whenever you
 | 
				
			||||||
want using @kbd{M-x@tie{}guix-emacs-load-autoloads}.
 | 
					want using @kbd{M-x@tie{}guix-emacs-load-autoloads}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@node Emacs Usage
 | 
					
 | 
				
			||||||
@subsection Usage
 | 
					@node Emacs Package Management
 | 
				
			||||||
 | 
					@section Package Management
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Once ``guix.el'' has been successfully configured, you should be able to
 | 
					Once ``guix.el'' has been successfully configured, you should be able to
 | 
				
			||||||
use commands for displaying packages and generations.  This information
 | 
					use a visual interface for routine package management tasks, pretty much
 | 
				
			||||||
can be displayed in a ``list'' or ``info'' buffer.
 | 
					like the @command{guix package} command (@pxref{Invoking guix package}).
 | 
				
			||||||
 | 
					Specifically, it makes it easy to:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@itemize
 | 
				
			||||||
 | 
					@item browse and display packages and generations;
 | 
				
			||||||
 | 
					@item search, install, upgrade and remove packages;
 | 
				
			||||||
 | 
					@item display packages from previous generations;
 | 
				
			||||||
 | 
					@item do some other useful things.
 | 
				
			||||||
 | 
					@end itemize
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@menu
 | 
					@menu
 | 
				
			||||||
* Commands: Emacs Commands.			@kbd{M-x guix-@dots{}}
 | 
					* Commands: Emacs Commands.			@kbd{M-x guix-@dots{}}
 | 
				
			||||||
* General information: Emacs General info.	Common for both interfaces.
 | 
					* General information: Emacs General info.	Common for both interfaces.
 | 
				
			||||||
* ``List'' buffer: Emacs List buffer.		List-like interface.
 | 
					* ``List'' buffer: Emacs List buffer.		List-like interface.
 | 
				
			||||||
* ``Info'' buffer: Emacs Info buffer.		Help-like interface.
 | 
					* ``Info'' buffer: Emacs Info buffer.		Help-like interface.
 | 
				
			||||||
 | 
					* Configuration: Emacs Configuration.		Configuring the interface.
 | 
				
			||||||
@end menu
 | 
					@end menu
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@node Emacs Commands
 | 
					@node Emacs Commands
 | 
				
			||||||
@subsubsection Commands
 | 
					@subsection Commands
 | 
				
			||||||
 | 
					
 | 
				
			||||||
All commands for displaying packages and generations use the current
 | 
					All commands for displaying packages and generations use the current
 | 
				
			||||||
profile, which can be changed with
 | 
					profile, which can be changed with
 | 
				
			||||||
| 
						 | 
					@ -191,7 +200,7 @@ Once @command{guix pull} has succeeded, the Guix REPL is restared.  This
 | 
				
			||||||
allows you to keep using the Emacs interface with the updated Guix.
 | 
					allows you to keep using the Emacs interface with the updated Guix.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@node Emacs General info
 | 
					@node Emacs General info
 | 
				
			||||||
@subsubsection General information
 | 
					@subsection General information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The following keys are available for both ``list'' and ``info'' types of
 | 
					The following keys are available for both ``list'' and ``info'' types of
 | 
				
			||||||
buffers:
 | 
					buffers:
 | 
				
			||||||
| 
						 | 
					@ -235,7 +244,7 @@ was restarted, you may want to revert ``list'' buffer (by pressing
 | 
				
			||||||
@kbd{g}).
 | 
					@kbd{g}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@node Emacs List buffer
 | 
					@node Emacs List buffer
 | 
				
			||||||
@subsubsection ``List'' buffer
 | 
					@subsection ``List'' buffer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
An interface of a ``list'' buffer is similar to the interface provided
 | 
					An interface of a ``list'' buffer is similar to the interface provided
 | 
				
			||||||
by ``package.el'' (@pxref{Package Menu,,, emacs, The GNU Emacs Manual}).
 | 
					by ``package.el'' (@pxref{Package Menu,,, emacs, The GNU Emacs Manual}).
 | 
				
			||||||
| 
						 | 
					@ -310,7 +319,7 @@ with another marked generation.
 | 
				
			||||||
@end table
 | 
					@end table
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@node Emacs Info buffer
 | 
					@node Emacs Info buffer
 | 
				
			||||||
@subsubsection ``Info'' buffer
 | 
					@subsection ``Info'' buffer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The interface of an ``info'' buffer is similar to the interface of
 | 
					The interface of an ``info'' buffer is similar to the interface of
 | 
				
			||||||
@code{help-mode} (@pxref{Help Mode,,, emacs, The GNU Emacs Manual}).
 | 
					@code{help-mode} (@pxref{Help Mode,,, emacs, The GNU Emacs Manual}).
 | 
				
			||||||
| 
						 | 
					@ -484,12 +493,49 @@ Various settings for ``info'' buffers.
 | 
				
			||||||
@end table
 | 
					@end table
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@node Emacs Prettify
 | 
					@node Emacs Popup Interface
 | 
				
			||||||
@subsection Guix Prettify Mode
 | 
					@section Popup Interface
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Along with ``guix.el'', GNU@tie{}Guix comes with ``guix-prettify.el''.
 | 
					If you ever used Magit, you know what ``popup interface'' is
 | 
				
			||||||
It provides a minor mode for abbreviating store file names by replacing
 | 
					(@pxref{Top,,, magit-popup, Magit-Popup User Manual}).  Even if you are
 | 
				
			||||||
hash sequences of symbols with ``@dots{}'':
 | 
					not acquainted with Magit, there should be no worries as it is very
 | 
				
			||||||
 | 
					intuitive.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					So @kbd{M-x@tie{}guix} command provides a top-level popup interface for
 | 
				
			||||||
 | 
					all available guix commands.  When you select an option, you'll be
 | 
				
			||||||
 | 
					prompted for a value in the minibuffer.  Many values have completions,
 | 
				
			||||||
 | 
					so don't hesitate to press @key{TAB} key.  Multiple values (for example,
 | 
				
			||||||
 | 
					packages or lint checkers) should be separated by commas.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					After specifying all options and switches for a command, you may choose
 | 
				
			||||||
 | 
					one of the available actions.  The following default actions are
 | 
				
			||||||
 | 
					available for all commands:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@itemize
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item
 | 
				
			||||||
 | 
					Run the command in the Guix REPL.  It is faster than running
 | 
				
			||||||
 | 
					@code{guix@tie{}@dots{}} command directly in shell, as there is no
 | 
				
			||||||
 | 
					need to run another guile process and to load required modules there.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item
 | 
				
			||||||
 | 
					Run the command in a shell buffer.  You can set
 | 
				
			||||||
 | 
					@code{guix-run-in-shell-function} variable to fine tune the shell buffer
 | 
				
			||||||
 | 
					you want to use.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item
 | 
				
			||||||
 | 
					Add the command line to the kill ring (@pxref{Kill Ring,,, emacs, The
 | 
				
			||||||
 | 
					GNU Emacs Manual}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@end itemize
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@node Emacs Prettify
 | 
				
			||||||
 | 
					@section Guix Prettify Mode
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GNU@tie{}Guix also comes with ``guix-prettify.el''.  It provides a minor
 | 
				
			||||||
 | 
					mode for abbreviating store file names by replacing hash sequences of
 | 
				
			||||||
 | 
					symbols with ``@dots{}'':
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@example
 | 
					@example
 | 
				
			||||||
/gnu/store/72f54nfp6g1hz873w8z3gfcah0h4nl9p-foo-0.1
 | 
					/gnu/store/72f54nfp6g1hz873w8z3gfcah0h4nl9p-foo-0.1
 | 
				
			||||||
| 
						 | 
					@ -526,7 +572,7 @@ mode hooks (@pxref{Hooks,,, emacs, The GNU Emacs Manual}), for example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@node Emacs Completions
 | 
					@node Emacs Completions
 | 
				
			||||||
@subsection Shell Completions
 | 
					@section Shell Completions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Another feature that becomes available after configuring Emacs interface
 | 
					Another feature that becomes available after configuring Emacs interface
 | 
				
			||||||
(@pxref{Emacs Initial Setup}) is completing of @command{guix}
 | 
					(@pxref{Emacs Initial Setup}) is completing of @command{guix}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										166
									
								
								doc/guix.texi
									
										
									
									
									
								
							
							
						
						
									
										166
									
								
								doc/guix.texi
									
										
									
									
									
								
							| 
						 | 
					@ -70,6 +70,7 @@ package management tool written for the GNU system.
 | 
				
			||||||
* Introduction::                What is Guix about?
 | 
					* Introduction::                What is Guix about?
 | 
				
			||||||
* Installation::                Installing Guix.
 | 
					* Installation::                Installing Guix.
 | 
				
			||||||
* Package Management::          Package installation, upgrade, etc.
 | 
					* Package Management::          Package installation, upgrade, etc.
 | 
				
			||||||
 | 
					* Emacs Interface::             Using Guix from Emacs.
 | 
				
			||||||
* Programming Interface::       Using Guix in Scheme.
 | 
					* Programming Interface::       Using Guix in Scheme.
 | 
				
			||||||
* Utilities::                   Package management commands.
 | 
					* Utilities::                   Package management commands.
 | 
				
			||||||
* GNU Distribution::            Software for your friendly GNU system.
 | 
					* GNU Distribution::            Software for your friendly GNU system.
 | 
				
			||||||
| 
						 | 
					@ -101,13 +102,20 @@ Package Management
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Features::                    How Guix will make your life brighter.
 | 
					* Features::                    How Guix will make your life brighter.
 | 
				
			||||||
* Invoking guix package::       Package installation, removal, etc.
 | 
					* Invoking guix package::       Package installation, removal, etc.
 | 
				
			||||||
* Emacs Interface::             Package management from Emacs.
 | 
					 | 
				
			||||||
* Substitutes::                 Downloading pre-built binaries.
 | 
					* Substitutes::                 Downloading pre-built binaries.
 | 
				
			||||||
* Packages with Multiple Outputs::  Single source package, multiple outputs.
 | 
					* Packages with Multiple Outputs::  Single source package, multiple outputs.
 | 
				
			||||||
* Invoking guix gc::            Running the garbage collector.
 | 
					* Invoking guix gc::            Running the garbage collector.
 | 
				
			||||||
* Invoking guix pull::          Fetching the latest Guix and distribution.
 | 
					* Invoking guix pull::          Fetching the latest Guix and distribution.
 | 
				
			||||||
* Invoking guix archive::       Exporting and importing store files.
 | 
					* Invoking guix archive::       Exporting and importing store files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Emacs Interface
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Initial Setup: Emacs Initial Setup.	Preparing @file{~/.emacs}.
 | 
				
			||||||
 | 
					* Package Management: Emacs Package Management.	Managing packages and generations.
 | 
				
			||||||
 | 
					* Popup Interface: Emacs Popup Interface.	Magit-like interface for guix commands.
 | 
				
			||||||
 | 
					* Prettify Mode: Emacs Prettify.	Abbreviating @file{/gnu/store/@dots{}} file names.
 | 
				
			||||||
 | 
					* Completions: Emacs Completions.       Completing @command{guix} shell command.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Programming Interface
 | 
					Programming Interface
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Defining Packages::           Defining new packages.
 | 
					* Defining Packages::           Defining new packages.
 | 
				
			||||||
| 
						 | 
					@ -964,14 +972,13 @@ features.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This chapter describes the main features of Guix, as well as the package
 | 
					This chapter describes the main features of Guix, as well as the package
 | 
				
			||||||
management tools it provides.  Two user interfaces are provided for
 | 
					management tools it provides.  Two user interfaces are provided for
 | 
				
			||||||
routine package management tasks: a command-line interface
 | 
					routine package management tasks: A command-line interface described below
 | 
				
			||||||
(@pxref{Invoking guix package, @code{guix package}}), and a visual user
 | 
					(@pxref{Invoking guix package, @code{guix package}}), as well as a visual user
 | 
				
			||||||
interface in Emacs (@pxref{Emacs Interface}).
 | 
					interface in Emacs described in a subsequent chapter (@pxref{Emacs Interface}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@menu
 | 
					@menu
 | 
				
			||||||
* Features::                    How Guix will make your life brighter.
 | 
					* Features::                    How Guix will make your life brighter.
 | 
				
			||||||
* Invoking guix package::       Package installation, removal, etc.
 | 
					* Invoking guix package::       Package installation, removal, etc.
 | 
				
			||||||
* Emacs Interface::             Package management from Emacs.
 | 
					 | 
				
			||||||
* Substitutes::                 Downloading pre-built binaries.
 | 
					* Substitutes::                 Downloading pre-built binaries.
 | 
				
			||||||
* Packages with Multiple Outputs::  Single source package, multiple outputs.
 | 
					* Packages with Multiple Outputs::  Single source package, multiple outputs.
 | 
				
			||||||
* Invoking guix gc::            Running the garbage collector.
 | 
					* Invoking guix gc::            Running the garbage collector.
 | 
				
			||||||
| 
						 | 
					@ -1455,8 +1462,6 @@ Finally, since @command{guix package} may actually start build
 | 
				
			||||||
processes, it supports all the common build options that @command{guix
 | 
					processes, it supports all the common build options that @command{guix
 | 
				
			||||||
build} supports (@pxref{Invoking guix build, common build options}).
 | 
					build} supports (@pxref{Invoking guix build, common build options}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@include emacs.texi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@node Substitutes
 | 
					@node Substitutes
 | 
				
			||||||
@section Substitutes
 | 
					@section Substitutes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1898,6 +1903,8 @@ automatically builds them.  The build process may be controlled with the
 | 
				
			||||||
same options that can be passed to the @command{guix build} command
 | 
					same options that can be passed to the @command{guix build} command
 | 
				
			||||||
(@pxref{Invoking guix build, common build options}).
 | 
					(@pxref{Invoking guix build, common build options}).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@c *********************************************************************
 | 
				
			||||||
 | 
					@include emacs.texi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@c *********************************************************************
 | 
					@c *********************************************************************
 | 
				
			||||||
@node Programming Interface
 | 
					@node Programming Interface
 | 
				
			||||||
| 
						 | 
					@ -2484,6 +2491,16 @@ passes flags specified by the @code{#:make-maker-flags} or
 | 
				
			||||||
Which Perl package is used can be specified with @code{#:perl}.
 | 
					Which Perl package is used can be specified with @code{#:perl}.
 | 
				
			||||||
@end defvr
 | 
					@end defvr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@defvr {Scheme Variable} r-build-system
 | 
				
			||||||
 | 
					This variable is exported by @code{(guix build-system r)}.  It
 | 
				
			||||||
 | 
					implements the build procedure used by @uref{http://r-project.org, R}
 | 
				
			||||||
 | 
					packages, which essentially is little more than running @code{R CMD
 | 
				
			||||||
 | 
					INSTALL --library=/gnu/store/@dots{}} in an environment where
 | 
				
			||||||
 | 
					@code{R_LIBS_SITE} contains the paths to all R package inputs.  Tests
 | 
				
			||||||
 | 
					are run after installation using the R function
 | 
				
			||||||
 | 
					@code{tools::testInstalledPackage}.
 | 
				
			||||||
 | 
					@end defvr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@defvr {Scheme Variable} ruby-build-system
 | 
					@defvr {Scheme Variable} ruby-build-system
 | 
				
			||||||
This variable is exported by @code{(guix build-system ruby)}.  It
 | 
					This variable is exported by @code{(guix build-system ruby)}.  It
 | 
				
			||||||
implements the RubyGems build procedure used by Ruby packages, which
 | 
					implements the RubyGems build procedure used by Ruby packages, which
 | 
				
			||||||
| 
						 | 
					@ -3612,7 +3629,7 @@ Make @var{file} a symlink to the result, and register it as a garbage
 | 
				
			||||||
collector root.
 | 
					collector root.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item --log-file
 | 
					@item --log-file
 | 
				
			||||||
Return the build log file names for the given
 | 
					Return the build log file names or URLs for the given
 | 
				
			||||||
@var{package-or-derivation}s, or raise an error if build logs are
 | 
					@var{package-or-derivation}s, or raise an error if build logs are
 | 
				
			||||||
missing.
 | 
					missing.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3626,7 +3643,19 @@ guix build --log-file guile
 | 
				
			||||||
guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'
 | 
					guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'
 | 
				
			||||||
@end example
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If a log is unavailable locally, and unless @code{--no-substitutes} is
 | 
				
			||||||
 | 
					passed, the command looks for a corresponding log on one of the
 | 
				
			||||||
 | 
					substitute servers (as specified with @code{--substitute-urls}.)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					So for instance, let's say you want to see the build log of GDB on MIPS
 | 
				
			||||||
 | 
					but you're actually on an @code{x86_64} machine:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@example
 | 
				
			||||||
 | 
					$ guix build --log-file gdb -s mips64el-linux 
 | 
				
			||||||
 | 
					http://hydra.gnu.org/log/@dots{}-gdb-7.10
 | 
				
			||||||
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can freely access a huge library of build logs!
 | 
				
			||||||
@end table
 | 
					@end table
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@cindex common build options
 | 
					@cindex common build options
 | 
				
			||||||
| 
						 | 
					@ -3932,6 +3961,21 @@ Perl module:
 | 
				
			||||||
guix import cpan Acme::Boolean
 | 
					guix import cpan Acme::Boolean
 | 
				
			||||||
@end example
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item cran
 | 
				
			||||||
 | 
					@cindex CRAN
 | 
				
			||||||
 | 
					Import meta-data from @uref{http://cran.r-project.org/, CRAN}, the
 | 
				
			||||||
 | 
					central repository for the @uref{http://r-project.org, GNU@tie{}R
 | 
				
			||||||
 | 
					statistical and graphical environment}.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Information is extracted from the HTML package description.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The command command below imports meta-data for the @code{Cairo}
 | 
				
			||||||
 | 
					R package:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@example
 | 
				
			||||||
 | 
					guix import cran Cairo
 | 
				
			||||||
 | 
					@end example
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item nix
 | 
					@item nix
 | 
				
			||||||
Import meta-data from a local copy of the source of the
 | 
					Import meta-data from a local copy of the source of the
 | 
				
			||||||
@uref{http://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This
 | 
					@uref{http://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This
 | 
				
			||||||
| 
						 | 
					@ -4385,6 +4429,16 @@ the values listed above.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@item --list-types
 | 
					@item --list-types
 | 
				
			||||||
List the supported graph types.
 | 
					List the supported graph types.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@item --expression=@var{expr}
 | 
				
			||||||
 | 
					@itemx -e @var{expr}
 | 
				
			||||||
 | 
					Consider the package @var{expr} evaluates to.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This is useful to precisely refer to a package, as in this example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@example
 | 
				
			||||||
 | 
					guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'
 | 
				
			||||||
 | 
					@end example
 | 
				
			||||||
@end table
 | 
					@end table
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5477,7 +5531,7 @@ special-case and is automatically added whether or not it is specified.
 | 
				
			||||||
A @dfn{locale} defines cultural conventions for a particular language
 | 
					A @dfn{locale} defines cultural conventions for a particular language
 | 
				
			||||||
and region of the world (@pxref{Locales,,, libc, The GNU C Library
 | 
					and region of the world (@pxref{Locales,,, libc, The GNU C Library
 | 
				
			||||||
Reference Manual}).  Each locale has a name that typically has the form
 | 
					Reference Manual}).  Each locale has a name that typically has the form
 | 
				
			||||||
@code{@var{language}_@var{territory}.@var{charset}}---e.g.,
 | 
					@code{@var{language}_@var{territory}.@var{codeset}}---e.g.,
 | 
				
			||||||
@code{fr_LU.utf8} designates the locale for the French language, with
 | 
					@code{fr_LU.utf8} designates the locale for the French language, with
 | 
				
			||||||
cultural conventions from Luxembourg, and using the UTF-8 encoding.
 | 
					cultural conventions from Luxembourg, and using the UTF-8 encoding.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5538,9 +5592,17 @@ IANA}.
 | 
				
			||||||
@end deftp
 | 
					@end deftp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@defvr {Scheme Variable} %default-locale-definitions
 | 
					@defvr {Scheme Variable} %default-locale-definitions
 | 
				
			||||||
An arbitrary list of commonly used locales, used as the default value of
 | 
					An arbitrary list of commonly used UTF-8 locales, used as the default
 | 
				
			||||||
the @code{locale-definitions} field of @code{operating-system}
 | 
					value of the @code{locale-definitions} field of @code{operating-system}
 | 
				
			||||||
declarations.
 | 
					declarations.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@cindex locale name
 | 
				
			||||||
 | 
					@cindex normalized codeset in locale names
 | 
				
			||||||
 | 
					These locale definitions use the @dfn{normalized codeset} for the part
 | 
				
			||||||
 | 
					that follows the dot in the name (@pxref{Using gettextized software,
 | 
				
			||||||
 | 
					normalized codeset,, libc, The GNU C Library Reference Manual}).  So for
 | 
				
			||||||
 | 
					instance it has @code{uk_UA.utf8} but @emph{not}, say,
 | 
				
			||||||
 | 
					@code{uk_UA.UTF-8}.
 | 
				
			||||||
@end defvr
 | 
					@end defvr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@node Services
 | 
					@node Services
 | 
				
			||||||
| 
						 | 
					@ -6009,6 +6071,7 @@ adds or adjust services for a typical ``desktop'' setup.
 | 
				
			||||||
In particular, it adds a graphical login manager (@pxref{X Window,
 | 
					In particular, it adds a graphical login manager (@pxref{X Window,
 | 
				
			||||||
@code{slim-service}}), a network management tool (@pxref{Networking
 | 
					@code{slim-service}}), a network management tool (@pxref{Networking
 | 
				
			||||||
Services, @code{wicd-service}}), energy and color management services,
 | 
					Services, @code{wicd-service}}), energy and color management services,
 | 
				
			||||||
 | 
					the @code{elogind} login and seat manager, the Polkit privilege service,
 | 
				
			||||||
the GeoClue location service, an NTP client (@pxref{Networking
 | 
					the GeoClue location service, an NTP client (@pxref{Networking
 | 
				
			||||||
Services}), the Avahi daemon, and has the name service switch service
 | 
					Services}), the Avahi daemon, and has the name service switch service
 | 
				
			||||||
configured to be able to use @code{nss-mdns} (@pxref{Name Service
 | 
					configured to be able to use @code{nss-mdns} (@pxref{Name Service
 | 
				
			||||||
| 
						 | 
					@ -6037,6 +6100,87 @@ and policy files.  For example, to allow avahi-daemon to use the system bus,
 | 
				
			||||||
@var{services} must be equal to @code{(list avahi)}.
 | 
					@var{services} must be equal to @code{(list avahi)}.
 | 
				
			||||||
@end deffn
 | 
					@end deffn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@deffn {Monadic Procedure} elogind-service @
 | 
				
			||||||
 | 
					                         [#:elogind @var{elogind}] [#:config @var{config}]
 | 
				
			||||||
 | 
					Return a service that runs the @code{elogind} login and
 | 
				
			||||||
 | 
					seat management daemon.  @uref{https://github.com/andywingo/elogind,
 | 
				
			||||||
 | 
					Elogind} exposes a D-Bus interface that can be used to know which users
 | 
				
			||||||
 | 
					are logged in, know what kind of sessions they have open, suspend the
 | 
				
			||||||
 | 
					system, inhibit system suspend, reboot the system, and other tasks.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Elogind handles most system-level power events for a computer, for
 | 
				
			||||||
 | 
					example suspending the system when a lid is closed, or shutting it down
 | 
				
			||||||
 | 
					when the power button is pressed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The @var{config} keyword argument specifies the configuration for
 | 
				
			||||||
 | 
					elogind, and should be the result of a @code{(elogind-configuration
 | 
				
			||||||
 | 
					(@var{parameter} @var{value})...)} invocation.  Available parameters and
 | 
				
			||||||
 | 
					their default values are:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@table @code
 | 
				
			||||||
 | 
					@item kill-user-processes?
 | 
				
			||||||
 | 
					@code{#f}
 | 
				
			||||||
 | 
					@item kill-only-users
 | 
				
			||||||
 | 
					@code{()}
 | 
				
			||||||
 | 
					@item kill-exclude-users
 | 
				
			||||||
 | 
					@code{("root")}
 | 
				
			||||||
 | 
					@item inhibit-delay-max-seconds
 | 
				
			||||||
 | 
					@code{5}
 | 
				
			||||||
 | 
					@item handle-power-key
 | 
				
			||||||
 | 
					@code{poweroff}
 | 
				
			||||||
 | 
					@item handle-suspend-key
 | 
				
			||||||
 | 
					@code{suspend}
 | 
				
			||||||
 | 
					@item handle-hibernate-key
 | 
				
			||||||
 | 
					@code{hibernate}
 | 
				
			||||||
 | 
					@item handle-lid-switch
 | 
				
			||||||
 | 
					@code{suspend}
 | 
				
			||||||
 | 
					@item handle-lid-switch-docked
 | 
				
			||||||
 | 
					@code{ignore}
 | 
				
			||||||
 | 
					@item power-key-ignore-inhibited?
 | 
				
			||||||
 | 
					@code{#f}
 | 
				
			||||||
 | 
					@item suspend-key-ignore-inhibited?
 | 
				
			||||||
 | 
					@code{#f}
 | 
				
			||||||
 | 
					@item hibernate-key-ignore-inhibited?
 | 
				
			||||||
 | 
					@code{#f}
 | 
				
			||||||
 | 
					@item lid-switch-ignore-inhibited?
 | 
				
			||||||
 | 
					@code{#t}
 | 
				
			||||||
 | 
					@item holdoff-timeout-seconds
 | 
				
			||||||
 | 
					@code{30}
 | 
				
			||||||
 | 
					@item idle-action
 | 
				
			||||||
 | 
					@code{ignore}
 | 
				
			||||||
 | 
					@item idle-action-seconds
 | 
				
			||||||
 | 
					@code{(* 30 60)}
 | 
				
			||||||
 | 
					@item runtime-directory-size-percent
 | 
				
			||||||
 | 
					@code{10}
 | 
				
			||||||
 | 
					@item runtime-directory-size
 | 
				
			||||||
 | 
					@code{#f}
 | 
				
			||||||
 | 
					@item remove-ipc?
 | 
				
			||||||
 | 
					@code{#t}
 | 
				
			||||||
 | 
					@item suspend-state
 | 
				
			||||||
 | 
					@code{("mem" "standby" "freeze")}
 | 
				
			||||||
 | 
					@item suspend-mode
 | 
				
			||||||
 | 
					@code{()}
 | 
				
			||||||
 | 
					@item hibernate-state
 | 
				
			||||||
 | 
					@code{("disk")}
 | 
				
			||||||
 | 
					@item hibernate-mode
 | 
				
			||||||
 | 
					@code{("platform" "shutdown")}
 | 
				
			||||||
 | 
					@item hybrid-sleep-state
 | 
				
			||||||
 | 
					@code{("disk")}
 | 
				
			||||||
 | 
					@item hybrid-sleep-mode
 | 
				
			||||||
 | 
					@code{("suspend" "platform" "shutdown")}
 | 
				
			||||||
 | 
					@end table
 | 
				
			||||||
 | 
					@end deffn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@deffn {Monadic Procedure} polkit-service @
 | 
				
			||||||
 | 
					                         [#:polkit @var{polkit}]
 | 
				
			||||||
 | 
					Return a service that runs the Polkit privilege manager.
 | 
				
			||||||
 | 
					@uref{http://www.freedesktop.org/wiki/Software/polkit/, Polkit} allows
 | 
				
			||||||
 | 
					system administrators to grant access to privileged operations in a
 | 
				
			||||||
 | 
					structured way.  For example, polkit rules can allow a logged-in user
 | 
				
			||||||
 | 
					whose session is active to shut down the machine, if there are no other
 | 
				
			||||||
 | 
					users active.
 | 
				
			||||||
 | 
					@end deffn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@deffn {Monadic Procedure} upower-service [#:upower @var{upower}] @
 | 
					@deffn {Monadic Procedure} upower-service [#:upower @var{upower}] @
 | 
				
			||||||
                         [#:watts-up-pro? #f] @
 | 
					                         [#:watts-up-pro? #f] @
 | 
				
			||||||
                         [#:poll-batteries? #t] @
 | 
					                         [#:poll-batteries? #t] @
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										13
									
								
								emacs.am
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								emacs.am
									
										
									
									
									
								
							| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
# GNU Guix --- Functional package management for GNU
 | 
					# GNU Guix --- Functional package management for GNU
 | 
				
			||||||
# Copyright © 2014 Alex Kost <alezost@gmail.com>
 | 
					# Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# This file is part of GNU Guix.
 | 
					# This file is part of GNU Guix.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -21,13 +21,20 @@ AUTOLOADS = emacs/guix-autoloads.el
 | 
				
			||||||
ELFILES =					\
 | 
					ELFILES =					\
 | 
				
			||||||
  emacs/guix-backend.el				\
 | 
					  emacs/guix-backend.el				\
 | 
				
			||||||
  emacs/guix-base.el				\
 | 
					  emacs/guix-base.el				\
 | 
				
			||||||
 | 
					  emacs/guix-command.el				\
 | 
				
			||||||
  emacs/guix-emacs.el				\
 | 
					  emacs/guix-emacs.el				\
 | 
				
			||||||
 | 
					  emacs/guix-external.el			\
 | 
				
			||||||
 | 
					  emacs/guix-help-vars.el			\
 | 
				
			||||||
  emacs/guix-history.el				\
 | 
					  emacs/guix-history.el				\
 | 
				
			||||||
  emacs/guix-info.el				\
 | 
					  emacs/guix-info.el				\
 | 
				
			||||||
 | 
					  emacs/guix-init.el				\
 | 
				
			||||||
  emacs/guix-list.el				\
 | 
					  emacs/guix-list.el				\
 | 
				
			||||||
  emacs/guix-messages.el			\
 | 
					  emacs/guix-messages.el			\
 | 
				
			||||||
  emacs/guix-pcomplete.el			\
 | 
					  emacs/guix-pcomplete.el			\
 | 
				
			||||||
 | 
					  emacs/guix-popup.el				\
 | 
				
			||||||
  emacs/guix-prettify.el			\
 | 
					  emacs/guix-prettify.el			\
 | 
				
			||||||
 | 
					  emacs/guix-profiles.el			\
 | 
				
			||||||
 | 
					  emacs/guix-read.el				\
 | 
				
			||||||
  emacs/guix-utils.el				\
 | 
					  emacs/guix-utils.el				\
 | 
				
			||||||
  emacs/guix.el
 | 
					  emacs/guix.el
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,9 +44,7 @@ dist_lisp_DATA =				\
 | 
				
			||||||
  $(ELFILES)					\
 | 
					  $(ELFILES)					\
 | 
				
			||||||
  $(AUTOLOADS)
 | 
					  $(AUTOLOADS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
nodist_lisp_DATA =				\
 | 
					nodist_lisp_DATA = emacs/guix-config.el
 | 
				
			||||||
  emacs/guix-init.el				\
 | 
					 | 
				
			||||||
  emacs/guix-profiles.el
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(AUTOLOADS): $(ELFILES)
 | 
					$(AUTOLOADS): $(ELFILES)
 | 
				
			||||||
	$(EMACS) --batch --eval						\
 | 
						$(EMACS) --batch --eval						\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -52,26 +52,16 @@
 | 
				
			||||||
;;; Code:
 | 
					;;; Code:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(require 'geiser-mode)
 | 
					(require 'geiser-mode)
 | 
				
			||||||
 | 
					(require 'guix-config)
 | 
				
			||||||
(require 'guix-emacs)
 | 
					(require 'guix-emacs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defvar guix-load-path
 | 
					(defvar guix-load-path guix-emacs-interface-directory
 | 
				
			||||||
  (file-name-directory (or load-file-name
 | 
					 | 
				
			||||||
                           (locate-library "guix")))
 | 
					 | 
				
			||||||
  "Directory with scheme files for \"guix.el\" package.")
 | 
					  "Directory with scheme files for \"guix.el\" package.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defvar guix-helper-file
 | 
					(defvar guix-helper-file
 | 
				
			||||||
  (expand-file-name "guix-helper.scm" guix-load-path)
 | 
					  (expand-file-name "guix-helper.scm" guix-load-path)
 | 
				
			||||||
  "Auxiliary scheme file for loading.")
 | 
					  "Auxiliary scheme file for loading.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defvar guix-guile-program (or geiser-guile-binary "guile")
 | 
					 | 
				
			||||||
  "Name of the guile executable used for Guix REPL.
 | 
					 | 
				
			||||||
May be either a string (the name of the executable) or a list of
 | 
					 | 
				
			||||||
strings of the form:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  (NAME . ARGS)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Where ARGS is a list of arguments to the guile program.")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; REPL
 | 
					;;; REPL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
;;; guix-base.el --- Common definitions   -*- lexical-binding: t -*-
 | 
					;;; guix-base.el --- Common definitions   -*- lexical-binding: t -*-
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; Copyright © 2014 Alex Kost <alezost@gmail.com>
 | 
					;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; This file is part of GNU Guix.
 | 
					;; This file is part of GNU Guix.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -89,8 +89,8 @@ Each element of the list has a form:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-get-param-title (entry-type param)
 | 
					(defun guix-get-param-title (entry-type param)
 | 
				
			||||||
  "Return title of an ENTRY-TYPE entry parameter PARAM."
 | 
					  "Return title of an ENTRY-TYPE entry parameter PARAM."
 | 
				
			||||||
  (or (guix-get-key-val guix-param-titles
 | 
					  (or (guix-assq-value guix-param-titles
 | 
				
			||||||
                        entry-type param)
 | 
					                       entry-type param)
 | 
				
			||||||
      (prog1 (symbol-name param)
 | 
					      (prog1 (symbol-name param)
 | 
				
			||||||
        (message "Couldn't find title for '%S %S'."
 | 
					        (message "Couldn't find title for '%S %S'."
 | 
				
			||||||
                 entry-type param))))
 | 
					                 entry-type param))))
 | 
				
			||||||
| 
						 | 
					@ -102,15 +102,15 @@ Each element of the list has a form:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-get-full-name (entry &optional output)
 | 
					(defun guix-get-full-name (entry &optional output)
 | 
				
			||||||
  "Return name specification of the package ENTRY and OUTPUT."
 | 
					  "Return name specification of the package ENTRY and OUTPUT."
 | 
				
			||||||
  (guix-get-name-spec (guix-get-key-val entry 'name)
 | 
					  (guix-get-name-spec (guix-assq-value entry 'name)
 | 
				
			||||||
                      (guix-get-key-val entry 'version)
 | 
					                      (guix-assq-value entry 'version)
 | 
				
			||||||
                      output))
 | 
					                      output))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-entry-to-specification (entry)
 | 
					(defun guix-entry-to-specification (entry)
 | 
				
			||||||
  "Return name specification by the package or output ENTRY."
 | 
					  "Return name specification by the package or output ENTRY."
 | 
				
			||||||
  (guix-get-name-spec (guix-get-key-val entry 'name)
 | 
					  (guix-get-name-spec (guix-assq-value entry 'name)
 | 
				
			||||||
                      (guix-get-key-val entry 'version)
 | 
					                      (guix-assq-value entry 'version)
 | 
				
			||||||
                      (guix-get-key-val entry 'output)))
 | 
					                      (guix-assq-value entry 'output)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-entries-to-specifications (entries)
 | 
					(defun guix-entries-to-specifications (entries)
 | 
				
			||||||
  "Return name specifications by the package or output ENTRIES."
 | 
					  "Return name specifications by the package or output ENTRIES."
 | 
				
			||||||
| 
						 | 
					@ -120,13 +120,13 @@ Each element of the list has a form:
 | 
				
			||||||
(defun guix-get-installed-outputs (entry)
 | 
					(defun guix-get-installed-outputs (entry)
 | 
				
			||||||
  "Return list of installed outputs for the package ENTRY."
 | 
					  "Return list of installed outputs for the package ENTRY."
 | 
				
			||||||
  (mapcar (lambda (installed-entry)
 | 
					  (mapcar (lambda (installed-entry)
 | 
				
			||||||
            (guix-get-key-val installed-entry 'output))
 | 
					            (guix-assq-value installed-entry 'output))
 | 
				
			||||||
          (guix-get-key-val entry 'installed)))
 | 
					          (guix-assq-value entry 'installed)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-get-entry-by-id (id entries)
 | 
					(defun guix-get-entry-by-id (id entries)
 | 
				
			||||||
  "Return entry from ENTRIES by entry ID."
 | 
					  "Return entry from ENTRIES by entry ID."
 | 
				
			||||||
  (cl-find-if (lambda (entry)
 | 
					  (cl-find-if (lambda (entry)
 | 
				
			||||||
                (equal id (guix-get-key-val entry 'id)))
 | 
					                (equal id (guix-assq-value entry 'id)))
 | 
				
			||||||
              entries))
 | 
					              entries))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-get-package-id-and-output-by-output-id (oid)
 | 
					(defun guix-get-package-id-and-output-by-output-id (oid)
 | 
				
			||||||
| 
						 | 
					@ -172,13 +172,36 @@ If PATH is relative, it is considered to be relative to
 | 
				
			||||||
      (move-to-column col)
 | 
					      (move-to-column col)
 | 
				
			||||||
      (recenter 1))))
 | 
					      (recenter 1))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-edit-package (id)
 | 
					(defun guix-package-location (id-or-name)
 | 
				
			||||||
  "Edit (go to location of) package with ID."
 | 
					  "Return location of a package with ID-OR-NAME.
 | 
				
			||||||
  (let ((loc (guix-eval-read (guix-make-guile-expression
 | 
					For the meaning of location, see `guix-find-location'."
 | 
				
			||||||
                              'package-location-string id))))
 | 
					  (guix-eval-read (guix-make-guile-expression
 | 
				
			||||||
    (if loc
 | 
					                   'package-location-string id-or-name)))
 | 
				
			||||||
        (guix-find-location loc)
 | 
					
 | 
				
			||||||
      (message "Couldn't find package location."))))
 | 
					
 | 
				
			||||||
 | 
					;;; Receivable lists of packages, lint checkers, etc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-memoized-defun guix-graph-type-names ()
 | 
				
			||||||
 | 
					  "Return a list of names of available graph node types."
 | 
				
			||||||
 | 
					  (guix-eval-read (guix-make-guile-expression 'graph-type-names)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-memoized-defun guix-lint-checker-names ()
 | 
				
			||||||
 | 
					  "Return a list of names of available lint checkers."
 | 
				
			||||||
 | 
					  (guix-eval-read (guix-make-guile-expression 'lint-checker-names)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-memoized-defun guix-package-names ()
 | 
				
			||||||
 | 
					  "Return a list of names of available packages."
 | 
				
			||||||
 | 
					  (sort
 | 
				
			||||||
 | 
					   ;; Work around <https://github.com/jaor/geiser/issues/64>:
 | 
				
			||||||
 | 
					   ;; list of strings is parsed much slower than list of lists,
 | 
				
			||||||
 | 
					   ;; so we use 'package-names-lists' instead of 'package-names'.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   ;; (guix-eval-read (guix-make-guile-expression 'package-names))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   (mapcar #'car
 | 
				
			||||||
 | 
					           (guix-eval-read (guix-make-guile-expression
 | 
				
			||||||
 | 
					                            'package-names-lists)))
 | 
				
			||||||
 | 
					   #'string<))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; Buffers and auto updating.
 | 
					;;; Buffers and auto updating.
 | 
				
			||||||
| 
						 | 
					@ -392,7 +415,6 @@ following keywords are available:
 | 
				
			||||||
         (prefix         (concat "guix-" entry-type-str "-" buf-type-str))
 | 
					         (prefix         (concat "guix-" entry-type-str "-" buf-type-str))
 | 
				
			||||||
         (group          (intern prefix))
 | 
					         (group          (intern prefix))
 | 
				
			||||||
         (mode-map-str   (concat prefix "-mode-map"))
 | 
					         (mode-map-str   (concat prefix "-mode-map"))
 | 
				
			||||||
         (mode-map       (intern mode-map-str))
 | 
					 | 
				
			||||||
         (parent-mode    (intern (concat "guix-" buf-type-str "-mode")))
 | 
					         (parent-mode    (intern (concat "guix-" buf-type-str "-mode")))
 | 
				
			||||||
         (mode           (intern (concat prefix "-mode")))
 | 
					         (mode           (intern (concat prefix "-mode")))
 | 
				
			||||||
         (mode-init-fun  (intern (concat prefix "-mode-initialize")))
 | 
					         (mode-init-fun  (intern (concat prefix "-mode-initialize")))
 | 
				
			||||||
| 
						 | 
					@ -910,11 +932,11 @@ ENTRIES is a list of package entries to get info about packages."
 | 
				
			||||||
                  (outputs (cdr spec))
 | 
					                  (outputs (cdr spec))
 | 
				
			||||||
                  (entry (guix-get-entry-by-id id entries)))
 | 
					                  (entry (guix-get-entry-by-id id entries)))
 | 
				
			||||||
             (when entry
 | 
					             (when entry
 | 
				
			||||||
               (let ((location (guix-get-key-val entry 'location)))
 | 
					               (let ((location (guix-assq-value entry 'location)))
 | 
				
			||||||
                 (concat (guix-get-full-name entry)
 | 
					                 (concat (guix-get-full-name entry)
 | 
				
			||||||
                         (when outputs
 | 
					                         (when outputs
 | 
				
			||||||
                           (concat ":"
 | 
					                           (concat ":"
 | 
				
			||||||
                                   (mapconcat #'identity outputs ",")))
 | 
					                                   (guix-concat-strings outputs ",")))
 | 
				
			||||||
                         (when location
 | 
					                         (when location
 | 
				
			||||||
                           (concat "\t(" location ")")))))))
 | 
					                           (concat "\t(" location ")")))))))
 | 
				
			||||||
         specs)))
 | 
					         specs)))
 | 
				
			||||||
| 
						 | 
					@ -1060,6 +1082,63 @@ FILE.  With a prefix argument, also prompt for PROFILE."
 | 
				
			||||||
      (concat "--manifest=" file))
 | 
					      (concat "--manifest=" file))
 | 
				
			||||||
     operation-buffer)))
 | 
					     operation-buffer)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Executing guix commands
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defcustom guix-run-in-shell-function #'guix-run-in-shell
 | 
				
			||||||
 | 
					  "Function used to run guix command.
 | 
				
			||||||
 | 
					The function is called with a single argument - a command line string."
 | 
				
			||||||
 | 
					  :type '(choice (function-item guix-run-in-shell)
 | 
				
			||||||
 | 
					                 (function-item guix-run-in-eshell)
 | 
				
			||||||
 | 
					                 (function :tag "Other function"))
 | 
				
			||||||
 | 
					  :group 'guix)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defcustom guix-shell-buffer-name "*shell*"
 | 
				
			||||||
 | 
					  "Default name of a shell buffer used for running guix commands."
 | 
				
			||||||
 | 
					  :type 'string
 | 
				
			||||||
 | 
					  :group 'guix)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(declare-function comint-send-input "comint" t)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-run-in-shell (string)
 | 
				
			||||||
 | 
					  "Run command line STRING in `guix-shell-buffer-name' buffer."
 | 
				
			||||||
 | 
					  (shell guix-shell-buffer-name)
 | 
				
			||||||
 | 
					  (goto-char (point-max))
 | 
				
			||||||
 | 
					  (insert string)
 | 
				
			||||||
 | 
					  (comint-send-input))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(declare-function eshell-send-input "esh-mode" t)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-run-in-eshell (string)
 | 
				
			||||||
 | 
					  "Run command line STRING in eshell buffer."
 | 
				
			||||||
 | 
					  (eshell)
 | 
				
			||||||
 | 
					  (goto-char (point-max))
 | 
				
			||||||
 | 
					  (insert string)
 | 
				
			||||||
 | 
					  (eshell-send-input))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-run-command-in-shell (args)
 | 
				
			||||||
 | 
					  "Execute 'guix ARGS ...' command in a shell buffer."
 | 
				
			||||||
 | 
					  (funcall guix-run-in-shell-function
 | 
				
			||||||
 | 
					           (guix-command-string args)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-run-command-in-repl (args)
 | 
				
			||||||
 | 
					  "Execute 'guix ARGS ...' command in Guix REPL."
 | 
				
			||||||
 | 
					  (guix-eval-in-repl
 | 
				
			||||||
 | 
					   (apply #'guix-make-guile-expression
 | 
				
			||||||
 | 
					          'guix-command args)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-output (args)
 | 
				
			||||||
 | 
					  "Return string with 'guix ARGS ...' output."
 | 
				
			||||||
 | 
					  (guix-eval-read
 | 
				
			||||||
 | 
					   (apply #'guix-make-guile-expression
 | 
				
			||||||
 | 
					          'guix-command-output args)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-help-string (&optional commands)
 | 
				
			||||||
 | 
					  "Return string with 'guix COMMANDS ... --help' output."
 | 
				
			||||||
 | 
					  (guix-eval-read
 | 
				
			||||||
 | 
					   (apply #'guix-make-guile-expression
 | 
				
			||||||
 | 
					          'help-string commands)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; Pull
 | 
					;;; Pull
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										671
									
								
								emacs/guix-command.el
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										671
									
								
								emacs/guix-command.el
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,671 @@
 | 
				
			||||||
 | 
					;;; guix-command.el --- Popup interface for guix commands  -*- lexical-binding: t -*-
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; Copyright © 2015 Alex Kost <alezost@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 this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Commentary:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; This file provides a magit-like popup interface for running guix
 | 
				
			||||||
 | 
					;; commands in Guix REPL.  The entry point is "M-x guix".  When it is
 | 
				
			||||||
 | 
					;; called the first time, "guix --help" output is parsed and
 | 
				
			||||||
 | 
					;; `guix-COMMAND-action' functions are generated for each available guix
 | 
				
			||||||
 | 
					;; COMMAND.  Then a window with these commands is popped up.  When a
 | 
				
			||||||
 | 
					;; particular COMMAND is called, "guix COMMAND --help" output is parsed,
 | 
				
			||||||
 | 
					;; and a user get a new popup window with available options for this
 | 
				
			||||||
 | 
					;; command and so on.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; To avoid hard-coding all guix options, actions, etc., as much data is
 | 
				
			||||||
 | 
					;; taken from "guix ... --help" outputs as possible.  But this data is
 | 
				
			||||||
 | 
					;; still incomplete: not all long options have short analogs, also
 | 
				
			||||||
 | 
					;; special readers should be used for some options (for example, to
 | 
				
			||||||
 | 
					;; complete package names while prompting for a package).  So after
 | 
				
			||||||
 | 
					;; parsing --help output, the arguments are "improved".  All arguments
 | 
				
			||||||
 | 
					;; (switches, options and actions) are `guix-command-argument'
 | 
				
			||||||
 | 
					;; structures.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; Only "M-x guix" command is available after this file is loaded.  The
 | 
				
			||||||
 | 
					;; rest commands/actions/popups are generated on the fly only when they
 | 
				
			||||||
 | 
					;; are needed (that's why there is a couple of `eval'-s in this file).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; COMMANDS argument is used by many functions in this file.  It means a
 | 
				
			||||||
 | 
					;; list of guix commands without "guix" itself, e.g.: ("build"),
 | 
				
			||||||
 | 
					;; ("import" "gnu").  The empty list stands for the plain "guix" without
 | 
				
			||||||
 | 
					;; subcommands.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; All actions in popup windows are divided into 2 groups:
 | 
				
			||||||
 | 
					;;
 | 
				
			||||||
 | 
					;; - 'Popup' actions - used to pop up another window.  For example, every
 | 
				
			||||||
 | 
					;;   action in the 'guix' or 'guix import' window is a popup action.  They
 | 
				
			||||||
 | 
					;;   are defined by `guix-command-define-popup-action' macro.
 | 
				
			||||||
 | 
					;;
 | 
				
			||||||
 | 
					;; - 'Execute' actions - used to do something with the command line (to
 | 
				
			||||||
 | 
					;;   run a command in Guix REPL or to copy it into kill-ring) constructed
 | 
				
			||||||
 | 
					;;   with the current popup.  They are defined by
 | 
				
			||||||
 | 
					;;   `guix-command-define-execute-action' macro.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Code:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(require 'cl-lib)
 | 
				
			||||||
 | 
					(require 'guix-popup)
 | 
				
			||||||
 | 
					(require 'guix-utils)
 | 
				
			||||||
 | 
					(require 'guix-help-vars)
 | 
				
			||||||
 | 
					(require 'guix-read)
 | 
				
			||||||
 | 
					(require 'guix-base)
 | 
				
			||||||
 | 
					(require 'guix-external)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defgroup guix-commands nil
 | 
				
			||||||
 | 
					  "Settings for guix popup windows."
 | 
				
			||||||
 | 
					  :group 'guix)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-command-complex-with-shared-arguments
 | 
				
			||||||
 | 
					  '("system")
 | 
				
			||||||
 | 
					  "List of guix commands which have subcommands with shared options.
 | 
				
			||||||
 | 
					I.e., 'guix foo --help' is the same as 'guix foo bar --help'.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-action-name (&optional commands &rest name-parts)
 | 
				
			||||||
 | 
					  "Return name of action function for guix COMMANDS."
 | 
				
			||||||
 | 
					  (guix-command-symbol (append commands name-parts (list "action"))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Command arguments
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(cl-defstruct (guix-command-argument
 | 
				
			||||||
 | 
					               (:constructor guix-command-make-argument)
 | 
				
			||||||
 | 
					               (:copier      guix-command-copy-argument))
 | 
				
			||||||
 | 
					  name char doc fun switch? option? action?)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(cl-defun guix-command-modify-argument
 | 
				
			||||||
 | 
					    (argument &key
 | 
				
			||||||
 | 
					              (name    nil name-bound?)
 | 
				
			||||||
 | 
					              (char    nil char-bound?)
 | 
				
			||||||
 | 
					              (doc     nil doc-bound?)
 | 
				
			||||||
 | 
					              (fun     nil fun-bound?)
 | 
				
			||||||
 | 
					              (switch? nil switch?-bound?)
 | 
				
			||||||
 | 
					              (option? nil option?-bound?)
 | 
				
			||||||
 | 
					              (action? nil action?-bound?))
 | 
				
			||||||
 | 
					  "Return a modified version of ARGUMENT."
 | 
				
			||||||
 | 
					  (declare (indent 1))
 | 
				
			||||||
 | 
					  (let ((copy (guix-command-copy-argument argument)))
 | 
				
			||||||
 | 
					    (and name-bound?    (setf (guix-command-argument-name    copy) name))
 | 
				
			||||||
 | 
					    (and char-bound?    (setf (guix-command-argument-char    copy) char))
 | 
				
			||||||
 | 
					    (and doc-bound?     (setf (guix-command-argument-doc     copy) doc))
 | 
				
			||||||
 | 
					    (and fun-bound?     (setf (guix-command-argument-fun     copy) fun))
 | 
				
			||||||
 | 
					    (and switch?-bound? (setf (guix-command-argument-switch? copy) switch?))
 | 
				
			||||||
 | 
					    (and option?-bound? (setf (guix-command-argument-option? copy) option?))
 | 
				
			||||||
 | 
					    (and action?-bound? (setf (guix-command-argument-action? copy) action?))
 | 
				
			||||||
 | 
					    copy))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-modify-argument-from-alist (argument alist)
 | 
				
			||||||
 | 
					  "Return a modified version of ARGUMENT or nil if it wasn't modified.
 | 
				
			||||||
 | 
					Each assoc from ALIST have a form (NAME . PLIST).  NAME is an
 | 
				
			||||||
 | 
					argument name.  PLIST is a property list of argument parameters
 | 
				
			||||||
 | 
					to be modified."
 | 
				
			||||||
 | 
					  (let* ((name  (guix-command-argument-name argument))
 | 
				
			||||||
 | 
					         (plist (guix-assoc-value alist name)))
 | 
				
			||||||
 | 
					    (when plist
 | 
				
			||||||
 | 
					      (apply #'guix-command-modify-argument
 | 
				
			||||||
 | 
					             argument plist))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defmacro guix-command-define-argument-improver (name alist)
 | 
				
			||||||
 | 
					  "Define NAME variable and function to modify an argument from ALIST."
 | 
				
			||||||
 | 
					  (declare (indent 1))
 | 
				
			||||||
 | 
					  `(progn
 | 
				
			||||||
 | 
					     (defvar ,name ,alist)
 | 
				
			||||||
 | 
					     (defun ,name (argument)
 | 
				
			||||||
 | 
					       (guix-command-modify-argument-from-alist argument ,name))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-action-argument
 | 
				
			||||||
 | 
					  '(("graph"       :char ?G)
 | 
				
			||||||
 | 
					    ("environment" :char ?E)
 | 
				
			||||||
 | 
					    ("publish"     :char ?u)
 | 
				
			||||||
 | 
					    ("pull"        :char ?P)
 | 
				
			||||||
 | 
					    ("size"        :char ?z)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-common-argument
 | 
				
			||||||
 | 
					  '(("--help"    :switch? nil)
 | 
				
			||||||
 | 
					    ("--version" :switch? nil)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-target-argument
 | 
				
			||||||
 | 
					  '(("--target" :char ?T)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-system-type-argument
 | 
				
			||||||
 | 
					  '(("--system" :fun guix-read-system-type)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-load-path-argument
 | 
				
			||||||
 | 
					  '(("--load-path" :fun read-directory-name)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-search-paths-argument
 | 
				
			||||||
 | 
					  '(("--search-paths" :char ?P)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-substitute-urls-argument
 | 
				
			||||||
 | 
					  '(("--substitute-urls" :char ?U)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-hash-argument
 | 
				
			||||||
 | 
					  '(("--format" :fun guix-read-hash-format)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-key-policy-argument
 | 
				
			||||||
 | 
					  '(("--key-download" :fun guix-read-key-policy)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-command-improve-common-build-argument
 | 
				
			||||||
 | 
					  '(("--no-substitutes"  :char ?s)
 | 
				
			||||||
 | 
					    ("--no-build-hook"   :char ?h)
 | 
				
			||||||
 | 
					    ("--max-silent-time" :char ?x)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-improve-common-build-argument (argument)
 | 
				
			||||||
 | 
					  (guix-command-modify-argument-from-alist
 | 
				
			||||||
 | 
					   argument
 | 
				
			||||||
 | 
					   (append guix-command-improve-load-path-argument
 | 
				
			||||||
 | 
					           guix-command-improve-substitute-urls-argument
 | 
				
			||||||
 | 
					           guix-command-improve-common-build-argument)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-archive-argument
 | 
				
			||||||
 | 
					  '(("--generate-key" :char ?k)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-build-argument
 | 
				
			||||||
 | 
					  '(("--no-grafts"   :char ?g)
 | 
				
			||||||
 | 
					    ("--root"        :fun guix-read-file-name)
 | 
				
			||||||
 | 
					    ("--sources"     :char ?S :fun guix-read-source-type :switch? nil)
 | 
				
			||||||
 | 
					    ("--with-source" :fun guix-read-file-name)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-environment-argument
 | 
				
			||||||
 | 
					  '(("--exec" :fun read-shell-command)
 | 
				
			||||||
 | 
					    ("--load" :fun guix-read-file-name)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-gc-argument
 | 
				
			||||||
 | 
					  '(("--list-dead" :char ?D)
 | 
				
			||||||
 | 
					    ("--list-live" :char ?L)
 | 
				
			||||||
 | 
					    ("--referrers" :char ?f)
 | 
				
			||||||
 | 
					    ("--verify"    :fun guix-read-verify-options-string)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-graph-argument
 | 
				
			||||||
 | 
					  '(("--type" :fun guix-read-graph-type)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-import-argument
 | 
				
			||||||
 | 
					  '(("cran" :char ?r)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-import-elpa-argument
 | 
				
			||||||
 | 
					  '(("--archive" :fun guix-read-elpa-archive)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-lint-argument
 | 
				
			||||||
 | 
					  '(("--checkers" :fun guix-read-lint-checker-names-string)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-package-argument
 | 
				
			||||||
 | 
					  ;; Unlike all other options, --install/--remove do not have a form
 | 
				
			||||||
 | 
					  ;; '--install=foo,bar' but '--install foo bar' instead, so we need
 | 
				
			||||||
 | 
					  ;; some tweaks.
 | 
				
			||||||
 | 
					  '(("--install"
 | 
				
			||||||
 | 
					     :name "--install " :fun guix-read-package-names-string
 | 
				
			||||||
 | 
					     :switch? nil :option? t)
 | 
				
			||||||
 | 
					    ("--remove"
 | 
				
			||||||
 | 
					     :name "--remove "  :fun guix-read-package-names-string
 | 
				
			||||||
 | 
					     :switch? nil :option? t)
 | 
				
			||||||
 | 
					    ("--install-from-file" :fun guix-read-file-name)
 | 
				
			||||||
 | 
					    ("--manifest"       :fun guix-read-file-name)
 | 
				
			||||||
 | 
					    ("--do-not-upgrade" :char ?U)
 | 
				
			||||||
 | 
					    ("--roll-back"      :char ?R)
 | 
				
			||||||
 | 
					    ("--show"           :char ?w :fun guix-read-package-name)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-refresh-argument
 | 
				
			||||||
 | 
					  '(("--select"     :fun guix-read-refresh-subset)
 | 
				
			||||||
 | 
					    ("--key-server" :char ?S)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-size-argument
 | 
				
			||||||
 | 
					  '(("--map-file" :fun guix-read-file-name)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-command-define-argument-improver
 | 
				
			||||||
 | 
					    guix-command-improve-system-argument
 | 
				
			||||||
 | 
					  '(("vm-image"    :char ?V)
 | 
				
			||||||
 | 
					    ("--on-error"  :char ?E)
 | 
				
			||||||
 | 
					    ("--no-grub"   :char ?g)
 | 
				
			||||||
 | 
					    ("--full-boot" :char ?b)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-command-argument-improvers
 | 
				
			||||||
 | 
					  '((()
 | 
				
			||||||
 | 
					     guix-command-improve-action-argument)
 | 
				
			||||||
 | 
					    (("archive")
 | 
				
			||||||
 | 
					     guix-command-improve-common-build-argument
 | 
				
			||||||
 | 
					     guix-command-improve-target-argument
 | 
				
			||||||
 | 
					     guix-command-improve-system-type-argument
 | 
				
			||||||
 | 
					     guix-command-improve-archive-argument)
 | 
				
			||||||
 | 
					    (("build")
 | 
				
			||||||
 | 
					     guix-command-improve-common-build-argument
 | 
				
			||||||
 | 
					     guix-command-improve-target-argument
 | 
				
			||||||
 | 
					     guix-command-improve-system-type-argument
 | 
				
			||||||
 | 
					     guix-command-improve-build-argument)
 | 
				
			||||||
 | 
					    (("download")
 | 
				
			||||||
 | 
					     guix-command-improve-hash-argument)
 | 
				
			||||||
 | 
					    (("hash")
 | 
				
			||||||
 | 
					     guix-command-improve-hash-argument)
 | 
				
			||||||
 | 
					    (("environment")
 | 
				
			||||||
 | 
					     guix-command-improve-common-build-argument
 | 
				
			||||||
 | 
					     guix-command-improve-search-paths-argument
 | 
				
			||||||
 | 
					     guix-command-improve-system-type-argument
 | 
				
			||||||
 | 
					     guix-command-improve-environment-argument)
 | 
				
			||||||
 | 
					    (("gc")
 | 
				
			||||||
 | 
					     guix-command-improve-gc-argument)
 | 
				
			||||||
 | 
					    (("graph")
 | 
				
			||||||
 | 
					     guix-command-improve-graph-argument)
 | 
				
			||||||
 | 
					    (("import")
 | 
				
			||||||
 | 
					     guix-command-improve-import-argument)
 | 
				
			||||||
 | 
					    (("import" "gnu")
 | 
				
			||||||
 | 
					     guix-command-improve-key-policy-argument)
 | 
				
			||||||
 | 
					    (("import" "elpa")
 | 
				
			||||||
 | 
					     guix-command-improve-import-elpa-argument)
 | 
				
			||||||
 | 
					    (("lint")
 | 
				
			||||||
 | 
					     guix-command-improve-lint-argument)
 | 
				
			||||||
 | 
					    (("package")
 | 
				
			||||||
 | 
					     guix-command-improve-common-build-argument
 | 
				
			||||||
 | 
					     guix-command-improve-search-paths-argument
 | 
				
			||||||
 | 
					     guix-command-improve-package-argument)
 | 
				
			||||||
 | 
					    (("refresh")
 | 
				
			||||||
 | 
					     guix-command-improve-key-policy-argument
 | 
				
			||||||
 | 
					     guix-command-improve-refresh-argument)
 | 
				
			||||||
 | 
					    (("size")
 | 
				
			||||||
 | 
					     guix-command-improve-system-type-argument
 | 
				
			||||||
 | 
					     guix-command-improve-substitute-urls-argument
 | 
				
			||||||
 | 
					     guix-command-improve-size-argument)
 | 
				
			||||||
 | 
					    (("system")
 | 
				
			||||||
 | 
					     guix-command-improve-common-build-argument
 | 
				
			||||||
 | 
					     guix-command-improve-system-argument))
 | 
				
			||||||
 | 
					  "Alist of guix commands and argument improvers for them.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-improve-argument (argument improvers)
 | 
				
			||||||
 | 
					  "Return ARGUMENT modified with IMPROVERS."
 | 
				
			||||||
 | 
					  (or (guix-any (lambda (improver)
 | 
				
			||||||
 | 
					                  (funcall improver argument))
 | 
				
			||||||
 | 
					                improvers)
 | 
				
			||||||
 | 
					      argument))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-improve-arguments (arguments commands)
 | 
				
			||||||
 | 
					  "Return ARGUMENTS for 'guix COMMANDS ...' modified for popup interface."
 | 
				
			||||||
 | 
					  (let ((improvers (cons 'guix-command-improve-common-argument
 | 
				
			||||||
 | 
					                         (guix-assoc-value guix-command-argument-improvers
 | 
				
			||||||
 | 
					                                           commands))))
 | 
				
			||||||
 | 
					    (mapcar (lambda (argument)
 | 
				
			||||||
 | 
					              (guix-command-improve-argument argument improvers))
 | 
				
			||||||
 | 
					            arguments)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-parse-arguments (&optional commands)
 | 
				
			||||||
 | 
					  "Return a list of parsed 'guix COMMANDS ...' arguments."
 | 
				
			||||||
 | 
					  (with-temp-buffer
 | 
				
			||||||
 | 
					    (insert (guix-help-string commands))
 | 
				
			||||||
 | 
					    (let (args)
 | 
				
			||||||
 | 
					      (guix-while-search guix-help-parse-option-regexp
 | 
				
			||||||
 | 
					        (let* ((short (match-string-no-properties 1))
 | 
				
			||||||
 | 
					               (name  (match-string-no-properties 2))
 | 
				
			||||||
 | 
					               (arg   (match-string-no-properties 3))
 | 
				
			||||||
 | 
					               (doc   (match-string-no-properties 4))
 | 
				
			||||||
 | 
					               (char  (if short
 | 
				
			||||||
 | 
					                          (elt short 1) ; short option letter
 | 
				
			||||||
 | 
					                        (elt name 2))) ; first letter of the long option
 | 
				
			||||||
 | 
					               ;; If "--foo=bar" or "--foo[=bar]" then it is 'option'.
 | 
				
			||||||
 | 
					               (option? (not (string= "" arg)))
 | 
				
			||||||
 | 
					               ;; If "--foo" or "--foo[=bar]" then it is 'switch'.
 | 
				
			||||||
 | 
					               (switch? (or (string= "" arg)
 | 
				
			||||||
 | 
					                            (eq ?\[ (elt arg 0)))))
 | 
				
			||||||
 | 
					          (push (guix-command-make-argument
 | 
				
			||||||
 | 
					                 :name    name
 | 
				
			||||||
 | 
					                 :char    char
 | 
				
			||||||
 | 
					                 :doc     doc
 | 
				
			||||||
 | 
					                 :switch? switch?
 | 
				
			||||||
 | 
					                 :option? option?)
 | 
				
			||||||
 | 
					                args)))
 | 
				
			||||||
 | 
					      (guix-while-search guix-help-parse-command-regexp
 | 
				
			||||||
 | 
					        (let* ((name (match-string-no-properties 1))
 | 
				
			||||||
 | 
					               (char (elt name 0)))
 | 
				
			||||||
 | 
					          (push (guix-command-make-argument
 | 
				
			||||||
 | 
					                 :name    name
 | 
				
			||||||
 | 
					                 :char    char
 | 
				
			||||||
 | 
					                 :fun     (guix-command-action-name commands name)
 | 
				
			||||||
 | 
					                 :action? t)
 | 
				
			||||||
 | 
					                args)))
 | 
				
			||||||
 | 
					      args)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-rest-argument (&optional commands)
 | 
				
			||||||
 | 
					  "Return '--' argument for COMMANDS."
 | 
				
			||||||
 | 
					  (cl-flet ((argument (&rest args)
 | 
				
			||||||
 | 
					              (apply #'guix-command-make-argument
 | 
				
			||||||
 | 
					                     :name "-- " :char ?= :option? t args)))
 | 
				
			||||||
 | 
					    (let ((command (car commands)))
 | 
				
			||||||
 | 
					      (cond
 | 
				
			||||||
 | 
					       ((member command '("archive" "build" "graph" "edit"
 | 
				
			||||||
 | 
					                          "environment" "lint" "refresh"))
 | 
				
			||||||
 | 
					        (argument :doc "Packages" :fun 'guix-read-package-names-string))
 | 
				
			||||||
 | 
					       ((string= command "download")
 | 
				
			||||||
 | 
					        (argument :doc "URL"))
 | 
				
			||||||
 | 
					       ((string= command "gc")
 | 
				
			||||||
 | 
					        (argument :doc "Paths" :fun 'guix-read-file-name))
 | 
				
			||||||
 | 
					       ((member command '("hash" "system"))
 | 
				
			||||||
 | 
					        (argument :doc "File" :fun 'guix-read-file-name))
 | 
				
			||||||
 | 
					       ((string= command "size")
 | 
				
			||||||
 | 
					        (argument :doc "Package" :fun 'guix-read-package-name))
 | 
				
			||||||
 | 
					       ((equal commands '("import" "nix"))
 | 
				
			||||||
 | 
					        (argument :doc "Nixpkgs Attribute"))
 | 
				
			||||||
 | 
					       ;; Other 'guix import' subcommands, but not 'import' itself.
 | 
				
			||||||
 | 
					       ((and (cdr commands)
 | 
				
			||||||
 | 
					             (string= command "import"))
 | 
				
			||||||
 | 
					        (argument :doc "Package name"))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-additional-arguments (&optional commands)
 | 
				
			||||||
 | 
					  "Return additional arguments for COMMANDS."
 | 
				
			||||||
 | 
					  (let ((rest-arg (guix-command-rest-argument commands)))
 | 
				
			||||||
 | 
					    (and rest-arg (list rest-arg))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; Ideally only `guix-command-arguments' function should exist with the
 | 
				
			||||||
 | 
					;; contents of `guix-command-all-arguments', but we need to make a
 | 
				
			||||||
 | 
					;; special case for `guix-command-complex-with-shared-arguments' commands.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-all-arguments (&optional commands)
 | 
				
			||||||
 | 
					  "Return list of all arguments for 'guix COMMANDS ...'."
 | 
				
			||||||
 | 
					  (let ((parsed (guix-command-parse-arguments commands)))
 | 
				
			||||||
 | 
					    (append (guix-command-improve-arguments parsed commands)
 | 
				
			||||||
 | 
					            (guix-command-additional-arguments commands))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-memoized-defalias guix-command-all-arguments-memoize
 | 
				
			||||||
 | 
					  guix-command-all-arguments)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-arguments (&optional commands)
 | 
				
			||||||
 | 
					  "Return list of arguments for 'guix COMMANDS ...'."
 | 
				
			||||||
 | 
					  (let ((command (car commands)))
 | 
				
			||||||
 | 
					    (if (member command
 | 
				
			||||||
 | 
					                guix-command-complex-with-shared-arguments)
 | 
				
			||||||
 | 
					        ;; Take actions only for 'guix system', and switches+options for
 | 
				
			||||||
 | 
					        ;; 'guix system foo'.
 | 
				
			||||||
 | 
					        (funcall (if (null (cdr commands))
 | 
				
			||||||
 | 
					                     #'cl-remove-if-not
 | 
				
			||||||
 | 
					                   #'cl-remove-if)
 | 
				
			||||||
 | 
					                 #'guix-command-argument-action?
 | 
				
			||||||
 | 
					                 (guix-command-all-arguments-memoize (list command)))
 | 
				
			||||||
 | 
					      (guix-command-all-arguments commands))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-switch->popup-switch (switch)
 | 
				
			||||||
 | 
					  "Return popup switch from command SWITCH argument."
 | 
				
			||||||
 | 
					  (list (guix-command-argument-char switch)
 | 
				
			||||||
 | 
					        (or (guix-command-argument-doc switch)
 | 
				
			||||||
 | 
					            "Unknown")
 | 
				
			||||||
 | 
					        (guix-command-argument-name switch)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-option->popup-option (option)
 | 
				
			||||||
 | 
					  "Return popup option from command OPTION argument."
 | 
				
			||||||
 | 
					  (list (guix-command-argument-char option)
 | 
				
			||||||
 | 
					        (or (guix-command-argument-doc option)
 | 
				
			||||||
 | 
					            "Unknown")
 | 
				
			||||||
 | 
					        (let ((name (guix-command-argument-name option)))
 | 
				
			||||||
 | 
					          (if (string-match-p " \\'" name) ; ends with space
 | 
				
			||||||
 | 
					              name
 | 
				
			||||||
 | 
					            (concat name "=")))
 | 
				
			||||||
 | 
					        (or (guix-command-argument-fun option)
 | 
				
			||||||
 | 
					            'read-from-minibuffer)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-action->popup-action (action)
 | 
				
			||||||
 | 
					  "Return popup action from command ACTION argument."
 | 
				
			||||||
 | 
					  (list (guix-command-argument-char action)
 | 
				
			||||||
 | 
					        (or (guix-command-argument-doc action)
 | 
				
			||||||
 | 
					            (guix-command-argument-name action)
 | 
				
			||||||
 | 
					            "Unknown")
 | 
				
			||||||
 | 
					        (guix-command-argument-fun action)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-sort-arguments (arguments)
 | 
				
			||||||
 | 
					  "Sort ARGUMENTS by name in alphabetical order."
 | 
				
			||||||
 | 
					  (sort arguments
 | 
				
			||||||
 | 
					        (lambda (a1 a2)
 | 
				
			||||||
 | 
					          (let ((name1 (guix-command-argument-name a1))
 | 
				
			||||||
 | 
					                (name2 (guix-command-argument-name a2)))
 | 
				
			||||||
 | 
					            (cond ((null name1) nil)
 | 
				
			||||||
 | 
					                  ((null name2) t)
 | 
				
			||||||
 | 
					                  (t (string< name1 name2)))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-switches (arguments)
 | 
				
			||||||
 | 
					  "Return switches from ARGUMENTS."
 | 
				
			||||||
 | 
					  (cl-remove-if-not #'guix-command-argument-switch? arguments))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-options (arguments)
 | 
				
			||||||
 | 
					  "Return options from ARGUMENTS."
 | 
				
			||||||
 | 
					  (cl-remove-if-not #'guix-command-argument-option? arguments))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-actions (arguments)
 | 
				
			||||||
 | 
					  "Return actions from ARGUMENTS."
 | 
				
			||||||
 | 
					  (cl-remove-if-not #'guix-command-argument-action? arguments))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-post-process-args (args)
 | 
				
			||||||
 | 
					  "Adjust appropriately command line ARGS returned from popup command."
 | 
				
			||||||
 | 
					  ;; XXX We need to split "--install foo bar" and similar strings into
 | 
				
			||||||
 | 
					  ;; lists of strings.  But some commands (e.g., 'guix hash') accept a
 | 
				
			||||||
 | 
					  ;; file name as the 'rest' argument, and as file names may contain
 | 
				
			||||||
 | 
					  ;; spaces, splitting by spaces will break such names.  For example, the
 | 
				
			||||||
 | 
					  ;; following argument: "-- /tmp/file with spaces" will be transformed
 | 
				
			||||||
 | 
					  ;; into the following list: ("--" "/tmp/file" "with" "spaces") instead
 | 
				
			||||||
 | 
					  ;; of the wished ("--" "/tmp/file with spaces").
 | 
				
			||||||
 | 
					  (let* (rest
 | 
				
			||||||
 | 
					         (rx (rx string-start
 | 
				
			||||||
 | 
					                 (or "-- " "--install " "--remove ")))
 | 
				
			||||||
 | 
					         (args (mapcar (lambda (arg)
 | 
				
			||||||
 | 
					                         (if (string-match-p rx arg)
 | 
				
			||||||
 | 
					                             (progn (push (split-string arg) rest)
 | 
				
			||||||
 | 
					                                    nil)
 | 
				
			||||||
 | 
					                           arg))
 | 
				
			||||||
 | 
					                       args)))
 | 
				
			||||||
 | 
					    (if rest
 | 
				
			||||||
 | 
					        (apply #'append (delq nil args) rest)
 | 
				
			||||||
 | 
					      args)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; 'Execute' actions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-command-default-execute-arguments
 | 
				
			||||||
 | 
					  (list
 | 
				
			||||||
 | 
					   (guix-command-make-argument
 | 
				
			||||||
 | 
					    :name "repl"  :char ?r :doc "Run in Guix REPL")
 | 
				
			||||||
 | 
					   (guix-command-make-argument
 | 
				
			||||||
 | 
					    :name "shell" :char ?s :doc "Run in shell")
 | 
				
			||||||
 | 
					   (guix-command-make-argument
 | 
				
			||||||
 | 
					    :name "copy"  :char ?c :doc "Copy command line"))
 | 
				
			||||||
 | 
					  "List of default 'execute' action arguments.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-command-additional-execute-arguments
 | 
				
			||||||
 | 
					  `((("graph")
 | 
				
			||||||
 | 
					     ,(guix-command-make-argument
 | 
				
			||||||
 | 
					       :name "view" :char ?v :doc "View graph")))
 | 
				
			||||||
 | 
					  "Alist of guix commands and additional 'execute' action arguments.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-execute-arguments (commands)
 | 
				
			||||||
 | 
					  "Return a list of 'execute' action arguments for COMMANDS."
 | 
				
			||||||
 | 
					  (mapcar (lambda (arg)
 | 
				
			||||||
 | 
					            (guix-command-modify-argument arg
 | 
				
			||||||
 | 
					              :action? t
 | 
				
			||||||
 | 
					              :fun (guix-command-action-name
 | 
				
			||||||
 | 
					                    commands (guix-command-argument-name arg))))
 | 
				
			||||||
 | 
					          (append guix-command-default-execute-arguments
 | 
				
			||||||
 | 
					                  (guix-assoc-value
 | 
				
			||||||
 | 
					                   guix-command-additional-execute-arguments commands))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-command-special-executors
 | 
				
			||||||
 | 
					  '((("environment")
 | 
				
			||||||
 | 
					     ("repl" . guix-run-environment-command-in-repl))
 | 
				
			||||||
 | 
					    (("pull")
 | 
				
			||||||
 | 
					     ("repl" . guix-run-pull-command-in-repl))
 | 
				
			||||||
 | 
					    (("graph")
 | 
				
			||||||
 | 
					     ("view" . guix-run-view-graph)))
 | 
				
			||||||
 | 
					  "Alist of guix commands and alists of special executers for them.
 | 
				
			||||||
 | 
					See also `guix-command-default-executors'.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-command-default-executors
 | 
				
			||||||
 | 
					  '(("repl"  . guix-run-command-in-repl)
 | 
				
			||||||
 | 
					    ("shell" . guix-run-command-in-shell)
 | 
				
			||||||
 | 
					    ("copy"  . guix-copy-command-as-kill))
 | 
				
			||||||
 | 
					  "Alist of default executers for action names.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-executor (commands name)
 | 
				
			||||||
 | 
					  "Return function to run command line arguments for guix COMMANDS."
 | 
				
			||||||
 | 
					  (or (guix-assoc-value guix-command-special-executors commands name)
 | 
				
			||||||
 | 
					      (guix-assoc-value guix-command-default-executors name)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-run-environment-command-in-repl (args)
 | 
				
			||||||
 | 
					  "Run 'guix ARGS ...' environment command in Guix REPL."
 | 
				
			||||||
 | 
					  ;; As 'guix environment' usually tries to run another process, it may
 | 
				
			||||||
 | 
					  ;; be fun but not wise to run this command in Geiser REPL.
 | 
				
			||||||
 | 
					  (when (or (member "--dry-run" args)
 | 
				
			||||||
 | 
					            (member "--search-paths" args)
 | 
				
			||||||
 | 
					            (when (y-or-n-p
 | 
				
			||||||
 | 
					                   (format "'%s' command will spawn an external process.
 | 
				
			||||||
 | 
					Do you really want to execute this command in Geiser REPL? "
 | 
				
			||||||
 | 
					                           (guix-command-string args)))
 | 
				
			||||||
 | 
					              (message "May \"M-x shell-mode\" be with you!")
 | 
				
			||||||
 | 
					              t))
 | 
				
			||||||
 | 
					    (guix-run-command-in-repl args)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-run-pull-command-in-repl (args)
 | 
				
			||||||
 | 
					  "Run 'guix ARGS ...' pull command in Guix REPL.
 | 
				
			||||||
 | 
					Perform pull-specific actions after operation, see
 | 
				
			||||||
 | 
					`guix-after-pull-hook' and `guix-update-after-pull'."
 | 
				
			||||||
 | 
					  (guix-eval-in-repl
 | 
				
			||||||
 | 
					   (apply #'guix-make-guile-expression 'guix-command args)
 | 
				
			||||||
 | 
					   nil 'pull))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-run-view-graph (args)
 | 
				
			||||||
 | 
					  "Run 'guix ARGS ...' graph command, make the image and open it."
 | 
				
			||||||
 | 
					  (let* ((graph-file (guix-dot-file-name))
 | 
				
			||||||
 | 
					         (dot-args   (guix-dot-arguments graph-file)))
 | 
				
			||||||
 | 
					    (if (guix-eval-read (guix-make-guile-expression
 | 
				
			||||||
 | 
					                         'pipe-guix-output args dot-args))
 | 
				
			||||||
 | 
					        (guix-find-file graph-file)
 | 
				
			||||||
 | 
					      (error "Couldn't create a graph"))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Generating popups, actions, etc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defmacro guix-command-define-popup-action (name &optional commands)
 | 
				
			||||||
 | 
					  "Define NAME function to generate (if needed) and run popup for COMMANDS."
 | 
				
			||||||
 | 
					  (declare (indent 1) (debug t))
 | 
				
			||||||
 | 
					  (let* ((popup-fun (guix-command-symbol `(,@commands "popup")))
 | 
				
			||||||
 | 
					         (doc (format "Call `%s' (generate it if needed)."
 | 
				
			||||||
 | 
					                      popup-fun)))
 | 
				
			||||||
 | 
					    `(defun ,name (&optional arg)
 | 
				
			||||||
 | 
					       ,doc
 | 
				
			||||||
 | 
					       (interactive "P")
 | 
				
			||||||
 | 
					       (unless (fboundp ',popup-fun)
 | 
				
			||||||
 | 
					         (guix-command-generate-popup ',popup-fun ',commands))
 | 
				
			||||||
 | 
					       (,popup-fun arg))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defmacro guix-command-define-execute-action (name executor
 | 
				
			||||||
 | 
					                                                   &optional commands)
 | 
				
			||||||
 | 
					  "Define NAME function to execute the current action for guix COMMANDS.
 | 
				
			||||||
 | 
					EXECUTOR function is called with the current command line arguments."
 | 
				
			||||||
 | 
					  (declare (indent 1) (debug t))
 | 
				
			||||||
 | 
					  (let* ((arguments-fun (guix-command-symbol `(,@commands "arguments")))
 | 
				
			||||||
 | 
					         (doc (format "Call `%s' with the current popup arguments."
 | 
				
			||||||
 | 
					                      executor)))
 | 
				
			||||||
 | 
					    `(defun ,name (&rest args)
 | 
				
			||||||
 | 
					       ,doc
 | 
				
			||||||
 | 
					       (interactive (,arguments-fun))
 | 
				
			||||||
 | 
					       (,executor (append ',commands
 | 
				
			||||||
 | 
					                          (guix-command-post-process-args args))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-generate-popup-actions (actions &optional commands)
 | 
				
			||||||
 | 
					  "Generate 'popup' commands from ACTIONS arguments for guix COMMANDS."
 | 
				
			||||||
 | 
					  (dolist (action actions)
 | 
				
			||||||
 | 
					    (let ((fun (guix-command-argument-fun action)))
 | 
				
			||||||
 | 
					      (unless (fboundp fun)
 | 
				
			||||||
 | 
					        (eval `(guix-command-define-popup-action ,fun
 | 
				
			||||||
 | 
					                 ,(append commands
 | 
				
			||||||
 | 
					                          (list (guix-command-argument-name action)))))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-generate-execute-actions (actions &optional commands)
 | 
				
			||||||
 | 
					  "Generate 'execute' commands from ACTIONS arguments for guix COMMANDS."
 | 
				
			||||||
 | 
					  (dolist (action actions)
 | 
				
			||||||
 | 
					    (let ((fun (guix-command-argument-fun action)))
 | 
				
			||||||
 | 
					      (unless (fboundp fun)
 | 
				
			||||||
 | 
					        (eval `(guix-command-define-execute-action ,fun
 | 
				
			||||||
 | 
					                 ,(guix-command-executor
 | 
				
			||||||
 | 
					                   commands (guix-command-argument-name action))
 | 
				
			||||||
 | 
					                 ,commands))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-generate-popup (name &optional commands)
 | 
				
			||||||
 | 
					  "Define NAME popup with 'guix COMMANDS ...' interface."
 | 
				
			||||||
 | 
					  (let* ((command  (car commands))
 | 
				
			||||||
 | 
					         (man-page (concat "guix" (and command (concat "-" command))))
 | 
				
			||||||
 | 
					         (doc      (format "Popup window for '%s' command."
 | 
				
			||||||
 | 
					                           (guix-concat-strings (cons "guix" commands)
 | 
				
			||||||
 | 
					                                                " ")))
 | 
				
			||||||
 | 
					         (args     (guix-command-arguments commands))
 | 
				
			||||||
 | 
					         (switches (guix-command-sort-arguments
 | 
				
			||||||
 | 
					                    (guix-command-switches args)))
 | 
				
			||||||
 | 
					         (options  (guix-command-sort-arguments
 | 
				
			||||||
 | 
					                    (guix-command-options args)))
 | 
				
			||||||
 | 
					         (popup-actions (guix-command-sort-arguments
 | 
				
			||||||
 | 
					                         (guix-command-actions args)))
 | 
				
			||||||
 | 
					         (execute-actions (unless popup-actions
 | 
				
			||||||
 | 
					                            (guix-command-execute-arguments commands)))
 | 
				
			||||||
 | 
					         (actions (or popup-actions execute-actions)))
 | 
				
			||||||
 | 
					    (if popup-actions
 | 
				
			||||||
 | 
					        (guix-command-generate-popup-actions popup-actions commands)
 | 
				
			||||||
 | 
					      (guix-command-generate-execute-actions execute-actions commands))
 | 
				
			||||||
 | 
					    (eval
 | 
				
			||||||
 | 
					     `(guix-define-popup ,name
 | 
				
			||||||
 | 
					        ,doc
 | 
				
			||||||
 | 
					        'guix-commands
 | 
				
			||||||
 | 
					        :man-page ,man-page
 | 
				
			||||||
 | 
					        :switches ',(mapcar #'guix-command-switch->popup-switch switches)
 | 
				
			||||||
 | 
					        :options  ',(mapcar #'guix-command-option->popup-option options)
 | 
				
			||||||
 | 
					        :actions  ',(mapcar #'guix-command-action->popup-action actions)
 | 
				
			||||||
 | 
					        :max-action-columns 4))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;;###autoload (autoload 'guix "guix-command" "Popup window for 'guix'." t)
 | 
				
			||||||
 | 
					(guix-command-define-popup-action guix)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defalias 'guix-edit-action #'guix-edit)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-command-font-lock-keywords
 | 
				
			||||||
 | 
					  (eval-when-compile
 | 
				
			||||||
 | 
					    `((,(rx "("
 | 
				
			||||||
 | 
					            (group "guix-command-define-"
 | 
				
			||||||
 | 
					                   (or "popup-action"
 | 
				
			||||||
 | 
					                       "execute-action"
 | 
				
			||||||
 | 
					                       "argument-improver"))
 | 
				
			||||||
 | 
					            symbol-end
 | 
				
			||||||
 | 
					            (zero-or-more blank)
 | 
				
			||||||
 | 
					            (zero-or-one
 | 
				
			||||||
 | 
					             (group (one-or-more (or (syntax word) (syntax symbol))))))
 | 
				
			||||||
 | 
					       (1 font-lock-keyword-face)
 | 
				
			||||||
 | 
					       (2 font-lock-function-name-face nil t)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(font-lock-add-keywords 'emacs-lisp-mode guix-command-font-lock-keywords)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(provide 'guix-command)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; guix-command.el ends here
 | 
				
			||||||
							
								
								
									
										40
									
								
								emacs/guix-config.el.in
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								emacs/guix-config.el.in
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,40 @@
 | 
				
			||||||
 | 
					;;; guix-config.el --- Compile-time configuration of Guix.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; 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 this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Code:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defconst guix-emacs-interface-directory
 | 
				
			||||||
 | 
					  (replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defconst guix-state-directory
 | 
				
			||||||
 | 
					  ;; This must match `NIX_STATE_DIR' as defined in `daemon.am'.
 | 
				
			||||||
 | 
					  (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-guile-program "@GUILE@"
 | 
				
			||||||
 | 
					  "Name of the guile executable used for Guix REPL.
 | 
				
			||||||
 | 
					May be either a string (the name of the executable) or a list of
 | 
				
			||||||
 | 
					strings of the form:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (NAME . ARGS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Where ARGS is a list of arguments to the guile program.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(provide 'guix-config)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; guix-config.el ends here
 | 
				
			||||||
							
								
								
									
										72
									
								
								emacs/guix-external.el
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								emacs/guix-external.el
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,72 @@
 | 
				
			||||||
 | 
					;;; guix-external.el --- External programs  -*- lexical-binding: t -*-
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; Copyright © 2015 Alex Kost <alezost@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 this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Commentary:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; This file provides auxiliary code for running external programs.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Code:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defgroup guix-external nil
 | 
				
			||||||
 | 
					  "Settings for external programs."
 | 
				
			||||||
 | 
					  :group 'guix)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defcustom guix-dot-program (executable-find "dot")
 | 
				
			||||||
 | 
					  "Name of the 'dot' executable."
 | 
				
			||||||
 | 
					  :type 'string
 | 
				
			||||||
 | 
					  :group 'guix-external)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defcustom guix-dot-default-arguments
 | 
				
			||||||
 | 
					  '("-Tpng")
 | 
				
			||||||
 | 
					  "Default arguments for 'dot' program."
 | 
				
			||||||
 | 
					  :type '(repeat string)
 | 
				
			||||||
 | 
					  :group 'guix-external)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defcustom guix-dot-file-name-function #'guix-png-file-name
 | 
				
			||||||
 | 
					  "Function used to define a file name of a temporary 'dot' file.
 | 
				
			||||||
 | 
					The function is called without arguments."
 | 
				
			||||||
 | 
					  :type '(choice (function-item guix-png-file-name)
 | 
				
			||||||
 | 
					                 (function :tag "Other function"))
 | 
				
			||||||
 | 
					  :group 'guix-external)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-dot-arguments (output-file &rest args)
 | 
				
			||||||
 | 
					  "Return a list of dot arguments for writing a graph into OUTPUT-FILE.
 | 
				
			||||||
 | 
					If ARGS is nil, use `guix-dot-default-arguments'."
 | 
				
			||||||
 | 
					  (or guix-dot-program
 | 
				
			||||||
 | 
					      (error (concat "Couldn't find 'dot'.\n"
 | 
				
			||||||
 | 
					                     "Set guix-dot-program to a proper value")))
 | 
				
			||||||
 | 
					  (apply #'list
 | 
				
			||||||
 | 
					         guix-dot-program
 | 
				
			||||||
 | 
					         (concat "-o" output-file)
 | 
				
			||||||
 | 
					         (or args guix-dot-default-arguments)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-dot-file-name ()
 | 
				
			||||||
 | 
					  "Call `guix-dot-file-name-function'."
 | 
				
			||||||
 | 
					  (funcall guix-dot-file-name-function))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-png-file-name ()
 | 
				
			||||||
 | 
					  "Return '.png' file name in the `temporary-file-directory'."
 | 
				
			||||||
 | 
					  (concat (make-temp-name
 | 
				
			||||||
 | 
					           (concat (file-name-as-directory temporary-file-directory)
 | 
				
			||||||
 | 
					                   "graph-"))
 | 
				
			||||||
 | 
					          ".png"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(provide 'guix-external)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; guix-external.el ends here
 | 
				
			||||||
							
								
								
									
										108
									
								
								emacs/guix-help-vars.el
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								emacs/guix-help-vars.el
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,108 @@
 | 
				
			||||||
 | 
					;;; guix-help-vars.el --- Variables related to --help output
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; Copyright © 2015 Alex Kost <alezost@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 this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Commentary:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; This file provides regular expressions to parse various "guix
 | 
				
			||||||
 | 
					;; ... --help" outputs and lists of non-receivable items (system types,
 | 
				
			||||||
 | 
					;; hash formats, etc.).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Code:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Regexps for parsing "guix ..." outputs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-help-parse-option-regexp
 | 
				
			||||||
 | 
					  (rx bol "  "
 | 
				
			||||||
 | 
					      (zero-or-one (group "-" (not (any "- ")))
 | 
				
			||||||
 | 
					                   ",")
 | 
				
			||||||
 | 
					      (one-or-more " ")
 | 
				
			||||||
 | 
					      (group "--" (one-or-more (or wordchar "-")))
 | 
				
			||||||
 | 
					      (group (zero-or-one "[")
 | 
				
			||||||
 | 
					             (zero-or-one "="))
 | 
				
			||||||
 | 
					      (zero-or-more (not space))
 | 
				
			||||||
 | 
					      (one-or-more space)
 | 
				
			||||||
 | 
					      (group (one-or-more any)))
 | 
				
			||||||
 | 
					  "Common regexp used to find command options.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-help-parse-command-regexp
 | 
				
			||||||
 | 
					  (rx bol "   "
 | 
				
			||||||
 | 
					      (group wordchar (one-or-more (or wordchar "-"))))
 | 
				
			||||||
 | 
					  "Regexp used to find guix commands.
 | 
				
			||||||
 | 
					'Command' means any option not prefixed with '-'.  For example,
 | 
				
			||||||
 | 
					guix subcommand, system action, importer, etc.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-help-parse-long-option-regexp
 | 
				
			||||||
 | 
					  (rx (or "  " ", ")
 | 
				
			||||||
 | 
					      (group "--" (one-or-more (or wordchar "-"))
 | 
				
			||||||
 | 
					             (zero-or-one "=")))
 | 
				
			||||||
 | 
					  "Regexp used to find long options.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-help-parse-short-option-regexp
 | 
				
			||||||
 | 
					  (rx bol (one-or-more blank)
 | 
				
			||||||
 | 
					      "-" (group (not (any "- "))))
 | 
				
			||||||
 | 
					  "Regexp used to find short options.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-help-parse-package-regexp
 | 
				
			||||||
 | 
					  (rx bol (group (one-or-more (not blank))))
 | 
				
			||||||
 | 
					  "Regexp used to find names of the packages.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-help-parse-list-regexp
 | 
				
			||||||
 | 
					  (rx bol (zero-or-more blank) "- "
 | 
				
			||||||
 | 
					      (group (one-or-more (or wordchar "-"))))
 | 
				
			||||||
 | 
					  "Regexp used to find various lists (lint checkers, graph types).")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-help-parse-regexp-group 1
 | 
				
			||||||
 | 
					  "Parenthesized expression of regexps used to find commands and
 | 
				
			||||||
 | 
					options.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Non-receivable lists of system types, hash formats, etc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-help-system-types
 | 
				
			||||||
 | 
					  '("x86_64-linux" "i686-linux" "armhf-linux" "mips64el-linux")
 | 
				
			||||||
 | 
					  "List of supported systems.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-help-source-types
 | 
				
			||||||
 | 
					  '("package" "all" "transitive")
 | 
				
			||||||
 | 
					  "List of supported sources types.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-help-hash-formats
 | 
				
			||||||
 | 
					  '("nix-base32" "base32" "base16" "hex" "hexadecimal")
 | 
				
			||||||
 | 
					  "List of supported hash formats.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-help-refresh-subsets
 | 
				
			||||||
 | 
					  '("core" "non-core")
 | 
				
			||||||
 | 
					  "List of supported 'refresh' subsets.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-help-key-policies
 | 
				
			||||||
 | 
					  '("interactive" "always" "never")
 | 
				
			||||||
 | 
					  "List of supported key download policies.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-help-verify-options
 | 
				
			||||||
 | 
					  '("repair" "contents")
 | 
				
			||||||
 | 
					  "List of supported 'verify' options")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-help-elpa-archives
 | 
				
			||||||
 | 
					  '("gnu" "melpa" "melpa-stable")
 | 
				
			||||||
 | 
					  "List of supported ELPA archives.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(provide 'guix-help-vars)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; guix-help-vars.el ends here
 | 
				
			||||||
| 
						 | 
					@ -178,13 +178,13 @@ The order of displayed parameters is the same as in this list.")
 | 
				
			||||||
(defun guix-info-get-insert-methods (entry-type param)
 | 
					(defun guix-info-get-insert-methods (entry-type param)
 | 
				
			||||||
  "Return list of insert methods for parameter PARAM of ENTRY-TYPE.
 | 
					  "Return list of insert methods for parameter PARAM of ENTRY-TYPE.
 | 
				
			||||||
See `guix-info-insert-methods' for details."
 | 
					See `guix-info-insert-methods' for details."
 | 
				
			||||||
  (guix-get-key-val guix-info-insert-methods
 | 
					  (guix-assq-value guix-info-insert-methods
 | 
				
			||||||
                    entry-type param))
 | 
					                   entry-type param))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-info-get-displayed-params (entry-type)
 | 
					(defun guix-info-get-displayed-params (entry-type)
 | 
				
			||||||
  "Return parameters of ENTRY-TYPE that should be displayed."
 | 
					  "Return parameters of ENTRY-TYPE that should be displayed."
 | 
				
			||||||
  (guix-get-key-val guix-info-displayed-params
 | 
					  (guix-assq-value guix-info-displayed-params
 | 
				
			||||||
                    entry-type))
 | 
					                   entry-type))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-info-get-indent (&optional level)
 | 
					(defun guix-info-get-indent (&optional level)
 | 
				
			||||||
  "Return `guix-info-indent' \"multiplied\" by LEVEL spaces.
 | 
					  "Return `guix-info-indent' \"multiplied\" by LEVEL spaces.
 | 
				
			||||||
| 
						 | 
					@ -232,7 +232,7 @@ Use `guix-info-insert-ENTRY-TYPE-function' or
 | 
				
			||||||
  "Insert title and value of a PARAM at point.
 | 
					  "Insert title and value of a PARAM at point.
 | 
				
			||||||
ENTRY is alist with parameters and their values.
 | 
					ENTRY is alist with parameters and their values.
 | 
				
			||||||
ENTRY-TYPE is a type of ENTRY."
 | 
					ENTRY-TYPE is a type of ENTRY."
 | 
				
			||||||
  (let ((val (guix-get-key-val entry param)))
 | 
					  (let ((val (guix-assq-value entry param)))
 | 
				
			||||||
    (unless (and guix-info-ignore-empty-vals (null val))
 | 
					    (unless (and guix-info-ignore-empty-vals (null val))
 | 
				
			||||||
      (let* ((title          (guix-get-param-title entry-type param))
 | 
					      (let* ((title          (guix-get-param-title entry-type param))
 | 
				
			||||||
             (insert-methods (guix-info-get-insert-methods entry-type param))
 | 
					             (insert-methods (guix-info-get-insert-methods entry-type param))
 | 
				
			||||||
| 
						 | 
					@ -492,12 +492,12 @@ filling them to fit the window."
 | 
				
			||||||
(defun guix-package-info-insert-heading (entry)
 | 
					(defun guix-package-info-insert-heading (entry)
 | 
				
			||||||
  "Insert the heading for package ENTRY.
 | 
					  "Insert the heading for package ENTRY.
 | 
				
			||||||
Show package name, version, and `guix-package-info-heading-params'."
 | 
					Show package name, version, and `guix-package-info-heading-params'."
 | 
				
			||||||
  (guix-format-insert (concat (guix-get-key-val entry 'name) " "
 | 
					  (guix-format-insert (concat (guix-assq-value entry 'name) " "
 | 
				
			||||||
                              (guix-get-key-val entry 'version))
 | 
					                              (guix-assq-value entry 'version))
 | 
				
			||||||
                      'guix-package-info-heading)
 | 
					                      'guix-package-info-heading)
 | 
				
			||||||
  (insert "\n\n")
 | 
					  (insert "\n\n")
 | 
				
			||||||
  (mapc (lambda (param)
 | 
					  (mapc (lambda (param)
 | 
				
			||||||
          (let ((val  (guix-get-key-val entry param))
 | 
					          (let ((val  (guix-assq-value entry param))
 | 
				
			||||||
                (face (guix-get-symbol (symbol-name param)
 | 
					                (face (guix-get-symbol (symbol-name param)
 | 
				
			||||||
                                       'info 'package)))
 | 
					                                       'info 'package)))
 | 
				
			||||||
            (when val
 | 
					            (when val
 | 
				
			||||||
| 
						 | 
					@ -587,10 +587,10 @@ If nil, insert installed info in a default way.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-package-info-insert-outputs (outputs entry)
 | 
					(defun guix-package-info-insert-outputs (outputs entry)
 | 
				
			||||||
  "Insert OUTPUTS from package ENTRY at point."
 | 
					  "Insert OUTPUTS from package ENTRY at point."
 | 
				
			||||||
  (and (guix-get-key-val entry 'obsolete)
 | 
					  (and (guix-assq-value entry 'obsolete)
 | 
				
			||||||
       (guix-package-info-insert-obsolete-text))
 | 
					       (guix-package-info-insert-obsolete-text))
 | 
				
			||||||
  (and (guix-get-key-val entry 'non-unique)
 | 
					  (and (guix-assq-value entry 'non-unique)
 | 
				
			||||||
       (guix-get-key-val entry 'installed)
 | 
					       (guix-assq-value entry 'installed)
 | 
				
			||||||
       (guix-package-info-insert-non-unique-text
 | 
					       (guix-package-info-insert-non-unique-text
 | 
				
			||||||
        (guix-get-full-name entry)))
 | 
					        (guix-get-full-name entry)))
 | 
				
			||||||
  (insert "\n")
 | 
					  (insert "\n")
 | 
				
			||||||
| 
						 | 
					@ -617,11 +617,11 @@ If nil, insert installed info in a default way.")
 | 
				
			||||||
Make some fancy text with buttons and additional stuff if the
 | 
					Make some fancy text with buttons and additional stuff if the
 | 
				
			||||||
current OUTPUT is installed (if there is such output in
 | 
					current OUTPUT is installed (if there is such output in
 | 
				
			||||||
`installed' parameter of a package ENTRY)."
 | 
					`installed' parameter of a package ENTRY)."
 | 
				
			||||||
  (let* ((installed (guix-get-key-val entry 'installed))
 | 
					  (let* ((installed (guix-assq-value entry 'installed))
 | 
				
			||||||
         (obsolete  (guix-get-key-val entry 'obsolete))
 | 
					         (obsolete  (guix-assq-value entry 'obsolete))
 | 
				
			||||||
         (installed-entry (cl-find-if
 | 
					         (installed-entry (cl-find-if
 | 
				
			||||||
                           (lambda (entry)
 | 
					                           (lambda (entry)
 | 
				
			||||||
                             (string= (guix-get-key-val entry 'output)
 | 
					                             (string= (guix-assq-value entry 'output)
 | 
				
			||||||
                                      output))
 | 
					                                      output))
 | 
				
			||||||
                           installed))
 | 
					                           installed))
 | 
				
			||||||
         (action-type (if installed-entry 'delete 'install)))
 | 
					         (action-type (if installed-entry 'delete 'install)))
 | 
				
			||||||
| 
						 | 
					@ -655,8 +655,8 @@ ENTRY is an alist with package info."
 | 
				
			||||||
        (current-buffer)))
 | 
					        (current-buffer)))
 | 
				
			||||||
     (concat type-str " '" full-name "'")
 | 
					     (concat type-str " '" full-name "'")
 | 
				
			||||||
     'action-type type
 | 
					     'action-type type
 | 
				
			||||||
     'id (or (guix-get-key-val entry 'package-id)
 | 
					     'id (or (guix-assq-value entry 'package-id)
 | 
				
			||||||
             (guix-get-key-val entry 'id))
 | 
					             (guix-assq-value entry 'id))
 | 
				
			||||||
     'output output)))
 | 
					     'output output)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-package-info-insert-output-path (path &optional _)
 | 
					(defun guix-package-info-insert-output-path (path &optional _)
 | 
				
			||||||
| 
						 | 
					@ -720,7 +720,7 @@ PACKAGE-ID is an ID of the package which source to show."
 | 
				
			||||||
           (entries (cl-substitute-if
 | 
					           (entries (cl-substitute-if
 | 
				
			||||||
                     new-entry
 | 
					                     new-entry
 | 
				
			||||||
                     (lambda (entry)
 | 
					                     (lambda (entry)
 | 
				
			||||||
                       (equal (guix-get-key-val entry 'id)
 | 
					                       (equal (guix-assq-value entry 'id)
 | 
				
			||||||
                              entry-id))
 | 
					                              entry-id))
 | 
				
			||||||
                     guix-entries
 | 
					                     guix-entries
 | 
				
			||||||
                     :count 1)))
 | 
					                     :count 1)))
 | 
				
			||||||
| 
						 | 
					@ -746,9 +746,9 @@ SOURCE is a list of URLs."
 | 
				
			||||||
  (guix-info-insert-indent)
 | 
					  (guix-info-insert-indent)
 | 
				
			||||||
  (if (null source)
 | 
					  (if (null source)
 | 
				
			||||||
      (guix-format-insert nil)
 | 
					      (guix-format-insert nil)
 | 
				
			||||||
    (let* ((source-file (guix-get-key-val entry 'source-file))
 | 
					    (let* ((source-file (guix-assq-value entry 'source-file))
 | 
				
			||||||
           (entry-id    (guix-get-key-val entry 'id))
 | 
					           (entry-id    (guix-assq-value entry 'id))
 | 
				
			||||||
           (package-id  (or (guix-get-key-val entry 'package-id)
 | 
					           (package-id  (or (guix-assq-value entry 'package-id)
 | 
				
			||||||
                            entry-id)))
 | 
					                            entry-id)))
 | 
				
			||||||
      (if (null source-file)
 | 
					      (if (null source-file)
 | 
				
			||||||
          (guix-info-insert-action-button
 | 
					          (guix-info-insert-action-button
 | 
				
			||||||
| 
						 | 
					@ -798,13 +798,13 @@ If nil, insert output in a default way.")
 | 
				
			||||||
  "Insert output VERSION and obsolete text if needed at point."
 | 
					  "Insert output VERSION and obsolete text if needed at point."
 | 
				
			||||||
  (guix-info-insert-val-default version
 | 
					  (guix-info-insert-val-default version
 | 
				
			||||||
                                'guix-package-info-version)
 | 
					                                'guix-package-info-version)
 | 
				
			||||||
  (and (guix-get-key-val entry 'obsolete)
 | 
					  (and (guix-assq-value entry 'obsolete)
 | 
				
			||||||
       (guix-package-info-insert-obsolete-text)))
 | 
					       (guix-package-info-insert-obsolete-text)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-output-info-insert-output (output entry)
 | 
					(defun guix-output-info-insert-output (output entry)
 | 
				
			||||||
  "Insert OUTPUT and action buttons at point."
 | 
					  "Insert OUTPUT and action buttons at point."
 | 
				
			||||||
  (let* ((installed (guix-get-key-val entry 'installed))
 | 
					  (let* ((installed (guix-assq-value entry 'installed))
 | 
				
			||||||
         (obsolete  (guix-get-key-val entry 'obsolete))
 | 
					         (obsolete  (guix-assq-value entry 'obsolete))
 | 
				
			||||||
         (action-type (if installed 'delete 'install)))
 | 
					         (action-type (if installed 'delete 'install)))
 | 
				
			||||||
    (guix-info-insert-val-default
 | 
					    (guix-info-insert-val-default
 | 
				
			||||||
     output
 | 
					     output
 | 
				
			||||||
| 
						 | 
					@ -874,7 +874,7 @@ If nil, insert generation in a default way.")
 | 
				
			||||||
       (guix-switch-to-generation guix-profile (button-get btn 'number)
 | 
					       (guix-switch-to-generation guix-profile (button-get btn 'number)
 | 
				
			||||||
                                  (current-buffer)))
 | 
					                                  (current-buffer)))
 | 
				
			||||||
     "Switch to this generation (make it the current one)"
 | 
					     "Switch to this generation (make it the current one)"
 | 
				
			||||||
     'number (guix-get-key-val entry 'number))))
 | 
					     'number (guix-assq-value entry 'number))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(provide 'guix-info)
 | 
					(provide 'guix-info)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,5 @@
 | 
				
			||||||
(require 'guix-autoloads)
 | 
					(require 'guix-autoloads)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defvar guix-load-path
 | 
					 | 
				
			||||||
  (replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@")
 | 
					 | 
				
			||||||
  "Directory with scheme files for \"guix.el\" package.")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(defcustom guix-package-enable-at-startup t
 | 
					(defcustom guix-package-enable-at-startup t
 | 
				
			||||||
  "If non-nil, activate Emacs packages installed in a user profile.
 | 
					  "If non-nil, activate Emacs packages installed in a user profile.
 | 
				
			||||||
Set this variable to nil before requiring `guix-init' file to
 | 
					Set this variable to nil before requiring `guix-init' file to
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
;;; guix-list.el --- List buffers for displaying entries   -*- lexical-binding: t -*-
 | 
					;;; guix-list.el --- List buffers for displaying entries   -*- lexical-binding: t -*-
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; Copyright © 2014 Alex Kost <alezost@gmail.com>
 | 
					;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; This file is part of GNU Guix.
 | 
					;; This file is part of GNU Guix.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -110,13 +110,13 @@ parameters and their values).")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-list-get-param-title (entry-type param)
 | 
					(defun guix-list-get-param-title (entry-type param)
 | 
				
			||||||
  "Return title of an ENTRY-TYPE entry parameter PARAM."
 | 
					  "Return title of an ENTRY-TYPE entry parameter PARAM."
 | 
				
			||||||
  (or (guix-get-key-val guix-list-column-titles
 | 
					  (or (guix-assq-value guix-list-column-titles
 | 
				
			||||||
                        entry-type param)
 | 
					                       entry-type param)
 | 
				
			||||||
      (guix-get-param-title entry-type param)))
 | 
					      (guix-get-param-title entry-type param)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-list-get-column-format (entry-type)
 | 
					(defun guix-list-get-column-format (entry-type)
 | 
				
			||||||
  "Return column format for ENTRY-TYPE."
 | 
					  "Return column format for ENTRY-TYPE."
 | 
				
			||||||
  (guix-get-key-val guix-list-column-format entry-type))
 | 
					  (guix-assq-value guix-list-column-format entry-type))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-list-get-displayed-params (entry-type)
 | 
					(defun guix-list-get-displayed-params (entry-type)
 | 
				
			||||||
  "Return list of parameters of ENTRY-TYPE that should be displayed."
 | 
					  "Return list of parameters of ENTRY-TYPE that should be displayed."
 | 
				
			||||||
| 
						 | 
					@ -170,7 +170,7 @@ ENTRIES should have a form of `guix-entries'."
 | 
				
			||||||
Values are taken from ENTRIES which should have the form of
 | 
					Values are taken from ENTRIES which should have the form of
 | 
				
			||||||
`guix-entries'."
 | 
					`guix-entries'."
 | 
				
			||||||
  (mapcar (lambda (entry)
 | 
					  (mapcar (lambda (entry)
 | 
				
			||||||
            (list (guix-get-key-val entry 'id)
 | 
					            (list (guix-assq-value entry 'id)
 | 
				
			||||||
                  (guix-list-get-tabulated-entry entry entry-type)))
 | 
					                  (guix-list-get-tabulated-entry entry entry-type)))
 | 
				
			||||||
          entries))
 | 
					          entries))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -180,9 +180,9 @@ Parameters are taken from ENTRY of ENTRY-TYPE."
 | 
				
			||||||
  (guix-list-make-tabulated-vector
 | 
					  (guix-list-make-tabulated-vector
 | 
				
			||||||
   entry-type
 | 
					   entry-type
 | 
				
			||||||
   (lambda (param _)
 | 
					   (lambda (param _)
 | 
				
			||||||
     (let ((val (guix-get-key-val entry param))
 | 
					     (let ((val (guix-assq-value entry param))
 | 
				
			||||||
           (fun (guix-get-key-val guix-list-column-value-methods
 | 
					           (fun (guix-assq-value guix-list-column-value-methods
 | 
				
			||||||
                                  entry-type param)))
 | 
					                                 entry-type param)))
 | 
				
			||||||
       (if fun
 | 
					       (if fun
 | 
				
			||||||
           (funcall fun val entry)
 | 
					           (funcall fun val entry)
 | 
				
			||||||
         (guix-get-string val))))))
 | 
					         (guix-get-string val))))))
 | 
				
			||||||
| 
						 | 
					@ -221,7 +221,7 @@ VAL may be nil."
 | 
				
			||||||
    (guix-package-list-mode
 | 
					    (guix-package-list-mode
 | 
				
			||||||
     (guix-list-current-id))
 | 
					     (guix-list-current-id))
 | 
				
			||||||
    (guix-output-list-mode
 | 
					    (guix-output-list-mode
 | 
				
			||||||
     (guix-get-key-val (guix-list-current-entry) 'package-id))))
 | 
					     (guix-assq-value (guix-list-current-entry) 'package-id))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-list-for-each-line (fun &rest args)
 | 
					(defun guix-list-for-each-line (fun &rest args)
 | 
				
			||||||
  "Call FUN with ARGS for each entry line."
 | 
					  "Call FUN with ARGS for each entry line."
 | 
				
			||||||
| 
						 | 
					@ -262,7 +262,7 @@ ARGS is a list of additional values.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defsubst guix-list-get-mark (name)
 | 
					(defsubst guix-list-get-mark (name)
 | 
				
			||||||
  "Return mark character by its NAME."
 | 
					  "Return mark character by its NAME."
 | 
				
			||||||
  (or (guix-get-key-val guix-list-mark-alist name)
 | 
					  (or (guix-assq-value guix-list-mark-alist name)
 | 
				
			||||||
      (error "Mark '%S' not found" name)))
 | 
					      (error "Mark '%S' not found" name)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defsubst guix-list-get-mark-string (name)
 | 
					(defsubst guix-list-get-mark-string (name)
 | 
				
			||||||
| 
						 | 
					@ -355,8 +355,8 @@ With ARG, unmark all lines."
 | 
				
			||||||
  "Put marks according to `guix-list-mark-alist'."
 | 
					  "Put marks according to `guix-list-mark-alist'."
 | 
				
			||||||
  (guix-list-for-each-line
 | 
					  (guix-list-for-each-line
 | 
				
			||||||
   (lambda ()
 | 
					   (lambda ()
 | 
				
			||||||
     (let ((mark-name (car (guix-get-key-val guix-list-marked
 | 
					     (let ((mark-name (car (guix-assq-value guix-list-marked
 | 
				
			||||||
                                             (guix-list-current-id)))))
 | 
					                                            (guix-list-current-id)))))
 | 
				
			||||||
       (tabulated-list-put-tag
 | 
					       (tabulated-list-put-tag
 | 
				
			||||||
        (guix-list-get-mark-string (or mark-name 'empty)))))))
 | 
					        (guix-list-get-mark-string (or mark-name 'empty)))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -472,7 +472,7 @@ With prefix (if ARG is non-nil), describe entries marked with any mark."
 | 
				
			||||||
(defun guix-list-edit-package ()
 | 
					(defun guix-list-edit-package ()
 | 
				
			||||||
  "Go to the location of the current package."
 | 
					  "Go to the location of the current package."
 | 
				
			||||||
  (interactive)
 | 
					  (interactive)
 | 
				
			||||||
  (guix-edit-package (guix-list-current-package-id)))
 | 
					  (guix-edit (guix-list-current-package-id)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; Displaying packages
 | 
					;;; Displaying packages
 | 
				
			||||||
| 
						 | 
					@ -524,16 +524,16 @@ likely)."
 | 
				
			||||||
Colorize it with `guix-package-list-installed' or
 | 
					Colorize it with `guix-package-list-installed' or
 | 
				
			||||||
`guix-package-list-obsolete' if needed."
 | 
					`guix-package-list-obsolete' if needed."
 | 
				
			||||||
  (guix-get-string name
 | 
					  (guix-get-string name
 | 
				
			||||||
                   (cond ((guix-get-key-val entry 'obsolete)
 | 
					                   (cond ((guix-assq-value entry 'obsolete)
 | 
				
			||||||
                          'guix-package-list-obsolete)
 | 
					                          'guix-package-list-obsolete)
 | 
				
			||||||
                         ((guix-get-key-val entry 'installed)
 | 
					                         ((guix-assq-value entry 'installed)
 | 
				
			||||||
                          'guix-package-list-installed))))
 | 
					                          'guix-package-list-installed))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-package-list-get-installed-outputs (installed &optional _)
 | 
					(defun guix-package-list-get-installed-outputs (installed &optional _)
 | 
				
			||||||
  "Return string with outputs from INSTALLED entries."
 | 
					  "Return string with outputs from INSTALLED entries."
 | 
				
			||||||
  (guix-get-string
 | 
					  (guix-get-string
 | 
				
			||||||
   (mapcar (lambda (entry)
 | 
					   (mapcar (lambda (entry)
 | 
				
			||||||
             (guix-get-key-val entry 'output))
 | 
					             (guix-assq-value entry 'output))
 | 
				
			||||||
           installed)))
 | 
					           installed)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-package-list-marking-check ()
 | 
					(defun guix-package-list-marking-check ()
 | 
				
			||||||
| 
						 | 
					@ -562,7 +562,7 @@ be separated with \",\")."
 | 
				
			||||||
  (interactive "P")
 | 
					  (interactive "P")
 | 
				
			||||||
  (guix-package-list-marking-check)
 | 
					  (guix-package-list-marking-check)
 | 
				
			||||||
  (let* ((entry     (guix-list-current-entry))
 | 
					  (let* ((entry     (guix-list-current-entry))
 | 
				
			||||||
         (all       (guix-get-key-val entry 'outputs))
 | 
					         (all       (guix-assq-value entry 'outputs))
 | 
				
			||||||
         (installed (guix-get-installed-outputs entry))
 | 
					         (installed (guix-get-installed-outputs entry))
 | 
				
			||||||
         (available (cl-set-difference all installed :test #'string=)))
 | 
					         (available (cl-set-difference all installed :test #'string=)))
 | 
				
			||||||
    (or available
 | 
					    (or available
 | 
				
			||||||
| 
						 | 
					@ -597,7 +597,7 @@ be separated with \",\")."
 | 
				
			||||||
         (installed (guix-get-installed-outputs entry)))
 | 
					         (installed (guix-get-installed-outputs entry)))
 | 
				
			||||||
    (or installed
 | 
					    (or installed
 | 
				
			||||||
        (user-error "This package is not installed"))
 | 
					        (user-error "This package is not installed"))
 | 
				
			||||||
    (when (or (guix-get-key-val entry 'obsolete)
 | 
					    (when (or (guix-assq-value entry 'obsolete)
 | 
				
			||||||
              (y-or-n-p "This package is not obsolete.  Try to upgrade it anyway? "))
 | 
					              (y-or-n-p "This package is not obsolete.  Try to upgrade it anyway? "))
 | 
				
			||||||
      (guix-package-list-mark-outputs
 | 
					      (guix-package-list-mark-outputs
 | 
				
			||||||
       'upgrade installed
 | 
					       'upgrade installed
 | 
				
			||||||
| 
						 | 
					@ -611,14 +611,14 @@ accept an entry as argument."
 | 
				
			||||||
  (guix-package-list-marking-check)
 | 
					  (guix-package-list-marking-check)
 | 
				
			||||||
  (let ((obsolete (cl-remove-if-not
 | 
					  (let ((obsolete (cl-remove-if-not
 | 
				
			||||||
                   (lambda (entry)
 | 
					                   (lambda (entry)
 | 
				
			||||||
                     (guix-get-key-val entry 'obsolete))
 | 
					                     (guix-assq-value entry 'obsolete))
 | 
				
			||||||
                   guix-entries)))
 | 
					                   guix-entries)))
 | 
				
			||||||
    (guix-list-for-each-line
 | 
					    (guix-list-for-each-line
 | 
				
			||||||
     (lambda ()
 | 
					     (lambda ()
 | 
				
			||||||
       (let* ((id (guix-list-current-id))
 | 
					       (let* ((id (guix-list-current-id))
 | 
				
			||||||
              (entry (cl-find-if
 | 
					              (entry (cl-find-if
 | 
				
			||||||
                      (lambda (entry)
 | 
					                      (lambda (entry)
 | 
				
			||||||
                        (equal id (guix-get-key-val entry 'id)))
 | 
					                        (equal id (guix-assq-value entry 'id)))
 | 
				
			||||||
                      obsolete)))
 | 
					                      obsolete)))
 | 
				
			||||||
         (when entry
 | 
					         (when entry
 | 
				
			||||||
           (funcall fun entry)))))))
 | 
					           (funcall fun entry)))))))
 | 
				
			||||||
| 
						 | 
					@ -682,7 +682,7 @@ The specification is suitable for `guix-process-package-actions'."
 | 
				
			||||||
  (interactive)
 | 
					  (interactive)
 | 
				
			||||||
  (guix-package-list-marking-check)
 | 
					  (guix-package-list-marking-check)
 | 
				
			||||||
  (let* ((entry     (guix-list-current-entry))
 | 
					  (let* ((entry     (guix-list-current-entry))
 | 
				
			||||||
         (installed (guix-get-key-val entry 'installed)))
 | 
					         (installed (guix-assq-value entry 'installed)))
 | 
				
			||||||
    (if installed
 | 
					    (if installed
 | 
				
			||||||
        (user-error "This output is already installed")
 | 
					        (user-error "This output is already installed")
 | 
				
			||||||
      (guix-list--mark 'install t))))
 | 
					      (guix-list--mark 'install t))))
 | 
				
			||||||
| 
						 | 
					@ -692,7 +692,7 @@ The specification is suitable for `guix-process-package-actions'."
 | 
				
			||||||
  (interactive)
 | 
					  (interactive)
 | 
				
			||||||
  (guix-package-list-marking-check)
 | 
					  (guix-package-list-marking-check)
 | 
				
			||||||
  (let* ((entry     (guix-list-current-entry))
 | 
					  (let* ((entry     (guix-list-current-entry))
 | 
				
			||||||
         (installed (guix-get-key-val entry 'installed)))
 | 
					         (installed (guix-assq-value entry 'installed)))
 | 
				
			||||||
    (if installed
 | 
					    (if installed
 | 
				
			||||||
        (guix-list--mark 'delete t)
 | 
					        (guix-list--mark 'delete t)
 | 
				
			||||||
      (user-error "This output is not installed"))))
 | 
					      (user-error "This output is not installed"))))
 | 
				
			||||||
| 
						 | 
					@ -702,10 +702,10 @@ The specification is suitable for `guix-process-package-actions'."
 | 
				
			||||||
  (interactive)
 | 
					  (interactive)
 | 
				
			||||||
  (guix-package-list-marking-check)
 | 
					  (guix-package-list-marking-check)
 | 
				
			||||||
  (let* ((entry     (guix-list-current-entry))
 | 
					  (let* ((entry     (guix-list-current-entry))
 | 
				
			||||||
         (installed (guix-get-key-val entry 'installed)))
 | 
					         (installed (guix-assq-value entry 'installed)))
 | 
				
			||||||
    (or installed
 | 
					    (or installed
 | 
				
			||||||
        (user-error "This output is not installed"))
 | 
					        (user-error "This output is not installed"))
 | 
				
			||||||
    (when (or (guix-get-key-val entry 'obsolete)
 | 
					    (when (or (guix-assq-value entry 'obsolete)
 | 
				
			||||||
              (y-or-n-p "This output is not obsolete.  Try to upgrade it anyway? "))
 | 
					              (y-or-n-p "This output is not obsolete.  Try to upgrade it anyway? "))
 | 
				
			||||||
      (guix-list--mark 'upgrade t))))
 | 
					      (guix-list--mark 'upgrade t))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -777,8 +777,8 @@ VAL is a boolean value."
 | 
				
			||||||
  "Switch current profile to the generation at point."
 | 
					  "Switch current profile to the generation at point."
 | 
				
			||||||
  (interactive)
 | 
					  (interactive)
 | 
				
			||||||
  (let* ((entry   (guix-list-current-entry))
 | 
					  (let* ((entry   (guix-list-current-entry))
 | 
				
			||||||
         (current (guix-get-key-val entry 'current))
 | 
					         (current (guix-assq-value entry 'current))
 | 
				
			||||||
         (number  (guix-get-key-val entry 'number)))
 | 
					         (number  (guix-assq-value entry 'number)))
 | 
				
			||||||
    (if current
 | 
					    (if current
 | 
				
			||||||
        (user-error "This generation is already the current one")
 | 
					        (user-error "This generation is already the current one")
 | 
				
			||||||
      (guix-switch-to-generation guix-profile number (current-buffer)))))
 | 
					      (guix-switch-to-generation guix-profile number (current-buffer)))))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
 | 
					;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -45,6 +45,7 @@
 | 
				
			||||||
(use-modules
 | 
					(use-modules
 | 
				
			||||||
 (ice-9 vlist)
 | 
					 (ice-9 vlist)
 | 
				
			||||||
 (ice-9 match)
 | 
					 (ice-9 match)
 | 
				
			||||||
 | 
					 (ice-9 popen)
 | 
				
			||||||
 (srfi srfi-1)
 | 
					 (srfi srfi-1)
 | 
				
			||||||
 (srfi srfi-2)
 | 
					 (srfi srfi-2)
 | 
				
			||||||
 (srfi srfi-11)
 | 
					 (srfi srfi-11)
 | 
				
			||||||
| 
						 | 
					@ -57,6 +58,8 @@
 | 
				
			||||||
 (guix licenses)
 | 
					 (guix licenses)
 | 
				
			||||||
 (guix utils)
 | 
					 (guix utils)
 | 
				
			||||||
 (guix ui)
 | 
					 (guix ui)
 | 
				
			||||||
 | 
					 (guix scripts graph)
 | 
				
			||||||
 | 
					 (guix scripts lint)
 | 
				
			||||||
 (guix scripts package)
 | 
					 (guix scripts package)
 | 
				
			||||||
 (guix scripts pull)
 | 
					 (guix scripts pull)
 | 
				
			||||||
 (gnu packages))
 | 
					 (gnu packages))
 | 
				
			||||||
| 
						 | 
					@ -68,7 +71,14 @@
 | 
				
			||||||
(define (list-maybe obj)
 | 
					(define (list-maybe obj)
 | 
				
			||||||
  (if (list? obj) obj (list obj)))
 | 
					  (if (list? obj) obj (list obj)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define full-name->name+version package-name->name+version)
 | 
					(define (full-name->name+version spec)
 | 
				
			||||||
 | 
					  "Given package specification SPEC with or without output,
 | 
				
			||||||
 | 
					return two values: name and version.  For example, for SPEC
 | 
				
			||||||
 | 
					\"foo-0.9.1b:lib\", return \"foo\" and \"0.9.1b\"."
 | 
				
			||||||
 | 
					  (let-values (((name version output)
 | 
				
			||||||
 | 
					                (package-specification->name+version+output spec)))
 | 
				
			||||||
 | 
					    (values name version)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (name+version->full-name name version)
 | 
					(define (name+version->full-name name version)
 | 
				
			||||||
  (string-append name "-" version))
 | 
					  (string-append name "-" version))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -244,6 +254,10 @@ Example:
 | 
				
			||||||
  (filter-map (match-lambda
 | 
					  (filter-map (match-lambda
 | 
				
			||||||
               ((_ (? package? package))
 | 
					               ((_ (? package? package))
 | 
				
			||||||
                (package-full-name package))
 | 
					                (package-full-name package))
 | 
				
			||||||
 | 
					               ((_ (? package? package) output)
 | 
				
			||||||
 | 
					                (make-package-specification (package-name package)
 | 
				
			||||||
 | 
					                                            (package-version package)
 | 
				
			||||||
 | 
					                                            output))
 | 
				
			||||||
               (_ #f))
 | 
					               (_ #f))
 | 
				
			||||||
              inputs))
 | 
					              inputs))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -279,7 +293,7 @@ Example:
 | 
				
			||||||
    (license           . ,package-license-names)
 | 
					    (license           . ,package-license-names)
 | 
				
			||||||
    (source            . ,package-source-names)
 | 
					    (source            . ,package-source-names)
 | 
				
			||||||
    (synopsis          . ,package-synopsis)
 | 
					    (synopsis          . ,package-synopsis)
 | 
				
			||||||
    (description       . ,package-description)
 | 
					    (description       . ,package-description-string)
 | 
				
			||||||
    (home-url          . ,package-home-page)
 | 
					    (home-url          . ,package-home-page)
 | 
				
			||||||
    (outputs           . ,package-outputs)
 | 
					    (outputs           . ,package-outputs)
 | 
				
			||||||
    (non-unique        . ,(negate package-unique?))
 | 
					    (non-unique        . ,(negate package-unique?))
 | 
				
			||||||
| 
						 | 
					@ -887,9 +901,10 @@ GENERATIONS is a list of generation numbers."
 | 
				
			||||||
  (with-store store
 | 
					  (with-store store
 | 
				
			||||||
    (delete-generations store profile generations)))
 | 
					    (delete-generations store profile generations)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (package-location-string package-id)
 | 
					(define (package-location-string id-or-name)
 | 
				
			||||||
  "Return a location string of a package PACKAGE-ID."
 | 
					  "Return a location string of a package with ID-OR-NAME."
 | 
				
			||||||
  (and-let* ((package  (package-by-id package-id))
 | 
					  (and-let* ((package  (or (package-by-id id-or-name)
 | 
				
			||||||
 | 
					                           (first (packages-by-name id-or-name))))
 | 
				
			||||||
             (location (package-location package)))
 | 
					             (location (package-location package)))
 | 
				
			||||||
    (location->string location)))
 | 
					    (location->string location)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -927,3 +942,54 @@ GENERATIONS is a list of generation numbers."
 | 
				
			||||||
          (build-derivations store derivations))
 | 
					          (build-derivations store derivations))
 | 
				
			||||||
        (format #t "The source store path: ~a~%"
 | 
					        (format #t "The source store path: ~a~%"
 | 
				
			||||||
                (package-source-derivation->store-path derivation))))))
 | 
					                (package-source-derivation->store-path derivation))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Executing guix commands
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (guix-command . args)
 | 
				
			||||||
 | 
					  "Run 'guix ARGS ...' command."
 | 
				
			||||||
 | 
					  (catch 'quit
 | 
				
			||||||
 | 
					    (lambda () (apply run-guix args))
 | 
				
			||||||
 | 
					    (const #t)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (guix-command-output . args)
 | 
				
			||||||
 | 
					  "Return string with 'guix ARGS ...' output."
 | 
				
			||||||
 | 
					  (with-output-to-string
 | 
				
			||||||
 | 
					    (lambda () (apply guix-command args))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (help-string . commands)
 | 
				
			||||||
 | 
					  "Return string with 'guix COMMANDS ... --help' output."
 | 
				
			||||||
 | 
					  (apply guix-command-output `(,@commands "--help")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (pipe-guix-output guix-args command-args)
 | 
				
			||||||
 | 
					  "Run 'guix GUIX-ARGS ...' command and pipe its output to a shell command
 | 
				
			||||||
 | 
					defined by COMMAND-ARGS.
 | 
				
			||||||
 | 
					Return #t if the shell command was executed successfully."
 | 
				
			||||||
 | 
					  (let ((pipe (apply open-pipe* OPEN_WRITE command-args)))
 | 
				
			||||||
 | 
					    (with-output-to-port pipe
 | 
				
			||||||
 | 
					      (lambda () (apply guix-command guix-args)))
 | 
				
			||||||
 | 
					    (zero? (status:exit-val (close-pipe pipe)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Lists of packages, lint checkers, etc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (graph-type-names)
 | 
				
			||||||
 | 
					  "Return a list of names of available graph node types."
 | 
				
			||||||
 | 
					  (map node-type-name %node-types))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (lint-checker-names)
 | 
				
			||||||
 | 
					  "Return a list of names of available lint checkers."
 | 
				
			||||||
 | 
					  (map (lambda (checker)
 | 
				
			||||||
 | 
					         (symbol->string (lint-checker-name checker)))
 | 
				
			||||||
 | 
					       %checkers))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (package-names)
 | 
				
			||||||
 | 
					  "Return a list of names of available packages."
 | 
				
			||||||
 | 
					  (delete-duplicates
 | 
				
			||||||
 | 
					   (fold-packages (lambda (pkg res)
 | 
				
			||||||
 | 
					                    (cons (package-name pkg) res))
 | 
				
			||||||
 | 
					                  '())))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; See the comment to 'guix-package-names' function in "guix-popup.el".
 | 
				
			||||||
 | 
					(define (package-names-lists)
 | 
				
			||||||
 | 
					  (map list (package-names)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
;;; guix-messages.el --- Minibuffer messages
 | 
					;;; guix-messages.el --- Minibuffer messages
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; Copyright © 2014 Alex Kost <alezost@gmail.com>
 | 
					;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; This file is part of GNU Guix.
 | 
					;; This file is part of GNU Guix.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -186,14 +186,14 @@
 | 
				
			||||||
(defun guix-result-message (profile entries entry-type
 | 
					(defun guix-result-message (profile entries entry-type
 | 
				
			||||||
                            search-type search-vals)
 | 
					                            search-type search-vals)
 | 
				
			||||||
  "Display an appropriate message after displaying ENTRIES."
 | 
					  "Display an appropriate message after displaying ENTRIES."
 | 
				
			||||||
  (let* ((type-spec (guix-get-key-val guix-messages
 | 
					  (let* ((type-spec (guix-assq-value guix-messages
 | 
				
			||||||
                                      entry-type search-type))
 | 
					                                     entry-type search-type))
 | 
				
			||||||
         (fun-or-count-spec (car type-spec)))
 | 
					         (fun-or-count-spec (car type-spec)))
 | 
				
			||||||
    (if (functionp fun-or-count-spec)
 | 
					    (if (functionp fun-or-count-spec)
 | 
				
			||||||
        (funcall fun-or-count-spec profile entries search-vals)
 | 
					        (funcall fun-or-count-spec profile entries search-vals)
 | 
				
			||||||
      (let* ((count     (length entries))
 | 
					      (let* ((count     (length entries))
 | 
				
			||||||
             (count-key (if (> count 1) 'many count))
 | 
					             (count-key (if (> count 1) 'many count))
 | 
				
			||||||
             (msg-spec  (guix-get-key-val type-spec count-key))
 | 
					             (msg-spec  (guix-assq-value type-spec count-key))
 | 
				
			||||||
             (msg       (car msg-spec))
 | 
					             (msg       (car msg-spec))
 | 
				
			||||||
             (args      (cdr msg-spec)))
 | 
					             (args      (cdr msg-spec)))
 | 
				
			||||||
        (mapc (lambda (subst)
 | 
					        (mapc (lambda (subst)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,59 +28,7 @@
 | 
				
			||||||
(require 'pcmpl-unix)
 | 
					(require 'pcmpl-unix)
 | 
				
			||||||
(require 'cl-lib)
 | 
					(require 'cl-lib)
 | 
				
			||||||
(require 'guix-utils)
 | 
					(require 'guix-utils)
 | 
				
			||||||
 | 
					(require 'guix-help-vars)
 | 
				
			||||||
 | 
					 | 
				
			||||||
;;; Regexps for parsing various "guix ..." outputs
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(defvar guix-pcomplete-parse-package-regexp
 | 
					 | 
				
			||||||
  (rx bol (group (one-or-more (not blank))))
 | 
					 | 
				
			||||||
  "Regexp used to find names of the packages.")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(defvar guix-pcomplete-parse-command-regexp
 | 
					 | 
				
			||||||
  (rx bol "   "
 | 
					 | 
				
			||||||
      (group wordchar (one-or-more (or wordchar "-"))))
 | 
					 | 
				
			||||||
  "Regexp used to find guix commands.
 | 
					 | 
				
			||||||
'Command' means any option not prefixed with '-'.  For example,
 | 
					 | 
				
			||||||
guix subcommand, system action, importer, etc.")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(defvar guix-pcomplete-parse-long-option-regexp
 | 
					 | 
				
			||||||
  (rx (or "  " ", ")
 | 
					 | 
				
			||||||
      (group "--" (one-or-more (or wordchar "-"))
 | 
					 | 
				
			||||||
             (zero-or-one "=")))
 | 
					 | 
				
			||||||
  "Regexp used to find long options.")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(defvar guix-pcomplete-parse-short-option-regexp
 | 
					 | 
				
			||||||
  (rx bol (one-or-more blank)
 | 
					 | 
				
			||||||
      "-" (group (not (any "- "))))
 | 
					 | 
				
			||||||
  "Regexp used to find short options.")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(defvar guix-pcomplete-parse-list-regexp
 | 
					 | 
				
			||||||
  (rx bol (zero-or-more blank) "- "
 | 
					 | 
				
			||||||
      (group (one-or-more (or wordchar "-"))))
 | 
					 | 
				
			||||||
  "Regexp used to find various lists (lint checkers, graph types).")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(defvar guix-pcomplete-parse-regexp-group 1
 | 
					 | 
				
			||||||
  "Parenthesized expression of regexps used to find commands and
 | 
					 | 
				
			||||||
options.")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
;;; Non-receivable completions
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(defvar guix-pcomplete-systems
 | 
					 | 
				
			||||||
  '("x86_64-linux" "i686-linux" "armhf-linux" "mips64el-linux")
 | 
					 | 
				
			||||||
  "List of supported systems.")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(defvar guix-pcomplete-hash-formats
 | 
					 | 
				
			||||||
  '("nix-base32" "base32" "base16" "hex" "hexadecimal")
 | 
					 | 
				
			||||||
  "List of supported hash formats.")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(defvar guix-pcomplete-refresh-subsets
 | 
					 | 
				
			||||||
  '("core" "non-core")
 | 
					 | 
				
			||||||
  "List of supported 'refresh' subsets.")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(defvar guix-pcomplete-key-policies
 | 
					 | 
				
			||||||
  '("interactive" "always" "never")
 | 
					 | 
				
			||||||
  "List of supported key download policies.")
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; Interacting with guix
 | 
					;;; Interacting with guix
 | 
				
			||||||
| 
						 | 
					@ -105,9 +53,8 @@ Return a list of strings matching REGEXP.
 | 
				
			||||||
GROUP specifies a parenthesized expression used in REGEXP."
 | 
					GROUP specifies a parenthesized expression used in REGEXP."
 | 
				
			||||||
  (with-temp-buffer
 | 
					  (with-temp-buffer
 | 
				
			||||||
    (apply #'guix-pcomplete-run-guix args)
 | 
					    (apply #'guix-pcomplete-run-guix args)
 | 
				
			||||||
    (goto-char (point-min))
 | 
					 | 
				
			||||||
    (let (result)
 | 
					    (let (result)
 | 
				
			||||||
      (while (re-search-forward regexp nil t)
 | 
					      (guix-while-search regexp
 | 
				
			||||||
        (push (match-string-no-properties group) result))
 | 
					        (push (match-string-no-properties group) result))
 | 
				
			||||||
      (nreverse result))))
 | 
					      (nreverse result))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -129,7 +76,7 @@ function call is returned."
 | 
				
			||||||
     (let* ((args '("--help"))
 | 
					     (let* ((args '("--help"))
 | 
				
			||||||
            (args (if command (cons command args) args))
 | 
					            (args (if command (cons command args) args))
 | 
				
			||||||
            (res (apply #'guix-pcomplete-run-guix-and-search
 | 
					            (res (apply #'guix-pcomplete-run-guix-and-search
 | 
				
			||||||
                        ,regexp guix-pcomplete-parse-regexp-group args)))
 | 
					                        ,regexp guix-help-parse-regexp-group args)))
 | 
				
			||||||
       ,(if filter
 | 
					       ,(if filter
 | 
				
			||||||
            `(funcall ,filter res)
 | 
					            `(funcall ,filter res)
 | 
				
			||||||
          'res))))
 | 
					          'res))))
 | 
				
			||||||
| 
						 | 
					@ -138,23 +85,23 @@ function call is returned."
 | 
				
			||||||
  "If COMMAND is nil, return a list of available guix commands.
 | 
					  "If COMMAND is nil, return a list of available guix commands.
 | 
				
			||||||
If COMMAND is non-nil (it should be a string), return available
 | 
					If COMMAND is non-nil (it should be a string), return available
 | 
				
			||||||
subcommands, actions, etc. for this guix COMMAND."
 | 
					subcommands, actions, etc. for this guix COMMAND."
 | 
				
			||||||
  guix-pcomplete-parse-command-regexp)
 | 
					  guix-help-parse-command-regexp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(guix-pcomplete-define-options-finder guix-pcomplete-long-options
 | 
					(guix-pcomplete-define-options-finder guix-pcomplete-long-options
 | 
				
			||||||
  "Return a list of available long options for guix COMMAND."
 | 
					  "Return a list of available long options for guix COMMAND."
 | 
				
			||||||
  guix-pcomplete-parse-long-option-regexp)
 | 
					  guix-help-parse-long-option-regexp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(guix-pcomplete-define-options-finder guix-pcomplete-short-options
 | 
					(guix-pcomplete-define-options-finder guix-pcomplete-short-options
 | 
				
			||||||
  "Return a string with available short options for guix COMMAND."
 | 
					  "Return a string with available short options for guix COMMAND."
 | 
				
			||||||
  guix-pcomplete-parse-short-option-regexp
 | 
					  guix-help-parse-short-option-regexp
 | 
				
			||||||
  (lambda (list)
 | 
					  (lambda (list)
 | 
				
			||||||
    (mapconcat #'identity list "")))
 | 
					    (guix-concat-strings list "")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(guix-memoized-defun guix-pcomplete-all-packages ()
 | 
					(guix-memoized-defun guix-pcomplete-all-packages ()
 | 
				
			||||||
  "Return a list of all available Guix packages."
 | 
					  "Return a list of all available Guix packages."
 | 
				
			||||||
  (guix-pcomplete-run-guix-and-search
 | 
					  (guix-pcomplete-run-guix-and-search
 | 
				
			||||||
   guix-pcomplete-parse-package-regexp
 | 
					   guix-help-parse-package-regexp
 | 
				
			||||||
   guix-pcomplete-parse-regexp-group
 | 
					   guix-help-parse-regexp-group
 | 
				
			||||||
   "package" "--list-available"))
 | 
					   "package" "--list-available"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(guix-memoized-defun guix-pcomplete-installed-packages (&optional profile)
 | 
					(guix-memoized-defun guix-pcomplete-installed-packages (&optional profile)
 | 
				
			||||||
| 
						 | 
					@ -163,22 +110,22 @@ subcommands, actions, etc. for this guix COMMAND."
 | 
				
			||||||
                    (list (concat "--profile=" profile))))
 | 
					                    (list (concat "--profile=" profile))))
 | 
				
			||||||
         (args (append '("package" "--list-installed") args)))
 | 
					         (args (append '("package" "--list-installed") args)))
 | 
				
			||||||
    (apply #'guix-pcomplete-run-guix-and-search
 | 
					    (apply #'guix-pcomplete-run-guix-and-search
 | 
				
			||||||
           guix-pcomplete-parse-package-regexp
 | 
					           guix-help-parse-package-regexp
 | 
				
			||||||
           guix-pcomplete-parse-regexp-group
 | 
					           guix-help-parse-regexp-group
 | 
				
			||||||
           args)))
 | 
					           args)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(guix-memoized-defun guix-pcomplete-lint-checkers ()
 | 
					(guix-memoized-defun guix-pcomplete-lint-checkers ()
 | 
				
			||||||
  "Return a list of all available lint checkers."
 | 
					  "Return a list of all available lint checkers."
 | 
				
			||||||
  (guix-pcomplete-run-guix-and-search
 | 
					  (guix-pcomplete-run-guix-and-search
 | 
				
			||||||
   guix-pcomplete-parse-list-regexp
 | 
					   guix-help-parse-list-regexp
 | 
				
			||||||
   guix-pcomplete-parse-regexp-group
 | 
					   guix-help-parse-regexp-group
 | 
				
			||||||
   "lint" "--list-checkers"))
 | 
					   "lint" "--list-checkers"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(guix-memoized-defun guix-pcomplete-graph-types ()
 | 
					(guix-memoized-defun guix-pcomplete-graph-types ()
 | 
				
			||||||
  "Return a list of all available graph types."
 | 
					  "Return a list of all available graph types."
 | 
				
			||||||
  (guix-pcomplete-run-guix-and-search
 | 
					  (guix-pcomplete-run-guix-and-search
 | 
				
			||||||
   guix-pcomplete-parse-list-regexp
 | 
					   guix-help-parse-list-regexp
 | 
				
			||||||
   guix-pcomplete-parse-regexp-group
 | 
					   guix-help-parse-regexp-group
 | 
				
			||||||
   "graph" "--list-types"))
 | 
					   "graph" "--list-types"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -284,7 +231,7 @@ INPUT is the current partially completed string."
 | 
				
			||||||
     ((option? "-L" "--load-path")
 | 
					     ((option? "-L" "--load-path")
 | 
				
			||||||
      (complete* (pcomplete-dirs)))
 | 
					      (complete* (pcomplete-dirs)))
 | 
				
			||||||
     ((string= "--key-download" option)
 | 
					     ((string= "--key-download" option)
 | 
				
			||||||
      (complete* guix-pcomplete-key-policies))
 | 
					      (complete* guix-help-key-policies))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     ((command? "package")
 | 
					     ((command? "package")
 | 
				
			||||||
      (cond
 | 
					      (cond
 | 
				
			||||||
| 
						 | 
					@ -313,7 +260,7 @@ INPUT is the current partially completed string."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     ((and (command? "archive" "build" "size")
 | 
					     ((and (command? "archive" "build" "size")
 | 
				
			||||||
           (option? "-s" "--system"))
 | 
					           (option? "-s" "--system"))
 | 
				
			||||||
      (complete* guix-pcomplete-systems))
 | 
					      (complete* guix-help-system-types))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     ((and (command? "build")
 | 
					     ((and (command? "build")
 | 
				
			||||||
           (option? "-r" "--root"))
 | 
					           (option? "-r" "--root"))
 | 
				
			||||||
| 
						 | 
					@ -329,7 +276,7 @@ INPUT is the current partially completed string."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     ((and (command? "hash" "download")
 | 
					     ((and (command? "hash" "download")
 | 
				
			||||||
           (option? "-f" "--format"))
 | 
					           (option? "-f" "--format"))
 | 
				
			||||||
      (complete* guix-pcomplete-hash-formats))
 | 
					      (complete* guix-help-hash-formats))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     ((and (command? "lint")
 | 
					     ((and (command? "lint")
 | 
				
			||||||
           (option? "-c" "--checkers"))
 | 
					           (option? "-c" "--checkers"))
 | 
				
			||||||
| 
						 | 
					@ -342,7 +289,7 @@ INPUT is the current partially completed string."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     ((and (command? "refresh")
 | 
					     ((and (command? "refresh")
 | 
				
			||||||
           (option? "-s" "--select"))
 | 
					           (option? "-s" "--select"))
 | 
				
			||||||
      (complete* guix-pcomplete-refresh-subsets))
 | 
					      (complete* guix-help-refresh-subsets))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     ((and (command? "size")
 | 
					     ((and (command? "size")
 | 
				
			||||||
           (option? "-m" "--map-file"))
 | 
					           (option? "-m" "--map-file"))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										48
									
								
								emacs/guix-popup.el
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								emacs/guix-popup.el
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,48 @@
 | 
				
			||||||
 | 
					;;; guix-popup.el --- Popup windows library
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; Copyright © 2015 Alex Kost <alezost@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 this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Commentary:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; This file provides `guix-define-popup' macro which is just an alias
 | 
				
			||||||
 | 
					;; to `magit-define-popup'.  According to the manual (info
 | 
				
			||||||
 | 
					;; "(magit-popup) Defining prefix and suffix commands") `magit-popup'
 | 
				
			||||||
 | 
					;; library will eventually be superseded by a more general library.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Code:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(require 'magit-popup)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defalias 'guix-define-popup 'magit-define-popup)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-popup-font-lock-keywords
 | 
				
			||||||
 | 
					  (eval-when-compile
 | 
				
			||||||
 | 
					    `((,(rx "("
 | 
				
			||||||
 | 
					            (group "guix-define-popup")
 | 
				
			||||||
 | 
					            symbol-end
 | 
				
			||||||
 | 
					            (zero-or-more blank)
 | 
				
			||||||
 | 
					            (zero-or-one
 | 
				
			||||||
 | 
					             (group (one-or-more (or (syntax word) (syntax symbol))))))
 | 
				
			||||||
 | 
					       (1 font-lock-keyword-face)
 | 
				
			||||||
 | 
					       (2 font-lock-function-name-face nil t)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(font-lock-add-keywords 'emacs-lisp-mode guix-popup-font-lock-keywords)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(provide 'guix-popup)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; guix-popup.el ends here
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
;;; guix-prettify.el --- Prettify Guix store file names
 | 
					;;; guix-prettify.el --- Prettify Guix store file names
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; Copyright © 2014 Alex Kost <alezost@gmail.com>
 | 
					;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; This file is part of GNU Guix.
 | 
					;; This file is part of GNU Guix.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -47,9 +47,12 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; Code:
 | 
					;;; Code:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(require 'guix-utils)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defgroup guix-prettify nil
 | 
					(defgroup guix-prettify nil
 | 
				
			||||||
  "Prettify Guix store file names."
 | 
					  "Prettify Guix store file names."
 | 
				
			||||||
  :prefix "guix-prettify-"
 | 
					  :prefix "guix-prettify-"
 | 
				
			||||||
 | 
					  :group 'guix
 | 
				
			||||||
  :group 'font-lock
 | 
					  :group 'font-lock
 | 
				
			||||||
  :group 'convenience)
 | 
					  :group 'convenience)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -136,13 +139,11 @@ enabling/disabling `guix-prettify-mode'.  If nil, do nothing.")
 | 
				
			||||||
          (remove-text-properties (point-min)
 | 
					          (remove-text-properties (point-min)
 | 
				
			||||||
                                  (point-max)
 | 
					                                  (point-max)
 | 
				
			||||||
                                  '(composition nil))
 | 
					                                  '(composition nil))
 | 
				
			||||||
        (save-excursion
 | 
					        (guix-while-search guix-prettify-regexp
 | 
				
			||||||
          (goto-char (point-min))
 | 
					          (remove-text-properties
 | 
				
			||||||
          (while (re-search-forward guix-prettify-regexp nil t)
 | 
					           (match-beginning guix-prettify-regexp-group)
 | 
				
			||||||
            (remove-text-properties
 | 
					           (match-end       guix-prettify-regexp-group)
 | 
				
			||||||
             (match-beginning guix-prettify-regexp-group)
 | 
					           '(composition nil)))))))
 | 
				
			||||||
             (match-end       guix-prettify-regexp-group)
 | 
					 | 
				
			||||||
             '(composition nil))))))))
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;;###autoload
 | 
					;;;###autoload
 | 
				
			||||||
(define-minor-mode guix-prettify-mode
 | 
					(define-minor-mode guix-prettify-mode
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,12 +19,14 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; Code:
 | 
					;;; Code:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(require 'guix-config)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defvar guix-user-profile
 | 
					(defvar guix-user-profile
 | 
				
			||||||
  (expand-file-name "~/.guix-profile")
 | 
					  (expand-file-name "~/.guix-profile")
 | 
				
			||||||
  "User profile.")
 | 
					  "User profile.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defvar guix-default-profile
 | 
					(defvar guix-default-profile
 | 
				
			||||||
  (concat (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix")
 | 
					  (concat guix-state-directory
 | 
				
			||||||
          "/profiles/per-user/"
 | 
					          "/profiles/per-user/"
 | 
				
			||||||
          (getenv "USER")
 | 
					          (getenv "USER")
 | 
				
			||||||
          "/guix-profile")
 | 
					          "/guix-profile")
 | 
				
			||||||
							
								
								
									
										176
									
								
								emacs/guix-read.el
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										176
									
								
								emacs/guix-read.el
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,176 @@
 | 
				
			||||||
 | 
					;;; guix-read.el --- Minibuffer readers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; Copyright © 2015 Alex Kost <alezost@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 this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Commentary:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; This file provides functions to prompt a user for packages, system
 | 
				
			||||||
 | 
					;; types, hash formats and other guix related stuff.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Code:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(require 'guix-help-vars)
 | 
				
			||||||
 | 
					(require 'guix-utils)
 | 
				
			||||||
 | 
					(require 'guix-base)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-read-file-name (prompt &optional dir default-filename
 | 
				
			||||||
 | 
					                                   mustmatch initial predicate)
 | 
				
			||||||
 | 
					  "Read file name.
 | 
				
			||||||
 | 
					This function is similar to `read-file-name' except it also
 | 
				
			||||||
 | 
					expands the file name."
 | 
				
			||||||
 | 
					  (expand-file-name (read-file-name prompt dir default-filename
 | 
				
			||||||
 | 
					                                    mustmatch initial predicate)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defmacro guix-define-reader (name read-fun completions prompt)
 | 
				
			||||||
 | 
					  "Define NAME function to read from minibuffer.
 | 
				
			||||||
 | 
					READ-FUN may be `completing-read', `completing-read-multiple' or
 | 
				
			||||||
 | 
					another function with the same arguments."
 | 
				
			||||||
 | 
					  `(defun ,name (&optional prompt initial-contents)
 | 
				
			||||||
 | 
					     (,read-fun ,(if prompt
 | 
				
			||||||
 | 
					                     `(or prompt ,prompt)
 | 
				
			||||||
 | 
					                   'prompt)
 | 
				
			||||||
 | 
					                ,completions nil nil initial-contents)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defmacro guix-define-readers (&rest args)
 | 
				
			||||||
 | 
					  "Define reader functions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ARGS should have a form [KEYWORD VALUE] ...  The following
 | 
				
			||||||
 | 
					keywords are available:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - `completions-var' - variable used to get completions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - `completions-getter' - function used to get completions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - `single-reader', `single-prompt' - name of a function to read
 | 
				
			||||||
 | 
					    a single value, and a prompt for it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - `multiple-reader', `multiple-prompt' - name of a function to
 | 
				
			||||||
 | 
					    read multiple values, and a prompt for it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - `multiple-separator' - if specified, another
 | 
				
			||||||
 | 
					    `<multiple-reader-name>-string' function returning a string
 | 
				
			||||||
 | 
					    of multiple values separated the specified separator will be
 | 
				
			||||||
 | 
					    defined."
 | 
				
			||||||
 | 
					  (let (completions-var
 | 
				
			||||||
 | 
					        completions-getter
 | 
				
			||||||
 | 
					        single-reader
 | 
				
			||||||
 | 
					        single-prompt
 | 
				
			||||||
 | 
					        multiple-reader
 | 
				
			||||||
 | 
					        multiple-prompt
 | 
				
			||||||
 | 
					        multiple-separator)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ;; Process the keyword args.
 | 
				
			||||||
 | 
					    (while (keywordp (car args))
 | 
				
			||||||
 | 
					      (pcase (pop args)
 | 
				
			||||||
 | 
					        (`:completions-var    (setq completions-var    (pop args)))
 | 
				
			||||||
 | 
					        (`:completions-getter (setq completions-getter (pop args)))
 | 
				
			||||||
 | 
					        (`:single-reader      (setq single-reader      (pop args)))
 | 
				
			||||||
 | 
					        (`:single-prompt      (setq single-prompt      (pop args)))
 | 
				
			||||||
 | 
					        (`:multiple-reader    (setq multiple-reader    (pop args)))
 | 
				
			||||||
 | 
					        (`:multiple-prompt    (setq multiple-prompt    (pop args)))
 | 
				
			||||||
 | 
					        (`:multiple-separator (setq multiple-separator (pop args)))
 | 
				
			||||||
 | 
						(_ (pop args))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    (let ((completions
 | 
				
			||||||
 | 
					           (cond ((and completions-var completions-getter)
 | 
				
			||||||
 | 
					                  `(or ,completions-var
 | 
				
			||||||
 | 
					                       (setq ,completions-var
 | 
				
			||||||
 | 
					                             (funcall ',completions-getter))))
 | 
				
			||||||
 | 
					                 (completions-var
 | 
				
			||||||
 | 
					                  completions-var)
 | 
				
			||||||
 | 
					                 (completions-getter
 | 
				
			||||||
 | 
					                  `(funcall ',completions-getter)))))
 | 
				
			||||||
 | 
					      `(progn
 | 
				
			||||||
 | 
					         ,(when (and completions-var
 | 
				
			||||||
 | 
					                     (not (boundp completions-var)))
 | 
				
			||||||
 | 
					            `(defvar ,completions-var nil))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         ,(when single-reader
 | 
				
			||||||
 | 
					            `(guix-define-reader ,single-reader completing-read
 | 
				
			||||||
 | 
					                                 ,completions ,single-prompt))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         ,(when multiple-reader
 | 
				
			||||||
 | 
					            `(guix-define-reader ,multiple-reader completing-read-multiple
 | 
				
			||||||
 | 
					                                 ,completions ,multiple-prompt))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         ,(when (and multiple-reader multiple-separator)
 | 
				
			||||||
 | 
					            (let ((name (intern (concat (symbol-name multiple-reader)
 | 
				
			||||||
 | 
					                                        "-string"))))
 | 
				
			||||||
 | 
					              `(defun ,name (&optional prompt initial-contents)
 | 
				
			||||||
 | 
					                 (guix-concat-strings
 | 
				
			||||||
 | 
					                  (,multiple-reader prompt initial-contents)
 | 
				
			||||||
 | 
					                  ,multiple-separator))))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-define-readers
 | 
				
			||||||
 | 
					 :completions-var guix-help-system-types
 | 
				
			||||||
 | 
					 :single-reader guix-read-system-type
 | 
				
			||||||
 | 
					 :single-prompt "System type: ")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-define-readers
 | 
				
			||||||
 | 
					 :completions-var guix-help-source-types
 | 
				
			||||||
 | 
					 :single-reader guix-read-source-type
 | 
				
			||||||
 | 
					 :single-prompt "Source type: ")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-define-readers
 | 
				
			||||||
 | 
					 :completions-var guix-help-hash-formats
 | 
				
			||||||
 | 
					 :single-reader guix-read-hash-format
 | 
				
			||||||
 | 
					 :single-prompt "Hash format: ")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-define-readers
 | 
				
			||||||
 | 
					 :completions-var guix-help-refresh-subsets
 | 
				
			||||||
 | 
					 :single-reader guix-read-refresh-subset
 | 
				
			||||||
 | 
					 :single-prompt "Refresh subset: ")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-define-readers
 | 
				
			||||||
 | 
					 :completions-var guix-help-key-policies
 | 
				
			||||||
 | 
					 :single-reader guix-read-key-policy
 | 
				
			||||||
 | 
					 :single-prompt "Key policy: ")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-define-readers
 | 
				
			||||||
 | 
					 :completions-var guix-help-elpa-archives
 | 
				
			||||||
 | 
					 :single-reader guix-read-elpa-archive
 | 
				
			||||||
 | 
					 :single-prompt "ELPA archive: ")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-define-readers
 | 
				
			||||||
 | 
					 :completions-var guix-help-verify-options
 | 
				
			||||||
 | 
					 :multiple-reader guix-read-verify-options
 | 
				
			||||||
 | 
					 :multiple-prompt "Verify option,s: "
 | 
				
			||||||
 | 
					 :multiple-separator ",")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-define-readers
 | 
				
			||||||
 | 
					 :completions-getter guix-graph-type-names
 | 
				
			||||||
 | 
					 :single-reader guix-read-graph-type
 | 
				
			||||||
 | 
					 :single-prompt "Graph node type: ")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-define-readers
 | 
				
			||||||
 | 
					 :completions-getter guix-lint-checker-names
 | 
				
			||||||
 | 
					 :multiple-reader guix-read-lint-checker-names
 | 
				
			||||||
 | 
					 :multiple-prompt "Linter,s: "
 | 
				
			||||||
 | 
					 :multiple-separator ",")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-define-readers
 | 
				
			||||||
 | 
					 :completions-getter guix-package-names
 | 
				
			||||||
 | 
					 :single-reader guix-read-package-name
 | 
				
			||||||
 | 
					 :single-prompt "Package: "
 | 
				
			||||||
 | 
					 :multiple-reader guix-read-package-names
 | 
				
			||||||
 | 
					 :multiple-prompt "Package,s: "
 | 
				
			||||||
 | 
					 :multiple-separator " ")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(provide 'guix-read)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; guix-read.el ends here
 | 
				
			||||||
| 
						 | 
					@ -128,6 +128,53 @@ split it into several short lines."
 | 
				
			||||||
      (fill-region (point-min) (point-max)))
 | 
					      (fill-region (point-min) (point-max)))
 | 
				
			||||||
    (buffer-string)))
 | 
					    (buffer-string)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-concat-strings (strings separator &optional location)
 | 
				
			||||||
 | 
					  "Return new string by concatenating STRINGS with SEPARATOR.
 | 
				
			||||||
 | 
					If LOCATION is a symbol `head', add another SEPARATOR to the
 | 
				
			||||||
 | 
					beginning of the returned string; if `tail' - add SEPARATOR to
 | 
				
			||||||
 | 
					the end of the string; if nil, do not add SEPARATOR; otherwise
 | 
				
			||||||
 | 
					add both to the end and to the beginning."
 | 
				
			||||||
 | 
					  (let ((str (mapconcat #'identity strings separator)))
 | 
				
			||||||
 | 
					    (cond ((null location)
 | 
				
			||||||
 | 
					           str)
 | 
				
			||||||
 | 
					          ((eq location 'head)
 | 
				
			||||||
 | 
					           (concat separator str))
 | 
				
			||||||
 | 
					          ((eq location 'tail)
 | 
				
			||||||
 | 
					           (concat str separator))
 | 
				
			||||||
 | 
					          (t
 | 
				
			||||||
 | 
					           (concat separator str separator)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-shell-quote-argument (argument)
 | 
				
			||||||
 | 
					  "Quote shell command ARGUMENT.
 | 
				
			||||||
 | 
					This function is similar to `shell-quote-argument', but less strict."
 | 
				
			||||||
 | 
					  (if (equal argument "")
 | 
				
			||||||
 | 
					      "''"
 | 
				
			||||||
 | 
					    (replace-regexp-in-string
 | 
				
			||||||
 | 
					     "\n" "'\n'"
 | 
				
			||||||
 | 
					     (replace-regexp-in-string
 | 
				
			||||||
 | 
					      (rx (not (any alnum "-=,./\n"))) "\\\\\\&" argument))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-symbol (&optional args)
 | 
				
			||||||
 | 
					  "Return symbol by concatenating 'guix' and ARGS (strings)."
 | 
				
			||||||
 | 
					  (intern (guix-concat-strings (cons "guix" args) "-")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-command-string (&optional args)
 | 
				
			||||||
 | 
					  "Return 'guix ARGS ...' string with quoted shell arguments."
 | 
				
			||||||
 | 
					  (let ((args (mapcar #'guix-shell-quote-argument args)))
 | 
				
			||||||
 | 
					    (guix-concat-strings (cons "guix" args) " ")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-copy-as-kill (string &optional no-message?)
 | 
				
			||||||
 | 
					  "Put STRING into `kill-ring'.
 | 
				
			||||||
 | 
					If NO-MESSAGE? is non-nil, do not display a message about it."
 | 
				
			||||||
 | 
					  (kill-new string)
 | 
				
			||||||
 | 
					  (unless no-message?
 | 
				
			||||||
 | 
					    (message "'%s' has been added to kill ring." string)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-copy-command-as-kill (args &optional no-message?)
 | 
				
			||||||
 | 
					  "Put 'guix ARGS ...' string into `kill-ring'.
 | 
				
			||||||
 | 
					See also `guix-copy-as-kill'."
 | 
				
			||||||
 | 
					  (guix-copy-as-kill (guix-command-string args) no-message?))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-completing-read-multiple (prompt table &optional predicate
 | 
					(defun guix-completing-read-multiple (prompt table &optional predicate
 | 
				
			||||||
                                      require-match initial-input
 | 
					                                      require-match initial-input
 | 
				
			||||||
                                      hist def inherit-input-method)
 | 
					                                      hist def inherit-input-method)
 | 
				
			||||||
| 
						 | 
					@ -146,20 +193,56 @@ Return time value."
 | 
				
			||||||
  (require 'org)
 | 
					  (require 'org)
 | 
				
			||||||
  (org-read-date nil t nil prompt))
 | 
					  (org-read-date nil t nil prompt))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-get-key-val (alist &rest keys)
 | 
					(defcustom guix-find-file-function #'find-file
 | 
				
			||||||
  "Return value from ALIST by KEYS.
 | 
					  "Function used to find a file.
 | 
				
			||||||
ALIST is alist of alists of alists ... which can be consecutively
 | 
					The function is called by `guix-find-file' with a file name as a
 | 
				
			||||||
accessed with KEYS."
 | 
					single argument."
 | 
				
			||||||
  (let ((val alist))
 | 
					  :type '(choice (function-item find-file)
 | 
				
			||||||
    (dolist (key keys val)
 | 
					                 (function-item org-open-file)
 | 
				
			||||||
      (setq val (cdr (assq key val))))))
 | 
					                 (function :tag "Other function"))
 | 
				
			||||||
 | 
					  :group 'guix)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defun guix-find-file (file)
 | 
					(defun guix-find-file (file)
 | 
				
			||||||
  "Find FILE if it exists."
 | 
					  "Find FILE if it exists."
 | 
				
			||||||
  (if (file-exists-p file)
 | 
					  (if (file-exists-p file)
 | 
				
			||||||
      (find-file file)
 | 
					      (funcall guix-find-file-function file)
 | 
				
			||||||
    (message "File '%s' does not exist." file)))
 | 
					    (message "File '%s' does not exist." file)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defmacro guix-while-search (regexp &rest body)
 | 
				
			||||||
 | 
					  "Evaluate BODY after each search for REGEXP in the current buffer."
 | 
				
			||||||
 | 
					  (declare (indent 1) (debug t))
 | 
				
			||||||
 | 
					  `(save-excursion
 | 
				
			||||||
 | 
					     (goto-char (point-min))
 | 
				
			||||||
 | 
					     (while (re-search-forward ,regexp nil t)
 | 
				
			||||||
 | 
					       ,@body)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defun guix-any (pred lst)
 | 
				
			||||||
 | 
					  "Test whether any element from LST satisfies PRED.
 | 
				
			||||||
 | 
					If so, return the return value from the successful PRED call.
 | 
				
			||||||
 | 
					Return nil otherwise."
 | 
				
			||||||
 | 
					  (when lst
 | 
				
			||||||
 | 
					    (or (funcall pred (car lst))
 | 
				
			||||||
 | 
					        (guix-any pred (cdr lst)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;; Alist accessors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defmacro guix-define-alist-accessor (name assoc-fun)
 | 
				
			||||||
 | 
					  "Define NAME function to access alist values using ASSOC-FUN."
 | 
				
			||||||
 | 
					  `(defun ,name (alist &rest keys)
 | 
				
			||||||
 | 
					     ,(format "Return value from ALIST by KEYS using `%s'.
 | 
				
			||||||
 | 
					ALIST is alist of alists of alists ... which can be consecutively
 | 
				
			||||||
 | 
					accessed with KEYS."
 | 
				
			||||||
 | 
					              assoc-fun)
 | 
				
			||||||
 | 
					     (if (or (null alist) (null keys))
 | 
				
			||||||
 | 
					         alist
 | 
				
			||||||
 | 
					       (apply #',name
 | 
				
			||||||
 | 
					              (cdr (,assoc-fun (car keys) alist))
 | 
				
			||||||
 | 
					              (cdr keys)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(guix-define-alist-accessor guix-assq-value assq)
 | 
				
			||||||
 | 
					(guix-define-alist-accessor guix-assoc-value assoc)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; Diff
 | 
					;;; Diff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -199,6 +282,27 @@ See `defun' for the meaning of arguments."
 | 
				
			||||||
              (mapconcat #'symbol-name arglist " ")
 | 
					              (mapconcat #'symbol-name arglist " ")
 | 
				
			||||||
              docstring)))
 | 
					              docstring)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defmacro guix-memoized-defalias (symbol definition &optional docstring)
 | 
				
			||||||
 | 
					  "Set SYMBOL's function definition to memoized version of DEFINITION."
 | 
				
			||||||
 | 
					  (declare (doc-string 3) (indent 1))
 | 
				
			||||||
 | 
					  `(defalias ',symbol
 | 
				
			||||||
 | 
					     (guix-memoize #',definition)
 | 
				
			||||||
 | 
					     ,(or docstring
 | 
				
			||||||
 | 
					          (format "Memoized version of `%S'." definition))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(defvar guix-memoized-font-lock-keywords
 | 
				
			||||||
 | 
					  (eval-when-compile
 | 
				
			||||||
 | 
					    `((,(rx "("
 | 
				
			||||||
 | 
					            (group "guix-memoized-" (or "defun" "defalias"))
 | 
				
			||||||
 | 
					            symbol-end
 | 
				
			||||||
 | 
					            (zero-or-more blank)
 | 
				
			||||||
 | 
					            (zero-or-one
 | 
				
			||||||
 | 
					             (group (one-or-more (or (syntax word) (syntax symbol))))))
 | 
				
			||||||
 | 
					       (1 font-lock-keyword-face)
 | 
				
			||||||
 | 
					       (2 font-lock-function-name-face nil t)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(font-lock-add-keywords 'emacs-lisp-mode guix-memoized-font-lock-keywords)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(provide 'guix-utils)
 | 
					(provide 'guix-utils)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; guix-utils.el ends here
 | 
					;;; guix-utils.el ends here
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
;;; guix.el --- Interface for GNU Guix package manager
 | 
					;;; guix.el --- Interface for GNU Guix package manager
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; Copyright © 2014 Alex Kost <alezost@gmail.com>
 | 
					;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; Package-Requires: ((geiser "0.3"))
 | 
					;; Package-Requires: ((geiser "0.3"))
 | 
				
			||||||
;; Keywords: tools
 | 
					;; Keywords: tools
 | 
				
			||||||
| 
						 | 
					@ -32,6 +32,7 @@
 | 
				
			||||||
(require 'guix-list)
 | 
					(require 'guix-list)
 | 
				
			||||||
(require 'guix-info)
 | 
					(require 'guix-info)
 | 
				
			||||||
(require 'guix-utils)
 | 
					(require 'guix-utils)
 | 
				
			||||||
 | 
					(require 'guix-read)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(defgroup guix nil
 | 
					(defgroup guix nil
 | 
				
			||||||
  "Interface for Guix package manager."
 | 
					  "Interface for Guix package manager."
 | 
				
			||||||
| 
						 | 
					@ -193,6 +194,15 @@ Interactively with prefix, prompt for PROFILE."
 | 
				
			||||||
                             (float-time from)
 | 
					                             (float-time from)
 | 
				
			||||||
                             (float-time to)))
 | 
					                             (float-time to)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;;###autoload
 | 
				
			||||||
 | 
					(defun guix-edit (id-or-name)
 | 
				
			||||||
 | 
					  "Edit (go to location of) package with ID-OR-NAME."
 | 
				
			||||||
 | 
					  (interactive (list (guix-read-package-name)))
 | 
				
			||||||
 | 
					  (let ((loc (guix-package-location id-or-name)))
 | 
				
			||||||
 | 
					    (if loc
 | 
				
			||||||
 | 
					        (guix-find-location loc)
 | 
				
			||||||
 | 
					      (message "Couldn't find package location."))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(provide 'guix)
 | 
					(provide 'guix)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; guix.el ends here
 | 
					;;; guix.el ends here
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -239,6 +239,7 @@ GNU_SYSTEM_MODULES =				\
 | 
				
			||||||
  gnu/packages/onc-rpc.scm			\
 | 
					  gnu/packages/onc-rpc.scm			\
 | 
				
			||||||
  gnu/packages/openbox.scm			\
 | 
					  gnu/packages/openbox.scm			\
 | 
				
			||||||
  gnu/packages/openldap.scm			\
 | 
					  gnu/packages/openldap.scm			\
 | 
				
			||||||
 | 
					  gnu/packages/openstack.scm			\
 | 
				
			||||||
  gnu/packages/orpheus.scm			\
 | 
					  gnu/packages/orpheus.scm			\
 | 
				
			||||||
  gnu/packages/ots.scm				\
 | 
					  gnu/packages/ots.scm				\
 | 
				
			||||||
  gnu/packages/package-management.scm		\
 | 
					  gnu/packages/package-management.scm		\
 | 
				
			||||||
| 
						 | 
					@ -416,12 +417,6 @@ dist_patch_DATA =						\
 | 
				
			||||||
  gnu/packages/patches/clucene-pkgconfig.patch			\
 | 
					  gnu/packages/patches/clucene-pkgconfig.patch			\
 | 
				
			||||||
  gnu/packages/patches/cmake-fix-tests.patch			\
 | 
					  gnu/packages/patches/cmake-fix-tests.patch			\
 | 
				
			||||||
  gnu/packages/patches/coreutils-racy-tail-test.patch		\
 | 
					  gnu/packages/patches/coreutils-racy-tail-test.patch		\
 | 
				
			||||||
  gnu/packages/patches/cpio-CVE-2014-9112-pt1.patch		\
 | 
					 | 
				
			||||||
  gnu/packages/patches/cpio-CVE-2014-9112-pt2.patch		\
 | 
					 | 
				
			||||||
  gnu/packages/patches/cpio-CVE-2014-9112-pt3.patch		\
 | 
					 | 
				
			||||||
  gnu/packages/patches/cpio-CVE-2014-9112-pt4.patch		\
 | 
					 | 
				
			||||||
  gnu/packages/patches/cpio-CVE-2014-9112-pt5.patch		\
 | 
					 | 
				
			||||||
  gnu/packages/patches/cpio-fix-symlink-bad-length-test.patch	\
 | 
					 | 
				
			||||||
  gnu/packages/patches/cpio-gets-undeclared.patch		\
 | 
					  gnu/packages/patches/cpio-gets-undeclared.patch		\
 | 
				
			||||||
  gnu/packages/patches/cpufrequtils-fix-aclocal.patch		\
 | 
					  gnu/packages/patches/cpufrequtils-fix-aclocal.patch		\
 | 
				
			||||||
  gnu/packages/patches/crda-optional-gcrypt.patch		\
 | 
					  gnu/packages/patches/crda-optional-gcrypt.patch		\
 | 
				
			||||||
| 
						 | 
					@ -476,6 +471,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  gnu/packages/patches/glibc-locales.patch			\
 | 
					  gnu/packages/patches/glibc-locales.patch			\
 | 
				
			||||||
  gnu/packages/patches/glibc-o-largefile.patch			\
 | 
					  gnu/packages/patches/glibc-o-largefile.patch			\
 | 
				
			||||||
  gnu/packages/patches/gmp-arm-asm-nothumb.patch		\
 | 
					  gnu/packages/patches/gmp-arm-asm-nothumb.patch		\
 | 
				
			||||||
 | 
					  gnu/packages/patches/gnucash-price-quotes-perl.patch		\
 | 
				
			||||||
  gnu/packages/patches/gnutls-doc-fix.patch			\
 | 
					  gnu/packages/patches/gnutls-doc-fix.patch			\
 | 
				
			||||||
  gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \
 | 
					  gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \
 | 
				
			||||||
  gnu/packages/patches/gobject-introspection-cc.patch		\
 | 
					  gnu/packages/patches/gobject-introspection-cc.patch		\
 | 
				
			||||||
| 
						 | 
					@ -489,7 +485,9 @@ dist_patch_DATA =						\
 | 
				
			||||||
  gnu/packages/patches/guile-arm-fixes.patch			\
 | 
					  gnu/packages/patches/guile-arm-fixes.patch			\
 | 
				
			||||||
  gnu/packages/patches/guile-default-utf8.patch			\
 | 
					  gnu/packages/patches/guile-default-utf8.patch			\
 | 
				
			||||||
  gnu/packages/patches/guile-linux-syscalls.patch		\
 | 
					  gnu/packages/patches/guile-linux-syscalls.patch		\
 | 
				
			||||||
 | 
					  gnu/packages/patches/guile-present-coding.patch		\
 | 
				
			||||||
  gnu/packages/patches/guile-relocatable.patch			\
 | 
					  gnu/packages/patches/guile-relocatable.patch			\
 | 
				
			||||||
 | 
					  gnu/packages/patches/guile-rsvg-pkgconfig.patch		\
 | 
				
			||||||
  gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \
 | 
					  gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \
 | 
				
			||||||
  gnu/packages/patches/hop-bigloo-4.0b.patch			\
 | 
					  gnu/packages/patches/hop-bigloo-4.0b.patch			\
 | 
				
			||||||
  gnu/packages/patches/hop-linker-flags.patch			\
 | 
					  gnu/packages/patches/hop-linker-flags.patch			\
 | 
				
			||||||
| 
						 | 
					@ -576,6 +574,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  gnu/packages/patches/patchutils-xfail-gendiff-tests.patch	\
 | 
					  gnu/packages/patches/patchutils-xfail-gendiff-tests.patch	\
 | 
				
			||||||
  gnu/packages/patches/patch-hurd-path-max.patch		\
 | 
					  gnu/packages/patches/patch-hurd-path-max.patch		\
 | 
				
			||||||
  gnu/packages/patches/perl-autosplit-default-time.patch	\
 | 
					  gnu/packages/patches/perl-autosplit-default-time.patch	\
 | 
				
			||||||
 | 
					  gnu/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \
 | 
				
			||||||
  gnu/packages/patches/perl-gd-options-passthrough-and-fontconfig.patch \
 | 
					  gnu/packages/patches/perl-gd-options-passthrough-and-fontconfig.patch \
 | 
				
			||||||
  gnu/packages/patches/perl-module-pluggable-search.patch	\
 | 
					  gnu/packages/patches/perl-module-pluggable-search.patch	\
 | 
				
			||||||
  gnu/packages/patches/perl-net-amazon-s3-moose-warning.patch	\
 | 
					  gnu/packages/patches/perl-net-amazon-s3-moose-warning.patch	\
 | 
				
			||||||
| 
						 | 
					@ -691,6 +690,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  gnu/packages/patches/xf86-video-trident-remove-mibstore.patch	\
 | 
					  gnu/packages/patches/xf86-video-trident-remove-mibstore.patch	\
 | 
				
			||||||
  gnu/packages/patches/xf86-video-vmware-glibc-2.20.patch	\
 | 
					  gnu/packages/patches/xf86-video-vmware-glibc-2.20.patch	\
 | 
				
			||||||
  gnu/packages/patches/xfce4-panel-plugins.patch		\
 | 
					  gnu/packages/patches/xfce4-panel-plugins.patch		\
 | 
				
			||||||
 | 
					  gnu/packages/patches/xfce4-settings-defaults.patch		\
 | 
				
			||||||
  gnu/packages/patches/xmodmap-asprintf.patch 			\
 | 
					  gnu/packages/patches/xmodmap-asprintf.patch 			\
 | 
				
			||||||
  gnu/packages/patches/zathura-plugindir-environment-variable.patch
 | 
					  gnu/packages/patches/zathura-plugindir-environment-variable.patch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -55,6 +55,9 @@ to ROOT, then make ROOT the new root directory for the process."
 | 
				
			||||||
  (define (scope dir)
 | 
					  (define (scope dir)
 | 
				
			||||||
    (string-append root dir))
 | 
					    (string-append root dir))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (define (touch file-name)
 | 
				
			||||||
 | 
					    (call-with-output-file file-name (const #t)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  (define (bind-mount src dest)
 | 
					  (define (bind-mount src dest)
 | 
				
			||||||
    (mount src dest "none" MS_BIND))
 | 
					    (mount src dest "none" MS_BIND))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -89,8 +92,7 @@ to ROOT, then make ROOT the new root directory for the process."
 | 
				
			||||||
  (for-each (lambda (device)
 | 
					  (for-each (lambda (device)
 | 
				
			||||||
              (when (file-exists? device)
 | 
					              (when (file-exists? device)
 | 
				
			||||||
                ;; Create the mount point file.
 | 
					                ;; Create the mount point file.
 | 
				
			||||||
                (call-with-output-file (scope device)
 | 
					                (touch (scope device))
 | 
				
			||||||
                  (const #t))
 | 
					 | 
				
			||||||
                (bind-mount device (scope device))))
 | 
					                (bind-mount device (scope device))))
 | 
				
			||||||
            '("/dev/null"
 | 
					            '("/dev/null"
 | 
				
			||||||
              "/dev/zero"
 | 
					              "/dev/zero"
 | 
				
			||||||
| 
						 | 
					@ -101,6 +103,15 @@ to ROOT, then make ROOT the new root directory for the process."
 | 
				
			||||||
              "/dev/ptmx"
 | 
					              "/dev/ptmx"
 | 
				
			||||||
              "/dev/fuse"))
 | 
					              "/dev/fuse"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ;; Setup the container's /dev/console by bind mounting the pseudo-terminal
 | 
				
			||||||
 | 
					  ;; associated with standard input.
 | 
				
			||||||
 | 
					  (let ((in      (current-input-port))
 | 
				
			||||||
 | 
					        (console (scope "/dev/console")))
 | 
				
			||||||
 | 
					    (when (isatty? in)
 | 
				
			||||||
 | 
					      (touch console)
 | 
				
			||||||
 | 
					      (chmod console #o600)
 | 
				
			||||||
 | 
					      (bind-mount (ttyname in) console)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ;; Setup standard input/output/error.
 | 
					  ;; Setup standard input/output/error.
 | 
				
			||||||
  (symlink "/proc/self/fd"   (scope "/dev/fd"))
 | 
					  (symlink "/proc/self/fd"   (scope "/dev/fd"))
 | 
				
			||||||
  (symlink "/proc/self/fd/0" (scope "/dev/stdin"))
 | 
					  (symlink "/proc/self/fd/0" (scope "/dev/stdin"))
 | 
				
			||||||
| 
						 | 
					@ -151,7 +162,8 @@ host user identifiers to map into the user namespace."
 | 
				
			||||||
(define (namespaces->bit-mask namespaces)
 | 
					(define (namespaces->bit-mask namespaces)
 | 
				
			||||||
  "Return the number suitable for the 'flags' argument of 'clone' that
 | 
					  "Return the number suitable for the 'flags' argument of 'clone' that
 | 
				
			||||||
corresponds to the symbols in NAMESPACES."
 | 
					corresponds to the symbols in NAMESPACES."
 | 
				
			||||||
  (apply logior SIGCHLD
 | 
					  ;; Use the same flags as fork(3) in addition to the namespace flags.
 | 
				
			||||||
 | 
					  (apply logior SIGCHLD CLONE_CHILD_CLEARTID CLONE_CHILD_SETTID
 | 
				
			||||||
         (map (match-lambda
 | 
					         (map (match-lambda
 | 
				
			||||||
               ('mnt  CLONE_NEWNS)
 | 
					               ('mnt  CLONE_NEWNS)
 | 
				
			||||||
               ('uts  CLONE_NEWUTS)
 | 
					               ('uts  CLONE_NEWUTS)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -72,7 +72,9 @@ COMPRESS? is true, compress it using GZIP.  On success, return OUTPUT."
 | 
				
			||||||
                               #:file->header cpio:file->cpio-header*)))
 | 
					                               #:file->header cpio:file->cpio-header*)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  (or (not compress?)
 | 
					  (or (not compress?)
 | 
				
			||||||
      (and (zero? (system* gzip "--best" output))
 | 
					      ;; Use '--no-name' so that gzip records neither a file name nor a time
 | 
				
			||||||
 | 
					      ;; stamp in its output.
 | 
				
			||||||
 | 
					      (and (zero? (system* gzip "--best" "--no-name" output))
 | 
				
			||||||
           (rename-file (string-append output ".gz")
 | 
					           (rename-file (string-append output ".gz")
 | 
				
			||||||
                        output))
 | 
					                        output))
 | 
				
			||||||
      output))
 | 
					      output))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -704,9 +704,9 @@ commands and their arguments.")
 | 
				
			||||||
    ;; See <http://www.sudo.ws/sudo/license.html>.
 | 
					    ;; See <http://www.sudo.ws/sudo/license.html>.
 | 
				
			||||||
    (license license:x11)))
 | 
					    (license license:x11)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public wpa-supplicant-light
 | 
					(define-public wpa-supplicant-minimal
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "wpa-supplicant-light")
 | 
					    (name "wpa-supplicant-minimal")
 | 
				
			||||||
    (version "2.4")
 | 
					    (version "2.4")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
| 
						 | 
					@ -796,12 +796,12 @@ This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.")
 | 
				
			||||||
    (license license:bsd-3)))
 | 
					    (license license:bsd-3)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public wpa-supplicant
 | 
					(define-public wpa-supplicant
 | 
				
			||||||
  (package (inherit wpa-supplicant-light)
 | 
					  (package (inherit wpa-supplicant-minimal)
 | 
				
			||||||
    (name "wpa-supplicant")
 | 
					    (name "wpa-supplicant")
 | 
				
			||||||
    (inputs `(("dbus" ,dbus)
 | 
					    (inputs `(("dbus" ,dbus)
 | 
				
			||||||
              ,@(package-inputs wpa-supplicant-light)))
 | 
					              ,@(package-inputs wpa-supplicant-minimal)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     (substitute-keyword-arguments (package-arguments wpa-supplicant-light)
 | 
					     (substitute-keyword-arguments (package-arguments wpa-supplicant-minimal)
 | 
				
			||||||
       ((#:phases phases)
 | 
					       ((#:phases phases)
 | 
				
			||||||
        `(alist-cons-after
 | 
					        `(alist-cons-after
 | 
				
			||||||
          'configure 'configure-for-dbus
 | 
					          'configure 'configure-for-dbus
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -55,7 +55,7 @@
 | 
				
			||||||
     `(("wxwidgets" ,wxwidgets-2)
 | 
					     `(("wxwidgets" ,wxwidgets-2)
 | 
				
			||||||
       ("gtk" ,gtk+-2)
 | 
					       ("gtk" ,gtk+-2)
 | 
				
			||||||
       ("alsa-lib" ,alsa-lib)
 | 
					       ("alsa-lib" ,alsa-lib)
 | 
				
			||||||
       ("jack" ,jack-2)
 | 
					       ("jack" ,jack-1)
 | 
				
			||||||
       ("expat" ,expat)
 | 
					       ("expat" ,expat)
 | 
				
			||||||
       ("ffmpeg" ,ffmpeg)
 | 
					       ("ffmpeg" ,ffmpeg)
 | 
				
			||||||
       ("lame" ,lame)
 | 
					       ("lame" ,lame)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1659,14 +1659,14 @@ interface.")
 | 
				
			||||||
(define-public qsynth
 | 
					(define-public qsynth
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "qsynth")
 | 
					    (name "qsynth")
 | 
				
			||||||
    (version "0.3.9")
 | 
					    (version "0.4.0")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (string-append
 | 
					       (uri (string-append
 | 
				
			||||||
             "mirror://sourceforge/qsynth/qsynth-" version ".tar.gz"))
 | 
					             "mirror://sourceforge/qsynth/qsynth-" version ".tar.gz"))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "08kyn6cl755l9i1grzjx8yi3f8mgiz4gx0hgqad1n0d8yz85087b"))))
 | 
					        (base32 "1chc89v9hcjw3k4rvzakl8g56wv24kh48fzv1gfs4iv8vhyl3j4x"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:tests? #f)) ; no "check" phase
 | 
					     `(#:tests? #f)) ; no "check" phase
 | 
				
			||||||
| 
						 | 
					@ -1689,12 +1689,13 @@ synthesizer written in C++.")
 | 
				
			||||||
       (method url-fetch)
 | 
					       (method url-fetch)
 | 
				
			||||||
       (uri (string-append "https://github.com/Themaister/RSound/archive/v"
 | 
					       (uri (string-append "https://github.com/Themaister/RSound/archive/v"
 | 
				
			||||||
                           version ".tar.gz"))
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
 | 
					       (file-name (string-append name "-" version))
 | 
				
			||||||
       (sha256
 | 
					       (sha256
 | 
				
			||||||
        (base32 "1wzs40c0k5zpkmm5ffl6c17xmr399sxli7ys0fbb9ib0fd334knx"))))
 | 
					        (base32 "1wzs40c0k5zpkmm5ffl6c17xmr399sxli7ys0fbb9ib0fd334knx"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("alsa-lib" ,alsa-lib)
 | 
					     `(("alsa-lib" ,alsa-lib)
 | 
				
			||||||
       ("jack" ,jack-2)
 | 
					       ("jack" ,jack-1)
 | 
				
			||||||
       ("ao" ,ao)
 | 
					       ("ao" ,ao)
 | 
				
			||||||
       ("libsamplerate" ,libsamplerate)
 | 
					       ("libsamplerate" ,libsamplerate)
 | 
				
			||||||
       ("openal" ,openal)
 | 
					       ("openal" ,openal)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
 | 
					;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
 | 
				
			||||||
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
 | 
					;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
 | 
				
			||||||
 | 
					;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -26,6 +27,7 @@
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
  #:use-module (guix build-system python)
 | 
					  #:use-module (guix build-system python)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages acl)
 | 
				
			||||||
  #:use-module (gnu packages base)
 | 
					  #:use-module (gnu packages base)
 | 
				
			||||||
  #:use-module (gnu packages compression)
 | 
					  #:use-module (gnu packages compression)
 | 
				
			||||||
  #:use-module (gnu packages dejagnu)
 | 
					  #:use-module (gnu packages dejagnu)
 | 
				
			||||||
| 
						 | 
					@ -35,11 +37,11 @@
 | 
				
			||||||
  #:use-module (gnu packages mcrypt)
 | 
					  #:use-module (gnu packages mcrypt)
 | 
				
			||||||
  #:use-module (gnu packages nettle)
 | 
					  #:use-module (gnu packages nettle)
 | 
				
			||||||
  #:use-module (gnu packages pcre)
 | 
					  #:use-module (gnu packages pcre)
 | 
				
			||||||
  #:use-module (gnu packages python)
 | 
					 | 
				
			||||||
  #:use-module (gnu packages linux)
 | 
					 | 
				
			||||||
  #:use-module (gnu packages pkg-config)
 | 
					  #:use-module (gnu packages pkg-config)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages python)
 | 
				
			||||||
  #:use-module (gnu packages rsync)
 | 
					  #:use-module (gnu packages rsync)
 | 
				
			||||||
  #:use-module (gnu packages ssh)
 | 
					  #:use-module (gnu packages ssh)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages tls)
 | 
				
			||||||
  #:use-module (gnu packages xml))
 | 
					  #:use-module (gnu packages xml))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public duplicity
 | 
					(define-public duplicity
 | 
				
			||||||
| 
						 | 
					@ -316,3 +318,37 @@ rsync.  Thus you can use rdiff-backup and ssh to securely back a hard drive up
 | 
				
			||||||
to a remote location, and only the differences will be transmitted.  Finally,
 | 
					to a remote location, and only the differences will be transmitted.  Finally,
 | 
				
			||||||
rdiff-backup is easy to use and settings have sensible defaults.")
 | 
					rdiff-backup is easy to use and settings have sensible defaults.")
 | 
				
			||||||
    (license license:gpl2+)))
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public attic
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "attic")
 | 
				
			||||||
 | 
					    (version "0.16")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append
 | 
				
			||||||
 | 
					                    "https://pypi.python.org/packages/source/A/Attic/Attic-"
 | 
				
			||||||
 | 
					                    version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "0b5skd36r4c0915lwpkqg5hxm49gls9pprs1b7hc40910wlcsl36"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-before
 | 
				
			||||||
 | 
					          'build 'set-openssl-prefix
 | 
				
			||||||
 | 
					          (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					            (setenv "ATTIC_OPENSSL_PREFIX" (assoc-ref inputs "openssl"))
 | 
				
			||||||
 | 
					            #t)))))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("acl" ,acl)
 | 
				
			||||||
 | 
					       ("openssl" ,openssl)
 | 
				
			||||||
 | 
					       ("python-llfuse" ,python-llfuse)
 | 
				
			||||||
 | 
					       ("python-msgpack" ,python-msgpack)))
 | 
				
			||||||
 | 
					    (synopsis "Deduplicating backup program")
 | 
				
			||||||
 | 
					    (description "Attic is a deduplicating backup program.  The main goal of
 | 
				
			||||||
 | 
					Attic is to provide an efficient and secure way to backup data.  The data
 | 
				
			||||||
 | 
					deduplication technique used makes Attic suitable for daily backups since only
 | 
				
			||||||
 | 
					changes are stored.")
 | 
				
			||||||
 | 
					    (home-page "https://attic-backup.org/")
 | 
				
			||||||
 | 
					    (license license:bsd-3)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -873,6 +873,45 @@ file formats including SAM/BAM, Wiggle/BigWig, BED, GFF/GTF, VCF.")
 | 
				
			||||||
other types of unwanted sequence from high-throughput sequencing reads.")
 | 
					other types of unwanted sequence from high-throughput sequencing reads.")
 | 
				
			||||||
    (license license:expat)))
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public deeptools
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "deeptools")
 | 
				
			||||||
 | 
					    (version "1.5.11")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append
 | 
				
			||||||
 | 
					                    "https://github.com/fidelram/deepTools/archive/"
 | 
				
			||||||
 | 
					                    version ".tar.gz"))
 | 
				
			||||||
 | 
					              (file-name (string-append name "-" version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "1kaagygcbvjs9sxd9cqmskd02wcfp9imvb735r087w7hwqpvz6fs"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:python ,python-2))
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("python-scipy" ,python2-scipy)
 | 
				
			||||||
 | 
					       ("python-numpy" ,python2-numpy)
 | 
				
			||||||
 | 
					       ("python-matplotlib" ,python2-matplotlib)
 | 
				
			||||||
 | 
					       ("python-bx-python" ,python2-bx-python)
 | 
				
			||||||
 | 
					       ("python-pysam" ,python2-pysam)))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("python-mock" ,python2-mock) ;for tests
 | 
				
			||||||
 | 
					       ("python-pytz" ,python2-pytz) ;for tests
 | 
				
			||||||
 | 
					       ("python-setuptools" ,python2-setuptools)))
 | 
				
			||||||
 | 
					    (home-page "https://github.com/fidelram/deepTools")
 | 
				
			||||||
 | 
					    (synopsis "Tools for normalizing and visualizing deep-sequencing data")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "DeepTools addresses the challenge of handling the large amounts of data
 | 
				
			||||||
 | 
					that are now routinely generated from DNA sequencing centers.  To do so,
 | 
				
			||||||
 | 
					deepTools contains useful modules to process the mapped reads data to create
 | 
				
			||||||
 | 
					coverage files in standard bedGraph and bigWig file formats.  By doing so,
 | 
				
			||||||
 | 
					deepTools allows the creation of normalized coverage files or the comparison
 | 
				
			||||||
 | 
					between two files (for example, treatment and control).  Finally, using such
 | 
				
			||||||
 | 
					normalized and standardized files, multiple visualizations can be created to
 | 
				
			||||||
 | 
					identify enrichments with functional annotations of the genome.")
 | 
				
			||||||
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public diamond
 | 
					(define-public diamond
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "diamond")
 | 
					    (name "diamond")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -127,7 +127,7 @@ successful, or false to signal an error."
 | 
				
			||||||
    (synopsis description)
 | 
					    (synopsis description)
 | 
				
			||||||
    (description #f)
 | 
					    (description #f)
 | 
				
			||||||
    (home-page #f)
 | 
					    (home-page #f)
 | 
				
			||||||
    (license #f)))
 | 
					    (license gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define package-with-bootstrap-guile
 | 
					(define package-with-bootstrap-guile
 | 
				
			||||||
  (memoize
 | 
					  (memoize
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,6 +5,7 @@
 | 
				
			||||||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 | 
					;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 | 
				
			||||||
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
 | 
					;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
 | 
				
			||||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 | 
					;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
 | 
					;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -30,6 +31,7 @@
 | 
				
			||||||
  #:use-module (guix build-system perl)
 | 
					  #:use-module (guix build-system perl)
 | 
				
			||||||
  #:use-module (gnu packages base)
 | 
					  #:use-module (gnu packages base)
 | 
				
			||||||
  #:use-module (gnu packages perl)
 | 
					  #:use-module (gnu packages perl)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages valgrind)
 | 
				
			||||||
  #:use-module ((srfi srfi-1) #:select (last)))
 | 
					  #:use-module ((srfi srfi-1) #:select (last)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public zlib
 | 
					(define-public zlib
 | 
				
			||||||
| 
						 | 
					@ -513,3 +515,35 @@ compression library.")
 | 
				
			||||||
    (description "IO-Compress provides a Perl interface to allow reading and
 | 
					    (description "IO-Compress provides a Perl interface to allow reading and
 | 
				
			||||||
writing of compressed data created with the zlib and bzip2 libraries.")
 | 
					writing of compressed data created with the zlib and bzip2 libraries.")
 | 
				
			||||||
    (license (package-license perl))))
 | 
					    (license (package-license perl))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public lz4
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "lz4")
 | 
				
			||||||
 | 
					    (version "131")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "https://github.com/Cyan4973/lz4/archive/"
 | 
				
			||||||
 | 
					                           "r" version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "1vfg305zvj50hwscad24wan9jar6nqj14gdk2hqyr7bb9mhh0kcx"))
 | 
				
			||||||
 | 
					       (file-name (string-append name "-" version ".tar.gz"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (native-inputs `(("valgrind" ,valgrind)))
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:test-target "test"
 | 
				
			||||||
 | 
					       #:parallel-tests? #f ; tests fail if run in parallel
 | 
				
			||||||
 | 
					       #:make-flags (list "CC=gcc"
 | 
				
			||||||
 | 
					                          (string-append "PREFIX=" (assoc-ref %outputs "out")))
 | 
				
			||||||
 | 
					       #:phases (modify-phases %standard-phases
 | 
				
			||||||
 | 
					                  (delete 'configure))))
 | 
				
			||||||
 | 
					    (home-page "https://github.com/Cyan4973/lz4")
 | 
				
			||||||
 | 
					    (synopsis "Compression algorithm focused on speed")
 | 
				
			||||||
 | 
					    (description "LZ4 is a lossless compression algorithm, providing
 | 
				
			||||||
 | 
					compression speed at 400 MB/s per core (0.16 Bytes/cycle).  It also features an
 | 
				
			||||||
 | 
					extremely fast decoder, with speed in multiple GB/s per core (0.71 Bytes/cycle).
 | 
				
			||||||
 | 
					A high compression derivative, called LZ4_HC, is also provided.  It trades CPU
 | 
				
			||||||
 | 
					time for compression ratio.")
 | 
				
			||||||
 | 
					    ;; The libraries (lz4, lz4hc, and xxhash are BSD licenced. The command
 | 
				
			||||||
 | 
					    ;; line interface programs (lz4, fullbench, fuzzer, datagen) are GPL2+.
 | 
				
			||||||
 | 
					    (license (list license:bsd-2 license:gpl2+))))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,29 +28,15 @@
 | 
				
			||||||
(define-public cpio
 | 
					(define-public cpio
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "cpio")
 | 
					    (name "cpio")
 | 
				
			||||||
    (version "2.11")
 | 
					    (version "2.12")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
             (method url-fetch)
 | 
					             (method url-fetch)
 | 
				
			||||||
             (uri (string-append "mirror://gnu/cpio/cpio-"
 | 
					             (uri (string-append "mirror://gnu/cpio/cpio-"
 | 
				
			||||||
                                 version ".tar.bz2"))
 | 
					                                 version ".tar.bz2"))
 | 
				
			||||||
             (sha256
 | 
					             (sha256
 | 
				
			||||||
              (base32
 | 
					              (base32
 | 
				
			||||||
               "1gavgpzqwgkpagjxw72xgxz52y1ifgz0ckqh8g7cckz7jvyhp0mv"))
 | 
					               "0vi9q475h1rki53100zml75vxsykzyhrn70hidy41s5c2rc8r6bh"))))
 | 
				
			||||||
             (patches (map search-patch
 | 
					 | 
				
			||||||
                           '("cpio-CVE-2014-9112-pt1.patch"
 | 
					 | 
				
			||||||
                             "cpio-CVE-2014-9112-pt2.patch"
 | 
					 | 
				
			||||||
                             "cpio-CVE-2014-9112-pt3.patch"
 | 
					 | 
				
			||||||
                             "cpio-CVE-2014-9112-pt4.patch"
 | 
					 | 
				
			||||||
                             "cpio-CVE-2014-9112-pt5.patch"
 | 
					 | 
				
			||||||
                             "cpio-fix-symlink-bad-length-test.patch"
 | 
					 | 
				
			||||||
                             "cpio-gets-undeclared.patch")))))
 | 
					 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					 | 
				
			||||||
    ;; FIXME: autoconf is needed to run autom4te, to update to test suite
 | 
					 | 
				
			||||||
    ;;        after the CVE-2014-9112 patches.  Remove this when cpio is
 | 
					 | 
				
			||||||
    ;;        updated to post-2.11.
 | 
					 | 
				
			||||||
    (native-inputs `(("autoconf" ,autoconf)))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    (home-page "https://www.gnu.org/software/cpio/")
 | 
					    (home-page "https://www.gnu.org/software/cpio/")
 | 
				
			||||||
    (synopsis "Manage cpio and tar file archives")
 | 
					    (synopsis "Manage cpio and tar file archives")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -328,11 +328,18 @@ types are supported, as is encryption.")
 | 
				
			||||||
                                           6 #\0))))))
 | 
					                                           6 #\0))))))
 | 
				
			||||||
                   (list
 | 
					                   (list
 | 
				
			||||||
                    (string-append
 | 
					                    (string-append
 | 
				
			||||||
                     "http://distfiles.gentoo.org/distfiles/"
 | 
					                     "https://fossies.org/linux/misc/sqlite-autoconf-"
 | 
				
			||||||
                     "/sqlite-autoconf-" numeric-version ".tar.gz")
 | 
					                     numeric-version ".tar.gz")
 | 
				
			||||||
                    (string-append
 | 
					                    (string-append
 | 
				
			||||||
                     "mirror://sourceforge/sqlite.mirror/SQLite%20" version
 | 
					                     "http://distfiles.gentoo.org/distfiles/"
 | 
				
			||||||
                     "/sqlite-autoconf-" numeric-version ".tar.gz"))))
 | 
					                     "/sqlite-autoconf-" numeric-version ".tar.gz"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                   ;; XXX: As of 2015-09-08, SourceForge is squatting the URL
 | 
				
			||||||
 | 
					                   ;; below, returning 200 and showing an advertising page.
 | 
				
			||||||
 | 
					                   ;; (string-append
 | 
				
			||||||
 | 
					                   ;;  "mirror://sourceforge/sqlite.mirror/SQLite%20" version
 | 
				
			||||||
 | 
					                   ;;  "/sqlite-autoconf-" numeric-version ".tar.gz")
 | 
				
			||||||
 | 
					                   ))
 | 
				
			||||||
            (sha256
 | 
					            (sha256
 | 
				
			||||||
             (base32
 | 
					             (base32
 | 
				
			||||||
              "1dnkl4qr1dgaprbyf3jddfiynkhxnin86qabni47wjlc0fnb16gv"))))
 | 
					              "1dnkl4qr1dgaprbyf3jddfiynkhxnin86qabni47wjlc0fnb16gv"))))
 | 
				
			||||||
| 
						 | 
					@ -740,14 +747,14 @@ similar to BerkeleyDB, LevelDB, etc.")
 | 
				
			||||||
(define-public redis
 | 
					(define-public redis
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "redis")
 | 
					    (name "redis")
 | 
				
			||||||
    (version "3.0.3")
 | 
					    (version "3.0.4")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "http://download.redis.io/releases/redis-"
 | 
					              (uri (string-append "http://download.redis.io/releases/redis-"
 | 
				
			||||||
                                  version".tar.gz"))
 | 
					                                  version".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "19cxdrk380qachw160h1x51mwj7kpkxlggfzfh19bl0nbdkgl20x"))))
 | 
					                "1kqjc4qrasadgnl3cg71x3g5qpw2rilyk4pwl151698rb2nr0pm3"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:tests? #f ; tests related to master/slave and replication fail
 | 
					     '(#:tests? #f ; tests related to master/slave and replication fail
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -60,7 +60,7 @@
 | 
				
			||||||
(define-public calibre
 | 
					(define-public calibre
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "calibre")
 | 
					    (name "calibre")
 | 
				
			||||||
    (version "2.35.0")
 | 
					    (version "2.37.1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
      (origin
 | 
					      (origin
 | 
				
			||||||
        (method url-fetch)
 | 
					        (method url-fetch)
 | 
				
			||||||
| 
						 | 
					@ -69,7 +69,7 @@
 | 
				
			||||||
                            version ".tar.xz"))
 | 
					                            version ".tar.xz"))
 | 
				
			||||||
        (sha256
 | 
					        (sha256
 | 
				
			||||||
          (base32
 | 
					          (base32
 | 
				
			||||||
           "13sic0l16myvka8mgpr56h6qlpf1cwx8xlf4acp3qz6gsmz3r23x"))
 | 
					           "0cbpkhchxjz9dz4chkrlgq0q1sjmyp6lm9vrhnm2mwai61kzn25s"))
 | 
				
			||||||
        ;; Remove non-free or doubtful code, see
 | 
					        ;; Remove non-free or doubtful code, see
 | 
				
			||||||
        ;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html
 | 
					        ;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html
 | 
				
			||||||
        (modules '((guix build utils)))
 | 
					        (modules '((guix build utils)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -310,7 +310,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
 | 
				
			||||||
(define-public magit
 | 
					(define-public magit
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "magit")
 | 
					    (name "magit")
 | 
				
			||||||
    (version "2.2.1")
 | 
					    (version "2.2.2")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
             (method url-fetch)
 | 
					             (method url-fetch)
 | 
				
			||||||
             (uri (string-append
 | 
					             (uri (string-append
 | 
				
			||||||
| 
						 | 
					@ -318,7 +318,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
 | 
				
			||||||
                   version "/" name "-" version ".tar.gz"))
 | 
					                   version "/" name "-" version ".tar.gz"))
 | 
				
			||||||
             (sha256
 | 
					             (sha256
 | 
				
			||||||
              (base32
 | 
					              (base32
 | 
				
			||||||
               "0bjdj4468i5w3j2i945b6psb6n04z34vhjaqr0iz4xgixk3wiqmh"))))
 | 
					               "1imkj4prprnivhbpdn1mdpiryxkckzy5hbnqaahv7gixwac1irh8"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs `(("texinfo" ,texinfo)
 | 
					    (native-inputs `(("texinfo" ,texinfo)
 | 
				
			||||||
                     ("emacs" ,emacs-no-x)))
 | 
					                     ("emacs" ,emacs-no-x)))
 | 
				
			||||||
| 
						 | 
					@ -483,6 +483,82 @@ support for Git-SVN.")
 | 
				
			||||||
programs.")
 | 
					programs.")
 | 
				
			||||||
    (license license:gpl3+)))
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public let-alist
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "emacs-let-alist")
 | 
				
			||||||
 | 
					    (version "1.0.4")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "http://elpa.gnu.org/packages/let-alist-"
 | 
				
			||||||
 | 
					                                  version ".el"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "07312bvvyz86lf64vdkxg2l1wgfjl25ljdjwlf1bdzj01c4hm88x"))))
 | 
				
			||||||
 | 
					    (build-system trivial-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:modules ((guix build utils)
 | 
				
			||||||
 | 
					                  (guix build emacs-utils))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       #:builder (begin
 | 
				
			||||||
 | 
					                   (use-modules (guix build emacs-utils)
 | 
				
			||||||
 | 
					                                (guix build utils))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                   (let* ((out     (assoc-ref %outputs "out"))
 | 
				
			||||||
 | 
					                          (lispdir (string-append out
 | 
				
			||||||
 | 
					                                                  "/share/emacs/site-lisp/"
 | 
				
			||||||
 | 
					                                                  "guix.d/let-alist-"
 | 
				
			||||||
 | 
					                                                  ,version))
 | 
				
			||||||
 | 
					                          (emacs   (assoc-ref %build-inputs "emacs")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                     (mkdir-p lispdir)
 | 
				
			||||||
 | 
					                     (copy-file (assoc-ref %build-inputs "source")
 | 
				
			||||||
 | 
					                                (string-append lispdir "/let-alist.el"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                     (setenv "PATH" (string-append emacs "/bin"))
 | 
				
			||||||
 | 
					                     (emacs-byte-compile-directory lispdir)
 | 
				
			||||||
 | 
					                     #t))))
 | 
				
			||||||
 | 
					    (native-inputs `(("emacs" ,emacs-no-x)))
 | 
				
			||||||
 | 
					    (home-page "http://elpa.gnu.org/packages/let-alist.html")
 | 
				
			||||||
 | 
					    (synopsis "Easily let-bind values of an assoc-list by their names")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "This package offers a single Emacs Lisp macro, @code{let-alist}.  This
 | 
				
			||||||
 | 
					macro takes a first argument, whose value must be an alist (association list),
 | 
				
			||||||
 | 
					and a body.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The macro expands to a let form containing the body, where each dotted symbol
 | 
				
			||||||
 | 
					inside body is let-bound to their cdrs in the alist.  Only those present in
 | 
				
			||||||
 | 
					the body are let-bound and this search is done at compile time.")
 | 
				
			||||||
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public flycheck
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "emacs-flycheck")
 | 
				
			||||||
 | 
					    (version "0.23")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append
 | 
				
			||||||
 | 
					                    "https://github.com/flycheck/flycheck/releases/download/"
 | 
				
			||||||
 | 
					                    version "/flycheck-" version ".tar"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "1n2cifzsl5dbv42l82bi3y1vk6q33msi8dd4bj7b9nvnl9jfjj5b"))))
 | 
				
			||||||
 | 
					    (build-system emacs-build-system)
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("emacs-dash" ,emacs-dash)
 | 
				
			||||||
 | 
					       ("emacs-let-alist" ,let-alist)))
 | 
				
			||||||
 | 
					    (home-page "https://www.flycheck.org")
 | 
				
			||||||
 | 
					    (synopsis "On-the-fly syntax checking")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "This package provides on-the-fly syntax checking for GNU Emacs.  It is a
 | 
				
			||||||
 | 
					replacement for the older Flymake extension which is part of GNU Emacs, with
 | 
				
			||||||
 | 
					many improvements and additional features.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
 | 
				
			||||||
 | 
					checking for over 30 programming and markup languages with more than 70
 | 
				
			||||||
 | 
					different tools.  It highlights errors and warnings inline in the buffer, and
 | 
				
			||||||
 | 
					provides an optional IDE-like error list.")
 | 
				
			||||||
 | 
					    (license license:gpl3+)))                     ;+GFDLv1.3+ for the manual
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; Web browsing.
 | 
					;;; Web browsing.
 | 
				
			||||||
| 
						 | 
					@ -989,3 +1065,30 @@ files and directories.")
 | 
				
			||||||
    (description "This package adds support to Org-Babel for evaluating Python
 | 
					    (description "This package adds support to Org-Babel for evaluating Python
 | 
				
			||||||
source code using IPython.")
 | 
					source code using IPython.")
 | 
				
			||||||
    (license license:gpl3+)))
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public emacs-debbugs
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "emacs-debbugs")
 | 
				
			||||||
 | 
					    (version "0.7")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "http://elpa.gnu.org/packages/debbugs-"
 | 
				
			||||||
 | 
					                                  version ".tar"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "0pbglx3paa8icazgxlg4jf40wl8war63y9j2jmbb7gbd1xp95v72"))))
 | 
				
			||||||
 | 
					    (build-system emacs-build-system)
 | 
				
			||||||
 | 
					    (home-page "http://elpa.gnu.org/packages/debbugs.html")
 | 
				
			||||||
 | 
					    (synopsis "Access the Debbugs bug tracker in Emacs")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
 | 
				
			||||||
 | 
					Tracker} from within Emacs.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
 | 
				
			||||||
 | 
					and the command @code{M-x debbugs-gnu-search} for bug searching.  If you
 | 
				
			||||||
 | 
					prefer the listing of bugs as TODO items of @code{org-mode}, you could use
 | 
				
			||||||
 | 
					@code{M-x debbugs-org} and related commands.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
 | 
				
			||||||
 | 
					Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
 | 
				
			||||||
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,6 +28,7 @@
 | 
				
			||||||
  #:use-module ((guix licenses) #:prefix license:)
 | 
					  #:use-module ((guix licenses) #:prefix license:)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages autotools)
 | 
				
			||||||
  #:use-module (gnu packages base)
 | 
					  #:use-module (gnu packages base)
 | 
				
			||||||
  #:use-module (gnu packages bison)
 | 
					  #:use-module (gnu packages bison)
 | 
				
			||||||
  #:use-module (gnu packages boost)
 | 
					  #:use-module (gnu packages boost)
 | 
				
			||||||
| 
						 | 
					@ -35,6 +36,7 @@
 | 
				
			||||||
  #:use-module (gnu packages flex)
 | 
					  #:use-module (gnu packages flex)
 | 
				
			||||||
  #:use-module (gnu packages fontutils)
 | 
					  #:use-module (gnu packages fontutils)
 | 
				
			||||||
  #:use-module (gnu packages gd)
 | 
					  #:use-module (gnu packages gd)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages gettext)
 | 
				
			||||||
  #:use-module (gnu packages ghostscript)
 | 
					  #:use-module (gnu packages ghostscript)
 | 
				
			||||||
  #:use-module (gnu packages gl)
 | 
					  #:use-module (gnu packages gl)
 | 
				
			||||||
  #:use-module (gnu packages glib)
 | 
					  #:use-module (gnu packages glib)
 | 
				
			||||||
| 
						 | 
					@ -360,3 +362,49 @@ multipole-accelerated algorithm.")
 | 
				
			||||||
     "Fasthenry is an inductance extraction program based on a
 | 
					     "Fasthenry is an inductance extraction program based on a
 | 
				
			||||||
multipole-accelerated algorithm.")
 | 
					multipole-accelerated algorithm.")
 | 
				
			||||||
    (license (license:non-copyleft #f "See induct.c."))))
 | 
					    (license (license:non-copyleft #f "See induct.c."))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public gerbv
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "gerbv")
 | 
				
			||||||
 | 
					    (version "2.6.1")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "mirror://sourceforge/gerbv/gerbv/gerbv-"
 | 
				
			||||||
 | 
					                                  version "/gerbv-" version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "0v6ry0mxi5qym4z0y0lpblxsw9dfjpgxs4c4v2ngg7yw4b3a59ks"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-before 'configure 'autoconf
 | 
				
			||||||
 | 
					          (lambda _
 | 
				
			||||||
 | 
					            ;; Build rules contain references to Russian translation, but the
 | 
				
			||||||
 | 
					            ;; needed files are missing; see
 | 
				
			||||||
 | 
					            ;; http://sourceforge.net/p/gerbv/bugs/174/
 | 
				
			||||||
 | 
					            (delete-file "po/LINGUAS")
 | 
				
			||||||
 | 
					            (substitute* "man/Makefile.am"
 | 
				
			||||||
 | 
					              (("PO_FILES= gerbv.ru.1.in.po") "")
 | 
				
			||||||
 | 
					              (("man_MANS = gerbv.1 gerbv.ru.1") "man_MANS = gerbv.1"))
 | 
				
			||||||
 | 
					            (zero? (system* "autoreconf" "-vfi")))))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("autoconf" ,autoconf)
 | 
				
			||||||
 | 
					       ("automake" ,automake)
 | 
				
			||||||
 | 
					       ("libtool" ,libtool)
 | 
				
			||||||
 | 
					       ("gettext" ,gnu-gettext)
 | 
				
			||||||
 | 
					       ("po4a" ,po4a)
 | 
				
			||||||
 | 
					       ("pkg-config" ,pkg-config)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("cairo" ,cairo)
 | 
				
			||||||
 | 
					       ("gtk" ,gtk+-2)
 | 
				
			||||||
 | 
					       ("desktop-file-utils" ,desktop-file-utils)))
 | 
				
			||||||
 | 
					    (home-page "http://gerbv.geda-project.org/")
 | 
				
			||||||
 | 
					    (synopsis "Gerber file viewer")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Gerbv is a viewer for files in the Gerber format (RS-274X only), which
 | 
				
			||||||
 | 
					is commonly used to represent printed circuit board (PCB) layouts.  Gerbv lets
 | 
				
			||||||
 | 
					you load several files on top of each other, do measurements on the displayed
 | 
				
			||||||
 | 
					image, etc.  Besides viewing Gerbers, you may also view Excellon drill files
 | 
				
			||||||
 | 
					as well as pick-place files.")
 | 
				
			||||||
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,14 +51,15 @@
 | 
				
			||||||
(define-public efl
 | 
					(define-public efl
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "efl")
 | 
					    (name "efl")
 | 
				
			||||||
    (version "1.14.2")
 | 
					    (version "1.15.1")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append
 | 
					              (uri (string-append
 | 
				
			||||||
                    "https://download.enlightenment.org/rel/libs/efl/efl-"
 | 
					                    "https://download.enlightenment.org/rel/libs/efl/efl-"
 | 
				
			||||||
                    version ".tar.xz"))
 | 
					                    version ".tar.xz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32 "0kg51v63ljq1z4dj65aiyxaqhq54gkl4hx53ifwbci6ihammandr"))))
 | 
					               (base32
 | 
				
			||||||
 | 
					                "1n2l2n09lys5dph9lrnsv5z3qbgzp7bi0vidal2fvy18hflbbvsn"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)))
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
| 
						 | 
					@ -127,20 +128,21 @@
 | 
				
			||||||
for Enlightenment.  Libraries covers data serialization, wide support for
 | 
					for Enlightenment.  Libraries covers data serialization, wide support for
 | 
				
			||||||
graphics rendering, UI layout and themes, interaction with OS, access to
 | 
					graphics rendering, UI layout and themes, interaction with OS, access to
 | 
				
			||||||
removable devices or support for multimedia.")
 | 
					removable devices or support for multimedia.")
 | 
				
			||||||
    (license (list license:bsd-2 license:lgpl2.1 license:zlib)))) ; different parts under different licenses
 | 
					    ;; Different parts are under different licenses.
 | 
				
			||||||
 | 
					    (license (list license:bsd-2 license:lgpl2.1 license:zlib))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public elementary
 | 
					(define-public elementary
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "elementary")
 | 
					    (name "elementary")
 | 
				
			||||||
    (version "1.14.2")
 | 
					    (version "1.15.1")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri
 | 
					              (uri
 | 
				
			||||||
               (string-append
 | 
					               (string-append "https://download.enlightenment.org/rel/libs/"
 | 
				
			||||||
                "https://download.enlightenment.org/rel/libs/elementary/elementary-"
 | 
					                              "elementary/elementary-" version ".tar.xz"))
 | 
				
			||||||
                version ".tar.xz"))
 | 
					 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32 "1ck1jm9dfx2l72nklndqjfsxjqb0024b88naskld1dk9b8drs76b"))))
 | 
					               (base32
 | 
				
			||||||
 | 
					                "015b277bvgb4q8cqjl58ir9nqb1d40fpj2jblf4gkxq8a45a88mb"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)))
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
| 
						 | 
					@ -157,7 +159,7 @@ full capabilities of EFL.")
 | 
				
			||||||
(define-public evas-generic-loaders
 | 
					(define-public evas-generic-loaders
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "evas-generic-loaders")
 | 
					    (name "evas-generic-loaders")
 | 
				
			||||||
    (version "1.14.0")
 | 
					    (version "1.15.0")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri
 | 
					              (uri
 | 
				
			||||||
| 
						 | 
					@ -166,7 +168,8 @@ full capabilities of EFL.")
 | 
				
			||||||
                "evas_generic_loaders/evas_generic_loaders-"
 | 
					                "evas_generic_loaders/evas_generic_loaders-"
 | 
				
			||||||
                version ".tar.xz"))
 | 
					                version ".tar.xz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32 "18b6xmbf81bly4mlwlzwr17g2m8dzznbhsdjk6pbb3nw4wn3y88l"))))
 | 
					               (base32
 | 
				
			||||||
 | 
					                "0zzx06j20x580xqnnsxp7gb7rv279zcgvdxfbhs905af9m6rwlqy"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)))
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
| 
						 | 
					@ -188,15 +191,16 @@ files in Evas (EFL canvas library).")
 | 
				
			||||||
(define-public emotion-generic-players
 | 
					(define-public emotion-generic-players
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "emotion-generic-players")
 | 
					    (name "emotion-generic-players")
 | 
				
			||||||
    (version "1.14.0")
 | 
					    (version "1.15.0")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri
 | 
					              (uri
 | 
				
			||||||
               (string-append
 | 
					               (string-append "https://download.enlightenment.org/rel/libs/"
 | 
				
			||||||
                "https://download.enlightenment.org/rel/libs/emotion_generic_players/emotion_generic_players-"
 | 
					                              "emotion_generic_players/emotion_generic_players"
 | 
				
			||||||
                version ".tar.xz"))
 | 
					                              "-" version ".tar.xz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32 "0685jzag98ykknycfdqn70zif3fmcfi6m8k9yp6d79r1h8gc49n4"))))
 | 
					               (base32
 | 
				
			||||||
 | 
					                "0pszwmcygxnv1sfx0m79md2jmi4sng8mdb1xcr6h2z5c8685wvcz"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)))
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
| 
						 | 
					@ -214,15 +218,15 @@ The only supported now is VLC.")
 | 
				
			||||||
(define-public terminology
 | 
					(define-public terminology
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "terminology")
 | 
					    (name "terminology")
 | 
				
			||||||
    (version "0.8.0")
 | 
					    (version "0.9.0")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri
 | 
					              (uri
 | 
				
			||||||
               (string-append
 | 
					               (string-append "https://download.enlightenment.org/rel/apps/"
 | 
				
			||||||
                "https://download.enlightenment.org/rel/apps/terminology/terminology-"
 | 
					                              "terminology/terminology-" version ".tar.xz"))
 | 
				
			||||||
                version ".tar.gz"))
 | 
					 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32 "0a767ixackzmhb2awrhjy7q6vsivsd54wc434i617xiw095x843s"))))
 | 
					               (base32
 | 
				
			||||||
 | 
					                "0iwid9cvd96kwl0hjhbby84kkz5sgb4p8454nnkf7wjvdz2f9b96"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)))
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
| 
						 | 
					@ -266,15 +270,14 @@ Libraries with some extra bells and whistles.")
 | 
				
			||||||
(define-public enlightenment
 | 
					(define-public enlightenment
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "enlightenment")
 | 
					    (name "enlightenment")
 | 
				
			||||||
    (version "0.19.5")
 | 
					    (version "0.19.9")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri
 | 
					              (uri
 | 
				
			||||||
               (string-append
 | 
					               (string-append "https://download.enlightenment.org/rel/apps/"
 | 
				
			||||||
                "https://download.enlightenment.org/rel/apps/enlightenment/enlightenment-"
 | 
					                              name "/" name "-" version ".tar.xz"))
 | 
				
			||||||
                version ".tar.xz"))
 | 
					 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32 "0j66x7x76fbgqfw6fi77v8qy50slw3jnsq3vvs82rrfvniabm8wc"))))
 | 
					               (base32 "1ajpyw1bfbmxpniw041vbvrs9wqgzyw9kccx72nnfiy2wxspjcr5"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)))
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
 | 
					;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,7 @@
 | 
				
			||||||
(define-public ath9k-htc-firmware
 | 
					(define-public ath9k-htc-firmware
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "ath9k-htc-firmware")
 | 
					    (name "ath9k-htc-firmware")
 | 
				
			||||||
    (version "1.3.2")
 | 
					    (version "1.4.0")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method git-fetch)
 | 
					              (method git-fetch)
 | 
				
			||||||
              (uri (git-reference
 | 
					              (uri (git-reference
 | 
				
			||||||
| 
						 | 
					@ -37,7 +37,7 @@
 | 
				
			||||||
                    (commit version)))
 | 
					                    (commit version)))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0dgqfp4cbky79vzjrdy3j462l8figymzrk2v0jalmmz3lkxw88ww"))
 | 
					                "16jbj8avg5jkgvq5lxm0hdxxn4c3zn7fx8b4nxllvr024apk9w23"))
 | 
				
			||||||
              (patches (list (search-patch "ath9k-htc-firmware-objcopy.patch")))))
 | 
					              (patches (list (search-patch "ath9k-htc-firmware-objcopy.patch")))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,6 +5,7 @@
 | 
				
			||||||
;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
 | 
					;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
 | 
				
			||||||
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 | 
					;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 | 
				
			||||||
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 | 
					;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 | 
				
			||||||
 | 
					;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -486,3 +487,84 @@ code-points needed for zh_cn, zh_sg, zh_tw, zh_hk, zh_mo, ja (Japanese) and
 | 
				
			||||||
ko (Korean) locales for fontconfig.")
 | 
					ko (Korean) locales for fontconfig.")
 | 
				
			||||||
    ;; GPLv2 with font embedding exception
 | 
					    ;; GPLv2 with font embedding exception
 | 
				
			||||||
    (license license:gpl2)))
 | 
					    (license license:gpl2)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public font-tex-gyre
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "font-tex-gyre")
 | 
				
			||||||
 | 
					    (version "2.005")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "http://www.gust.org.pl/projects/e-foundry/"
 | 
				
			||||||
 | 
					                           "tex-gyre/whole/tg-" version "otf.zip"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "0kph9l3g7jb2bpmxdbdg5zl56wacmnvdvsdn7is1gc750sqvsn31"))))
 | 
				
			||||||
 | 
					    (build-system trivial-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:modules ((guix build utils))
 | 
				
			||||||
 | 
					       #:builder
 | 
				
			||||||
 | 
					       (begin
 | 
				
			||||||
 | 
					         (use-modules (guix build utils))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         (let ((unzip    (string-append (assoc-ref %build-inputs "unzip")
 | 
				
			||||||
 | 
					                                        "/bin/unzip"))
 | 
				
			||||||
 | 
					               (font-dir (string-append %output "/share/fonts/opentype")))
 | 
				
			||||||
 | 
					           (mkdir-p font-dir)
 | 
				
			||||||
 | 
					           (system* unzip
 | 
				
			||||||
 | 
					                    (assoc-ref %build-inputs "source")
 | 
				
			||||||
 | 
					                    "-d" font-dir)))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("unzip" ,unzip)))
 | 
				
			||||||
 | 
					    (home-page "http://www.gust.org.pl/projects/e-foundry/tex-gyre/")
 | 
				
			||||||
 | 
					    (synopsis "Remake of Ghostscript fonts")
 | 
				
			||||||
 | 
					    (description "The TeX Gyre collection of fonts is the result of an
 | 
				
			||||||
 | 
					extensive remake and extension of the freely available base PostScript fonts
 | 
				
			||||||
 | 
					distributed with Ghostscript version 4.00.  The collection contains the
 | 
				
			||||||
 | 
					following fonts in the OpenType format: Adventor, Bonum, Chorus, Cursor,
 | 
				
			||||||
 | 
					Heros, Pagella, Schola, Termes.")
 | 
				
			||||||
 | 
					    (license license:gfl1.0)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public font-anonymous-pro
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "font-anonymous-pro")
 | 
				
			||||||
 | 
					    (version "1.002")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append
 | 
				
			||||||
 | 
					                    "http://www.marksimonson.com/assets/content/fonts/"
 | 
				
			||||||
 | 
					                    "AnonymousPro-" version ".zip"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "1asj6lykvxh46czbal7ymy2k861zlcdqpz8x3s5bbpqwlm3mhrl6"))))
 | 
				
			||||||
 | 
					    (build-system trivial-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:modules ((guix build utils))
 | 
				
			||||||
 | 
					       #:builder
 | 
				
			||||||
 | 
					       (begin
 | 
				
			||||||
 | 
					         (use-modules (guix build utils))
 | 
				
			||||||
 | 
					         (let ((unzip (string-append (assoc-ref %build-inputs "unzip")
 | 
				
			||||||
 | 
					                                     "/bin/unzip"))
 | 
				
			||||||
 | 
					               (font-dir (string-append %output "/share/fonts/truetype"))
 | 
				
			||||||
 | 
					               (doc-dir  (string-append %output "/share/doc/" ,name)))
 | 
				
			||||||
 | 
					           (system* unzip (assoc-ref %build-inputs "source"))
 | 
				
			||||||
 | 
					           (mkdir-p font-dir)
 | 
				
			||||||
 | 
					           (mkdir-p doc-dir)
 | 
				
			||||||
 | 
					           (chdir (string-append "AnonymousPro-" ,version ".001"))
 | 
				
			||||||
 | 
					           (for-each (lambda (ttf)
 | 
				
			||||||
 | 
					                       (copy-file ttf
 | 
				
			||||||
 | 
					                                  (string-append font-dir "/" ttf)))
 | 
				
			||||||
 | 
					                     (find-files "." "\\.ttf$"))
 | 
				
			||||||
 | 
					           (for-each (lambda (doc)
 | 
				
			||||||
 | 
					                       (copy-file doc
 | 
				
			||||||
 | 
					                                  (string-append doc-dir "/" doc)))
 | 
				
			||||||
 | 
					                     (find-files "." "\\.txt$"))))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("unzip" ,unzip)))
 | 
				
			||||||
 | 
					    (home-page "http://www.marksimonson.com/fonts/view/anonymous-pro")
 | 
				
			||||||
 | 
					    (synopsis "Fixed-width fonts designed with coding in mind")
 | 
				
			||||||
 | 
					    (description "Anonymous Pro is a family of four fixed-width fonts designed
 | 
				
			||||||
 | 
					with coding in mind.  Anonymous Pro features an international, Unicode-based
 | 
				
			||||||
 | 
					character set, with support for most Western and Central European Latin-based
 | 
				
			||||||
 | 
					languages, plus Greek and Cyrillic.")
 | 
				
			||||||
 | 
					    (license license:silofl1.1)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -41,6 +41,7 @@
 | 
				
			||||||
  #:use-module (gnu packages xdisorg)
 | 
					  #:use-module (gnu packages xdisorg)
 | 
				
			||||||
  #:use-module (gnu packages xorg)
 | 
					  #:use-module (gnu packages xorg)
 | 
				
			||||||
  #:use-module (gnu packages boost)
 | 
					  #:use-module (gnu packages boost)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages m4)
 | 
				
			||||||
  #:use-module (gnu packages compression)
 | 
					  #:use-module (gnu packages compression)
 | 
				
			||||||
  #:use-module (gnu packages doxygen)
 | 
					  #:use-module (gnu packages doxygen)
 | 
				
			||||||
  #:use-module (gnu packages libffi)
 | 
					  #:use-module (gnu packages libffi)
 | 
				
			||||||
| 
						 | 
					@ -130,65 +131,56 @@ the freedesktop.org XDG Base Directory specification.")
 | 
				
			||||||
    (license license:expat)))
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public elogind
 | 
					(define-public elogind
 | 
				
			||||||
  (let ((commit "14405a9"))
 | 
					  (package
 | 
				
			||||||
    (package
 | 
					    (name "elogind")
 | 
				
			||||||
      (name "elogind")
 | 
					    (version "219.12")
 | 
				
			||||||
      (version (string-append "219." commit))
 | 
					    (source (origin
 | 
				
			||||||
      (source (origin
 | 
					              (method url-fetch)
 | 
				
			||||||
                (method git-fetch)
 | 
					              (uri (string-append "https://wingolog.org/pub/" name "/"
 | 
				
			||||||
                (uri (git-reference
 | 
					                                  name "-" version ".tar.xz"))
 | 
				
			||||||
                      (url "http://git.elephly.net/software/elogind.git")
 | 
					              (sha256
 | 
				
			||||||
                      (commit commit)))
 | 
					               (base32
 | 
				
			||||||
                (sha256
 | 
					                "13qc4f0dl7ynnfp1y565z2k0jjizly5w3dqhiqkdk7v6jr4pksb7"))
 | 
				
			||||||
                 (base32
 | 
					              (modules '((guix build utils)))
 | 
				
			||||||
                  "1wz5lxj95qg64x2q5hf4zcb35hpxlw3wfswx6sb2srvsg50y3y72"))
 | 
					              (snippet
 | 
				
			||||||
                (file-name (string-append name "-checkout-" commit))
 | 
					               '(begin
 | 
				
			||||||
                (modules '((guix build utils)))
 | 
					                  (use-modules (guix build utils))
 | 
				
			||||||
                (snippet
 | 
					                  (substitute* "Makefile.am"
 | 
				
			||||||
                 '(begin
 | 
					                    ;; Avoid validation against DTD because the DTDs for
 | 
				
			||||||
                    (use-modules (guix build utils))
 | 
					                    ;; both doctype 4.2 and 4.5 are needed.
 | 
				
			||||||
                    (substitute* "Makefile.am"
 | 
					                    (("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid"))))))
 | 
				
			||||||
                      ;; Avoid validation against DTD because the DTDs for
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
                      ;; both doctype 4.2 and 4.5 are needed.
 | 
					    (arguments
 | 
				
			||||||
                      (("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid"))))))
 | 
					     `(#:configure-flags
 | 
				
			||||||
      (build-system gnu-build-system)
 | 
					       (list (string-append "--with-libcap="
 | 
				
			||||||
      (arguments
 | 
					                            (assoc-ref %build-inputs "libcap"))
 | 
				
			||||||
       `(#:configure-flags
 | 
					             (string-append "--with-udevrulesdir="
 | 
				
			||||||
         (list
 | 
					                            (assoc-ref %outputs "out")
 | 
				
			||||||
          ;; pam_elogind fails because of bus-error.c hackery
 | 
					                            "/lib/udev/rules.d"))
 | 
				
			||||||
          "--disable-pam"
 | 
					       #:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent")))
 | 
				
			||||||
          (string-append "--with-rootprefix=" (assoc-ref %outputs "out")))
 | 
					    (native-inputs
 | 
				
			||||||
         #:phases
 | 
					     `(("intltool" ,intltool)
 | 
				
			||||||
         (modify-phases %standard-phases
 | 
					       ("gettext" ,gnu-gettext)
 | 
				
			||||||
           (add-after 'unpack 'autogen
 | 
					       ("docbook-xsl" ,docbook-xsl)
 | 
				
			||||||
                      (lambda _
 | 
					       ("docbook-xml" ,docbook-xml)
 | 
				
			||||||
                        (and (zero? (system* "intltoolize" "--force" "--automake"))
 | 
					       ("xsltproc" ,libxslt)
 | 
				
			||||||
                             (zero? (system* "autoreconf" "-vif"))))))))
 | 
					       ("m4" ,m4)
 | 
				
			||||||
      (native-inputs
 | 
					       ("libxml2" ,libxml2)                     ;for XML_CATALOG_FILES
 | 
				
			||||||
       `(("intltool" ,intltool)
 | 
					       ("pkg-config", pkg-config)
 | 
				
			||||||
         ("gettext" ,gnu-gettext)
 | 
					       ("gperf" ,gperf)))
 | 
				
			||||||
         ("docbook-xsl" ,docbook-xsl)
 | 
					    (inputs
 | 
				
			||||||
         ("docbook-xml" ,docbook-xml)
 | 
					     `(("linux-pam" ,linux-pam)
 | 
				
			||||||
         ("xsltproc" ,libxslt)
 | 
					       ("linux-libre-headers" ,linux-libre-headers)
 | 
				
			||||||
         ("libxml2" ,libxml2)                     ;for XML_CATALOG_FILES
 | 
					       ("libcap" ,libcap)
 | 
				
			||||||
         ("pkg-config", pkg-config)
 | 
					       ("dbus" ,dbus)
 | 
				
			||||||
         ("autoconf" ,autoconf)
 | 
					       ("eudev" ,eudev)))
 | 
				
			||||||
         ("automake" ,automake)
 | 
					    (home-page "https://github.com/andywingo/elogind")
 | 
				
			||||||
         ("libtool" ,libtool)
 | 
					    (synopsis "User, seat, and session management service")
 | 
				
			||||||
         ("gperf" ,gperf)))
 | 
					    (description "Elogind is the systemd project's \"logind\" service,
 | 
				
			||||||
      (inputs
 | 
					 | 
				
			||||||
       `(("linux-pam" ,linux-pam)
 | 
					 | 
				
			||||||
         ("linux-libre-headers" ,linux-libre-headers)
 | 
					 | 
				
			||||||
         ("libcap" ,libcap)
 | 
					 | 
				
			||||||
         ("dbus" ,dbus)
 | 
					 | 
				
			||||||
         ("eudev" ,eudev)))
 | 
					 | 
				
			||||||
      (home-page "https://github.com/andywingo/elogind")
 | 
					 | 
				
			||||||
      (synopsis "User, seat, and session management service")
 | 
					 | 
				
			||||||
      (description "Elogind is the systemd project's \"logind\" service,
 | 
					 | 
				
			||||||
extracted out as a separate project.  Elogind integrates with PAM to provide
 | 
					extracted out as a separate project.  Elogind integrates with PAM to provide
 | 
				
			||||||
the org.freedesktop.login1 interface over the system bus, allowing other parts
 | 
					the org.freedesktop.login1 interface over the system bus, allowing other parts
 | 
				
			||||||
of a the system to know what users are logged in, and where.")
 | 
					of a the system to know what users are logged in, and where.")
 | 
				
			||||||
      (license license:lgpl2.1+))))
 | 
					    (license license:lgpl2.1+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public python-pyxdg
 | 
					(define-public python-pyxdg
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,7 +37,8 @@
 | 
				
			||||||
  #:use-module (gnu packages gnome)
 | 
					  #:use-module (gnu packages gnome)
 | 
				
			||||||
  #:use-module (gnu packages gtk)
 | 
					  #:use-module (gnu packages gtk)
 | 
				
			||||||
  #:use-module (gnu packages sdl)
 | 
					  #:use-module (gnu packages sdl)
 | 
				
			||||||
  #:use-module (gnu packages pkg-config))
 | 
					  #:use-module (gnu packages pkg-config)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages xiph))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public bullet
 | 
					(define-public bullet
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -66,7 +67,7 @@ is used in some video games and movies.")
 | 
				
			||||||
(define-public tiled
 | 
					(define-public tiled
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "tiled")
 | 
					    (name "tiled")
 | 
				
			||||||
    (version "0.13.0")
 | 
					    (version "0.13.1")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "https://github.com/bjorn/tiled/archive/v"
 | 
					              (uri (string-append "https://github.com/bjorn/tiled/archive/v"
 | 
				
			||||||
| 
						 | 
					@ -74,7 +75,7 @@ is used in some video games and movies.")
 | 
				
			||||||
              (file-name (string-append name "-" version ".tar.gz"))
 | 
					              (file-name (string-append name "-" version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1cfdhjwwwnc5fsq53axxyf6vmyy1grkk9ghi58dir68pwf6rlr3n"))))
 | 
					                "057a5cna3vhznpl9hyql2sxz995aprv43r8wva89x4vdphxv04lm"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (inputs `(("qt" ,qt)
 | 
					    (inputs `(("qt" ,qt)
 | 
				
			||||||
              ("zlib" ,zlib)))
 | 
					              ("zlib" ,zlib)))
 | 
				
			||||||
| 
						 | 
					@ -101,14 +102,14 @@ clone.")
 | 
				
			||||||
(define-public sfml
 | 
					(define-public sfml
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "sfml")
 | 
					    (name "sfml")
 | 
				
			||||||
    (version "2.2")
 | 
					    (version "2.3.1")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "http://mirror0.sfml-dev.org/files/SFML-"
 | 
					              (uri (string-append "http://mirror0.sfml-dev.org/files/SFML-"
 | 
				
			||||||
                                  version "-sources.zip"))
 | 
					                                  version "-sources.zip"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1xhkvgyfbhqsjdmfbxvk729kdrzh7kdyagxa3bvpzi6z43mh1frd"))))
 | 
					                "0mjpkgfnz6ka4p0ir219pcqsbdy7gwcjydk7xxmjjfm2k5sw2qys"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:tests? #f)) ; no tests
 | 
					     '(#:tests? #f)) ; no tests
 | 
				
			||||||
| 
						 | 
					@ -117,7 +118,10 @@ clone.")
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("mesa" ,mesa)
 | 
					     `(("mesa" ,mesa)
 | 
				
			||||||
       ("glew" ,glew)
 | 
					       ("glew" ,glew)
 | 
				
			||||||
 | 
					       ("flac" ,flac)
 | 
				
			||||||
 | 
					       ("libvorbis" ,libvorbis)
 | 
				
			||||||
       ("libx11" ,libx11)
 | 
					       ("libx11" ,libx11)
 | 
				
			||||||
 | 
					       ("xcb-util-image" ,xcb-util-image)
 | 
				
			||||||
       ("libxrandr" ,libxrandr)
 | 
					       ("libxrandr" ,libxrandr)
 | 
				
			||||||
       ("eudev" ,eudev)
 | 
					       ("eudev" ,eudev)
 | 
				
			||||||
       ("freetype" ,freetype)
 | 
					       ("freetype" ,freetype)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -576,7 +576,7 @@ for common mesh file formats, and collision detection.")
 | 
				
			||||||
(define minetest-data
 | 
					(define minetest-data
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "minetest-data")
 | 
					    (name "minetest-data")
 | 
				
			||||||
    (version "0.4.12")
 | 
					    (version "0.4.13")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append
 | 
					              (uri (string-append
 | 
				
			||||||
| 
						 | 
					@ -585,7 +585,7 @@ for common mesh file formats, and collision detection.")
 | 
				
			||||||
              (file-name (string-append name "-" version ".tar.gz"))
 | 
					              (file-name (string-append name "-" version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0642vy6r6sv96mz6wbs9qvyr95vd69zj4fxiljdg9801javrmm9p"))))
 | 
					                "04xnyfap75v3p818kpqb07xshqwqzpws5xjvw5m96qnd9x4725ld"))))
 | 
				
			||||||
    (build-system trivial-build-system)
 | 
					    (build-system trivial-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("source" ,source)
 | 
					     `(("source" ,source)
 | 
				
			||||||
| 
						 | 
					@ -617,7 +617,7 @@ for common mesh file formats, and collision detection.")
 | 
				
			||||||
(define-public minetest
 | 
					(define-public minetest
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "minetest")
 | 
					    (name "minetest")
 | 
				
			||||||
    (version "0.4.12")
 | 
					    (version "0.4.13")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append
 | 
					              (uri (string-append
 | 
				
			||||||
| 
						 | 
					@ -626,7 +626,7 @@ for common mesh file formats, and collision detection.")
 | 
				
			||||||
              (file-name (string-append name "-" version ".tar.gz"))
 | 
					              (file-name (string-append name "-" version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1pqp8hfwg5wkimig8j5jrihzgjjgplxr24w5xisrxvx1hlvnczdk"))))
 | 
					                "1xzrvsg0fpbj5p4pz6lls11m3ab4y2bnjlsm4gnw68x9006ffznp"))))
 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:configure-flags
 | 
					     '(#:configure-flags
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
 | 
					;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 | 
				
			||||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 | 
					;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
| 
						 | 
					@ -36,33 +36,47 @@
 | 
				
			||||||
(define-public gdb
 | 
					(define-public gdb
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "gdb")
 | 
					    (name "gdb")
 | 
				
			||||||
    (version "7.9.1")
 | 
					    (version "7.10")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
             (method url-fetch)
 | 
					             (method url-fetch)
 | 
				
			||||||
             (uri (string-append "mirror://gnu/gdb/gdb-"
 | 
					             (uri (string-append "mirror://gnu/gdb/gdb-"
 | 
				
			||||||
                                 version ".tar.xz"))
 | 
					                                 version ".tar.xz"))
 | 
				
			||||||
             (sha256
 | 
					             (sha256
 | 
				
			||||||
              (base32
 | 
					              (base32
 | 
				
			||||||
               "0h5sfg4ndhb8q4fxbq0hdxfjp35n6ih96f6x8yvb418s84x5976d"))))
 | 
					               "1a08c9svaihqmz2mm44il1gwa810gmwkckns8b0y0v3qz52amgby"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:tests? #f ; FIXME "make check" fails on single-processor systems.
 | 
					     `(#:tests? #f ; FIXME "make check" fails on single-processor systems.
 | 
				
			||||||
       #:phases (alist-cons-after
 | 
					
 | 
				
			||||||
                 'configure 'post-configure
 | 
					       #:modules ((srfi srfi-1)
 | 
				
			||||||
                 (lambda _
 | 
					                  ,@%gnu-build-system-modules)
 | 
				
			||||||
                   (for-each patch-makefile-SHELL
 | 
					
 | 
				
			||||||
                             (find-files "." "Makefile\\.in")))
 | 
					       #:phases (modify-phases %standard-phases
 | 
				
			||||||
                 (alist-cons-after
 | 
					                  (add-after
 | 
				
			||||||
                  'install 'post-install
 | 
					                   'configure 'post-configure
 | 
				
			||||||
                  (lambda* (#:key outputs #:allow-other-keys)
 | 
					                   (lambda _
 | 
				
			||||||
                    ;; Like Binutils, GDB installs libbfd and libopcodes.
 | 
					                     (for-each patch-makefile-SHELL
 | 
				
			||||||
                    ;; However, this leads to collisions when both are
 | 
					                               (find-files "." "Makefile\\.in"))))
 | 
				
			||||||
                    ;; installed, and really is none of its business,
 | 
					                  (add-after
 | 
				
			||||||
                    ;; conceptually.  So remove them.
 | 
					                   'install 'remove-libs-already-in-binutils
 | 
				
			||||||
                    (for-each delete-file
 | 
					                   (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
				
			||||||
                              (find-files (assoc-ref outputs "out")
 | 
					                     ;; Like Binutils, GDB installs libbfd, libopcodes, etc.
 | 
				
			||||||
                                          "^lib(opcodes|bfd)\\.")))
 | 
					                     ;; However, this leads to collisions when both are
 | 
				
			||||||
                  %standard-phases))))
 | 
					                     ;; installed, and really is none of its business,
 | 
				
			||||||
 | 
					                     ;; conceptually.  So remove them.
 | 
				
			||||||
 | 
					                     (let* ((binutils (assoc-ref inputs "binutils"))
 | 
				
			||||||
 | 
					                            (out      (assoc-ref outputs "out"))
 | 
				
			||||||
 | 
					                            (files1   (with-directory-excursion binutils
 | 
				
			||||||
 | 
					                                        (append (find-files "lib")
 | 
				
			||||||
 | 
					                                                (find-files "include"))))
 | 
				
			||||||
 | 
					                            (files2   (with-directory-excursion out
 | 
				
			||||||
 | 
					                                        (append (find-files "lib")
 | 
				
			||||||
 | 
					                                                (find-files "include"))))
 | 
				
			||||||
 | 
					                            (common   (lset-intersection string=?
 | 
				
			||||||
 | 
					                                                         files1 files2)))
 | 
				
			||||||
 | 
					                       (with-directory-excursion out
 | 
				
			||||||
 | 
					                         (for-each delete-file common)
 | 
				
			||||||
 | 
					                         #t)))))))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("expat" ,expat)
 | 
					     `(("expat" ,expat)
 | 
				
			||||||
       ("mpfr" ,mpfr)
 | 
					       ("mpfr" ,mpfr)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,8 +25,7 @@
 | 
				
			||||||
  #:use-module (gnu packages glib)
 | 
					  #:use-module (gnu packages glib)
 | 
				
			||||||
  #:use-module (gnu packages gtk)
 | 
					  #:use-module (gnu packages gtk)
 | 
				
			||||||
  #:use-module (gnu packages image)
 | 
					  #:use-module (gnu packages image)
 | 
				
			||||||
  #:use-module ((gnu packages ghostscript)
 | 
					  #:use-module (gnu packages ghostscript)
 | 
				
			||||||
                #:select (lcms))
 | 
					 | 
				
			||||||
  #:use-module (gnu packages compression)
 | 
					  #:use-module (gnu packages compression)
 | 
				
			||||||
  #:use-module (gnu packages xml))
 | 
					  #:use-module (gnu packages xml))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
 | 
					;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
 | 
				
			||||||
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 | 
					;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 | 
				
			||||||
 | 
					;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -18,11 +19,15 @@
 | 
				
			||||||
;;; 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 gettext)
 | 
					(define-module (gnu packages gettext)
 | 
				
			||||||
  #:use-module ((guix licenses) #:select (gpl3+))
 | 
					  #:use-module ((guix licenses) #:select (gpl2+ gpl3+))
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
 | 
					  #:use-module (guix build-system perl)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages docbook)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages perl)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages texlive)
 | 
				
			||||||
  #:use-module (gnu packages xml))
 | 
					  #:use-module (gnu packages xml))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; Use that name to avoid clashes with Guile's 'gettext' procedure.
 | 
					;; Use that name to avoid clashes with Guile's 'gettext' procedure.
 | 
				
			||||||
| 
						 | 
					@ -91,3 +96,59 @@ with the means to create message catalogs, as well as an Emacs mode to work
 | 
				
			||||||
with them, and a runtime library to load translated messages from the
 | 
					with them, and a runtime library to load translated messages from the
 | 
				
			||||||
catalogs.  Nearly all GNU packages use Gettext.")
 | 
					catalogs.  Nearly all GNU packages use Gettext.")
 | 
				
			||||||
    (license gpl3+)))                             ;some files are under GPLv2+
 | 
					    (license gpl3+)))                             ;some files are under GPLv2+
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public po4a
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "po4a")
 | 
				
			||||||
 | 
					    (version "0.47")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "https://alioth.debian.org/frs/download.php"
 | 
				
			||||||
 | 
					                                  "/file/4142/po4a-" version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "01vm0750aq0h2lphrflv3wq9gz7y0py8frglfpacn58ivyvy242h"))))
 | 
				
			||||||
 | 
					    (build-system perl-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         ;; FIXME: One test fails as we don't have SGMLS.pm
 | 
				
			||||||
 | 
					         (add-before 'check 'disable-sgml-test
 | 
				
			||||||
 | 
					          (lambda _
 | 
				
			||||||
 | 
					            (delete-file "t/20-sgml.t")
 | 
				
			||||||
 | 
					            #t))
 | 
				
			||||||
 | 
					         (add-after 'unpack 'fix-builder
 | 
				
			||||||
 | 
					          (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					            (substitute* "Po4aBuilder.pm"
 | 
				
			||||||
 | 
					              ;; By default it tries to install into perl's manpath.
 | 
				
			||||||
 | 
					              (("my \\$mandir = .*$")
 | 
				
			||||||
 | 
					               (string-append "my $mandir = \"" (assoc-ref outputs "out")
 | 
				
			||||||
 | 
					                              "/share/man\";\n")))
 | 
				
			||||||
 | 
					            #t))
 | 
				
			||||||
 | 
					         (add-after 'install 'wrap-programs
 | 
				
			||||||
 | 
					          (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					            ;; Make sure all executables in "bin" find the Perl modules
 | 
				
			||||||
 | 
					            ;; provided by this package at runtime.
 | 
				
			||||||
 | 
					            (let* ((out  (assoc-ref outputs "out"))
 | 
				
			||||||
 | 
					                   (bin  (string-append out "/bin/"))
 | 
				
			||||||
 | 
					                   (path (string-append out "/lib/perl5/site_perl")))
 | 
				
			||||||
 | 
					              (for-each (lambda (file)
 | 
				
			||||||
 | 
					                          (wrap-program file
 | 
				
			||||||
 | 
					                            `("PERL5LIB" ":" prefix (,path))))
 | 
				
			||||||
 | 
					                        (find-files bin "\\.*$"))
 | 
				
			||||||
 | 
					              #t))))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("gettext" ,gnu-gettext)
 | 
				
			||||||
 | 
					       ("perl-module-build" ,perl-module-build)
 | 
				
			||||||
 | 
					       ("docbook-xsl" ,docbook-xsl)
 | 
				
			||||||
 | 
					       ("docbook-xml" ,docbook-xml) ;for tests
 | 
				
			||||||
 | 
					       ("texlive-bin" ,texlive-bin) ;for tests
 | 
				
			||||||
 | 
					       ("libxml2" ,libxml2)
 | 
				
			||||||
 | 
					       ("xsltproc" ,libxslt)))
 | 
				
			||||||
 | 
					    (home-page "http://po4a.alioth.debian.org/")
 | 
				
			||||||
 | 
					    (synopsis "Scripts to ease maintenance of translations")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "The po4a (PO for anything) project goal is to ease translations (and
 | 
				
			||||||
 | 
					more interestingly, the maintenance of translations) using gettext tools on
 | 
				
			||||||
 | 
					areas where they were not expected like documentation.")
 | 
				
			||||||
 | 
					    (license gpl2+)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1912,15 +1912,15 @@ library.")
 | 
				
			||||||
library.")
 | 
					library.")
 | 
				
			||||||
    (license license:lgpl2.0+)))
 | 
					    (license license:lgpl2.0+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public librest
 | 
					(define-public rest
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "librest")
 | 
					    (name "rest")
 | 
				
			||||||
    (version "0.7.93")
 | 
					    (version "0.7.93")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "mirror://gnome/sources/rest/"
 | 
					              (uri (string-append "mirror://gnome/sources/rest/"
 | 
				
			||||||
                                  (version-major+minor version)  "/"
 | 
					                                  (version-major+minor version) "/"
 | 
				
			||||||
                                  "rest-" version ".tar.xz"))
 | 
					                                  name "-" version ".tar.xz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "05mj10hhiik23ai8w4wkk5vhsp7hcv24bih5q3fl82ilam268467"))))
 | 
					                "05mj10hhiik23ai8w4wkk5vhsp7hcv24bih5q3fl82ilam268467"))))
 | 
				
			||||||
| 
						 | 
					@ -2629,6 +2629,8 @@ without stepping on each others toes.")
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "1b0ikh9q3c3qnny3kbvhqih35449q8ajcbh7zkm8k3kykwfx4scf"))))
 | 
					         "1b0ikh9q3c3qnny3kbvhqih35449q8ajcbh7zkm8k3kykwfx4scf"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (outputs '("out"
 | 
				
			||||||
 | 
					               "doc"))                            ;9 MiB of gtk-doc HTML pages
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("glib:bin" ,glib "bin")     ; for glib-genmarshal
 | 
					     `(("glib:bin" ,glib "bin")     ; for glib-genmarshal
 | 
				
			||||||
       ("gobject-introspection" ,gobject-introspection)
 | 
					       ("gobject-introspection" ,gobject-introspection)
 | 
				
			||||||
| 
						 | 
					@ -2649,7 +2651,12 @@ without stepping on each others toes.")
 | 
				
			||||||
     `(("libxkbcommon" ,libxkbcommon)
 | 
					     `(("libxkbcommon" ,libxkbcommon)
 | 
				
			||||||
       ("udev" ,eudev)))
 | 
					       ("udev" ,eudev)))
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:configure-flags '("--enable-x11-backend=yes")
 | 
					     `(#:configure-flags (list "--enable-x11-backend=yes"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                               ;; This produces share/doc/{clutter,cally}.
 | 
				
			||||||
 | 
					                               (string-append "--with-html-dir="
 | 
				
			||||||
 | 
					                                              (assoc-ref %outputs "doc")
 | 
				
			||||||
 | 
					                                              "/share/doc"))
 | 
				
			||||||
       ;; XXX FIXME: Get test suite working.  It would probably fail in the
 | 
					       ;; XXX FIXME: Get test suite working.  It would probably fail in the
 | 
				
			||||||
       ;; same way the cogl tests fail, since clutter is based on cogl.
 | 
					       ;; same way the cogl tests fail, since clutter is based on cogl.
 | 
				
			||||||
       #:tests? #f))
 | 
					       #:tests? #f))
 | 
				
			||||||
| 
						 | 
					@ -2720,6 +2727,38 @@ implements the ClutterGstPlayer interface using playbin.  Clutter is an Open
 | 
				
			||||||
GL based interactive canvas library.")
 | 
					GL based interactive canvas library.")
 | 
				
			||||||
    (license license:lgpl2.0+)))
 | 
					    (license license:lgpl2.0+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public libchamplain
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "libchamplain")
 | 
				
			||||||
 | 
					    (version "0.12.10")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append
 | 
				
			||||||
 | 
					                    "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
 | 
				
			||||||
 | 
					                    version ".tar.xz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "019b8scnx7d3wdylmpk9ihzh06w25b63x9cn8nhj6kjx82rcwlxz"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (native-inputs `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("libsoup" ,libsoup)
 | 
				
			||||||
 | 
					       ("sqlite" ,sqlite)
 | 
				
			||||||
 | 
					       ("clutter" ,clutter)
 | 
				
			||||||
 | 
					       ("clutter-gtk" ,clutter-gtk)
 | 
				
			||||||
 | 
					       ("glib:bin" ,glib "bin")                   ;glib-mkenums, etc.
 | 
				
			||||||
 | 
					       ("cairo" ,cairo)
 | 
				
			||||||
 | 
					       ("gtk+3" ,gtk+)
 | 
				
			||||||
 | 
					       ("glib" ,glib)))
 | 
				
			||||||
 | 
					    (home-page "http://projects.gnome.org/libchamplain/")
 | 
				
			||||||
 | 
					    (synopsis "C library providing a ClutterActor to display maps")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "libchamplain is a C library providing a ClutterActor to display maps.
 | 
				
			||||||
 | 
					It also provides a Gtk+ widget to display maps in Gtk+ applications.  Python
 | 
				
			||||||
 | 
					and Perl bindings are also available.  It supports numerous free map sources
 | 
				
			||||||
 | 
					such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
 | 
				
			||||||
 | 
					    (license license:lgpl2.1+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public gom
 | 
					(define-public gom
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "gom")
 | 
					    (name "gom")
 | 
				
			||||||
| 
						 | 
					@ -3371,3 +3410,93 @@ principles are simplicity and standards compliance.")
 | 
				
			||||||
     "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
 | 
					     "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
 | 
				
			||||||
of running programs and invoke methods on those interfaces.")
 | 
					of running programs and invoke methods on those interfaces.")
 | 
				
			||||||
    (license license:gpl2+)))
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public yelp-xsl
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "yelp-xsl")
 | 
				
			||||||
 | 
					    (version "3.16.1")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "mirror://gnome/sources/" name "/"
 | 
				
			||||||
 | 
					                                  (version-major+minor version) "/"
 | 
				
			||||||
 | 
					                                  name "-" version ".tar.xz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "0jhpni4mmfvj3xf57rjm61nc8d0x66hz9gd1ywws5lh39g6fx59j"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("intltool" ,intltool)
 | 
				
			||||||
 | 
					       ("itstool" ,itstool)
 | 
				
			||||||
 | 
					       ("xmllint" ,libxml2)))
 | 
				
			||||||
 | 
					    (home-page "https://wiki.gnome.org/Apps/Yelp")
 | 
				
			||||||
 | 
					    (synopsis "XSL stylesheets for Yelp")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
 | 
				
			||||||
 | 
					to format Docbook and Mallard documents.")
 | 
				
			||||||
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public yelp
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "yelp")
 | 
				
			||||||
 | 
					    (version "3.16.1")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "mirror://gnome/sources/" name "/"
 | 
				
			||||||
 | 
					                                  (version-major+minor version) "/"
 | 
				
			||||||
 | 
					                                  name "-" version ".tar.xz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "1jk7aad1srykhgc3x0hd3q3dnlshmy1ak00alwjzaasxvy6hp0b0"))))
 | 
				
			||||||
 | 
					    (build-system glib-or-gtk-build-system)
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
 | 
				
			||||||
 | 
					       ("intltool" ,intltool)
 | 
				
			||||||
 | 
					       ("itstool" ,itstool)
 | 
				
			||||||
 | 
					       ("pkg-config" ,pkg-config)))
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("dconf" ,dconf)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("libxslt" ,libxslt)
 | 
				
			||||||
 | 
					       ("sqlite" ,sqlite)
 | 
				
			||||||
 | 
					       ("webkitgtk" ,webkitgtk-2.4)
 | 
				
			||||||
 | 
					       ("yelp-xsl" ,yelp-xsl)
 | 
				
			||||||
 | 
					       ;; XXX: need by libwebkitgtk-3.0.la.
 | 
				
			||||||
 | 
					       ("icu4c" ,(@ (gnu packages icu4c) icu4c))))
 | 
				
			||||||
 | 
					    (home-page "https://wiki.gnome.org/Apps/Yelp")
 | 
				
			||||||
 | 
					    (synopsis "GNOME help browser")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Yelp is the help viewer in Gnome.  It natively views Mallard, DocBook,
 | 
				
			||||||
 | 
					man, info, and HTML documents.  It can locate documents according to the
 | 
				
			||||||
 | 
					freedesktop.org help system specification.")
 | 
				
			||||||
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public yelp-tools
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "yelp-tools")
 | 
				
			||||||
 | 
					    (version "3.16.1")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "mirror://gnome/sources/" name "/"
 | 
				
			||||||
 | 
					                                  (version-major+minor version) "/"
 | 
				
			||||||
 | 
					                                  name "-" version ".tar.xz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "177qzvj5w019isdp41qxqcys2kc4sq2x6dqhqn6l9ipib8a6rxml"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
 | 
				
			||||||
 | 
					     `(("itstool" ,itstool)
 | 
				
			||||||
 | 
					       ("xmllint" ,libxml2)
 | 
				
			||||||
 | 
					       ("xsltproc" ,libxslt)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("yelp-xsl" ,yelp-xsl)))
 | 
				
			||||||
 | 
					    (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
 | 
				
			||||||
 | 
					    (synopsis "Yelp documentation tools")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Yelp-tools is a collection of scripts and build utilities to help create,
 | 
				
			||||||
 | 
					manage, and publish documentation for Yelp and the web.  Most of the heavy
 | 
				
			||||||
 | 
					lifting is done by packages like yelp-xsl and itstool.  This package just
 | 
				
			||||||
 | 
					wraps things up in a developer-friendly way.")
 | 
				
			||||||
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 | 
					;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
 | 
					;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -27,7 +28,9 @@
 | 
				
			||||||
  #:use-module (gnu packages gtk)
 | 
					  #:use-module (gnu packages gtk)
 | 
				
			||||||
  #:use-module (gnu packages guile)
 | 
					  #:use-module (gnu packages guile)
 | 
				
			||||||
  #:use-module (gnu packages icu4c)
 | 
					  #:use-module (gnu packages icu4c)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages perl)
 | 
				
			||||||
  #:use-module (gnu packages pkg-config)
 | 
					  #:use-module (gnu packages pkg-config)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages web)
 | 
				
			||||||
  #:use-module (gnu packages webkit)
 | 
					  #:use-module (gnu packages webkit)
 | 
				
			||||||
  #:use-module (gnu packages xml))
 | 
					  #:use-module (gnu packages xml))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -42,11 +45,9 @@
 | 
				
			||||||
                          version ".tar.bz2"))
 | 
					                          version ".tar.bz2"))
 | 
				
			||||||
      (sha256
 | 
					      (sha256
 | 
				
			||||||
       (base32
 | 
					       (base32
 | 
				
			||||||
        "103ir5qg6k8m2mmg9b99c3gn8myxh1gsqyr0mfhmrhqya68wfdr3"))))
 | 
					        "103ir5qg6k8m2mmg9b99c3gn8myxh1gsqyr0mfhmrhqya68wfdr3"))
 | 
				
			||||||
 | 
					      (patches (list (search-patch "gnucash-price-quotes-perl.patch")))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					 | 
				
			||||||
     `(#:tests? #f ;FIXME: failing at /qof/gnc-date/qof print date dmy buff
 | 
					 | 
				
			||||||
       #:configure-flags '("--disable-dbi")))
 | 
					 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("guile" ,guile-2.0)
 | 
					     `(("guile" ,guile-2.0)
 | 
				
			||||||
       ("icu4c" ,icu4c)
 | 
					       ("icu4c" ,icu4c)
 | 
				
			||||||
| 
						 | 
					@ -56,11 +57,46 @@
 | 
				
			||||||
       ("libgnomecanvas" ,libgnomecanvas)
 | 
					       ("libgnomecanvas" ,libgnomecanvas)
 | 
				
			||||||
       ("libxml2" ,libxml2)
 | 
					       ("libxml2" ,libxml2)
 | 
				
			||||||
       ("libxslt" ,libxslt)
 | 
					       ("libxslt" ,libxslt)
 | 
				
			||||||
       ("webkitgtk" ,webkitgtk/gtk+-2)))
 | 
					       ("webkitgtk" ,webkitgtk/gtk+-2)
 | 
				
			||||||
 | 
					       ("perl-date-manip" ,perl-date-manip)
 | 
				
			||||||
 | 
					       ("perl-finance-quote" ,perl-finance-quote)))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("glib" ,glib "bin") ; glib-compile-schemas, etc.
 | 
					     `(("glib" ,glib "bin") ; glib-compile-schemas, etc.
 | 
				
			||||||
       ("intltool" ,intltool)
 | 
					       ("intltool" ,intltool)
 | 
				
			||||||
       ("pkg-config" ,pkg-config)))
 | 
					       ("pkg-config" ,pkg-config)))
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:tests? #f ;FIXME: failing at /qof/gnc-date/qof print date dmy buff
 | 
				
			||||||
 | 
					       #:configure-flags '("--disable-dbi")
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-after
 | 
				
			||||||
 | 
					          'install 'wrap-programs
 | 
				
			||||||
 | 
					          (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					            (for-each (lambda (prog)
 | 
				
			||||||
 | 
					                        (wrap-program (string-append (assoc-ref outputs "out")
 | 
				
			||||||
 | 
					                                                     "/bin/" prog)
 | 
				
			||||||
 | 
					                          `("PERL5LIB" ":" prefix
 | 
				
			||||||
 | 
					                            ,(map (lambda (o)
 | 
				
			||||||
 | 
					                                    (string-append o "/lib/perl5/site_perl/"
 | 
				
			||||||
 | 
					                                                   ,(package-version perl)))
 | 
				
			||||||
 | 
					                                  (if (string=? prog "gnc-fq-helper")
 | 
				
			||||||
 | 
					                                      (list
 | 
				
			||||||
 | 
					                                       ,@(transitive-input-references
 | 
				
			||||||
 | 
					                                          'inputs
 | 
				
			||||||
 | 
					                                          (map (lambda (l)
 | 
				
			||||||
 | 
					                                                 (assoc l (inputs)))
 | 
				
			||||||
 | 
					                                               '("perl-finance-quote"
 | 
				
			||||||
 | 
					                                                 "perl-date-manip"))))
 | 
				
			||||||
 | 
					                                      (list
 | 
				
			||||||
 | 
					                                       ,@(transitive-input-references
 | 
				
			||||||
 | 
					                                          'inputs
 | 
				
			||||||
 | 
					                                          (map (lambda (l)
 | 
				
			||||||
 | 
					                                                 (assoc l (inputs)))
 | 
				
			||||||
 | 
					                                               '("perl-finance-quote")))))))))
 | 
				
			||||||
 | 
					                      '("gnucash"
 | 
				
			||||||
 | 
					                        "gnc-fq-check"
 | 
				
			||||||
 | 
					                        "gnc-fq-helper"
 | 
				
			||||||
 | 
					                        "gnc-fq-dump")))))))
 | 
				
			||||||
    (home-page "https://gnu.org/software/gnucash")
 | 
					    (home-page "https://gnu.org/software/gnucash")
 | 
				
			||||||
    (synopsis "Personal and small business financial accounting software")
 | 
					    (synopsis "Personal and small business financial accounting software")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -193,14 +193,14 @@ compatible to GNU Pth.")
 | 
				
			||||||
(define-public gnupg
 | 
					(define-public gnupg
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "gnupg")
 | 
					    (name "gnupg")
 | 
				
			||||||
    (version "2.1.7")
 | 
					    (version "2.1.8")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
 | 
					              (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
 | 
				
			||||||
                                  ".tar.bz2"))
 | 
					                                  ".tar.bz2"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0vl4wzraln0h4db0kfza4l5by5pgfijqplji5n4riv3zsiv3g2n1"))))
 | 
					                "18w14xp0ynzzwpklyplkzbrncds1hly4k2gjx115swch8qgd1f53"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)))
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -203,7 +203,7 @@ for the GStreamer multimedia library.")
 | 
				
			||||||
       ("flac" ,flac)
 | 
					       ("flac" ,flac)
 | 
				
			||||||
       ("gdk-pixbuf" ,gdk-pixbuf)
 | 
					       ("gdk-pixbuf" ,gdk-pixbuf)
 | 
				
			||||||
       ("gst-plugins-base" ,gst-plugins-base)
 | 
					       ("gst-plugins-base" ,gst-plugins-base)
 | 
				
			||||||
       ("jack" ,jack-2)
 | 
					       ("jack" ,jack-1)
 | 
				
			||||||
       ("libavc1394" ,libavc1394)
 | 
					       ("libavc1394" ,libavc1394)
 | 
				
			||||||
       ("libcaca" ,libcaca)
 | 
					       ("libcaca" ,libcaca)
 | 
				
			||||||
       ("libdv" ,libdv)
 | 
					       ("libdv" ,libdv)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,6 +33,8 @@
 | 
				
			||||||
  #:use-module (guix build-system waf)
 | 
					  #:use-module (guix build-system waf)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
  #:use-module (gnu packages algebra)
 | 
					  #:use-module (gnu packages algebra)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages autotools)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages texinfo)
 | 
				
			||||||
  #:use-module (gnu packages check)
 | 
					  #:use-module (gnu packages check)
 | 
				
			||||||
  #:use-module (gnu packages compression)
 | 
					  #:use-module (gnu packages compression)
 | 
				
			||||||
  #:use-module (gnu packages docbook)
 | 
					  #:use-module (gnu packages docbook)
 | 
				
			||||||
| 
						 | 
					@ -632,6 +634,92 @@ graphics library with all of the benefits of Scheme: memory management,
 | 
				
			||||||
exceptions, macros, and a dynamic programming environment.")
 | 
					exceptions, macros, and a dynamic programming environment.")
 | 
				
			||||||
    (license license:lgpl3+)))
 | 
					    (license license:lgpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public guile-rsvg
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "guile-rsvg")
 | 
				
			||||||
 | 
					    (version "2.18.1")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "http://wingolog.org/pub/guile-rsvg/"
 | 
				
			||||||
 | 
					                                  name "-" version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "136f236iw3yrrz6pkkp1ma9c5mrs5icqha6pnawinqpk892r3jh7"))
 | 
				
			||||||
 | 
					              (patches (list (search-patch "guile-rsvg-pkgconfig.patch")))
 | 
				
			||||||
 | 
					              (modules '((guix build utils)))
 | 
				
			||||||
 | 
					              (snippet
 | 
				
			||||||
 | 
					               '(substitute* (find-files "." "Makefile\\.am")
 | 
				
			||||||
 | 
					                  (("/share/guile/site")
 | 
				
			||||||
 | 
					                   "/share/guile/site/2.0")))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:phases (modify-phases %standard-phases
 | 
				
			||||||
 | 
					                  (add-before 'configure 'bootstrap
 | 
				
			||||||
 | 
					                              (lambda _
 | 
				
			||||||
 | 
					                                (zero? (system* "autoreconf" "-vfi")))))))
 | 
				
			||||||
 | 
					    (native-inputs `(("pkg-config" ,pkg-config)
 | 
				
			||||||
 | 
					                     ("autoconf" ,autoconf)
 | 
				
			||||||
 | 
					                     ("automake" ,automake)
 | 
				
			||||||
 | 
					                     ("libtool" ,libtool)
 | 
				
			||||||
 | 
					                     ("texinfo" ,texinfo)))
 | 
				
			||||||
 | 
					    (inputs `(("guile" ,guile-2.0)
 | 
				
			||||||
 | 
					              ("librsvg" ,librsvg)
 | 
				
			||||||
 | 
					              ("guile-lib" ,guile-lib)))          ;for (unit-test)
 | 
				
			||||||
 | 
					    (propagated-inputs `(("guile-cairo" ,guile-cairo)))
 | 
				
			||||||
 | 
					    (synopsis "Render SVG images using Cairo from Guile")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG
 | 
				
			||||||
 | 
					images onto Cairo surfaces.")
 | 
				
			||||||
 | 
					    (home-page "http://wingolog.org/projects/guile-rsvg/")
 | 
				
			||||||
 | 
					    (license license:lgpl2.1+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public guile-present
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "guile-present")
 | 
				
			||||||
 | 
					    (version "0.3.0")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "http://wingolog.org/pub/guile-present/"
 | 
				
			||||||
 | 
					                                  "guile-present-" version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "1qam447m05sxxv6x8dlzg7qnyfc4dh8apjw1idpfhpns671gfr6m"))
 | 
				
			||||||
 | 
					              (patches (list (search-patch "guile-present-coding.patch")))
 | 
				
			||||||
 | 
					              (modules '((guix build utils)))
 | 
				
			||||||
 | 
					              (snippet
 | 
				
			||||||
 | 
					               '(substitute* "Makefile.in"
 | 
				
			||||||
 | 
					                  (("godir = .*$")
 | 
				
			||||||
 | 
					                   "godir = $(moddir)\n")))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:phases (alist-cons-after
 | 
				
			||||||
 | 
					                 'install 'post-install
 | 
				
			||||||
 | 
					                 (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					                   (let* ((out   (assoc-ref outputs "out"))
 | 
				
			||||||
 | 
					                          (bin   (string-append out "/bin"))
 | 
				
			||||||
 | 
					                          (guile (assoc-ref inputs "guile")))
 | 
				
			||||||
 | 
					                     (substitute* (find-files bin ".*")
 | 
				
			||||||
 | 
					                       (("guile")
 | 
				
			||||||
 | 
					                        (string-append guile "/bin/guile -L "
 | 
				
			||||||
 | 
					                                       out "/share/guile/site/2.0 -C "
 | 
				
			||||||
 | 
					                                       out "/share/guile/site/2.0 ")))))
 | 
				
			||||||
 | 
					                 %standard-phases)))
 | 
				
			||||||
 | 
					    (native-inputs `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
 | 
					    (inputs `(("guile" ,guile-2.0)))
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     ;; These are used by the (present …) modules.
 | 
				
			||||||
 | 
					     `(("guile-lib" ,guile-lib)
 | 
				
			||||||
 | 
					       ("guile-cairo" ,guile-cairo)
 | 
				
			||||||
 | 
					       ("guile-rsvg" ,guile-rsvg)))
 | 
				
			||||||
 | 
					    (home-page "http://wingolog.org/software/guile-present/")
 | 
				
			||||||
 | 
					    (synopsis "Create SVG or PDF presentations in Guile")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Guile-Present defines a declarative vocabulary for presentations,
 | 
				
			||||||
 | 
					together with tools to render presentation documents as SVG or PDF.
 | 
				
			||||||
 | 
					Guile-Present can be used to make presentations programmatically, but also
 | 
				
			||||||
 | 
					includes a tools to generate PDF presentations out of Org mode and Texinfo
 | 
				
			||||||
 | 
					documents.")
 | 
				
			||||||
 | 
					    (license license:lgpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; C++ bindings.
 | 
					;;; C++ bindings.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,6 +24,10 @@
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
  #:use-module (guix build-system glib-or-gtk)
 | 
					  #:use-module (guix build-system glib-or-gtk)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages autotools)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages base)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages databases)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages freedesktop)
 | 
				
			||||||
  #:use-module (gnu packages glib)
 | 
					  #:use-module (gnu packages glib)
 | 
				
			||||||
  #:use-module (gnu packages gnome)
 | 
					  #:use-module (gnu packages gnome)
 | 
				
			||||||
  #:use-module (gnu packages gtk)
 | 
					  #:use-module (gnu packages gtk)
 | 
				
			||||||
| 
						 | 
					@ -34,20 +38,24 @@
 | 
				
			||||||
(define-public ibus
 | 
					(define-public ibus
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
   (name "ibus")
 | 
					   (name "ibus")
 | 
				
			||||||
   (version "1.5.5")
 | 
					   (version "1.5.11")
 | 
				
			||||||
   (source (origin
 | 
					   (source (origin
 | 
				
			||||||
             (method url-fetch)
 | 
					             (method url-fetch)
 | 
				
			||||||
             (uri (string-append "https://ibus.googlecode.com/files/ibus-"
 | 
					             (uri (string-append "https://github.com/ibus/ibus/"
 | 
				
			||||||
                                 version ".tar.gz"))
 | 
					                                 "releases/download/"
 | 
				
			||||||
 | 
					                                 version "/ibus-" version ".tar.gz"))
 | 
				
			||||||
             (sha256
 | 
					             (sha256
 | 
				
			||||||
              (base32
 | 
					              (base32
 | 
				
			||||||
               "1v4a9xv2k26g6ggk4282ynfvh68j2r5hg1cdpvnryfa8c2pkdaq2"))))
 | 
					               "1g26llizd26h9sfz4xdq8krhz19hn08pirvfbkk3g89ri8lmm6a9"))))
 | 
				
			||||||
   (build-system glib-or-gtk-build-system)
 | 
					   (build-system glib-or-gtk-build-system)
 | 
				
			||||||
   (arguments
 | 
					   (arguments
 | 
				
			||||||
    `(#:tests? #f  ; tests fail because there's no connection to dbus
 | 
					    `(#:tests? #f  ; tests fail because there's no connection to dbus
 | 
				
			||||||
      #:make-flags
 | 
					      #:make-flags
 | 
				
			||||||
      (list "CC=gcc"
 | 
					      (list "CC=gcc"
 | 
				
			||||||
            (string-append "pyoverridesdir="
 | 
					            (string-append "pyoverridesdir="
 | 
				
			||||||
 | 
					                           (assoc-ref %outputs "out")
 | 
				
			||||||
 | 
					                           "/lib/python2.7/site-packages/gi/overrides/")
 | 
				
			||||||
 | 
					            (string-append "py2overridesdir="
 | 
				
			||||||
                           (assoc-ref %outputs "out")
 | 
					                           (assoc-ref %outputs "out")
 | 
				
			||||||
                           "/lib/python2.7/site-packages/gi/overrides/"))
 | 
					                           "/lib/python2.7/site-packages/gi/overrides/"))
 | 
				
			||||||
      #:phases
 | 
					      #:phases
 | 
				
			||||||
| 
						 | 
					@ -83,6 +91,10 @@
 | 
				
			||||||
    `(("glib" ,glib "bin") ; for glib-genmarshal
 | 
					    `(("glib" ,glib "bin") ; for glib-genmarshal
 | 
				
			||||||
      ("gobject-introspection" ,gobject-introspection) ; for g-ir-compiler
 | 
					      ("gobject-introspection" ,gobject-introspection) ; for g-ir-compiler
 | 
				
			||||||
      ("pkg-config" ,pkg-config)))
 | 
					      ("pkg-config" ,pkg-config)))
 | 
				
			||||||
 | 
					   (native-search-paths
 | 
				
			||||||
 | 
					    (list (search-path-specification
 | 
				
			||||||
 | 
					           (variable "IBUS_COMPONENT_PATH")
 | 
				
			||||||
 | 
					           (files '("share/ibus/component")))))
 | 
				
			||||||
   (synopsis "Input method framework")
 | 
					   (synopsis "Input method framework")
 | 
				
			||||||
   (description
 | 
					   (description
 | 
				
			||||||
    "IBus is an input framework providing a full-featured and user-friendly
 | 
					    "IBus is an input framework providing a full-featured and user-friendly
 | 
				
			||||||
| 
						 | 
					@ -90,3 +102,103 @@ input method user interface.  It comes with multilingual input support.  It
 | 
				
			||||||
may also simplify input method development.")
 | 
					may also simplify input method development.")
 | 
				
			||||||
   (home-page "http://ibus.googlecode.com/")
 | 
					   (home-page "http://ibus.googlecode.com/")
 | 
				
			||||||
   (license lgpl2.1+)))
 | 
					   (license lgpl2.1+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ibus-libpinyin
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					   (name "ibus-libpinyin")
 | 
				
			||||||
 | 
					   (version "1.7.2")
 | 
				
			||||||
 | 
					   (source (origin
 | 
				
			||||||
 | 
					             (method url-fetch)
 | 
				
			||||||
 | 
					             (uri (string-append "https://github.com/libpinyin/"
 | 
				
			||||||
 | 
					                                 "ibus-libpinyin/archive/" version ".tar.gz"))
 | 
				
			||||||
 | 
					             (file-name (string-append name "-" version ".tar.gz"))
 | 
				
			||||||
 | 
					             (sha256
 | 
				
			||||||
 | 
					              (base32
 | 
				
			||||||
 | 
					               "080ixx5lih9lr78b061y67dqmiyc7ij87jl1sa26hhs1dr28ihka"))))
 | 
				
			||||||
 | 
					   (build-system glib-or-gtk-build-system)
 | 
				
			||||||
 | 
					   (arguments
 | 
				
			||||||
 | 
					     `(#:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-before 'configure 'autogen
 | 
				
			||||||
 | 
					          (lambda _ (and (zero? (system* "intltoolize"))
 | 
				
			||||||
 | 
					                         (zero? (system* "autoreconf" "-vif")))))
 | 
				
			||||||
 | 
					         (add-after 'wrap-program 'wrap-with-additional-paths
 | 
				
			||||||
 | 
					          (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					            ;; Make sure 'ibus-setup-libpinyin' runs with the correct
 | 
				
			||||||
 | 
					            ;; PYTHONPATH and GI_TYPELIB_PATH.
 | 
				
			||||||
 | 
					            (let ((out (assoc-ref outputs "out")))
 | 
				
			||||||
 | 
					              (wrap-program (string-append out "/libexec/ibus-setup-libpinyin")
 | 
				
			||||||
 | 
					                `("PYTHONPATH" ":" prefix
 | 
				
			||||||
 | 
					                  (,(getenv "PYTHONPATH")
 | 
				
			||||||
 | 
					                   ,(string-append (assoc-ref inputs "ibus")
 | 
				
			||||||
 | 
					                                   "/lib/girepository-1.0")))
 | 
				
			||||||
 | 
					                `("GI_TYPELIB_PATH" ":" prefix
 | 
				
			||||||
 | 
					                  (,(string-append (assoc-ref inputs "ibus")
 | 
				
			||||||
 | 
					                                   "/lib/girepository-1.0"))))
 | 
				
			||||||
 | 
					              #t))))))
 | 
				
			||||||
 | 
					   (inputs
 | 
				
			||||||
 | 
					    `(("ibus" ,ibus)
 | 
				
			||||||
 | 
					      ("libpinyin" ,libpinyin)
 | 
				
			||||||
 | 
					      ("bdb" ,bdb)
 | 
				
			||||||
 | 
					      ("sqlite" ,sqlite)
 | 
				
			||||||
 | 
					      ("python" ,python-2)
 | 
				
			||||||
 | 
					      ("pyxdg" ,python2-pyxdg)))
 | 
				
			||||||
 | 
					   (native-inputs
 | 
				
			||||||
 | 
					    `(("pkg-config" ,pkg-config)
 | 
				
			||||||
 | 
					      ("intltool" ,intltool)
 | 
				
			||||||
 | 
					      ("autoconf" ,autoconf)
 | 
				
			||||||
 | 
					      ("automake" ,automake)
 | 
				
			||||||
 | 
					      ("libtool" ,libtool)))
 | 
				
			||||||
 | 
					   (synopsis "Chinese Pinyin and ZhuYin input methods for IBus")
 | 
				
			||||||
 | 
					   (description
 | 
				
			||||||
 | 
					    "This package includes a Chinese Pinyin input method and a Chinese
 | 
				
			||||||
 | 
					ZhuYin (Bopomofo) input method based on libpinyin for IBus.")
 | 
				
			||||||
 | 
					   (home-page "https://github.com/libpinyin/ibus-libpinyin")
 | 
				
			||||||
 | 
					   (license gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public libpinyin
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "libpinyin")
 | 
				
			||||||
 | 
					    (version "1.2.0")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append
 | 
				
			||||||
 | 
					                    "https://github.com/libpinyin/libpinyin/archive/"
 | 
				
			||||||
 | 
					                    version ".tar.gz"))
 | 
				
			||||||
 | 
					              (file-name (string-append name "-" version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "04didxd39vlry6nqy7xqynwc68ndajnhw334wahfmp7zjbbscs7p"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-before 'configure 'autogen
 | 
				
			||||||
 | 
					          (lambda _ (zero? (system* "autoreconf" "-vif"))))
 | 
				
			||||||
 | 
					         (add-after 'unpack 'unpack-model
 | 
				
			||||||
 | 
					          (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					            (zero? (system* "tar" "-xvf"
 | 
				
			||||||
 | 
					                            (assoc-ref inputs "model")
 | 
				
			||||||
 | 
					                            "-C" "data")))))))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("glib" ,glib)
 | 
				
			||||||
 | 
					       ("bdb" ,bdb)
 | 
				
			||||||
 | 
					       ("model"
 | 
				
			||||||
 | 
					        ,(origin
 | 
				
			||||||
 | 
					           (method url-fetch)
 | 
				
			||||||
 | 
					           (uri (string-append "mirror://sourceforge/libpinyin/"
 | 
				
			||||||
 | 
					                               "models/model10.text.tar.gz"))
 | 
				
			||||||
 | 
					           (sha256
 | 
				
			||||||
 | 
					            (base32
 | 
				
			||||||
 | 
					             "0g489wqcfklxphhxpkh8i4qf9y8scmnmdbfrzdbrgf3rignbwyiw"))))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("pkg-config" ,pkg-config)
 | 
				
			||||||
 | 
					       ("autoconf" ,autoconf)
 | 
				
			||||||
 | 
					       ("automake" ,automake)
 | 
				
			||||||
 | 
					       ("libtool" ,libtool)))
 | 
				
			||||||
 | 
					    (synopsis "Library to handle Chinese Pinyin")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "The libpinyin C++ library provides algorithms needed for sentence-based
 | 
				
			||||||
 | 
					Chinese pinyin input methods.")
 | 
				
			||||||
 | 
					    (home-page "https://github.com/libpinyin/libpinyin")
 | 
				
			||||||
 | 
					    (license gpl2+)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@
 | 
				
			||||||
  #:use-module (gnu packages fontutils)
 | 
					  #:use-module (gnu packages fontutils)
 | 
				
			||||||
  #:use-module (gnu packages ghostscript)
 | 
					  #:use-module (gnu packages ghostscript)
 | 
				
			||||||
  #:use-module (gnu packages gl)
 | 
					  #:use-module (gnu packages gl)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages graphics)
 | 
				
			||||||
  #:use-module (gnu packages maths)
 | 
					  #:use-module (gnu packages maths)
 | 
				
			||||||
  #:use-module (gnu packages perl)
 | 
					  #:use-module (gnu packages perl)
 | 
				
			||||||
  #:use-module (gnu packages pkg-config)
 | 
					  #:use-module (gnu packages pkg-config)
 | 
				
			||||||
| 
						 | 
					@ -132,7 +133,7 @@ Included are a library, libtiff, for reading and writing TIFF and a small
 | 
				
			||||||
collection of tools for doing simple manipulations of TIFF images.")
 | 
					collection of tools for doing simple manipulations of TIFF images.")
 | 
				
			||||||
   (license (license:non-copyleft "file://COPYRIGHT"
 | 
					   (license (license:non-copyleft "file://COPYRIGHT"
 | 
				
			||||||
                                  "See COPYRIGHT in the distribution."))
 | 
					                                  "See COPYRIGHT in the distribution."))
 | 
				
			||||||
   (home-page "http://www.libtiff.org/")))
 | 
					   (home-page "http://www.remotesensing.org/libtiff/")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public libwmf
 | 
					(define-public libwmf
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -508,9 +509,12 @@ graphics image formats like PNG, BMP, JPEG, TIFF and others.")
 | 
				
			||||||
      ("fftw" ,fftw)
 | 
					      ("fftw" ,fftw)
 | 
				
			||||||
      ("fftwf" ,fftwf)
 | 
					      ("fftwf" ,fftwf)
 | 
				
			||||||
      ("hdf5" ,hdf5)
 | 
					      ("hdf5" ,hdf5)
 | 
				
			||||||
 | 
					      ("ilmbase" ,ilmbase) ; propagated by openexr, but needed explicitly
 | 
				
			||||||
 | 
					                           ; to create a configure-flag
 | 
				
			||||||
      ("libjpeg" ,libjpeg)
 | 
					      ("libjpeg" ,libjpeg)
 | 
				
			||||||
      ("libpng" ,libpng)
 | 
					      ("libpng" ,libpng)
 | 
				
			||||||
      ("libtiff" ,libtiff)
 | 
					      ("libtiff" ,libtiff)
 | 
				
			||||||
 | 
					      ("openexr" ,openexr)
 | 
				
			||||||
      ("python" ,python-2) ; print syntax
 | 
					      ("python" ,python-2) ; print syntax
 | 
				
			||||||
      ("python2-numpy" ,python2-numpy)
 | 
					      ("python2-numpy" ,python2-numpy)
 | 
				
			||||||
      ("zlib" ,zlib)))
 | 
					      ("zlib" ,zlib)))
 | 
				
			||||||
| 
						 | 
					@ -524,7 +528,15 @@ graphics image formats like PNG, BMP, JPEG, TIFF and others.")
 | 
				
			||||||
        (list "-Wno-dev" ; suppress developer mode with lots of warnings
 | 
					        (list "-Wno-dev" ; suppress developer mode with lots of warnings
 | 
				
			||||||
              (string-append "-DVIGRANUMPY_INSTALL_DIR="
 | 
					              (string-append "-DVIGRANUMPY_INSTALL_DIR="
 | 
				
			||||||
                             (assoc-ref %outputs "out")
 | 
					                             (assoc-ref %outputs "out")
 | 
				
			||||||
                             "/lib/python2.7/site-packages"))))
 | 
					                             "/lib/python2.7/site-packages")
 | 
				
			||||||
 | 
					              ;; OpenEXR is not enabled by default.
 | 
				
			||||||
 | 
					              "-DWITH_OPENEXR=1"
 | 
				
			||||||
 | 
					              ;; The header files of ilmbase are not found when included
 | 
				
			||||||
 | 
					              ;; by the header files of openexr, and an explicit flag
 | 
				
			||||||
 | 
					              ;; needs to be set.
 | 
				
			||||||
 | 
					              (string-append "-DCMAKE_CXX_FLAGS=-I"
 | 
				
			||||||
 | 
					                             (assoc-ref %build-inputs "ilmbase")
 | 
				
			||||||
 | 
					                             "/include/OpenEXR"))))
 | 
				
			||||||
   (synopsis "Computer vision library")
 | 
					   (synopsis "Computer vision library")
 | 
				
			||||||
   (description
 | 
					   (description
 | 
				
			||||||
    "VIGRA stands for Vision with Generic Algorithms.  It is an image
 | 
					    "VIGRA stands for Vision with Generic Algorithms.  It is an image
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,7 +18,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 (gnu packages libcanberra)
 | 
					(define-module (gnu packages libcanberra)
 | 
				
			||||||
  #:use-module ((guix licenses) #:select (lgpl2.1+))
 | 
					  #:use-module ((guix licenses)
 | 
				
			||||||
 | 
					                #:select (lgpl2.1+ gpl2 gpl2+ cc-by-sa4.0 cc-by3.0))
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
| 
						 | 
					@ -112,5 +113,8 @@ null) and is designed to be portable.")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
     "This package provides audio samples that can be used by libcanberra as
 | 
					     "This package provides audio samples that can be used by libcanberra as
 | 
				
			||||||
sounds for various system events.")
 | 
					sounds for various system events.")
 | 
				
			||||||
    (license #f)
 | 
					
 | 
				
			||||||
 | 
					    ;; The license of the various sounds is given in the 'CREDITS' file.
 | 
				
			||||||
 | 
					    (license (list cc-by-sa4.0 cc-by3.0 gpl2 gpl2+))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    (home-page "http://www.freedesktop.org/wiki/Specifications/sound-theme-spec/")))
 | 
					    (home-page "http://www.freedesktop.org/wiki/Specifications/sound-theme-spec/")))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 | 
					;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
 | 
				
			||||||
 | 
					;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -26,7 +27,7 @@
 | 
				
			||||||
(define-public libedit
 | 
					(define-public libedit
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "libedit")
 | 
					    (name "libedit")
 | 
				
			||||||
    (version "20141030-3.1")
 | 
					    (version "20150325-3.1")
 | 
				
			||||||
    (source
 | 
					    (source
 | 
				
			||||||
     (origin
 | 
					     (origin
 | 
				
			||||||
      (method url-fetch)
 | 
					      (method url-fetch)
 | 
				
			||||||
| 
						 | 
					@ -34,8 +35,9 @@
 | 
				
			||||||
                          "/" name "-" version ".tar.gz"))
 | 
					                          "/" name "-" version ".tar.gz"))
 | 
				
			||||||
      (sha256
 | 
					      (sha256
 | 
				
			||||||
       (base32
 | 
					       (base32
 | 
				
			||||||
        "0h2svwfcdldpbg0fy7fnkld706r2a9k9h1mm0yj7z3zvf1jy20cp"))))
 | 
					        "1if8zi9h52m80ck796an28rrqfljk2n8cn25m3fl0prwz155x2n8"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (arguments `(#:configure-flags (list "--enable-widec")))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("ncurses" ,ncurses)))
 | 
					     `(("ncurses" ,ncurses)))
 | 
				
			||||||
    (home-page "http://thrysoee.dk/editline/")
 | 
					    (home-page "http://thrysoee.dk/editline/")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,6 +2,7 @@
 | 
				
			||||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
 | 
					;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
 | 
				
			||||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 | 
					;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 | 
				
			||||||
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
 | 
					;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
 | 
				
			||||||
 | 
					;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -25,9 +26,13 @@
 | 
				
			||||||
  #:use-module (guix utils)
 | 
					  #:use-module (guix utils)
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
 | 
					  #:use-module (guix build-system glib-or-gtk)
 | 
				
			||||||
  #:use-module (gnu packages gnupg)
 | 
					  #:use-module (gnu packages gnupg)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages gtk)
 | 
				
			||||||
  #:use-module (gnu packages linux)
 | 
					  #:use-module (gnu packages linux)
 | 
				
			||||||
  #:use-module (gnu packages pkg-config))
 | 
					  #:use-module (gnu packages mp3)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages pkg-config)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages xiph))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public libusb
 | 
					(define-public libusb
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -116,3 +121,37 @@ proposed for standardization.")
 | 
				
			||||||
    ;; Foundation; either version 2 of the License, or (at your option) any
 | 
					    ;; Foundation; either version 2 of the License, or (at your option) any
 | 
				
			||||||
    ;; later version."
 | 
					    ;; later version."
 | 
				
			||||||
    (license lgpl2.1+)))
 | 
					    (license lgpl2.1+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public gmtp
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "gmtp")
 | 
				
			||||||
 | 
					    (version "1.3.9")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "mirror://sourceforge/gmtp/" version
 | 
				
			||||||
 | 
					                                  "/gmtp-" version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "0bdxvi0jf3q870a39xzsaj4qrjwc9b5bgvc95plc7xb6vf2m7zsv"))))
 | 
				
			||||||
 | 
					    (build-system glib-or-gtk-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:configure-flags
 | 
				
			||||||
 | 
					       (let ((libid3tag (assoc-ref %build-inputs "libid3tag")))
 | 
				
			||||||
 | 
					         (list
 | 
				
			||||||
 | 
					          ;; libid3tag provides no .pc file, so pkg-config fails to find them.
 | 
				
			||||||
 | 
					          (string-append "ID3TAG_CFLAGS=-I" libid3tag "/include")
 | 
				
			||||||
 | 
					          (string-append "ID3TAG_LIBS=-L" libid3tag "/lib -lid3tag -lz")))))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("gtk+" ,gtk+)
 | 
				
			||||||
 | 
					       ("flac" ,flac)
 | 
				
			||||||
 | 
					       ("libvorbis" ,libvorbis)
 | 
				
			||||||
 | 
					       ("libid3tag" ,libid3tag)
 | 
				
			||||||
 | 
					       ("libmtp" ,libmtp)))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
 | 
					    (home-page "http://gmtp.sourceforge.net/")
 | 
				
			||||||
 | 
					    (synopsis "Simple graphical MTP client")
 | 
				
			||||||
 | 
					    (description "gMTP is a simple graphical client for the Media Transfer Protocol
 | 
				
			||||||
 | 
					  (MTP), which allows media files to be transferred to and from many portable
 | 
				
			||||||
 | 
					devices.")
 | 
				
			||||||
 | 
					    (license bsd-3)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Automatically generated file; DO NOT EDIT.
 | 
					# Automatically generated file; DO NOT EDIT.
 | 
				
			||||||
# Linux/x86 4.1.0-gnu Kernel Configuration
 | 
					# Linux/x86 4.2.0-gnu Kernel Configuration
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# CONFIG_64BIT is not set
 | 
					# CONFIG_64BIT is not set
 | 
				
			||||||
CONFIG_X86_32=y
 | 
					CONFIG_X86_32=y
 | 
				
			||||||
| 
						 | 
					@ -34,7 +34,6 @@ CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
 | 
				
			||||||
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
 | 
					CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
 | 
				
			||||||
CONFIG_HAVE_INTEL_TXT=y
 | 
					CONFIG_HAVE_INTEL_TXT=y
 | 
				
			||||||
CONFIG_X86_32_SMP=y
 | 
					CONFIG_X86_32_SMP=y
 | 
				
			||||||
CONFIG_X86_HT=y
 | 
					 | 
				
			||||||
CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
 | 
					CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
 | 
				
			||||||
CONFIG_ARCH_SUPPORTS_UPROBES=y
 | 
					CONFIG_ARCH_SUPPORTS_UPROBES=y
 | 
				
			||||||
CONFIG_FIX_EARLYCON_MEM=y
 | 
					CONFIG_FIX_EARLYCON_MEM=y
 | 
				
			||||||
| 
						 | 
					@ -83,11 +82,12 @@ CONFIG_AUDIT_TREE=y
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_GENERIC_IRQ_PROBE=y
 | 
					CONFIG_GENERIC_IRQ_PROBE=y
 | 
				
			||||||
CONFIG_GENERIC_IRQ_SHOW=y
 | 
					CONFIG_GENERIC_IRQ_SHOW=y
 | 
				
			||||||
CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ=y
 | 
					 | 
				
			||||||
CONFIG_GENERIC_PENDING_IRQ=y
 | 
					CONFIG_GENERIC_PENDING_IRQ=y
 | 
				
			||||||
CONFIG_GENERIC_IRQ_CHIP=y
 | 
					CONFIG_GENERIC_IRQ_CHIP=y
 | 
				
			||||||
CONFIG_IRQ_DOMAIN=y
 | 
					CONFIG_IRQ_DOMAIN=y
 | 
				
			||||||
 | 
					CONFIG_IRQ_DOMAIN_HIERARCHY=y
 | 
				
			||||||
CONFIG_GENERIC_MSI_IRQ=y
 | 
					CONFIG_GENERIC_MSI_IRQ=y
 | 
				
			||||||
 | 
					CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
 | 
				
			||||||
# CONFIG_IRQ_DOMAIN_DEBUG is not set
 | 
					# CONFIG_IRQ_DOMAIN_DEBUG is not set
 | 
				
			||||||
CONFIG_IRQ_FORCED_THREADING=y
 | 
					CONFIG_IRQ_FORCED_THREADING=y
 | 
				
			||||||
CONFIG_SPARSE_IRQ=y
 | 
					CONFIG_SPARSE_IRQ=y
 | 
				
			||||||
| 
						 | 
					@ -126,15 +126,11 @@ CONFIG_TASK_IO_ACCOUNTING=y
 | 
				
			||||||
# RCU Subsystem
 | 
					# RCU Subsystem
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_TREE_RCU=y
 | 
					CONFIG_TREE_RCU=y
 | 
				
			||||||
 | 
					# CONFIG_RCU_EXPERT is not set
 | 
				
			||||||
CONFIG_SRCU=y
 | 
					CONFIG_SRCU=y
 | 
				
			||||||
# CONFIG_TASKS_RCU is not set
 | 
					# CONFIG_TASKS_RCU is not set
 | 
				
			||||||
CONFIG_RCU_STALL_COMMON=y
 | 
					CONFIG_RCU_STALL_COMMON=y
 | 
				
			||||||
CONFIG_RCU_FANOUT=32
 | 
					 | 
				
			||||||
CONFIG_RCU_FANOUT_LEAF=16
 | 
					 | 
				
			||||||
# CONFIG_RCU_FANOUT_EXACT is not set
 | 
					 | 
				
			||||||
CONFIG_RCU_FAST_NO_HZ=y
 | 
					 | 
				
			||||||
# CONFIG_TREE_RCU_TRACE is not set
 | 
					# CONFIG_TREE_RCU_TRACE is not set
 | 
				
			||||||
CONFIG_RCU_KTHREAD_PRIO=0
 | 
					 | 
				
			||||||
# CONFIG_RCU_NOCB_CPU is not set
 | 
					# CONFIG_RCU_NOCB_CPU is not set
 | 
				
			||||||
# CONFIG_RCU_EXPEDITE_BOOT is not set
 | 
					# CONFIG_RCU_EXPEDITE_BOOT is not set
 | 
				
			||||||
CONFIG_BUILD_BIN2C=y
 | 
					CONFIG_BUILD_BIN2C=y
 | 
				
			||||||
| 
						 | 
					@ -162,6 +158,7 @@ CONFIG_CFS_BANDWIDTH=y
 | 
				
			||||||
# CONFIG_RT_GROUP_SCHED is not set
 | 
					# CONFIG_RT_GROUP_SCHED is not set
 | 
				
			||||||
CONFIG_BLK_CGROUP=y
 | 
					CONFIG_BLK_CGROUP=y
 | 
				
			||||||
# CONFIG_DEBUG_BLK_CGROUP is not set
 | 
					# CONFIG_DEBUG_BLK_CGROUP is not set
 | 
				
			||||||
 | 
					CONFIG_CGROUP_WRITEBACK=y
 | 
				
			||||||
CONFIG_CHECKPOINT_RESTORE=y
 | 
					CONFIG_CHECKPOINT_RESTORE=y
 | 
				
			||||||
CONFIG_NAMESPACES=y
 | 
					CONFIG_NAMESPACES=y
 | 
				
			||||||
CONFIG_UTS_NS=y
 | 
					CONFIG_UTS_NS=y
 | 
				
			||||||
| 
						 | 
					@ -251,6 +248,7 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
 | 
				
			||||||
CONFIG_HAVE_DMA_ATTRS=y
 | 
					CONFIG_HAVE_DMA_ATTRS=y
 | 
				
			||||||
CONFIG_HAVE_DMA_CONTIGUOUS=y
 | 
					CONFIG_HAVE_DMA_CONTIGUOUS=y
 | 
				
			||||||
CONFIG_GENERIC_SMP_IDLE_THREAD=y
 | 
					CONFIG_GENERIC_SMP_IDLE_THREAD=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
 | 
				
			||||||
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
 | 
					CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
 | 
				
			||||||
CONFIG_HAVE_CLK=y
 | 
					CONFIG_HAVE_CLK=y
 | 
				
			||||||
CONFIG_HAVE_DMA_API_DEBUG=y
 | 
					CONFIG_HAVE_DMA_API_DEBUG=y
 | 
				
			||||||
| 
						 | 
					@ -278,6 +276,7 @@ CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
 | 
				
			||||||
CONFIG_HAVE_ARCH_HUGE_VMAP=y
 | 
					CONFIG_HAVE_ARCH_HUGE_VMAP=y
 | 
				
			||||||
CONFIG_MODULES_USE_ELF_REL=y
 | 
					CONFIG_MODULES_USE_ELF_REL=y
 | 
				
			||||||
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
 | 
					CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
 | 
				
			||||||
 | 
					CONFIG_HAVE_COPY_THREAD_TLS=y
 | 
				
			||||||
CONFIG_CLONE_BACKWARDS=y
 | 
					CONFIG_CLONE_BACKWARDS=y
 | 
				
			||||||
CONFIG_OLD_SIGSUSPEND3=y
 | 
					CONFIG_OLD_SIGSUSPEND3=y
 | 
				
			||||||
CONFIG_OLD_SIGACTION=y
 | 
					CONFIG_OLD_SIGACTION=y
 | 
				
			||||||
| 
						 | 
					@ -299,6 +298,7 @@ CONFIG_MODVERSIONS=y
 | 
				
			||||||
CONFIG_MODULE_SRCVERSION_ALL=y
 | 
					CONFIG_MODULE_SRCVERSION_ALL=y
 | 
				
			||||||
# CONFIG_MODULE_SIG is not set
 | 
					# CONFIG_MODULE_SIG is not set
 | 
				
			||||||
# CONFIG_MODULE_COMPRESS is not set
 | 
					# CONFIG_MODULE_COMPRESS is not set
 | 
				
			||||||
 | 
					CONFIG_MODULES_TREE_LOOKUP=y
 | 
				
			||||||
CONFIG_STOP_MACHINE=y
 | 
					CONFIG_STOP_MACHINE=y
 | 
				
			||||||
CONFIG_BLOCK=y
 | 
					CONFIG_BLOCK=y
 | 
				
			||||||
CONFIG_LBDAF=y
 | 
					CONFIG_LBDAF=y
 | 
				
			||||||
| 
						 | 
					@ -312,13 +312,7 @@ CONFIG_BLK_CMDLINE_PARSER=y
 | 
				
			||||||
# Partition Types
 | 
					# Partition Types
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_PARTITION_ADVANCED=y
 | 
					CONFIG_PARTITION_ADVANCED=y
 | 
				
			||||||
CONFIG_ACORN_PARTITION=y
 | 
					# CONFIG_ACORN_PARTITION is not set
 | 
				
			||||||
CONFIG_ACORN_PARTITION_CUMANA=y
 | 
					 | 
				
			||||||
CONFIG_ACORN_PARTITION_EESOX=y
 | 
					 | 
				
			||||||
CONFIG_ACORN_PARTITION_ICS=y
 | 
					 | 
				
			||||||
CONFIG_ACORN_PARTITION_ADFS=y
 | 
					 | 
				
			||||||
CONFIG_ACORN_PARTITION_POWERTEC=y
 | 
					 | 
				
			||||||
CONFIG_ACORN_PARTITION_RISCIX=y
 | 
					 | 
				
			||||||
CONFIG_AIX_PARTITION=y
 | 
					CONFIG_AIX_PARTITION=y
 | 
				
			||||||
CONFIG_OSF_PARTITION=y
 | 
					CONFIG_OSF_PARTITION=y
 | 
				
			||||||
CONFIG_AMIGA_PARTITION=y
 | 
					CONFIG_AMIGA_PARTITION=y
 | 
				
			||||||
| 
						 | 
					@ -353,7 +347,6 @@ CONFIG_DEFAULT_IOSCHED="deadline"
 | 
				
			||||||
CONFIG_PREEMPT_NOTIFIERS=y
 | 
					CONFIG_PREEMPT_NOTIFIERS=y
 | 
				
			||||||
CONFIG_PADATA=y
 | 
					CONFIG_PADATA=y
 | 
				
			||||||
CONFIG_ASN1=y
 | 
					CONFIG_ASN1=y
 | 
				
			||||||
CONFIG_UNINLINE_SPIN_UNLOCK=y
 | 
					 | 
				
			||||||
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
 | 
					CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
 | 
				
			||||||
CONFIG_INLINE_READ_UNLOCK=y
 | 
					CONFIG_INLINE_READ_UNLOCK=y
 | 
				
			||||||
CONFIG_INLINE_READ_UNLOCK_IRQ=y
 | 
					CONFIG_INLINE_READ_UNLOCK_IRQ=y
 | 
				
			||||||
| 
						 | 
					@ -363,8 +356,10 @@ CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
 | 
				
			||||||
CONFIG_MUTEX_SPIN_ON_OWNER=y
 | 
					CONFIG_MUTEX_SPIN_ON_OWNER=y
 | 
				
			||||||
CONFIG_RWSEM_SPIN_ON_OWNER=y
 | 
					CONFIG_RWSEM_SPIN_ON_OWNER=y
 | 
				
			||||||
CONFIG_LOCK_SPIN_ON_OWNER=y
 | 
					CONFIG_LOCK_SPIN_ON_OWNER=y
 | 
				
			||||||
CONFIG_ARCH_USE_QUEUE_RWLOCK=y
 | 
					CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
 | 
				
			||||||
CONFIG_QUEUE_RWLOCK=y
 | 
					CONFIG_QUEUED_SPINLOCKS=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
 | 
				
			||||||
 | 
					CONFIG_QUEUED_RWLOCKS=y
 | 
				
			||||||
CONFIG_FREEZER=y
 | 
					CONFIG_FREEZER=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -541,7 +536,9 @@ CONFIG_ZSMALLOC=y
 | 
				
			||||||
CONFIG_PGTABLE_MAPPING=y
 | 
					CONFIG_PGTABLE_MAPPING=y
 | 
				
			||||||
# CONFIG_ZSMALLOC_STAT is not set
 | 
					# CONFIG_ZSMALLOC_STAT is not set
 | 
				
			||||||
CONFIG_GENERIC_EARLY_IOREMAP=y
 | 
					CONFIG_GENERIC_EARLY_IOREMAP=y
 | 
				
			||||||
# CONFIG_X86_PMEM_LEGACY is not set
 | 
					CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y
 | 
				
			||||||
 | 
					# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
 | 
				
			||||||
 | 
					CONFIG_X86_PMEM_LEGACY=y
 | 
				
			||||||
CONFIG_HIGHPTE=y
 | 
					CONFIG_HIGHPTE=y
 | 
				
			||||||
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
 | 
					CONFIG_X86_CHECK_BIOS_CORRUPTION=y
 | 
				
			||||||
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
 | 
					CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
 | 
				
			||||||
| 
						 | 
					@ -612,6 +609,7 @@ CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
 | 
				
			||||||
CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
 | 
					CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
 | 
				
			||||||
CONFIG_ACPI_SLEEP=y
 | 
					CONFIG_ACPI_SLEEP=y
 | 
				
			||||||
# CONFIG_ACPI_PROCFS_POWER is not set
 | 
					# CONFIG_ACPI_PROCFS_POWER is not set
 | 
				
			||||||
 | 
					CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
 | 
				
			||||||
CONFIG_ACPI_EC_DEBUGFS=m
 | 
					CONFIG_ACPI_EC_DEBUGFS=m
 | 
				
			||||||
CONFIG_ACPI_AC=y
 | 
					CONFIG_ACPI_AC=y
 | 
				
			||||||
CONFIG_ACPI_BATTERY=y
 | 
					CONFIG_ACPI_BATTERY=y
 | 
				
			||||||
| 
						 | 
					@ -638,6 +636,8 @@ CONFIG_ACPI_HED=y
 | 
				
			||||||
# CONFIG_ACPI_CUSTOM_METHOD is not set
 | 
					# CONFIG_ACPI_CUSTOM_METHOD is not set
 | 
				
			||||||
CONFIG_ACPI_BGRT=y
 | 
					CONFIG_ACPI_BGRT=y
 | 
				
			||||||
# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
 | 
					# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
 | 
				
			||||||
 | 
					CONFIG_ACPI_NFIT=m
 | 
				
			||||||
 | 
					# CONFIG_ACPI_NFIT_DEBUG is not set
 | 
				
			||||||
CONFIG_HAVE_ACPI_APEI=y
 | 
					CONFIG_HAVE_ACPI_APEI=y
 | 
				
			||||||
CONFIG_HAVE_ACPI_APEI_NMI=y
 | 
					CONFIG_HAVE_ACPI_APEI_NMI=y
 | 
				
			||||||
CONFIG_ACPI_APEI=y
 | 
					CONFIG_ACPI_APEI=y
 | 
				
			||||||
| 
						 | 
					@ -738,7 +738,9 @@ CONFIG_PCIEASPM_DEFAULT=y
 | 
				
			||||||
# CONFIG_PCIEASPM_POWERSAVE is not set
 | 
					# CONFIG_PCIEASPM_POWERSAVE is not set
 | 
				
			||||||
# CONFIG_PCIEASPM_PERFORMANCE is not set
 | 
					# CONFIG_PCIEASPM_PERFORMANCE is not set
 | 
				
			||||||
CONFIG_PCIE_PME=y
 | 
					CONFIG_PCIE_PME=y
 | 
				
			||||||
 | 
					CONFIG_PCI_BUS_ADDR_T_64BIT=y
 | 
				
			||||||
CONFIG_PCI_MSI=y
 | 
					CONFIG_PCI_MSI=y
 | 
				
			||||||
 | 
					CONFIG_PCI_MSI_IRQ_DOMAIN=y
 | 
				
			||||||
# CONFIG_PCI_DEBUG is not set
 | 
					# CONFIG_PCI_DEBUG is not set
 | 
				
			||||||
CONFIG_PCI_REALLOC_ENABLE_AUTO=y
 | 
					CONFIG_PCI_REALLOC_ENABLE_AUTO=y
 | 
				
			||||||
CONFIG_PCI_STUB=m
 | 
					CONFIG_PCI_STUB=m
 | 
				
			||||||
| 
						 | 
					@ -826,6 +828,7 @@ CONFIG_COREDUMP=y
 | 
				
			||||||
CONFIG_HAVE_ATOMIC_IOMAP=y
 | 
					CONFIG_HAVE_ATOMIC_IOMAP=y
 | 
				
			||||||
CONFIG_PMC_ATOM=y
 | 
					CONFIG_PMC_ATOM=y
 | 
				
			||||||
CONFIG_NET=y
 | 
					CONFIG_NET=y
 | 
				
			||||||
 | 
					CONFIG_NET_INGRESS=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Networking options
 | 
					# Networking options
 | 
				
			||||||
| 
						 | 
					@ -869,7 +872,7 @@ CONFIG_NET_IPVTI=m
 | 
				
			||||||
CONFIG_NET_UDP_TUNNEL=m
 | 
					CONFIG_NET_UDP_TUNNEL=m
 | 
				
			||||||
CONFIG_NET_FOU=m
 | 
					CONFIG_NET_FOU=m
 | 
				
			||||||
CONFIG_NET_FOU_IP_TUNNELS=y
 | 
					CONFIG_NET_FOU_IP_TUNNELS=y
 | 
				
			||||||
CONFIG_GENEVE=m
 | 
					CONFIG_GENEVE_CORE=m
 | 
				
			||||||
CONFIG_INET_AH=m
 | 
					CONFIG_INET_AH=m
 | 
				
			||||||
CONFIG_INET_ESP=m
 | 
					CONFIG_INET_ESP=m
 | 
				
			||||||
CONFIG_INET_IPCOMP=m
 | 
					CONFIG_INET_IPCOMP=m
 | 
				
			||||||
| 
						 | 
					@ -896,6 +899,7 @@ CONFIG_TCP_CONG_VENO=m
 | 
				
			||||||
CONFIG_TCP_CONG_YEAH=m
 | 
					CONFIG_TCP_CONG_YEAH=m
 | 
				
			||||||
CONFIG_TCP_CONG_ILLINOIS=m
 | 
					CONFIG_TCP_CONG_ILLINOIS=m
 | 
				
			||||||
CONFIG_TCP_CONG_DCTCP=m
 | 
					CONFIG_TCP_CONG_DCTCP=m
 | 
				
			||||||
 | 
					CONFIG_TCP_CONG_CDG=m
 | 
				
			||||||
CONFIG_DEFAULT_CUBIC=y
 | 
					CONFIG_DEFAULT_CUBIC=y
 | 
				
			||||||
# CONFIG_DEFAULT_RENO is not set
 | 
					# CONFIG_DEFAULT_RENO is not set
 | 
				
			||||||
CONFIG_DEFAULT_TCP_CONG="cubic"
 | 
					CONFIG_DEFAULT_TCP_CONG="cubic"
 | 
				
			||||||
| 
						 | 
					@ -937,6 +941,7 @@ CONFIG_BRIDGE_NETFILTER=m
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Core Netfilter Configuration
 | 
					# Core Netfilter Configuration
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					CONFIG_NETFILTER_INGRESS=y
 | 
				
			||||||
CONFIG_NETFILTER_NETLINK=m
 | 
					CONFIG_NETFILTER_NETLINK=m
 | 
				
			||||||
CONFIG_NETFILTER_NETLINK_ACCT=m
 | 
					CONFIG_NETFILTER_NETLINK_ACCT=m
 | 
				
			||||||
CONFIG_NETFILTER_NETLINK_QUEUE=m
 | 
					CONFIG_NETFILTER_NETLINK_QUEUE=m
 | 
				
			||||||
| 
						 | 
					@ -984,6 +989,7 @@ CONFIG_NF_NAT_REDIRECT=m
 | 
				
			||||||
CONFIG_NETFILTER_SYNPROXY=m
 | 
					CONFIG_NETFILTER_SYNPROXY=m
 | 
				
			||||||
CONFIG_NF_TABLES=m
 | 
					CONFIG_NF_TABLES=m
 | 
				
			||||||
CONFIG_NF_TABLES_INET=m
 | 
					CONFIG_NF_TABLES_INET=m
 | 
				
			||||||
 | 
					CONFIG_NF_TABLES_NETDEV=m
 | 
				
			||||||
CONFIG_NFT_EXTHDR=m
 | 
					CONFIG_NFT_EXTHDR=m
 | 
				
			||||||
CONFIG_NFT_META=m
 | 
					CONFIG_NFT_META=m
 | 
				
			||||||
CONFIG_NFT_CT=m
 | 
					CONFIG_NFT_CT=m
 | 
				
			||||||
| 
						 | 
					@ -1382,6 +1388,7 @@ CONFIG_NET_CLS_RSVP6=m
 | 
				
			||||||
CONFIG_NET_CLS_FLOW=m
 | 
					CONFIG_NET_CLS_FLOW=m
 | 
				
			||||||
CONFIG_NET_CLS_CGROUP=m
 | 
					CONFIG_NET_CLS_CGROUP=m
 | 
				
			||||||
CONFIG_NET_CLS_BPF=m
 | 
					CONFIG_NET_CLS_BPF=m
 | 
				
			||||||
 | 
					CONFIG_NET_CLS_FLOWER=m
 | 
				
			||||||
CONFIG_NET_EMATCH=y
 | 
					CONFIG_NET_EMATCH=y
 | 
				
			||||||
CONFIG_NET_EMATCH_STACK=32
 | 
					CONFIG_NET_EMATCH_STACK=32
 | 
				
			||||||
CONFIG_NET_EMATCH_CMP=m
 | 
					CONFIG_NET_EMATCH_CMP=m
 | 
				
			||||||
| 
						 | 
					@ -1594,8 +1601,10 @@ CONFIG_BT_DEBUGFS=y
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_BT_INTEL=m
 | 
					CONFIG_BT_INTEL=m
 | 
				
			||||||
CONFIG_BT_BCM=m
 | 
					CONFIG_BT_BCM=m
 | 
				
			||||||
 | 
					CONFIG_BT_RTL=m
 | 
				
			||||||
CONFIG_BT_HCIBTUSB=m
 | 
					CONFIG_BT_HCIBTUSB=m
 | 
				
			||||||
CONFIG_BT_HCIBTUSB_BCM=y
 | 
					CONFIG_BT_HCIBTUSB_BCM=y
 | 
				
			||||||
 | 
					CONFIG_BT_HCIBTUSB_RTL=y
 | 
				
			||||||
CONFIG_BT_HCIBTSDIO=m
 | 
					CONFIG_BT_HCIBTSDIO=m
 | 
				
			||||||
CONFIG_BT_HCIUART=m
 | 
					CONFIG_BT_HCIUART=m
 | 
				
			||||||
CONFIG_BT_HCIUART_H4=y
 | 
					CONFIG_BT_HCIUART_H4=y
 | 
				
			||||||
| 
						 | 
					@ -1654,6 +1663,7 @@ CONFIG_MAC80211_LEDS=y
 | 
				
			||||||
CONFIG_MAC80211_DEBUGFS=y
 | 
					CONFIG_MAC80211_DEBUGFS=y
 | 
				
			||||||
CONFIG_MAC80211_MESSAGE_TRACING=y
 | 
					CONFIG_MAC80211_MESSAGE_TRACING=y
 | 
				
			||||||
# CONFIG_MAC80211_DEBUG_MENU is not set
 | 
					# CONFIG_MAC80211_DEBUG_MENU is not set
 | 
				
			||||||
 | 
					CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
 | 
				
			||||||
CONFIG_WIMAX=m
 | 
					CONFIG_WIMAX=m
 | 
				
			||||||
CONFIG_WIMAX_DEBUG_LEVEL=8
 | 
					CONFIG_WIMAX_DEBUG_LEVEL=8
 | 
				
			||||||
CONFIG_RFKILL=y
 | 
					CONFIG_RFKILL=y
 | 
				
			||||||
| 
						 | 
					@ -1676,6 +1686,7 @@ CONFIG_NFC=m
 | 
				
			||||||
CONFIG_NFC_DIGITAL=m
 | 
					CONFIG_NFC_DIGITAL=m
 | 
				
			||||||
CONFIG_NFC_NCI=m
 | 
					CONFIG_NFC_NCI=m
 | 
				
			||||||
CONFIG_NFC_NCI_SPI=y
 | 
					CONFIG_NFC_NCI_SPI=y
 | 
				
			||||||
 | 
					CONFIG_NFC_NCI_UART=m
 | 
				
			||||||
CONFIG_NFC_HCI=m
 | 
					CONFIG_NFC_HCI=m
 | 
				
			||||||
CONFIG_NFC_SHDLC=y
 | 
					CONFIG_NFC_SHDLC=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1696,10 +1707,11 @@ CONFIG_NFC_MICROREAD_I2C=m
 | 
				
			||||||
CONFIG_NFC_MICROREAD_MEI=m
 | 
					CONFIG_NFC_MICROREAD_MEI=m
 | 
				
			||||||
CONFIG_NFC_MRVL=m
 | 
					CONFIG_NFC_MRVL=m
 | 
				
			||||||
CONFIG_NFC_MRVL_USB=m
 | 
					CONFIG_NFC_MRVL_USB=m
 | 
				
			||||||
 | 
					CONFIG_NFC_MRVL_UART=m
 | 
				
			||||||
CONFIG_NFC_ST21NFCA=m
 | 
					CONFIG_NFC_ST21NFCA=m
 | 
				
			||||||
CONFIG_NFC_ST21NFCA_I2C=m
 | 
					CONFIG_NFC_ST21NFCA_I2C=m
 | 
				
			||||||
CONFIG_NFC_ST21NFCB=m
 | 
					CONFIG_NFC_ST_NCI=m
 | 
				
			||||||
CONFIG_NFC_ST21NFCB_I2C=m
 | 
					CONFIG_NFC_ST_NCI_I2C=m
 | 
				
			||||||
CONFIG_NFC_NXP_NCI=m
 | 
					CONFIG_NFC_NXP_NCI=m
 | 
				
			||||||
CONFIG_NFC_NXP_NCI_I2C=m
 | 
					CONFIG_NFC_NXP_NCI_I2C=m
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1885,6 +1897,7 @@ CONFIG_MTD_UBI_BEB_LIMIT=20
 | 
				
			||||||
CONFIG_MTD_UBI_FASTMAP=y
 | 
					CONFIG_MTD_UBI_FASTMAP=y
 | 
				
			||||||
CONFIG_MTD_UBI_GLUEBI=m
 | 
					CONFIG_MTD_UBI_GLUEBI=m
 | 
				
			||||||
CONFIG_MTD_UBI_BLOCK=y
 | 
					CONFIG_MTD_UBI_BLOCK=y
 | 
				
			||||||
 | 
					# CONFIG_OF is not set
 | 
				
			||||||
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
 | 
					CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
 | 
				
			||||||
CONFIG_PARPORT=m
 | 
					CONFIG_PARPORT=m
 | 
				
			||||||
CONFIG_PARPORT_PC=m
 | 
					CONFIG_PARPORT_PC=m
 | 
				
			||||||
| 
						 | 
					@ -1942,7 +1955,6 @@ CONFIG_PARIDE_ON26=m
 | 
				
			||||||
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
 | 
					CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
 | 
				
			||||||
CONFIG_ZRAM=m
 | 
					CONFIG_ZRAM=m
 | 
				
			||||||
CONFIG_ZRAM_LZ4_COMPRESS=y
 | 
					CONFIG_ZRAM_LZ4_COMPRESS=y
 | 
				
			||||||
# CONFIG_ZRAM_DEBUG is not set
 | 
					 | 
				
			||||||
CONFIG_BLK_CPQ_CISS_DA=m
 | 
					CONFIG_BLK_CPQ_CISS_DA=m
 | 
				
			||||||
CONFIG_CISS_SCSI_TAPE=y
 | 
					CONFIG_CISS_SCSI_TAPE=y
 | 
				
			||||||
CONFIG_BLK_DEV_DAC960=m
 | 
					CONFIG_BLK_DEV_DAC960=m
 | 
				
			||||||
| 
						 | 
					@ -1961,7 +1973,6 @@ CONFIG_BLK_DEV_RAM=y
 | 
				
			||||||
CONFIG_BLK_DEV_RAM_COUNT=16
 | 
					CONFIG_BLK_DEV_RAM_COUNT=16
 | 
				
			||||||
CONFIG_BLK_DEV_RAM_SIZE=65536
 | 
					CONFIG_BLK_DEV_RAM_SIZE=65536
 | 
				
			||||||
CONFIG_BLK_DEV_RAM_DAX=y
 | 
					CONFIG_BLK_DEV_RAM_DAX=y
 | 
				
			||||||
CONFIG_BLK_DEV_PMEM=m
 | 
					 | 
				
			||||||
CONFIG_CDROM_PKTCDVD=m
 | 
					CONFIG_CDROM_PKTCDVD=m
 | 
				
			||||||
CONFIG_CDROM_PKTCDVD_BUFFERS=8
 | 
					CONFIG_CDROM_PKTCDVD_BUFFERS=8
 | 
				
			||||||
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
 | 
					# CONFIG_CDROM_PKTCDVD_WCACHE is not set
 | 
				
			||||||
| 
						 | 
					@ -2044,6 +2055,10 @@ CONFIG_VMWARE_VMCI=m
 | 
				
			||||||
# Intel MIC Bus Driver
 | 
					# Intel MIC Bus Driver
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# SCIF Bus Driver
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Intel MIC Host Driver
 | 
					# Intel MIC Host Driver
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -2051,8 +2066,13 @@ CONFIG_VMWARE_VMCI=m
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Intel MIC Card Driver
 | 
					# Intel MIC Card Driver
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# SCIF Driver
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
CONFIG_ECHO=m
 | 
					CONFIG_ECHO=m
 | 
				
			||||||
# CONFIG_CXL_BASE is not set
 | 
					# CONFIG_CXL_BASE is not set
 | 
				
			||||||
 | 
					# CONFIG_CXL_KERNEL_API is not set
 | 
				
			||||||
CONFIG_HAVE_IDE=y
 | 
					CONFIG_HAVE_IDE=y
 | 
				
			||||||
# CONFIG_IDE is not set
 | 
					# CONFIG_IDE is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2158,6 +2178,8 @@ CONFIG_LIBFC=m
 | 
				
			||||||
CONFIG_LIBFCOE=m
 | 
					CONFIG_LIBFCOE=m
 | 
				
			||||||
CONFIG_FCOE=m
 | 
					CONFIG_FCOE=m
 | 
				
			||||||
CONFIG_FCOE_FNIC=m
 | 
					CONFIG_FCOE_FNIC=m
 | 
				
			||||||
 | 
					CONFIG_SCSI_SNIC=m
 | 
				
			||||||
 | 
					# CONFIG_SCSI_SNIC_DEBUG_FS is not set
 | 
				
			||||||
CONFIG_SCSI_DMX3191D=m
 | 
					CONFIG_SCSI_DMX3191D=m
 | 
				
			||||||
CONFIG_SCSI_DTC3280=m
 | 
					CONFIG_SCSI_DTC3280=m
 | 
				
			||||||
CONFIG_SCSI_EATA=m
 | 
					CONFIG_SCSI_EATA=m
 | 
				
			||||||
| 
						 | 
					@ -2356,6 +2378,7 @@ CONFIG_DM_SNAPSHOT=m
 | 
				
			||||||
CONFIG_DM_THIN_PROVISIONING=m
 | 
					CONFIG_DM_THIN_PROVISIONING=m
 | 
				
			||||||
CONFIG_DM_CACHE=m
 | 
					CONFIG_DM_CACHE=m
 | 
				
			||||||
CONFIG_DM_CACHE_MQ=m
 | 
					CONFIG_DM_CACHE_MQ=m
 | 
				
			||||||
 | 
					CONFIG_DM_CACHE_SMQ=m
 | 
				
			||||||
CONFIG_DM_CACHE_CLEANER=m
 | 
					CONFIG_DM_CACHE_CLEANER=m
 | 
				
			||||||
CONFIG_DM_ERA=m
 | 
					CONFIG_DM_ERA=m
 | 
				
			||||||
CONFIG_DM_MIRROR=m
 | 
					CONFIG_DM_MIRROR=m
 | 
				
			||||||
| 
						 | 
					@ -2417,6 +2440,7 @@ CONFIG_MACVLAN=m
 | 
				
			||||||
CONFIG_MACVTAP=m
 | 
					CONFIG_MACVTAP=m
 | 
				
			||||||
CONFIG_IPVLAN=m
 | 
					CONFIG_IPVLAN=m
 | 
				
			||||||
CONFIG_VXLAN=m
 | 
					CONFIG_VXLAN=m
 | 
				
			||||||
 | 
					CONFIG_GENEVE=m
 | 
				
			||||||
CONFIG_NETCONSOLE=m
 | 
					CONFIG_NETCONSOLE=m
 | 
				
			||||||
CONFIG_NETCONSOLE_DYNAMIC=y
 | 
					CONFIG_NETCONSOLE_DYNAMIC=y
 | 
				
			||||||
CONFIG_NETPOLL=y
 | 
					CONFIG_NETPOLL=y
 | 
				
			||||||
| 
						 | 
					@ -2426,6 +2450,7 @@ CONFIG_RIONET=m
 | 
				
			||||||
CONFIG_RIONET_TX_SIZE=128
 | 
					CONFIG_RIONET_TX_SIZE=128
 | 
				
			||||||
CONFIG_RIONET_RX_SIZE=128
 | 
					CONFIG_RIONET_RX_SIZE=128
 | 
				
			||||||
CONFIG_TUN=y
 | 
					CONFIG_TUN=y
 | 
				
			||||||
 | 
					# CONFIG_TUN_VNET_CROSS_LE is not set
 | 
				
			||||||
CONFIG_VETH=m
 | 
					CONFIG_VETH=m
 | 
				
			||||||
CONFIG_VIRTIO_NET=y
 | 
					CONFIG_VIRTIO_NET=y
 | 
				
			||||||
CONFIG_NLMON=m
 | 
					CONFIG_NLMON=m
 | 
				
			||||||
| 
						 | 
					@ -2485,6 +2510,7 @@ CONFIG_VHOST_NET=m
 | 
				
			||||||
CONFIG_VHOST_SCSI=m
 | 
					CONFIG_VHOST_SCSI=m
 | 
				
			||||||
CONFIG_VHOST_RING=m
 | 
					CONFIG_VHOST_RING=m
 | 
				
			||||||
CONFIG_VHOST=m
 | 
					CONFIG_VHOST=m
 | 
				
			||||||
 | 
					# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Distributed Switch Architecture drivers
 | 
					# Distributed Switch Architecture drivers
 | 
				
			||||||
| 
						 | 
					@ -2536,6 +2562,7 @@ CONFIG_BNX2X=m
 | 
				
			||||||
CONFIG_BNX2X_SRIOV=y
 | 
					CONFIG_BNX2X_SRIOV=y
 | 
				
			||||||
CONFIG_NET_VENDOR_BROCADE=y
 | 
					CONFIG_NET_VENDOR_BROCADE=y
 | 
				
			||||||
CONFIG_BNA=m
 | 
					CONFIG_BNA=m
 | 
				
			||||||
 | 
					CONFIG_NET_VENDOR_CAVIUM=m
 | 
				
			||||||
CONFIG_NET_VENDOR_CHELSIO=y
 | 
					CONFIG_NET_VENDOR_CHELSIO=y
 | 
				
			||||||
CONFIG_CHELSIO_T1=m
 | 
					CONFIG_CHELSIO_T1=m
 | 
				
			||||||
CONFIG_CHELSIO_T1_1G=y
 | 
					CONFIG_CHELSIO_T1_1G=y
 | 
				
			||||||
| 
						 | 
					@ -2570,7 +2597,9 @@ CONFIG_SUNDANCE=m
 | 
				
			||||||
# CONFIG_SUNDANCE_MMIO is not set
 | 
					# CONFIG_SUNDANCE_MMIO is not set
 | 
				
			||||||
CONFIG_NET_VENDOR_EMULEX=y
 | 
					CONFIG_NET_VENDOR_EMULEX=y
 | 
				
			||||||
CONFIG_BE2NET=m
 | 
					CONFIG_BE2NET=m
 | 
				
			||||||
 | 
					CONFIG_BE2NET_HWMON=y
 | 
				
			||||||
CONFIG_BE2NET_VXLAN=y
 | 
					CONFIG_BE2NET_VXLAN=y
 | 
				
			||||||
 | 
					CONFIG_NET_VENDOR_EZCHIP=y
 | 
				
			||||||
CONFIG_NET_VENDOR_EXAR=y
 | 
					CONFIG_NET_VENDOR_EXAR=y
 | 
				
			||||||
CONFIG_S2IO=m
 | 
					CONFIG_S2IO=m
 | 
				
			||||||
CONFIG_VXGE=m
 | 
					CONFIG_VXGE=m
 | 
				
			||||||
| 
						 | 
					@ -2618,6 +2647,7 @@ CONFIG_MLX4_EN_VXLAN=y
 | 
				
			||||||
CONFIG_MLX4_CORE=m
 | 
					CONFIG_MLX4_CORE=m
 | 
				
			||||||
CONFIG_MLX4_DEBUG=y
 | 
					CONFIG_MLX4_DEBUG=y
 | 
				
			||||||
CONFIG_MLX5_CORE=m
 | 
					CONFIG_MLX5_CORE=m
 | 
				
			||||||
 | 
					CONFIG_MLX5_CORE_EN=y
 | 
				
			||||||
CONFIG_NET_VENDOR_MICREL=y
 | 
					CONFIG_NET_VENDOR_MICREL=y
 | 
				
			||||||
CONFIG_KS8842=m
 | 
					CONFIG_KS8842=m
 | 
				
			||||||
CONFIG_KS8851=m
 | 
					CONFIG_KS8851=m
 | 
				
			||||||
| 
						 | 
					@ -2667,6 +2697,7 @@ CONFIG_8139TOO_PIO=y
 | 
				
			||||||
CONFIG_8139TOO_8129=y
 | 
					CONFIG_8139TOO_8129=y
 | 
				
			||||||
# CONFIG_8139_OLD_RX_RESET is not set
 | 
					# CONFIG_8139_OLD_RX_RESET is not set
 | 
				
			||||||
CONFIG_R8169=m
 | 
					CONFIG_R8169=m
 | 
				
			||||||
 | 
					CONFIG_NET_VENDOR_RENESAS=y
 | 
				
			||||||
CONFIG_NET_VENDOR_RDC=y
 | 
					CONFIG_NET_VENDOR_RDC=y
 | 
				
			||||||
CONFIG_R6040=m
 | 
					CONFIG_R6040=m
 | 
				
			||||||
CONFIG_NET_VENDOR_ROCKER=y
 | 
					CONFIG_NET_VENDOR_ROCKER=y
 | 
				
			||||||
| 
						 | 
					@ -2682,6 +2713,7 @@ CONFIG_SFC=m
 | 
				
			||||||
CONFIG_SFC_MTD=y
 | 
					CONFIG_SFC_MTD=y
 | 
				
			||||||
CONFIG_SFC_MCDI_MON=y
 | 
					CONFIG_SFC_MCDI_MON=y
 | 
				
			||||||
CONFIG_SFC_SRIOV=y
 | 
					CONFIG_SFC_SRIOV=y
 | 
				
			||||||
 | 
					CONFIG_SFC_MCDI_LOGGING=y
 | 
				
			||||||
CONFIG_NET_VENDOR_SMSC=y
 | 
					CONFIG_NET_VENDOR_SMSC=y
 | 
				
			||||||
CONFIG_SMC9194=m
 | 
					CONFIG_SMC9194=m
 | 
				
			||||||
CONFIG_PCMCIA_SMC91C92=m
 | 
					CONFIG_PCMCIA_SMC91C92=m
 | 
				
			||||||
| 
						 | 
					@ -2692,6 +2724,7 @@ CONFIG_SMSC9420=m
 | 
				
			||||||
CONFIG_NET_VENDOR_STMICRO=y
 | 
					CONFIG_NET_VENDOR_STMICRO=y
 | 
				
			||||||
CONFIG_STMMAC_ETH=m
 | 
					CONFIG_STMMAC_ETH=m
 | 
				
			||||||
CONFIG_STMMAC_PLATFORM=m
 | 
					CONFIG_STMMAC_PLATFORM=m
 | 
				
			||||||
 | 
					CONFIG_DWMAC_GENERIC=m
 | 
				
			||||||
# CONFIG_STMMAC_PCI is not set
 | 
					# CONFIG_STMMAC_PCI is not set
 | 
				
			||||||
CONFIG_NET_VENDOR_SUN=y
 | 
					CONFIG_NET_VENDOR_SUN=y
 | 
				
			||||||
CONFIG_HAPPYMEAL=m
 | 
					CONFIG_HAPPYMEAL=m
 | 
				
			||||||
| 
						 | 
					@ -2744,6 +2777,7 @@ CONFIG_NATIONAL_PHY=m
 | 
				
			||||||
CONFIG_STE10XP=m
 | 
					CONFIG_STE10XP=m
 | 
				
			||||||
CONFIG_LSI_ET1011C_PHY=m
 | 
					CONFIG_LSI_ET1011C_PHY=m
 | 
				
			||||||
CONFIG_MICREL_PHY=m
 | 
					CONFIG_MICREL_PHY=m
 | 
				
			||||||
 | 
					CONFIG_DP83867_PHY=m
 | 
				
			||||||
CONFIG_FIXED_PHY=y
 | 
					CONFIG_FIXED_PHY=y
 | 
				
			||||||
CONFIG_MDIO_BITBANG=m
 | 
					CONFIG_MDIO_BITBANG=m
 | 
				
			||||||
CONFIG_MDIO_GPIO=m
 | 
					CONFIG_MDIO_GPIO=m
 | 
				
			||||||
| 
						 | 
					@ -3003,6 +3037,8 @@ CONFIG_RT2X00_LIB_CRYPTO=y
 | 
				
			||||||
CONFIG_RT2X00_LIB_LEDS=y
 | 
					CONFIG_RT2X00_LIB_LEDS=y
 | 
				
			||||||
# CONFIG_RT2X00_LIB_DEBUGFS is not set
 | 
					# CONFIG_RT2X00_LIB_DEBUGFS is not set
 | 
				
			||||||
# CONFIG_RT2X00_DEBUG is not set
 | 
					# CONFIG_RT2X00_DEBUG is not set
 | 
				
			||||||
 | 
					CONFIG_WL_MEDIATEK=y
 | 
				
			||||||
 | 
					CONFIG_MT7601U=m
 | 
				
			||||||
CONFIG_RTL_CARDS=m
 | 
					CONFIG_RTL_CARDS=m
 | 
				
			||||||
CONFIG_RTL8192CE=m
 | 
					CONFIG_RTL8192CE=m
 | 
				
			||||||
CONFIG_RTL8192SE=m
 | 
					CONFIG_RTL8192SE=m
 | 
				
			||||||
| 
						 | 
					@ -3083,6 +3119,7 @@ CONFIG_IEEE802154_FAKELB=m
 | 
				
			||||||
CONFIG_IEEE802154_AT86RF230=m
 | 
					CONFIG_IEEE802154_AT86RF230=m
 | 
				
			||||||
CONFIG_IEEE802154_MRF24J40=m
 | 
					CONFIG_IEEE802154_MRF24J40=m
 | 
				
			||||||
CONFIG_IEEE802154_CC2520=m
 | 
					CONFIG_IEEE802154_CC2520=m
 | 
				
			||||||
 | 
					CONFIG_IEEE802154_ATUSB=m
 | 
				
			||||||
CONFIG_XEN_NETDEV_FRONTEND=y
 | 
					CONFIG_XEN_NETDEV_FRONTEND=y
 | 
				
			||||||
CONFIG_XEN_NETDEV_BACKEND=m
 | 
					CONFIG_XEN_NETDEV_BACKEND=m
 | 
				
			||||||
CONFIG_VMXNET3=m
 | 
					CONFIG_VMXNET3=m
 | 
				
			||||||
| 
						 | 
					@ -3239,6 +3276,7 @@ CONFIG_ISDN_HDLC=m
 | 
				
			||||||
# Input device support
 | 
					# Input device support
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_INPUT=y
 | 
					CONFIG_INPUT=y
 | 
				
			||||||
 | 
					CONFIG_INPUT_LEDS=m
 | 
				
			||||||
CONFIG_INPUT_FF_MEMLESS=m
 | 
					CONFIG_INPUT_FF_MEMLESS=m
 | 
				
			||||||
CONFIG_INPUT_POLLDEV=m
 | 
					CONFIG_INPUT_POLLDEV=m
 | 
				
			||||||
CONFIG_INPUT_SPARSEKMAP=m
 | 
					CONFIG_INPUT_SPARSEKMAP=m
 | 
				
			||||||
| 
						 | 
					@ -3394,6 +3432,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
 | 
				
			||||||
CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
 | 
					CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
 | 
				
			||||||
CONFIG_TOUCHSCREEN_UCB1400=m
 | 
					CONFIG_TOUCHSCREEN_UCB1400=m
 | 
				
			||||||
CONFIG_TOUCHSCREEN_PIXCIR=m
 | 
					CONFIG_TOUCHSCREEN_PIXCIR=m
 | 
				
			||||||
 | 
					CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
 | 
				
			||||||
CONFIG_TOUCHSCREEN_WM831X=m
 | 
					CONFIG_TOUCHSCREEN_WM831X=m
 | 
				
			||||||
CONFIG_TOUCHSCREEN_WM97XX=m
 | 
					CONFIG_TOUCHSCREEN_WM97XX=m
 | 
				
			||||||
CONFIG_TOUCHSCREEN_WM9705=y
 | 
					CONFIG_TOUCHSCREEN_WM9705=y
 | 
				
			||||||
| 
						 | 
					@ -3474,6 +3513,7 @@ CONFIG_INPUT_PWM_BEEPER=m
 | 
				
			||||||
CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
 | 
					CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
 | 
				
			||||||
CONFIG_INPUT_DA9052_ONKEY=m
 | 
					CONFIG_INPUT_DA9052_ONKEY=m
 | 
				
			||||||
CONFIG_INPUT_DA9055_ONKEY=m
 | 
					CONFIG_INPUT_DA9055_ONKEY=m
 | 
				
			||||||
 | 
					CONFIG_INPUT_DA9063_ONKEY=m
 | 
				
			||||||
CONFIG_INPUT_WM831X_ON=m
 | 
					CONFIG_INPUT_WM831X_ON=m
 | 
				
			||||||
CONFIG_INPUT_PCAP=m
 | 
					CONFIG_INPUT_PCAP=m
 | 
				
			||||||
CONFIG_INPUT_ADXL34X=m
 | 
					CONFIG_INPUT_ADXL34X=m
 | 
				
			||||||
| 
						 | 
					@ -3486,6 +3526,7 @@ CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
 | 
				
			||||||
CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
 | 
					CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
 | 
				
			||||||
CONFIG_INPUT_SOC_BUTTON_ARRAY=m
 | 
					CONFIG_INPUT_SOC_BUTTON_ARRAY=m
 | 
				
			||||||
CONFIG_INPUT_DRV260X_HAPTICS=m
 | 
					CONFIG_INPUT_DRV260X_HAPTICS=m
 | 
				
			||||||
 | 
					CONFIG_INPUT_DRV2665_HAPTICS=m
 | 
				
			||||||
CONFIG_INPUT_DRV2667_HAPTICS=m
 | 
					CONFIG_INPUT_DRV2667_HAPTICS=m
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -3581,7 +3622,10 @@ CONFIG_CONSOLE_POLL=y
 | 
				
			||||||
CONFIG_SERIAL_JSM=m
 | 
					CONFIG_SERIAL_JSM=m
 | 
				
			||||||
CONFIG_SERIAL_SCCNXP=y
 | 
					CONFIG_SERIAL_SCCNXP=y
 | 
				
			||||||
CONFIG_SERIAL_SCCNXP_CONSOLE=y
 | 
					CONFIG_SERIAL_SCCNXP_CONSOLE=y
 | 
				
			||||||
 | 
					CONFIG_SERIAL_SC16IS7XX_CORE=m
 | 
				
			||||||
CONFIG_SERIAL_SC16IS7XX=m
 | 
					CONFIG_SERIAL_SC16IS7XX=m
 | 
				
			||||||
 | 
					CONFIG_SERIAL_SC16IS7XX_I2C=y
 | 
				
			||||||
 | 
					CONFIG_SERIAL_SC16IS7XX_SPI=y
 | 
				
			||||||
CONFIG_SERIAL_TIMBERDALE=m
 | 
					CONFIG_SERIAL_TIMBERDALE=m
 | 
				
			||||||
CONFIG_SERIAL_ALTERA_JTAGUART=m
 | 
					CONFIG_SERIAL_ALTERA_JTAGUART=m
 | 
				
			||||||
CONFIG_SERIAL_ALTERA_UART=m
 | 
					CONFIG_SERIAL_ALTERA_UART=m
 | 
				
			||||||
| 
						 | 
					@ -3774,6 +3818,7 @@ CONFIG_SPI_SC18IS602=m
 | 
				
			||||||
CONFIG_SPI_TOPCLIFF_PCH=m
 | 
					CONFIG_SPI_TOPCLIFF_PCH=m
 | 
				
			||||||
CONFIG_SPI_XCOMM=m
 | 
					CONFIG_SPI_XCOMM=m
 | 
				
			||||||
# CONFIG_SPI_XILINX is not set
 | 
					# CONFIG_SPI_XILINX is not set
 | 
				
			||||||
 | 
					CONFIG_SPI_ZYNQMP_GQSPI=m
 | 
				
			||||||
CONFIG_SPI_DESIGNWARE=m
 | 
					CONFIG_SPI_DESIGNWARE=m
 | 
				
			||||||
CONFIG_SPI_DW_PCI=m
 | 
					CONFIG_SPI_DW_PCI=m
 | 
				
			||||||
CONFIG_SPI_DW_MID_DMA=y
 | 
					CONFIG_SPI_DW_MID_DMA=y
 | 
				
			||||||
| 
						 | 
					@ -3969,6 +4014,7 @@ CONFIG_BATTERY_BQ27X00_PLATFORM=y
 | 
				
			||||||
CONFIG_BATTERY_DA9030=m
 | 
					CONFIG_BATTERY_DA9030=m
 | 
				
			||||||
CONFIG_BATTERY_DA9052=m
 | 
					CONFIG_BATTERY_DA9052=m
 | 
				
			||||||
CONFIG_CHARGER_DA9150=m
 | 
					CONFIG_CHARGER_DA9150=m
 | 
				
			||||||
 | 
					CONFIG_AXP288_CHARGER=m
 | 
				
			||||||
CONFIG_AXP288_FUEL_GAUGE=m
 | 
					CONFIG_AXP288_FUEL_GAUGE=m
 | 
				
			||||||
CONFIG_BATTERY_MAX17040=m
 | 
					CONFIG_BATTERY_MAX17040=m
 | 
				
			||||||
CONFIG_BATTERY_MAX17042=m
 | 
					CONFIG_BATTERY_MAX17042=m
 | 
				
			||||||
| 
						 | 
					@ -3990,11 +4036,14 @@ CONFIG_CHARGER_MAX8997=m
 | 
				
			||||||
CONFIG_CHARGER_MAX8998=m
 | 
					CONFIG_CHARGER_MAX8998=m
 | 
				
			||||||
CONFIG_CHARGER_BQ2415X=m
 | 
					CONFIG_CHARGER_BQ2415X=m
 | 
				
			||||||
CONFIG_CHARGER_BQ24190=m
 | 
					CONFIG_CHARGER_BQ24190=m
 | 
				
			||||||
 | 
					CONFIG_CHARGER_BQ24257=m
 | 
				
			||||||
CONFIG_CHARGER_BQ24735=m
 | 
					CONFIG_CHARGER_BQ24735=m
 | 
				
			||||||
 | 
					CONFIG_CHARGER_BQ25890=m
 | 
				
			||||||
CONFIG_CHARGER_SMB347=m
 | 
					CONFIG_CHARGER_SMB347=m
 | 
				
			||||||
CONFIG_CHARGER_TPS65090=m
 | 
					CONFIG_CHARGER_TPS65090=m
 | 
				
			||||||
CONFIG_BATTERY_GAUGE_LTC2941=m
 | 
					CONFIG_BATTERY_GAUGE_LTC2941=m
 | 
				
			||||||
CONFIG_BATTERY_RT5033=m
 | 
					CONFIG_BATTERY_RT5033=m
 | 
				
			||||||
 | 
					CONFIG_CHARGER_RT9455=m
 | 
				
			||||||
CONFIG_POWER_RESET=y
 | 
					CONFIG_POWER_RESET=y
 | 
				
			||||||
CONFIG_POWER_RESET_RESTART=y
 | 
					CONFIG_POWER_RESET_RESTART=y
 | 
				
			||||||
CONFIG_POWER_AVS=y
 | 
					CONFIG_POWER_AVS=y
 | 
				
			||||||
| 
						 | 
					@ -4032,6 +4081,7 @@ CONFIG_SENSORS_ASB100=m
 | 
				
			||||||
CONFIG_SENSORS_ATXP1=m
 | 
					CONFIG_SENSORS_ATXP1=m
 | 
				
			||||||
CONFIG_SENSORS_DS620=m
 | 
					CONFIG_SENSORS_DS620=m
 | 
				
			||||||
CONFIG_SENSORS_DS1621=m
 | 
					CONFIG_SENSORS_DS1621=m
 | 
				
			||||||
 | 
					CONFIG_SENSORS_DELL_SMM=m
 | 
				
			||||||
CONFIG_SENSORS_DA9052_ADC=m
 | 
					CONFIG_SENSORS_DA9052_ADC=m
 | 
				
			||||||
CONFIG_SENSORS_DA9055=m
 | 
					CONFIG_SENSORS_DA9055=m
 | 
				
			||||||
CONFIG_SENSORS_I5K_AMB=m
 | 
					CONFIG_SENSORS_I5K_AMB=m
 | 
				
			||||||
| 
						 | 
					@ -4134,6 +4184,7 @@ CONFIG_SENSORS_ADS7871=m
 | 
				
			||||||
CONFIG_SENSORS_AMC6821=m
 | 
					CONFIG_SENSORS_AMC6821=m
 | 
				
			||||||
CONFIG_SENSORS_INA209=m
 | 
					CONFIG_SENSORS_INA209=m
 | 
				
			||||||
CONFIG_SENSORS_INA2XX=m
 | 
					CONFIG_SENSORS_INA2XX=m
 | 
				
			||||||
 | 
					CONFIG_SENSORS_TC74=m
 | 
				
			||||||
CONFIG_SENSORS_THMC50=m
 | 
					CONFIG_SENSORS_THMC50=m
 | 
				
			||||||
CONFIG_SENSORS_TMP102=m
 | 
					CONFIG_SENSORS_TMP102=m
 | 
				
			||||||
CONFIG_SENSORS_TMP103=m
 | 
					CONFIG_SENSORS_TMP103=m
 | 
				
			||||||
| 
						 | 
					@ -4164,16 +4215,20 @@ CONFIG_SENSORS_ACPI_POWER=m
 | 
				
			||||||
CONFIG_SENSORS_ATK0110=m
 | 
					CONFIG_SENSORS_ATK0110=m
 | 
				
			||||||
CONFIG_THERMAL=y
 | 
					CONFIG_THERMAL=y
 | 
				
			||||||
CONFIG_THERMAL_HWMON=y
 | 
					CONFIG_THERMAL_HWMON=y
 | 
				
			||||||
 | 
					CONFIG_THERMAL_WRITABLE_TRIPS=y
 | 
				
			||||||
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
 | 
					CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
 | 
				
			||||||
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
 | 
					# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
 | 
				
			||||||
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
 | 
					# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
 | 
				
			||||||
 | 
					# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set
 | 
				
			||||||
CONFIG_THERMAL_GOV_FAIR_SHARE=y
 | 
					CONFIG_THERMAL_GOV_FAIR_SHARE=y
 | 
				
			||||||
CONFIG_THERMAL_GOV_STEP_WISE=y
 | 
					CONFIG_THERMAL_GOV_STEP_WISE=y
 | 
				
			||||||
CONFIG_THERMAL_GOV_BANG_BANG=y
 | 
					CONFIG_THERMAL_GOV_BANG_BANG=y
 | 
				
			||||||
CONFIG_THERMAL_GOV_USER_SPACE=y
 | 
					CONFIG_THERMAL_GOV_USER_SPACE=y
 | 
				
			||||||
 | 
					CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
 | 
				
			||||||
CONFIG_THERMAL_EMULATION=y
 | 
					CONFIG_THERMAL_EMULATION=y
 | 
				
			||||||
CONFIG_INTEL_POWERCLAMP=m
 | 
					CONFIG_INTEL_POWERCLAMP=m
 | 
				
			||||||
CONFIG_X86_PKG_TEMP_THERMAL=m
 | 
					CONFIG_X86_PKG_TEMP_THERMAL=m
 | 
				
			||||||
 | 
					CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
 | 
				
			||||||
CONFIG_INTEL_SOC_DTS_THERMAL=m
 | 
					CONFIG_INTEL_SOC_DTS_THERMAL=m
 | 
				
			||||||
CONFIG_INT340X_THERMAL=m
 | 
					CONFIG_INT340X_THERMAL=m
 | 
				
			||||||
CONFIG_ACPI_THERMAL_REL=m
 | 
					CONFIG_ACPI_THERMAL_REL=m
 | 
				
			||||||
| 
						 | 
					@ -4200,6 +4255,7 @@ CONFIG_CADENCE_WATCHDOG=m
 | 
				
			||||||
CONFIG_DW_WATCHDOG=m
 | 
					CONFIG_DW_WATCHDOG=m
 | 
				
			||||||
CONFIG_RN5T618_WATCHDOG=m
 | 
					CONFIG_RN5T618_WATCHDOG=m
 | 
				
			||||||
CONFIG_TWL4030_WATCHDOG=m
 | 
					CONFIG_TWL4030_WATCHDOG=m
 | 
				
			||||||
 | 
					CONFIG_MAX63XX_WATCHDOG=m
 | 
				
			||||||
CONFIG_RETU_WATCHDOG=m
 | 
					CONFIG_RETU_WATCHDOG=m
 | 
				
			||||||
CONFIG_ACQUIRE_WDT=m
 | 
					CONFIG_ACQUIRE_WDT=m
 | 
				
			||||||
CONFIG_ADVANTECH_WDT=m
 | 
					CONFIG_ADVANTECH_WDT=m
 | 
				
			||||||
| 
						 | 
					@ -4306,6 +4362,7 @@ CONFIG_MFD_BCM590XX=m
 | 
				
			||||||
CONFIG_MFD_AXP20X=y
 | 
					CONFIG_MFD_AXP20X=y
 | 
				
			||||||
CONFIG_MFD_CROS_EC=m
 | 
					CONFIG_MFD_CROS_EC=m
 | 
				
			||||||
CONFIG_MFD_CROS_EC_I2C=m
 | 
					CONFIG_MFD_CROS_EC_I2C=m
 | 
				
			||||||
 | 
					CONFIG_MFD_CROS_EC_SPI=m
 | 
				
			||||||
CONFIG_PMIC_DA903X=y
 | 
					CONFIG_PMIC_DA903X=y
 | 
				
			||||||
CONFIG_PMIC_DA9052=y
 | 
					CONFIG_PMIC_DA9052=y
 | 
				
			||||||
CONFIG_MFD_DA9052_SPI=y
 | 
					CONFIG_MFD_DA9052_SPI=y
 | 
				
			||||||
| 
						 | 
					@ -4451,6 +4508,7 @@ CONFIG_REGULATOR_PCAP=m
 | 
				
			||||||
CONFIG_REGULATOR_PCF50633=m
 | 
					CONFIG_REGULATOR_PCF50633=m
 | 
				
			||||||
CONFIG_REGULATOR_PFUZE100=m
 | 
					CONFIG_REGULATOR_PFUZE100=m
 | 
				
			||||||
CONFIG_REGULATOR_PWM=m
 | 
					CONFIG_REGULATOR_PWM=m
 | 
				
			||||||
 | 
					CONFIG_REGULATOR_QCOM_SPMI=m
 | 
				
			||||||
CONFIG_REGULATOR_RC5T583=m
 | 
					CONFIG_REGULATOR_RC5T583=m
 | 
				
			||||||
CONFIG_REGULATOR_RN5T618=m
 | 
					CONFIG_REGULATOR_RN5T618=m
 | 
				
			||||||
CONFIG_REGULATOR_RT5033=m
 | 
					CONFIG_REGULATOR_RT5033=m
 | 
				
			||||||
| 
						 | 
					@ -4494,6 +4552,7 @@ CONFIG_VIDEO_V4L2=m
 | 
				
			||||||
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
 | 
					# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
 | 
				
			||||||
CONFIG_VIDEO_TUNER=m
 | 
					CONFIG_VIDEO_TUNER=m
 | 
				
			||||||
CONFIG_V4L2_MEM2MEM_DEV=m
 | 
					CONFIG_V4L2_MEM2MEM_DEV=m
 | 
				
			||||||
 | 
					CONFIG_V4L2_FLASH_LED_CLASS=m
 | 
				
			||||||
CONFIG_VIDEOBUF_GEN=m
 | 
					CONFIG_VIDEOBUF_GEN=m
 | 
				
			||||||
CONFIG_VIDEOBUF_DMA_SG=m
 | 
					CONFIG_VIDEOBUF_DMA_SG=m
 | 
				
			||||||
CONFIG_VIDEOBUF_VMALLOC=m
 | 
					CONFIG_VIDEOBUF_VMALLOC=m
 | 
				
			||||||
| 
						 | 
					@ -4733,6 +4792,7 @@ CONFIG_VIDEO_HEXIUM_ORION=m
 | 
				
			||||||
CONFIG_VIDEO_MXB=m
 | 
					CONFIG_VIDEO_MXB=m
 | 
				
			||||||
CONFIG_VIDEO_SOLO6X10=m
 | 
					CONFIG_VIDEO_SOLO6X10=m
 | 
				
			||||||
CONFIG_VIDEO_TW68=m
 | 
					CONFIG_VIDEO_TW68=m
 | 
				
			||||||
 | 
					CONFIG_VIDEO_DT3155=m
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Media capture/analog/hybrid TV support
 | 
					# Media capture/analog/hybrid TV support
 | 
				
			||||||
| 
						 | 
					@ -4758,6 +4818,7 @@ CONFIG_VIDEO_SAA7134_RC=y
 | 
				
			||||||
CONFIG_VIDEO_SAA7134_DVB=m
 | 
					CONFIG_VIDEO_SAA7134_DVB=m
 | 
				
			||||||
CONFIG_VIDEO_SAA7134_GO7007=m
 | 
					CONFIG_VIDEO_SAA7134_GO7007=m
 | 
				
			||||||
CONFIG_VIDEO_SAA7164=m
 | 
					CONFIG_VIDEO_SAA7164=m
 | 
				
			||||||
 | 
					CONFIG_VIDEO_COBALT=m
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Media digital TV PCI Adapters
 | 
					# Media digital TV PCI Adapters
 | 
				
			||||||
| 
						 | 
					@ -4895,6 +4956,8 @@ CONFIG_VIDEO_SAA6588=m
 | 
				
			||||||
# Video decoders
 | 
					# Video decoders
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_VIDEO_ADV7180=m
 | 
					CONFIG_VIDEO_ADV7180=m
 | 
				
			||||||
 | 
					CONFIG_VIDEO_ADV7604=m
 | 
				
			||||||
 | 
					CONFIG_VIDEO_ADV7842=m
 | 
				
			||||||
CONFIG_VIDEO_BT819=m
 | 
					CONFIG_VIDEO_BT819=m
 | 
				
			||||||
CONFIG_VIDEO_BT856=m
 | 
					CONFIG_VIDEO_BT856=m
 | 
				
			||||||
CONFIG_VIDEO_BT866=m
 | 
					CONFIG_VIDEO_BT866=m
 | 
				
			||||||
| 
						 | 
					@ -4920,6 +4983,7 @@ CONFIG_VIDEO_SAA7127=m
 | 
				
			||||||
CONFIG_VIDEO_SAA7185=m
 | 
					CONFIG_VIDEO_SAA7185=m
 | 
				
			||||||
CONFIG_VIDEO_ADV7170=m
 | 
					CONFIG_VIDEO_ADV7170=m
 | 
				
			||||||
CONFIG_VIDEO_ADV7175=m
 | 
					CONFIG_VIDEO_ADV7175=m
 | 
				
			||||||
 | 
					CONFIG_VIDEO_ADV7511=m
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Camera sensor devices
 | 
					# Camera sensor devices
 | 
				
			||||||
| 
						 | 
					@ -5046,6 +5110,7 @@ CONFIG_DVB_TDA826X=m
 | 
				
			||||||
CONFIG_DVB_TUA6100=m
 | 
					CONFIG_DVB_TUA6100=m
 | 
				
			||||||
CONFIG_DVB_CX24116=m
 | 
					CONFIG_DVB_CX24116=m
 | 
				
			||||||
CONFIG_DVB_CX24117=m
 | 
					CONFIG_DVB_CX24117=m
 | 
				
			||||||
 | 
					CONFIG_DVB_CX24120=m
 | 
				
			||||||
CONFIG_DVB_SI21XX=m
 | 
					CONFIG_DVB_SI21XX=m
 | 
				
			||||||
CONFIG_DVB_TS2020=m
 | 
					CONFIG_DVB_TS2020=m
 | 
				
			||||||
CONFIG_DVB_DS3000=m
 | 
					CONFIG_DVB_DS3000=m
 | 
				
			||||||
| 
						 | 
					@ -5188,6 +5253,9 @@ CONFIG_DRM_R128=m
 | 
				
			||||||
CONFIG_DRM_RADEON=m
 | 
					CONFIG_DRM_RADEON=m
 | 
				
			||||||
# CONFIG_DRM_RADEON_USERPTR is not set
 | 
					# CONFIG_DRM_RADEON_USERPTR is not set
 | 
				
			||||||
# CONFIG_DRM_RADEON_UMS is not set
 | 
					# CONFIG_DRM_RADEON_UMS is not set
 | 
				
			||||||
 | 
					CONFIG_DRM_AMDGPU=m
 | 
				
			||||||
 | 
					CONFIG_DRM_AMDGPU_CIK=y
 | 
				
			||||||
 | 
					CONFIG_DRM_AMDGPU_USERPTR=y
 | 
				
			||||||
CONFIG_DRM_NOUVEAU=m
 | 
					CONFIG_DRM_NOUVEAU=m
 | 
				
			||||||
CONFIG_NOUVEAU_DEBUG=5
 | 
					CONFIG_NOUVEAU_DEBUG=5
 | 
				
			||||||
CONFIG_NOUVEAU_DEBUG_DEFAULT=3
 | 
					CONFIG_NOUVEAU_DEBUG_DEFAULT=3
 | 
				
			||||||
| 
						 | 
					@ -5196,7 +5264,7 @@ CONFIG_DRM_I810=m
 | 
				
			||||||
CONFIG_DRM_I915=m
 | 
					CONFIG_DRM_I915=m
 | 
				
			||||||
CONFIG_DRM_I915_KMS=y
 | 
					CONFIG_DRM_I915_KMS=y
 | 
				
			||||||
CONFIG_DRM_I915_FBDEV=y
 | 
					CONFIG_DRM_I915_FBDEV=y
 | 
				
			||||||
CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT=y
 | 
					# CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set
 | 
				
			||||||
CONFIG_DRM_MGA=m
 | 
					CONFIG_DRM_MGA=m
 | 
				
			||||||
CONFIG_DRM_SIS=m
 | 
					CONFIG_DRM_SIS=m
 | 
				
			||||||
CONFIG_DRM_VIA=m
 | 
					CONFIG_DRM_VIA=m
 | 
				
			||||||
| 
						 | 
					@ -5214,6 +5282,7 @@ CONFIG_DRM_AST=m
 | 
				
			||||||
CONFIG_DRM_CIRRUS_QEMU=m
 | 
					CONFIG_DRM_CIRRUS_QEMU=m
 | 
				
			||||||
CONFIG_DRM_QXL=m
 | 
					CONFIG_DRM_QXL=m
 | 
				
			||||||
# CONFIG_DRM_BOCHS is not set
 | 
					# CONFIG_DRM_BOCHS is not set
 | 
				
			||||||
 | 
					CONFIG_DRM_VIRTIO_GPU=m
 | 
				
			||||||
CONFIG_DRM_PANEL=y
 | 
					CONFIG_DRM_PANEL=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -5422,11 +5491,11 @@ CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
 | 
				
			||||||
CONFIG_SND_DYNAMIC_MINORS=y
 | 
					CONFIG_SND_DYNAMIC_MINORS=y
 | 
				
			||||||
CONFIG_SND_MAX_CARDS=32
 | 
					CONFIG_SND_MAX_CARDS=32
 | 
				
			||||||
CONFIG_SND_SUPPORT_OLD_API=y
 | 
					CONFIG_SND_SUPPORT_OLD_API=y
 | 
				
			||||||
 | 
					CONFIG_SND_PROC_FS=y
 | 
				
			||||||
CONFIG_SND_VERBOSE_PROCFS=y
 | 
					CONFIG_SND_VERBOSE_PROCFS=y
 | 
				
			||||||
# CONFIG_SND_VERBOSE_PRINTK is not set
 | 
					# CONFIG_SND_VERBOSE_PRINTK is not set
 | 
				
			||||||
# CONFIG_SND_DEBUG is not set
 | 
					# CONFIG_SND_DEBUG is not set
 | 
				
			||||||
CONFIG_SND_VMASTER=y
 | 
					CONFIG_SND_VMASTER=y
 | 
				
			||||||
CONFIG_SND_KCTL_JACK=y
 | 
					 | 
				
			||||||
CONFIG_SND_DMA_SGBUF=y
 | 
					CONFIG_SND_DMA_SGBUF=y
 | 
				
			||||||
CONFIG_SND_RAWMIDI_SEQ=m
 | 
					CONFIG_SND_RAWMIDI_SEQ=m
 | 
				
			||||||
CONFIG_SND_OPL3_LIB_SEQ=m
 | 
					CONFIG_SND_OPL3_LIB_SEQ=m
 | 
				
			||||||
| 
						 | 
					@ -5569,20 +5638,16 @@ CONFIG_SND_YMFPCI=m
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_SND_HDA=m
 | 
					CONFIG_SND_HDA=m
 | 
				
			||||||
CONFIG_SND_HDA_INTEL=m
 | 
					CONFIG_SND_HDA_INTEL=m
 | 
				
			||||||
CONFIG_SND_HDA_DSP_LOADER=y
 | 
					 | 
				
			||||||
CONFIG_SND_HDA_PREALLOC_SIZE=64
 | 
					 | 
				
			||||||
CONFIG_SND_HDA_HWDEP=y
 | 
					CONFIG_SND_HDA_HWDEP=y
 | 
				
			||||||
CONFIG_SND_HDA_RECONFIG=y
 | 
					CONFIG_SND_HDA_RECONFIG=y
 | 
				
			||||||
CONFIG_SND_HDA_INPUT_BEEP=y
 | 
					CONFIG_SND_HDA_INPUT_BEEP=y
 | 
				
			||||||
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
 | 
					CONFIG_SND_HDA_INPUT_BEEP_MODE=0
 | 
				
			||||||
CONFIG_SND_HDA_INPUT_JACK=y
 | 
					 | 
				
			||||||
CONFIG_SND_HDA_PATCH_LOADER=y
 | 
					CONFIG_SND_HDA_PATCH_LOADER=y
 | 
				
			||||||
CONFIG_SND_HDA_CODEC_REALTEK=m
 | 
					CONFIG_SND_HDA_CODEC_REALTEK=m
 | 
				
			||||||
CONFIG_SND_HDA_CODEC_ANALOG=m
 | 
					CONFIG_SND_HDA_CODEC_ANALOG=m
 | 
				
			||||||
CONFIG_SND_HDA_CODEC_SIGMATEL=m
 | 
					CONFIG_SND_HDA_CODEC_SIGMATEL=m
 | 
				
			||||||
CONFIG_SND_HDA_CODEC_VIA=m
 | 
					CONFIG_SND_HDA_CODEC_VIA=m
 | 
				
			||||||
CONFIG_SND_HDA_CODEC_HDMI=m
 | 
					CONFIG_SND_HDA_CODEC_HDMI=m
 | 
				
			||||||
CONFIG_SND_HDA_I915=y
 | 
					 | 
				
			||||||
CONFIG_SND_HDA_CODEC_CIRRUS=m
 | 
					CONFIG_SND_HDA_CODEC_CIRRUS=m
 | 
				
			||||||
CONFIG_SND_HDA_CODEC_CONEXANT=m
 | 
					CONFIG_SND_HDA_CODEC_CONEXANT=m
 | 
				
			||||||
CONFIG_SND_HDA_CODEC_CA0110=m
 | 
					CONFIG_SND_HDA_CODEC_CA0110=m
 | 
				
			||||||
| 
						 | 
					@ -5593,6 +5658,9 @@ CONFIG_SND_HDA_CODEC_SI3054=m
 | 
				
			||||||
CONFIG_SND_HDA_GENERIC=m
 | 
					CONFIG_SND_HDA_GENERIC=m
 | 
				
			||||||
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
 | 
					CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
 | 
				
			||||||
CONFIG_SND_HDA_CORE=m
 | 
					CONFIG_SND_HDA_CORE=m
 | 
				
			||||||
 | 
					CONFIG_SND_HDA_DSP_LOADER=y
 | 
				
			||||||
 | 
					CONFIG_SND_HDA_I915=y
 | 
				
			||||||
 | 
					CONFIG_SND_HDA_PREALLOC_SIZE=64
 | 
				
			||||||
CONFIG_SND_SPI=y
 | 
					CONFIG_SND_SPI=y
 | 
				
			||||||
CONFIG_SND_USB=y
 | 
					CONFIG_SND_USB=y
 | 
				
			||||||
CONFIG_SND_USB_AUDIO=m
 | 
					CONFIG_SND_USB_AUDIO=m
 | 
				
			||||||
| 
						 | 
					@ -5621,6 +5689,7 @@ CONFIG_SND_PCMCIA=y
 | 
				
			||||||
CONFIG_SND_VXPOCKET=m
 | 
					CONFIG_SND_VXPOCKET=m
 | 
				
			||||||
CONFIG_SND_PDAUDIOCF=m
 | 
					CONFIG_SND_PDAUDIOCF=m
 | 
				
			||||||
CONFIG_SND_SOC=m
 | 
					CONFIG_SND_SOC=m
 | 
				
			||||||
 | 
					CONFIG_SND_SOC_AC97_BUS=y
 | 
				
			||||||
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
 | 
					CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
 | 
				
			||||||
CONFIG_SND_ATMEL_SOC=m
 | 
					CONFIG_SND_ATMEL_SOC=m
 | 
				
			||||||
CONFIG_SND_DESIGNWARE_I2S=m
 | 
					CONFIG_SND_DESIGNWARE_I2S=m
 | 
				
			||||||
| 
						 | 
					@ -5654,6 +5723,7 @@ CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
 | 
				
			||||||
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
 | 
					CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
 | 
				
			||||||
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
 | 
					CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
 | 
				
			||||||
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
 | 
					CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
 | 
				
			||||||
 | 
					CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
 | 
				
			||||||
CONFIG_SND_SOC_QCOM=m
 | 
					CONFIG_SND_SOC_QCOM=m
 | 
				
			||||||
CONFIG_SND_SOC_XTFPGA_I2S=m
 | 
					CONFIG_SND_SOC_XTFPGA_I2S=m
 | 
				
			||||||
CONFIG_SND_SOC_I2C_AND_SPI=m
 | 
					CONFIG_SND_SOC_I2C_AND_SPI=m
 | 
				
			||||||
| 
						 | 
					@ -5661,6 +5731,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=m
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# CODEC drivers
 | 
					# CODEC drivers
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					CONFIG_SND_SOC_AC97_CODEC=m
 | 
				
			||||||
CONFIG_SND_SOC_ADAU1701=m
 | 
					CONFIG_SND_SOC_ADAU1701=m
 | 
				
			||||||
CONFIG_SND_SOC_AK4104=m
 | 
					CONFIG_SND_SOC_AK4104=m
 | 
				
			||||||
CONFIG_SND_SOC_AK4554=m
 | 
					CONFIG_SND_SOC_AK4554=m
 | 
				
			||||||
| 
						 | 
					@ -5689,6 +5760,7 @@ CONFIG_SND_SOC_PCM512x=m
 | 
				
			||||||
CONFIG_SND_SOC_PCM512x_I2C=m
 | 
					CONFIG_SND_SOC_PCM512x_I2C=m
 | 
				
			||||||
CONFIG_SND_SOC_PCM512x_SPI=m
 | 
					CONFIG_SND_SOC_PCM512x_SPI=m
 | 
				
			||||||
CONFIG_SND_SOC_RL6231=m
 | 
					CONFIG_SND_SOC_RL6231=m
 | 
				
			||||||
 | 
					CONFIG_SND_SOC_RL6347A=m
 | 
				
			||||||
CONFIG_SND_SOC_RT286=m
 | 
					CONFIG_SND_SOC_RT286=m
 | 
				
			||||||
CONFIG_SND_SOC_RT5631=m
 | 
					CONFIG_SND_SOC_RT5631=m
 | 
				
			||||||
CONFIG_SND_SOC_RT5640=m
 | 
					CONFIG_SND_SOC_RT5640=m
 | 
				
			||||||
| 
						 | 
					@ -5710,6 +5782,7 @@ CONFIG_SND_SOC_STA32X=m
 | 
				
			||||||
CONFIG_SND_SOC_STA350=m
 | 
					CONFIG_SND_SOC_STA350=m
 | 
				
			||||||
CONFIG_SND_SOC_TAS2552=m
 | 
					CONFIG_SND_SOC_TAS2552=m
 | 
				
			||||||
CONFIG_SND_SOC_TAS5086=m
 | 
					CONFIG_SND_SOC_TAS5086=m
 | 
				
			||||||
 | 
					CONFIG_SND_SOC_TAS571X=m
 | 
				
			||||||
CONFIG_SND_SOC_TFA9879=m
 | 
					CONFIG_SND_SOC_TFA9879=m
 | 
				
			||||||
CONFIG_SND_SOC_TLV320AIC23=m
 | 
					CONFIG_SND_SOC_TLV320AIC23=m
 | 
				
			||||||
CONFIG_SND_SOC_TLV320AIC23_I2C=m
 | 
					CONFIG_SND_SOC_TLV320AIC23_I2C=m
 | 
				
			||||||
| 
						 | 
					@ -5870,6 +5943,7 @@ CONFIG_USB_DYNAMIC_MINORS=y
 | 
				
			||||||
# CONFIG_USB_OTG_WHITELIST is not set
 | 
					# CONFIG_USB_OTG_WHITELIST is not set
 | 
				
			||||||
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
 | 
					# CONFIG_USB_OTG_BLACKLIST_HUB is not set
 | 
				
			||||||
# CONFIG_USB_OTG_FSM is not set
 | 
					# CONFIG_USB_OTG_FSM is not set
 | 
				
			||||||
 | 
					CONFIG_USB_ULPI_BUS=m
 | 
				
			||||||
CONFIG_USB_MON=m
 | 
					CONFIG_USB_MON=m
 | 
				
			||||||
CONFIG_USB_WUSB=m
 | 
					CONFIG_USB_WUSB=m
 | 
				
			||||||
CONFIG_USB_WUSB_CBAF=m
 | 
					CONFIG_USB_WUSB_CBAF=m
 | 
				
			||||||
| 
						 | 
					@ -5960,6 +6034,7 @@ CONFIG_USB_MUSB_DUAL_ROLE=y
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_MUSB_PIO_ONLY=y
 | 
					CONFIG_MUSB_PIO_ONLY=y
 | 
				
			||||||
CONFIG_USB_DWC3=m
 | 
					CONFIG_USB_DWC3=m
 | 
				
			||||||
 | 
					CONFIG_USB_DWC3_ULPI=y
 | 
				
			||||||
# CONFIG_USB_DWC3_HOST is not set
 | 
					# CONFIG_USB_DWC3_HOST is not set
 | 
				
			||||||
# CONFIG_USB_DWC3_GADGET is not set
 | 
					# CONFIG_USB_DWC3_GADGET is not set
 | 
				
			||||||
CONFIG_USB_DWC3_DUAL_ROLE=y
 | 
					CONFIG_USB_DWC3_DUAL_ROLE=y
 | 
				
			||||||
| 
						 | 
					@ -5979,7 +6054,6 @@ CONFIG_USB_DWC2_HOST=y
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Gadget/Dual-role mode requires USB Gadget support to be enabled
 | 
					# Gadget/Dual-role mode requires USB Gadget support to be enabled
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_USB_DWC2_PLATFORM=y
 | 
					 | 
				
			||||||
CONFIG_USB_DWC2_PCI=y
 | 
					CONFIG_USB_DWC2_PCI=y
 | 
				
			||||||
# CONFIG_USB_DWC2_DEBUG is not set
 | 
					# CONFIG_USB_DWC2_DEBUG is not set
 | 
				
			||||||
# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
 | 
					# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
 | 
				
			||||||
| 
						 | 
					@ -6243,6 +6317,7 @@ CONFIG_MMC_USDHI6ROL0=m
 | 
				
			||||||
CONFIG_MMC_REALTEK_PCI=m
 | 
					CONFIG_MMC_REALTEK_PCI=m
 | 
				
			||||||
CONFIG_MMC_REALTEK_USB=m
 | 
					CONFIG_MMC_REALTEK_USB=m
 | 
				
			||||||
CONFIG_MMC_TOSHIBA_PCI=m
 | 
					CONFIG_MMC_TOSHIBA_PCI=m
 | 
				
			||||||
 | 
					CONFIG_MMC_MTK=m
 | 
				
			||||||
CONFIG_MEMSTICK=m
 | 
					CONFIG_MEMSTICK=m
 | 
				
			||||||
# CONFIG_MEMSTICK_DEBUG is not set
 | 
					# CONFIG_MEMSTICK_DEBUG is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6278,11 +6353,10 @@ CONFIG_LEDS_PCA9532=m
 | 
				
			||||||
CONFIG_LEDS_PCA9532_GPIO=y
 | 
					CONFIG_LEDS_PCA9532_GPIO=y
 | 
				
			||||||
CONFIG_LEDS_GPIO=m
 | 
					CONFIG_LEDS_GPIO=m
 | 
				
			||||||
CONFIG_LEDS_LP3944=m
 | 
					CONFIG_LEDS_LP3944=m
 | 
				
			||||||
CONFIG_LEDS_LP55XX_COMMON=m
 | 
					# CONFIG_LEDS_LP5521 is not set
 | 
				
			||||||
CONFIG_LEDS_LP5521=m
 | 
					# CONFIG_LEDS_LP5523 is not set
 | 
				
			||||||
CONFIG_LEDS_LP5523=m
 | 
					# CONFIG_LEDS_LP5562 is not set
 | 
				
			||||||
CONFIG_LEDS_LP5562=m
 | 
					# CONFIG_LEDS_LP8501 is not set
 | 
				
			||||||
CONFIG_LEDS_LP8501=m
 | 
					 | 
				
			||||||
CONFIG_LEDS_LP8788=m
 | 
					CONFIG_LEDS_LP8788=m
 | 
				
			||||||
CONFIG_LEDS_LP8860=m
 | 
					CONFIG_LEDS_LP8860=m
 | 
				
			||||||
CONFIG_LEDS_CLEVO_MAIL=m
 | 
					CONFIG_LEDS_CLEVO_MAIL=m
 | 
				
			||||||
| 
						 | 
					@ -6302,6 +6376,7 @@ CONFIG_LEDS_ADP5520=m
 | 
				
			||||||
CONFIG_LEDS_DELL_NETBOOKS=m
 | 
					CONFIG_LEDS_DELL_NETBOOKS=m
 | 
				
			||||||
CONFIG_LEDS_MC13783=m
 | 
					CONFIG_LEDS_MC13783=m
 | 
				
			||||||
CONFIG_LEDS_TCA6507=m
 | 
					CONFIG_LEDS_TCA6507=m
 | 
				
			||||||
 | 
					CONFIG_LEDS_TLC591XX=m
 | 
				
			||||||
CONFIG_LEDS_MAX8997=m
 | 
					CONFIG_LEDS_MAX8997=m
 | 
				
			||||||
CONFIG_LEDS_LM355x=m
 | 
					CONFIG_LEDS_LM355x=m
 | 
				
			||||||
CONFIG_LEDS_OT200=m
 | 
					CONFIG_LEDS_OT200=m
 | 
				
			||||||
| 
						 | 
					@ -6357,6 +6432,8 @@ CONFIG_INFINIBAND_SRP=m
 | 
				
			||||||
CONFIG_INFINIBAND_SRPT=m
 | 
					CONFIG_INFINIBAND_SRPT=m
 | 
				
			||||||
CONFIG_INFINIBAND_ISER=m
 | 
					CONFIG_INFINIBAND_ISER=m
 | 
				
			||||||
CONFIG_INFINIBAND_ISERT=m
 | 
					CONFIG_INFINIBAND_ISERT=m
 | 
				
			||||||
 | 
					CONFIG_EDAC_ATOMIC_SCRUB=y
 | 
				
			||||||
 | 
					CONFIG_EDAC_SUPPORT=y
 | 
				
			||||||
CONFIG_EDAC=y
 | 
					CONFIG_EDAC=y
 | 
				
			||||||
# CONFIG_EDAC_LEGACY_SYSFS is not set
 | 
					# CONFIG_EDAC_LEGACY_SYSFS is not set
 | 
				
			||||||
# CONFIG_EDAC_DEBUG is not set
 | 
					# CONFIG_EDAC_DEBUG is not set
 | 
				
			||||||
| 
						 | 
					@ -6384,8 +6461,9 @@ CONFIG_EDAC_I7300=m
 | 
				
			||||||
CONFIG_RTC_LIB=y
 | 
					CONFIG_RTC_LIB=y
 | 
				
			||||||
CONFIG_RTC_CLASS=y
 | 
					CONFIG_RTC_CLASS=y
 | 
				
			||||||
CONFIG_RTC_HCTOSYS=y
 | 
					CONFIG_RTC_HCTOSYS=y
 | 
				
			||||||
CONFIG_RTC_SYSTOHC=y
 | 
					 | 
				
			||||||
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
 | 
					CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
 | 
				
			||||||
 | 
					CONFIG_RTC_SYSTOHC=y
 | 
				
			||||||
 | 
					CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
 | 
				
			||||||
# CONFIG_RTC_DEBUG is not set
 | 
					# CONFIG_RTC_DEBUG is not set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -6498,7 +6576,7 @@ CONFIG_RTC_DRV_AB3100=m
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_RTC_DRV_PCAP=m
 | 
					CONFIG_RTC_DRV_PCAP=m
 | 
				
			||||||
CONFIG_RTC_DRV_MC13XXX=m
 | 
					CONFIG_RTC_DRV_MC13XXX=m
 | 
				
			||||||
CONFIG_RTC_DRV_XGENE=m
 | 
					CONFIG_RTC_DRV_MT6397=m
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# HID Sensor RTC drivers
 | 
					# HID Sensor RTC drivers
 | 
				
			||||||
| 
						 | 
					@ -6543,6 +6621,7 @@ CONFIG_UIO_AEC=m
 | 
				
			||||||
CONFIG_UIO_SERCOS3=m
 | 
					CONFIG_UIO_SERCOS3=m
 | 
				
			||||||
CONFIG_UIO_PCI_GENERIC=m
 | 
					CONFIG_UIO_PCI_GENERIC=m
 | 
				
			||||||
CONFIG_UIO_NETX=m
 | 
					CONFIG_UIO_NETX=m
 | 
				
			||||||
 | 
					CONFIG_UIO_PRUSS=m
 | 
				
			||||||
CONFIG_UIO_MF624=m
 | 
					CONFIG_UIO_MF624=m
 | 
				
			||||||
CONFIG_VFIO_IOMMU_TYPE1=m
 | 
					CONFIG_VFIO_IOMMU_TYPE1=m
 | 
				
			||||||
CONFIG_VFIO_VIRQFD=m
 | 
					CONFIG_VFIO_VIRQFD=m
 | 
				
			||||||
| 
						 | 
					@ -6728,6 +6807,7 @@ CONFIG_COMEDI_USBDUXSIGMA=m
 | 
				
			||||||
CONFIG_COMEDI_VMK80XX=m
 | 
					CONFIG_COMEDI_VMK80XX=m
 | 
				
			||||||
CONFIG_COMEDI_8254=m
 | 
					CONFIG_COMEDI_8254=m
 | 
				
			||||||
CONFIG_COMEDI_8255=m
 | 
					CONFIG_COMEDI_8255=m
 | 
				
			||||||
 | 
					CONFIG_COMEDI_8255_SA=m
 | 
				
			||||||
CONFIG_COMEDI_KCOMEDILIB=m
 | 
					CONFIG_COMEDI_KCOMEDILIB=m
 | 
				
			||||||
CONFIG_COMEDI_AMPLC_DIO200=m
 | 
					CONFIG_COMEDI_AMPLC_DIO200=m
 | 
				
			||||||
CONFIG_COMEDI_AMPLC_PC236=m
 | 
					CONFIG_COMEDI_AMPLC_PC236=m
 | 
				
			||||||
| 
						 | 
					@ -6883,9 +6963,6 @@ CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
 | 
				
			||||||
CONFIG_STAGING_MEDIA=y
 | 
					CONFIG_STAGING_MEDIA=y
 | 
				
			||||||
CONFIG_I2C_BCM2048=m
 | 
					CONFIG_I2C_BCM2048=m
 | 
				
			||||||
CONFIG_DVB_CXD2099=m
 | 
					CONFIG_DVB_CXD2099=m
 | 
				
			||||||
CONFIG_VIDEO_DT3155=m
 | 
					 | 
				
			||||||
# CONFIG_DT3155_CCIR is not set
 | 
					 | 
				
			||||||
CONFIG_DT3155_STREAMING=y
 | 
					 | 
				
			||||||
CONFIG_DVB_MN88472=m
 | 
					CONFIG_DVB_MN88472=m
 | 
				
			||||||
CONFIG_DVB_MN88473=m
 | 
					CONFIG_DVB_MN88473=m
 | 
				
			||||||
CONFIG_LIRC_STAGING=y
 | 
					CONFIG_LIRC_STAGING=y
 | 
				
			||||||
| 
						 | 
					@ -6932,6 +7009,7 @@ CONFIG_FB_TFT_BD663474=m
 | 
				
			||||||
CONFIG_FB_TFT_HX8340BN=m
 | 
					CONFIG_FB_TFT_HX8340BN=m
 | 
				
			||||||
CONFIG_FB_TFT_HX8347D=m
 | 
					CONFIG_FB_TFT_HX8347D=m
 | 
				
			||||||
CONFIG_FB_TFT_HX8353D=m
 | 
					CONFIG_FB_TFT_HX8353D=m
 | 
				
			||||||
 | 
					CONFIG_FB_TFT_HX8357D=m
 | 
				
			||||||
CONFIG_FB_TFT_ILI9163=m
 | 
					CONFIG_FB_TFT_ILI9163=m
 | 
				
			||||||
CONFIG_FB_TFT_ILI9320=m
 | 
					CONFIG_FB_TFT_ILI9320=m
 | 
				
			||||||
CONFIG_FB_TFT_ILI9325=m
 | 
					CONFIG_FB_TFT_ILI9325=m
 | 
				
			||||||
| 
						 | 
					@ -6955,16 +7033,6 @@ CONFIG_FB_TFT_UPD161704=m
 | 
				
			||||||
CONFIG_FB_TFT_WATTEROTT=m
 | 
					CONFIG_FB_TFT_WATTEROTT=m
 | 
				
			||||||
CONFIG_FB_FLEX=m
 | 
					CONFIG_FB_FLEX=m
 | 
				
			||||||
CONFIG_FB_TFT_FBTFT_DEVICE=m
 | 
					CONFIG_FB_TFT_FBTFT_DEVICE=m
 | 
				
			||||||
CONFIG_I2O=m
 | 
					 | 
				
			||||||
CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
 | 
					 | 
				
			||||||
CONFIG_I2O_EXT_ADAPTEC=y
 | 
					 | 
				
			||||||
CONFIG_I2O_EXT_ADAPTEC_DMA64=y
 | 
					 | 
				
			||||||
CONFIG_I2O_CONFIG=m
 | 
					 | 
				
			||||||
# CONFIG_I2O_CONFIG_OLD_IOCTL is not set
 | 
					 | 
				
			||||||
CONFIG_I2O_BUS=m
 | 
					 | 
				
			||||||
CONFIG_I2O_BLOCK=m
 | 
					 | 
				
			||||||
CONFIG_I2O_SCSI=m
 | 
					 | 
				
			||||||
CONFIG_I2O_PROC=m
 | 
					 | 
				
			||||||
CONFIG_X86_PLATFORM_DEVICES=y
 | 
					CONFIG_X86_PLATFORM_DEVICES=y
 | 
				
			||||||
CONFIG_ACER_WMI=m
 | 
					CONFIG_ACER_WMI=m
 | 
				
			||||||
CONFIG_ACERHDF=m
 | 
					CONFIG_ACERHDF=m
 | 
				
			||||||
| 
						 | 
					@ -6974,6 +7042,7 @@ CONFIG_DELL_LAPTOP=m
 | 
				
			||||||
CONFIG_DELL_WMI=m
 | 
					CONFIG_DELL_WMI=m
 | 
				
			||||||
CONFIG_DELL_WMI_AIO=m
 | 
					CONFIG_DELL_WMI_AIO=m
 | 
				
			||||||
CONFIG_DELL_SMO8800=m
 | 
					CONFIG_DELL_SMO8800=m
 | 
				
			||||||
 | 
					CONFIG_DELL_RBTN=m
 | 
				
			||||||
CONFIG_FUJITSU_LAPTOP=m
 | 
					CONFIG_FUJITSU_LAPTOP=m
 | 
				
			||||||
# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
 | 
					# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
 | 
				
			||||||
CONFIG_FUJITSU_TABLET=m
 | 
					CONFIG_FUJITSU_TABLET=m
 | 
				
			||||||
| 
						 | 
					@ -7023,11 +7092,13 @@ CONFIG_APPLE_GMUX=m
 | 
				
			||||||
CONFIG_INTEL_RST=m
 | 
					CONFIG_INTEL_RST=m
 | 
				
			||||||
CONFIG_INTEL_SMARTCONNECT=m
 | 
					CONFIG_INTEL_SMARTCONNECT=m
 | 
				
			||||||
CONFIG_PVPANIC=m
 | 
					CONFIG_PVPANIC=m
 | 
				
			||||||
 | 
					CONFIG_INTEL_PMC_IPC=m
 | 
				
			||||||
CONFIG_CHROME_PLATFORMS=y
 | 
					CONFIG_CHROME_PLATFORMS=y
 | 
				
			||||||
CONFIG_CHROMEOS_LAPTOP=m
 | 
					CONFIG_CHROMEOS_LAPTOP=m
 | 
				
			||||||
CONFIG_CHROMEOS_PSTORE=m
 | 
					CONFIG_CHROMEOS_PSTORE=m
 | 
				
			||||||
CONFIG_CROS_EC_CHARDEV=m
 | 
					CONFIG_CROS_EC_CHARDEV=m
 | 
				
			||||||
CONFIG_CROS_EC_LPC=m
 | 
					CONFIG_CROS_EC_LPC=m
 | 
				
			||||||
 | 
					CONFIG_CROS_EC_PROTO=y
 | 
				
			||||||
CONFIG_CLKDEV_LOOKUP=y
 | 
					CONFIG_CLKDEV_LOOKUP=y
 | 
				
			||||||
CONFIG_HAVE_CLK_PREPARE=y
 | 
					CONFIG_HAVE_CLK_PREPARE=y
 | 
				
			||||||
CONFIG_COMMON_CLK=y
 | 
					CONFIG_COMMON_CLK=y
 | 
				
			||||||
| 
						 | 
					@ -7089,6 +7160,7 @@ CONFIG_STE_MODEM_RPROC=m
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# SOC (System On Chip) specific Drivers
 | 
					# SOC (System On Chip) specific Drivers
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					# CONFIG_SUNXI_SRAM is not set
 | 
				
			||||||
CONFIG_SOC_TI=y
 | 
					CONFIG_SOC_TI=y
 | 
				
			||||||
CONFIG_PM_DEVFREQ=y
 | 
					CONFIG_PM_DEVFREQ=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7111,6 +7183,7 @@ CONFIG_EXTCON=y
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_EXTCON_ADC_JACK=m
 | 
					CONFIG_EXTCON_ADC_JACK=m
 | 
				
			||||||
CONFIG_EXTCON_ARIZONA=m
 | 
					CONFIG_EXTCON_ARIZONA=m
 | 
				
			||||||
 | 
					CONFIG_EXTCON_AXP288=m
 | 
				
			||||||
CONFIG_EXTCON_GPIO=m
 | 
					CONFIG_EXTCON_GPIO=m
 | 
				
			||||||
CONFIG_EXTCON_MAX14577=m
 | 
					CONFIG_EXTCON_MAX14577=m
 | 
				
			||||||
CONFIG_EXTCON_MAX77693=m
 | 
					CONFIG_EXTCON_MAX77693=m
 | 
				
			||||||
| 
						 | 
					@ -7144,6 +7217,8 @@ CONFIG_KXCJK1013=m
 | 
				
			||||||
CONFIG_MMA9551_CORE=m
 | 
					CONFIG_MMA9551_CORE=m
 | 
				
			||||||
CONFIG_MMA9551=m
 | 
					CONFIG_MMA9551=m
 | 
				
			||||||
CONFIG_MMA9553=m
 | 
					CONFIG_MMA9553=m
 | 
				
			||||||
 | 
					CONFIG_STK8312=m
 | 
				
			||||||
 | 
					CONFIG_STK8BA50=m
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Analog to digital converters
 | 
					# Analog to digital converters
 | 
				
			||||||
| 
						 | 
					@ -7213,6 +7288,7 @@ CONFIG_AD5755=m
 | 
				
			||||||
CONFIG_AD5764=m
 | 
					CONFIG_AD5764=m
 | 
				
			||||||
CONFIG_AD5791=m
 | 
					CONFIG_AD5791=m
 | 
				
			||||||
CONFIG_AD7303=m
 | 
					CONFIG_AD7303=m
 | 
				
			||||||
 | 
					CONFIG_M62332=m
 | 
				
			||||||
CONFIG_MAX517=m
 | 
					CONFIG_MAX517=m
 | 
				
			||||||
CONFIG_MCP4725=m
 | 
					CONFIG_MCP4725=m
 | 
				
			||||||
CONFIG_MCP4922=m
 | 
					CONFIG_MCP4922=m
 | 
				
			||||||
| 
						 | 
					@ -7266,9 +7342,11 @@ CONFIG_IIO_ADIS_LIB_BUFFER=y
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Light sensors
 | 
					# Light sensors
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					CONFIG_ACPI_ALS=m
 | 
				
			||||||
CONFIG_ADJD_S311=m
 | 
					CONFIG_ADJD_S311=m
 | 
				
			||||||
CONFIG_AL3320A=m
 | 
					CONFIG_AL3320A=m
 | 
				
			||||||
CONFIG_APDS9300=m
 | 
					CONFIG_APDS9300=m
 | 
				
			||||||
 | 
					CONFIG_BH1750=m
 | 
				
			||||||
CONFIG_CM32181=m
 | 
					CONFIG_CM32181=m
 | 
				
			||||||
CONFIG_CM3232=m
 | 
					CONFIG_CM3232=m
 | 
				
			||||||
CONFIG_CM3323=m
 | 
					CONFIG_CM3323=m
 | 
				
			||||||
| 
						 | 
					@ -7280,6 +7358,7 @@ CONFIG_HID_SENSOR_PROX=m
 | 
				
			||||||
CONFIG_JSA1212=m
 | 
					CONFIG_JSA1212=m
 | 
				
			||||||
CONFIG_SENSORS_LM3533=m
 | 
					CONFIG_SENSORS_LM3533=m
 | 
				
			||||||
CONFIG_LTR501=m
 | 
					CONFIG_LTR501=m
 | 
				
			||||||
 | 
					CONFIG_STK3310=m
 | 
				
			||||||
CONFIG_TCS3414=m
 | 
					CONFIG_TCS3414=m
 | 
				
			||||||
CONFIG_TCS3472=m
 | 
					CONFIG_TCS3472=m
 | 
				
			||||||
CONFIG_SENSORS_TSL2563=m
 | 
					CONFIG_SENSORS_TSL2563=m
 | 
				
			||||||
| 
						 | 
					@ -7293,9 +7372,11 @@ CONFIG_AK8975=m
 | 
				
			||||||
CONFIG_AK09911=m
 | 
					CONFIG_AK09911=m
 | 
				
			||||||
CONFIG_MAG3110=m
 | 
					CONFIG_MAG3110=m
 | 
				
			||||||
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
 | 
					CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
 | 
				
			||||||
 | 
					CONFIG_MMC35240=m
 | 
				
			||||||
CONFIG_IIO_ST_MAGN_3AXIS=m
 | 
					CONFIG_IIO_ST_MAGN_3AXIS=m
 | 
				
			||||||
CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
 | 
					CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
 | 
				
			||||||
CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
 | 
					CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
 | 
				
			||||||
 | 
					CONFIG_BMC150_MAGN=m
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Inclinometer sensors
 | 
					# Inclinometer sensors
 | 
				
			||||||
| 
						 | 
					@ -7340,6 +7421,9 @@ CONFIG_SX9500=m
 | 
				
			||||||
CONFIG_MLX90614=m
 | 
					CONFIG_MLX90614=m
 | 
				
			||||||
CONFIG_TMP006=m
 | 
					CONFIG_TMP006=m
 | 
				
			||||||
CONFIG_NTB=m
 | 
					CONFIG_NTB=m
 | 
				
			||||||
 | 
					CONFIG_NTB_PINGPONG=m
 | 
				
			||||||
 | 
					CONFIG_NTB_TOOL=m
 | 
				
			||||||
 | 
					CONFIG_NTB_TRANSPORT=m
 | 
				
			||||||
CONFIG_VME_BUS=y
 | 
					CONFIG_VME_BUS=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -7380,11 +7464,14 @@ CONFIG_FMC_CHARDEV=m
 | 
				
			||||||
# PHY Subsystem
 | 
					# PHY Subsystem
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_GENERIC_PHY=y
 | 
					CONFIG_GENERIC_PHY=y
 | 
				
			||||||
 | 
					CONFIG_PHY_PXA_28NM_HSIC=m
 | 
				
			||||||
 | 
					CONFIG_PHY_PXA_28NM_USB2=m
 | 
				
			||||||
CONFIG_BCM_KONA_USB2_PHY=m
 | 
					CONFIG_BCM_KONA_USB2_PHY=m
 | 
				
			||||||
CONFIG_PHY_SAMSUNG_USB2=m
 | 
					CONFIG_PHY_SAMSUNG_USB2=m
 | 
				
			||||||
# CONFIG_PHY_EXYNOS4210_USB2 is not set
 | 
					# CONFIG_PHY_EXYNOS4210_USB2 is not set
 | 
				
			||||||
# CONFIG_PHY_EXYNOS4X12_USB2 is not set
 | 
					# CONFIG_PHY_EXYNOS4X12_USB2 is not set
 | 
				
			||||||
# CONFIG_PHY_EXYNOS5250_USB2 is not set
 | 
					# CONFIG_PHY_EXYNOS5250_USB2 is not set
 | 
				
			||||||
 | 
					CONFIG_PHY_TUSB1210=m
 | 
				
			||||||
CONFIG_POWERCAP=y
 | 
					CONFIG_POWERCAP=y
 | 
				
			||||||
CONFIG_INTEL_RAPL=m
 | 
					CONFIG_INTEL_RAPL=m
 | 
				
			||||||
CONFIG_MCB=m
 | 
					CONFIG_MCB=m
 | 
				
			||||||
| 
						 | 
					@ -7396,6 +7483,11 @@ CONFIG_THUNDERBOLT=m
 | 
				
			||||||
# Android
 | 
					# Android
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# CONFIG_ANDROID is not set
 | 
					# CONFIG_ANDROID is not set
 | 
				
			||||||
 | 
					CONFIG_LIBNVDIMM=y
 | 
				
			||||||
 | 
					CONFIG_BLK_DEV_PMEM=m
 | 
				
			||||||
 | 
					CONFIG_ND_BLK=m
 | 
				
			||||||
 | 
					CONFIG_ND_BTT=m
 | 
				
			||||||
 | 
					CONFIG_BTT=y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Firmware Drivers
 | 
					# Firmware Drivers
 | 
				
			||||||
| 
						 | 
					@ -7416,6 +7508,7 @@ CONFIG_ISCSI_IBFT=m
 | 
				
			||||||
# EFI (Extensible Firmware Interface) Support
 | 
					# EFI (Extensible Firmware Interface) Support
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_EFI_VARS=y
 | 
					CONFIG_EFI_VARS=y
 | 
				
			||||||
 | 
					CONFIG_EFI_ESRT=y
 | 
				
			||||||
CONFIG_EFI_VARS_PSTORE=m
 | 
					CONFIG_EFI_VARS_PSTORE=m
 | 
				
			||||||
# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
 | 
					# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
 | 
				
			||||||
CONFIG_EFI_RUNTIME_MAP=y
 | 
					CONFIG_EFI_RUNTIME_MAP=y
 | 
				
			||||||
| 
						 | 
					@ -7476,6 +7569,7 @@ CONFIG_F2FS_FS_XATTR=y
 | 
				
			||||||
CONFIG_F2FS_FS_POSIX_ACL=y
 | 
					CONFIG_F2FS_FS_POSIX_ACL=y
 | 
				
			||||||
CONFIG_F2FS_FS_SECURITY=y
 | 
					CONFIG_F2FS_FS_SECURITY=y
 | 
				
			||||||
# CONFIG_F2FS_CHECK_FS is not set
 | 
					# CONFIG_F2FS_CHECK_FS is not set
 | 
				
			||||||
 | 
					CONFIG_F2FS_FS_ENCRYPTION=y
 | 
				
			||||||
# CONFIG_F2FS_IO_TRACE is not set
 | 
					# CONFIG_F2FS_IO_TRACE is not set
 | 
				
			||||||
CONFIG_FS_DAX=y
 | 
					CONFIG_FS_DAX=y
 | 
				
			||||||
CONFIG_FS_POSIX_ACL=y
 | 
					CONFIG_FS_POSIX_ACL=y
 | 
				
			||||||
| 
						 | 
					@ -7540,6 +7634,7 @@ CONFIG_PROC_KCORE=y
 | 
				
			||||||
CONFIG_PROC_VMCORE=y
 | 
					CONFIG_PROC_VMCORE=y
 | 
				
			||||||
CONFIG_PROC_SYSCTL=y
 | 
					CONFIG_PROC_SYSCTL=y
 | 
				
			||||||
CONFIG_PROC_PAGE_MONITOR=y
 | 
					CONFIG_PROC_PAGE_MONITOR=y
 | 
				
			||||||
 | 
					CONFIG_PROC_CHILDREN=y
 | 
				
			||||||
CONFIG_KERNFS=y
 | 
					CONFIG_KERNFS=y
 | 
				
			||||||
CONFIG_SYSFS=y
 | 
					CONFIG_SYSFS=y
 | 
				
			||||||
CONFIG_TMPFS=y
 | 
					CONFIG_TMPFS=y
 | 
				
			||||||
| 
						 | 
					@ -7662,8 +7757,7 @@ CONFIG_SUNRPC_BACKCHANNEL=y
 | 
				
			||||||
CONFIG_SUNRPC_SWAP=y
 | 
					CONFIG_SUNRPC_SWAP=y
 | 
				
			||||||
CONFIG_RPCSEC_GSS_KRB5=m
 | 
					CONFIG_RPCSEC_GSS_KRB5=m
 | 
				
			||||||
CONFIG_SUNRPC_DEBUG=y
 | 
					CONFIG_SUNRPC_DEBUG=y
 | 
				
			||||||
CONFIG_SUNRPC_XPRT_RDMA_CLIENT=m
 | 
					CONFIG_SUNRPC_XPRT_RDMA=m
 | 
				
			||||||
CONFIG_SUNRPC_XPRT_RDMA_SERVER=m
 | 
					 | 
				
			||||||
CONFIG_CEPH_FS=m
 | 
					CONFIG_CEPH_FS=m
 | 
				
			||||||
CONFIG_CEPH_FSCACHE=y
 | 
					CONFIG_CEPH_FSCACHE=y
 | 
				
			||||||
CONFIG_CEPH_FS_POSIX_ACL=y
 | 
					CONFIG_CEPH_FS_POSIX_ACL=y
 | 
				
			||||||
| 
						 | 
					@ -7679,6 +7773,7 @@ CONFIG_CIFS_DEBUG=y
 | 
				
			||||||
# CONFIG_CIFS_DEBUG2 is not set
 | 
					# CONFIG_CIFS_DEBUG2 is not set
 | 
				
			||||||
CONFIG_CIFS_DFS_UPCALL=y
 | 
					CONFIG_CIFS_DFS_UPCALL=y
 | 
				
			||||||
CONFIG_CIFS_SMB2=y
 | 
					CONFIG_CIFS_SMB2=y
 | 
				
			||||||
 | 
					CONFIG_CIFS_SMB311=y
 | 
				
			||||||
CONFIG_CIFS_FSCACHE=y
 | 
					CONFIG_CIFS_FSCACHE=y
 | 
				
			||||||
CONFIG_NCP_FS=m
 | 
					CONFIG_NCP_FS=m
 | 
				
			||||||
CONFIG_NCPFS_PACKET_SIGNING=y
 | 
					CONFIG_NCPFS_PACKET_SIGNING=y
 | 
				
			||||||
| 
						 | 
					@ -7824,6 +7919,7 @@ CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
 | 
				
			||||||
CONFIG_PANIC_ON_OOPS_VALUE=0
 | 
					CONFIG_PANIC_ON_OOPS_VALUE=0
 | 
				
			||||||
CONFIG_PANIC_TIMEOUT=0
 | 
					CONFIG_PANIC_TIMEOUT=0
 | 
				
			||||||
CONFIG_SCHED_DEBUG=y
 | 
					CONFIG_SCHED_DEBUG=y
 | 
				
			||||||
 | 
					CONFIG_SCHED_INFO=y
 | 
				
			||||||
CONFIG_SCHEDSTATS=y
 | 
					CONFIG_SCHEDSTATS=y
 | 
				
			||||||
CONFIG_SCHED_STACK_END_CHECK=y
 | 
					CONFIG_SCHED_STACK_END_CHECK=y
 | 
				
			||||||
# CONFIG_DEBUG_TIMEKEEPING is not set
 | 
					# CONFIG_DEBUG_TIMEKEEPING is not set
 | 
				
			||||||
| 
						 | 
					@ -7861,6 +7957,7 @@ CONFIG_TORTURE_TEST=m
 | 
				
			||||||
CONFIG_RCU_CPU_STALL_TIMEOUT=60
 | 
					CONFIG_RCU_CPU_STALL_TIMEOUT=60
 | 
				
			||||||
# CONFIG_RCU_CPU_STALL_INFO is not set
 | 
					# CONFIG_RCU_CPU_STALL_INFO is not set
 | 
				
			||||||
# CONFIG_RCU_TRACE is not set
 | 
					# CONFIG_RCU_TRACE is not set
 | 
				
			||||||
 | 
					# CONFIG_RCU_EQS_DEBUG is not set
 | 
				
			||||||
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
 | 
					# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
 | 
				
			||||||
CONFIG_NOTIFIER_ERROR_INJECTION=m
 | 
					CONFIG_NOTIFIER_ERROR_INJECTION=m
 | 
				
			||||||
CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
 | 
					CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
 | 
				
			||||||
| 
						 | 
					@ -7978,8 +8075,11 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=1
 | 
				
			||||||
# CONFIG_DEBUG_BOOT_PARAMS is not set
 | 
					# CONFIG_DEBUG_BOOT_PARAMS is not set
 | 
				
			||||||
# CONFIG_CPA_DEBUG is not set
 | 
					# CONFIG_CPA_DEBUG is not set
 | 
				
			||||||
CONFIG_OPTIMIZE_INLINING=y
 | 
					CONFIG_OPTIMIZE_INLINING=y
 | 
				
			||||||
 | 
					# CONFIG_DEBUG_ENTRY is not set
 | 
				
			||||||
# CONFIG_DEBUG_NMI_SELFTEST is not set
 | 
					# CONFIG_DEBUG_NMI_SELFTEST is not set
 | 
				
			||||||
# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set
 | 
					# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set
 | 
				
			||||||
 | 
					CONFIG_X86_DEBUG_FPU=y
 | 
				
			||||||
 | 
					CONFIG_PUNIT_ATOM_DEBUG=m
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Security options
 | 
					# Security options
 | 
				
			||||||
| 
						 | 
					@ -8069,8 +8169,12 @@ CONFIG_CRYPTO_HASH=y
 | 
				
			||||||
CONFIG_CRYPTO_HASH2=y
 | 
					CONFIG_CRYPTO_HASH2=y
 | 
				
			||||||
CONFIG_CRYPTO_RNG=y
 | 
					CONFIG_CRYPTO_RNG=y
 | 
				
			||||||
CONFIG_CRYPTO_RNG2=y
 | 
					CONFIG_CRYPTO_RNG2=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_RNG_DEFAULT=m
 | 
				
			||||||
CONFIG_CRYPTO_PCOMP=m
 | 
					CONFIG_CRYPTO_PCOMP=m
 | 
				
			||||||
CONFIG_CRYPTO_PCOMP2=y
 | 
					CONFIG_CRYPTO_PCOMP2=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_AKCIPHER2=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_AKCIPHER=m
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_RSA=m
 | 
				
			||||||
CONFIG_CRYPTO_MANAGER=y
 | 
					CONFIG_CRYPTO_MANAGER=y
 | 
				
			||||||
CONFIG_CRYPTO_MANAGER2=y
 | 
					CONFIG_CRYPTO_MANAGER2=y
 | 
				
			||||||
CONFIG_CRYPTO_USER=m
 | 
					CONFIG_CRYPTO_USER=m
 | 
				
			||||||
| 
						 | 
					@ -8091,7 +8195,9 @@ CONFIG_CRYPTO_GLUE_HELPER_X86=m
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
CONFIG_CRYPTO_CCM=m
 | 
					CONFIG_CRYPTO_CCM=m
 | 
				
			||||||
CONFIG_CRYPTO_GCM=m
 | 
					CONFIG_CRYPTO_GCM=m
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_CHACHA20POLY1305=m
 | 
				
			||||||
CONFIG_CRYPTO_SEQIV=m
 | 
					CONFIG_CRYPTO_SEQIV=m
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_ECHAINIV=m
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Block modes
 | 
					# Block modes
 | 
				
			||||||
| 
						 | 
					@ -8121,6 +8227,7 @@ CONFIG_CRYPTO_CRC32=m
 | 
				
			||||||
CONFIG_CRYPTO_CRC32_PCLMUL=m
 | 
					CONFIG_CRYPTO_CRC32_PCLMUL=m
 | 
				
			||||||
CONFIG_CRYPTO_CRCT10DIF=y
 | 
					CONFIG_CRYPTO_CRCT10DIF=y
 | 
				
			||||||
CONFIG_CRYPTO_GHASH=m
 | 
					CONFIG_CRYPTO_GHASH=m
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_POLY1305=m
 | 
				
			||||||
CONFIG_CRYPTO_MD4=m
 | 
					CONFIG_CRYPTO_MD4=m
 | 
				
			||||||
CONFIG_CRYPTO_MD5=y
 | 
					CONFIG_CRYPTO_MD5=y
 | 
				
			||||||
CONFIG_CRYPTO_MICHAEL_MIC=m
 | 
					CONFIG_CRYPTO_MICHAEL_MIC=m
 | 
				
			||||||
| 
						 | 
					@ -8153,6 +8260,7 @@ CONFIG_CRYPTO_FCRYPT=m
 | 
				
			||||||
CONFIG_CRYPTO_KHAZAD=m
 | 
					CONFIG_CRYPTO_KHAZAD=m
 | 
				
			||||||
CONFIG_CRYPTO_SALSA20=m
 | 
					CONFIG_CRYPTO_SALSA20=m
 | 
				
			||||||
CONFIG_CRYPTO_SALSA20_586=m
 | 
					CONFIG_CRYPTO_SALSA20_586=m
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_CHACHA20=m
 | 
				
			||||||
CONFIG_CRYPTO_SEED=m
 | 
					CONFIG_CRYPTO_SEED=m
 | 
				
			||||||
CONFIG_CRYPTO_SERPENT=m
 | 
					CONFIG_CRYPTO_SERPENT=m
 | 
				
			||||||
CONFIG_CRYPTO_SERPENT_SSE2_586=m
 | 
					CONFIG_CRYPTO_SERPENT_SSE2_586=m
 | 
				
			||||||
| 
						 | 
					@ -8167,6 +8275,7 @@ CONFIG_CRYPTO_TWOFISH_586=m
 | 
				
			||||||
CONFIG_CRYPTO_DEFLATE=m
 | 
					CONFIG_CRYPTO_DEFLATE=m
 | 
				
			||||||
CONFIG_CRYPTO_ZLIB=m
 | 
					CONFIG_CRYPTO_ZLIB=m
 | 
				
			||||||
CONFIG_CRYPTO_LZO=y
 | 
					CONFIG_CRYPTO_LZO=y
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_842=m
 | 
				
			||||||
CONFIG_CRYPTO_LZ4=m
 | 
					CONFIG_CRYPTO_LZ4=m
 | 
				
			||||||
CONFIG_CRYPTO_LZ4HC=m
 | 
					CONFIG_CRYPTO_LZ4HC=m
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8179,10 +8288,12 @@ CONFIG_CRYPTO_DRBG_HMAC=y
 | 
				
			||||||
CONFIG_CRYPTO_DRBG_HASH=y
 | 
					CONFIG_CRYPTO_DRBG_HASH=y
 | 
				
			||||||
CONFIG_CRYPTO_DRBG_CTR=y
 | 
					CONFIG_CRYPTO_DRBG_CTR=y
 | 
				
			||||||
CONFIG_CRYPTO_DRBG=m
 | 
					CONFIG_CRYPTO_DRBG=m
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_JITTERENTROPY=m
 | 
				
			||||||
CONFIG_CRYPTO_USER_API=m
 | 
					CONFIG_CRYPTO_USER_API=m
 | 
				
			||||||
CONFIG_CRYPTO_USER_API_HASH=m
 | 
					CONFIG_CRYPTO_USER_API_HASH=m
 | 
				
			||||||
CONFIG_CRYPTO_USER_API_SKCIPHER=m
 | 
					CONFIG_CRYPTO_USER_API_SKCIPHER=m
 | 
				
			||||||
CONFIG_CRYPTO_USER_API_RNG=m
 | 
					CONFIG_CRYPTO_USER_API_RNG=m
 | 
				
			||||||
 | 
					CONFIG_CRYPTO_USER_API_AEAD=m
 | 
				
			||||||
CONFIG_CRYPTO_HASH_INFO=y
 | 
					CONFIG_CRYPTO_HASH_INFO=y
 | 
				
			||||||
CONFIG_CRYPTO_HW=y
 | 
					CONFIG_CRYPTO_HW=y
 | 
				
			||||||
CONFIG_CRYPTO_DEV_PADLOCK=y
 | 
					CONFIG_CRYPTO_DEV_PADLOCK=y
 | 
				
			||||||
| 
						 | 
					@ -8253,6 +8364,8 @@ CONFIG_CRC8=m
 | 
				
			||||||
CONFIG_AUDIT_GENERIC=y
 | 
					CONFIG_AUDIT_GENERIC=y
 | 
				
			||||||
# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
 | 
					# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
 | 
				
			||||||
# CONFIG_RANDOM32_SELFTEST is not set
 | 
					# CONFIG_RANDOM32_SELFTEST is not set
 | 
				
			||||||
 | 
					CONFIG_842_COMPRESS=m
 | 
				
			||||||
 | 
					CONFIG_842_DECOMPRESS=m
 | 
				
			||||||
CONFIG_ZLIB_INFLATE=y
 | 
					CONFIG_ZLIB_INFLATE=y
 | 
				
			||||||
CONFIG_ZLIB_DEFLATE=y
 | 
					CONFIG_ZLIB_DEFLATE=y
 | 
				
			||||||
CONFIG_LZO_COMPRESS=y
 | 
					CONFIG_LZO_COMPRESS=y
 | 
				
			||||||
| 
						 | 
					@ -8312,3 +8425,4 @@ CONFIG_FONT_SUPPORT=y
 | 
				
			||||||
CONFIG_FONT_8x8=y
 | 
					CONFIG_FONT_8x8=y
 | 
				
			||||||
CONFIG_FONT_8x16=y
 | 
					CONFIG_FONT_8x16=y
 | 
				
			||||||
CONFIG_ARCH_HAS_SG_CHAIN=y
 | 
					CONFIG_ARCH_HAS_SG_CHAIN=y
 | 
				
			||||||
 | 
					CONFIG_ARCH_HAS_PMEM_API=y
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
					@ -210,7 +210,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM."
 | 
				
			||||||
     #f)))
 | 
					     #f)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public linux-libre
 | 
					(define-public linux-libre
 | 
				
			||||||
  (let* ((version "4.1.6")
 | 
					  (let* ((version "4.2")
 | 
				
			||||||
         (build-phase
 | 
					         (build-phase
 | 
				
			||||||
          '(lambda* (#:key system inputs #:allow-other-keys #:rest args)
 | 
					          '(lambda* (#:key system inputs #:allow-other-keys #:rest args)
 | 
				
			||||||
             ;; Apply the neat patch.
 | 
					             ;; Apply the neat patch.
 | 
				
			||||||
| 
						 | 
					@ -283,7 +283,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM."
 | 
				
			||||||
             (uri (linux-libre-urls version))
 | 
					             (uri (linux-libre-urls version))
 | 
				
			||||||
             (sha256
 | 
					             (sha256
 | 
				
			||||||
              (base32
 | 
					              (base32
 | 
				
			||||||
               "07gmpy32v90bx78bm1khc1hw7x0akdh2sxpkxkavwj4fjc6f732v"))))
 | 
					               "0jfgbr9qc92bk7hyfdvw030xyic2bg834l8cxp25rw9qbbdck3rs"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs `(("perl" ,perl)
 | 
					    (native-inputs `(("perl" ,perl)
 | 
				
			||||||
                     ("bc" ,bc)
 | 
					                     ("bc" ,bc)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -405,6 +405,40 @@ attachments, create new maildirs, and so on.")
 | 
				
			||||||
ing, and tagging large collections of email messages.")
 | 
					ing, and tagging large collections of email messages.")
 | 
				
			||||||
    (license gpl3+)))
 | 
					    (license gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python2-notmuch
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "python2-notmuch")
 | 
				
			||||||
 | 
					    (version "0.15.2")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append
 | 
				
			||||||
 | 
					                    "https://pypi.python.org/packages/source/n/notmuch/notmuch-"
 | 
				
			||||||
 | 
					                    version
 | 
				
			||||||
 | 
					                    ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "18g8701ibr153ngsz258kgcd42wqnbf9ifpqig1bijy6b0zx9xn5"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (inputs `(("notmuch" ,notmuch)))
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:python ,python-2
 | 
				
			||||||
 | 
					       #:phases (modify-phases %standard-phases
 | 
				
			||||||
 | 
					                  (add-before
 | 
				
			||||||
 | 
					                   'build 'set-libnotmuch-file-name
 | 
				
			||||||
 | 
					                   (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					                     (let ((notmuch (assoc-ref inputs "notmuch")))
 | 
				
			||||||
 | 
					                       (substitute* "notmuch/globals.py"
 | 
				
			||||||
 | 
					                         (("libnotmuch\\.so\\.[0-9]")
 | 
				
			||||||
 | 
					                          (string-append notmuch "/lib/libnotmuch.so.4")))
 | 
				
			||||||
 | 
					                       #t))))
 | 
				
			||||||
 | 
					       #:tests? #f))                              ;no "test" target
 | 
				
			||||||
 | 
					    (home-page "http://notmuchmail.org/")
 | 
				
			||||||
 | 
					    (synopsis "Python bindings of the Notmuch mail indexing library")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "This package provides Python bindings to use the Notmuch mail indexing
 | 
				
			||||||
 | 
					and search library.")
 | 
				
			||||||
 | 
					    (license gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public getmail
 | 
					(define-public getmail
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "getmail")
 | 
					    (name "getmail")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -269,7 +269,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
 | 
				
			||||||
    (synopsis "Statically-linked bootstrap binaries")
 | 
					    (synopsis "Statically-linked bootstrap binaries")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
     "Binaries used to bootstrap the distribution.")
 | 
					     "Binaries used to bootstrap the distribution.")
 | 
				
			||||||
    (license #f)
 | 
					    (license gpl3+)
 | 
				
			||||||
    (home-page #f)))
 | 
					    (home-page #f)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define %binutils-static
 | 
					(define %binutils-static
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1926,3 +1926,39 @@ in finite element programs.")
 | 
				
			||||||
           "-DMPI_Fortran_COMPILER=mpifort"
 | 
					           "-DMPI_Fortran_COMPILER=mpifort"
 | 
				
			||||||
           ,@,cf))))
 | 
					           ,@,cf))))
 | 
				
			||||||
    (synopsis "Finite element library (with MPI support)")))
 | 
					    (synopsis "Finite element library (with MPI support)")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public flann
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "flann")
 | 
				
			||||||
 | 
					    (version "1.8.4")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					      (origin
 | 
				
			||||||
 | 
					        (method url-fetch)
 | 
				
			||||||
 | 
					        (uri
 | 
				
			||||||
 | 
					          (string-append
 | 
				
			||||||
 | 
					            "http://www.cs.ubc.ca/research/flann/uploads/FLANN/flann-"
 | 
				
			||||||
 | 
					            version "-src.zip"))
 | 
				
			||||||
 | 
					        (sha256
 | 
				
			||||||
 | 
					          (base32
 | 
				
			||||||
 | 
					            "022w8hph7bli5zbpnk3z1qh1c2sl5hm8fw2ccim651ynn0hr7fyz"))))
 | 
				
			||||||
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("unzip" ,unzip)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("hdf5" ,hdf5)
 | 
				
			||||||
 | 
					       ("octave" ,octave)
 | 
				
			||||||
 | 
					       ("python" ,python-2) ; print syntax
 | 
				
			||||||
 | 
					       ;; ("python2-numpy" ,python2-numpy) ; only required for the tests
 | 
				
			||||||
 | 
					       ("zlib" ,zlib)))
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:tests? #f)) ; The test data are downloaded from the Internet.
 | 
				
			||||||
 | 
					    (home-page "http://www.cs.ubc.ca/research/flann/")
 | 
				
			||||||
 | 
					    (synopsis "Library for approximate nearest neighbors computation")
 | 
				
			||||||
 | 
					    (description "FLANN is a library for performing fast approximate
 | 
				
			||||||
 | 
					nearest neighbor searches in high dimensional spaces.  It implements a
 | 
				
			||||||
 | 
					collection of algorithms and a system for automatically choosing the best
 | 
				
			||||||
 | 
					algorithm and optimum parameters depending on the dataset.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLANN is written in C++ and contains bindings for C, Octave and Python.")
 | 
				
			||||||
 | 
					    (license (license:non-copyleft "file://COPYING"
 | 
				
			||||||
 | 
					                                "See COPYING in the distribution."))))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,8 +24,10 @@
 | 
				
			||||||
  #:use-module ((guix licenses) #:prefix license:)
 | 
					  #:use-module ((guix licenses) #:prefix license:)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
  #:use-module (guix build-system cmake)
 | 
					  #:use-module (guix build-system cmake)
 | 
				
			||||||
 | 
					  #:use-module (guix build-system python)
 | 
				
			||||||
  #:use-module (guix build-system waf)
 | 
					  #:use-module (guix build-system waf)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages algebra)
 | 
				
			||||||
  #:use-module (gnu packages audio)
 | 
					  #:use-module (gnu packages audio)
 | 
				
			||||||
  #:use-module (gnu packages autotools)
 | 
					  #:use-module (gnu packages autotools)
 | 
				
			||||||
  #:use-module (gnu packages base) ;libbdf
 | 
					  #:use-module (gnu packages base) ;libbdf
 | 
				
			||||||
| 
						 | 
					@ -54,6 +56,7 @@
 | 
				
			||||||
  #:use-module (gnu packages man)
 | 
					  #:use-module (gnu packages man)
 | 
				
			||||||
  #:use-module (gnu packages mp3)
 | 
					  #:use-module (gnu packages mp3)
 | 
				
			||||||
  #:use-module (gnu packages netpbm)
 | 
					  #:use-module (gnu packages netpbm)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages pdf)
 | 
				
			||||||
  #:use-module (gnu packages perl)
 | 
					  #:use-module (gnu packages perl)
 | 
				
			||||||
  #:use-module (gnu packages pkg-config)
 | 
					  #:use-module (gnu packages pkg-config)
 | 
				
			||||||
  #:use-module (gnu packages pulseaudio) ;libsndfile
 | 
					  #:use-module (gnu packages pulseaudio) ;libsndfile
 | 
				
			||||||
| 
						 | 
					@ -66,6 +69,7 @@
 | 
				
			||||||
  #:use-module (gnu packages texlive)
 | 
					  #:use-module (gnu packages texlive)
 | 
				
			||||||
  #:use-module (gnu packages web)
 | 
					  #:use-module (gnu packages web)
 | 
				
			||||||
  #:use-module (gnu packages xml)
 | 
					  #:use-module (gnu packages xml)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages xorg)
 | 
				
			||||||
  #:use-module (gnu packages xiph)
 | 
					  #:use-module (gnu packages xiph)
 | 
				
			||||||
  #:use-module (gnu packages zip)
 | 
					  #:use-module (gnu packages zip)
 | 
				
			||||||
  #:use-module ((srfi srfi-1) #:select (last)))
 | 
					  #:use-module ((srfi srfi-1) #:select (last)))
 | 
				
			||||||
| 
						 | 
					@ -647,3 +651,65 @@ equipment.  Pd is suitable for learning basic multimedia processing and visual
 | 
				
			||||||
programming methods as well as for realizing complex systems for large-scale
 | 
					programming methods as well as for realizing complex systems for large-scale
 | 
				
			||||||
projects.")
 | 
					projects.")
 | 
				
			||||||
    (license license:bsd-3)))
 | 
					    (license license:bsd-3)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public frescobaldi
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "frescobaldi")
 | 
				
			||||||
 | 
					    (version "2.18.1")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append
 | 
				
			||||||
 | 
					                    "https://github.com/wbsoft/frescobaldi/releases/download/v"
 | 
				
			||||||
 | 
					                    version "/frescobaldi-" version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "1hflc6gck6dn17czc2ldai5j0ynfg3df8lqcggdry06qxsdbnns7"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("lilypond" ,lilypond)
 | 
				
			||||||
 | 
					       ("python-pyqt-4" ,python-pyqt-4)
 | 
				
			||||||
 | 
					       ("python-ly" ,python-ly)
 | 
				
			||||||
 | 
					       ("poppler" ,poppler)
 | 
				
			||||||
 | 
					       ("python-poppler-qt4" ,python-poppler-qt4)
 | 
				
			||||||
 | 
					       ("python-sip" ,python-sip)))
 | 
				
			||||||
 | 
					    (home-page "http://www.frescobaldi.org/")
 | 
				
			||||||
 | 
					    (synopsis "LilyPond sheet music text editor")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Frescobaldi is a LilyPond sheet music text editor with syntax
 | 
				
			||||||
 | 
					highlighting and automatic completion.  Among other things, it can render
 | 
				
			||||||
 | 
					scores next to the source, can capture input from MIDI or read MusicXML and
 | 
				
			||||||
 | 
					ABC files, has a MIDI player for proof-listening, and includes a documentation
 | 
				
			||||||
 | 
					browser.")
 | 
				
			||||||
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public zynaddsubfx
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "zynaddsubfx")
 | 
				
			||||||
 | 
					    (version "2.5.1")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append
 | 
				
			||||||
 | 
					                    "mirror://sourceforge/zynaddsubfx/zynaddsubfx/"
 | 
				
			||||||
 | 
					                    version "/zynaddsubfx-" version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "01c4v5lbzard6y00cjq3b6a50cafqwfwibzng9gdsajczhnbkqz2"))))
 | 
				
			||||||
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("liblo" ,liblo)
 | 
				
			||||||
 | 
					       ("ntk" ,ntk)
 | 
				
			||||||
 | 
					       ("alsa-lib" ,alsa-lib)
 | 
				
			||||||
 | 
					       ("jack" ,jack-1)
 | 
				
			||||||
 | 
					       ("fftw" ,fftw)
 | 
				
			||||||
 | 
					       ("minixml" ,minixml)
 | 
				
			||||||
 | 
					       ("libxpm" ,libxpm)
 | 
				
			||||||
 | 
					       ("zlib" ,zlib)))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
 | 
					    (home-page "http://zynaddsubfx.sf.net/")
 | 
				
			||||||
 | 
					    (synopsis "Software synthesizer")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "ZynAddSubFX is a feature heavy realtime software synthesizer.  It offers
 | 
				
			||||||
 | 
					three synthesizer engines, multitimbral and polyphonic synths, microtonal
 | 
				
			||||||
 | 
					capabilities, custom envelopes, effects, etc.")
 | 
				
			||||||
 | 
					    (license license:gpl2)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,23 +26,24 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public ncdu
 | 
					(define-public ncdu
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
   (name "ncdu")
 | 
					    (name "ncdu")
 | 
				
			||||||
   (version "1.10")
 | 
					    (version "1.11")
 | 
				
			||||||
   (source (origin
 | 
					    (source (origin
 | 
				
			||||||
	    (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
	    (uri (string-append "http://dev.yorhel.nl/download/ncdu-"
 | 
					              (uri (string-append "http://dev.yorhel.nl/download/ncdu-"
 | 
				
			||||||
				version ".tar.gz"))
 | 
					                                  version ".tar.gz"))
 | 
				
			||||||
	    (sha256
 | 
					              (sha256
 | 
				
			||||||
	     (base32
 | 
					               (base32
 | 
				
			||||||
	      "0rqc5wpqcbfqpcwxgh3jxwa0yw2py0hv0acpsf0a9g6v9144m6gm"))))
 | 
					                "0yxv87hpal05p6nii6rlnai5a8958689l9vz020w4qvlwiragbnh"))))
 | 
				
			||||||
   (inputs
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    `(("ncurses" ,ncurses)))
 | 
					    (inputs `(("ncurses" ,ncurses)))
 | 
				
			||||||
   (build-system gnu-build-system)
 | 
					    (synopsis "Ncurses based disk usage analyzer")
 | 
				
			||||||
   (synopsis "Ncurses based disk usage analyzer")
 | 
					    (description "A disk usage analyzer with an ncurses interface, aimed to be
 | 
				
			||||||
   (description "A disk usage analyzer with an ncurses interface, aimed to be
 | 
					 | 
				
			||||||
run on a remote server where you don't have an entire graphical setup, but have
 | 
					run on a remote server where you don't have an entire graphical setup, but have
 | 
				
			||||||
to do with a simple SSH connection. ncdu aims to be fast, simple and easy to
 | 
					to do with a simple SSH connection. ncdu aims to be fast, simple and easy to
 | 
				
			||||||
use, and should be able to run in any minimal POSIX-like environment with
 | 
					use, and should be able to run in any minimal POSIX-like environment with
 | 
				
			||||||
ncurses installed.")
 | 
					ncurses installed.")
 | 
				
			||||||
   (license (x11-style "http://g.blicky.net/ncdu.git/plain/COPYING?id=v1.10"))
 | 
					    (license (x11-style
 | 
				
			||||||
   (home-page "http://dev.yorhel.nl/ncdu")))
 | 
					              (string-append "http://g.blicky.net/ncdu.git/plain/COPYING?id=v"
 | 
				
			||||||
 | 
					                             version)))
 | 
				
			||||||
 | 
					    (home-page "http://dev.yorhel.nl/ncdu")))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										216
									
								
								gnu/packages/openstack.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										216
									
								
								gnu/packages/openstack.scm
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,216 @@
 | 
				
			||||||
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
 | 
					;;; Copyright © 2015 Cyril Roelandt <tipecaml@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 (gnu packages openstack)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages python)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages version-control)
 | 
				
			||||||
 | 
					  #:use-module (guix build-system python)
 | 
				
			||||||
 | 
					  #:use-module (guix download)
 | 
				
			||||||
 | 
					  #:use-module ((guix licenses)
 | 
				
			||||||
 | 
					                #:select (asl2.0))
 | 
				
			||||||
 | 
					  #:use-module (guix packages))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python-mox3
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "python-mox3")
 | 
				
			||||||
 | 
					    (version "0.8.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					      (origin
 | 
				
			||||||
 | 
					        (method url-fetch)
 | 
				
			||||||
 | 
					        (uri (string-append
 | 
				
			||||||
 | 
					               "https://pypi.python.org/packages/source/m/mox3/mox3-"
 | 
				
			||||||
 | 
					               version
 | 
				
			||||||
 | 
					               ".tar.gz"))
 | 
				
			||||||
 | 
					        (sha256
 | 
				
			||||||
 | 
					          (base32
 | 
				
			||||||
 | 
					            "1dwj9lkifdqvrcympqa47bj55l0n0j9jhzv2gj03h0dpzg6mgfkj"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					      `(("python-fixtures" ,python-fixtures)
 | 
				
			||||||
 | 
					        ("python-pbr" ,python-pbr)
 | 
				
			||||||
 | 
					        ("python-setuptools" ,python-setuptools)
 | 
				
			||||||
 | 
					        ("python-six" ,python-six)
 | 
				
			||||||
 | 
					        ("python-testtools" ,python-testtools)))
 | 
				
			||||||
 | 
					    (home-page "http://www.openstack.org/")
 | 
				
			||||||
 | 
					    (synopsis "Mock object framework for Python")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					      "Mox3 is an unofficial port of the Google mox framework
 | 
				
			||||||
 | 
					(http://code.google.com/p/pymox/) to Python 3. It was meant to be as compatible
 | 
				
			||||||
 | 
					with mox as possible, but small enhancements have been made. The library was
 | 
				
			||||||
 | 
					tested on Python version 3.2, 2.7 and 2.6.")
 | 
				
			||||||
 | 
					    (license asl2.0)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python-os-client-config
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "python-os-client-config")
 | 
				
			||||||
 | 
					    (version "1.4.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					      (origin
 | 
				
			||||||
 | 
					        (method url-fetch)
 | 
				
			||||||
 | 
					        (uri (string-append
 | 
				
			||||||
 | 
					               "https://pypi.python.org/packages/source/o/os-client-config/os-client-config-"
 | 
				
			||||||
 | 
					               version
 | 
				
			||||||
 | 
					               ".tar.gz"))
 | 
				
			||||||
 | 
					        (sha256
 | 
				
			||||||
 | 
					          (base32
 | 
				
			||||||
 | 
					            "14png6ml3zbbilh8bihav24f8vig9lyijwynnjcvazdxxrzvwq9j"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:tests? #f)) ;; Circular dependency with python-oslotest
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					      `(("python-appdirs" ,python-appdirs)
 | 
				
			||||||
 | 
					        ("python-fixtures" ,python-fixtures)
 | 
				
			||||||
 | 
					        ("python-mimeparse" ,python-mimeparse)
 | 
				
			||||||
 | 
					        ("python-pbr" ,python-pbr)
 | 
				
			||||||
 | 
					        ("python-pyyaml" ,python-pyyaml)
 | 
				
			||||||
 | 
					        ("python-testrepository" ,python-testrepository)
 | 
				
			||||||
 | 
					        ("python-setuptools" ,python-setuptools)
 | 
				
			||||||
 | 
					        ("python-testscenarios" ,python-testscenarios)
 | 
				
			||||||
 | 
					        ("python-testtools" ,python-testtools)))
 | 
				
			||||||
 | 
					    (home-page "http://www.openstack.org/")
 | 
				
			||||||
 | 
					    (synopsis
 | 
				
			||||||
 | 
					      "OpenStack Client Configuration Library")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					      "The OpenStack Client Configuration Library is a library for collecting
 | 
				
			||||||
 | 
					  client configuration for using an OpenStack cloud in a consistent and
 | 
				
			||||||
 | 
					  comprehensive manner.")
 | 
				
			||||||
 | 
					    (license asl2.0)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python2-os-client-config
 | 
				
			||||||
 | 
					  (package-with-python2 python-os-client-config))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python2-mox3
 | 
				
			||||||
 | 
					  (package-with-python2 python-mox3))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python-pbr
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "python-pbr")
 | 
				
			||||||
 | 
					    (version "1.6.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					      (origin
 | 
				
			||||||
 | 
					        (method url-fetch)
 | 
				
			||||||
 | 
					        (uri (string-append
 | 
				
			||||||
 | 
					               "https://pypi.python.org/packages/source/p/pbr/pbr-"
 | 
				
			||||||
 | 
					               version
 | 
				
			||||||
 | 
					               ".tar.gz"))
 | 
				
			||||||
 | 
					        (sha256
 | 
				
			||||||
 | 
					          (base32
 | 
				
			||||||
 | 
					            "1lg1klrczvzfan89y3bl9ykrknl3nb01vvai37fkww24apzyibjf"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:tests? #f)) ;; Most tests seem to use the Internet.
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					      `(("python-testrepository" ,python-testrepository)
 | 
				
			||||||
 | 
					        ("git" ,git))) ;; pbr actually uses the "git" binary.
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					      `(("python-fixtures" ,python-fixtures)
 | 
				
			||||||
 | 
					        ("python-mimeparse" ,python-mimeparse)
 | 
				
			||||||
 | 
					        ("python-mock" ,python-mock)
 | 
				
			||||||
 | 
					        ("python-setuptools" ,python-setuptools)
 | 
				
			||||||
 | 
					        ("python-six" ,python-six)
 | 
				
			||||||
 | 
					        ("python-sphinx" ,python-sphinx)
 | 
				
			||||||
 | 
					        ("python-testrepository" ,python-testrepository)
 | 
				
			||||||
 | 
					        ("python-testresources" ,python-testresources)
 | 
				
			||||||
 | 
					        ("python-testscenarios" ,python-testscenarios)
 | 
				
			||||||
 | 
					        ("python-testtools" ,python-testtools)
 | 
				
			||||||
 | 
					        ("python-virtualenv" ,python-virtualenv)))
 | 
				
			||||||
 | 
					    (home-page "https://launchpad.net/pbr")
 | 
				
			||||||
 | 
					    (synopsis "Change the default behavior of Python’s setuptools")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					      "Python Build Reasonableness (PBR) is a library that injects some useful
 | 
				
			||||||
 | 
					and sensible default behaviors into your setuptools run.")
 | 
				
			||||||
 | 
					    (license asl2.0)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python2-pbr
 | 
				
			||||||
 | 
					  (package-with-python2 python-pbr))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; Packages from the Oslo library
 | 
				
			||||||
 | 
					(define-public python-oslo.i18n
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "python-oslo.i18n")
 | 
				
			||||||
 | 
					    (version "2.5.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					      (origin
 | 
				
			||||||
 | 
					        (method url-fetch)
 | 
				
			||||||
 | 
					        (uri (string-append
 | 
				
			||||||
 | 
					               "https://pypi.python.org/packages/source/o/oslo.i18n/oslo.i18n-"
 | 
				
			||||||
 | 
					               version
 | 
				
			||||||
 | 
					               ".tar.gz"))
 | 
				
			||||||
 | 
					        (sha256
 | 
				
			||||||
 | 
					          (base32
 | 
				
			||||||
 | 
					            "1kg72mqldlri3x0bhxai7j979czrd7mf8s3iflvvv0x9kn9ah4cw"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					      `(("python-babel" ,python-babel)
 | 
				
			||||||
 | 
					        ("python-six" ,python-six)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					      `(("python-pbr" ,python-pbr)
 | 
				
			||||||
 | 
					        ("python-setuptools" ,python-setuptools)
 | 
				
			||||||
 | 
					        ;; Tests
 | 
				
			||||||
 | 
					        ("python-mock" ,python-mock)
 | 
				
			||||||
 | 
					        ("python-mox3" ,python-mox3)
 | 
				
			||||||
 | 
					        ("python-oslotest" ,python-oslotest)
 | 
				
			||||||
 | 
					        ("python-testscenarios" ,python-testscenarios)))
 | 
				
			||||||
 | 
					    (home-page "http://launchpad.net/oslo")
 | 
				
			||||||
 | 
					    (synopsis "Oslo internationalization (i18n) library")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					      "The oslo.i18n library contain utilities for working with
 | 
				
			||||||
 | 
					internationalization (i18n) features, especially translation for text strings
 | 
				
			||||||
 | 
					in an application or library.")
 | 
				
			||||||
 | 
					    (license asl2.0)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python2-oslo.i18n
 | 
				
			||||||
 | 
					  (package-with-python2 python-oslo.i18n))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python-oslotest
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "python-oslotest")
 | 
				
			||||||
 | 
					    (version "1.10.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					      (origin
 | 
				
			||||||
 | 
					        (method url-fetch)
 | 
				
			||||||
 | 
					        (uri (string-append
 | 
				
			||||||
 | 
					               "https://pypi.python.org/packages/source/o/oslotest/oslotest-"
 | 
				
			||||||
 | 
					               version
 | 
				
			||||||
 | 
					               ".tar.gz"))
 | 
				
			||||||
 | 
					        (sha256
 | 
				
			||||||
 | 
					          (base32
 | 
				
			||||||
 | 
					            "0l3ny48ddz5xbf0v4r0jv1yhbdzinc2vy0lybhdkmx3xy0b886fs"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					      `(("python-fixtures" ,python-fixtures)
 | 
				
			||||||
 | 
					        ("python-mock" ,python-mock)
 | 
				
			||||||
 | 
					        ("python-six" ,python-six)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					      `(("python-pbr" ,python-pbr)
 | 
				
			||||||
 | 
					        ("python-mox3" ,python-mox3)
 | 
				
			||||||
 | 
					        ("python-os-client-config" ,python-os-client-config)
 | 
				
			||||||
 | 
					        ("python-setuptools" ,python-setuptools)
 | 
				
			||||||
 | 
					        ("python-subunit" ,python-subunit)
 | 
				
			||||||
 | 
					        ("python-testrepository" ,python-testrepository)
 | 
				
			||||||
 | 
					        ("python-testscenarios" ,python-testscenarios)
 | 
				
			||||||
 | 
					        ("python-testtools" ,python-testtools)))
 | 
				
			||||||
 | 
					    (home-page "http://launchpad.net/oslo")
 | 
				
			||||||
 | 
					    (synopsis "Oslo test framework")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					      "The Oslo Test framework provides common fixtures, support for debugging,
 | 
				
			||||||
 | 
					and better support for mocking results.")
 | 
				
			||||||
 | 
					    (license asl2.0)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python2-oslotest
 | 
				
			||||||
 | 
					  (package-with-python2 python-oslotest))
 | 
				
			||||||
| 
						 | 
					@ -200,18 +200,7 @@ the Nix package manager.")
 | 
				
			||||||
                            (chmod po #o666))
 | 
					                            (chmod po #o666))
 | 
				
			||||||
                          (find-files "." "\\.po$"))
 | 
					                          (find-files "." "\\.po$"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                (zero? (system* "sh" "bootstrap"))))
 | 
					                (zero? (system* "sh" "bootstrap"))))))))
 | 
				
			||||||
             (add-after
 | 
					 | 
				
			||||||
              'unpack 'disable-container-tests
 | 
					 | 
				
			||||||
              ;; XXX FIXME: These tests fail within the build container.
 | 
					 | 
				
			||||||
              (lambda _
 | 
					 | 
				
			||||||
                (substitute* "tests/syscalls.scm"
 | 
					 | 
				
			||||||
                  (("^\\(test-assert \"(clone|setns|pivot-root)\"" all)
 | 
					 | 
				
			||||||
                   (string-append "(test-skip 1)\n" all)))
 | 
					 | 
				
			||||||
                (substitute* "tests/containers.scm"
 | 
					 | 
				
			||||||
                  (("^\\(test-assert" all)
 | 
					 | 
				
			||||||
                   (string-append "(test-skip 1)\n" all)))
 | 
					 | 
				
			||||||
                #t))))))
 | 
					 | 
				
			||||||
      (native-inputs
 | 
					      (native-inputs
 | 
				
			||||||
       `(("autoconf" ,(autoconf-wrapper))
 | 
					       `(("autoconf" ,(autoconf-wrapper))
 | 
				
			||||||
         ("automake" ,automake)
 | 
					         ("automake" ,automake)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,231 +0,0 @@
 | 
				
			||||||
Partially fix CVE-2014-9112, part 1/5.  Backported to 2.11.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
From 746f3ff670dcfcdd28fcc990e79cd6fccc7ae48d Mon Sep 17 00:00:00 2001
 | 
					 | 
				
			||||||
From: Sergey Poznyakoff <gray@gnu.org.ua>
 | 
					 | 
				
			||||||
Date: Mon, 01 Dec 2014 13:15:28 +0000
 | 
					 | 
				
			||||||
Subject: Fix memory overrun on reading improperly created link records.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
See http://lists.gnu.org/archive/html/bug-cpio/2014-11/msg00007.html
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* src/copyin.c (get_link_name): New function.
 | 
					 | 
				
			||||||
(list_file, copyin_link): use get_link_name
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* tests/symlink-bad-length.at: New file.
 | 
					 | 
				
			||||||
* tests/symlink-long.at: New file.
 | 
					 | 
				
			||||||
* tests/Makefile.am: Add new files.
 | 
					 | 
				
			||||||
* tests/testsuite.at: Likewise.
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
diff --git a/src/copyin.c b/src/copyin.c
 | 
					 | 
				
			||||||
index 38d809f..c502c7d 100644
 | 
					 | 
				
			||||||
--- a/src/copyin.c
 | 
					 | 
				
			||||||
+++ b/src/copyin.c
 | 
					 | 
				
			||||||
@@ -124,10 +124,30 @@ tape_skip_padding (int in_file_des, off_t offset)
 | 
					 | 
				
			||||||
   if (pad != 0)
 | 
					 | 
				
			||||||
     tape_toss_input (in_file_des, pad);
 | 
					 | 
				
			||||||
 }
 | 
					 | 
				
			||||||
-
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+static char *
 | 
					 | 
				
			||||||
+get_link_name (struct cpio_file_stat *file_hdr, int in_file_des)
 | 
					 | 
				
			||||||
+{
 | 
					 | 
				
			||||||
+  off_t n = file_hdr->c_filesize + 1;
 | 
					 | 
				
			||||||
+  char *link_name;
 | 
					 | 
				
			||||||
+  
 | 
					 | 
				
			||||||
+  if (n == 0 || n > SIZE_MAX)
 | 
					 | 
				
			||||||
+    {
 | 
					 | 
				
			||||||
+      error (0, 0, _("%s: stored filename length too big"), file_hdr->c_name);
 | 
					 | 
				
			||||||
+      link_name = NULL;
 | 
					 | 
				
			||||||
+    }
 | 
					 | 
				
			||||||
+  else
 | 
					 | 
				
			||||||
+    {
 | 
					 | 
				
			||||||
+      link_name = xmalloc (n);
 | 
					 | 
				
			||||||
+      tape_buffered_read (link_name, in_file_des, file_hdr->c_filesize);
 | 
					 | 
				
			||||||
+      link_name[file_hdr->c_filesize] = '\0';
 | 
					 | 
				
			||||||
+      tape_skip_padding (in_file_des, file_hdr->c_filesize);
 | 
					 | 
				
			||||||
+    }
 | 
					 | 
				
			||||||
+  return link_name;
 | 
					 | 
				
			||||||
+}
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 static void
 | 
					 | 
				
			||||||
-list_file(struct cpio_file_stat* file_hdr, int in_file_des)
 | 
					 | 
				
			||||||
+list_file (struct cpio_file_stat* file_hdr, int in_file_des)
 | 
					 | 
				
			||||||
 {
 | 
					 | 
				
			||||||
   if (verbose_flag)
 | 
					 | 
				
			||||||
     {
 | 
					 | 
				
			||||||
@@ -136,21 +156,16 @@ list_file(struct cpio_file_stat* file_hdr, int in_file_des)
 | 
					 | 
				
			||||||
 	{
 | 
					 | 
				
			||||||
 	  if (archive_format != arf_tar && archive_format != arf_ustar)
 | 
					 | 
				
			||||||
 	    {
 | 
					 | 
				
			||||||
-	      char *link_name = NULL;	/* Name of hard and symbolic links.  */
 | 
					 | 
				
			||||||
-
 | 
					 | 
				
			||||||
-	      link_name = (char *) xmalloc ((unsigned int) file_hdr->c_filesize + 1);
 | 
					 | 
				
			||||||
-	      link_name[file_hdr->c_filesize] = '\0';
 | 
					 | 
				
			||||||
-	      tape_buffered_read (link_name, in_file_des, file_hdr->c_filesize);
 | 
					 | 
				
			||||||
-	      long_format (file_hdr, link_name);
 | 
					 | 
				
			||||||
-	      free (link_name);
 | 
					 | 
				
			||||||
-	      tape_skip_padding (in_file_des, file_hdr->c_filesize);
 | 
					 | 
				
			||||||
-	      return;
 | 
					 | 
				
			||||||
+	      char *link_name = get_link_name (file_hdr, in_file_des);
 | 
					 | 
				
			||||||
+	      if (link_name)
 | 
					 | 
				
			||||||
+		{
 | 
					 | 
				
			||||||
+		  long_format (file_hdr, link_name);
 | 
					 | 
				
			||||||
+		  free (link_name);
 | 
					 | 
				
			||||||
+		}
 | 
					 | 
				
			||||||
 	    }
 | 
					 | 
				
			||||||
 	  else
 | 
					 | 
				
			||||||
-	    {
 | 
					 | 
				
			||||||
-	      long_format (file_hdr, file_hdr->c_tar_linkname);
 | 
					 | 
				
			||||||
-	      return;
 | 
					 | 
				
			||||||
-	    }
 | 
					 | 
				
			||||||
+	    long_format (file_hdr, file_hdr->c_tar_linkname);
 | 
					 | 
				
			||||||
+	  return;
 | 
					 | 
				
			||||||
 	}
 | 
					 | 
				
			||||||
       else
 | 
					 | 
				
			||||||
 #endif
 | 
					 | 
				
			||||||
@@ -650,10 +665,7 @@ copyin_link(struct cpio_file_stat *file_
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
   if (archive_format != arf_tar && archive_format != arf_ustar)
 | 
					 | 
				
			||||||
     {
 | 
					 | 
				
			||||||
-      link_name = (char *) xmalloc ((unsigned int) file_hdr->c_filesize + 1);
 | 
					 | 
				
			||||||
-      link_name[file_hdr->c_filesize] = '\0';
 | 
					 | 
				
			||||||
-      tape_buffered_read (link_name, in_file_des, file_hdr->c_filesize);
 | 
					 | 
				
			||||||
-      tape_skip_padding (in_file_des, file_hdr->c_filesize);
 | 
					 | 
				
			||||||
+      link_name = get_link_name (file_hdr, in_file_des);
 | 
					 | 
				
			||||||
     }
 | 
					 | 
				
			||||||
   else
 | 
					 | 
				
			||||||
     {
 | 
					 | 
				
			||||||
diff --git a/tests/Makefile.am b/tests/Makefile.am
 | 
					 | 
				
			||||||
index 3f714d1..b4ca92d 100644
 | 
					 | 
				
			||||||
--- a/tests/Makefile.am
 | 
					 | 
				
			||||||
+++ b/tests/Makefile.am
 | 
					 | 
				
			||||||
@@ -52,6 +52,8 @@ TESTSUITE_AT = \
 | 
					 | 
				
			||||||
  setstat04.at\
 | 
					 | 
				
			||||||
  setstat05.at\
 | 
					 | 
				
			||||||
  symlink.at\
 | 
					 | 
				
			||||||
+ symlink-bad-length.at\
 | 
					 | 
				
			||||||
+ symlink-long.at\
 | 
					 | 
				
			||||||
  version.at
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 TESTSUITE = $(srcdir)/testsuite
 | 
					 | 
				
			||||||
diff --git a/tests/symlink-bad-length.at b/tests/symlink-bad-length.at
 | 
					 | 
				
			||||||
new file mode 100644
 | 
					 | 
				
			||||||
index 0000000..6f804b1
 | 
					 | 
				
			||||||
--- a/dev/null
 | 
					 | 
				
			||||||
+++ b/tests/symlink-bad-length.at
 | 
					 | 
				
			||||||
@@ -0,0 +1,49 @@
 | 
					 | 
				
			||||||
+# Process this file with autom4te to create testsuite.  -*- Autotest -*-
 | 
					 | 
				
			||||||
+# Copyright (C) 2014 Free Software Foundation, Inc.
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+# This program 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, or (at your option)
 | 
					 | 
				
			||||||
+# any later version.
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+# This program 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 this program; if not, write to the Free Software
 | 
					 | 
				
			||||||
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
					 | 
				
			||||||
+# 02110-1301 USA.
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+# Cpio v2.11 did segfault with badly set symlink length.
 | 
					 | 
				
			||||||
+# References:
 | 
					 | 
				
			||||||
+# http://lists.gnu.org/archive/html/bug-cpio/2014-11/msg00007.html
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+AT_SETUP([symlink-bad-length])
 | 
					 | 
				
			||||||
+AT_KEYWORDS([symlink-long copyout])
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+AT_DATA([ARCHIVE.base64],
 | 
					 | 
				
			||||||
+[x3EjAIBAtIEtJy8nAQAAAHRUYW0FAAAADQBGSUxFAABzb21lIGNvbnRlbnQKAMdxIwBgQ/+hLScv
 | 
					 | 
				
			||||||
+JwEAAAB0VEhuBQD/////TElOSwAARklMRcdxAAAAAAAAAAAAAAEAAAAAAAAACwAAAAAAVFJBSUxF
 | 
					 | 
				
			||||||
+UiEhIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 | 
					 | 
				
			||||||
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 | 
					 | 
				
			||||||
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 | 
					 | 
				
			||||||
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 | 
					 | 
				
			||||||
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 | 
					 | 
				
			||||||
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 | 
					 | 
				
			||||||
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
 | 
					 | 
				
			||||||
+])
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+AT_CHECK([
 | 
					 | 
				
			||||||
+base64 -d ARCHIVE.base64 > ARCHIVE || AT_SKIP_TEST
 | 
					 | 
				
			||||||
+cpio -ntv < ARCHIVE
 | 
					 | 
				
			||||||
+test $? -eq 2
 | 
					 | 
				
			||||||
+],
 | 
					 | 
				
			||||||
+[0],
 | 
					 | 
				
			||||||
+[-rw-rw-r--   1 10029    10031          13 Nov 25 13:52 FILE
 | 
					 | 
				
			||||||
+],[cpio: LINK: stored filename length too big
 | 
					 | 
				
			||||||
+cpio: premature end of file
 | 
					 | 
				
			||||||
+])
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+AT_CLEANUP
 | 
					 | 
				
			||||||
diff --git a/tests/symlink-long.at b/tests/symlink-long.at
 | 
					 | 
				
			||||||
new file mode 100644
 | 
					 | 
				
			||||||
index 0000000..d3def2d
 | 
					 | 
				
			||||||
--- a/dev/null
 | 
					 | 
				
			||||||
+++ b/tests/symlink-long.at
 | 
					 | 
				
			||||||
@@ -0,0 +1,46 @@
 | 
					 | 
				
			||||||
+# Process this file with autom4te to create testsuite.  -*- Autotest -*-
 | 
					 | 
				
			||||||
+# Copyright (C) 2014 Free Software Foundation, Inc.
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+# This program 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, or (at your option)
 | 
					 | 
				
			||||||
+# any later version.
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+# This program 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 this program; if not, write to the Free Software
 | 
					 | 
				
			||||||
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
					 | 
				
			||||||
+# 02110-1301 USA.
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+# Cpio v2.11.90 changed the way symlink name is read from archive.
 | 
					 | 
				
			||||||
+# References:
 | 
					 | 
				
			||||||
+# http://lists.gnu.org/archive/html/bug-cpio/2014-11/msg00007.html
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+AT_SETUP([symlink-long])
 | 
					 | 
				
			||||||
+AT_KEYWORDS([symlink-long copyout])
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+AT_CHECK([
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+# len(dirname) > READBUFSIZE
 | 
					 | 
				
			||||||
+dirname=
 | 
					 | 
				
			||||||
+for i in {1..52}; do
 | 
					 | 
				
			||||||
+    dirname="xxxxxxxxx/$dirname"
 | 
					 | 
				
			||||||
+    mkdir "$dirname"
 | 
					 | 
				
			||||||
+done
 | 
					 | 
				
			||||||
+ln -s "$dirname" x || AT_SKIP_TEST
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+echo x | cpio -o > ar
 | 
					 | 
				
			||||||
+list=`cpio -tv < ar | sed 's|.*-> ||'`
 | 
					 | 
				
			||||||
+test "$list" = "$dirname" && echo success || echo fail
 | 
					 | 
				
			||||||
+],
 | 
					 | 
				
			||||||
+[0],
 | 
					 | 
				
			||||||
+[success
 | 
					 | 
				
			||||||
+],[2 blocks
 | 
					 | 
				
			||||||
+2 blocks
 | 
					 | 
				
			||||||
+])
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+AT_CLEANUP
 | 
					 | 
				
			||||||
diff --git a/tests/testsuite.at b/tests/testsuite.at
 | 
					 | 
				
			||||||
index e67689f..3b5377e 100644
 | 
					 | 
				
			||||||
--- a/tests/testsuite.at
 | 
					 | 
				
			||||||
+++ b/tests/testsuite.at
 | 
					 | 
				
			||||||
@@ -31,6 +31,8 @@ m4_include([version.at])
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 m4_include([inout.at])
 | 
					 | 
				
			||||||
 m4_include([symlink.at])
 | 
					 | 
				
			||||||
+m4_include([symlink-bad-length.at])
 | 
					 | 
				
			||||||
+m4_include([symlink-long.at])
 | 
					 | 
				
			||||||
 m4_include([interdir.at])
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 m4_include([setstat01.at])
 | 
					 | 
				
			||||||
--
 | 
					 | 
				
			||||||
cgit v0.9.0.2
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,51 +0,0 @@
 | 
				
			||||||
Partially fix CVE-2014-9112, part 2/5.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
From 54d1c42ac2cb91389fca04a5018ad573e4ae265a Mon Sep 17 00:00:00 2001
 | 
					 | 
				
			||||||
From: Sergey Poznyakoff <gray@gnu.org.ua>
 | 
					 | 
				
			||||||
Date: Mon, 01 Dec 2014 19:10:39 +0000
 | 
					 | 
				
			||||||
Subject: Bugfix
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* src/copyin.c (get_link_name): Fix range checking.
 | 
					 | 
				
			||||||
* tests/symlink-bad-length.at: Change expected error message.
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
diff --git a/src/copyin.c b/src/copyin.c
 | 
					 | 
				
			||||||
index c502c7d..042cc41 100644
 | 
					 | 
				
			||||||
--- a/src/copyin.c
 | 
					 | 
				
			||||||
+++ b/src/copyin.c
 | 
					 | 
				
			||||||
@@ -128,17 +128,17 @@ tape_skip_padding (int in_file_des, off_t offset)
 | 
					 | 
				
			||||||
 static char *
 | 
					 | 
				
			||||||
 get_link_name (struct cpio_file_stat *file_hdr, int in_file_des)
 | 
					 | 
				
			||||||
 {
 | 
					 | 
				
			||||||
-  off_t n = file_hdr->c_filesize + 1;
 | 
					 | 
				
			||||||
   char *link_name;
 | 
					 | 
				
			||||||
   
 | 
					 | 
				
			||||||
-  if (n == 0 || n > SIZE_MAX)
 | 
					 | 
				
			||||||
+  if (file_hdr->c_filesize < 0 || file_hdr->c_filesize > SIZE_MAX-1)
 | 
					 | 
				
			||||||
     {
 | 
					 | 
				
			||||||
-      error (0, 0, _("%s: stored filename length too big"), file_hdr->c_name);
 | 
					 | 
				
			||||||
+      error (0, 0, _("%s: stored filename length is out of range"),
 | 
					 | 
				
			||||||
+	     file_hdr->c_name);
 | 
					 | 
				
			||||||
       link_name = NULL;
 | 
					 | 
				
			||||||
     }
 | 
					 | 
				
			||||||
   else
 | 
					 | 
				
			||||||
     {
 | 
					 | 
				
			||||||
-      link_name = xmalloc (n);
 | 
					 | 
				
			||||||
+      link_name = xmalloc (file_hdr->c_filesize);
 | 
					 | 
				
			||||||
       tape_buffered_read (link_name, in_file_des, file_hdr->c_filesize);
 | 
					 | 
				
			||||||
       link_name[file_hdr->c_filesize] = '\0';
 | 
					 | 
				
			||||||
       tape_skip_padding (in_file_des, file_hdr->c_filesize);
 | 
					 | 
				
			||||||
diff --git a/tests/symlink-bad-length.at b/tests/symlink-bad-length.at
 | 
					 | 
				
			||||||
index 6f804b1..cbf4aa7 100644
 | 
					 | 
				
			||||||
--- a/tests/symlink-bad-length.at
 | 
					 | 
				
			||||||
+++ b/tests/symlink-bad-length.at
 | 
					 | 
				
			||||||
@@ -42,7 +42,7 @@ test $? -eq 2
 | 
					 | 
				
			||||||
 ],
 | 
					 | 
				
			||||||
 [0],
 | 
					 | 
				
			||||||
 [-rw-rw-r--   1 10029    10031          13 Nov 25 13:52 FILE
 | 
					 | 
				
			||||||
-],[cpio: LINK: stored filename length too big
 | 
					 | 
				
			||||||
+],[cpio: LINK: stored filename length is out of range
 | 
					 | 
				
			||||||
 cpio: premature end of file
 | 
					 | 
				
			||||||
 ])
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
--
 | 
					 | 
				
			||||||
cgit v0.9.0.2
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,23 +0,0 @@
 | 
				
			||||||
Partially fix CVE-2014-9112, part 3/5.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
From 58df4f1b44a1142bba500f980fd26806413b1728 Mon Sep 17 00:00:00 2001
 | 
					 | 
				
			||||||
From: Sergey Poznyakoff <gray@gnu.org.ua>
 | 
					 | 
				
			||||||
Date: Tue, 02 Dec 2014 09:33:29 +0000
 | 
					 | 
				
			||||||
Subject: Fix typo
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
diff --git a/src/copyin.c b/src/copyin.c
 | 
					 | 
				
			||||||
index 042cc41..264bfcb 100644
 | 
					 | 
				
			||||||
--- a/src/copyin.c
 | 
					 | 
				
			||||||
+++ b/src/copyin.c
 | 
					 | 
				
			||||||
@@ -138,7 +138,7 @@ get_link_name (struct cpio_file_stat *file_hdr, int in_file_des)
 | 
					 | 
				
			||||||
     }
 | 
					 | 
				
			||||||
   else
 | 
					 | 
				
			||||||
     {
 | 
					 | 
				
			||||||
-      link_name = xmalloc (file_hdr->c_filesize);
 | 
					 | 
				
			||||||
+      link_name = xmalloc (file_hdr->c_filesize + 1);
 | 
					 | 
				
			||||||
       tape_buffered_read (link_name, in_file_des, file_hdr->c_filesize);
 | 
					 | 
				
			||||||
       link_name[file_hdr->c_filesize] = '\0';
 | 
					 | 
				
			||||||
       tape_skip_padding (in_file_des, file_hdr->c_filesize);
 | 
					 | 
				
			||||||
--
 | 
					 | 
				
			||||||
cgit v0.9.0.2
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,105 +0,0 @@
 | 
				
			||||||
Partially fix CVE-2014-9112, part 4/5.  Backported to 2.11.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
From fd262d116c4564c1796be9be2799619cf7785d07 Mon Sep 17 00:00:00 2001
 | 
					 | 
				
			||||||
From: Sergey Poznyakoff <gray@gnu.org.ua>
 | 
					 | 
				
			||||||
Date: Thu, 11 Dec 2014 10:51:21 +0000
 | 
					 | 
				
			||||||
Subject: Fix error recovery in copy-in mode
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* src/copyin.c (copyin_link): Fix null dereference.
 | 
					 | 
				
			||||||
(read_in_header): Fix error recovery (bug introduced by
 | 
					 | 
				
			||||||
27e0ae55).
 | 
					 | 
				
			||||||
* tests/symlink-bad-length.at: Test error recovery.
 | 
					 | 
				
			||||||
Catch various architecture-dependent error messages (suggested
 | 
					 | 
				
			||||||
by Pavel Raiskup).
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
diff --git a/src/copyin.c b/src/copyin.c
 | 
					 | 
				
			||||||
index 264bfcb..ca12356 100644
 | 
					 | 
				
			||||||
--- a/src/copyin.c
 | 
					 | 
				
			||||||
+++ b/src/copyin.c
 | 
					 | 
				
			||||||
@@ -655,7 +655,7 @@ copyin_device (struct cpio_file_stat* file_hdr)
 | 
					 | 
				
			||||||
 }
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 static void
 | 
					 | 
				
			||||||
-copyin_link(struct cpio_file_stat *file_hdr, int in_file_des)
 | 
					 | 
				
			||||||
+copyin_link (struct cpio_file_stat *file_hdr, int in_file_des)
 | 
					 | 
				
			||||||
 {
 | 
					 | 
				
			||||||
   char *link_name = NULL;	/* Name of hard and symbolic links.  */
 | 
					 | 
				
			||||||
   int res;			/* Result of various function calls.  */
 | 
					 | 
				
			||||||
@@ -666,6 +666,8 @@ copyin_link(struct cpio_file_stat *file_
 | 
					 | 
				
			||||||
   if (archive_format != arf_tar && archive_format != arf_ustar)
 | 
					 | 
				
			||||||
     {
 | 
					 | 
				
			||||||
       link_name = get_link_name (file_hdr, in_file_des);
 | 
					 | 
				
			||||||
+      if (!link_name)
 | 
					 | 
				
			||||||
+	return;
 | 
					 | 
				
			||||||
     }
 | 
					 | 
				
			||||||
   else
 | 
					 | 
				
			||||||
     {
 | 
					 | 
				
			||||||
@@ -1017,7 +1019,7 @@ read_in_header (struct cpio_file_stat *file_hdr, int in_des)
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
   file_hdr->c_tar_linkname = NULL;
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
-  tape_buffered_read (magic.str, in_des, 6L);
 | 
					 | 
				
			||||||
+  tape_buffered_read (magic.str, in_des, sizeof (magic.str));
 | 
					 | 
				
			||||||
   while (1)
 | 
					 | 
				
			||||||
     {
 | 
					 | 
				
			||||||
       if (append_flag)
 | 
					 | 
				
			||||||
@@ -1062,8 +1064,8 @@ read_in_header (struct cpio_file_stat *file_hdr, int in_des)
 | 
					 | 
				
			||||||
 	  break;
 | 
					 | 
				
			||||||
 	}
 | 
					 | 
				
			||||||
       bytes_skipped++;
 | 
					 | 
				
			||||||
-      memmove (magic.str, magic.str + 1, 5);
 | 
					 | 
				
			||||||
-      tape_buffered_read (magic.str, in_des, 1L);
 | 
					 | 
				
			||||||
+      memmove (magic.str, magic.str + 1, sizeof (magic.str) - 1);
 | 
					 | 
				
			||||||
+      tape_buffered_read (magic.str + sizeof (magic.str) - 1, in_des, 1L);
 | 
					 | 
				
			||||||
     }
 | 
					 | 
				
			||||||
 }
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
diff --git a/tests/symlink-bad-length.at b/tests/symlink-bad-length.at
 | 
					 | 
				
			||||||
index cbf4aa7..4dbeaa3 100644
 | 
					 | 
				
			||||||
--- a/tests/symlink-bad-length.at
 | 
					 | 
				
			||||||
+++ b/tests/symlink-bad-length.at
 | 
					 | 
				
			||||||
@@ -24,9 +24,9 @@ AT_SETUP([symlink-bad-length])
 | 
					 | 
				
			||||||
 AT_KEYWORDS([symlink-long copyout])
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 AT_DATA([ARCHIVE.base64],
 | 
					 | 
				
			||||||
-[x3EjAIBAtIEtJy8nAQAAAHRUYW0FAAAADQBGSUxFAABzb21lIGNvbnRlbnQKAMdxIwBgQ/+hLScv
 | 
					 | 
				
			||||||
-JwEAAAB0VEhuBQD/////TElOSwAARklMRcdxAAAAAAAAAAAAAAEAAAAAAAAACwAAAAAAVFJBSUxF
 | 
					 | 
				
			||||||
-UiEhIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 | 
					 | 
				
			||||||
+[x3ECCJ1jtIHoA2QAAQAAAIlUwl0FAAAADQBGSUxFAABzb21lIGNvbnRlbnQKAMdxAgidHv+h6ANk
 | 
					 | 
				
			||||||
+AAEAAACJVHFtBQD/////TElOSwAARklMRcdxAgieHqSB6ANkAAEAAACJVDJuBgAAABIARklMRTIA
 | 
					 | 
				
			||||||
+c29tZSBtb3JlIGNvbnRlbnQKx3EAAAAAAAAAAAAAAQAAAAAAAAALAAAAAABUUkFJTEVSISEhAAAA
 | 
					 | 
				
			||||||
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 | 
					 | 
				
			||||||
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 | 
					 | 
				
			||||||
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 | 
					 | 
				
			||||||
@@ -37,13 +37,23 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 AT_CHECK([
 | 
					 | 
				
			||||||
 base64 -d ARCHIVE.base64 > ARCHIVE || AT_SKIP_TEST
 | 
					 | 
				
			||||||
-cpio -ntv < ARCHIVE
 | 
					 | 
				
			||||||
-test $? -eq 2
 | 
					 | 
				
			||||||
+TZ=UTC cpio -ntv < ARCHIVE 2>stderr
 | 
					 | 
				
			||||||
+rc=$?
 | 
					 | 
				
			||||||
+cat stderr | grep -v \
 | 
					 | 
				
			||||||
+    -e 'stored filename length is out of range' \
 | 
					 | 
				
			||||||
+    -e 'premature end of file' \
 | 
					 | 
				
			||||||
+    -e 'archive header has reverse byte-order' \
 | 
					 | 
				
			||||||
+    -e 'memory exhausted' \
 | 
					 | 
				
			||||||
+    >&2
 | 
					 | 
				
			||||||
+echo >&2 STDERR
 | 
					 | 
				
			||||||
+test "$rc" -ne 0
 | 
					 | 
				
			||||||
 ],
 | 
					 | 
				
			||||||
-[0],
 | 
					 | 
				
			||||||
-[-rw-rw-r--   1 10029    10031          13 Nov 25 13:52 FILE
 | 
					 | 
				
			||||||
-],[cpio: LINK: stored filename length is out of range
 | 
					 | 
				
			||||||
-cpio: premature end of file
 | 
					 | 
				
			||||||
+[1],
 | 
					 | 
				
			||||||
+[-rw-rw-r--   1 1000     100            13 Dec 11 09:02 FILE
 | 
					 | 
				
			||||||
+-rw-r--r--   1 1000     100            18 Dec 11 10:13 FILE2
 | 
					 | 
				
			||||||
+],[cpio: warning: skipped 4 bytes of junk
 | 
					 | 
				
			||||||
+1 block
 | 
					 | 
				
			||||||
+STDERR
 | 
					 | 
				
			||||||
 ])
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 AT_CLEANUP
 | 
					 | 
				
			||||||
--
 | 
					 | 
				
			||||||
cgit v0.9.0.2
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,88 +0,0 @@
 | 
				
			||||||
Partially fix CVE-2014-9112, part 5/5.  Backported to 2.11.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
From f6a8a2cbd2d5ca40ea94900b55b845dd5ca87328 Mon Sep 17 00:00:00 2001
 | 
					 | 
				
			||||||
From: Sergey Poznyakoff <gray@gnu.org.ua>
 | 
					 | 
				
			||||||
Date: Thu, 11 Dec 2014 13:21:40 +0000
 | 
					 | 
				
			||||||
Subject: Fix symlink-bad-length test for 64-bit architectures.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* src/util.c: Return non-zero exit code if EOF is hit prematurely.
 | 
					 | 
				
			||||||
* tests/symlink-bad-length.at: Revert to original archive: there's
 | 
					 | 
				
			||||||
no use testing for recovery, because that depends on the host
 | 
					 | 
				
			||||||
architecture.  Don't test for exit code as well (same reason).
 | 
					 | 
				
			||||||
Account for eventual warning messages.
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
diff --git a/src/util.c b/src/util.c
 | 
					 | 
				
			||||||
index 6c483f8..39c9813 100644
 | 
					 | 
				
			||||||
--- a/src/util.c
 | 
					 | 
				
			||||||
+++ b/src/util.c
 | 
					 | 
				
			||||||
@@ -206,10 +206,7 @@ tape_fill_input_buffer (int in_des, int
 | 
					 | 
				
			||||||
   if (input_size < 0)
 | 
					 | 
				
			||||||
     error (1, errno, _("read error"));
 | 
					 | 
				
			||||||
   if (input_size == 0)
 | 
					 | 
				
			||||||
-    {
 | 
					 | 
				
			||||||
-      error (0, 0, _("premature end of file"));
 | 
					 | 
				
			||||||
-      exit (1);
 | 
					 | 
				
			||||||
-    }
 | 
					 | 
				
			||||||
+    error (PAXEXIT_FAILURE, 0, _("premature end of file"));
 | 
					 | 
				
			||||||
   input_bytes += input_size;
 | 
					 | 
				
			||||||
 }
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
diff --git a/tests/symlink-bad-length.at b/tests/symlink-bad-length.at
 | 
					 | 
				
			||||||
index 4dbeaa3..e1a7093 100644
 | 
					 | 
				
			||||||
--- a/tests/symlink-bad-length.at
 | 
					 | 
				
			||||||
+++ b/tests/symlink-bad-length.at
 | 
					 | 
				
			||||||
@@ -24,9 +24,9 @@ AT_SETUP([symlink-bad-length])
 | 
					 | 
				
			||||||
 AT_KEYWORDS([symlink-long copyout])
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 AT_DATA([ARCHIVE.base64],
 | 
					 | 
				
			||||||
-[x3ECCJ1jtIHoA2QAAQAAAIlUwl0FAAAADQBGSUxFAABzb21lIGNvbnRlbnQKAMdxAgidHv+h6ANk
 | 
					 | 
				
			||||||
-AAEAAACJVHFtBQD/////TElOSwAARklMRcdxAgieHqSB6ANkAAEAAACJVDJuBgAAABIARklMRTIA
 | 
					 | 
				
			||||||
-c29tZSBtb3JlIGNvbnRlbnQKx3EAAAAAAAAAAAAAAQAAAAAAAAALAAAAAABUUkFJTEVSISEhAAAA
 | 
					 | 
				
			||||||
+[x3EjAIBAtIEtJy8nAQAAAHRUYW0FAAAADQBGSUxFAABzb21lIGNvbnRlbnQKAMdxIwBgQ/+hLScv
 | 
					 | 
				
			||||||
+JwEAAAB0VEhuBQD/////TElOSwAARklMRcdxAAAAAAAAAAAAAAEAAAAAAAAACwAAAAAAVFJBSUxF
 | 
					 | 
				
			||||||
+UiEhIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 | 
					 | 
				
			||||||
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 | 
					 | 
				
			||||||
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 | 
					 | 
				
			||||||
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 | 
					 | 
				
			||||||
@@ -35,25 +35,30 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 | 
					 | 
				
			||||||
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
 | 
					 | 
				
			||||||
 ])
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
+# The exact error message and exit status depend on the host architecture,
 | 
					 | 
				
			||||||
+# therefore strderr is filtered out and error code is not checked.
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
+# So far the only case when cpio would exit with code 0 is when it skips
 | 
					 | 
				
			||||||
+# several bytes and encounters a valid record header.  Perhaps it should
 | 
					 | 
				
			||||||
+# exit with code 2 (non-critical error), if at least one byte was skipped,
 | 
					 | 
				
			||||||
+# but that could hurt backward compatibility.
 | 
					 | 
				
			||||||
+
 | 
					 | 
				
			||||||
 AT_CHECK([
 | 
					 | 
				
			||||||
 base64 -d ARCHIVE.base64 > ARCHIVE || AT_SKIP_TEST
 | 
					 | 
				
			||||||
-TZ=UTC cpio -ntv < ARCHIVE 2>stderr
 | 
					 | 
				
			||||||
-rc=$?
 | 
					 | 
				
			||||||
+TZ=UTC cpio -ntv < ARCHIVE 2>stderr 
 | 
					 | 
				
			||||||
 cat stderr | grep -v \
 | 
					 | 
				
			||||||
     -e 'stored filename length is out of range' \
 | 
					 | 
				
			||||||
     -e 'premature end of file' \
 | 
					 | 
				
			||||||
     -e 'archive header has reverse byte-order' \
 | 
					 | 
				
			||||||
     -e 'memory exhausted' \
 | 
					 | 
				
			||||||
+    -e 'skipped [[0-9][0-9]*] bytes of junk' \
 | 
					 | 
				
			||||||
+    -e '[[0-9][0-9]*] block' \
 | 
					 | 
				
			||||||
     >&2
 | 
					 | 
				
			||||||
 echo >&2 STDERR
 | 
					 | 
				
			||||||
-test "$rc" -ne 0
 | 
					 | 
				
			||||||
 ],
 | 
					 | 
				
			||||||
-[1],
 | 
					 | 
				
			||||||
-[-rw-rw-r--   1 1000     100            13 Dec 11 09:02 FILE
 | 
					 | 
				
			||||||
--rw-r--r--   1 1000     100            18 Dec 11 10:13 FILE2
 | 
					 | 
				
			||||||
-],[cpio: warning: skipped 4 bytes of junk
 | 
					 | 
				
			||||||
-1 block
 | 
					 | 
				
			||||||
-STDERR
 | 
					 | 
				
			||||||
+[0],
 | 
					 | 
				
			||||||
+[-rw-rw-r--   1 10029    10031          13 Nov 25 11:52 FILE
 | 
					 | 
				
			||||||
+],[STDERR
 | 
					 | 
				
			||||||
 ])
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 AT_CLEANUP
 | 
					 | 
				
			||||||
--
 | 
					 | 
				
			||||||
cgit v0.9.0.2
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,44 +0,0 @@
 | 
				
			||||||
From bebf9662c406d1d137a66c567d8748b489d352e7 Mon Sep 17 00:00:00 2001
 | 
					 | 
				
			||||||
From: Pavel Raiskup <praiskup@redhat.com>
 | 
					 | 
				
			||||||
Date: Thu, 4 Jun 2015 13:27:42 +0200
 | 
					 | 
				
			||||||
Subject: [PATCH] tests: fix expected output for old file
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Thanks Victor Rodriguez.  Upstream thread:
 | 
					 | 
				
			||||||
http://lists.gnu.org/archive/html/bug-cpio/2015-06/msg00000.html
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* tests/symlink-bad-length.at (STDOUT): Expect the year string
 | 
					 | 
				
			||||||
'2014' is printed and not time because the file in archive is
 | 
					 | 
				
			||||||
older than 6 months.
 | 
					 | 
				
			||||||
* Thanks: Mention Victor.
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
 THANKS                      | 1 +
 | 
					 | 
				
			||||||
 tests/symlink-bad-length.at | 2 +-
 | 
					 | 
				
			||||||
 2 files changed, 2 insertions(+), 1 deletion(-)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
diff --git a/THANKS b/THANKS
 | 
					 | 
				
			||||||
index 45b0dfb..3228df9 100644
 | 
					 | 
				
			||||||
--- a/THANKS
 | 
					 | 
				
			||||||
+++ b/THANKS
 | 
					 | 
				
			||||||
@@ -23,6 +23,7 @@ Mitsuru Chinen		<mchinen@yamato.ibm.com>
 | 
					 | 
				
			||||||
 Peter Breitenlohner     <peb@mppmu.mpg.de>
 | 
					 | 
				
			||||||
 Peter Vrabec            <pvrabec@redhat.com>
 | 
					 | 
				
			||||||
 Robert Millan           <rmh@aybabtu.com>
 | 
					 | 
				
			||||||
+Victor Rodriguez        <vm.rod25@gmail.com>
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 Local Variables:
 | 
					 | 
				
			||||||
 mode: Fundamental
 | 
					 | 
				
			||||||
diff --git a/tests/symlink-bad-length.at b/tests/symlink-bad-length.at
 | 
					 | 
				
			||||||
index e1a7093..2cdc692 100644
 | 
					 | 
				
			||||||
--- a/tests/symlink-bad-length.at
 | 
					 | 
				
			||||||
+++ b/tests/symlink-bad-length.at
 | 
					 | 
				
			||||||
@@ -57,7 +57,7 @@ cat stderr | grep -v \
 | 
					 | 
				
			||||||
 echo >&2 STDERR
 | 
					 | 
				
			||||||
 ],
 | 
					 | 
				
			||||||
 [0],
 | 
					 | 
				
			||||||
-[-rw-rw-r--   1 10029    10031          13 Nov 25 11:52 FILE
 | 
					 | 
				
			||||||
+[-rw-rw-r--   1 10029    10031          13 Nov 25  2014 FILE
 | 
					 | 
				
			||||||
 ],[STDERR
 | 
					 | 
				
			||||||
 ])
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
-- 
 | 
					 | 
				
			||||||
2.1.0
 | 
					 | 
				
			||||||
							
								
								
									
										23
									
								
								gnu/packages/patches/gnucash-price-quotes-perl.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								gnu/packages/patches/gnucash-price-quotes-perl.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,23 @@
 | 
				
			||||||
 | 
					After wrapping gnc-fq-check and gnc-fq-helper we can no longer execute them
 | 
				
			||||||
 | 
					with perl, so execute them directly instead.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--- gnucash-2.6.6/src/scm/price-quotes.scm.orig	2014-04-27 17:42:28.000000000 -0500
 | 
				
			||||||
 | 
					+++ gnucash-2.6.6/src/scm/price-quotes.scm	2015-07-09 16:12:11.196218472 -0500
 | 
				
			||||||
 | 
					@@ -74,7 +74,7 @@
 | 
				
			||||||
 | 
					     (define (start-program)
 | 
				
			||||||
 | 
					       (if (not (string-null? gnc:*finance-quote-check*))
 | 
				
			||||||
 | 
					           (set! program (gnc-spawn-process-async
 | 
				
			||||||
 | 
					-                         (list "perl" "-w" gnc:*finance-quote-check*) #t))))
 | 
				
			||||||
 | 
					+                         (list gnc:*finance-quote-check*) #t))))
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					     (define (get-sources)
 | 
				
			||||||
 | 
					       (if (not (null? program))
 | 
				
			||||||
 | 
					@@ -158,7 +158,7 @@
 | 
				
			||||||
 | 
					     (define (start-quoter)
 | 
				
			||||||
 | 
					       (if (not (string-null? gnc:*finance-quote-helper*))
 | 
				
			||||||
 | 
					           (set! quoter (gnc-spawn-process-async
 | 
				
			||||||
 | 
					-                        (list "perl" "-w" gnc:*finance-quote-helper*) #t))))
 | 
				
			||||||
 | 
					+                        (list gnc:*finance-quote-helper*) #t))))
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					     (define (get-quotes)
 | 
				
			||||||
 | 
					       (if (not (null? quoter))
 | 
				
			||||||
							
								
								
									
										16
									
								
								gnu/packages/patches/guile-present-coding.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								gnu/packages/patches/guile-present-coding.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,16 @@
 | 
				
			||||||
 | 
					The tests/org-mode.scm tests expects 'jpl-outline-es' to be read as UTF-8.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--- guile-present-0.3.0/tests/org-mode.scm	2014-09-23 22:29:51.426705753 +0200
 | 
				
			||||||
 | 
					+++ guile-present-0.3.0/tests/org-mode.scm	2014-09-23 22:30:09.634705548 +0200
 | 
				
			||||||
 | 
					@@ -194,9 +194,10 @@
 | 
				
			||||||
 | 
					                "(Just another hacker)"
 | 
				
			||||||
 | 
					                "wingo@fluendo.com")
 | 
				
			||||||
 | 
					             (p "Julien Moutte, CEO" "julien@fluendo.com")))
 | 
				
			||||||
 | 
					+   (with-fluids ((%default-port-encoding "UTF-8"))
 | 
				
			||||||
 | 
					    (call-with-input-file
 | 
				
			||||||
 | 
					        (in-vicinity *top-srcdir* "tests/jpl-outline-es")
 | 
				
			||||||
 | 
					-     org->presentation)))
 | 
				
			||||||
 | 
					+       org->presentation))))
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 (setlocale LC_ALL "")
 | 
				
			||||||
 | 
					 (exit-with-summary (run-all-defined-test-cases))
 | 
				
			||||||
							
								
								
									
										16
									
								
								gnu/packages/patches/guile-rsvg-pkgconfig.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								gnu/packages/patches/guile-rsvg-pkgconfig.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,16 @@
 | 
				
			||||||
 | 
					This patch fixes a bug in guile-rsvg's build system, whereby the CFLAGS
 | 
				
			||||||
 | 
					and LDFLAGS for Guile would not be captured.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--- guile-rsvg-2.18.1/configure.ac	2015-08-31 22:30:30.578909480 +0200
 | 
				
			||||||
 | 
					+++ guile-rsvg-2.18.1/configure.ac	2015-08-31 22:32:15.071516084 +0200
 | 
				
			||||||
 | 
					@@ -39,6 +39,10 @@ AC_SUBST(WARN_CFLAGS)
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 GUILE_PKG([2.2 2.0 1.8])
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					+dnl The above macro fails to set the 'GUILE_CFLAGS' and 'GUILE_LIBS'
 | 
				
			||||||
 | 
					+dnl substitution variables, hence this line.
 | 
				
			||||||
 | 
					+PKG_CHECK_MODULES(GUILE, guile-2.0)
 | 
				
			||||||
 | 
					+
 | 
				
			||||||
 | 
					 PKG_CHECK_MODULES(GUILE_CAIRO, guile-cairo >= 1.4.0)
 | 
				
			||||||
 | 
					 AC_SUBST(GUILE_CAIRO_LIBS)
 | 
				
			||||||
 | 
					 AC_SUBST(GUILE_CAIRO_CFLAGS)
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					Rather than unconditionally using Mozilla's CA certificates, let the user tell
 | 
				
			||||||
 | 
					LWP's UserAgent where to find certificates with the PERL_LWP_SSL_CA_FILE,
 | 
				
			||||||
 | 
					HTTPS_CA_FILE, PERL_LWP_SSL_CA_PATH, or HTTPS_CA_DIR environment variables
 | 
				
			||||||
 | 
					instead.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--- Finance-Quote-1.37/lib/Finance/Quote/Tiaacref.pm.orig	2015-02-01 13:24:41.000000000 -0600
 | 
				
			||||||
 | 
					+++ Finance-Quote-1.37/lib/Finance/Quote/Tiaacref.pm	2015-07-07 20:09:47.278885944 -0500
 | 
				
			||||||
 | 
					@@ -30,7 +30,6 @@
 | 
				
			||||||
 | 
					 package Finance::Quote::Tiaacref;
 | 
				
			||||||
 | 
					 require 5.005;
 | 
				
			||||||
 | 
					 require LWP::Protocol::https;
 | 
				
			||||||
 | 
					-require Mozilla::CA;
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 use strict;
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
							
								
								
									
										29
									
								
								gnu/packages/patches/xfce4-settings-defaults.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								gnu/packages/patches/xfce4-settings-defaults.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					This patch make Xfce use "gnome" as the default icon theme and enable font antialias.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Taken from ArchLinux.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					diff -upr xfce4-settings-4.12.0.orig/xfsettingsd/xsettings.xml xfce4-settings-4.12.0/xfsettingsd/xsettings.xml
 | 
				
			||||||
 | 
					--- xfce4-settings-4.12.0.orig/xfsettingsd/xsettings.xml	2015-02-24 03:33:11.000000000 +0200
 | 
				
			||||||
 | 
					+++ xfce4-settings-4.12.0/xfsettingsd/xsettings.xml	2015-03-01 09:52:24.376869688 +0200
 | 
				
			||||||
 | 
					@@ -6,8 +6,8 @@
 | 
				
			||||||
 | 
					 <?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					 <channel name="xsettings" version="1.0">
 | 
				
			||||||
 | 
					   <property name="Net" type="empty">
 | 
				
			||||||
 | 
					     <property name="ThemeName" type="empty"/>
 | 
				
			||||||
 | 
					-    <property name="IconThemeName" type="empty"/>
 | 
				
			||||||
 | 
					+    <property name="IconThemeName" type="string" value="gnome"/>
 | 
				
			||||||
 | 
					     <property name="DoubleClickTime" type="int" value="400"/>
 | 
				
			||||||
 | 
					     <property name="DoubleClickDistance" type="int" value="5"/>
 | 
				
			||||||
 | 
					     <property name="DndDragThreshold" type="int" value="8"/>
 | 
				
			||||||
 | 
					@@ -19,9 +19,9 @@
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="Xft" type="empty">
 | 
				
			||||||
 | 
					     <property name="DPI" type="empty"/>
 | 
				
			||||||
 | 
					-    <property name="Antialias" type="int" value="-1"/>
 | 
				
			||||||
 | 
					+    <property name="Antialias" type="int" value="1"/>
 | 
				
			||||||
 | 
					     <property name="Hinting" type="int" value="-1"/>
 | 
				
			||||||
 | 
					-    <property name="HintStyle" type="string" value="hintnone"/>
 | 
				
			||||||
 | 
					+    <property name="HintStyle" type="string" value="hintfull"/>
 | 
				
			||||||
 | 
					     <property name="RGBA" type="string" value="none"/>
 | 
				
			||||||
 | 
					     <!-- <property name="Lcdfilter" type="string" value="none"/> -->
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
| 
						 | 
					@ -20,7 +20,9 @@
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
  #:use-module (guix licenses)
 | 
					  #:use-module (guix licenses)
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
 | 
					  #:use-module (guix git-download)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
 | 
					  #:use-module (guix build-system python)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
  #:use-module (gnu packages ed)
 | 
					  #:use-module (gnu packages ed)
 | 
				
			||||||
  #:use-module (gnu packages base)
 | 
					  #:use-module (gnu packages base)
 | 
				
			||||||
| 
						 | 
					@ -29,6 +31,8 @@
 | 
				
			||||||
  #:use-module (gnu packages gawk)
 | 
					  #:use-module (gnu packages gawk)
 | 
				
			||||||
  #:use-module (gnu packages less)
 | 
					  #:use-module (gnu packages less)
 | 
				
			||||||
  #:use-module (gnu packages perl)
 | 
					  #:use-module (gnu packages perl)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages python)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages mail)
 | 
				
			||||||
  #:use-module (gnu packages xml))
 | 
					  #:use-module (gnu packages xml))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public patchutils
 | 
					(define-public patchutils
 | 
				
			||||||
| 
						 | 
					@ -170,3 +174,31 @@ refreshed, and more.")
 | 
				
			||||||
     "Colordiff is Perl script wrapper on top of diff command which provides
 | 
					     "Colordiff is Perl script wrapper on top of diff command which provides
 | 
				
			||||||
'syntax highlighting' for various patch formats.")
 | 
					'syntax highlighting' for various patch formats.")
 | 
				
			||||||
    (license gpl2+)))
 | 
					    (license gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public patches
 | 
				
			||||||
 | 
					  (let ((commit "26d7dbc"))
 | 
				
			||||||
 | 
					    (package
 | 
				
			||||||
 | 
					      (name "patches")
 | 
				
			||||||
 | 
					      (version (string-append "0.0." commit))
 | 
				
			||||||
 | 
					      (source (origin
 | 
				
			||||||
 | 
					                (method git-fetch)
 | 
				
			||||||
 | 
					                (uri (git-reference
 | 
				
			||||||
 | 
					                      (url "https://github.com/aliguori/patches")
 | 
				
			||||||
 | 
					                      (commit commit)))
 | 
				
			||||||
 | 
					                (sha256
 | 
				
			||||||
 | 
					                 (base32
 | 
				
			||||||
 | 
					                  "1bah6y84nlii5yif189ns28dz1m9vmsyw66jyk2vr5yf0njf7mzh"))))
 | 
				
			||||||
 | 
					      (build-system python-build-system)
 | 
				
			||||||
 | 
					      (inputs `(("python-notmuch" ,python2-notmuch)))
 | 
				
			||||||
 | 
					      (arguments
 | 
				
			||||||
 | 
					       `(#:tests? #f                             ;no "test" target
 | 
				
			||||||
 | 
					                  #:python ,python-2))           ;not compatible with Python 3
 | 
				
			||||||
 | 
					      (home-page "https://github.com/aliguori/patches")
 | 
				
			||||||
 | 
					      (synopsis "Patch tracking tool")
 | 
				
			||||||
 | 
					      (description
 | 
				
			||||||
 | 
					       "'Patches' is a patch-tracking tool initially written for the QEMU
 | 
				
			||||||
 | 
					project.  It provides commands that build a database of patches from a mailing
 | 
				
			||||||
 | 
					list, and commands that can search that database.  It allows users to track
 | 
				
			||||||
 | 
					the status of a patch, apply patches, and search for patches---all that from
 | 
				
			||||||
 | 
					the command-line or from Emacs via its Notmuch integration.")
 | 
				
			||||||
 | 
					      (license gpl2+))))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,6 +25,7 @@
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
  #:use-module (guix build-system cmake)
 | 
					  #:use-module (guix build-system cmake)
 | 
				
			||||||
 | 
					  #:use-module (guix build-system python)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
  #:use-module (gnu packages compression)
 | 
					  #:use-module (gnu packages compression)
 | 
				
			||||||
  #:use-module (gnu packages fontutils)
 | 
					  #:use-module (gnu packages fontutils)
 | 
				
			||||||
| 
						 | 
					@ -36,6 +37,7 @@
 | 
				
			||||||
  #:use-module (gnu packages lesstif)
 | 
					  #:use-module (gnu packages lesstif)
 | 
				
			||||||
  #:use-module (gnu packages image)
 | 
					  #:use-module (gnu packages image)
 | 
				
			||||||
  #:use-module (gnu packages pkg-config)
 | 
					  #:use-module (gnu packages pkg-config)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages qt)
 | 
				
			||||||
  #:use-module (gnu packages xorg)
 | 
					  #:use-module (gnu packages xorg)
 | 
				
			||||||
  #:use-module (gnu packages gnome)
 | 
					  #:use-module (gnu packages gnome)
 | 
				
			||||||
  #:use-module (gnu packages glib)
 | 
					  #:use-module (gnu packages glib)
 | 
				
			||||||
| 
						 | 
					@ -103,6 +105,50 @@
 | 
				
			||||||
   (license license:gpl2+)
 | 
					   (license license:gpl2+)
 | 
				
			||||||
   (home-page "http://poppler.freedesktop.org/")))
 | 
					   (home-page "http://poppler.freedesktop.org/")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public poppler-qt4
 | 
				
			||||||
 | 
					  (package (inherit poppler)
 | 
				
			||||||
 | 
					   (name "poppler-qt4")
 | 
				
			||||||
 | 
					   (inputs `(("qt-4" ,qt-4)
 | 
				
			||||||
 | 
					             ,@(package-inputs poppler)))
 | 
				
			||||||
 | 
					   (synopsis "Qt4 frontend for the Poppler PDF rendering library")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python-poppler-qt4
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "python-poppler-qt4")
 | 
				
			||||||
 | 
					    (version "0.24.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					      (origin
 | 
				
			||||||
 | 
					        (method url-fetch)
 | 
				
			||||||
 | 
					        (uri (string-append "https://pypi.python.org/packages/source/p"
 | 
				
			||||||
 | 
					                            "/python-poppler-qt4/python-poppler-qt4-"
 | 
				
			||||||
 | 
					                            version ".tar.gz"))
 | 
				
			||||||
 | 
					        (sha256
 | 
				
			||||||
 | 
					         (base32
 | 
				
			||||||
 | 
					          "0x63niylkk4q3h3ay8zrk3m1xiik0x3hlr4gvj7kswx48qi1vb99"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-after
 | 
				
			||||||
 | 
					          'unpack 'patch-poppler-include-paths
 | 
				
			||||||
 | 
					          (lambda _
 | 
				
			||||||
 | 
					            (substitute* (find-files "." "poppler-.*\\.sip")
 | 
				
			||||||
 | 
					              (("qt4/poppler-.*\\.h" header)
 | 
				
			||||||
 | 
					               (string-append "poppler/" header)))
 | 
				
			||||||
 | 
					            #t)))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("python-sip" ,python-sip)
 | 
				
			||||||
 | 
					       ("python-pyqt-4" ,python-pyqt-4)
 | 
				
			||||||
 | 
					       ("poppler-qt4" ,poppler-qt4)))
 | 
				
			||||||
 | 
					    (home-page "https://pypi.python.org/pypi/python-poppler-qt4")
 | 
				
			||||||
 | 
					    (synopsis "Python bindings for Poppler-Qt4")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "This package provides Python bindings for the Qt4 interface of the
 | 
				
			||||||
 | 
					Poppler PDF rendering library.")
 | 
				
			||||||
 | 
					    (license license:lgpl2.1+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public xpdf
 | 
					(define-public xpdf
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
   (name "xpdf")
 | 
					   (name "xpdf")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1052,6 +1052,46 @@ contained in Appendix A of FIPS Publication 181, \"Standard for Automated
 | 
				
			||||||
Password Generator\".")
 | 
					Password Generator\".")
 | 
				
			||||||
    (license (package-license perl))))
 | 
					    (license (package-license perl))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public perl-czplib
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "perl-czplib")
 | 
				
			||||||
 | 
					    (version "1.0.5")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "mirror://sourceforge/czplib/czplib.v"
 | 
				
			||||||
 | 
					                           version ".tgz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "12kln8l5h406r1ss6zbazgcshmys9nvabkrhvk2zwrrgl1saq1kf"))
 | 
				
			||||||
 | 
					       (modules '((guix build utils)))
 | 
				
			||||||
 | 
					       (snippet
 | 
				
			||||||
 | 
					        '(begin
 | 
				
			||||||
 | 
					           ;; Remove .git directory
 | 
				
			||||||
 | 
					           (delete-file-recursively ".git")
 | 
				
			||||||
 | 
					           #t))))
 | 
				
			||||||
 | 
					    (build-system perl-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (delete 'configure)
 | 
				
			||||||
 | 
					         (delete 'build)
 | 
				
			||||||
 | 
					         (replace
 | 
				
			||||||
 | 
					          'install
 | 
				
			||||||
 | 
					          (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					            (copy-recursively "."
 | 
				
			||||||
 | 
					                              (string-append (assoc-ref outputs "out")
 | 
				
			||||||
 | 
					                                             "/plib/perl5/site_perl/"
 | 
				
			||||||
 | 
					                                             ,(package-version perl)
 | 
				
			||||||
 | 
					                                             "/czplib/"))
 | 
				
			||||||
 | 
					            #t)))))
 | 
				
			||||||
 | 
					    (home-page "http://sourceforge.net/projects/czplib/")
 | 
				
			||||||
 | 
					    (synopsis "Library for genomic analysis")
 | 
				
			||||||
 | 
					    (description "Chaolin Zhang's Perl Library (czplib) contains assorted
 | 
				
			||||||
 | 
					functions and data structures for processing and analysing genomic and
 | 
				
			||||||
 | 
					bioinformatics data.")
 | 
				
			||||||
 | 
					    (license gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public perl-data-dump
 | 
					(define-public perl-data-dump
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "perl-data-dump")
 | 
					    (name "perl-data-dump")
 | 
				
			||||||
| 
						 | 
					@ -1293,6 +1333,31 @@ applicable).")
 | 
				
			||||||
Date::Calc.")
 | 
					Date::Calc.")
 | 
				
			||||||
    (license (list (package-license perl) lgpl2.0+))))
 | 
					    (license (list (package-license perl) lgpl2.0+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public perl-date-manip
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "perl-date-manip")
 | 
				
			||||||
 | 
					    (version "6.50")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "https://cpan.metacpan.org/authors/id/S/SB/SBECK/"
 | 
				
			||||||
 | 
					                           "Date-Manip-" version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "0zd0wbf91i49753rnf7m1lw197hdl5r97mxy0n43zdmcmhvkb3qq"))))
 | 
				
			||||||
 | 
					    (build-system perl-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     ;; Tests would require tzdata for timezone information, but tzdata is in
 | 
				
			||||||
 | 
					     ;; (gnu packages base) which would create a circular dependency.  TODO:
 | 
				
			||||||
 | 
					     ;; Maybe put this package elsewhere so we can turn on tests.
 | 
				
			||||||
 | 
					     '(#:tests? #f))
 | 
				
			||||||
 | 
					    (home-page "http://search.cpan.org/dist/Date-Manip")
 | 
				
			||||||
 | 
					    (synopsis "Date manipulation routines")
 | 
				
			||||||
 | 
					    (description "Date::Manip is a series of modules for common date/time
 | 
				
			||||||
 | 
					operations, such as comparing two times, determining a date a given amount of
 | 
				
			||||||
 | 
					time from another, or parsing international times.")
 | 
				
			||||||
 | 
					    (license (package-license perl))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public perl-datetime
 | 
					(define-public perl-datetime
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "perl-datetime")
 | 
					    (name "perl-datetime")
 | 
				
			||||||
| 
						 | 
					@ -1666,7 +1731,7 @@ particular command is available.")
 | 
				
			||||||
    (home-page "http://search.cpan.org/dist/Devel-GlobalDestruction")
 | 
					    (home-page "http://search.cpan.org/dist/Devel-GlobalDestruction")
 | 
				
			||||||
    (synopsis "Provides equivalent of ${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls")
 | 
					    (synopsis "Provides equivalent of ${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls")
 | 
				
			||||||
    (description "Devel::GlobalDestruction provides a function returning the
 | 
					    (description "Devel::GlobalDestruction provides a function returning the
 | 
				
			||||||
equivalent of \"${^GLOBAL_PHASE} eq 'DESTRUCT'\" for older perls.")
 | 
					equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls.")
 | 
				
			||||||
    (license (package-license perl))))
 | 
					    (license (package-license perl))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public perl-devel-lexalias
 | 
					(define-public perl-devel-lexalias
 | 
				
			||||||
| 
						 | 
					@ -1910,7 +1975,7 @@ constructors, which speeds code up at runtime by a significant amount.  String
 | 
				
			||||||
eval is not without its issues however - it's difficult to control the scope
 | 
					eval is not without its issues however - it's difficult to control the scope
 | 
				
			||||||
it's used in (which determines which variables are in scope inside the eval),
 | 
					it's used in (which determines which variables are in scope inside the eval),
 | 
				
			||||||
and it's easy to miss compilation errors, since eval catches them and sticks
 | 
					and it's easy to miss compilation errors, since eval catches them and sticks
 | 
				
			||||||
them in $@ instead.  This module attempts to solve these problems.  It
 | 
					them in $@@ instead.  This module attempts to solve these problems.  It
 | 
				
			||||||
provides an eval_closure function, which evals a string in a clean
 | 
					provides an eval_closure function, which evals a string in a clean
 | 
				
			||||||
environment, other than a fixed list of specified variables.  Compilation
 | 
					environment, other than a fixed list of specified variables.  Compilation
 | 
				
			||||||
errors are rethrown automatically.")
 | 
					errors are rethrown automatically.")
 | 
				
			||||||
| 
						 | 
					@ -1954,7 +2019,7 @@ in your modules in a \"Java-esque\" manner.")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
     "Exporter::Lite is an alternative to Exporter, intended to provide a
 | 
					     "Exporter::Lite is an alternative to Exporter, intended to provide a
 | 
				
			||||||
lightweight subset of the most commonly-used functionality.  It supports
 | 
					lightweight subset of the most commonly-used functionality.  It supports
 | 
				
			||||||
import(), @EXPORT and @EXPORT_OK and not a whole lot else.")
 | 
					import(), @@EXPORT and @@EXPORT_OK and not a whole lot else.")
 | 
				
			||||||
    (home-page (string-append "http://search.cpan.org/~neilb/"
 | 
					    (home-page (string-append "http://search.cpan.org/~neilb/"
 | 
				
			||||||
                              "Exporter-Lite-" version))
 | 
					                              "Exporter-Lite-" version))
 | 
				
			||||||
    (license (package-license perl))))
 | 
					    (license (package-license perl))))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,7 @@
 | 
				
			||||||
;;; 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 © 2015 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
 | 
					;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -17,18 +19,50 @@
 | 
				
			||||||
;;; 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 photo)
 | 
					(define-module (gnu packages photo)
 | 
				
			||||||
  #:use-module (guix licenses)
 | 
					  #:use-module (guix build-system cmake)
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					 | 
				
			||||||
  #:use-module (guix download)
 | 
					 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
  #:use-module (guix build-system perl)
 | 
					  #:use-module (guix build-system perl)
 | 
				
			||||||
  #:use-module (gnu packages pkg-config)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
  #:use-module (gnu packages libusb)
 | 
					  #:use-module ((guix licenses) #:prefix license:)
 | 
				
			||||||
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
 | 
					  #:use-module (guix utils)
 | 
				
			||||||
  #:use-module (gnu packages autotools)
 | 
					  #:use-module (gnu packages autotools)
 | 
				
			||||||
  #:use-module (gnu packages readline)
 | 
					  #:use-module (gnu packages base)
 | 
				
			||||||
  #:use-module (gnu packages popt)
 | 
					  #:use-module (gnu packages boost)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages compression)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages ghostscript)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages gl)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages graphics)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages image)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages imagemagick)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages libusb)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages maths)
 | 
				
			||||||
  #:use-module (gnu packages perl)
 | 
					  #:use-module (gnu packages perl)
 | 
				
			||||||
  #:use-module (gnu packages base))
 | 
					  #:use-module (gnu packages pkg-config)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages popt)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages readline)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages web)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages xfig)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages xml))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public libraw
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "libraw")
 | 
				
			||||||
 | 
					    (version "0.17.0")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "http://www.libraw.org/data/LibRaw-"
 | 
				
			||||||
 | 
					                                  version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "043kckxjqanw8dl3m9f6kvsf0l20ywxmgxd1xb0slj6m8l4w4hz6"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (home-page "http://www.libraw.org")
 | 
				
			||||||
 | 
					    (synopsis "Raw image decoder")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "LibRaw is a library for reading RAW files obtained from digital photo
 | 
				
			||||||
 | 
					cameras (CRW/CR2, NEF, RAF, DNG, and others).")
 | 
				
			||||||
 | 
					    (license license:lgpl2.1+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public libexif
 | 
					(define-public libexif
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -47,7 +81,7 @@
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
     "The libexif C library allows applications to read, edit, and save EXIF
 | 
					     "The libexif C library allows applications to read, edit, and save EXIF
 | 
				
			||||||
data as produced by digital cameras.")
 | 
					data as produced by digital cameras.")
 | 
				
			||||||
    (license lgpl2.1+)))
 | 
					    (license license:lgpl2.1+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public libgphoto2
 | 
					(define-public libgphoto2
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -77,7 +111,7 @@ MTP, and other vendor specific protocols for controlling and transferring data
 | 
				
			||||||
from digital cameras.")
 | 
					from digital cameras.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ;; 'COPYING' says LGPLv2.1+, but in practices files are under LGPLv2+.
 | 
					    ;; 'COPYING' says LGPLv2.1+, but in practices files are under LGPLv2+.
 | 
				
			||||||
    (license lgpl2.1+)))
 | 
					    (license license:lgpl2.1+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public gphoto2
 | 
					(define-public gphoto2
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -120,7 +154,7 @@ number of different digital cameras.  Through libgphoto2, it supports PTP,
 | 
				
			||||||
MTP, and much more.")
 | 
					MTP, and much more.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ;; Files are typically under LGPLv2+, but 'COPYING' says GPLv2+.
 | 
					    ;; Files are typically under LGPLv2+, but 'COPYING' says GPLv2+.
 | 
				
			||||||
    (license gpl2+)))
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public perl-image-exiftool
 | 
					(define-public perl-image-exiftool
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -154,3 +188,73 @@ MTP, and much more.")
 | 
				
			||||||
     "This package provides the 'exiftool' command and the 'Image::ExifTool'
 | 
					     "This package provides the 'exiftool' command and the 'Image::ExifTool'
 | 
				
			||||||
Perl library to manipulate EXIF tags of digital images.")
 | 
					Perl library to manipulate EXIF tags of digital images.")
 | 
				
			||||||
    (license (package-license perl))))
 | 
					    (license (package-license perl))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public libpano13
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "libpano13")
 | 
				
			||||||
 | 
					    (version "2.9.19")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "mirror://sourceforge/panotools/libpano13/"
 | 
				
			||||||
 | 
					                                  "libpano13-" version "/"
 | 
				
			||||||
 | 
					                                  "libpano13-" version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "1a4m3plmfcrrplqs9zfzhc5apibn10m5sajpizm1sd3q74w5fwq3"))))
 | 
				
			||||||
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("libjpeg" ,libjpeg)
 | 
				
			||||||
 | 
					       ("libpng" ,libpng)
 | 
				
			||||||
 | 
					       ("libtiff" ,libtiff)
 | 
				
			||||||
 | 
					       ("zlib" ,zlib)))
 | 
				
			||||||
 | 
					    (home-page "http://panotools.sourceforge.net/")
 | 
				
			||||||
 | 
					    (synopsis "Library for panoramic images")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "The libpano13 package contains the backend library written by the
 | 
				
			||||||
 | 
					Panorama Tools project for building panoramic images from a set of
 | 
				
			||||||
 | 
					overlapping images, as well as some command line tools.")
 | 
				
			||||||
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public enblend-enfuse
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "enblend-enfuse")
 | 
				
			||||||
 | 
					    (version "4.1.3")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "mirror://sourceforge/enblend/"
 | 
				
			||||||
 | 
					                                  name "/"
 | 
				
			||||||
 | 
					                                  name "-" (version-major+minor version) "/"
 | 
				
			||||||
 | 
					                                  name "-" version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "1b7r1nnwaind0344ckwggy0ghl0ipbk9jzylsxcjfl05rnasw00w"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("pkg-config" ,pkg-config)
 | 
				
			||||||
 | 
					       ("perl" ,perl)
 | 
				
			||||||
 | 
					       ("perl-timedate" ,perl-timedate)
 | 
				
			||||||
 | 
					       ;; for building the documentation
 | 
				
			||||||
 | 
					       ("gnuplot" ,gnuplot)
 | 
				
			||||||
 | 
					       ("imagemagick" ,imagemagick)
 | 
				
			||||||
 | 
					       ("libxml2" ,libxml2)
 | 
				
			||||||
 | 
					       ("tidy" ,tidy)
 | 
				
			||||||
 | 
					       ("transfig" ,transfig)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("boost" ,boost)
 | 
				
			||||||
 | 
					       ("gsl" ,gsl)
 | 
				
			||||||
 | 
					       ("lcms" ,lcms)
 | 
				
			||||||
 | 
					       ("libjpeg" ,libjpeg)
 | 
				
			||||||
 | 
					       ("libpng" ,libpng)
 | 
				
			||||||
 | 
					       ("libtiff" ,libtiff)
 | 
				
			||||||
 | 
					       ("openexr" ,openexr)
 | 
				
			||||||
 | 
					       ("vigra" ,vigra)
 | 
				
			||||||
 | 
					       ("zlib" ,zlib)))
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:configure-flags `("--enable-openmp")))
 | 
				
			||||||
 | 
					    (home-page "http://enblend.sourceforge.net/")
 | 
				
			||||||
 | 
					    (synopsis "Tools for combining and blending images")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Enblend blends away the seams in a panoramic image mosaic using a
 | 
				
			||||||
 | 
					multi-resolution spline.  Enfuse merges different exposures of the same
 | 
				
			||||||
 | 
					scene to produce an image that looks much like a tone-mapped image.")
 | 
				
			||||||
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,7 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
 | 
					;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
 | 
				
			||||||
 | 
					;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
 | 
				
			||||||
 | 
					;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -23,6 +25,7 @@
 | 
				
			||||||
  #:use-module (guix build-system cmake)
 | 
					  #:use-module (guix build-system cmake)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages freedesktop)
 | 
				
			||||||
  #:use-module (gnu packages glib)
 | 
					  #:use-module (gnu packages glib)
 | 
				
			||||||
  #:use-module (gnu packages gnuzilla)
 | 
					  #:use-module (gnu packages gnuzilla)
 | 
				
			||||||
  #:use-module (gnu packages linux)
 | 
					  #:use-module (gnu packages linux)
 | 
				
			||||||
| 
						 | 
					@ -44,19 +47,77 @@
 | 
				
			||||||
             (sha256
 | 
					             (sha256
 | 
				
			||||||
              (base32
 | 
					              (base32
 | 
				
			||||||
               "109w86kfqrgz83g9ivggplmgc77rz8kx8646izvm2jb57h4rbh71"))
 | 
					               "109w86kfqrgz83g9ivggplmgc77rz8kx8646izvm2jb57h4rbh71"))
 | 
				
			||||||
             (patches (list (search-patch "polkit-drop-test.patch")))))
 | 
					             (patches (list (search-patch "polkit-drop-test.patch")))
 | 
				
			||||||
 | 
					             (modules '((guix build utils)))
 | 
				
			||||||
 | 
					             (snippet
 | 
				
			||||||
 | 
					              '(begin
 | 
				
			||||||
 | 
					                 (use-modules (guix build utils))
 | 
				
			||||||
 | 
					                 (substitute* "configure"
 | 
				
			||||||
 | 
					                   ;; Replace libsystemd-login with libelogind.
 | 
				
			||||||
 | 
					                   (("libsystemd-login") "libelogind")
 | 
				
			||||||
 | 
					                   ;; Skip the sanity check that the current system runs
 | 
				
			||||||
 | 
					                   ;; systemd.
 | 
				
			||||||
 | 
					                   (("test ! -d /sys/fs/cgroup/systemd/") "false"))
 | 
				
			||||||
 | 
					                 (substitute* "src/polkit/polkitunixsession-systemd.c"
 | 
				
			||||||
 | 
					                   (("systemd") "elogind"))
 | 
				
			||||||
 | 
					                 (substitute* "src/polkitbackend/polkitbackendsessionmonitor-systemd.c"
 | 
				
			||||||
 | 
					                   (("systemd") "elogind"))
 | 
				
			||||||
 | 
					                 (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
 | 
				
			||||||
 | 
					                   (("systemd") "elogind"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                 (substitute* "src/polkitagent/polkitagentsession.c"
 | 
				
			||||||
 | 
					                   (("PACKAGE_PREFIX \"/lib/polkit-1/polkit-agent-helper-1\"")
 | 
				
			||||||
 | 
					                    "\"/run/setuid-programs/polkit-agent-helper-1\""))
 | 
				
			||||||
 | 
					                 (substitute* "src/polkitbackend/polkitbackendinteractiveauthority.c"
 | 
				
			||||||
 | 
					                   (("PACKAGE_DATA_DIR \"/polkit-1/actions\"")
 | 
				
			||||||
 | 
					                    "\"/run/current-system/profile/share/polkit-1/actions\""))
 | 
				
			||||||
 | 
					                 (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
 | 
				
			||||||
 | 
					                   (("PACKAGE_SYSCONF_DIR \"/polkit-1/rules.d\"")
 | 
				
			||||||
 | 
					                    "\"/run/current-system/profile/etc/polkit-1/rules.d\""))
 | 
				
			||||||
 | 
					                 (substitute* "src/polkitbackend/polkitbackendjsauthority.c"
 | 
				
			||||||
 | 
					                   (("PACKAGE_DATA_DIR \"/polkit-1/rules.d\"")
 | 
				
			||||||
 | 
					                    "\"/run/current-system/profile/share/polkit-1/rules.d\""))))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
      `(("expat" ,expat)
 | 
					     `(("expat" ,expat)
 | 
				
			||||||
        ("glib:bin" ,glib "bin") ; for glib-mkenums
 | 
					       ("linux-pam" ,linux-pam)
 | 
				
			||||||
        ("intltool" ,intltool)
 | 
					       ("elogind" ,elogind)
 | 
				
			||||||
        ("linux-pam" ,linux-pam)
 | 
					       ("mozjs" ,mozjs)
 | 
				
			||||||
        ("mozjs" ,mozjs)
 | 
					       ("nspr" ,nspr)))
 | 
				
			||||||
        ("nspr" ,nspr)))
 | 
					 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
      `(("glib" ,glib))) ; required by polkit-gobject-1.pc
 | 
					     `(("glib" ,glib))) ; required by polkit-gobject-1.pc
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
      `(("pkg-config", pkg-config)))
 | 
					     `(("pkg-config" ,pkg-config)
 | 
				
			||||||
 | 
					       ("glib:bin" ,glib "bin") ; for glib-mkenums
 | 
				
			||||||
 | 
					       ("intltool" ,intltool)
 | 
				
			||||||
 | 
					       ("gobject-introspection" ,gobject-introspection)))
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:configure-flags '("--sysconfdir=/etc"
 | 
				
			||||||
 | 
					                           "--enable-man-pages")
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-after
 | 
				
			||||||
 | 
					          'unpack 'fix-introspection-install-dir
 | 
				
			||||||
 | 
					          (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					            (let ((out (assoc-ref outputs "out")))
 | 
				
			||||||
 | 
					              (substitute* (find-files "." "Makefile.in")
 | 
				
			||||||
 | 
					                (("@INTROSPECTION_GIRDIR@")
 | 
				
			||||||
 | 
					                 (string-append out "/share/gir-1.0/"))
 | 
				
			||||||
 | 
					                (("@INTROSPECTION_TYPELIBDIR@")
 | 
				
			||||||
 | 
					                 (string-append out "/lib/girepository-1.0/"))))))
 | 
				
			||||||
 | 
					         (replace
 | 
				
			||||||
 | 
					          'install
 | 
				
			||||||
 | 
					          (lambda* (#:key outputs (make-flags '()) #:allow-other-keys)
 | 
				
			||||||
 | 
					            ;; Override sysconfdir during "make install", to avoid attempting
 | 
				
			||||||
 | 
					            ;; to install in /etc, and to instead install the skeletons in the
 | 
				
			||||||
 | 
					            ;; output directory.
 | 
				
			||||||
 | 
					            (let ((out (assoc-ref outputs "out")))
 | 
				
			||||||
 | 
					             (zero? (apply system*
 | 
				
			||||||
 | 
					                           "make" "install"
 | 
				
			||||||
 | 
					                           (string-append "sysconfdir=" out "/etc")
 | 
				
			||||||
 | 
					                           (string-append "polkit_actiondir="
 | 
				
			||||||
 | 
					                                          out "/share/polkit-1/actions")
 | 
				
			||||||
 | 
					                           make-flags))))))))
 | 
				
			||||||
    (home-page "http://www.freedesktop.org/wiki/Software/polkit/")
 | 
					    (home-page "http://www.freedesktop.org/wiki/Software/polkit/")
 | 
				
			||||||
    (synopsis "Authorization API for privilege management")
 | 
					    (synopsis "Authorization API for privilege management")
 | 
				
			||||||
    (description "Polkit is an application-level toolkit for defining and
 | 
					    (description "Polkit is an application-level toolkit for defining and
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,6 +10,7 @@
 | 
				
			||||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 | 
					;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.org>
 | 
					;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.org>
 | 
				
			||||||
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 | 
					;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 | 
				
			||||||
 | 
					;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -33,6 +34,7 @@
 | 
				
			||||||
                          isc psfl public-domain x11-style))
 | 
					                          isc psfl public-domain x11-style))
 | 
				
			||||||
  #:use-module ((guix licenses) #:select (expat zlib) #:prefix license:)
 | 
					  #:use-module ((guix licenses) #:select (expat zlib) #:prefix license:)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages attr)
 | 
				
			||||||
  #:use-module (gnu packages compression)
 | 
					  #:use-module (gnu packages compression)
 | 
				
			||||||
  #:use-module (gnu packages databases)
 | 
					  #:use-module (gnu packages databases)
 | 
				
			||||||
  #:use-module (gnu packages fontutils)
 | 
					  #:use-module (gnu packages fontutils)
 | 
				
			||||||
| 
						 | 
					@ -45,6 +47,7 @@
 | 
				
			||||||
  #:use-module (gnu packages image)
 | 
					  #:use-module (gnu packages image)
 | 
				
			||||||
  #:use-module (gnu packages imagemagick)
 | 
					  #:use-module (gnu packages imagemagick)
 | 
				
			||||||
  #:use-module (gnu packages libffi)
 | 
					  #:use-module (gnu packages libffi)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages linux)
 | 
				
			||||||
  #:use-module (gnu packages maths)
 | 
					  #:use-module (gnu packages maths)
 | 
				
			||||||
  #:use-module (gnu packages multiprecision)
 | 
					  #:use-module (gnu packages multiprecision)
 | 
				
			||||||
  #:use-module (gnu packages networking)
 | 
					  #:use-module (gnu packages networking)
 | 
				
			||||||
| 
						 | 
					@ -1171,7 +1174,7 @@ other Python program.")
 | 
				
			||||||
     "EmPy is a system for embedding Python expressions and statements in
 | 
					     "EmPy is a system for embedding Python expressions and statements in
 | 
				
			||||||
template text; it takes an EmPy source file, processes it, and produces
 | 
					template text; it takes an EmPy source file, processes it, and produces
 | 
				
			||||||
output.  This is accomplished via expansions, which are special signals to the
 | 
					output.  This is accomplished via expansions, which are special signals to the
 | 
				
			||||||
EmPy system and are set off by a special prefix (by default the at sign, @).
 | 
					EmPy system and are set off by a special prefix (by default the at sign, @@).
 | 
				
			||||||
EmPy can expand arbitrary Python expressions and statements in this way, as
 | 
					EmPy can expand arbitrary Python expressions and statements in this way, as
 | 
				
			||||||
well as a variety of special forms.  Textual data not explicitly delimited in
 | 
					well as a variety of special forms.  Textual data not explicitly delimited in
 | 
				
			||||||
this way is sent unaffected to the output, allowing Python to be used in
 | 
					this way is sent unaffected to the output, allowing Python to be used in
 | 
				
			||||||
| 
						 | 
					@ -1711,11 +1714,12 @@ Python tests.")
 | 
				
			||||||
        (base32
 | 
					        (base32
 | 
				
			||||||
         "1ssqb07c277010i6gzzkbdd46gd9mrj0bi0i8vn560n2k2y4j93m"))))
 | 
					         "1ssqb07c277010i6gzzkbdd46gd9mrj0bi0i8vn560n2k2y4j93m"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("python-fixtures" ,python-fixtures)
 | 
				
			||||||
 | 
					       ("python-testtools" ,python-testtools)))
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("python-setuptools" ,python-setuptools)
 | 
					     `(("python-setuptools" ,python-setuptools)
 | 
				
			||||||
       ("python-testtools" ,python-testtools)
 | 
					 | 
				
			||||||
       ("python-subunit" ,python-subunit)
 | 
					       ("python-subunit" ,python-subunit)
 | 
				
			||||||
       ("python-fixtures" ,python-fixtures)
 | 
					 | 
				
			||||||
       ("python-mimeparse" ,python-mimeparse)))
 | 
					       ("python-mimeparse" ,python-mimeparse)))
 | 
				
			||||||
    (home-page "https://launchpad.net/testrepository")
 | 
					    (home-page "https://launchpad.net/testrepository")
 | 
				
			||||||
    (synopsis "Database for Python test results")
 | 
					    (synopsis "Database for Python test results")
 | 
				
			||||||
| 
						 | 
					@ -4658,3 +4662,109 @@ from an XML-based format.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public python2-fonttools
 | 
					(define-public python2-fonttools
 | 
				
			||||||
  (package-with-python2 python-fonttools))
 | 
					  (package-with-python2 python-fonttools))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python-ly
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "python-ly")
 | 
				
			||||||
 | 
					    (version "0.9.2")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append
 | 
				
			||||||
 | 
					             "https://pypi.python.org/packages/source/p/python-ly/python-ly-"
 | 
				
			||||||
 | 
					             version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "1bsjg4q9ihr8bfdclrcmb8yjcg8xm9dznh58f3zsyrkrjzwbhcd2"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("python-setuptools" ,python-setuptools)))
 | 
				
			||||||
 | 
					    (synopsis "Tool and library for manipulating LilyPond files")
 | 
				
			||||||
 | 
					    (description "This package provides a Python library to parse, manipulate
 | 
				
			||||||
 | 
					or create documents in LilyPond format.  A command line program ly is also
 | 
				
			||||||
 | 
					provided that can be used to do various manipulations with LilyPond files.")
 | 
				
			||||||
 | 
					    (home-page "https://pypi.python.org/pypi/python-ly")
 | 
				
			||||||
 | 
					    (license gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python-appdirs
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "python-appdirs")
 | 
				
			||||||
 | 
					    (version "1.4.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					      (origin
 | 
				
			||||||
 | 
					        (method url-fetch)
 | 
				
			||||||
 | 
					        (uri (string-append
 | 
				
			||||||
 | 
					               "https://pypi.python.org/packages/source/a/appdirs/appdirs-"
 | 
				
			||||||
 | 
					               version
 | 
				
			||||||
 | 
					               ".tar.gz"))
 | 
				
			||||||
 | 
					        (sha256
 | 
				
			||||||
 | 
					          (base32
 | 
				
			||||||
 | 
					            "1iddva7v3fq0aqzsahkazxr7vpw28mqcrsy818z4wyiqnkplbhlg"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					      `(("python-setuptools" ,python-setuptools)))
 | 
				
			||||||
 | 
					    (home-page "http://github.com/ActiveState/appdirs")
 | 
				
			||||||
 | 
					    (synopsis
 | 
				
			||||||
 | 
					      "Determine platform-specific dirs, e.g. a \"user data dir\"")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					      "This module provides a portable way of finding out where user data
 | 
				
			||||||
 | 
					should be stored on various operating systems.")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python2-appdirs
 | 
				
			||||||
 | 
					  (package-with-python2 python-appdirs))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python-llfuse
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "python-llfuse")
 | 
				
			||||||
 | 
					    (version "0.41")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append
 | 
				
			||||||
 | 
					                    "https://bitbucket.org/nikratio/python-llfuse/downloads/"
 | 
				
			||||||
 | 
					                    "llfuse-" version ".tar.bz2"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "0yzy8ixpmxk00kdq6lx5vvwbs0n6s59qnja5q0js2ahbqyxiz2hb"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("fuse" ,fuse)
 | 
				
			||||||
 | 
					       ("attr" ,attr)))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("pkg-config" ,pkg-config)
 | 
				
			||||||
 | 
					       ("python-setuptools" ,python-setuptools)))
 | 
				
			||||||
 | 
					    (synopsis "Python bindings for FUSE")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Python-LLFUSE is a set of Python bindings for the low level FUSE API.")
 | 
				
			||||||
 | 
					    (home-page "https://bitbucket.org/nikratio/python-llfuse/")
 | 
				
			||||||
 | 
					    ;; Python-LLFUSE includes underscore.js, which is MIT (expat) licensed.
 | 
				
			||||||
 | 
					    ;; The rest of the package is licensed under LGPL2.0 or later.
 | 
				
			||||||
 | 
					    (license (list license:expat lgpl2.0+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python2-llfuse
 | 
				
			||||||
 | 
					  (package-with-python2 python-llfuse))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python-msgpack
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "python-msgpack")
 | 
				
			||||||
 | 
					    (version "0.4.6")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append
 | 
				
			||||||
 | 
					                    "https://pypi.python.org/packages/source/m/"
 | 
				
			||||||
 | 
					                    "msgpack-python/msgpack-python-" version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "1527c76b6fn4zzkgfq5xvhh7x9a9686g7fjiz717rw5vklf5ik5z"))))
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("python-setuptools" ,python-setuptools)))
 | 
				
			||||||
 | 
					    (synopsis "MessagePack (de)serializer")
 | 
				
			||||||
 | 
					    (description "MessagePack is a fast, compact binary serialization format,
 | 
				
			||||||
 | 
					suitable for similar data to JSON.  This package provides CPython bindings for
 | 
				
			||||||
 | 
					reading and writing MessagePack data.")
 | 
				
			||||||
 | 
					    (home-page "https://pypi.python.org/pypi/msgpack-python/")
 | 
				
			||||||
 | 
					    (license asl2.0)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public python2-msgpack
 | 
				
			||||||
 | 
					  (package-with-python2 python-msgpack))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +1,9 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2014 Pjotr Prins <pjotr.guix@thebird.nl>
 | 
					;;; Copyright © 2014, 2015 Pjotr Prins <pjotr.guix@thebird.nl>
 | 
				
			||||||
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
 | 
					;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
 | 
				
			||||||
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 | 
					;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
 | 
				
			||||||
;;; Copyright © 2014 David Thompson <davet@gnu.org>
 | 
					;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
 | 
				
			||||||
 | 
					;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -23,8 +24,10 @@
 | 
				
			||||||
  #:use-module ((guix licenses) #:prefix license:)
 | 
					  #:use-module ((guix licenses) #:prefix license:)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
  #:use-module (gnu packages compression)
 | 
					  #:use-module (gnu packages compression)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages databases)
 | 
				
			||||||
  #:use-module (gnu packages readline)
 | 
					  #:use-module (gnu packages readline)
 | 
				
			||||||
  #:use-module (gnu packages autotools)
 | 
					  #:use-module (gnu packages autotools)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages java)
 | 
				
			||||||
  #:use-module (gnu packages libffi)
 | 
					  #:use-module (gnu packages libffi)
 | 
				
			||||||
  #:use-module (gnu packages gdbm)
 | 
					  #:use-module (gnu packages gdbm)
 | 
				
			||||||
  #:use-module (gnu packages tls)
 | 
					  #:use-module (gnu packages tls)
 | 
				
			||||||
| 
						 | 
					@ -34,6 +37,7 @@
 | 
				
			||||||
  #:use-module (guix git-download)
 | 
					  #:use-module (guix git-download)
 | 
				
			||||||
  #:use-module (guix utils)
 | 
					  #:use-module (guix utils)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages xml)
 | 
				
			||||||
  #:use-module (guix build-system ruby))
 | 
					  #:use-module (guix build-system ruby))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public ruby
 | 
					(define-public ruby
 | 
				
			||||||
| 
						 | 
					@ -192,16 +196,16 @@ packaging native C and Java extensions in Ruby.")
 | 
				
			||||||
(define-public ruby-i18n
 | 
					(define-public ruby-i18n
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "ruby-i18n")
 | 
					    (name "ruby-i18n")
 | 
				
			||||||
    (version "0.6.11")
 | 
					    (version "0.7.0")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (rubygems-uri "i18n" version))
 | 
					              (uri (rubygems-uri "i18n" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "0fwjlgmgry2blf8zlxn9c555cf4a16p287l599kz5104ncjxlzdk"))))
 | 
					                "1i5z1ykl8zhszsxcs8mzl8d0dxgs3ylz8qlzrw74jb0gplkx6758"))))
 | 
				
			||||||
    (build-system ruby-build-system)
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:tests? #f)) ; requires bundler
 | 
					     '(#:tests? #f)) ; no tests
 | 
				
			||||||
    (synopsis "Internationalization library for Ruby")
 | 
					    (synopsis "Internationalization library for Ruby")
 | 
				
			||||||
    (description "Ruby i18n is an internationalization and localization
 | 
					    (description "Ruby i18n is an internationalization and localization
 | 
				
			||||||
solution for Ruby programs.  It features translation and localization,
 | 
					solution for Ruby programs.  It features translation and localization,
 | 
				
			||||||
| 
						 | 
					@ -254,7 +258,7 @@ groups.")
 | 
				
			||||||
    (home-page "https://github.com/rspec/rspec-core")
 | 
					    (home-page "https://github.com/rspec/rspec-core")
 | 
				
			||||||
    (license license:expat)))
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define ruby-diff-lcs-for-rspec
 | 
					(define-public ruby-diff-lcs
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "ruby-diff-lcs")
 | 
					    (name "ruby-diff-lcs")
 | 
				
			||||||
    (version "1.2.5")
 | 
					    (version "1.2.5")
 | 
				
			||||||
| 
						 | 
					@ -290,7 +294,7 @@ standard diff-like tool.")
 | 
				
			||||||
     '(#:tests? #f)) ; avoid dependency cycles
 | 
					     '(#:tests? #f)) ; avoid dependency cycles
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("ruby-rspec-support" ,ruby-rspec-support)
 | 
					     `(("ruby-rspec-support" ,ruby-rspec-support)
 | 
				
			||||||
       ("ruby-diff-lcs" ,ruby-diff-lcs-for-rspec)))
 | 
					       ("ruby-diff-lcs" ,ruby-diff-lcs)))
 | 
				
			||||||
    (synopsis "RSpec expectations library")
 | 
					    (synopsis "RSpec expectations library")
 | 
				
			||||||
    (description "Rspec-expectations provides a simple API to express expected
 | 
					    (description "Rspec-expectations provides a simple API to express expected
 | 
				
			||||||
outcomes of a code example.")
 | 
					outcomes of a code example.")
 | 
				
			||||||
| 
						 | 
					@ -312,7 +316,7 @@ outcomes of a code example.")
 | 
				
			||||||
     '(#:tests? #f)) ; avoid dependency cycles
 | 
					     '(#:tests? #f)) ; avoid dependency cycles
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     `(("ruby-rspec-support" ,ruby-rspec-support)
 | 
					     `(("ruby-rspec-support" ,ruby-rspec-support)
 | 
				
			||||||
       ("ruby-diff-lcs" ,ruby-diff-lcs-for-rspec)))
 | 
					       ("ruby-diff-lcs" ,ruby-diff-lcs)))
 | 
				
			||||||
    (synopsis "RSpec stubbing and mocking library")
 | 
					    (synopsis "RSpec stubbing and mocking library")
 | 
				
			||||||
    (description "Rspec-mocks provides RSpec's \"test double\" framework, with
 | 
					    (description "Rspec-mocks provides RSpec's \"test double\" framework, with
 | 
				
			||||||
support for stubbing and mocking.")
 | 
					support for stubbing and mocking.")
 | 
				
			||||||
| 
						 | 
					@ -348,13 +352,13 @@ expectations and mocks frameworks.")
 | 
				
			||||||
(define-public bundler
 | 
					(define-public bundler
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "bundler")
 | 
					    (name "bundler")
 | 
				
			||||||
    (version "1.9.9")
 | 
					    (version "1.10.6")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (rubygems-uri "bundler" version))
 | 
					              (uri (rubygems-uri "bundler" version))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "12qk1569pswa9mmid6lsqy2napn9fmkbmv0k7xkl52nyfh8rsy4d"))))
 | 
					                "1vlzfq0bkkj4jyq6av0y55mh5nj5n0f3mfbmmifwgkh44g8k6agv"))))
 | 
				
			||||||
    (build-system ruby-build-system)
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:tests? #f)) ; avoid dependency cycles
 | 
					     '(#:tests? #f)) ; avoid dependency cycles
 | 
				
			||||||
| 
						 | 
					@ -364,6 +368,143 @@ specified in a \"Gemfile\", as well as their dependencies.")
 | 
				
			||||||
    (home-page "http://bundler.io/")
 | 
					    (home-page "http://bundler.io/")
 | 
				
			||||||
    (license license:expat)))
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-builder
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-builder")
 | 
				
			||||||
 | 
					    (version "3.2.2")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (rubygems-uri "builder" version))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "14fii7ab8qszrvsvhz6z2z3i4dw0h41a62fjr2h1j8m41vbrmyv2"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-after 'unpack 'do-not-use-rvm
 | 
				
			||||||
 | 
					          (lambda _
 | 
				
			||||||
 | 
					            (substitute* "rakelib/tags.rake"
 | 
				
			||||||
 | 
					              (("RVM_GEMDIR = .*") "RVM_GEMDIR = 'no-rvm-please'\n"))
 | 
				
			||||||
 | 
					            #t)))))
 | 
				
			||||||
 | 
					    (synopsis "Ruby library to create structured data")
 | 
				
			||||||
 | 
					    (description "Builder provides a number of builder objects that make it
 | 
				
			||||||
 | 
					easy to create structured data.  Currently the following builder objects are
 | 
				
			||||||
 | 
					supported: XML Markup and XML Events.")
 | 
				
			||||||
 | 
					    (home-page "https://github.com/jimweirich/builder")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-rjb
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-rjb")
 | 
				
			||||||
 | 
					    (version "1.5.3")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (rubygems-uri "rjb" version))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "0gzs92dagk981s4vrymnqg0vll783b9k564j0cdgp167nc5a2zg4"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:tests? #f ; no rakefile
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-before 'build 'set-java-home
 | 
				
			||||||
 | 
					          (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					            (setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
 | 
				
			||||||
 | 
					            #t)))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("jdk" ,icedtea7 "jdk")))
 | 
				
			||||||
 | 
					    (synopsis "Ruby-to-Java bridge using the Java Native Interface")
 | 
				
			||||||
 | 
					    (description "RJB is a bridge program that connects Ruby and Java via the
 | 
				
			||||||
 | 
					Java Native Interface.")
 | 
				
			||||||
 | 
					    (home-page "http://www.artonx.org/collabo/backyard/?RubyJavaBridge")
 | 
				
			||||||
 | 
					    (license license:lgpl2.1+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-atoulme-antwrap
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-atoulme-antwrap")
 | 
				
			||||||
 | 
					    (version "0.7.5")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (rubygems-uri "atoulme-Antwrap" version))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "05s3iw44lqa81f8nfy5f0xjj808600h82zb9bsh46b9kcq2w2kmz"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    ;; Test data required for most of the tests are not included.
 | 
				
			||||||
 | 
					    (arguments `(#:tests? #f))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("ruby-hoe" ,ruby-hoe)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("ruby-rjb" ,ruby-rjb)))
 | 
				
			||||||
 | 
					    (synopsis "Ruby wrapper for the Ant build tool")
 | 
				
			||||||
 | 
					    (description "Antwrap is a Ruby module that wraps the Apache Ant build
 | 
				
			||||||
 | 
					tool.  Antwrap can be used to invoke Ant tasks from a Ruby or a JRuby
 | 
				
			||||||
 | 
					script.")
 | 
				
			||||||
 | 
					    (home-page "http://rubyforge.org/projects/antwrap/")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-orderedhash
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-orderedhash")
 | 
				
			||||||
 | 
					    (version "0.0.6")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (rubygems-uri "orderedhash" version))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "0fryy7f9jbpx33jq5m402yqj01zcg563k9fsxlqbhmq638p4bzd7"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:tests? #f)) ; no test suite
 | 
				
			||||||
 | 
					    (synopsis "Ruby library providing an order-preserving hash")
 | 
				
			||||||
 | 
					    (description "Orderedhash is a Ruby library providing a hash
 | 
				
			||||||
 | 
					implementation that preserves the order of items and features some array-like
 | 
				
			||||||
 | 
					extensions.")
 | 
				
			||||||
 | 
					    (home-page "http://codeforpeople.com/lib/ruby/orderedhash/")
 | 
				
			||||||
 | 
					    (license license:public-domain)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-xml-simple
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-xml-simple")
 | 
				
			||||||
 | 
					    (version "1.1.5")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (rubygems-uri "xml-simple" version))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:tests? #f)) ; no test suite
 | 
				
			||||||
 | 
					    (synopsis "Simple Ruby library for XML processing")
 | 
				
			||||||
 | 
					    (description "This library provides a simple API for XML processing in
 | 
				
			||||||
 | 
					Ruby.")
 | 
				
			||||||
 | 
					    (home-page "https://github.com/maik/xml-simple")
 | 
				
			||||||
 | 
					    (license license:ruby)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-thor
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-thor")
 | 
				
			||||||
 | 
					    (version "0.19.1")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (rubygems-uri "thor" version))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "08p5gx18yrbnwc6xc0mxvsfaxzgy2y9i78xq7ds0qmdm67q39y4z"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:tests? #f)) ; no test suite
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("bundler" ,bundler)))
 | 
				
			||||||
 | 
					    (synopsis "Ruby toolkit for building command-line interfaces")
 | 
				
			||||||
 | 
					    (description "Thor is a toolkit for building powerful command-line
 | 
				
			||||||
 | 
					interfaces.")
 | 
				
			||||||
 | 
					    (home-page "http://whatisthor.com/")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public ruby-useragent
 | 
					(define-public ruby-useragent
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "ruby-useragent")
 | 
					    (name "ruby-useragent")
 | 
				
			||||||
| 
						 | 
					@ -592,6 +733,16 @@ options and parsing command line flags.")
 | 
				
			||||||
    (home-page "https://github.com/leejarvis/slop")
 | 
					    (home-page "https://github.com/leejarvis/slop")
 | 
				
			||||||
    (license license:expat)))
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-slop-3
 | 
				
			||||||
 | 
					  (package (inherit ruby-slop)
 | 
				
			||||||
 | 
					    (version "3.6.0")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (rubygems-uri "slop" version))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n"))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public ruby-multipart-post
 | 
					(define-public ruby-multipart-post
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "ruby-multipart-post")
 | 
					    (name "ruby-multipart-post")
 | 
				
			||||||
| 
						 | 
					@ -628,3 +779,348 @@ net/http library.")
 | 
				
			||||||
    (description "Arel is a SQL AST manager for Ruby.  It simplifies the
 | 
					    (description "Arel is a SQL AST manager for Ruby.  It simplifies the
 | 
				
			||||||
generation of complex SQL queries and is compatible with various RDBMSes.")
 | 
					generation of complex SQL queries and is compatible with various RDBMSes.")
 | 
				
			||||||
    (license license:expat)))
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-minitar
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-minitar")
 | 
				
			||||||
 | 
					    (version "0.5.4")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (rubygems-uri "minitar" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "1vpdjfmdq1yc4i620frfp9af02ia435dnpj8ybsd7dc3rypkvbka"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:tests? #f)) ; missing a gemspec
 | 
				
			||||||
 | 
					    (synopsis "Ruby library and utility for handling tar archives")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Archive::Tar::Minitar is a pure-Ruby library and command-line utility
 | 
				
			||||||
 | 
					that provides the ability to deal with POSIX tar archive files.")
 | 
				
			||||||
 | 
					    (home-page "http://www.github.com/atoulme/minitar")
 | 
				
			||||||
 | 
					    (license (list license:gpl2+ license:ruby))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-mini-portile
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-mini-portile")
 | 
				
			||||||
 | 
					    (version "0.6.2")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (rubygems-uri "mini_portile" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "0h3xinmacscrnkczq44s6pnhrp4nqma7k056x5wv5xixvf2wsq2w"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:tests? #f)) ; tests require network access
 | 
				
			||||||
 | 
					    (synopsis "Ports system for Ruby developers")
 | 
				
			||||||
 | 
					    (description "Mini-portile is a port/recipe system for Ruby developers.
 | 
				
			||||||
 | 
					It provides a standard way to compile against specific versions of libraries
 | 
				
			||||||
 | 
					to reproduce user environments.")
 | 
				
			||||||
 | 
					    (home-page "http://github.com/flavorjones/mini_portile")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-nokogiri
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-nokogiri")
 | 
				
			||||||
 | 
					    (version "1.6.6.2")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (rubygems-uri "nokogiri" version))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "1j4qv32qjh67dcrc1yy1h8sqjnny8siyy4s44awla8d6jk361h30"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     ;; Tests fail because Nokogiri can only test with an installed extension,
 | 
				
			||||||
 | 
					     ;; and also because many test framework dependencies are missing.
 | 
				
			||||||
 | 
					     '(#:tests? #f
 | 
				
			||||||
 | 
					       #:gem-flags (list "--" "--use-system-libraries"
 | 
				
			||||||
 | 
					                         (string-append "--with-xml2-include="
 | 
				
			||||||
 | 
					                                        (assoc-ref %build-inputs "libxml2")
 | 
				
			||||||
 | 
					                                        "/include/libxml2" ))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("ruby-hoe" ,ruby-hoe)
 | 
				
			||||||
 | 
					       ("ruby-rake-compiler", ruby-rake-compiler)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("zlib" ,zlib)
 | 
				
			||||||
 | 
					       ("libxml2" ,libxml2)
 | 
				
			||||||
 | 
					       ("libxslt" ,libxslt)))
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("ruby-mini-portile" ,ruby-mini-portile)))
 | 
				
			||||||
 | 
					    (synopsis "HTML, XML, SAX, and Reader parser for Ruby")
 | 
				
			||||||
 | 
					    (description "Nokogiri (鋸) parses and searches XML/HTML, and features
 | 
				
			||||||
 | 
					both CSS3 selector and XPath 1.0 support.")
 | 
				
			||||||
 | 
					    (home-page "http://www.nokogiri.org/")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-method-source
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-method-source")
 | 
				
			||||||
 | 
					    (version "0.8.2")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (rubygems-uri "method_source" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "1g5i4w0dmlhzd18dijlqw5gk27bv6dj2kziqzrzb7mpgxgsd1sf2"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("ruby-bacon" ,ruby-bacon)
 | 
				
			||||||
 | 
					       ("git" ,git)))
 | 
				
			||||||
 | 
					    (synopsis "Retrieve the source code for Ruby methods")
 | 
				
			||||||
 | 
					    (description "Method_source retrieves the source code for Ruby methods.
 | 
				
			||||||
 | 
					Additionally, it can extract source code from Proc and Lambda objects or just
 | 
				
			||||||
 | 
					extract comments.")
 | 
				
			||||||
 | 
					    (home-page "https://github.com/banister/method_source")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-coderay
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-coderay")
 | 
				
			||||||
 | 
					    (version "1.1.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (rubygems-uri "coderay" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "059wkzlap2jlkhg460pkwc1ay4v4clsmg1bp4vfzjzkgwdckr52s"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:tests? #f)) ; missing test files
 | 
				
			||||||
 | 
					    (synopsis "Ruby syntax highlighting library")
 | 
				
			||||||
 | 
					    (description "Coderay is a Ruby library that provides syntax highlighting
 | 
				
			||||||
 | 
					for select languages.")
 | 
				
			||||||
 | 
					    (home-page "http://coderay.rubychan.de")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-pry
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-pry")
 | 
				
			||||||
 | 
					    (version "0.10.1")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (rubygems-uri "pry" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "1j0r5fm0wvdwzbh6d6apnp7c0n150hpm9zxpm5xvcgfqr36jaj8z"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:tests? #f)) ; no tests
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("ruby-coderay" ,ruby-coderay)
 | 
				
			||||||
 | 
					       ("ruby-method-source" ,ruby-method-source)
 | 
				
			||||||
 | 
					       ("ruby-slop" ,ruby-slop-3)))
 | 
				
			||||||
 | 
					    (synopsis "Ruby REPL")
 | 
				
			||||||
 | 
					    (description "Pry is an IRB alternative and runtime developer console for
 | 
				
			||||||
 | 
					Ruby.  It features syntax highlighting, a plugin architecture, runtime
 | 
				
			||||||
 | 
					invocation, and source and documentation browsing.")
 | 
				
			||||||
 | 
					    (home-page "http://pryrepl.org")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-thread-safe
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-thread-safe")
 | 
				
			||||||
 | 
					    (version "0.3.5")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (rubygems-uri "thread_safe" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "1hq46wqsyylx5afkp6jmcihdpv4ynzzq9ygb6z2pb1cbz5js0gcr"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:tests? #f)) ; needs simplecov, among others
 | 
				
			||||||
 | 
					    (synopsis "Thread-safe utilities for Ruby")
 | 
				
			||||||
 | 
					    (description "The thread_safe library provides thread-safe collections and
 | 
				
			||||||
 | 
					utilities for Ruby.")
 | 
				
			||||||
 | 
					    (home-page "https://github.com/ruby-concurrency/thread_safe")
 | 
				
			||||||
 | 
					    (license license:asl2.0)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-tzinfo
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-tzinfo")
 | 
				
			||||||
 | 
					    (version "1.2.2")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (rubygems-uri "tzinfo" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "1c01p3kg6xvy1cgjnzdfq45fggbwish8krd0h864jvbpybyx7cgx"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("ruby-thread-safe" ,ruby-thread-safe)))
 | 
				
			||||||
 | 
					    (synopsis "Time zone library for Ruby")
 | 
				
			||||||
 | 
					    (description "TZInfo is a Ruby library that provides daylight savings
 | 
				
			||||||
 | 
					aware transformations between times in different time zones.")
 | 
				
			||||||
 | 
					    (home-page "http://tzinfo.github.io")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-json
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-json")
 | 
				
			||||||
 | 
					    (version "1.8.3")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (rubygems-uri "json" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "1nsby6ry8l9xg3yw4adlhk2pnc7i0h0rznvcss4vk3v74qg0k8lc"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (arguments '(#:tests? #f)) ; dependency cycle with sdoc
 | 
				
			||||||
 | 
					    (synopsis "JSON library for Ruby")
 | 
				
			||||||
 | 
					    (description "This Ruby library provides a JSON implementation written as
 | 
				
			||||||
 | 
					a native C extension.")
 | 
				
			||||||
 | 
					    (home-page "http://json-jruby.rubyforge.org/")
 | 
				
			||||||
 | 
					    (license (list license:ruby license:gpl2)))) ; GPL2 only
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-activesupport
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-activesupport")
 | 
				
			||||||
 | 
					    (version "4.2.4")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (rubygems-uri "activesupport" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "19n38rj6r1gyxgka18qvcxyla0fwan8a5p3ghq0pp8aj93sbmr6f"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:tests? #f)) ; no tests
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("ruby-i18n" ,ruby-i18n)
 | 
				
			||||||
 | 
					       ("ruby-json" ,ruby-json)
 | 
				
			||||||
 | 
					       ("ruby-minitest" ,ruby-minitest)
 | 
				
			||||||
 | 
					       ("ruby-thread-safe" ,ruby-thread-safe)
 | 
				
			||||||
 | 
					       ("ruby-tzinfo" ,ruby-tzinfo)))
 | 
				
			||||||
 | 
					    (synopsis "Ruby on Rails utility library")
 | 
				
			||||||
 | 
					    (description "ActiveSupport is a toolkit of support libraries and Ruby
 | 
				
			||||||
 | 
					core extensions extracted from the Rails framework.  It includes support for
 | 
				
			||||||
 | 
					multibyte strings, internationalization, time zones, and testing.")
 | 
				
			||||||
 | 
					    (home-page "http://www.rubyonrails.org")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-ox
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-ox")
 | 
				
			||||||
 | 
					    (version "2.2.1")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (rubygems-uri "ox" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "00i11xd4ayh7349rhgskajfxn0qzkb74ab01217zix9qcapssxax"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:tests? #f)) ; no tests
 | 
				
			||||||
 | 
					    (synopsis "Optimized XML library for Ruby")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Optimized XML (Ox) is a fast XML parser and object serializer for Ruby
 | 
				
			||||||
 | 
					written as a native C extension.  It was designed to be an alternative to
 | 
				
			||||||
 | 
					Nokogiri and other Ruby XML parsers for generic XML parsing and as an
 | 
				
			||||||
 | 
					alternative to Marshal for Object serialization. ")
 | 
				
			||||||
 | 
					    (home-page "http://www.ohler.com/ox")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-pg
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-pg")
 | 
				
			||||||
 | 
					    (version "0.18.2")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (rubygems-uri "pg" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "1axxbf6ij1iqi3i1r3asvjc80b0py5bz0m2wy5kdi5xkrpr82kpf"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:test-target "spec"))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("ruby-rake-compiler" ,ruby-rake-compiler)
 | 
				
			||||||
 | 
					       ("ruby-hoe" ,ruby-hoe)
 | 
				
			||||||
 | 
					       ("ruby-rspec" ,ruby-rspec)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("postgresql" ,postgresql)))
 | 
				
			||||||
 | 
					    (synopsis "Ruby interface to PostgreSQL")
 | 
				
			||||||
 | 
					    (description "Pg is the Ruby interface to the PostgreSQL RDBMS.  It works
 | 
				
			||||||
 | 
					with PostgreSQL 8.4 and later.")
 | 
				
			||||||
 | 
					    (home-page "https://bitbucket.org/ged/ruby-pg")
 | 
				
			||||||
 | 
					    (license license:ruby)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-byebug
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-byebug")
 | 
				
			||||||
 | 
					    (version "6.0.2")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (rubygems-uri "byebug" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "0537h9qbhr6csahmzyn4lk1g5b2lcligbzd21gfy93nx9lbfdnzc"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:tests? #f)) ; no tests
 | 
				
			||||||
 | 
					    (synopsis "Debugger for Ruby 2")
 | 
				
			||||||
 | 
					    (description "Byebug is a Ruby 2 debugger implemented using the Ruby 2
 | 
				
			||||||
 | 
					TracePoint C API for execution control and the Debug Inspector C API for call
 | 
				
			||||||
 | 
					stack navigation.  The core component provides support that front-ends can
 | 
				
			||||||
 | 
					build on.  It provides breakpoint handling and bindings for stack frames among
 | 
				
			||||||
 | 
					other things and it comes with a command line interface.")
 | 
				
			||||||
 | 
					    (home-page "http://github.com/deivid-rodriguez/byebug")
 | 
				
			||||||
 | 
					    (license license:bsd-2)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ruby-rack
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ruby-rack")
 | 
				
			||||||
 | 
					    (version "1.6.4")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (rubygems-uri "rack" version))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "09bs295yq6csjnkzj7ncj50i6chfxrhmzg1pk6p0vd2lb9ac8pj5"))))
 | 
				
			||||||
 | 
					    (build-system ruby-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-before 'check 'fix-tests
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             ;; A few of the tests use the length of a file on disk for
 | 
				
			||||||
 | 
					             ;; Content-Length and Content-Range headers.  However, this file
 | 
				
			||||||
 | 
					             ;; has a shebang in it which an earlier phase patches, growing
 | 
				
			||||||
 | 
					             ;; the file size from 193 to 239 bytes when the store prefix is
 | 
				
			||||||
 | 
					             ;; "/gnu/store".
 | 
				
			||||||
 | 
					             (let ((size-diff (- (string-length (which "ruby"))
 | 
				
			||||||
 | 
					                                 (string-length "/usr/bin/env ruby"))))
 | 
				
			||||||
 | 
					               (substitute* '("test/spec_file.rb")
 | 
				
			||||||
 | 
					                 (("193")
 | 
				
			||||||
 | 
					                  (number->string (+ 193 size-diff)))
 | 
				
			||||||
 | 
					                 (("bytes(.)22-33" all delimiter)
 | 
				
			||||||
 | 
					                  (string-append "bytes"
 | 
				
			||||||
 | 
					                                 delimiter
 | 
				
			||||||
 | 
					                                 (number->string (+ 22 size-diff))
 | 
				
			||||||
 | 
					                                 "-"
 | 
				
			||||||
 | 
					                                 (number->string (+ 33 size-diff))))))
 | 
				
			||||||
 | 
					             #t)))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("ruby-bacon" ,ruby-bacon)))
 | 
				
			||||||
 | 
					    (synopsis "Unified web application interface for Ruby")
 | 
				
			||||||
 | 
					    (description "Rack provides a minimal, modular and adaptable interface for
 | 
				
			||||||
 | 
					developing web applications in Ruby.  By wrapping HTTP requests and responses,
 | 
				
			||||||
 | 
					it unifies the API for web servers, web frameworks, and software in between
 | 
				
			||||||
 | 
					into a single method call.")
 | 
				
			||||||
 | 
					    (home-page "http://rack.github.io/")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,24 +43,15 @@
 | 
				
			||||||
(define-public libssh
 | 
					(define-public libssh
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "libssh")
 | 
					    (name "libssh")
 | 
				
			||||||
    (version "0.6.3")
 | 
					    (version "0.6.5")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "https://red.libssh.org/attachments/download/87/libssh-"
 | 
					              (uri (string-append
 | 
				
			||||||
                                  version ".tar.xz"))
 | 
					                    "https://red.libssh.org/attachments/download/121/libssh-"
 | 
				
			||||||
 | 
					                    version ".tar.xz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1jyaj9h1iglvn02hrvcchbx8ycjpj8b91h8mi459k7q5jp2xgd9b"))
 | 
					                "0b6wyx6bwbb8jpn8x4rhlrdiqwqrwrs0mxjmrnqykm9kw1ijgm8g"))))
 | 
				
			||||||
              (patches
 | 
					 | 
				
			||||||
               ;; Apply the patch as discussed at
 | 
					 | 
				
			||||||
               ;; <http://lists.gnu.org/archive/html/guix-devel/2014-10/msg00180.html>.
 | 
					 | 
				
			||||||
               (list (origin
 | 
					 | 
				
			||||||
                       (uri
 | 
					 | 
				
			||||||
                        "http://git.libssh.org/projects/libssh.git/patch/?id=a033b93c616f4a81afc3fc6a017396d507d96c19")
 | 
					 | 
				
			||||||
                       (method url-fetch)
 | 
					 | 
				
			||||||
                       (sha256
 | 
					 | 
				
			||||||
                        (base32
 | 
					 | 
				
			||||||
                         "16fdkjcnhc6j7qxz9575fzr9044927ws5259yh0xb9yv1q14j0vh")))))))
 | 
					 | 
				
			||||||
    (build-system cmake-build-system)
 | 
					    (build-system cmake-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:configure-flags '("-DWITH_GCRYPT=ON")
 | 
					     '(#:configure-flags '("-DWITH_GCRYPT=ON")
 | 
				
			||||||
| 
						 | 
					@ -68,10 +59,7 @@
 | 
				
			||||||
       ;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite.
 | 
					       ;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite.
 | 
				
			||||||
       #:tests? #f))
 | 
					       #:tests? #f))
 | 
				
			||||||
    (inputs `(("zlib" ,zlib)
 | 
					    (inputs `(("zlib" ,zlib)
 | 
				
			||||||
               ;; Link against an older gcrypt, because libssh tries to access
 | 
					              ("libgcrypt", libgcrypt)))
 | 
				
			||||||
               ;; fields of 'gcry_thread_cbs' that are now private:
 | 
					 | 
				
			||||||
               ;; src/threads.c:72:26: error: 'struct gcry_thread_cbs' has no member named 'mutex_init'
 | 
					 | 
				
			||||||
              ("libgcrypt", libgcrypt-1.5)))
 | 
					 | 
				
			||||||
    (synopsis "SSH client library")
 | 
					    (synopsis "SSH client library")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
     "libssh is a C library implementing the SSHv2 and SSHv1 protocol for
 | 
					     "libssh is a C library implementing the SSHv2 and SSHv1 protocol for
 | 
				
			||||||
| 
						 | 
					@ -188,15 +176,17 @@ Additionally, various channel-specific options can be negotiated.")
 | 
				
			||||||
(define-public guile-ssh
 | 
					(define-public guile-ssh
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "guile-ssh")
 | 
					    (name "guile-ssh")
 | 
				
			||||||
    (version "0.7.2")
 | 
					    (version "0.8.0")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              ;; ftp://memory-heap.org/software/guile-ssh/guile-ssh-VERSION.tar.gz
 | 
				
			||||||
 | 
					              ;; exists, but the server appears to be too slow and unreliable.
 | 
				
			||||||
              (method git-fetch)
 | 
					              (method git-fetch)
 | 
				
			||||||
              (uri (git-reference
 | 
					              (uri (git-reference
 | 
				
			||||||
                    (url "https://github.com/artyom-poptsov/libguile-ssh.git")
 | 
					                    (url "https://github.com/artyom-poptsov/libguile-ssh.git")
 | 
				
			||||||
                    (commit (string-append "v" version))))
 | 
					                    (commit (string-append "v" version))))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1wcv10xv7ayrhrg77zyng6flknnlkzhni24nf8x9nic00zha8znk"))))
 | 
					                "1ld2khzylaylhqfsfcvbxs95frvm8pkr7dq40ia1wwn9c349fcdv"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     '(#:phases (alist-cons-after
 | 
					     '(#:phases (alist-cons-after
 | 
				
			||||||
| 
						 | 
					@ -235,7 +225,7 @@ Additionally, various channel-specific options can be negotiated.")
 | 
				
			||||||
                     ("which" ,which)))
 | 
					                     ("which" ,which)))
 | 
				
			||||||
    (inputs `(("guile" ,guile-2.0)
 | 
					    (inputs `(("guile" ,guile-2.0)
 | 
				
			||||||
              ("libssh" ,libssh)
 | 
					              ("libssh" ,libssh)
 | 
				
			||||||
              ("libgcrypt" ,libgcrypt-1.5)))
 | 
					              ("libgcrypt" ,libgcrypt)))
 | 
				
			||||||
    (synopsis "Guile bindings to libssh")
 | 
					    (synopsis "Guile bindings to libssh")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
     "Guile-SSH is a library that provides access to the SSH protocol for
 | 
					     "Guile-SSH is a library that provides access to the SSH protocol for
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,6 +22,7 @@
 | 
				
			||||||
  #:use-module (guix download)
 | 
					  #:use-module (guix download)
 | 
				
			||||||
  #:use-module (guix utils)
 | 
					  #:use-module (guix utils)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
 | 
					  #:use-module (guix build-system r)
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
  #:use-module (gnu packages compression)
 | 
					  #:use-module (gnu packages compression)
 | 
				
			||||||
  #:use-module (gnu packages gcc)
 | 
					  #:use-module (gnu packages gcc)
 | 
				
			||||||
| 
						 | 
					@ -67,7 +68,11 @@
 | 
				
			||||||
         (add-before
 | 
					         (add-before
 | 
				
			||||||
          'check 'set-timezone
 | 
					          'check 'set-timezone
 | 
				
			||||||
          ;; Some tests require the timezone to be set.
 | 
					          ;; Some tests require the timezone to be set.
 | 
				
			||||||
          (lambda _ (setenv "TZ" "UTC") #t)))
 | 
					          (lambda _ (setenv "TZ" "UTC") #t))
 | 
				
			||||||
 | 
					         (add-after 'build 'make-info
 | 
				
			||||||
 | 
					          (lambda _ (zero? (system* "make" "info"))))
 | 
				
			||||||
 | 
					         (add-after 'build 'install-info
 | 
				
			||||||
 | 
					          (lambda _ (zero? (system* "make" "install-info")))))
 | 
				
			||||||
       #:configure-flags
 | 
					       #:configure-flags
 | 
				
			||||||
       '("--with-blas=openblas"
 | 
					       '("--with-blas=openblas"
 | 
				
			||||||
         "--with-lapack"
 | 
					         "--with-lapack"
 | 
				
			||||||
| 
						 | 
					@ -83,11 +88,20 @@
 | 
				
			||||||
         "--with-system-pcre"
 | 
					         "--with-system-pcre"
 | 
				
			||||||
         "--with-system-tre"
 | 
					         "--with-system-tre"
 | 
				
			||||||
         "--with-system-xz")))
 | 
					         "--with-system-xz")))
 | 
				
			||||||
 | 
					    ;; R has some support for Java.  When the JDK is available at configure
 | 
				
			||||||
 | 
					    ;; time environment variables pointing to the JDK will be recorded under
 | 
				
			||||||
 | 
					    ;; $R_HOME/etc and ./tools/getsp.java will be compiled which is used by "R
 | 
				
			||||||
 | 
					    ;; CMD javareconf".  "R CMD javareconf" appears to only be used to update
 | 
				
			||||||
 | 
					    ;; the recorded environment variables in $R_HOME/etc.  Refer to
 | 
				
			||||||
 | 
					    ;; https://cran.r-project.org/doc/manuals/r-release/R-admin.html#Java-support
 | 
				
			||||||
 | 
					    ;; for additional information.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ;; As the JDK is a rather large input with only very limited effects on R,
 | 
				
			||||||
 | 
					    ;; we decided to drop it.
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("bzip2" ,bzip2)
 | 
					     `(("bzip2" ,bzip2)
 | 
				
			||||||
       ("perl" ,perl)
 | 
					       ("perl" ,perl)
 | 
				
			||||||
       ("pkg-config" ,pkg-config)
 | 
					       ("pkg-config" ,pkg-config)
 | 
				
			||||||
       ("texlive" ,texlive) ; needed to make vignettes
 | 
					 | 
				
			||||||
       ("texinfo" ,texinfo) ; for building HTML manuals
 | 
					       ("texinfo" ,texinfo) ; for building HTML manuals
 | 
				
			||||||
       ("which" ,which) ; for tests/Examples/base-Ex.R
 | 
					       ("which" ,which) ; for tests/Examples/base-Ex.R
 | 
				
			||||||
       ("xz" ,xz)))
 | 
					       ("xz" ,xz)))
 | 
				
			||||||
| 
						 | 
					@ -96,7 +110,6 @@
 | 
				
			||||||
       ("cairo" ,cairo)
 | 
					       ("cairo" ,cairo)
 | 
				
			||||||
       ("gfortran" ,gfortran)
 | 
					       ("gfortran" ,gfortran)
 | 
				
			||||||
       ("icu4c" ,icu4c)
 | 
					       ("icu4c" ,icu4c)
 | 
				
			||||||
       ("icedtea6" ,icedtea6 "jdk")
 | 
					 | 
				
			||||||
       ("lapack" ,lapack)
 | 
					       ("lapack" ,lapack)
 | 
				
			||||||
       ("libjpeg" ,libjpeg)
 | 
					       ("libjpeg" ,libjpeg)
 | 
				
			||||||
       ("libpng" ,libpng)
 | 
					       ("libpng" ,libpng)
 | 
				
			||||||
| 
						 | 
					@ -119,3 +132,369 @@ and clustering.  It also provides robust support for producing
 | 
				
			||||||
publication-quality data plots.  A large amount of 3rd-party packages are
 | 
					publication-quality data plots.  A large amount of 3rd-party packages are
 | 
				
			||||||
available, greatly increasing its breadth and scope.")
 | 
					available, greatly increasing its breadth and scope.")
 | 
				
			||||||
    (license license:gpl3+)))
 | 
					    (license license:gpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public r-colorspace
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "r-colorspace")
 | 
				
			||||||
 | 
					    (version "1.2-6")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "mirror://cran/src/contrib/colorspace_"
 | 
				
			||||||
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "0y8n4ljwhbdvkysdwgqzcnpv107pb3px1jip3k6svv86p72nacds"))))
 | 
				
			||||||
 | 
					    (build-system r-build-system)
 | 
				
			||||||
 | 
					    (home-page "http://cran.r-project.org/web/packages/colorspace")
 | 
				
			||||||
 | 
					    (synopsis "Color space manipulation")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "This package carries out a mapping between assorted color spaces
 | 
				
			||||||
 | 
					including RGB, HSV, HLS, CIEXYZ, CIELUV, HCL (polar CIELUV), CIELAB and polar
 | 
				
			||||||
 | 
					CIELAB.  Qualitative, sequential, and diverging color palettes based on HCL
 | 
				
			||||||
 | 
					colors are provided.")
 | 
				
			||||||
 | 
					    (license license:bsd-3)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public r-dichromat
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "r-dichromat")
 | 
				
			||||||
 | 
					    (version "2.0-0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "mirror://cran/src/contrib/dichromat_"
 | 
				
			||||||
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "1l8db1nk29ccqg3mkbafvfiw0775iq4gapysf88xq2zp6spiw59i"))))
 | 
				
			||||||
 | 
					    (build-system r-build-system)
 | 
				
			||||||
 | 
					    (home-page "http://cran.r-project.org/web/packages/dichromat")
 | 
				
			||||||
 | 
					    (synopsis "Color schemes for dichromats")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Dichromat collapses red-green or green-blue distinctions to simulate the
 | 
				
			||||||
 | 
					effects of different types of color-blindness.")
 | 
				
			||||||
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public r-digest
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "r-digest")
 | 
				
			||||||
 | 
					    (version "0.6.8")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "mirror://cran/src/contrib/digest_"
 | 
				
			||||||
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "0m9grqv67hhf51lz10whymhw0g0d98466ka694kya5x95hn44qih"))))
 | 
				
			||||||
 | 
					    (build-system r-build-system)
 | 
				
			||||||
 | 
					    (home-page "http://dirk.eddelbuettel.com/code/digest.html")
 | 
				
			||||||
 | 
					    (synopsis "Create cryptographic hash digests of R objects")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "This package contains an implementation of a function 'digest()' for the
 | 
				
			||||||
 | 
					creation of hash digests of arbitrary R objects (using the md5, sha-1,
 | 
				
			||||||
 | 
					sha-256, crc32, xxhash and murmurhash algorithms) permitting easy comparison
 | 
				
			||||||
 | 
					of R language objects, as well as a function 'hmac()' to create hash-based
 | 
				
			||||||
 | 
					message authentication code.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Please note that this package is not meant to be deployed for cryptographic
 | 
				
			||||||
 | 
					purposes for which more comprehensive (and widely tested) libraries such as
 | 
				
			||||||
 | 
					OpenSSL should be used.")
 | 
				
			||||||
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public r-gtable
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "r-gtable")
 | 
				
			||||||
 | 
					    (version "0.1.2")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "mirror://cran/src/contrib/gtable_"
 | 
				
			||||||
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "0k9hfj6r5y238gqh92s3cbdn34biczx3zfh79ix5xq0c5vkai2xh"))))
 | 
				
			||||||
 | 
					    (build-system r-build-system)
 | 
				
			||||||
 | 
					    (home-page "https://cran.r-project.org/web/packages/gtable")
 | 
				
			||||||
 | 
					    (synopsis "R library to arrange grobs in tables")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Gtable is a collection of tools to make it easier to work with
 | 
				
			||||||
 | 
					\"tables\" of grobs.")
 | 
				
			||||||
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public r-labeling
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "r-labeling")
 | 
				
			||||||
 | 
					    (version "0.3")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "mirror://cran/src/contrib/labeling_"
 | 
				
			||||||
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "13sk7zrrrzry6ky1bp8mmnzcl9jhvkig8j4id9nny7z993mnk00d"))))
 | 
				
			||||||
 | 
					    (build-system r-build-system)
 | 
				
			||||||
 | 
					    (home-page "http://cran.r-project.org/web/packages/labeling")
 | 
				
			||||||
 | 
					    (synopsis "Axis labeling algorithms")
 | 
				
			||||||
 | 
					    (description "The labeling package provides a range of axis labeling
 | 
				
			||||||
 | 
					algorithms.")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public r-magrittr
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "r-magrittr")
 | 
				
			||||||
 | 
					    (version "1.5")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "mirror://cran/src/contrib/magrittr_"
 | 
				
			||||||
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "1s1ar6rag8m277qcqmdp02gn4awn9bdj9ax0r8s32i59mm1mki05"))))
 | 
				
			||||||
 | 
					    (build-system r-build-system)
 | 
				
			||||||
 | 
					    (home-page "http://cran.r-project.org/web/packages/magrittr/index.html")
 | 
				
			||||||
 | 
					    (synopsis "A forward-pipe operator for R")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Magrittr provides a mechanism for chaining commands with a new
 | 
				
			||||||
 | 
					forward-pipe operator, %>%.  This operator will forward a value, or the result
 | 
				
			||||||
 | 
					of an expression, into the next function call/expression.  There is flexible
 | 
				
			||||||
 | 
					support for the type of right-hand side expressions.  For more information,
 | 
				
			||||||
 | 
					see package vignette.  To quote Rene Magritte, \"Ceci n'est pas un pipe.\"")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public r-munsell
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "r-munsell")
 | 
				
			||||||
 | 
					    (version "0.4.2")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "mirror://cran/src/contrib/munsell_"
 | 
				
			||||||
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "1bi5yi0i80778bbzx2rm4f0glpc34kvh24pwwfhm4v32izsqgrw4"))))
 | 
				
			||||||
 | 
					    (build-system r-build-system)
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("r-colorspace" ,r-colorspace)))
 | 
				
			||||||
 | 
					    (home-page "http://cran.r-project.org/web/packages/munsell")
 | 
				
			||||||
 | 
					    (synopsis "Munsell colour system")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "The Munsell package contains Functions for exploring and using the
 | 
				
			||||||
 | 
					Munsell colour system.")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public r-rcpp
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "r-rcpp")
 | 
				
			||||||
 | 
					    (version "0.12.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "mirror://cran/src/contrib/Rcpp_"
 | 
				
			||||||
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "182109z0yc1snqgd833ssl2cix6cbq83bcxmy5344b15ym820y38"))))
 | 
				
			||||||
 | 
					    (build-system r-build-system)
 | 
				
			||||||
 | 
					    (home-page "http://www.rcpp.org")
 | 
				
			||||||
 | 
					    (synopsis "Seamless R and C++ Integration")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "The Rcpp package provides R functions as well as C++ classes which offer
 | 
				
			||||||
 | 
					a seamless integration of R and C++.  Many R data types and objects can be
 | 
				
			||||||
 | 
					mapped back and forth to C++ equivalents which facilitates both writing of new
 | 
				
			||||||
 | 
					code as well as easier integration of third-party libraries.  Documentation
 | 
				
			||||||
 | 
					about Rcpp is provided by several vignettes included in this package, via the
 | 
				
			||||||
 | 
					'Rcpp Gallery' site at <http://gallery.rcpp.org>, the paper by Eddelbuettel
 | 
				
			||||||
 | 
					and Francois (2011, JSS), and the book by Eddelbuettel (2013, Springer); see
 | 
				
			||||||
 | 
					'citation(\"Rcpp\")' for details on these last two.")
 | 
				
			||||||
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public r-plyr
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "r-plyr")
 | 
				
			||||||
 | 
					    (version "1.8.3")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "mirror://cran/src/contrib/plyr_"
 | 
				
			||||||
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "06v4zxawpjz37rp2q2ii5q43g664z9s29j4ydn0cz3crn7lzl6pk"))))
 | 
				
			||||||
 | 
					    (build-system r-build-system)
 | 
				
			||||||
 | 
					    (native-inputs `(("r-rcpp" ,r-rcpp)))
 | 
				
			||||||
 | 
					    (home-page "http://had.co.nz/plyr")
 | 
				
			||||||
 | 
					    (synopsis "Tools for Splitting, Applying and Combining Data")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Plyr is a set of tools that solves a common set of problems: you need to
 | 
				
			||||||
 | 
					break a big problem down into manageable pieces, operate on each piece and
 | 
				
			||||||
 | 
					then put all the pieces back together.  For example, you might want to fit a
 | 
				
			||||||
 | 
					model to each spatial location or time point in your study, summarise data by
 | 
				
			||||||
 | 
					panels or collapse high-dimensional arrays to simpler summary statistics.")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public r-proto
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "r-proto")
 | 
				
			||||||
 | 
					    (version "0.3-10")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "mirror://cran/src/contrib/proto_" version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "03mvzi529y6kjcp9bkpk7zlgpcakb3iz73hca6rpjy14pyzl3nfh"))))
 | 
				
			||||||
 | 
					    (build-system r-build-system)
 | 
				
			||||||
 | 
					    (home-page "http://r-proto.googlecode.com")
 | 
				
			||||||
 | 
					    (synopsis "Prototype object-based programming")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Proto is an object oriented system using object-based, also called
 | 
				
			||||||
 | 
					prototype-based, rather than class-based object oriented ideas.")
 | 
				
			||||||
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public r-rcolorbrewer
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "r-rcolorbrewer")
 | 
				
			||||||
 | 
					    (version "1.1-2")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "mirror://cran/src/contrib/RColorBrewer_"
 | 
				
			||||||
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "1pfcl8z1pnsssfaaz9dvdckyfnnc6rcq56dhislbf571hhg7isgk"))))
 | 
				
			||||||
 | 
					    (build-system r-build-system)
 | 
				
			||||||
 | 
					    (home-page "http://cran.r-project.org/web/packages/RColorBrewer")
 | 
				
			||||||
 | 
					    (synopsis "ColorBrewer palettes")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "This package provides color schemes for maps (and other graphics)
 | 
				
			||||||
 | 
					designed by Cynthia Brewer as described at http://colorbrewer2.org")
 | 
				
			||||||
 | 
					    ;; Includes code licensed under bsd-4
 | 
				
			||||||
 | 
					    (license license:asl2.0)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public r-stringi
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "r-stringi")
 | 
				
			||||||
 | 
					    (version "0.5-5")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append
 | 
				
			||||||
 | 
					             "mirror://cran/src/contrib/stringi_"
 | 
				
			||||||
 | 
					             version
 | 
				
			||||||
 | 
					             ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "183wrrjhpgl1wbnn9lhghyvhz7l2mc64mpcmzplckal7y9j7pmhw"))))
 | 
				
			||||||
 | 
					    (build-system r-build-system)
 | 
				
			||||||
 | 
					    (inputs `(("icu4c" ,icu4c)))
 | 
				
			||||||
 | 
					    (native-inputs `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
 | 
					    (home-page "http://stringi.rexamine.com/")
 | 
				
			||||||
 | 
					    (synopsis "Character string processing facilities")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "This package allows for fast, correct, consistent, portable, as well as
 | 
				
			||||||
 | 
					convenient character string/text processing in every locale and any native
 | 
				
			||||||
 | 
					encoding.  Owing to the use of the ICU library, the package provides R users
 | 
				
			||||||
 | 
					with platform-independent functions known to Java, Perl, Python, PHP, and Ruby
 | 
				
			||||||
 | 
					programmers.  Among available features there are: pattern searching
 | 
				
			||||||
 | 
					 (e.g.  via regular expressions), random string generation, string collation,
 | 
				
			||||||
 | 
					transliteration, concatenation, date-time formatting and parsing, etc.")
 | 
				
			||||||
 | 
					    (license license:bsd-3)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public r-stringr
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "r-stringr")
 | 
				
			||||||
 | 
					    (version "1.0.0")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "mirror://cran/src/contrib/stringr_"
 | 
				
			||||||
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "0jnz6r9yqyf7dschr2fnn1slg4wn6b4ik5q00j4zrh43bfw7s9pq"))))
 | 
				
			||||||
 | 
					    (build-system r-build-system)
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("r-magrittr" ,r-magrittr)
 | 
				
			||||||
 | 
					       ("r-stringi" ,r-stringi)))
 | 
				
			||||||
 | 
					    (home-page "https://github.com/hadley/stringr")
 | 
				
			||||||
 | 
					    (synopsis "Simple, consistent wrappers for common string operations")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Stringr is a consistent, simple and easy to use set of wrappers around
 | 
				
			||||||
 | 
					the fantastic 'stringi' package.  All function and argument names (and
 | 
				
			||||||
 | 
					positions) are consistent, all functions deal with \"NA\"'s and zero length
 | 
				
			||||||
 | 
					vectors in the same way, and the output from one function is easy to feed into
 | 
				
			||||||
 | 
					the input of another.")
 | 
				
			||||||
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public r-reshape2
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "r-reshape2")
 | 
				
			||||||
 | 
					    (version "1.4.1")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "mirror://cran/src/contrib/reshape2_"
 | 
				
			||||||
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "0hl082dyk3pk07nqprpn5dvnrkqhnf6zjnjig1ijddxhlmsrzm7v"))))
 | 
				
			||||||
 | 
					    (build-system r-build-system)
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("r-plyr" ,r-plyr)
 | 
				
			||||||
 | 
					       ("r-rcpp" ,r-rcpp)
 | 
				
			||||||
 | 
					       ("r-stringr" ,r-stringr)))
 | 
				
			||||||
 | 
					    (home-page "https://github.com/hadley/reshape")
 | 
				
			||||||
 | 
					    (synopsis "Flexibly reshape data: a reboot of the \"reshape\" package")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Reshape2 is an R library to flexibly restructure and aggregate data
 | 
				
			||||||
 | 
					using just two functions: melt and dcast (or acast).")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public r-scales
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "r-scales")
 | 
				
			||||||
 | 
					    (version "0.2.5")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "mirror://cran/src/contrib/scales_"
 | 
				
			||||||
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "12xrmn1vh64dl46bq7n7pa427aicb2ifjrby9in3m32nyvir0kac"))))
 | 
				
			||||||
 | 
					    (build-system r-build-system)
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("r-dichromat" ,r-dichromat)
 | 
				
			||||||
 | 
					       ("r-labeling" ,r-labeling)
 | 
				
			||||||
 | 
					       ("r-munsell" ,r-munsell)
 | 
				
			||||||
 | 
					       ("r-plyr" ,r-plyr)
 | 
				
			||||||
 | 
					       ("r-rcolorbrewer" ,r-rcolorbrewer)
 | 
				
			||||||
 | 
					       ("r-rcpp" ,r-rcpp)))
 | 
				
			||||||
 | 
					    (home-page "https://github.com/hadley/scales")
 | 
				
			||||||
 | 
					    (synopsis "Scale functions for visualization")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "This package provides graphical scales that map data to aesthetics, and
 | 
				
			||||||
 | 
					provides methods for automatically determining breaks and labels for axes and
 | 
				
			||||||
 | 
					legends.")
 | 
				
			||||||
 | 
					    (license license:expat)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public r-ggplot2
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "r-ggplot2")
 | 
				
			||||||
 | 
					    (version "1.0.1")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "mirror://cran/src/contrib/ggplot2_"
 | 
				
			||||||
 | 
					                           version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32 "0794kjqi3lrxb33lr1mykd58959hlgkhdn259vj8fxrh65mqw920"))))
 | 
				
			||||||
 | 
					    (build-system r-build-system)
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("r-digest" ,r-digest)
 | 
				
			||||||
 | 
					       ("r-gtable" ,r-gtable)
 | 
				
			||||||
 | 
					       ("r-plyr" ,r-plyr)
 | 
				
			||||||
 | 
					       ("r-proto" ,r-proto)
 | 
				
			||||||
 | 
					       ("r-reshape2" ,r-reshape2)
 | 
				
			||||||
 | 
					       ("r-scales" ,r-scales)))
 | 
				
			||||||
 | 
					    (home-page "http://ggplot2.org")
 | 
				
			||||||
 | 
					    (synopsis "An implementation of the grammar of graphics")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Ggplot2 is an implementation of the grammar of graphics in R.  It
 | 
				
			||||||
 | 
					combines the advantages of both base and lattice graphics: conditioning and
 | 
				
			||||||
 | 
					shared axes are handled automatically, and you can still build up a plot step
 | 
				
			||||||
 | 
					by step from multiple data sources.  It also implements a sophisticated
 | 
				
			||||||
 | 
					multidimensional conditioning system and a consistent interface to map data to
 | 
				
			||||||
 | 
					aesthetic attributes.")
 | 
				
			||||||
 | 
					    (license license:gpl2+)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -98,24 +98,6 @@ changes to project files over time.  It supports both a distributed workflow
 | 
				
			||||||
as well as the classic centralized workflow.")
 | 
					as well as the classic centralized workflow.")
 | 
				
			||||||
    (license gpl2+)))
 | 
					    (license gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (package-transitive-propagated-labels* package)
 | 
					 | 
				
			||||||
  "Return a list of the input labels of PACKAGE and its transitive inputs."
 | 
					 | 
				
			||||||
  (let ((name (package-name package)))
 | 
					 | 
				
			||||||
    `(,name
 | 
					 | 
				
			||||||
      ,@(map (match-lambda
 | 
					 | 
				
			||||||
               ((label (? package? _) . _)
 | 
					 | 
				
			||||||
                label))
 | 
					 | 
				
			||||||
             (package-transitive-propagated-inputs package)))))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define (package-propagated-input-refs inputs packages)
 | 
					 | 
				
			||||||
  "Return a list of (assoc-ref INPUTS <package-name>) for each package in
 | 
					 | 
				
			||||||
PACKAGES and their propagated inputs."
 | 
					 | 
				
			||||||
  (map (lambda (l)
 | 
					 | 
				
			||||||
         `(assoc-ref ,inputs ,l))
 | 
					 | 
				
			||||||
       (delete-duplicates                  ;XXX: efficiency
 | 
					 | 
				
			||||||
        (append-map package-transitive-propagated-labels*
 | 
					 | 
				
			||||||
                    packages))))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(define-public git
 | 
					(define-public git
 | 
				
			||||||
  ;; Keep in sync with 'git-manpages'!
 | 
					  ;; Keep in sync with 'git-manpages'!
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -238,11 +220,13 @@ PACKAGES and their propagated inputs."
 | 
				
			||||||
                `("PERL5LIB" ":" prefix
 | 
					                `("PERL5LIB" ":" prefix
 | 
				
			||||||
                  ,(map (lambda (o) (string-append o "/lib/perl5/site_perl"))
 | 
					                  ,(map (lambda (o) (string-append o "/lib/perl5/site_perl"))
 | 
				
			||||||
                        (list
 | 
					                        (list
 | 
				
			||||||
                         ,@(package-propagated-input-refs
 | 
					                         ,@(transitive-input-references
 | 
				
			||||||
                            'inputs
 | 
					                            'inputs
 | 
				
			||||||
                            (list perl-authen-sasl
 | 
					                            (map (lambda (l)
 | 
				
			||||||
                                  perl-net-smtp-ssl
 | 
					                                   (assoc l (inputs)))
 | 
				
			||||||
                                  perl-io-socket-ssl))))))
 | 
					                                 '("perl-authen-sasl"
 | 
				
			||||||
 | 
					                                   "perl-net-smtp-ssl"
 | 
				
			||||||
 | 
					                                   "perl-io-socket-ssl")))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
              ;; Tell 'git-submodule' where Perl is.
 | 
					              ;; Tell 'git-submodule' where Perl is.
 | 
				
			||||||
              (wrap-program git-sm
 | 
					              (wrap-program git-sm
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -370,14 +370,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 "2.7.2")
 | 
					    (version "2.8")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
             (method url-fetch)
 | 
					             (method url-fetch)
 | 
				
			||||||
             (uri (string-append "http://www.ffmpeg.org/releases/ffmpeg-"
 | 
					             (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
 | 
				
			||||||
                                 version ".tar.bz2"))
 | 
					                                 version ".tar.xz"))
 | 
				
			||||||
             (sha256
 | 
					             (sha256
 | 
				
			||||||
              (base32
 | 
					              (base32
 | 
				
			||||||
               "1wlygd0jp34dk4qagi4h9psn4yk8zgyj7zy9lrpm5332mm87bsvw"))))
 | 
					               "10l1iwc01k1algk2v4vzsrahdvqjmjfi3qazm2cwism0d8hsfg4r"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("fontconfig" ,fontconfig)
 | 
					     `(("fontconfig" ,fontconfig)
 | 
				
			||||||
| 
						 | 
					@ -403,7 +403,6 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
 | 
				
			||||||
       ("zlib", zlib)))
 | 
					       ("zlib", zlib)))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("bc" ,bc)
 | 
					     `(("bc" ,bc)
 | 
				
			||||||
       ("bzip2" ,bzip2)
 | 
					 | 
				
			||||||
       ("perl" ,perl)
 | 
					       ("perl" ,perl)
 | 
				
			||||||
       ("pkg-config" ,pkg-config)
 | 
					       ("pkg-config" ,pkg-config)
 | 
				
			||||||
       ("texinfo" ,texinfo)
 | 
					       ("texinfo" ,texinfo)
 | 
				
			||||||
| 
						 | 
					@ -692,7 +691,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
 | 
				
			||||||
     `(("alsa-lib" ,alsa-lib)
 | 
					     `(("alsa-lib" ,alsa-lib)
 | 
				
			||||||
       ("enca" ,enca)
 | 
					       ("enca" ,enca)
 | 
				
			||||||
       ("ffmpeg" ,ffmpeg)
 | 
					       ("ffmpeg" ,ffmpeg)
 | 
				
			||||||
       ("jack" ,jack-2)
 | 
					       ("jack" ,jack-1)
 | 
				
			||||||
       ("ladspa" ,ladspa)
 | 
					       ("ladspa" ,ladspa)
 | 
				
			||||||
       ("lcms" ,lcms)
 | 
					       ("lcms" ,lcms)
 | 
				
			||||||
       ("libass" ,libass)
 | 
					       ("libass" ,libass)
 | 
				
			||||||
| 
						 | 
					@ -792,15 +791,15 @@ projects while introducing many more.")
 | 
				
			||||||
(define-public youtube-dl
 | 
					(define-public youtube-dl
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "youtube-dl")
 | 
					    (name "youtube-dl")
 | 
				
			||||||
    (version "2015.08.16.1")
 | 
					    (version "2015.09.03")
 | 
				
			||||||
    (source (origin
 | 
					    (source (origin
 | 
				
			||||||
              (method url-fetch)
 | 
					              (method url-fetch)
 | 
				
			||||||
              (uri (string-append "http://youtube-dl.org/downloads/"
 | 
					              (uri (string-append "https://youtube-dl.org/downloads/"
 | 
				
			||||||
                                  version "/youtube-dl-"
 | 
					                                  version "/youtube-dl-"
 | 
				
			||||||
                                  version ".tar.gz"))
 | 
					                                  version ".tar.gz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "04g78anvy519pj8m8ys1ifmnmp1x3i9bw3afwqjch71n9f77papy"))))
 | 
					                "0wxjbqr07rm26iih12yhv0qwspfrg9safhgnrp8misqjjk4fz86z"))))
 | 
				
			||||||
    (build-system python-build-system)
 | 
					    (build-system python-build-system)
 | 
				
			||||||
    (inputs `(("setuptools" ,python-setuptools)))
 | 
					    (inputs `(("setuptools" ,python-setuptools)))
 | 
				
			||||||
    (home-page "http://youtube-dl.org")
 | 
					    (home-page "http://youtube-dl.org")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -169,6 +169,10 @@ traversing network address translators (NATs) and firewalls.")
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "08ds8s32cjslms1q227ihd6jz35583v378ij4pknfa5xngfijhrb"))))
 | 
					                "08ds8s32cjslms1q227ihd6jz35583v378ij4pknfa5xngfijhrb"))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:configure-flags
 | 
				
			||||||
 | 
					       '("--sysconfdir=/etc"
 | 
				
			||||||
 | 
					         "--localstatedir=/var")))
 | 
				
			||||||
    (inputs `(("zlib" ,zlib)
 | 
					    (inputs `(("zlib" ,zlib)
 | 
				
			||||||
              ("lzo" ,lzo)
 | 
					              ("lzo" ,lzo)
 | 
				
			||||||
              ("openssl" ,openssl)))
 | 
					              ("openssl" ,openssl)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -663,6 +663,59 @@ minimum to provide high performance operation.")
 | 
				
			||||||
    ;; bundled CuTest framework uses a different non-copyleft license.
 | 
					    ;; bundled CuTest framework uses a different non-copyleft license.
 | 
				
			||||||
    (license (list l:asl2.0 (l:non-copyleft "file://test/CuTest-README.txt")))))
 | 
					    (license (list l:asl2.0 (l:non-copyleft "file://test/CuTest-README.txt")))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public sassc
 | 
				
			||||||
 | 
					  ;; libsass must be statically linked and it isn't included in the sassc
 | 
				
			||||||
 | 
					  ;; release tarballs, hence this odd package recipe.
 | 
				
			||||||
 | 
					  (let* ((version "3.2.5")
 | 
				
			||||||
 | 
					         (libsass
 | 
				
			||||||
 | 
					          (origin
 | 
				
			||||||
 | 
					            (method url-fetch)
 | 
				
			||||||
 | 
					            (uri (string-append
 | 
				
			||||||
 | 
					                  "https://github.com/sass/libsass/archive/"
 | 
				
			||||||
 | 
					                  version ".tar.gz"))
 | 
				
			||||||
 | 
					            (file-name (string-append "libsass-" version ".tar.gz"))
 | 
				
			||||||
 | 
					            (sha256
 | 
				
			||||||
 | 
					             (base32
 | 
				
			||||||
 | 
					              "1x25k6p1s1yzsdpzb7bzh8japilmi1mk3z96q66pycbinj9z9is4")))))
 | 
				
			||||||
 | 
					    (package
 | 
				
			||||||
 | 
					      (name "sassc")
 | 
				
			||||||
 | 
					      (version version)
 | 
				
			||||||
 | 
					      (source (origin
 | 
				
			||||||
 | 
					                (method url-fetch)
 | 
				
			||||||
 | 
					                (uri (string-append "https://github.com/sass/sassc/archive/"
 | 
				
			||||||
 | 
					                                    version ".tar.gz"))
 | 
				
			||||||
 | 
					                (file-name (string-append "sassc-" version ".tar.gz"))
 | 
				
			||||||
 | 
					                (sha256
 | 
				
			||||||
 | 
					                 (base32
 | 
				
			||||||
 | 
					                  "1xf3w75w840rj0nx375rxi7mcv1ngqqq8p3zrzjlyx8jfpnldmv5"))))
 | 
				
			||||||
 | 
					      (build-system gnu-build-system)
 | 
				
			||||||
 | 
					      (arguments
 | 
				
			||||||
 | 
					       `(#:make-flags '("CC=gcc")
 | 
				
			||||||
 | 
					         #:test-target "test"
 | 
				
			||||||
 | 
					         #:phases
 | 
				
			||||||
 | 
					         (modify-phases %standard-phases
 | 
				
			||||||
 | 
					           (delete 'configure)
 | 
				
			||||||
 | 
					           (add-after 'unpack 'unpack-libsass-and-set-path
 | 
				
			||||||
 | 
					             (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					               (and (zero? (system* "tar" "xvf" (assoc-ref inputs "libsass")))
 | 
				
			||||||
 | 
					                    (begin
 | 
				
			||||||
 | 
					                      (setenv "SASS_LIBSASS_PATH"
 | 
				
			||||||
 | 
					                              (string-append (getcwd) "/libsass-" ,version))
 | 
				
			||||||
 | 
					                      #t))))
 | 
				
			||||||
 | 
					           (replace 'install ; no install target
 | 
				
			||||||
 | 
					             (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
 | 
				
			||||||
 | 
					                 (mkdir-p bin)
 | 
				
			||||||
 | 
					                 (copy-file "bin/sassc" (string-append bin "/sassc"))
 | 
				
			||||||
 | 
					                 #t))))))
 | 
				
			||||||
 | 
					      (inputs
 | 
				
			||||||
 | 
					       `(("libsass" ,libsass)))
 | 
				
			||||||
 | 
					      (synopsis "CSS pre-processor")
 | 
				
			||||||
 | 
					      (description "SassC is a compiler written in C for the CSS pre-processor
 | 
				
			||||||
 | 
					language known as SASS.")
 | 
				
			||||||
 | 
					      (home-page "http://sass-lang.com/libsass")
 | 
				
			||||||
 | 
					      (license l:expat))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public perl-apache-logformat-compiler
 | 
					(define-public perl-apache-logformat-compiler
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -1620,6 +1673,39 @@ with Encode::decode(locale => $string).")
 | 
				
			||||||
which can be used to parse directory listings.")
 | 
					which can be used to parse directory listings.")
 | 
				
			||||||
    (home-page "http://search.cpan.org/~gaas/File-Listing/")))
 | 
					    (home-page "http://search.cpan.org/~gaas/File-Listing/")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public perl-finance-quote
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					   (name "perl-finance-quote")
 | 
				
			||||||
 | 
					   (version "1.37")
 | 
				
			||||||
 | 
					   (source
 | 
				
			||||||
 | 
					    (origin
 | 
				
			||||||
 | 
					      (method url-fetch)
 | 
				
			||||||
 | 
					      (uri (string-append "https://cpan.metacpan.org/authors/id/E/EC/ECOCODE/"
 | 
				
			||||||
 | 
					                          "Finance-Quote-" version ".tar.gz"))
 | 
				
			||||||
 | 
					      (sha256
 | 
				
			||||||
 | 
					       (base32
 | 
				
			||||||
 | 
					        "1b6pbh7f76fb5sa4f0lhx085xy55pprz5v7z7li7pqiyw7i4f4bf"))
 | 
				
			||||||
 | 
					      (patches (list
 | 
				
			||||||
 | 
					                (search-patch "perl-finance-quote-unuse-mozilla-ca.patch")))))
 | 
				
			||||||
 | 
					   (build-system perl-build-system)
 | 
				
			||||||
 | 
					   (propagated-inputs
 | 
				
			||||||
 | 
					    `(("perl-datetime" ,perl-datetime)
 | 
				
			||||||
 | 
					      ("perl-html-parser" ,perl-html-parser)
 | 
				
			||||||
 | 
					      ("perl-html-tableextract" ,perl-html-tableextract)
 | 
				
			||||||
 | 
					      ("perl-html-tree" ,perl-html-tree)
 | 
				
			||||||
 | 
					      ("perl-http-cookies" ,perl-http-cookies)
 | 
				
			||||||
 | 
					      ("perl-http-message" ,perl-http-message)
 | 
				
			||||||
 | 
					      ("perl-json" ,perl-json)
 | 
				
			||||||
 | 
					      ("perl-libwww" ,perl-libwww)
 | 
				
			||||||
 | 
					      ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
 | 
				
			||||||
 | 
					      ("perl-uri" ,perl-uri)))
 | 
				
			||||||
 | 
					   (home-page "http://search.cpan.org/dist/Finance-Quote")
 | 
				
			||||||
 | 
					   (synopsis "Stock and mutual fund quotes")
 | 
				
			||||||
 | 
					   (description
 | 
				
			||||||
 | 
					    "Finance::Quote gets stock quotes from various internet sources, including
 | 
				
			||||||
 | 
					Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange.")
 | 
				
			||||||
 | 
					   (license l:gpl2)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public perl-gssapi
 | 
					(define-public perl-gssapi
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "perl-gssapi")
 | 
					    (name "perl-gssapi")
 | 
				
			||||||
| 
						 | 
					@ -1643,6 +1729,28 @@ which can be used to parse directory listings.")
 | 
				
			||||||
described in RFC 2744.")
 | 
					described in RFC 2744.")
 | 
				
			||||||
    (license (package-license perl))))
 | 
					    (license (package-license perl))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public perl-html-element-extended
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "perl-html-element-extended")
 | 
				
			||||||
 | 
					    (version "1.18")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "mirror://cpan/authors/id/M/MS/MSISK/"
 | 
				
			||||||
 | 
					                           "HTML-Element-Extended-" version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "0axknss8c368r5i082yhkfj8mq0w4nglfrpcxcayyzzj13qimvzk"))))
 | 
				
			||||||
 | 
					    (build-system perl-build-system)
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("perl-html-tree" ,perl-html-tree)))
 | 
				
			||||||
 | 
					    (home-page "http://search.cpan.org/dist/HTML-Element-Extended")
 | 
				
			||||||
 | 
					    (synopsis "Manipulate tables of HTML::Element")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "HTML::Element::Extended is a Perl extension for manipulating a table
 | 
				
			||||||
 | 
					composed of HTML::Element style components.")
 | 
				
			||||||
 | 
					    (license (package-license perl))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public perl-html-form
 | 
					(define-public perl-html-form
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "perl-html-form")
 | 
					    (name "perl-html-form")
 | 
				
			||||||
| 
						 | 
					@ -1691,6 +1799,29 @@ described in RFC 2744.")
 | 
				
			||||||
syntactic legitmacy.")
 | 
					syntactic legitmacy.")
 | 
				
			||||||
    (license l:artistic2.0)))
 | 
					    (license l:artistic2.0)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public perl-html-tableextract
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "perl-html-tableextract")
 | 
				
			||||||
 | 
					    (version "2.13")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "https://cpan.metacpan.org/authors/id/M/MS/MSISK/"
 | 
				
			||||||
 | 
					                           "HTML-TableExtract-" version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "01jimmss3q68a89696wmclvqwb2ybz6xgabpnbp6mm6jcni82z8a"))))
 | 
				
			||||||
 | 
					    (build-system perl-build-system)
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("perl-html-element-extended" ,perl-html-element-extended)
 | 
				
			||||||
 | 
					       ("perl-html-parser" ,perl-html-parser)))
 | 
				
			||||||
 | 
					    (home-page "http://search.cpan.org/dist/HTML-TableExtract")
 | 
				
			||||||
 | 
					    (synopsis "Extract contents from HTML tables")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "HTML::TableExtract is a Perl module for extracting the content contained
 | 
				
			||||||
 | 
					in tables within an HTML document, either as text or encoded element trees.")
 | 
				
			||||||
 | 
					    (license (package-license perl))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public perl-html-tree
 | 
					(define-public perl-html-tree
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "perl-html-tree")
 | 
					    (name "perl-html-tree")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,7 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 | 
					;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 | 
				
			||||||
 | 
					;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
 | 
				
			||||||
 | 
					;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -21,6 +23,8 @@
 | 
				
			||||||
  #:use-module (guix packages)
 | 
					  #:use-module (guix packages)
 | 
				
			||||||
  #:use-module (gnu packages linux)
 | 
					  #:use-module (gnu packages linux)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
 | 
					  #:use-module (guix build-system haskell)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages haskell)
 | 
				
			||||||
  #:use-module (gnu packages base)
 | 
					  #:use-module (gnu packages base)
 | 
				
			||||||
  #:use-module (gnu packages pkg-config)
 | 
					  #:use-module (gnu packages pkg-config)
 | 
				
			||||||
  #:use-module (gnu packages perl)
 | 
					  #:use-module (gnu packages perl)
 | 
				
			||||||
| 
						 | 
					@ -143,3 +147,78 @@ commands would.")
 | 
				
			||||||
from scratch.  i3 is primarily targeted at advanced users and
 | 
					from scratch.  i3 is primarily targeted at advanced users and
 | 
				
			||||||
developers.")
 | 
					developers.")
 | 
				
			||||||
    (license bsd-3)))
 | 
					    (license bsd-3)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public xmonad
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "xmonad")
 | 
				
			||||||
 | 
					    (version "0.11.1")
 | 
				
			||||||
 | 
					    (synopsis "Tiling window manager")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "http://hackage.haskell.org/package/xmonad/"
 | 
				
			||||||
 | 
					                                  "xmonad-" version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "1pfjssamiwpwjp1qqkm9m9p9s35pv381m0cwg6jxg0ppglibzq1r"))))
 | 
				
			||||||
 | 
					    (build-system haskell-build-system)
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("ghc-mtl" ,ghc-mtl)
 | 
				
			||||||
 | 
					       ("ghc-utf8-string" ,ghc-utf8-string)
 | 
				
			||||||
 | 
					       ("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
 | 
				
			||||||
 | 
					       ("ghc-x11" ,ghc-x11)))
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-after
 | 
				
			||||||
 | 
					          'install 'install-xsession
 | 
				
			||||||
 | 
					          (lambda _
 | 
				
			||||||
 | 
					            (let* ((xsessions (string-append %output "/share/xsessions")))
 | 
				
			||||||
 | 
					              (mkdir-p xsessions)
 | 
				
			||||||
 | 
					              (call-with-output-file
 | 
				
			||||||
 | 
					                  (string-append xsessions "/xmonad.desktop")
 | 
				
			||||||
 | 
					                (lambda (port)
 | 
				
			||||||
 | 
					                  (format port "~
 | 
				
			||||||
 | 
					                    [Desktop Entry]~@
 | 
				
			||||||
 | 
					                    Name=~a~@
 | 
				
			||||||
 | 
					                    Comment=~a~@
 | 
				
			||||||
 | 
					                    Exec=~a/bin/xmonad~@
 | 
				
			||||||
 | 
					                    Type=Application~%" ,name ,synopsis %output)))))))))
 | 
				
			||||||
 | 
					    (home-page "http://xmonad.org")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Xmonad is a tiling window manager for X.  Windows are arranged
 | 
				
			||||||
 | 
					automatically to tile the screen without gaps or overlap, maximising screen
 | 
				
			||||||
 | 
					use.  All features of the window manager are accessible from the keyboard: a
 | 
				
			||||||
 | 
					mouse is strictly optional.  Xmonad is written and extensible in Haskell.
 | 
				
			||||||
 | 
					Custom layout algorithms, and other extensions, may be written by the user in
 | 
				
			||||||
 | 
					config files.  Layouts are applied dynamically, and different layouts may be
 | 
				
			||||||
 | 
					used on each workspace.  Xinerama is fully supported, allowing windows to be
 | 
				
			||||||
 | 
					tiled on several screens.")
 | 
				
			||||||
 | 
					    (license bsd-3)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public ghc-xmonad-contrib
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "ghc-xmonad-contrib")
 | 
				
			||||||
 | 
					    (version "0.11.3")
 | 
				
			||||||
 | 
					    (source
 | 
				
			||||||
 | 
					     (origin
 | 
				
			||||||
 | 
					       (method url-fetch)
 | 
				
			||||||
 | 
					       (uri (string-append "http://hackage.haskell.org/package/xmonad-contrib/"
 | 
				
			||||||
 | 
					                           "xmonad-contrib-" version ".tar.gz"))
 | 
				
			||||||
 | 
					       (sha256
 | 
				
			||||||
 | 
					        (base32
 | 
				
			||||||
 | 
					         "14h9vr33yljymswj50wbimav263y9abdcgi07mvfis0zd08rxqxa"))))
 | 
				
			||||||
 | 
					    (build-system haskell-build-system)
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("ghc-mtl" ,ghc-mtl)
 | 
				
			||||||
 | 
					       ("ghc-random" ,ghc-random)
 | 
				
			||||||
 | 
					       ("ghc-utf8-string" ,ghc-utf8-string)
 | 
				
			||||||
 | 
					       ("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
 | 
				
			||||||
 | 
					       ("ghc-x11" ,ghc-x11)
 | 
				
			||||||
 | 
					       ("ghc-x11-xft" ,ghc-x11-xft)
 | 
				
			||||||
 | 
					       ("xmonad" ,xmonad)))
 | 
				
			||||||
 | 
					    (home-page "http://xmonad.org")
 | 
				
			||||||
 | 
					    (synopsis "Third party extensions for xmonad")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Third party tiling algorithms, configurations, and scripts to Xmonad, a
 | 
				
			||||||
 | 
					tiling window manager for X.")
 | 
				
			||||||
 | 
					    (license bsd-3)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,7 +38,8 @@
 | 
				
			||||||
  #:use-module (gnu packages gstreamer)
 | 
					  #:use-module (gnu packages gstreamer)
 | 
				
			||||||
  #:use-module (gnu packages linux)
 | 
					  #:use-module (gnu packages linux)
 | 
				
			||||||
  #:use-module (gnu packages photo)
 | 
					  #:use-module (gnu packages photo)
 | 
				
			||||||
  #:use-module (gnu packages pcre))
 | 
					  #:use-module (gnu packages pcre)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages pulseaudio))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public gtk-xfce-engine
 | 
					(define-public gtk-xfce-engine
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
| 
						 | 
					@ -146,8 +147,9 @@ storage system.")
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)
 | 
					     `(("pkg-config" ,pkg-config)
 | 
				
			||||||
       ("intltool" ,intltool)))
 | 
					       ("intltool" ,intltool)))
 | 
				
			||||||
    (propagated-inputs
 | 
					    (propagated-inputs
 | 
				
			||||||
     ;; libxfce4kbd-private-2.pc refers to all these.
 | 
					     `(("gtk+-2" ,gtk+-2)  ; required by libxfce4ui-1.pc
 | 
				
			||||||
     `(("gtk+" ,gtk+-2)
 | 
					       ("gtk+-3" ,gtk+)    ; required by libxfce4ui-2.pc
 | 
				
			||||||
 | 
					       ;; libxfce4kbd-private-2.pc refers to all these.
 | 
				
			||||||
       ("libxfce4util" ,libxfce4util)
 | 
					       ("libxfce4util" ,libxfce4util)
 | 
				
			||||||
       ("xfconf" ,xfconf)))
 | 
					       ("xfconf" ,xfconf)))
 | 
				
			||||||
    (inputs `(("libsm" ,libsm)
 | 
					    (inputs `(("libsm" ,libsm)
 | 
				
			||||||
| 
						 | 
					@ -267,6 +269,8 @@ management D-Bus specification.")
 | 
				
			||||||
                "1c4p3ckghvsad1sj5v8wmar5mh9cbhail9mmhad2f9pwwb10z4ih"))
 | 
					                "1c4p3ckghvsad1sj5v8wmar5mh9cbhail9mmhad2f9pwwb10z4ih"))
 | 
				
			||||||
              (patches (list (search-patch "xfce4-panel-plugins.patch")))))
 | 
					              (patches (list (search-patch "xfce4-panel-plugins.patch")))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:configure-flags '("--enable-gtk3")))
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)
 | 
					     `(("pkg-config" ,pkg-config)
 | 
				
			||||||
       ("intltool" ,intltool)))
 | 
					       ("intltool" ,intltool)))
 | 
				
			||||||
| 
						 | 
					@ -349,6 +353,37 @@ handle text and images, and has a feature to execute actions on specific text by
 | 
				
			||||||
matching them against regular expressions.")
 | 
					matching them against regular expressions.")
 | 
				
			||||||
    (license (list gpl2+))))
 | 
					    (license (list gpl2+))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public xfce4-pulseaudio-plugin
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "xfce4-pulseaudio-plugin")
 | 
				
			||||||
 | 
					    (version "0.2.3")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "http://archive.xfce.org/src/panel-plugins/"
 | 
				
			||||||
 | 
					                                  name "/" (version-major+minor version) "/"
 | 
				
			||||||
 | 
					                                  name "-" version ".tar.bz2"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "0crvb2gyxbnlf46712arg3m2vqx81dixqhqdwss0bngpijy3ca78"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("intltool" ,intltool)
 | 
				
			||||||
 | 
					       ("pkg-config" ,pkg-config)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("exo" ,exo)
 | 
				
			||||||
 | 
					       ("libnotify" ,libnotify)
 | 
				
			||||||
 | 
					       ("libxfce4ui" ,libxfce4ui)
 | 
				
			||||||
 | 
					       ("pulseaudio" ,pulseaudio)
 | 
				
			||||||
 | 
					       ("xfce4-panel" ,xfce4-panel)))
 | 
				
			||||||
 | 
					    (home-page "http://git.xfce.org/panel-plugins/xfce4-pulseaudio-plugin/")
 | 
				
			||||||
 | 
					    (synopsis "PulseAudio panel plugin for Xfce")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Xfce PulseAudio plugin is a plugin for the Xfce panel which provides a
 | 
				
			||||||
 | 
					convenient way to adjust the audio volume of the PulseAudio sound system and
 | 
				
			||||||
 | 
					to an auto mixer tool like pavucontrol.  It can optionally handle multimedia
 | 
				
			||||||
 | 
					keys for controlling the audio volume.")
 | 
				
			||||||
 | 
					    (license gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public xfce4-appfinder
 | 
					(define-public xfce4-appfinder
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "xfce4-appfinder")
 | 
					    (name "xfce4-appfinder")
 | 
				
			||||||
| 
						 | 
					@ -417,7 +452,9 @@ allows you to shutdown the computer from Xfce.")
 | 
				
			||||||
                                  "/src/" name "-" version ".tar.bz2"))
 | 
					                                  "/src/" name "-" version ".tar.bz2"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "108za1cmjslwzkdl76x9kwxkq8z734kg9nz8rxk057f10pqwxgh4"))))
 | 
					                "108za1cmjslwzkdl76x9kwxkq8z734kg9nz8rxk057f10pqwxgh4"))
 | 
				
			||||||
 | 
					              (patches
 | 
				
			||||||
 | 
					               (list (search-patch "xfce4-settings-defaults.patch")))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
    (native-inputs
 | 
					    (native-inputs
 | 
				
			||||||
     `(("pkg-config" ,pkg-config)
 | 
					     `(("pkg-config" ,pkg-config)
 | 
				
			||||||
| 
						 | 
					@ -631,15 +668,17 @@ on your desktop.")
 | 
				
			||||||
       ("thunar-volman"        ,thunar-volman)
 | 
					       ("thunar-volman"        ,thunar-volman)
 | 
				
			||||||
       ("tumlber"              ,tumbler)
 | 
					       ("tumlber"              ,tumbler)
 | 
				
			||||||
       ("xfce4-appfinder"      ,xfce4-appfinder)
 | 
					       ("xfce4-appfinder"      ,xfce4-appfinder)
 | 
				
			||||||
       ("xfce4-battery-plugin" ,xfce4-battery-plugin)
 | 
					 | 
				
			||||||
       ("xfce4-clipman-plugin" ,xfce4-clipman-plugin)
 | 
					 | 
				
			||||||
       ("xfce4-panel"          ,xfce4-panel)
 | 
					       ("xfce4-panel"          ,xfce4-panel)
 | 
				
			||||||
       ("xfce4-session"        ,xfce4-session)
 | 
					       ("xfce4-session"        ,xfce4-session)
 | 
				
			||||||
       ("xfce4-settings"       ,xfce4-settings)
 | 
					       ("xfce4-settings"       ,xfce4-settings)
 | 
				
			||||||
       ("xfce4-terminal"       ,xfce4-terminal)
 | 
					       ("xfce4-terminal"       ,xfce4-terminal)
 | 
				
			||||||
       ("xfconf"               ,xfconf)
 | 
					       ("xfconf"               ,xfconf)
 | 
				
			||||||
       ("xfdesktop"            ,xfdesktop)
 | 
					       ("xfdesktop"            ,xfdesktop)
 | 
				
			||||||
       ("xfwm4"                ,xfwm4)))
 | 
					       ("xfwm4"                ,xfwm4)
 | 
				
			||||||
 | 
					       ;; Panel plugins.
 | 
				
			||||||
 | 
					       ("xfce4-battery-plugin"    ,xfce4-battery-plugin)
 | 
				
			||||||
 | 
					       ("xfce4-clipman-plugin"    ,xfce4-clipman-plugin)
 | 
				
			||||||
 | 
					       ("xfce4-pulseaudio-plugin" ,xfce4-pulseaudio-plugin)))
 | 
				
			||||||
    (home-page "http://www.xfce.org/")
 | 
					    (home-page "http://www.xfce.org/")
 | 
				
			||||||
    (synopsis "Desktop environment (meta-package)")
 | 
					    (synopsis "Desktop environment (meta-package)")
 | 
				
			||||||
    (description
 | 
					    (description
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -467,3 +467,25 @@ Canonical XML (part of Libxml2) and Exclusive Canonical XML (part of
 | 
				
			||||||
Libxml2).")
 | 
					Libxml2).")
 | 
				
			||||||
    (license (license:x11-style "file://COPYING"
 | 
					    (license (license:x11-style "file://COPYING"
 | 
				
			||||||
                                "See 'COPYING' in the distribution."))))
 | 
					                                "See 'COPYING' in the distribution."))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public minixml
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "minixml")
 | 
				
			||||||
 | 
					    (version "2.9")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "http://www.msweet.org/files/project3/mxml-"
 | 
				
			||||||
 | 
					                                  version ".tar.gz"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "14pzhlfidj5v1qbxy7a59yn4jz9pnjrs2zwalz228jsq7ijm9vfd"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:tests? #f))  ;no "check" target
 | 
				
			||||||
 | 
					    (home-page "http://www.minixml.org/")
 | 
				
			||||||
 | 
					    (synopsis "Small XML parsing library")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "Mini-XML is a small C library to read and write XML files and strings in
 | 
				
			||||||
 | 
					UTF-8 and UTF-16 encoding.")
 | 
				
			||||||
 | 
					    ;; LGPL 2.0+ with additional exceptions for static linking
 | 
				
			||||||
 | 
					    (license license:lgpl2.0+)))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
;;; GNU Guix --- Functional package management for GNU
 | 
					;;; GNU Guix --- Functional package management for GNU
 | 
				
			||||||
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 | 
					;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 | 
				
			||||||
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
 | 
					;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
 | 
				
			||||||
 | 
					;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -884,6 +885,9 @@ This is the GNU operating system, welcome!\n\n")))
 | 
				
			||||||
          ;; The LVM2 rules are needed as soon as LVM2 or the device-mapper is
 | 
					          ;; The LVM2 rules are needed as soon as LVM2 or the device-mapper is
 | 
				
			||||||
          ;; used, so enable them by default.  The FUSE and ALSA rules are
 | 
					          ;; used, so enable them by default.  The FUSE and ALSA rules are
 | 
				
			||||||
          ;; less critical, but handy.
 | 
					          ;; less critical, but handy.
 | 
				
			||||||
 | 
					          ;;
 | 
				
			||||||
 | 
					          ;; XXX Keep this in sync with the 'udev-service' call in
 | 
				
			||||||
 | 
					          ;; %desktop-services.
 | 
				
			||||||
          (udev-service #:rules (list lvm2 fuse alsa-utils crda)))))
 | 
					          (udev-service #:rules (list lvm2 fuse alsa-utils crda)))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; base.scm ends here
 | 
					;;; base.scm ends here
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
;;; 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 © 2015 Andy Wingo <wingo@igalia.com>
 | 
					;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
 | 
				
			||||||
 | 
					;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; This file is part of GNU Guix.
 | 
					;;; This file is part of GNU Guix.
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
| 
						 | 
					@ -24,12 +25,18 @@
 | 
				
			||||||
  #:use-module (gnu services xorg)
 | 
					  #:use-module (gnu services xorg)
 | 
				
			||||||
  #:use-module (gnu services networking)
 | 
					  #:use-module (gnu services networking)
 | 
				
			||||||
  #:use-module (gnu system shadow)
 | 
					  #:use-module (gnu system shadow)
 | 
				
			||||||
 | 
					  #:use-module (gnu system linux) ; unix-pam-service
 | 
				
			||||||
  #:use-module (gnu packages glib)
 | 
					  #:use-module (gnu packages glib)
 | 
				
			||||||
  #:use-module (gnu packages admin)
 | 
					  #:use-module (gnu packages admin)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages freedesktop)
 | 
				
			||||||
  #:use-module (gnu packages gnome)
 | 
					  #:use-module (gnu packages gnome)
 | 
				
			||||||
  #:use-module (gnu packages avahi)
 | 
					  #:use-module (gnu packages avahi)
 | 
				
			||||||
  #:use-module (gnu packages wicd)
 | 
					  #:use-module (gnu packages wicd)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages polkit)
 | 
				
			||||||
 | 
					  #:use-module ((gnu packages linux)
 | 
				
			||||||
 | 
					                #:select (lvm2 fuse alsa-utils crda))
 | 
				
			||||||
  #:use-module (guix monads)
 | 
					  #:use-module (guix monads)
 | 
				
			||||||
 | 
					  #:use-module (guix records)
 | 
				
			||||||
  #:use-module (guix store)
 | 
					  #:use-module (guix store)
 | 
				
			||||||
  #:use-module (guix gexp)
 | 
					  #:use-module (guix gexp)
 | 
				
			||||||
  #:use-module (ice-9 match)
 | 
					  #:use-module (ice-9 match)
 | 
				
			||||||
| 
						 | 
					@ -39,6 +46,9 @@
 | 
				
			||||||
            geoclue-application
 | 
					            geoclue-application
 | 
				
			||||||
            %standard-geoclue-applications
 | 
					            %standard-geoclue-applications
 | 
				
			||||||
            geoclue-service
 | 
					            geoclue-service
 | 
				
			||||||
 | 
					            polkit-service
 | 
				
			||||||
 | 
					            elogind-configuration
 | 
				
			||||||
 | 
					            elogind-service
 | 
				
			||||||
            %desktop-services))
 | 
					            %desktop-services))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; Commentary:
 | 
					;;; Commentary:
 | 
				
			||||||
| 
						 | 
					@ -372,6 +382,199 @@ site} for more information."
 | 
				
			||||||
                            (shell
 | 
					                            (shell
 | 
				
			||||||
                             "/run/current-system/profile/sbin/nologin"))))))))
 | 
					                             "/run/current-system/profile/sbin/nologin"))))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; Polkit privilege management service.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define* (polkit-service #:key (polkit polkit))
 | 
				
			||||||
 | 
					  "Return a service that runs the @command{polkit} privilege management
 | 
				
			||||||
 | 
					service.  By querying the @command{polkit} service, a privileged system
 | 
				
			||||||
 | 
					component can know when it should grant additional capabilities to ordinary
 | 
				
			||||||
 | 
					users.  For example, an ordinary user can be granted the capability to suspend
 | 
				
			||||||
 | 
					the system if the user is logged in locally."
 | 
				
			||||||
 | 
					  (with-monad %store-monad
 | 
				
			||||||
 | 
					    (return
 | 
				
			||||||
 | 
					     (service
 | 
				
			||||||
 | 
					      (documentation "Run the polkit privilege management service.")
 | 
				
			||||||
 | 
					      (provision '(polkit-daemon))
 | 
				
			||||||
 | 
					      (requirement '(dbus-system))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      (start #~(make-forkexec-constructor
 | 
				
			||||||
 | 
					                (list (string-append #$polkit "/lib/polkit-1/polkitd"))))
 | 
				
			||||||
 | 
					      (stop #~(make-kill-destructor))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      (user-groups (list (user-group
 | 
				
			||||||
 | 
					                          (name "polkitd")
 | 
				
			||||||
 | 
					                          (system? #t))))
 | 
				
			||||||
 | 
					      (user-accounts (list (user-account
 | 
				
			||||||
 | 
					                            (name "polkitd")
 | 
				
			||||||
 | 
					                            (group "polkitd")
 | 
				
			||||||
 | 
					                            (system? #t)
 | 
				
			||||||
 | 
					                            (comment "Polkit daemon user")
 | 
				
			||||||
 | 
					                            (home-directory "/var/empty")
 | 
				
			||||||
 | 
					                            (shell
 | 
				
			||||||
 | 
					                             "/run/current-system/profile/sbin/nologin"))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      (pam-services (list (unix-pam-service "polkit-1")))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; Elogind login and seat management service.
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-record-type* <elogind-configuration> elogind-configuration
 | 
				
			||||||
 | 
					  make-elogind-configuration
 | 
				
			||||||
 | 
					  elogind-configuration
 | 
				
			||||||
 | 
					  (kill-user-processes?            elogind-kill-user-processes?
 | 
				
			||||||
 | 
					                                   (default #f))
 | 
				
			||||||
 | 
					  (kill-only-users                 elogind-kill-only-users
 | 
				
			||||||
 | 
					                                   (default '()))
 | 
				
			||||||
 | 
					  (kill-exclude-users              elogind-kill-exclude-users
 | 
				
			||||||
 | 
					                                   (default '("root")))
 | 
				
			||||||
 | 
					  (inhibit-delay-max-seconds       elogind-inhibit-delay-max-seconds
 | 
				
			||||||
 | 
					                                   (default 5))
 | 
				
			||||||
 | 
					  (handle-power-key                elogind-handle-power-key
 | 
				
			||||||
 | 
					                                   (default 'poweroff))
 | 
				
			||||||
 | 
					  (handle-suspend-key              elogind-handle-suspend-key
 | 
				
			||||||
 | 
					                                   (default 'suspend))
 | 
				
			||||||
 | 
					  (handle-hibernate-key            elogind-handle-hibernate-key
 | 
				
			||||||
 | 
					                                   ;; (default 'hibernate)
 | 
				
			||||||
 | 
					                                   ;; XXX Ignore it for now, since we don't
 | 
				
			||||||
 | 
					                                   ;; yet handle resume-from-hibernation in
 | 
				
			||||||
 | 
					                                   ;; our initrd.
 | 
				
			||||||
 | 
					                                   (default 'ignore))
 | 
				
			||||||
 | 
					  (handle-lid-switch               elogind-handle-lid-switch
 | 
				
			||||||
 | 
					                                   (default 'suspend))
 | 
				
			||||||
 | 
					  (handle-lid-switch-docked        elogind-handle-lid-switch-docked
 | 
				
			||||||
 | 
					                                   (default 'ignore))
 | 
				
			||||||
 | 
					  (power-key-ignore-inhibited?     elogind-power-key-ignore-inhibited?
 | 
				
			||||||
 | 
					                                   (default #f))
 | 
				
			||||||
 | 
					  (suspend-key-ignore-inhibited?   elogind-suspend-key-ignore-inhibited?
 | 
				
			||||||
 | 
					                                   (default #f))
 | 
				
			||||||
 | 
					  (hibernate-key-ignore-inhibited? elogind-hibernate-key-ignore-inhibited?
 | 
				
			||||||
 | 
					                                   (default #f))
 | 
				
			||||||
 | 
					  (lid-switch-ignore-inhibited?    elogind-lid-switch-ignore-inhibited?
 | 
				
			||||||
 | 
					                                   (default #t))
 | 
				
			||||||
 | 
					  (holdoff-timeout-seconds         elogind-holdoff-timeout-seconds
 | 
				
			||||||
 | 
					                                   (default 30))
 | 
				
			||||||
 | 
					  (idle-action                     elogind-idle-action
 | 
				
			||||||
 | 
					                                   (default 'ignore))
 | 
				
			||||||
 | 
					  (idle-action-seconds             elogind-idle-action-seconds
 | 
				
			||||||
 | 
					                                   (default (* 30 60)))
 | 
				
			||||||
 | 
					  (runtime-directory-size-percent  elogind-runtime-directory-size-percent
 | 
				
			||||||
 | 
					                                   (default 10))
 | 
				
			||||||
 | 
					  (runtime-directory-size          elogind-runtime-directory-size
 | 
				
			||||||
 | 
					                                   (default #f))
 | 
				
			||||||
 | 
					  (remove-ipc?                     elogind-remove-ipc?
 | 
				
			||||||
 | 
					                                   (default #t))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  (suspend-state                   elogind-suspend-state
 | 
				
			||||||
 | 
					                                   (default '("mem" "standby" "freeze")))
 | 
				
			||||||
 | 
					  (suspend-mode                    elogind-suspend-mode
 | 
				
			||||||
 | 
					                                   (default '()))
 | 
				
			||||||
 | 
					  (hibernate-state                 elogind-hibernate-state
 | 
				
			||||||
 | 
					                                   (default '("disk")))
 | 
				
			||||||
 | 
					  (hibernate-mode                  elogind-hibernate-mode
 | 
				
			||||||
 | 
					                                   (default '("platform" "shutdown")))
 | 
				
			||||||
 | 
					  (hybrid-sleep-state              elogind-hybrid-sleep-state
 | 
				
			||||||
 | 
					                                   (default '("disk")))
 | 
				
			||||||
 | 
					  (hybrid-sleep-mode               elogind-hybrid-sleep-mode
 | 
				
			||||||
 | 
					                                   (default
 | 
				
			||||||
 | 
					                                     '("suspend" "platform" "shutdown"))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (elogind-configuration-file config)
 | 
				
			||||||
 | 
					  (define (yesno x)
 | 
				
			||||||
 | 
					    (match x
 | 
				
			||||||
 | 
					      (#t "yes")
 | 
				
			||||||
 | 
					      (#f "no")
 | 
				
			||||||
 | 
					      (_ (error "expected #t or #f, instead got:" x))))
 | 
				
			||||||
 | 
					  (define char-set:user-name
 | 
				
			||||||
 | 
					    (string->char-set "abcdefghijklmnopqrstuvwxyz0123456789_-"))
 | 
				
			||||||
 | 
					  (define (valid-list? l pred)
 | 
				
			||||||
 | 
					    (and-map (lambda (x) (string-every pred x)) l))
 | 
				
			||||||
 | 
					  (define (user-name-list users)
 | 
				
			||||||
 | 
					    (unless (valid-list? users char-set:user-name)
 | 
				
			||||||
 | 
					      (error "invalid user list" users))
 | 
				
			||||||
 | 
					    (string-join users " "))
 | 
				
			||||||
 | 
					  (define (enum val allowed)
 | 
				
			||||||
 | 
					    (unless (memq val allowed)
 | 
				
			||||||
 | 
					      (error "invalid value" val allowed))
 | 
				
			||||||
 | 
					    (symbol->string val))
 | 
				
			||||||
 | 
					  (define (non-negative-integer x)
 | 
				
			||||||
 | 
					    (unless (exact-integer? x) (error "not an integer" x))
 | 
				
			||||||
 | 
					    (when (negative? x) (error "negative number not allowed" x))
 | 
				
			||||||
 | 
					    (number->string x))
 | 
				
			||||||
 | 
					  (define handle-actions
 | 
				
			||||||
 | 
					    '(ignore poweroff reboot halt kexec suspend hibernate hybrid-sleep lock))
 | 
				
			||||||
 | 
					  (define (handle-action x)
 | 
				
			||||||
 | 
					    (enum x handle-actions))
 | 
				
			||||||
 | 
					  (define (sleep-list tokens)
 | 
				
			||||||
 | 
					    (unless (valid-list? tokens char-set:user-name)
 | 
				
			||||||
 | 
					      (error "invalid sleep list" tokens))
 | 
				
			||||||
 | 
					    (string-join tokens " "))
 | 
				
			||||||
 | 
					  (define-syntax ini-file-clause
 | 
				
			||||||
 | 
					    (syntax-rules ()
 | 
				
			||||||
 | 
					      ((_ config (prop (parser getter)))
 | 
				
			||||||
 | 
					       (string-append prop "=" (parser (getter config)) "\n"))
 | 
				
			||||||
 | 
					      ((_ config str)
 | 
				
			||||||
 | 
					       (string-append str "\n"))))
 | 
				
			||||||
 | 
					  (define-syntax-rule (ini-file config file clause ...)
 | 
				
			||||||
 | 
					    (text-file file (string-append (ini-file-clause config clause) ...)))
 | 
				
			||||||
 | 
					  (ini-file
 | 
				
			||||||
 | 
					   config "logind.conf"
 | 
				
			||||||
 | 
					   "[Login]"
 | 
				
			||||||
 | 
					   ("KillUserProcesses" (yesno elogind-kill-user-processes?))
 | 
				
			||||||
 | 
					   ("KillOnlyUsers" (user-name-list elogind-kill-only-users))
 | 
				
			||||||
 | 
					   ("KillExcludeUsers" (user-name-list elogind-kill-exclude-users))
 | 
				
			||||||
 | 
					   ("InhibitDelayMaxSecs" (non-negative-integer elogind-inhibit-delay-max-seconds))
 | 
				
			||||||
 | 
					   ("HandlePowerKey" (handle-action elogind-handle-power-key))
 | 
				
			||||||
 | 
					   ("HandleSuspendKey" (handle-action elogind-handle-suspend-key))
 | 
				
			||||||
 | 
					   ("HandleHibernateKey" (handle-action elogind-handle-hibernate-key))
 | 
				
			||||||
 | 
					   ("HandleLidSwitch" (handle-action elogind-handle-lid-switch))
 | 
				
			||||||
 | 
					   ("HandleLidSwitchDocked" (handle-action elogind-handle-lid-switch-docked))
 | 
				
			||||||
 | 
					   ("PowerKeyIgnoreInhibited" (yesno elogind-power-key-ignore-inhibited?))
 | 
				
			||||||
 | 
					   ("SuspendKeyIgnoreInhibited" (yesno elogind-suspend-key-ignore-inhibited?))
 | 
				
			||||||
 | 
					   ("HibernateKeyIgnoreInhibited" (yesno elogind-hibernate-key-ignore-inhibited?))
 | 
				
			||||||
 | 
					   ("LidSwitchIgnoreInhibited" (yesno elogind-lid-switch-ignore-inhibited?))
 | 
				
			||||||
 | 
					   ("HoldoffTimeoutSecs" (non-negative-integer elogind-holdoff-timeout-seconds))
 | 
				
			||||||
 | 
					   ("IdleAction" (handle-action elogind-idle-action))
 | 
				
			||||||
 | 
					   ("IdleActionSeconds" (non-negative-integer elogind-idle-action-seconds))
 | 
				
			||||||
 | 
					   ("RuntimeDirectorySize"
 | 
				
			||||||
 | 
					    (identity
 | 
				
			||||||
 | 
					     (lambda (config)
 | 
				
			||||||
 | 
					       (match (elogind-runtime-directory-size-percent config)
 | 
				
			||||||
 | 
					         (#f (non-negative-integer (elogind-runtime-directory-size config)))
 | 
				
			||||||
 | 
					         (percent (string-append (non-negative-integer percent) "%"))))))
 | 
				
			||||||
 | 
					   ("RemoveIpc" (yesno elogind-remove-ipc?))
 | 
				
			||||||
 | 
					   "[Sleep]"
 | 
				
			||||||
 | 
					   ("SuspendState" (sleep-list elogind-suspend-state))
 | 
				
			||||||
 | 
					   ("SuspendMode" (sleep-list elogind-suspend-mode))
 | 
				
			||||||
 | 
					   ("HibernateState" (sleep-list elogind-hibernate-state))
 | 
				
			||||||
 | 
					   ("HibernateMode" (sleep-list elogind-hibernate-mode))
 | 
				
			||||||
 | 
					   ("HybridSleepState" (sleep-list elogind-hybrid-sleep-state))
 | 
				
			||||||
 | 
					   ("HybridSleepMode" (sleep-list elogind-hybrid-sleep-mode))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define* (elogind-service #:key (elogind elogind)
 | 
				
			||||||
 | 
					                          (config (elogind-configuration)))
 | 
				
			||||||
 | 
					  "Return a service that runs the @command{elogind} login and seat management
 | 
				
			||||||
 | 
					service.  The @command{elogind} service integrates with PAM to allow other
 | 
				
			||||||
 | 
					system components to know the set of logged-in users as well as their session
 | 
				
			||||||
 | 
					types (graphical, console, remote, etc.).  It can also clean up after users
 | 
				
			||||||
 | 
					when they log out."
 | 
				
			||||||
 | 
					  (mlet %store-monad ((config-file (elogind-configuration-file config)))
 | 
				
			||||||
 | 
					    (return
 | 
				
			||||||
 | 
					     (service
 | 
				
			||||||
 | 
					      (documentation "Run the elogind login and seat management service.")
 | 
				
			||||||
 | 
					      (provision '(elogind))
 | 
				
			||||||
 | 
					      (requirement '(dbus-system))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      (start #~(make-forkexec-constructor
 | 
				
			||||||
 | 
					                (list (string-append #$elogind "/libexec/elogind/elogind"))
 | 
				
			||||||
 | 
					                #:environment-variables
 | 
				
			||||||
 | 
					                (list (string-append "ELOGIND_CONF_FILE=" #$config-file))))
 | 
				
			||||||
 | 
					      (stop #~(make-kill-destructor))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; The default set of desktop services.
 | 
					;;; The default set of desktop services.
 | 
				
			||||||
| 
						 | 
					@ -383,23 +586,38 @@ site} for more information."
 | 
				
			||||||
         (avahi-service)
 | 
					         (avahi-service)
 | 
				
			||||||
         (wicd-service)
 | 
					         (wicd-service)
 | 
				
			||||||
         (upower-service)
 | 
					         (upower-service)
 | 
				
			||||||
         ;; FIXME: The colord and geoclue services could all be bus-activated
 | 
					         ;; FIXME: The colord, geoclue, and polkit services could all be
 | 
				
			||||||
         ;; by default, so they don't run at program startup.  However, user
 | 
					         ;; bus-activated by default, so they don't run at program startup.
 | 
				
			||||||
         ;; creation and /var/lib.colord creation happen at service activation
 | 
					         ;; However, user creation and /var/lib/colord creation happen at
 | 
				
			||||||
         ;; time, so we currently add them to the set of default services.
 | 
					         ;; service activation time, so we currently add them to the set of
 | 
				
			||||||
 | 
					         ;; default services.
 | 
				
			||||||
         (colord-service)
 | 
					         (colord-service)
 | 
				
			||||||
         (geoclue-service)
 | 
					         (geoclue-service)
 | 
				
			||||||
         (dbus-service (list avahi wicd upower colord geoclue))
 | 
					         (polkit-service)
 | 
				
			||||||
 | 
					         (elogind-service)
 | 
				
			||||||
 | 
					         (dbus-service (list avahi wicd upower colord geoclue polkit elogind))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
         (ntp-service)
 | 
					         (ntp-service)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
         (map (lambda (mservice)
 | 
					         (map (lambda (mservice)
 | 
				
			||||||
                ;; Provide an nscd ready to use nss-mdns.
 | 
					 | 
				
			||||||
                (mlet %store-monad ((service mservice))
 | 
					                (mlet %store-monad ((service mservice))
 | 
				
			||||||
                  (if (memq 'nscd (service-provision service))
 | 
					                  (cond
 | 
				
			||||||
                      (nscd-service (nscd-configuration)
 | 
					                   ;; Provide an nscd ready to use nss-mdns.
 | 
				
			||||||
                                    #:name-services (list nss-mdns))
 | 
					                   ((memq 'nscd (service-provision service))
 | 
				
			||||||
                      mservice)))
 | 
					                    (nscd-service (nscd-configuration)
 | 
				
			||||||
 | 
					                                  #:name-services (list nss-mdns)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                   ;; Add more rules to udev-service.
 | 
				
			||||||
 | 
					                   ;;
 | 
				
			||||||
 | 
					                   ;; XXX Keep this in sync with the 'udev-service' call in
 | 
				
			||||||
 | 
					                   ;; %base-services.  Here we intend only to add 'upower',
 | 
				
			||||||
 | 
					                   ;; 'colord', and 'elogind'.
 | 
				
			||||||
 | 
					                   ((memq 'udev (service-provision service))
 | 
				
			||||||
 | 
					                    (udev-service #:rules
 | 
				
			||||||
 | 
					                                  (list lvm2 fuse alsa-utils crda
 | 
				
			||||||
 | 
					                                        upower colord elogind)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                   (else mservice))))
 | 
				
			||||||
              %base-services)))
 | 
					              %base-services)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;; desktop.scm ends here
 | 
					;;; desktop.scm ends here
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -50,6 +50,7 @@
 | 
				
			||||||
            %devtmpfs-file-system
 | 
					            %devtmpfs-file-system
 | 
				
			||||||
            %immutable-store
 | 
					            %immutable-store
 | 
				
			||||||
            %control-groups
 | 
					            %control-groups
 | 
				
			||||||
 | 
					            %elogind-file-systems
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            %base-file-systems
 | 
					            %base-file-systems
 | 
				
			||||||
            %container-file-systems
 | 
					            %container-file-systems
 | 
				
			||||||
| 
						 | 
					@ -258,6 +259,26 @@ UUID representation."
 | 
				
			||||||
               '("cpuset" "cpu" "cpuacct" "memory" "devices" "freezer"
 | 
					               '("cpuset" "cpu" "cpuacct" "memory" "devices" "freezer"
 | 
				
			||||||
                 "blkio" "perf_event" "hugetlb")))))
 | 
					                 "blkio" "perf_event" "hugetlb")))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define %elogind-file-systems
 | 
				
			||||||
 | 
					  ;; We don't use systemd, but these file systems are needed for elogind,
 | 
				
			||||||
 | 
					  ;; which was extracted from systemd.
 | 
				
			||||||
 | 
					  (list (file-system
 | 
				
			||||||
 | 
					          (device "none")
 | 
				
			||||||
 | 
					          (mount-point "/run/systemd")
 | 
				
			||||||
 | 
					          (type "tmpfs")
 | 
				
			||||||
 | 
					          (check? #f)
 | 
				
			||||||
 | 
					          (flags '(no-suid no-dev no-exec))
 | 
				
			||||||
 | 
					          (options "mode=0755")
 | 
				
			||||||
 | 
					          (create-mount-point? #t))
 | 
				
			||||||
 | 
					        (file-system
 | 
				
			||||||
 | 
					          (device "none")
 | 
				
			||||||
 | 
					          (mount-point "/run/user")
 | 
				
			||||||
 | 
					          (type "tmpfs")
 | 
				
			||||||
 | 
					          (check? #f)
 | 
				
			||||||
 | 
					          (flags '(no-suid no-dev no-exec))
 | 
				
			||||||
 | 
					          (options "mode=0755")
 | 
				
			||||||
 | 
					          (create-mount-point? #t))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define %base-file-systems
 | 
					(define %base-file-systems
 | 
				
			||||||
  ;; List of basic file systems to be mounted.  Note that /proc and /sys are
 | 
					  ;; List of basic file systems to be mounted.  Note that /proc and /sys are
 | 
				
			||||||
  ;; currently mounted by the initrd.
 | 
					  ;; currently mounted by the initrd.
 | 
				
			||||||
| 
						 | 
					@ -265,6 +286,7 @@ UUID representation."
 | 
				
			||||||
                %pseudo-terminal-file-system
 | 
					                %pseudo-terminal-file-system
 | 
				
			||||||
                %shared-memory-file-system
 | 
					                %shared-memory-file-system
 | 
				
			||||||
                %immutable-store)
 | 
					                %immutable-store)
 | 
				
			||||||
 | 
					          %elogind-file-systems
 | 
				
			||||||
          %control-groups))
 | 
					          %control-groups))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;; File systems for Linux containers differ from %base-file-systems in that
 | 
					;; File systems for Linux containers differ from %base-file-systems in that
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -349,7 +349,7 @@ Use Alt-F2 for documentation.
 | 
				
			||||||
                     parted ddrescue
 | 
					                     parted ddrescue
 | 
				
			||||||
                     grub                  ;mostly so xrefs to its manual work
 | 
					                     grub                  ;mostly so xrefs to its manual work
 | 
				
			||||||
                     cryptsetup
 | 
					                     cryptsetup
 | 
				
			||||||
                     wireless-tools iw wpa-supplicant-light iproute
 | 
					                     wireless-tools iw wpa-supplicant-minimal iproute
 | 
				
			||||||
                     ;; XXX: We used to have GNU fdisk here, but as of version
 | 
					                     ;; XXX: We used to have GNU fdisk here, but as of version
 | 
				
			||||||
                     ;; 2.0.0a, that pulls Guile 1.8, which takes unreasonable
 | 
					                     ;; 2.0.0a, that pulls Guile 1.8, which takes unreasonable
 | 
				
			||||||
                     ;; space; furthermore util-linux's fdisk is already
 | 
					                     ;; space; furthermore util-linux's fdisk is already
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -83,6 +83,8 @@
 | 
				
			||||||
  (letrec-syntax ((utf8-locale (syntax-rules ()
 | 
					  (letrec-syntax ((utf8-locale (syntax-rules ()
 | 
				
			||||||
                                 ((_ name*)
 | 
					                                 ((_ name*)
 | 
				
			||||||
                                  (locale-definition
 | 
					                                  (locale-definition
 | 
				
			||||||
 | 
					                                   ;; Note: We choose "utf8", which is the
 | 
				
			||||||
 | 
					                                   ;; "normalized codeset".
 | 
				
			||||||
                                   (name (string-append name* ".utf8"))
 | 
					                                   (name (string-append name* ".utf8"))
 | 
				
			||||||
                                   (source name*)
 | 
					                                   (source name*)
 | 
				
			||||||
                                   (charset "UTF-8")))))
 | 
					                                   (charset "UTF-8")))))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show more
		Reference in a new issue