aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-12-14 11:55:07 +0100
committerLudovic Courtès <ludo@gnu.org>2014-12-14 11:55:07 +0100
commitc4a1b6c2ba479c6abcd22cab6a1fcd560469e986 (patch)
tree057fb773fcac4200ea66a0267a818be61cca3104
parent2ed11b3a3e05549ed6ef8a604464f424c0eeae1c (diff)
parent45c5b47b96a238c764c2d32966267f7f897bcc3d (diff)
downloadgnu-guix-c4a1b6c2ba479c6abcd22cab6a1fcd560469e986.tar
gnu-guix-c4a1b6c2ba479c6abcd22cab6a1fcd560469e986.tar.gz
Merge branch 'master' into 'core-updates'.
-rw-r--r--.dir-locals.el2
-rw-r--r--.gitignore1
-rw-r--r--AUTHORS1
-rw-r--r--Makefile.am8
-rw-r--r--THANKS2
-rw-r--r--build-aux/hydra/demo-os.scm2
-rw-r--r--configure.ac3
-rw-r--r--doc/emacs.texi20
-rw-r--r--doc/guix.texi349
-rw-r--r--emacs.am4
-rw-r--r--emacs/guix-backend.el4
-rw-r--r--emacs/guix-base.el42
-rw-r--r--emacs/guix-emacs.el79
-rw-r--r--emacs/guix-helper.scm.in1
-rw-r--r--emacs/guix-init.el.in19
-rw-r--r--emacs/guix-main.scm2
-rw-r--r--emacs/guix-profiles.el.in62
-rw-r--r--gnu-system.am22
-rw-r--r--gnu/build/activation.scm30
-rw-r--r--gnu/build/install.scm10
-rw-r--r--gnu/build/linux-boot.scm43
-rw-r--r--gnu/build/linux-modules.scm166
-rw-r--r--gnu/build/vm.scm9
-rw-r--r--gnu/packages/admin.scm13
-rw-r--r--gnu/packages/base.scm7
-rw-r--r--gnu/packages/bioinformatics.scm84
-rw-r--r--gnu/packages/bittorrent.scm73
-rw-r--r--gnu/packages/cdrom.scm111
-rw-r--r--gnu/packages/debug.scm139
-rw-r--r--gnu/packages/dictionaries.scm4
-rw-r--r--gnu/packages/disk.scm4
-rw-r--r--gnu/packages/dwm.scm55
-rw-r--r--gnu/packages/emacs.scm204
-rw-r--r--gnu/packages/fish.scm12
-rw-r--r--gnu/packages/fonts.scm82
-rw-r--r--gnu/packages/freeipmi.scm4
-rw-r--r--gnu/packages/games.scm3
-rw-r--r--gnu/packages/gimp.scm5
-rw-r--r--gnu/packages/gl.scm3
-rw-r--r--gnu/packages/glib.scm116
-rw-r--r--gnu/packages/global.scm4
-rw-r--r--gnu/packages/gnome.scm48
-rw-r--r--gnu/packages/gnunet.scm4
-rw-r--r--gnu/packages/gnupg.scm8
-rw-r--r--gnu/packages/gnutls.scm4
-rw-r--r--gnu/packages/gsasl.scm4
-rw-r--r--gnu/packages/gtk.scm117
-rw-r--r--gnu/packages/linux-libre-i686.conf170
-rw-r--r--gnu/packages/linux-libre-x86_64.conf172
-rw-r--r--gnu/packages/linux.scm12
-rw-r--r--gnu/packages/lisp.scm9
-rw-r--r--gnu/packages/llvm.scm107
-rw-r--r--gnu/packages/mail.scm165
-rw-r--r--gnu/packages/man.scm4
-rw-r--r--gnu/packages/maths.scm9
-rw-r--r--gnu/packages/mg.scm64
-rw-r--r--gnu/packages/mp3.scm92
-rw-r--r--gnu/packages/nutrition.scm68
-rw-r--r--gnu/packages/ocrad.scm4
-rw-r--r--gnu/packages/package-management.scm4
-rw-r--r--gnu/packages/parallel.scm4
-rw-r--r--gnu/packages/patches/glib-tests-gapplication.patch28
-rw-r--r--gnu/packages/patches/guile-linux-syscalls.patch9
-rw-r--r--gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch15
-rw-r--r--gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch39
-rw-r--r--gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch15
-rw-r--r--gnu/packages/patches/wmctrl-64-fix.patch32
-rw-r--r--gnu/packages/patches/xf86-video-openchrome-includes.patch35
-rw-r--r--gnu/packages/pcre.scm8
-rw-r--r--gnu/packages/perl.scm203
-rw-r--r--gnu/packages/pkg-config.scm20
-rw-r--r--gnu/packages/pretty-print.scm41
-rw-r--r--gnu/packages/python.scm675
-rw-r--r--gnu/packages/qemu.scm2
-rw-r--r--gnu/packages/qt.scm17
-rw-r--r--gnu/packages/scrot.scm68
-rw-r--r--gnu/packages/socat.scm55
-rw-r--r--gnu/packages/telephony.scm12
-rw-r--r--gnu/packages/texlive.scm1
-rw-r--r--gnu/packages/tre.scm45
-rw-r--r--gnu/packages/unclutter.scm69
-rw-r--r--gnu/packages/version-control.scm184
-rw-r--r--gnu/packages/video.scm4
-rw-r--r--gnu/packages/web.scm65
-rw-r--r--gnu/packages/wget.scm4
-rw-r--r--gnu/packages/xdisorg.scm341
-rw-r--r--gnu/packages/xfce.scm478
-rw-r--r--gnu/packages/xfig.scm10
-rw-r--r--gnu/packages/xorg.scm147
-rw-r--r--gnu/packages/yubico.scm76
-rw-r--r--gnu/services/ssh.scm9
-rw-r--r--gnu/services/xorg.scm30
-rw-r--r--gnu/system.scm61
-rw-r--r--gnu/system/file-systems.scm8
-rw-r--r--gnu/system/grub.scm19
-rw-r--r--gnu/system/install.scm7
-rw-r--r--gnu/system/linux-initrd.scm63
-rw-r--r--gnu/system/locale.scm126
-rw-r--r--gnu/system/shadow.scm17
-rw-r--r--gnu/system/vm.scm4
-rw-r--r--guix/build-system/glib-or-gtk.scm3
-rw-r--r--guix/build-system/python.scm2
-rw-r--r--guix/build/emacs-utils.scm10
-rw-r--r--guix/build/glib-or-gtk-build-system.scm99
-rw-r--r--guix/derivations.scm1
-rw-r--r--guix/download.scm24
-rw-r--r--guix/elf.scm1045
-rw-r--r--guix/gnu-maintenance.scm8
-rw-r--r--guix/import/gnu.scm2
-rw-r--r--guix/licenses.scm13
-rw-r--r--guix/monads.scm33
-rw-r--r--guix/packages.scm2
-rw-r--r--guix/scripts/archive.scm5
-rw-r--r--guix/scripts/build.scm20
-rw-r--r--guix/scripts/environment.scm6
-rw-r--r--guix/scripts/package.scm5
-rwxr-xr-xguix/scripts/substitute-binary.scm6
-rw-r--r--guix/scripts/system.scm58
-rw-r--r--guix/store.scm4
-rw-r--r--guix/ui.scm5
-rw-r--r--guix/utils.scm10
-rw-r--r--nix/nix-daemon/guix-daemon.cc3
-rw-r--r--po/guix/POTFILES.in1
-rw-r--r--po/guix/eo.po606
-rw-r--r--po/guix/hu.po603
-rw-r--r--po/packages/LINGUAS1
-rw-r--r--po/packages/hu.po1262
-rw-r--r--test-env.in4
-rw-r--r--tests/guix-build.sh10
-rw-r--r--tests/guix-package.sh13
130 files changed, 8537 insertions, 1242 deletions
diff --git a/.dir-locals.el b/.dir-locals.el
index 106c35bce6..b099068dac 100644
--- a/.dir-locals.el
+++ b/.dir-locals.el
@@ -46,6 +46,8 @@
(eval . (put 'syntax-parameterize 'scheme-indent-function 1))
(eval . (put 'with-monad 'scheme-indent-function 1))
(eval . (put 'mbegin 'scheme-indent-function 1))
+ (eval . (put 'mwhen 'scheme-indent-function 1))
+ (eval . (put 'munless 'scheme-indent-function 1))
(eval . (put 'mlet* 'scheme-indent-function 2))
(eval . (put 'mlet 'scheme-indent-function 2))
(eval . (put 'run-with-store 'scheme-indent-function 1))
diff --git a/.gitignore b/.gitignore
index a424a397c4..bcb82aa26d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -110,3 +110,4 @@ GTAGS
/emacs/guix-autoloads.el
/emacs/guix-helper.scm
/emacs/guix-init.el
+/emacs/guix-profiles.el
diff --git a/AUTHORS b/AUTHORS
index ced88a1e4a..19cf492270 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -13,6 +13,7 @@ alphabetical order):
Federico Beffa <beffa@fbengineering.ch>
Marek Benc <merkur32@gmail.com>
Sou Bunnbu (宋文武) <iyzsong@gmail.com>
+ Tomáš Čech <sleep_walker@suse.cz>
Ludovic Courtès <ludo@gnu.org>
John Darrington <jmd@gnu.org>
Andreas Enge <andreas@enge.fr>
diff --git a/Makefile.am b/Makefile.am
index ee029c3735..bc0b95232e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -56,6 +56,7 @@ MODULES = \
guix/ftp-client.scm \
guix/http-client.scm \
guix/gnupg.scm \
+ guix/elf.scm \
guix/store.scm \
guix/svn-download.scm \
guix/ui.scm \
@@ -281,6 +282,13 @@ SUFFIXES = .go
guix_install_go_files = install-nobase_nodist_guilemoduleDATA
$(guix_install_go_files): install-nobase_dist_guilemoduleDATA
+# The above trick doesn't work for 'config.go' because both 'config.scm' and
+# 'config.go' are listed in $(nobase_nodist_guilemodule_DATA). Thus, give it
+# special treatment.
+install-data-hook: set-bootstrap-executable-permissions
+ touch "$(DESTDIR)$(guilemoduledir)/guix/config.go"
+
+
SUBDIRS = po/guix po/packages
BUILT_SOURCES =
diff --git a/THANKS b/THANKS
index 4d398c16fe..d8968b78ac 100644
--- a/THANKS
+++ b/THANKS
@@ -26,11 +26,13 @@ infrastructure help:
Niels Möller <nisse@lysator.liu.se>
Yutaka Niibe <gniibe@fsij.org>
Adam Pribyl <pribyl@lowlevel.cz>
+ rekado <rekado@elephly.net>
Bruno Félix Rezende Ribeiro <oitofelix@gnu.org>
Cyrill Schenkel <cyrill.schenkel@gmail.com>
Benno Schulenberg <coordinator@translationproject.org>
Alen Skondro <askondro@gmail.com>
Matthias Wachs <wachs@net.in.tum.de>
+ Andy Wingo <wingo@pobox.com>
Philip Woods <elzairthesorcerer@gmail.com>
GNU Guix also includes non-software works. Thanks to the following
diff --git a/build-aux/hydra/demo-os.scm b/build-aux/hydra/demo-os.scm
index 9164500d70..d96cdce496 100644
--- a/build-aux/hydra/demo-os.scm
+++ b/build-aux/hydra/demo-os.scm
@@ -37,7 +37,7 @@
(operating-system
(host-name "gnu")
(timezone "Europe/Paris")
- (locale "en_US.UTF-8")
+ (locale "en_US.utf8")
(bootloader (grub-configuration
(device "/dev/sda")))
diff --git a/configure.ac b/configure.ac
index 9c000912cc..235990edc3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.68)
-AC_INIT([GNU Guix], [0.8], [bug-guix@gnu.org], [guix],
+AC_INIT([GNU Guix], [0.9], [bug-guix@gnu.org], [guix],
[http://www.gnu.org/software/guix/])
AC_CONFIG_AUX_DIR([build-aux])
@@ -185,6 +185,7 @@ AM_CONDITIONAL([HAVE_EMACS], [test "x$EMACS" != "xno"])
emacsuidir="${guilemoduledir}/guix/emacs"
AC_SUBST([emacsuidir])
AC_CONFIG_FILES([emacs/guix-init.el
+ emacs/guix-profiles.el
emacs/guix-helper.scm])
AC_OUTPUT
diff --git a/doc/emacs.texi b/doc/emacs.texi
index ad2dcd8f65..86e0048538 100644
--- a/doc/emacs.texi
+++ b/doc/emacs.texi
@@ -56,11 +56,21 @@ Manual}):
(require 'guix-init)
@end example
-Do not worry about the efficiency of that @code{require} thing. It will
-not load the whole ``guix.el'' package, it will just autoload the main
-interactive commands (@pxref{Autoload,,, elisp, The GNU Emacs Lisp
-Reference Manual}).
-
+By default, along with autoloading (@pxref{Autoload,,, elisp, The GNU
+Emacs Lisp Reference Manual}) the main interactive commands for
+``guix.el'' (@pxref{Emacs Commands}), requiring @code{guix-init} will
+also autoload commands for the Emacs packages installed in your user
+profile.
+
+To disable automatic loading of installed Emacs packages, set
+@code{guix-package-enable-at-startup} variable to @code{nil} before
+requiring @code{guix-init}. This variable has the same meaning for
+Emacs packages installed with Guix, as @code{package-enable-at-startup}
+for the built-in Emacs package system (@pxref{Package Installation,,,
+emacs, The GNU Emacs Manual}).
+
+You can activate Emacs packages installed in your profile whenever you
+want using @kbd{M-x@tie{}guix-emacs-load-autoloads}.
@node Emacs Usage
@subsection Usage
diff --git a/doc/guix.texi b/doc/guix.texi
index c0b9668760..bb52cf713f 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -76,6 +76,93 @@ package management tool written for the GNU system.
* GNU Free Documentation License:: The license of this manual.
* Concept Index:: Concepts.
* Programming Index:: Data types, functions, and variables.
+
+@detailmenu
+ --- The Detailed Node Listing ---
+
+Installation
+
+* Requirements:: Software needed to build and run Guix.
+* Setting Up the Daemon:: Preparing the build daemon's environment.
+* Invoking guix-daemon:: Running the build daemon.
+
+Setting Up the Daemon
+
+* Build Environment Setup:: Preparing the isolated build environment.
+* Daemon Offload Setup:: Offloading builds to remote machines.
+
+Package Management
+
+* Features:: How Guix will make your life brighter.
+* Invoking guix package:: Package installation, removal, etc.
+* Emacs Interface:: Package management from Emacs.
+* Substitutes:: Downloading pre-built binaries.
+* Packages with Multiple Outputs:: Single source package, multiple outputs.
+* Invoking guix gc:: Running the garbage collector.
+* Invoking guix pull:: Fetching the latest Guix and distribution.
+* Invoking guix archive:: Exporting and importing store files.
+
+Programming Interface
+
+* Defining Packages:: Defining new packages.
+* Build Systems:: Specifying how packages are built.
+* The Store:: Manipulating the package store.
+* Derivations:: Low-level interface to package derivations.
+* The Store Monad:: Purely functional interface to the store.
+* G-Expressions:: Manipulating build expressions.
+
+Utilities
+
+* Invoking guix build:: Building packages from the command line.
+* Invoking guix download:: Downloading a file and printing its hash.
+* Invoking guix hash:: Computing the cryptographic hash of a file.
+* Invoking guix import:: Importing package definitions.
+* Invoking guix refresh:: Updating package definitions.
+* Invoking guix lint:: Finding errors in package definitions.
+* Invoking guix environment:: Setting up development environments.
+
+GNU Distribution
+
+* System Installation:: Installing the whole operating system.
+* System Configuration:: Configuring a GNU system.
+* Installing Debugging Files:: Feeding the debugger.
+* Security Updates:: Deploying security fixes quickly.
+* Package Modules:: Packages from the programmer's viewpoint.
+* Packaging Guidelines:: Growing the distribution.
+* Bootstrapping:: GNU/Linux built from scratch.
+* Porting:: Targeting another platform or kernel.
+
+System Configuration
+
+* Using the Configuration System:: Customizing your GNU system.
+* operating-system Reference:: Detail of operating-system declarations.
+* File Systems:: Configuring file system mounts.
+* Mapped Devices:: Block device extra processing.
+* User Accounts:: Specifying user accounts.
+* Locales:: Language and cultural convention settings.
+* Services:: Specifying system services.
+* Setuid Programs:: Programs running with root privileges.
+* Initial RAM Disk:: Linux-Libre bootstrapping.
+* GRUB Configuration:: Configuring the boot loader.
+* Invoking guix system:: Instantiating a system configuration.
+* Defining Services:: Adding new service definitions.
+
+Services
+
+* Base Services:: Essential system services.
+* Networking Services:: Network setup, SSH daemon, etc.
+* X Window:: Graphical display.
+
+Packaging Guidelines
+
+* Software Freedom:: What may go into the distribution.
+* Package Naming:: What's in a name?
+* Version Numbers:: When the name is not enough.
+* Python Modules:: Taming the snake.
+* Perl Modules:: Little pearls.
+* Fonts:: Fond of fonts.
+
+@end detailmenu
@end menu
@c *********************************************************************
@@ -260,6 +347,15 @@ Bash syntax and the @code{shadow} commands):
done
@end example
+The @file{/gnu/store} directory (or whichever was specified with the
+@code{--with-store-dir} option) must have ownership and permissions as
+follows:
+
+@example
+# chgrp guix-builder /gnu/store
+# chmod 1775 /gnu/store
+@end example
+
@noindent
The @code{guix-daemon} program may then be run as @code{root} with:
@@ -499,7 +595,7 @@ Cache build failures. By default, only successful builds are cached.
Use @var{n} CPU cores to build each derivation; @code{0} means as many
as available.
-The default value is @code{1}, but it may be overridden by clients, such
+The default value is @code{0}, but it may be overridden by clients, such
as the @code{--cores} option of @command{guix build} (@pxref{Invoking
guix build}).
@@ -510,7 +606,9 @@ parallelism---for instance, by running @code{make -j$NIX_BUILD_CORES}.
@item --max-jobs=@var{n}
@itemx -M @var{n}
Allow at most @var{n} build jobs in parallel. The default value is
-@code{1}.
+@code{1}. Setting it to @code{0} means that no builds will be performed
+locally; instead, the daemon will offload builds (@pxref{Daemon Offload
+Setup}), or simply fail.
@item --debug
Produce debugging output.
@@ -1719,6 +1817,13 @@ modules}. This is achieved by wrapping the programs in launch scripts
that appropriately set the @code{XDG_DATA_DIRS} and @code{GTK_PATH}
environment variables.
+It is possible to exclude specific package outputs from that wrapping
+process by listing their names in the
+@code{#:glib-or-gtk-wrap-excluded-outputs} parameter. This is useful
+when an output is known not to contain any GLib or GTK+ binaries, and
+where wrapping would gratuitously add a dependency of that output on
+GLib and GTK+.
+
@item glib-or-gtk-compile-schemas
The phase @code{glib-or-gtk-compile-schemas} makes sure that all GLib's
@uref{https://developer.gnome.org/gio/stable/glib-compile-schemas.html,
@@ -2679,6 +2784,12 @@ may be helpful when debugging setup issues with the build daemon.
Allow the use of up to @var{n} CPU cores for the build. The special
value @code{0} means to use as many CPU cores as available.
+@item --max-jobs=@var{n}
+@itemx -M @var{n}
+Allow at most @var{n} build jobs in parallel. @xref{Invoking
+guix-daemon, @code{--max-jobs}}, for details about this option and the
+equivalent @command{guix-daemon} option.
+
@end table
Behind the scenes, @command{guix build} is essentially an interface to
@@ -2686,6 +2797,25 @@ the @code{package-derivation} procedure of the @code{(guix packages)}
module, and to the @code{build-derivations} procedure of the @code{(guix
store)} module.
+In addition to options explicitly passed on the command line,
+@command{guix build} and other @command{guix} commands that support
+building honor the @code{GUIX_BUILD_OPTIONS} environment variable.
+
+@defvr {Environment Variable} GUIX_BUILD_OPTIONS
+Users can define this variable to a list of command line options that
+will automatically be used by @command{guix build} and other
+@command{guix} commands that can perform builds, as in the example
+below:
+
+@example
+$ export GUIX_BUILD_OPTIONS="--no-substitutes -c 2 -L /foo/bar"
+@end example
+
+These options are parsed independently, and the result is appended to
+the parsed command-line options.
+@end defvr
+
+
@node Invoking guix download
@section Invoking @command{guix download}
@@ -3275,8 +3405,9 @@ Systems}). This is typically done using the @code{-L} option of
@command{mkfs.ext4} and related commands.
The installation image includes Parted (@pxref{Overview,,, parted, GNU
-Parted User Manual}), @command{fdisk}, and e2fsprogs, the suite of tools
-to manipulate ext2/ext3/ext4 file systems.
+Parted User Manual}), @command{fdisk}, Cryptsetup/LUKS for disk
+encryption, and e2fsprogs, the suite of tools to manipulate
+ext2/ext3/ext4 file systems.
@item
Once that is done, mount the target root partition under @file{/mnt}.
@@ -3375,6 +3506,7 @@ instance to support new system services.
* File Systems:: Configuring file system mounts.
* Mapped Devices:: Block device extra processing.
* User Accounts:: Specifying user accounts.
+* Locales:: Language and cultural convention settings.
* Services:: Specifying system services.
* Setuid Programs:: Programs running with root privileges.
* Initial RAM Disk:: Linux-Libre bootstrapping.
@@ -3401,7 +3533,7 @@ kernel, initial RAM disk, and boot loader looks like this:
(operating-system
(host-name "komputilo")
(timezone "Europe/Paris")
- (locale "fr_FR.UTF-8")
+ (locale "fr_FR.utf8")
(bootloader (grub-configuration
(device "/dev/sda")))
(file-systems (cons (file-system
@@ -3411,7 +3543,7 @@ kernel, initial RAM disk, and boot loader looks like this:
%base-file-systems))
(users (list (user-account
(name "alice")
- (uid 1000) (group 100)
+ (group "users")
(comment "Bob's sister")
(home-directory "/home/alice"))))
(packages (cons emacs %base-packages))
@@ -3554,9 +3686,13 @@ package}).
@item @code{timezone}
A timezone identifying string---e.g., @code{"Europe/Paris"}.
-@item @code{locale} (default: @code{"en_US.UTF-8"})
-The name of the default locale (@pxref{Locales,,, libc, The GNU C
-Library Reference Manual}).
+@item @code{locale} (default: @code{"en_US.utf8"})
+The name of the default locale (@pxref{Locale Names,,, libc, The GNU C
+Library Reference Manual}). @xref{Locales}, for more information.
+
+@item @code{locale-definitions} (default: @var{%default-locale-definitions})
+The list of locale definitions to be compiled and that may be used at
+run time. @xref{Locales}.
@item @code{services} (default: @var{%base-services})
A list of monadic values denoting system services. @xref{Services}.
@@ -3630,6 +3766,13 @@ is interpreted as a partition label name; when it is @code{uuid},
The @code{label} and @code{uuid} options offer a way to refer to disk
partitions without having to hard-code their actual device name.
+However, when a file system's source is a mapped device (@pxref{Mapped
+Devices}), its @code{device} field @emph{must} refer to the mapped
+device name---e.g., @file{/dev/mapper/root-partition}---and consequently
+@code{title} must be set to @code{'device}. This is required so that
+the system knows that mounting the file system depends on having the
+corresponding device mapping established.
+
@item @code{flags} (default: @code{'()})
This is a list of symbols denoting mount flags. Recognized flags
include @code{read-only}, @code{bind-mount}, @code{no-dev} (disallow
@@ -3818,8 +3961,8 @@ users change it with @command{passwd}.
If you @emph{do} want to have a preset password for an account, then
this field must contain the encrypted password, as a string.
-@xref{crypt,,, The GNU C Library Reference Manual}, for more information
-on password encryption, and @ref{Encryption,,, GNU Guile Reference
+@xref{crypt,,, libc, The GNU C Library Reference Manual}, for more information
+on password encryption, and @ref{Encryption,,, guile, GNU Guile Reference
Manual}, for information on Guile's @code{crypt} procedure.
@end table
@@ -3863,6 +4006,78 @@ to be present on the system. This includes groups such as ``root'',
specific devices such as ``audio'', ``disk'', and ``cdrom''.
@end defvr
+@node Locales
+@subsection Locales
+
+@cindex locale
+A @dfn{locale} defines cultural conventions for a particular language
+and region of the world (@pxref{Locales,,, libc, The GNU C Library
+Reference Manual}). Each locale has a name that typically has the form
+@code{@var{language}_@var{territory}.@var{charset}}---e.g.,
+@code{fr_LU.utf8} designates the locale for the French language, with
+cultural conventions from Luxembourg, and using the UTF-8 encoding.
+
+@cindex locale definition
+Usually, you will want to specify the default locale for the machine
+using the @code{locale} field of the @code{operating-system} declaration
+(@pxref{operating-system Reference, @code{locale}}).
+
+That locale must be among the @dfn{locale definitions} that are known to
+the system---and these are specified in the @code{locale-definitions}
+slot of @code{operating-system}. The default value includes locale
+definition for some widely used locales, but not for all the available
+locales, in order to save space.
+
+If the locale specified in the @code{locale} field is not among the
+definitions listed in @code{locale-definitions}, @command{guix system}
+raises an error. In that case, you should add the locale definition to
+the @code{locale-definitions} field. For instance, to add the North
+Frisian locale for Germany, the value of that field may be:
+
+@example
+(cons (locale-definition
+ (name "fy_DE.utf8") (source "fy_DE"))
+ %default-locale-definitions)
+@end example
+
+Likewise, to save space, one might want @code{locale-definitions} to
+list only the locales that are actually used, as in:
+
+@example
+(list (locale-definition
+ (name "ja_JP.eucjp") (source "ja_JP")
+ (charset "EUC-JP")))
+@end example
+
+The @code{locale-definition} form is provided by the @code{(gnu system
+locale)} module. Details are given below.
+
+@deftp {Data Type} locale-definition
+This is the data type of a locale definition.
+
+@table @asis
+
+@item @code{name}
+The name of the locale. @xref{Locale Names,,, libc, The GNU C Library
+Reference Manual}, for more information on locale names.
+
+@item @code{source}
+The name of the source for that locale. This is typically the
+@code{@var{language}_@var{territory}} part of the locale name.
+
+@item @code{charset} (default: @code{"UTF-8"})
+The ``character set'' or ``code set'' for that locale,
+@uref{http://www.iana.org/assignments/character-sets, as defined by
+IANA}.
+
+@end table
+@end deftp
+
+@defvr {Scheme Variable} %default-locale-definitions
+An arbitrary list of commonly used locales, used as the default value of
+the @code{locale-definitions} field of @code{operating-system}
+declarations.
+@end defvr
@node Services
@subsection Services
@@ -3872,11 +4087,42 @@ An important part of preparing an @code{operating-system} declaration is
listing @dfn{system services} and their configuration (@pxref{Using the
Configuration System}). System services are typically daemons launched
when the system boots, or other actions needed at that time---e.g.,
-configuring network access. They are managed by GNU@tie{}dmd
-(@pxref{Introduction,,, dmd, GNU dmd Manual}).
+configuring network access.
+
+Services are managed by GNU@tie{}dmd (@pxref{Introduction,,, dmd, GNU
+dmd Manual}). On a running system, the @command{deco} command allows
+you to list the available services, show their status, start and stop
+them, or do other specific operations (@pxref{Jump Start,,, dmd, GNU dmd
+Manual}). For example:
+
+@example
+# deco status dmd
+@end example
+
+The above command, run as @code{root}, lists the currently defined
+services. The @command{deco doc} command shows a synopsis of the given
+service:
+
+@example
+# deco doc nscd
+Run libc's name service cache daemon (nscd).
+@end example
+
+The @command{start}, @command{stop}, and @command{restart} sub-commands
+have the effect you would expect. For instance, the commands below stop
+the nscd service and restart the Xorg display server:
+
+@example
+# deco stop nscd
+Service nscd has been stopped.
+# deco restart xorg-server
+Service xorg-server has been stopped.
+Service xorg-server has been started.
+@end example
The following sections document the available services, starting with
-the core services.
+the core services, that may be used in an @code{operating-system}
+declaration.
@menu
* Base Services:: Essential system services.
@@ -3904,7 +4150,7 @@ system, you will want to append services to @var{%base-services}, like
this:
@example
-(cons* (avahi-service) (lshd-service) %base-services)
+(cons* (avahi-service) (lsh-service) %base-services)
@end example
@end defvr
@@ -3967,7 +4213,7 @@ Run @var{udev}, which populates the @file{/dev} directory dynamically.
@node Networking Services
@subsubsection Networking Services
-The @code{(gnu system networking)} module provides services to configure
+The @code{(gnu services networking)} module provides services to configure
the network interface.
@cindex DHCP, networking service
@@ -4032,12 +4278,17 @@ When @var{initialize?} is true, automatically create the seed and host key
upon service activation if they do not exist yet. This may take long and
require interaction.
+When @var{initialize?} is false, it is up to the user to initialize the
+randomness generator (@pxref{lsh-make-seed,,, lsh, LSH Manual}), and to create
+a key pair with the private key stored in file @var{host-key} (@pxref{lshd
+basics,,, lsh, LSH Manual}).
+
When @var{interfaces} is empty, lshd listens for connections on all the
network interfaces; otherwise, @var{interfaces} must be a list of host names
or addresses.
-@var{allow-empty-passwords?} specifies whether to accepts log-ins with empty
-passwords, and @var{root-login?} specifies whether to accepts log-ins as
+@var{allow-empty-passwords?} specifies whether to accept log-ins with empty
+passwords, and @var{root-login?} specifies whether to accept log-ins as
root.
The other options should be self-descriptive.
@@ -4745,6 +4996,7 @@ needed is to review and apply the patch.
* Version Numbers:: When the name is not enough.
* Python Modules:: Taming the snake.
* Perl Modules:: Little pearls.
+* Fonts:: Fond of fonts.
@end menu
@node Software Freedom
@@ -4796,6 +5048,8 @@ already part of the official project name. But @pxref{Python
Modules} and @ref{Perl Modules} for special rules concerning modules for
the Python and Perl languages.
+Font package names are handled differently, @pxref{Fonts}.
+
@node Version Numbers
@subsection Version Numbers
@@ -4871,6 +5125,43 @@ are also prepended by @code{perl-}. Such modules tend to have the word
prefix. For instance, @code{libwww-perl} becomes @code{perl-libwww}.
+@node Fonts
+@subsection Fonts
+
+For fonts that are in general not installed by a user for typesetting
+purposes, or that are distributed as part of a larger software package,
+we rely on the general packaging rules for software; for instance, this
+applies to the fonts delivered as part of the X.Org system or fonts that
+are part of TeX Live.
+
+To make it easier for a user to search for fonts, names for other packages
+containing only fonts are constructed as follows, independently of the
+upstream package name.
+
+The name of a package containing only one font family starts with
+@code{font-}; it is followed by the foundry name and a dash @code{-}
+if the foundry is known, and the font family name, in which spaces are
+replaced by dashes (and as usual, all upper case letters are transformed
+to lower case).
+For example, the Gentium font family by SIL is packaged under the name
+@code{font-sil-gentium}.
+
+For a package containing several font families, the name of the collection
+is used in the place of the font family name.
+For instance, the Liberation fonts consist of three families,
+Liberation Sans, Liberation Serif and Liberation Mono.
+These could be packaged separately under the names
+@code{font-liberation-sans} and so on; but as they are distributed together
+under a common name, we prefer to package them together as
+@code{font-liberation}.
+
+In the case where several formats of the same font family or font collection
+are packaged separately, a short form of the format, prepended by a dash,
+is added to the package name. We use @code{-ttf} for TrueType fonts,
+@code{-otf} for OpenType fonts and @code{-type1} for PostScript Type 1
+fonts.
+
+
@node Bootstrapping
@section Bootstrapping
@@ -4955,7 +5246,7 @@ no-dependency requirement is verified by checking whether the files of
the final tool chain contain references to the @file{/gnu/store}
directories of the bootstrap inputs. The process that leads to this
``final'' tool chain is described by the package definitions found in
-the @code{(gnu packages base)} module.
+the @code{(gnu packages commencement)} module.
@c See <http://lists.gnu.org/archive/html/gnu-system-discuss/2012-10/msg00000.html>.
The first tool that gets built with the bootstrap binaries is
@@ -4976,7 +5267,7 @@ And voilà! At this point we have the complete set of build tools that
the GNU Build System expects. These are in the @code{%final-inputs}
variable of the @code{(gnu packages commencement)} module, and are
implicitly used by any package that uses @code{gnu-build-system}
-(@pxref{Defining Packages}).
+(@pxref{Build Systems, @code{gnu-build-system}}).
@unnumberedsubsec Building the Bootstrap Binaries
@@ -5024,12 +5315,20 @@ one:
guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs
@end example
+For this to work, the @code{glibc-dynamic-linker} procedure in
+@code{(gnu packages bootstrap)} must be augmented to return the right
+file name for libc's dynamic linker on that platform; likewise,
+@code{system->linux-architecture} in @code{(gnu packages linux)} must be
+taught about the new platform.
+
Once these are built, the @code{(gnu packages bootstrap)} module needs
-to be updated to refer to these binaries on the target platform. In
-addition, the @code{glibc-dynamic-linker} procedure in that module must
-be augmented to return the right file name for libc's dynamic linker on
-that platform; likewise, @code{system->linux-architecture} in @code{(gnu
-packages linux)} must be taught about the new platform.
+to be updated to refer to these binaries on the target platform. That
+is, the hashes and URLs of the bootstrap tarballs for the new platform
+must be added alongside those of the currently supported platforms. The
+bootstrap Guile tarball is treated specially: it is expected to be
+available locally, and @file{gnu-system.am} has rules do download it for
+the supported architectures; a rule for the new platform must be added
+as well.
In practice, there may be some complications. First, it may be that the
extended GNU triplet that specifies an ABI (like the @code{eabi} suffix
diff --git a/emacs.am b/emacs.am
index be7e77ecd8..a43168e2cf 100644
--- a/emacs.am
+++ b/emacs.am
@@ -21,6 +21,7 @@ AUTOLOADS = emacs/guix-autoloads.el
ELFILES = \
emacs/guix-backend.el \
emacs/guix-base.el \
+ emacs/guix-emacs.el \
emacs/guix-history.el \
emacs/guix-info.el \
emacs/guix-list.el \
@@ -36,7 +37,8 @@ dist_lisp_DATA = \
$(AUTOLOADS)
nodist_lisp_DATA = \
- emacs/guix-init.el
+ emacs/guix-init.el \
+ emacs/guix-profiles.el
$(AUTOLOADS): $(ELFILES)
$(EMACS) --batch --eval \
diff --git a/emacs/guix-backend.el b/emacs/guix-backend.el
index a320eae35a..73a429b9ee 100644
--- a/emacs/guix-backend.el
+++ b/emacs/guix-backend.el
@@ -52,6 +52,7 @@
;;; Code:
(require 'geiser-mode)
+(require 'guix-emacs)
(defvar guix-load-path
(file-name-directory (or load-file-name
@@ -125,7 +126,8 @@ This REPL is used for receiving information only if
"Hook run before executing an operation in Guix REPL.")
(defvar guix-after-repl-operation-hook
- '(guix-repl-operation-success-message)
+ '(guix-emacs-load-autoloads-maybe
+ guix-repl-operation-success-message)
"Hook run after executing successful operation in Guix REPL.")
(defvar guix-repl-operation-p nil
diff --git a/emacs/guix-base.el b/emacs/guix-base.el
index 23575ac2bf..5129c87a5d 100644
--- a/emacs/guix-base.el
+++ b/emacs/guix-base.el
@@ -28,53 +28,13 @@
;;; Code:
(require 'cl-lib)
+(require 'guix-profiles)
(require 'guix-backend)
(require 'guix-utils)
(require 'guix-history)
(require 'guix-messages)
-;;; Profiles
-
-(defvar guix-user-profile
- (expand-file-name "~/.guix-profile")
- "User profile.")
-
-(defvar guix-default-profile
- (concat (or (getenv "NIX_STATE_DIR") "/var/guix")
- "/profiles/per-user/"
- (getenv "USER")
- "/guix-profile")
- "Default Guix profile.")
-
-(defvar guix-current-profile guix-default-profile
- "Current profile.")
-
-(defun guix-profile-prompt (&optional default)
- "Prompt for profile and return it.
-Use DEFAULT as a start directory. If it is nil, use
-`guix-current-profile'."
- (let* ((path (read-file-name "Profile: "
- (file-name-directory
- (or default guix-current-profile))))
- (path (directory-file-name (expand-file-name path))))
- (if (string= path guix-user-profile)
- guix-default-profile
- path)))
-
-(defun guix-set-current-profile (path)
- "Set `guix-current-profile' to PATH.
-Interactively, prompt for PATH. With prefix, use
-`guix-default-profile'."
- (interactive
- (list (if current-prefix-arg
- guix-default-profile
- (guix-profile-prompt))))
- (setq guix-current-profile path)
- (message "Current profile has been set to '%s'."
- guix-current-profile))
-
-
;;; Parameters of the entries
(defvar guix-param-titles
diff --git a/emacs/guix-emacs.el b/emacs/guix-emacs.el
new file mode 100644
index 0000000000..512a2e2b1a
--- /dev/null
+++ b/emacs/guix-emacs.el
@@ -0,0 +1,79 @@
+;;; guix-emacs.el --- Emacs packages installed with Guix
+
+;; Copyright © 2014 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 working with Emacs packages
+;; installed with Guix.
+
+;;; Code:
+
+(require 'guix-profiles)
+
+(defcustom guix-emacs-activate-after-operation t
+ "Activate Emacs packages after installing.
+If nil, do not load autoloads of the Emacs packages after
+they are successfully installed."
+ :type 'boolean
+ :group 'guix)
+
+(defvar guix-emacs-autoloads nil
+ "List of the last loaded Emacs autoloads.")
+
+(defun guix-emacs-directory (&optional profile)
+ "Return directory with Emacs packages installed in PROFILE.
+If PROFILE is nil, use `guix-user-profile'."
+ (expand-file-name "share/emacs/site-lisp"
+ (or profile guix-user-profile)))
+
+(defun guix-emacs-find-autoloads (&optional profile)
+ "Return list of autoloads of Emacs packages installed in PROFILE.
+If PROFILE is nil, use `guix-user-profile'.
+Return nil if there are no emacs packages installed in PROFILE."
+ (let ((dir (guix-emacs-directory profile)))
+ (if (file-directory-p dir)
+ (directory-files dir 'full-name "-autoloads\\.el\\'")
+ (message "Directory '%s' does not exist." dir)
+ nil)))
+
+;;;###autoload
+(defun guix-emacs-load-autoloads (&optional all)
+ "Load autoloads for Emacs packages installed in a user profile.
+If ALL is nil, activate only those packages that were installed
+after the last activation, otherwise activate all Emacs packages
+installed in `guix-user-profile'."
+ (interactive "P")
+ (let* ((autoloads (guix-emacs-find-autoloads))
+ (files (if all
+ autoloads
+ (cl-nset-difference autoloads guix-emacs-autoloads
+ :test #'string=))))
+ (dolist (file files)
+ (load file 'noerror))
+ (setq guix-emacs-autoloads autoloads)))
+
+(defun guix-emacs-load-autoloads-maybe ()
+ "Load autoloads for Emacs packages if needed.
+See `guix-emacs-activate-after-operation' for details."
+ (and guix-emacs-activate-after-operation
+ (guix-emacs-load-autoloads)))
+
+(provide 'guix-emacs)
+
+;;; guix-emacs.el ends here
diff --git a/emacs/guix-helper.scm.in b/emacs/guix-helper.scm.in
index 554d55119f..0bbd36be21 100644
--- a/emacs/guix-helper.scm.in
+++ b/emacs/guix-helper.scm.in
@@ -50,6 +50,7 @@
(and=> (getenv "HOME")
(cut string-append <> "/.config")))
(cut string-append <> "/guix/latest"))))
+ (push! module-dir %load-path)
(push! module-dir %load-compiled-path)
(if (and updates-dir (file-exists? updates-dir))
(begin
diff --git a/emacs/guix-init.el.in b/emacs/guix-init.el.in
index 4e62728187..4e40d7171a 100644
--- a/emacs/guix-init.el.in
+++ b/emacs/guix-init.el.in
@@ -1,14 +1,21 @@
(require 'guix-autoloads)
+(require 'guix-emacs)
(defvar guix-load-path
(replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@")
"Directory with scheme files for \"guix.el\" package.")
-(defvar guix-default-profile
- (concat (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix")
- "/profiles/per-user/"
- (getenv "USER")
- "/guix-profile")
- "Default Guix profile.")
+(defcustom guix-package-enable-at-startup t
+ "If non-nil, activate Emacs packages installed in a user profile.
+Set this variable to nil before requiring `guix-init' file to
+avoid loading autoloads of Emacs packages installed in
+`guix-user-profile'."
+ :type 'boolean
+ :group 'guix)
+
+(add-to-list 'load-path (guix-emacs-directory))
+
+(when guix-package-enable-at-startup
+ (guix-emacs-load-autoloads 'all))
(provide 'guix-init)
diff --git a/emacs/guix-main.scm b/emacs/guix-main.scm
index 8ad4dcbdd7..ae3a492249 100644
--- a/emacs/guix-main.scm
+++ b/emacs/guix-main.scm
@@ -857,6 +857,7 @@ OUTPUTS is a list of package outputs (may be an empty list)."
(derivations (list derivation))
(new-profile (derivation->output-path derivation)))
(set-build-options store
+ #:print-build-trace #f
#:use-substitutes? use-substitutes?)
(show-manifest-transaction store manifest transaction
#:dry-run? dry-run?)
@@ -908,6 +909,7 @@ GENERATIONS is a list of generation numbers."
(let* ((derivation (package-source-derivation store source))
(derivations (list derivation)))
(set-build-options store
+ #:print-build-trace #f
#:use-substitutes? use-substitutes?)
(show-what-to-build store derivations
#:use-substitutes? use-substitutes?
diff --git a/emacs/guix-profiles.el.in b/emacs/guix-profiles.el.in
new file mode 100644
index 0000000000..1e43707b68
--- /dev/null
+++ b/emacs/guix-profiles.el.in
@@ -0,0 +1,62 @@
+;;; guix-profiles.el --- Guix profiles
+
+;; Copyright © 2014 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/>.
+
+;;; Code:
+
+(defvar guix-user-profile
+ (expand-file-name "~/.guix-profile")
+ "User profile.")
+
+(defvar guix-default-profile
+ (concat (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix")
+ "/profiles/per-user/"
+ (getenv "USER")
+ "/guix-profile")
+ "Default Guix profile.")
+
+(defvar guix-current-profile guix-default-profile
+ "Current profile.")
+
+(defun guix-profile-prompt (&optional default)
+ "Prompt for profile and return it.
+Use DEFAULT as a start directory. If it is nil, use
+`guix-current-profile'."
+ (let* ((path (read-file-name "Profile: "
+ (file-name-directory
+ (or default guix-current-profile))))
+ (path (directory-file-name (expand-file-name path))))
+ (if (string= path guix-user-profile)
+ guix-default-profile
+ path)))
+
+(defun guix-set-current-profile (path)
+ "Set `guix-current-profile' to PATH.
+Interactively, prompt for PATH. With prefix, use
+`guix-default-profile'."
+ (interactive
+ (list (if current-prefix-arg
+ guix-default-profile
+ (guix-profile-prompt))))
+ (setq guix-current-profile path)
+ (message "Current profile has been set to '%s'."
+ guix-current-profile))
+
+(provide 'guix-profiles)
+
+;;; guix-profiles.el ends here
diff --git a/gnu-system.am b/gnu-system.am
index 246f52a12e..f1ebe40703 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -45,6 +45,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/base.scm \
gnu/packages/bash.scm \
gnu/packages/bdw-gc.scm \
+ gnu/packages/bioinformatics.scm \
gnu/packages/bittorrent.scm \
gnu/packages/bison.scm \
gnu/packages/boost.scm \
@@ -72,6 +73,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/databases.scm \
gnu/packages/datamash.scm \
gnu/packages/dc.scm \
+ gnu/packages/debug.scm \
gnu/packages/dejagnu.scm \
gnu/packages/dictionaries.scm \
gnu/packages/disk.scm \
@@ -160,6 +162,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/links.scm \
gnu/packages/linux.scm \
gnu/packages/lisp.scm \
+ gnu/packages/llvm.scm \
gnu/packages/lout.scm \
gnu/packages/lsh.scm \
gnu/packages/lsof.scm \
@@ -173,6 +176,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/mc.scm \
gnu/packages/mcrypt.scm \
gnu/packages/messaging.scm \
+ gnu/packages/mg.scm \
gnu/packages/miscfiles.scm \
gnu/packages/mit-krb5.scm \
gnu/packages/moe.scm \
@@ -189,6 +193,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/node.scm \
gnu/packages/noweb.scm \
gnu/packages/ntp.scm \
+ gnu/packages/nutrition.scm \
gnu/packages/nvi.scm \
gnu/packages/ocaml.scm \
gnu/packages/ocrad.scm \
@@ -229,7 +234,6 @@ GNU_SYSTEM_MODULES = \
gnu/packages/scanner.scm \
gnu/packages/scheme.scm \
gnu/packages/screen.scm \
- gnu/packages/scrot.scm \
gnu/packages/sdl.scm \
gnu/packages/search.scm \
gnu/packages/serveez.scm \
@@ -237,6 +241,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/skribilo.scm \
gnu/packages/slim.scm \
gnu/packages/smalltalk.scm \
+ gnu/packages/socat.scm \
gnu/packages/ssh.scm \
gnu/packages/stalonetray.scm \
gnu/packages/swig.scm \
@@ -249,7 +254,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/time.scm \
gnu/packages/tmux.scm \
gnu/packages/tor.scm \
- gnu/packages/unclutter.scm \
+ gnu/packages/tre.scm \
gnu/packages/unrtf.scm \
gnu/packages/upnp.scm \
gnu/packages/uucp.scm \
@@ -273,8 +278,11 @@ GNU_SYSTEM_MODULES = \
gnu/packages/xlockmore.scm \
gnu/packages/xml.scm \
gnu/packages/xnee.scm \
+ gnu/packages/xdisorg.scm \
gnu/packages/xorg.scm \
+ gnu/packages/xfce.scm \
gnu/packages/yasm.scm \
+ gnu/packages/yubico.scm \
gnu/packages/zile.scm \
gnu/packages/zip.scm \
gnu/packages/zsh.scm \
@@ -294,6 +302,7 @@ GNU_SYSTEM_MODULES = \
gnu/system/install.scm \
gnu/system/linux.scm \
gnu/system/linux-initrd.scm \
+ gnu/system/locale.scm \
gnu/system/shadow.scm \
gnu/system/vm.scm \
\
@@ -302,6 +311,7 @@ GNU_SYSTEM_MODULES = \
gnu/build/install.scm \
gnu/build/linux-boot.scm \
gnu/build/linux-initrd.scm \
+ gnu/build/linux-modules.scm \
gnu/build/vm.scm
@@ -351,6 +361,7 @@ dist_patch_DATA = \
gnu/packages/patches/glib-tests-homedir.patch \
gnu/packages/patches/glib-tests-prlimit.patch \
gnu/packages/patches/glib-tests-timer.patch \
+ gnu/packages/patches/glib-tests-gapplication.patch \
gnu/packages/patches/glibc-bootstrap-system.patch \
gnu/packages/patches/glibc-ldd-x86_64.patch \
gnu/packages/patches/gnunet-fix-scheduler.patch \
@@ -412,6 +423,9 @@ dist_patch_DATA = \
gnu/packages/patches/pybugz-stty.patch \
gnu/packages/patches/python-fix-tests.patch \
gnu/packages/patches/python-libffi-mips-n32-fix.patch \
+ gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch \
+ gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch \
+ gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
gnu/packages/patches/qt4-tests.patch \
gnu/packages/patches/ratpoison-shell.patch \
gnu/packages/patches/readline-link-ncurses.patch \
@@ -433,7 +447,9 @@ dist_patch_DATA = \
gnu/packages/patches/util-linux-perl.patch \
gnu/packages/patches/vpnc-script.patch \
gnu/packages/patches/w3m-fix-compile.patch \
+ gnu/packages/patches/wmctrl-64-fix.patch \
gnu/packages/patches/xf86-input-synaptics-glibc-2.20.patch \
+ gnu/packages/patches/xf86-video-openchrome-includes.patch \
gnu/packages/patches/xmodmap-asprintf.patch
bootstrapdir = $(guilemoduledir)/gnu/packages/bootstrap
@@ -470,7 +486,7 @@ nodist_bootstrap_mips64el_linux_DATA = \
# Those files must remain executable, so they remain executable once
# imported into the store.
-install-data-hook:
+set-bootstrap-executable-permissions:
chmod +x $(DESTDIR)$(bootstrapdir)/*/{bash,mkdir,tar,xz}
DISTCLEANFILES = \
diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm
index 3eebb71dfc..dfadde326c 100644
--- a/gnu/build/activation.scm
+++ b/gnu/build/activation.scm
@@ -50,6 +50,25 @@
,name)))
(zero? (apply system* "groupadd" args))))
+(define %skeleton-directory
+ ;; Directory containing skeleton files for new accounts.
+ ;; Note: keep the trailing '/' so that 'scandir' enters it.
+ "/etc/skel/")
+
+(define (dot-or-dot-dot? file)
+ (member file '("." "..")))
+
+(define* (copy-account-skeletons home
+ #:optional (directory %skeleton-directory))
+ "Copy the account skeletons from DIRECTORY to HOME."
+ (let ((files (scandir directory (negate dot-or-dot-dot?)
+ string<?)))
+ (mkdir-p home)
+ (for-each (lambda (file)
+ (copy-file (string-append directory "/" file)
+ (string-append home "/" file)))
+ files)))
+
(define* (add-user name group
#:key uid comment home shell password system?
(supplementary-groups '())
@@ -70,6 +89,7 @@ properties. Return #t on success."
(cut format <> "~a:x:~a:~a:~a:~a:~a~%"
name "0" "0" comment home shell))
(chmod "/etc/shadow" #o600)
+ (copy-account-skeletons (or home "/root"))
#t)
;; Use 'useradd' from the Shadow package.
@@ -198,18 +218,12 @@ numeric gid or #f."
;; XXX: Dirty hack to meet sudo's expectations.
(when (string=? (basename target) "sudoers")
(chmod target #o440))))
- (scandir etc
- (lambda (file)
- (not (member file '("." ".."))))
+ (scandir etc (negate dot-or-dot-dot?)
;; The default is 'string-locale<?', but we don't have
;; it when run from the initrd's statically-linked
;; Guile.
- string<?))
-
- ;; Prevent ETC from being GC'd.
- (rm-f "/var/guix/gcroots/etc-directory")
- (symlink etc "/var/guix/gcroots/etc-directory"))
+ string<?)))
(define %setuid-directory
;; Place where setuid programs are stored.
diff --git a/gnu/build/install.scm b/gnu/build/install.scm
index a472259a4a..aa901f6971 100644
--- a/gnu/build/install.scm
+++ b/gnu/build/install.scm
@@ -36,13 +36,17 @@
(define* (install-grub grub.cfg device mount-point)
"Install GRUB with GRUB.CFG on DEVICE, which is assumed to be mounted on
-MOUNT-POINT."
+MOUNT-POINT.
+
+Note that the caller must make sure that GRUB.CFG is registered as a GC root
+so that the fonts, background images, etc. referred to by GRUB.CFG are not
+GC'd."
(let* ((target (string-append mount-point "/boot/grub/grub.cfg"))
(pivot (string-append target ".new")))
(mkdir-p (dirname target))
- ;; Copy GRUB.CFG instead of just symlinking it since it's not a GC root.
- ;; Do that atomically.
+ ;; Copy GRUB.CFG instead of just symlinking it, because symlinks won't
+ ;; work when /boot is on a separate partition. Do that atomically.
(copy-file grub.cfg pivot)
(rename-file pivot target)
diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm
index ea1971ff9c..b2ed1a8b54 100644
--- a/gnu/build/linux-boot.scm
+++ b/gnu/build/linux-boot.scm
@@ -26,6 +26,7 @@
#:use-module (ice-9 match)
#:use-module (ice-9 ftw)
#:use-module (guix build utils)
+ #:use-module (gnu build linux-modules)
#:use-module (gnu build file-systems)
#:export (mount-essential-file-systems
linux-command-line
@@ -34,7 +35,6 @@
configure-qemu-networking
bind-mount
- load-linux-module*
device-number
boot-system))
@@ -218,14 +218,6 @@ networking values.) Return #t if INTERFACE is up, #f otherwise."
(logand (network-interface-flags sock interface) IFF_UP)))
-(define (load-linux-module* file)
- "Load Linux module from FILE, the name of a `.ko' file."
- (define (slurp module)
- ;; TODO: Use 'mmap' to reduce memory usage.
- (call-with-input-file file get-bytevector-all))
-
- (load-linux-module (slurp file)))
-
(define (device-number major minor)
"Return the device number for the device with MAJOR and MINOR, for use as
the last argument of `mknod'."
@@ -332,16 +324,17 @@ bailing out.~%root contents: ~s~%" (scandir "/"))
(define* (boot-system #:key
(linux-modules '())
+ linux-module-directory
qemu-guest-networking?
volatile-root?
pre-mount
(mounts '()))
"This procedure is meant to be called from an initrd. Boot a system by
-first loading LINUX-MODULES (a list of absolute file names of '.ko' files),
-then setting up QEMU guest networking if QEMU-GUEST-NETWORKING? is true,
-calling PRE-MOUNT, mounting the file systems specified in MOUNTS, and finally
-booting into the new root if any. The initrd supports kernel command-line
-options '--load', '--root', and '--repl'.
+first loading LINUX-MODULES (a list of module names) from
+LINUX-MODULE-DIRECTORY, then setting up QEMU guest networking if
+QEMU-GUEST-NETWORKING? is true, calling PRE-MOUNT, mounting the file systems
+specified in MOUNTS, and finally booting into the new root if any. The initrd
+supports kernel command-line options '--load', '--root', and '--repl'.
Mount the root file system, specified by the '--root' command-line argument,
if any.
@@ -362,6 +355,10 @@ to it are lost."
mounts)
"ext4"))
+ (define (lookup-module name)
+ (string-append linux-module-directory "/"
+ (ensure-dot-ko name)))
+
(display "Welcome, this is GNU's early boot Guile.\n")
(display "Use '--repl' for an initrd REPL.\n\n")
@@ -376,7 +373,10 @@ to it are lost."
(start-repl))
(display "loading kernel modules...\n")
- (for-each load-linux-module* linux-modules)
+ (current-module-debugging-port (current-output-port))
+ (for-each (cut load-linux-module* <>
+ #:lookup-module lookup-module)
+ (map lookup-module linux-modules))
(when qemu-guest-networking?
(unless (configure-qemu-networking)
@@ -388,6 +388,14 @@ to it are lost."
;; Prepare the real root file system under /root.
(unless (file-exists? "/root")
(mkdir "/root"))
+
+ (when (procedure? pre-mount)
+ ;; Do whatever actions are needed before mounting the root file
+ ;; system--e.g., installing device mappings. Error out when the
+ ;; return value is false.
+ (unless (pre-mount)
+ (error "pre-mount actions failed")))
+
(if root
(mount-root-file-system (canonicalize-device-spec root)
root-fs-type
@@ -398,11 +406,6 @@ to it are lost."
(mkdir "/root/dev")
(make-essential-device-nodes #:root "/root"))
- (when (procedure? pre-mount)
- ;; Do whatever actions are needed before mounting--e.g., installing
- ;; device mappings.
- (pre-mount))
-
;; Mount the specified file systems.
(for-each mount-file-system
(remove root-mount-point? mounts))
diff --git a/gnu/build/linux-modules.scm b/gnu/build/linux-modules.scm
new file mode 100644
index 0000000000..a3bc7d6e33
--- /dev/null
+++ b/gnu/build/linux-modules.scm
@@ -0,0 +1,166 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.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 GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu build linux-modules)
+ #:use-module (guix elf)
+ #:use-module (rnrs io ports)
+ #:use-module (rnrs bytevectors)
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26)
+ #:use-module (ice-9 vlist)
+ #:use-module (ice-9 match)
+ #:export (dot-ko
+ ensure-dot-ko
+ module-dependencies
+ recursive-module-dependencies
+ modules-loaded
+ module-loaded?
+ load-linux-module*
+
+ current-module-debugging-port))
+
+;;; Commentary:
+;;;
+;;; Tools to deal with Linux kernel modules.
+;;;
+;;; Code:
+
+(define current-module-debugging-port
+ (make-parameter (%make-void-port "w")))
+
+(define (section-contents elf section)
+ "Return the contents of SECTION in ELF as a bytevector."
+ (let* ((modinfo (elf-section-by-name elf ".modinfo"))
+ (contents (make-bytevector (elf-section-size modinfo))))
+ (bytevector-copy! (elf-bytes elf) (elf-section-offset modinfo)
+ contents 0
+ (elf-section-size modinfo))
+ contents))
+
+(define %not-nul
+ (char-set-complement (char-set #\nul)))
+
+(define (nul-separated-string->list str)
+ "Split STR at occurrences of the NUL character and return the resulting
+string list."
+ (string-tokenize str %not-nul))
+
+(define (key=value->pair str)
+ "Assuming STR has the form \"KEY=VALUE\", return a pair like (KEY
+. \"VALUE\")."
+ (let ((= (string-index str #\=)))
+ (cons (string->symbol (string-take str =))
+ (string-drop str (+ 1 =)))))
+
+(define (modinfo-section-contents file)
+ "Return the contents of the '.modinfo' section of FILE as a list of
+key/value pairs.."
+ (let* ((bv (call-with-input-file file get-bytevector-all))
+ (elf (parse-elf bv))
+ (modinfo (section-contents elf ".modinfo")))
+ (map key=value->pair
+ (nul-separated-string->list (utf8->string modinfo)))))
+
+(define %not-comma
+ (char-set-complement (char-set #\,)))
+
+(define (module-dependencies file)
+ "Return the list of modules that FILE depends on. The returned list
+contains module names, not actual file names."
+ (let ((info (modinfo-section-contents file)))
+ (match (assq 'depends info)
+ (('depends . what)
+ (string-tokenize what %not-comma)))))
+
+(define dot-ko
+ (cut string-append <> ".ko"))
+
+(define (ensure-dot-ko name)
+ "Return NAME with a '.ko' prefix appended, unless it already has it."
+ (if (string-suffix? ".ko" name)
+ name
+ (dot-ko name)))
+
+(define* (recursive-module-dependencies files
+ #:key (lookup-module dot-ko))
+ "Return the topologically-sorted list of file names of the modules depended
+on by FILES, recursively. File names of modules are determined by applying
+LOOKUP-MODULE to the module name."
+ (let loop ((files files)
+ (result '())
+ (visited vlist-null))
+ (match files
+ (()
+ (delete-duplicates (reverse result)))
+ ((head . tail)
+ (let* ((visited? (vhash-assoc head visited))
+ (deps (if visited?
+ '()
+ (map lookup-module (module-dependencies head))))
+ (visited (if visited?
+ visited
+ (vhash-cons head #t visited))))
+ (loop (append deps tail)
+ (append result deps) visited))))))
+
+(define %not-newline
+ (char-set-complement (char-set #\newline)))
+
+(define (modules-loaded)
+ "Return the list of names of currently loaded Linux modules."
+ (let* ((contents (call-with-input-file "/proc/modules"
+ get-string-all))
+ (lines (string-tokenize contents %not-newline)))
+ (match (map string-tokenize lines)
+ (((modules . _) ...)
+ modules))))
+
+(define (module-loaded? module)
+ "Return #t if MODULE is already loaded. MODULE must be a Linux module name,
+not a file name."
+ (member module (modules-loaded)))
+
+(define* (load-linux-module* file
+ #:key
+ (recursive? #t)
+ (lookup-module dot-ko))
+ "Load Linux module from FILE, the name of a `.ko' file. When RECURSIVE? is
+true, load its dependencies first (à la 'modprobe'.) The actual files
+containing modules depended on are obtained by calling LOOKUP-MODULE with the
+module name."
+ (define (slurp module)
+ ;; TODO: Use 'mmap' to reduce memory usage.
+ (call-with-input-file file get-bytevector-all))
+
+ (when recursive?
+ (for-each (cut load-linux-module* <> #:lookup-module lookup-module)
+ (map lookup-module (module-dependencies file))))
+
+ (format (current-module-debugging-port)
+ "loading Linux module from '~a'...~%" file)
+
+ (catch 'system-error
+ (lambda ()
+ (load-linux-module (slurp file)))
+ (lambda args
+ ;; If this module was already loaded and we're in modprobe style, ignore
+ ;; the error.
+ (unless (and recursive? (= EEXIST (system-error-errno args)))
+ (apply throw args)))))
+
+;;; linux-modules.scm ends here
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index 03db1cd5f9..2c53cf5dd9 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -178,6 +178,12 @@ volume name."
(display "populating...\n")
(populate-root-file-system system-directory target-directory))
+(define (register-grub.cfg-root target grub.cfg)
+ "On file system TARGET, register GRUB.CFG as a GC root."
+ (let ((directory (string-append target "/var/guix/gcroots")))
+ (mkdir-p directory)
+ (symlink grub.cfg (string-append directory "/grub.cfg"))))
+
(define* (initialize-hard-disk device
#:key
system-directory
@@ -222,6 +228,9 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation."
(install-grub grub.cfg device target-directory)
+ ;; Register GRUB.CFG as a GC root.
+ (register-grub.cfg-root target-directory grub.cfg)
+
;; 'guix-register' resets timestamps and everything, so no need to do it
;; once more in that case.
(unless register-closures?
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 3893da3a07..d7cd0b8092 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -689,9 +689,12 @@ commands and their arguments.")
(let ((port (open-file ".config" "al")))
(display "
CONFIG_DEBUG_SYSLOG=y
- CONFIG_CTRL_IFACE_DBUS=y
- CONFIG_CTRL_IFACE_DBUS_NEW=y
- CONFIG_CTRL_IFACE_DBUS_INTRO=y
+
+ # TODO: Add a variant of this package with DBus support.
+ #CONFIG_CTRL_IFACE_DBUS=y
+ #CONFIG_CTRL_IFACE_DBUS_NEW=y
+ #CONFIG_CTRL_IFACE_DBUS_INTRO=y
+
CONFIG_DRIVER_NL80211=y
CFLAGS += $(shell pkg-config libnl-3.0 --cflags)
CONFIG_LIBNL32=y
@@ -708,7 +711,9 @@ commands and their arguments.")
(inputs
`(("readline" ,readline)
("libnl" ,libnl)
- ("dbus" ,dbus)
+ ;; TODO: Add a variant with DBus support. This significantly increases
+ ;; the size of its closure since DBus depends on libx11.
+ ;; ("dbus" ,dbus)
("openssl" ,o:openssl)))
(native-inputs
`(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index e2ec52a45b..aec8d8949c 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -500,7 +501,7 @@ with the Linux kernel.")
(define-public tzdata
(package
(name "tzdata")
- (version "2014a")
+ (version "2014j")
(source (origin
(method url-fetch)
(uri (string-append
@@ -508,7 +509,7 @@ with the Linux kernel.")
version ".tar.gz"))
(sha256
(base32
- "1cg843ajz4g16axpz56zvalwsbp1s764na2bk4fb44ayx162bzvw"))))
+ "038fvj6zf51k6z9sbbxbj87ajaf69l3whal2vwshbm4l0qr71n52"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
@@ -555,7 +556,7 @@ with the Linux kernel.")
version ".tar.gz"))
(sha256
(base32
- "1xfkqi1q8cnxqbv8azdj5pqlzhkjz6xag09f1z0s8rxi86jkpf85"))))))
+ "1qpd12imy7q5hb5fhk48mfw65s0xlrkmms0zr2gk0mj88qjn3m3z"))))))
(home-page "http://www.iana.org/time-zones")
(synopsis "Database of current and historical time zones")
(description "The Time Zone Database (often called tz or zoneinfo)
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
new file mode 100644
index 0000000000..6f6178a3ff
--- /dev/null
+++ b/gnu/packages/bioinformatics.scm
@@ -0,0 +1,84 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Ricardo Wurmus <rekado@elephly.net>
+;;;
+;;; 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 bioinformatics)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python))
+
+(define-public samtools
+ (package
+ (name "samtools")
+ (version "1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "mirror://sourceforge/samtools/"
+ version "/samtools-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "1y5p2hs4gif891b4ik20275a8xf3qrr1zh9wpysp4g8m0g1jckf2"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
+ #:phases
+ (alist-cons-after
+ 'unpack
+ 'patch-makefile-curses
+ (lambda _
+ (substitute* "Makefile"
+ (("-lcurses") "-lncurses")))
+ (alist-cons-after
+ 'unpack
+ 'patch-tests
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((bash (assoc-ref inputs "bash")))
+ (substitute* "test/test.pl"
+ ;; The test script calls out to /bin/bash
+ (("/bin/bash")
+ (string-append bash "/bin/bash"))
+ ;; There are two failing tests upstream relating to the "stats"
+ ;; subcommand in test_usage_subcommand ("did not have Usage"
+ ;; and "usage did not mention samtools stats"), so we disable
+ ;; them.
+ (("(test_usage_subcommand\\(.*\\);)" cmd)
+ (string-append "unless ($subcommand eq 'stats') {" cmd "};")))))
+ (alist-delete
+ 'configure
+ %standard-phases)))))
+ (native-inputs `(("pkg-config" ,pkg-config)))
+ (inputs `(("ncurses" ,ncurses)
+ ("perl" ,perl)
+ ("python" ,python)
+ ("zlib" ,zlib)))
+ (home-page "http://samtools.sourceforge.net")
+ (synopsis "Utilities to efficiently manipulate nucleotide sequence alignments")
+ (description
+ "Samtools implements various utilities for post-processing nucleotide
+sequence alignments in the SAM, BAM, and CRAM formats, including indexing,
+variant calling (in conjunction with bcftools), and a simple alignment
+viewer.")
+ (license license:expat)))
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 8b4388668e..20a2bdca8c 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -1,4 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
@@ -20,6 +21,7 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system glib-or-gtk)
#:use-module ((guix licenses) #:prefix l:)
#:use-module (gnu packages openssl)
#:use-module (gnu packages libevent)
@@ -30,7 +32,11 @@
#:use-module ((gnu packages compression)
#:select (zlib))
#:use-module (gnu packages glib)
- #:use-module (gnu packages gtk))
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages check)
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages cyrus-sasl))
(define-public transmission
(package
@@ -44,11 +50,12 @@
(sha256
(base32
"1sxr1magqb5s26yvr5yhs1f7bmir8gl09niafg64lhgfnhv1kz59"))))
- (build-system gnu-build-system)
+ (build-system glib-or-gtk-build-system)
(outputs '("out" ; library and command-line interface
"gui")) ; graphical user interface
(arguments
- '(#:phases (alist-cons-after
+ '(#:glib-or-gtk-wrap-excluded-outputs '("out")
+ #:phases (alist-cons-after
'install 'move-gui
(lambda* (#:key outputs #:allow-other-keys)
;; Move the GUI to its own output, so that "out" doesn't
@@ -88,3 +95,63 @@ DHT, µTP, PEX and Magnet Links.")
;;
;; A few files files carry an MIT/X11 license header.
(license l:gpl3+)))
+
+(define-public libtorrent
+ (package
+ (name "libtorrent")
+ (version "0.13.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://libtorrent.rakshasa.no/downloads/libtorrent-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0ma910br5vxrfpm4f4w4942lpmhwvqjnnf9h8vpf52fw35qhjkkh"))))
+ (build-system gnu-build-system)
+ (inputs `(("openssl" ,openssl)
+ ("zlib" ,zlib)))
+ (native-inputs `(("pkg-config" ,pkg-config)
+ ;; Add this when you enable tests:
+ ;; ("cppunit" ,cppunit)
+ ))
+ (arguments
+ ;; FIXME: enable tests on the next release:
+ ;; https://github.com/rakshasa/libtorrent/issues/59
+ `(#:tests? #f))
+ (synopsis "BitTorrent library of rtorrent")
+ (description
+ "LibTorrent is a BitTorrent library used by and developed in parallel
+with the BitTorrent client rtorrent. It is written in C++ with emphasis on
+speed and efficiency.")
+ (home-page "http://libtorrent.rakshasa.no/")
+ (license l:gpl2+)))
+
+(define-public rtorrent
+ (package
+ (name "rtorrent")
+ (version "0.9.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://libtorrent.rakshasa.no/downloads/rtorrent-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "113yrrac75vqi4g8r6bgs0ggjllj9bkg9shv08vqzdhkwqg2q2mw"))))
+ (build-system gnu-build-system)
+ (inputs `(("libtorrent" ,libtorrent)
+ ("ncurses" ,ncurses)
+ ("curl" ,curl)
+ ("cyrus-sasl" ,cyrus-sasl)
+ ("openssl" ,openssl)
+ ("zlib" ,zlib)))
+ (native-inputs `(("pkg-config" ,pkg-config)
+ ("cppunit" ,cppunit)))
+ (synopsis "BitTorrent client with ncurses interface")
+ (description
+ "rTorrent is a BitTorrent client with an ncurses interface. It supports
+full encryption, DHT, PEX, and Magnet Links. It can also be controlled via
+XML-RPC over SCGI.")
+ (home-page "http://libtorrent.rakshasa.no/")
+ (license l:gpl2+)))
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 29def9b6aa..6187f871af 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -32,7 +32,11 @@
#:use-module (gnu packages elf)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages readline)
- #:use-module (gnu packages which))
+ #:use-module (gnu packages which)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages wget)
+ #:use-module (gnu packages xiph))
(define-public libcddb
(package
@@ -68,14 +72,14 @@ caching facility provided by the library.")
(define-public libcdio
(package
(name "libcdio")
- (version "0.92")
+ (version "0.93")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/libcdio/libcdio-"
version ".tar.gz"))
(sha256
(base32
- "1b9zngn8nnxb1yyngi1kwi73nahp4lsx59j17q1bahzz58svydik"))))
+ "0xb9km1750ndr7nglgbv1smv03dy8nkcfd9djbzqn3ldzlicswj9"))))
(build-system gnu-build-system)
(inputs
`(("ncurses" ,ncurses)
@@ -217,3 +221,104 @@ files. Dvdisaster works at the image level so that the recovery does not
depend on the file system of the medium. The maximum error correction
capacity is user-selectable.")
(license gpl2+)))
+
+(define-public cd-discid
+ (package
+ (name "cd-discid")
+ (version "1.4")
+ (home-page "http://linukz.org/cd-discid.shtml")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://linukz.org/download/cd-discid-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0qrcvn7227qaayjcd5rm7z0k5q89qfy5qkdgwr5pd7ih0va8rmpz"))
+ (modules '((guix build utils)))
+ (snippet
+ '(substitute* "Makefile"
+ (("/usr/bin/install")
+ "install")))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f
+ #:phases (alist-delete 'configure %standard-phases)
+ #:make-flags (list "CC=gcc"
+ (string-append "PREFIX="
+ (assoc-ref %outputs "out")))))
+ (synopsis "Get CDDB discid information from an audio CD")
+ (description
+ "cd-discid is a command-line tool to retrieve CDDB discid information
+from an audio CD.")
+ (license gpl2+)))
+
+(define-public abcde
+ (package
+ (name "abcde")
+ (version "2.6")
+ (home-page "http://abcde.einval.com/")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append home-page "/download/abcde-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0y2cg233n2hixs0ji76dggpzgf52v4c4mnpwiai889ql2piafgk8"))
+ (modules '((guix build utils)))
+ (snippet
+ '(substitute* "Makefile"
+ (("/usr/bin/install")
+ "install")
+ (("^etcdir = .*$")
+ (string-append "etcdir = $(prefix)/etc\n"))))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (alist-replace
+ 'configure
+ (lambda* (#:key outputs inputs #:allow-other-keys)
+ (substitute* "Makefile"
+ (("^prefix = .*$")
+ (string-append "prefix = "
+ (assoc-ref outputs "out")
+ "\n"))))
+ (alist-cons-after
+ 'install 'wrap
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((wget (assoc-ref inputs "wget"))
+ (vorbis (assoc-ref inputs "vorbis-tools"))
+ (parano (assoc-ref inputs "cdparanoia"))
+ (which (assoc-ref inputs "which"))
+ (discid (assoc-ref inputs "cd-discid"))
+ (out (assoc-ref outputs "out")))
+ (define (wrap file)
+ (wrap-program file
+ `("PATH" ":" prefix
+ (,(string-append out "/bin:"
+ wget "/bin:"
+ which "/bin:"
+ vorbis "/bin:"
+ discid "/bin:"
+ parano "/bin")))))
+
+ (for-each wrap
+ (find-files (string-append out "/bin")
+ ".*"))))
+ %standard-phases))
+ #:tests? #f))
+
+ (inputs `(("wget" ,wget)
+ ("which" ,which)
+ ("cdparanoia" ,cdparanoia)
+ ("cd-discid" ,cd-discid)
+ ("vorbis-tools" ,vorbis-tools)
+
+ ;; A couple of Python and Perl scripts are included.
+ ("python" ,python)
+ ("perl" ,perl)))
+
+ (synopsis "Command-line audio CD ripper")
+ (description
+ "abcde is a front-end command-line utility (actually, a shell script)
+that grabs tracks off a CD, encodes them to Ogg/Vorbis, MP3, FLAC, Ogg/Speex
+and/or MPP/MP+ (Musepack) format, and tags them, all in one go.")
+ (license gpl2+)))
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
new file mode 100644
index 0000000000..afa8b8d99b
--- /dev/null
+++ b/gnu/packages/debug.scm
@@ -0,0 +1,139 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.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 GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages debug)
+ #:use-module (guix packages)
+ #:use-module (guix licenses)
+ #:use-module (guix download)
+ #:use-module (guix utils)
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages flex)
+ #:use-module (gnu packages indent)
+ #:use-module (gnu packages llvm)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages pretty-print))
+
+(define-public delta
+ (package
+ (name "delta")
+ (version "2006.08.03")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (list
+ (string-append "http://ftp.de.debian.org/debian/pool/main/d/delta/"
+ "delta_" version ".orig.tar.gz")
+ ;; This uri seems to send guix download into an infinite loop
+ (string-append "http://delta.tigris.org/files/documents/3103/"
+ "33566/delta-" version ".tar.gz")))
+ (sha256
+ (base32
+ "184wh35pf2ddx97319s6sgkzpz48xxkbwzcjpycv009bm53lh61q"))))
+ (build-system gnu-build-system)
+ (inputs ;Installed programs are perl scripts
+ `(("perl" ,perl)))
+ (arguments
+ `(#:phases
+ (alist-replace
+ 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Makefile contains no install target
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (doc (string-append out "/share/doc/delta-" ,version)))
+ (begin
+ (mkdir-p bin)
+ (mkdir-p doc)
+ (for-each (lambda (h)
+ (copy-file h (string-append doc "/" (basename h))))
+ `("License.txt" ,@(find-files "www" ".*\\.html")))
+ (for-each (lambda (b)
+ (copy-file b (string-append bin "/" b)))
+ `("delta" "multidelta" "topformflat")))))
+ (alist-delete 'configure %standard-phases))))
+ (home-page "http://delta.tigris.org/")
+ (synopsis "Heuristical file minimizer")
+ (description
+ "Delta assists you in minimizing \"interesting\" files subject to a test
+of their interestingness. A common such situation is when attempting to
+isolate a small failure-inducing substring of a large input that causes your
+program to exhibit a bug.")
+ ;; See License.txt, which is a bsd-3 license, despite the project's
+ ;; home-page pointing to a bsd-2 license.
+ (license bsd-3)))
+
+(define-public c-reduce
+ (package
+ (name "c-reduce")
+ (version "2.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (list
+ (string-append "http://embed.cs.utah.edu/creduce/"
+ "creduce-" version ".tar.gz")))
+ (sha256
+ (base32
+ "0wh0fkyg2l41d2wkndrgdiai9g2qiav7jik7cys21vmgzq01pyy2"))
+ (modules '((guix build utils)))
+ (snippet
+ '(substitute* "clang_delta/TransformationManager.cpp"
+ (("llvm/Config/config.h") "llvm/Config/llvm-config.h")))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("astyle" ,astyle)
+ ("delta" ,delta)
+ ("llvm" ,llvm)
+ ("clang" ,clang)
+ ("flex" ,flex)
+ ("indent" ,indent)
+ ("perl" ,perl)
+ ("benchmark-timer" ,perl-benchmark-timer)
+ ("exporter-lite" ,perl-exporter-lite)
+ ("file-which" ,perl-file-which)
+ ("getopt-tabular" ,perl-getopt-tabular)
+ ("regex-common" ,perl-regexp-common)
+ ("sys-cpu" ,perl-sys-cpu)))
+ (arguments
+ `(#:phases (alist-cons-after
+ 'install 'set-load-paths
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; Tell creduce where to find the perl modules it needs.
+ (let* ((out (assoc-ref outputs "out"))
+ (prog (string-append out "/bin/creduce")))
+ (wrap-program
+ prog
+ `("PERL5LIB" ":" prefix
+ ,(map (lambda (p)
+ (string-append (assoc-ref inputs p)
+ "/lib/perl5/site_perl/"
+ ,(package-version perl)))
+ '("benchmark-timer" "exporter-lite"
+ "file-which" "getopt-tabular"
+ "regex-common" "sys-cpu"))))))
+ %standard-phases)))
+ (home-page "http://embed.cs.utah.edu/creduce")
+ (synopsis "Reducer for interesting code")
+ (description
+ "C-Reduce is a tool that takes a large C or C++ program that has a
+property of interest (such as triggering a compiler bug) and automatically
+produces a much smaller C/C++ program that has the same property. It is
+intended for use by people who discover and report bugs in compilers and other
+tools that process C/C++ code.")
+ (license ncsa)))
diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm
index 4520c2149f..345d0a26c1 100644
--- a/gnu/packages/dictionaries.scm
+++ b/gnu/packages/dictionaries.scm
@@ -29,14 +29,14 @@
(define-public vera
(package
(name "vera")
- (version "1.21a")
+ (version "1.22")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/vera/vera-" version
".tar.gz"))
(sha256
(base32
- "09qz1g8js8qw735wmd8kraqbk1d1997v3px2lcc58frf1r66bp8f"))))
+ "1anx6ikwlkg7bn3c5a8xxrp33bvhfgxmncvnqbn2fp1hnbhqh5i7"))))
(build-system trivial-build-system)
(arguments
`(#:builder (begin
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index c37a6bb25e..6a7fdcfb19 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -100,7 +100,7 @@ tables, and it understands a variety of different formats.")
(define-public ddrescue
(package
(name "ddrescue")
- (version "1.18.1")
+ (version "1.19")
(source
(origin
(method url-fetch)
@@ -108,7 +108,7 @@ tables, and it understands a variety of different formats.")
version ".tar.lz"))
(sha256
(base32
- "1ad1ifby89wys8lxh4d24y5lih6hkz54jhv6sf6bs1i7sd7lnqaq"))))
+ "1f278w7i9sx45jk6fsw1kyzx743k3alx1c4w1q8sk05ckafhr3gd"))))
(build-system gnu-build-system)
(home-page "http://www.gnu.org/software/ddrescue/ddrescue.html")
(synopsis "Data recovery utility")
diff --git a/gnu/packages/dwm.scm b/gnu/packages/dwm.scm
index b5dbe73cda..1a02aa3769 100644
--- a/gnu/packages/dwm.scm
+++ b/gnu/packages/dwm.scm
@@ -84,3 +84,58 @@ left corner.
dwm draws a small customizable border around windows to indicate the focus
state.")
(license x11)))
+
+(define-public dmenu
+ (package
+ (name "dmenu")
+ (version "4.5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://dl.suckless.org/tools/dmenu-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0l58jpxrr80fmyw5pgw5alm5qry49aw6y049745wl991v2cdcb08"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ; no tests
+ #:make-flags (list "CC=gcc"
+ (string-append "PREFIX=" %output))
+ #:phases
+ (alist-delete 'configure %standard-phases)))
+ (inputs
+ `(("libx11" ,libx11)
+ ("libxinerama" ,libxinerama)))
+ (home-page "http://tools.suckless.org/dmenu/")
+ (synopsis "Dynamic menu")
+ (description
+ "A dynamic menu for X, originally designed for dwm. It manages large
+numbers of user-defined menu items efficiently.")
+ (license x11)))
+
+(define-public slock
+ (package
+ (name "slock")
+ (version "1.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://dl.suckless.org/tools/slock-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1r70s3npmp0nyrfdsxz8cw1i1z8n9phqdlw02wjphv341h3yajp0"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ; no tests
+ #:make-flags (list "CC=gcc"
+ (string-append "PREFIX=" %output))
+ #:phases (alist-delete 'configure %standard-phases)))
+ (inputs
+ `(("libx11" ,libx11)
+ ("libxext" ,libxext)
+ ("libxinerama" ,libxinerama)))
+ (home-page "http://tools.suckless.org/slock/")
+ (synopsis "Simple X session lock")
+ (description
+ "Simple X session lock with trivial feedback on password entry.")
+ (license x11)))
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 119c613128..9ccf34c362 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -23,6 +24,7 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages gtk)
@@ -44,6 +46,10 @@
#:use-module (gnu packages xml)
#:use-module (gnu packages glib)
#:use-module (gnu packages acl)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages linux) ;alsa
+ #:use-module (gnu packages xiph)
+ #:use-module (gnu packages mp3)
#:use-module (guix utils)
#:use-module (srfi srfi-1))
@@ -58,7 +64,7 @@
(sha256
(base32
"1zflm6ac34s6v166p58ilxrxbxjm0q2wfc25f8y0mjml1lbr3qs7"))))
- (build-system gnu-build-system)
+ (build-system glib-or-gtk-build-system)
(arguments
'(#:phases (alist-cons-before
'configure 'fix-/bin/pwd
@@ -114,6 +120,7 @@ languages.")
(name "emacs-no-x-toolkit")
(synopsis "The extensible, customizable, self-documenting text
editor (without an X toolkit)" )
+ (build-system gnu-build-system)
(inputs (append `(("inotify-tools" ,inotify-tools))
(alist-delete "gtk+" (package-inputs emacs))))
(arguments (append '(#:configure-flags '("--with-x-toolkit=no"))
@@ -135,6 +142,15 @@ editor (without an X toolkit)" )
(sha256
(base32 "1mrk0bzqcpfhsw6635qznn47nzfy9ps7wrhkpymswdfpw5mdsry5"))))
(build-system gnu-build-system)
+ (arguments
+ '(#:phases (alist-cons-after
+ 'install 'post-install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (symlink "geiser-install.el"
+ (string-append (assoc-ref outputs "out")
+ "/share/emacs/site-lisp/"
+ "geiser-autoloads.el")))
+ %standard-phases)))
(inputs `(("guile" ,guile-2.0)
("emacs" ,emacs)))
(home-page "http://nongnu.org/geiser/")
@@ -186,6 +202,7 @@ giving her access to live metadata.")
(copy-file source target)
(with-directory-excursion lisp-dir
(parameterize ((%emacs emacs))
+ (emacs-generate-autoloads ,name lisp-dir)
(emacs-batch-eval '(byte-compile-file "paredit.el"))))))))
(home-page "http://mumble.net/~campbell/emacs/paredit/")
(synopsis "Emacs minor mode for editing parentheses")
@@ -240,7 +257,13 @@ when typing parentheses directly or commenting out code line by line.")
(emacs-substitute-variables "magit.el"
("magit-git-executable" (string-append git "/bin/git"))
("magit-gitk-executable" (string-append git:gui "/bin/gitk")))))
- %standard-phases))))
+ (alist-cons-after
+ 'install 'post-install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (emacs-generate-autoloads
+ ,name (string-append (assoc-ref outputs "out")
+ "/share/emacs/site-lisp/")))
+ %standard-phases)))))
(home-page "http://magit.github.io/")
(synopsis "Emacs interface for the Git version control system")
(description
@@ -317,6 +340,7 @@ operations.")
(string-append (assoc-ref outputs "out")
"/share/emacs/site-lisp")
(for-each delete-file '("ChangeLog" "ChangeLog.1"))
+ (symlink "w3m-load.el" "w3m-autoloads.el")
#t)))
%standard-phases)))))
(home-page "http://emacs-w3m.namazu.org/")
@@ -359,9 +383,183 @@ operations.")
(let ((wget (assoc-ref inputs "wget")))
(emacs-substitute-variables "wget.el"
("wget-command" (string-append wget "/bin/wget")))))
- %standard-phases))))
+ (alist-cons-after
+ 'install 'post-install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (emacs-generate-autoloads
+ "wget" (string-append (assoc-ref outputs "out")
+ "/share/emacs/site-lisp/")))
+ %standard-phases)))))
(home-page "http://www.emacswiki.org/emacs/EmacsWget")
(synopsis "Simple file downloader for Emacs based on wget")
(description
"Emacs-wget is an emacs interface for the wget file downloader.")
(license gpl2+)))
+
+
+;;;
+;;; Multimedia.
+;;;
+
+(define-public emms
+ (package
+ (name "emms")
+ (version "4.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/emms/emms-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1q0n3iwva8bvai2rl9sm49sdjmk0wi7vajz4knz01l7g67nrp87l"))
+ (modules '((guix build utils)))
+ (snippet
+ '(substitute* "Makefile"
+ (("/usr/bin/install-info")
+ ;; No need to use 'install-info' since it would create a
+ ;; useless 'dir' file.
+ "true")
+ (("^INFODIR=.*")
+ ;; Install Info files to $out/share/info, not $out/info.
+ "INFODIR := $(PREFIX)/share/info\n")
+ (("/site-lisp/emms")
+ ;; Install directly in share/emacs/site-lisp, not in a
+ ;; sub-directory.
+ "/site-lisp")
+ (("^all: (.*)\n" _ rest)
+ ;; Build 'emms-print-metadata'.
+ (string-append "all: " rest " emms-print-metadata\n"))))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (guix build emacs-utils))
+ #:imported-modules ((guix build gnu-build-system)
+ (guix build utils)
+ (guix build emacs-utils))
+
+ #:phases (alist-replace
+ 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (vorbis (assoc-ref inputs "vorbis-tools"))
+ (alsa (assoc-ref inputs "alsa-utils"))
+ (mpg321 (assoc-ref inputs "mpg321"))
+ (mp3info (assoc-ref inputs "mp3info")))
+ ;; Specify the installation directory.
+ (substitute* "Makefile"
+ (("PREFIX=.*$")
+ (string-append "PREFIX := " out "\n")))
+
+ (setenv "SHELL" (which "sh"))
+ (setenv "CC" "gcc")
+
+ ;; Specify the absolute file names of the various
+ ;; programs so that everything works out-of-the-box.
+ (with-directory-excursion "lisp"
+ (emacs-substitute-variables
+ "emms-player-mpg321-remote.el"
+ ("emms-player-mpg321-remote-command"
+ (string-append mpg321 "/bin/mpg321")))
+ (substitute* "emms-player-simple.el"
+ (("\"ogg123\"")
+ (string-append "\"" vorbis "/bin/ogg123\"")))
+ (emacs-substitute-variables "emms-info-ogginfo.el"
+ ("emms-info-ogginfo-program-name"
+ (string-append vorbis "/bin/ogginfo")))
+ (emacs-substitute-variables "emms-info-libtag.el"
+ ("emms-info-libtag-program-name"
+ (string-append out "/bin/emms-print-metadata")))
+ (emacs-substitute-variables "emms-info-mp3info.el"
+ ("emms-info-mp3info-program-name"
+ (string-append mp3info "/bin/mp3info")))
+ (substitute* "emms-volume-amixer.el"
+ (("\"amixer\"")
+ (string-append "\"" alsa "/bin/amixer\"")))
+ (substitute* "emms-tag-editor.el"
+ (("\"mp3info\"")
+ (string-append mp3info "/bin/mp3info"))))))
+ (alist-cons-before
+ 'install 'pre-install
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; The 'install' rule expects 'emms-print-metadata.1' to
+ ;; be already installed.
+ (let* ((out (assoc-ref outputs "out"))
+ (man1 (string-append out "/share/man/man1")))
+ (mkdir-p man1)
+ (copy-file "emms-print-metadata.1"
+ (string-append man1 "/emms-print-metadata.1"))))
+ (alist-cons-after
+ 'install 'post-install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (target (string-append
+ out "/bin/emms-print-metadata")))
+ (symlink "emms-auto.el"
+ (string-append out "/share/emacs/site-lisp/"
+ "emms-autoloads.el"))
+ (mkdir-p (dirname target))
+ (copy-file "src/emms-print-metadata" target)
+ (chmod target #o555)))
+ %standard-phases)))
+ #:tests? #f))
+ (native-inputs `(("emacs" ,emacs) ;for (guix build emacs-utils)
+ ("texinfo" ,texinfo)))
+ (inputs `(;("perl" ,perl) ;for 'emms-print-metadata.pl'
+ ("alsa-utils" ,alsa-utils)
+ ("vorbis-tools" ,vorbis-tools)
+ ("mpg321" ,mpg321)
+ ("taglib" ,taglib)
+ ("mp3info" ,mp3info)))
+ (synopsis "Emacs Multimedia System")
+ (description
+ "EMMS is the Emacs Multimedia System. It is a small front-end which
+can control one of the supported external players. Thus, it supports
+whatever formats are supported by your music player. It also
+supports tagging and playlist management, all behind a clean and
+light user interface.")
+ (home-page "http://www.gnu.org/software/emms/")
+ (license gpl3+)))
+
+
+;;;
+;;; Miscellaneous.
+;;;
+
+(define-public bbdb
+ (package
+ (name "bbdb")
+ (version "3.1.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://savannah/bbdb/bbdb-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; We don't want to build and install the PDF.
+ '(substitute* "doc/Makefile.in"
+ (("^doc_DATA = .*$")
+ "doc_DATA =\n")))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (alist-cons-after
+ 'install 'post-install
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Add an autoloads file with the right name for guix.el.
+ (let* ((out (assoc-ref outputs "out"))
+ (site (string-append out "/share/emacs/site-lisp")))
+ (with-directory-excursion site
+ (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el"))))
+ %standard-phases)))
+ (native-inputs `(("emacs" ,emacs)))
+ (home-page "http://savannah.nongnu.org/projects/bbdb/")
+ (synopsis "Contact management utility for Emacs")
+ (description
+ "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
+an address book for email and snail mail addresses, phone numbers and the
+like. It can be linked with various Emacs mail clients (Message and Mail
+mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
+ (license gpl3+)))
diff --git a/gnu/packages/fish.scm b/gnu/packages/fish.scm
index 6f818b4ed9..9398446a0c 100644
--- a/gnu/packages/fish.scm
+++ b/gnu/packages/fish.scm
@@ -28,21 +28,27 @@
(define-public fish
(package
(name "fish")
- (version "2.1.0")
+ (version "2.1.1")
(source (origin
(method url-fetch)
(uri (string-append "http://fishshell.com/files/"
version "/fish-" version ".tar.gz"))
(sha256
(base32
- "0i7h3hx8iszli3d4kphw79sz9m07f2lc2c9hr9smdps5s7wpllmg"))))
+ "096rhi911s3j618cvp8fj9pb4jniy3y6415jvjg8bhszsp1x7r5p"))
+ (modules '((guix build utils)))
+ ;; Don't try to install /etc/fish/config.fish.
+ (snippet
+ '(substitute* "Makefile.in"
+ ((".*INSTALL.*sysconfdir.*fish.*") "")))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)))
(inputs
`(("ncurses" ,ncurses)))
(arguments
- '(#:tests? #f)) ; no check target
+ '(#:tests? #f ; no check target
+ #:configure-flags '("--sysconfdir=/etc")))
(synopsis "The friendly interactive shell")
(description
"Fish (friendly interactive shell) is a shell focused on interactive use,
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 4ed86d96f8..74cfc9dbe1 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Joshua Grant <tadni@riseup.net>
+;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -31,9 +32,9 @@
#:use-module (gnu packages xorg)
#:use-module (gnu packages pkg-config))
-(define-public ttf-dejavu
+(define-public font-dejavu
(package
- (name "ttf-dejavu")
+ (name "font-dejavu")
(version "2.34")
(source (origin
(method url-fetch)
@@ -97,9 +98,9 @@ provide serif, sans and monospaced variants.")
(license:x11-style
"http://dejavu-fonts.org/"))))
-(define-public ttf-bitstream-vera
+(define-public font-bitstream-vera
(package
- (name "ttf-bitstream-vera")
+ (name "font-bitstream-vera")
(version "1.10")
(source (origin
(method url-fetch)
@@ -151,9 +152,9 @@ package provides the TrueType (TTF) files.")
(license:x11-style
"https://www-old.gnome.org/fonts/#Final_Bitstream_Vera_Fonts"))))
-(define-public freefont-ttf
+(define-public font-gnu-freefont-ttf
(package
- (name "freefont-ttf")
+ (name "font-gnu-freefont-ttf")
(version "20100919")
(source (origin
(method url-fetch)
@@ -203,9 +204,74 @@ package provides the TrueType (TTF) files.")
10646/Unicode UCS (Universal Character Set).")
(license license:gpl3+)))
-(define-public terminus-font
+(define-public font-liberation
(package
- (name "terminus-font")
+ (name "font-liberation")
+ (version "2.00.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://fedorahosted.org/releases/l/i/"
+ "liberation-fonts/liberation-fonts-ttf-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "010m4zfqan4w04b6bs9pm3gapn9hsb18bmwwgp2p6y6idj52g43q"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+
+ (let ((tar (string-append (assoc-ref %build-inputs "tar")
+ "/bin/tar"))
+ (PATH (string-append (assoc-ref %build-inputs "gzip")
+ "/bin"))
+ (font-dir (string-append %output "/share/fonts/truetype"))
+ (doc-dir (string-append %output "/share/doc/" ,name)))
+ (setenv "PATH" PATH)
+ (system* tar "xvf" (assoc-ref %build-inputs "source"))
+ (mkdir-p font-dir)
+ (mkdir-p doc-dir)
+ (chdir (string-append "liberation-fonts-ttf-" ,version))
+ (for-each (lambda (ttf)
+ (copy-file ttf
+ (string-append font-dir "/"
+ (basename ttf))))
+ (find-files "." "\\.ttf$"))
+ (for-each (lambda (doc)
+ (copy-file doc
+ (string-append doc-dir "/"
+ (basename doc))))
+ '("AUTHORS" "ChangeLog" "LICENSE" "README" "TODO"))))))
+ (native-inputs
+ `(("source" ,source)
+ ("tar" ,tar)
+ ("gzip" ,gzip)))
+ (home-page "https://fedorahosted.org/liberation-fonts/")
+ (synopsis
+ "Fonts compatible with Arial, Times New Roman, and Courier New")
+ (description
+ "The Liberation font family aims at metric compatibility with
+Arial, Times New Roman, and Courier New.
+
+There are three sets:
+
+- Sans (a substitute for Arial, Albany, Helvetica, Nimbus Sans L, and
+Bitstream Vera Sans);
+
+- Serif (a substitute for Times New Roman, Thorndale, Nimbus Roman, and
+Bitstream Vera Serif);
+
+- Mono (a substitute for Courier New, Cumberland, Courier, Nimbus Mono L,
+and Bitstream Vera Sans Mono).
+
+The Liberation Fonts are sponsored by Red Hat.")
+ (license license:silofl1.1)))
+
+(define-public font-terminus
+ (package
+ (name "font-terminus")
(version "4.39")
(source
(origin
diff --git a/gnu/packages/freeipmi.scm b/gnu/packages/freeipmi.scm
index 5ce87ae842..39e541b884 100644
--- a/gnu/packages/freeipmi.scm
+++ b/gnu/packages/freeipmi.scm
@@ -27,14 +27,14 @@
(define-public freeipmi
(package
(name "freeipmi")
- (version "1.4.5")
+ (version "1.4.7")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/freeipmi/freeipmi-"
version ".tar.gz"))
(sha256
(base32
- "033zakrk3kvi4y41kslicr90b3yb2kj052cl6nbja7ybn70y9nkz"))))
+ "1j33b2spj1vzjf1ymfrgka5h7imijmdwg9jdjfb92b2ccld9jj6l"))))
(build-system gnu-build-system)
(inputs
`(("readline" ,readline) ("libgcrypt" ,libgcrypt)))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index e79be3fa49..db878b033d 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -168,7 +168,8 @@ scriptable with Guile.")
(let ((prefix (assoc-ref outputs "out")))
;; Create directories that the makefile assumes exist.
(mkdir-p (string-append prefix "/bin"))
- (mkdir-p (string-append prefix "/share/applications"))))
+ (mkdir-p (string-append prefix "/share/applications"))
+ (mkdir-p (string-append prefix "/share/pixmaps"))))
;; No configure script.
(alist-delete 'configure %standard-phases))))
#:tests? #f)) ;; No check target.
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index aeedd23916..a0c18eac93 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -74,7 +74,10 @@ provided as well as the framework to add new color models and data types.")
"09nlv06li9nrn74ifpm7223mxpg0s7cii702z72cpbwrjh6nlbnz"))))
(build-system gnu-build-system)
(arguments
- `(#:phases
+ `(;; More than just the one test disabled below now fails; disable them
+ ;; all according to the rationale given below.
+ #:tests? #f
+ #:phases
(alist-cons-before
'build 'pre-build
(lambda _
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 94f03cb1ec..17a6d4fd3c 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -31,7 +31,8 @@
#:use-module (gnu packages xorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages fontutils)
- #:use-module (gnu packages guile))
+ #:use-module (gnu packages guile)
+ #:use-module (gnu packages xdisorg))
(define-public glu
(package
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index be2924c606..486cdb6add 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -22,6 +22,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages base)
@@ -37,6 +38,7 @@
#:use-module (gnu packages xml)
#:use-module (gnu packages bash)
#:use-module (gnu packages file)
+ #:use-module (gnu packages which)
#:use-module (gnu packages xorg)
#:use-module (gnu packages m4)
@@ -54,8 +56,7 @@
(define dbus
(package
(name "dbus")
- (version "1.8.8")
- (replacement dbus-1.8.10) ;fix for CVE-2014-7824
+ (version "1.8.10")
(source (origin
(method url-fetch)
(uri
@@ -63,7 +64,7 @@
version ".tar.gz"))
(sha256
(base32
- "1zfi5grrlryppgrl23im82cqw6l9fk1wlc2ayvzx0yd994v2dayz"))
+ "13mgvwigm931r8n9363imnn0vn6dvc0m322k3p8fs5c8nvyqggqh"))
(patches (list (search-patch "dbus-localstatedir.patch")))))
(build-system gnu-build-system)
(arguments
@@ -114,35 +115,23 @@ or through unencrypted TCP/IP suitable for use behind a firewall with
shared NFS home directories.")
(license license:gpl2+))) ; or Academic Free License 2.1
-(define-public dbus-1.8.10
- (let ((real-version "1.8.10"))
- (package (inherit dbus)
- (source (origin
- (method url-fetch)
- (uri
- (string-append "http://dbus.freedesktop.org/releases/dbus/dbus-"
- real-version ".tar.gz"))
- (sha256
- (base32
- "13mgvwigm931r8n9363imnn0vn6dvc0m322k3p8fs5c8nvyqggqh"))
- (patches (list (search-patch "dbus-localstatedir.patch")))))
- (replacement #f))))
-
(define glib
(package
(name "glib")
- (version "2.40.0")
+ (version "2.40.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/"
name "/" (string-take version 4) "/"
name "-" version ".tar.xz"))
(sha256
- (base32 "1d98mbqjmc34s8095lkw1j1bwvnnkw9581yfvjaikjvfjsaz29qd"))
+ (base32
+ "0ykcf99mhpkza3xwa3k79vgfml8mqiac9044802yi5q8jpr8mzz8"))
(patches (list (search-patch "glib-tests-homedir.patch")
(search-patch "glib-tests-desktop.patch")
(search-patch "glib-tests-prlimit.patch")
- (search-patch "glib-tests-timer.patch")))))
+ (search-patch "glib-tests-timer.patch")
+ (search-patch "glib-tests-gapplication.patch")))))
(build-system gnu-build-system)
(outputs '("out" ; everything
"bin" ; glib-mkenums, gtester, etc.; depends on Python
@@ -233,6 +222,11 @@ dynamic loading, and an object system.")
`(;; In practice, GIR users will need libffi when using
;; gobject-introspection.
("libffi" ,libffi)))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GI_TYPELIB_PATH")
+ (directories '("lib/girepository-1.0")))))
+ (search-paths native-search-paths)
(arguments
`(#:phases
(alist-cons-before
@@ -430,3 +424,85 @@ has an ease of use unmatched by other C++ callback libraries.")
"Glibmm provides a C++ programming interface to the part of GLib that are
useful for C++.")
(license license:lgpl2.1+)))
+
+(define-public python2-pygobject-2
+ (package
+ (name "python2-pygobject")
+ ;; This was the last version to declare the 2.0 platform number, i.e. its
+ ;; pkg-config files were named pygobject-2.0.pc
+ (version "2.28.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/pygobject/"
+ (version-major+minor version)
+ "/pygobject-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1f5dfxjnil2glfwxnqr14d2cjfbkghsbsn8n04js2c2icr7iv2pv"))
+ (patches
+ (list (search-patch
+ "python2-pygobject-2-gi-info-type-error-domain.patch")))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("which" ,which)
+ ("glib-bin" ,glib "bin") ;for tests: glib-compile-schemas
+ ("pkg-config" ,pkg-config)
+ ("dbus" ,dbus))) ;for tests
+ (inputs
+ `(("python" ,python-2)
+ ("glib" ,glib)
+ ("python2-py2cairo" ,python2-py2cairo)
+ ("gobject-introspection" ,gobject-introspection)))
+ (propagated-inputs
+ `(("libffi" ,libffi))) ;mentioned in pygobject-2.0.pc
+ (arguments
+ `(#:tests? #f ;segfaults during tests
+ #:configure-flags '("LIBS=-lcairo-gobject")))
+ (home-page "https://pypi.python.org/pypi/PyGObject")
+ (synopsis "Python bindings for GObject")
+ (description
+ "Python bindings for GLib, GObject, and GIO.")
+ (license license:lgpl2.1+)))
+
+(define-public python-pygobject
+ (package
+ (name "python-pygobject")
+ (version "3.12.2") ;last version that works with
+ ;gobject-introspection 1.38
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/pygobject/"
+ (version-major+minor version)
+ "/pygobject-" version ".tar.xz"))
+ (sha256
+ (base32
+ "08m5yad1hjdax4g39w6lgjk4124mcwpa8fc5iyvb8nygk8s3syky"))))
+ ;; 3.14.0: 0m1d75iwxa6k1xbkn6c6yq5r10pxnf7i5c2a5yvwsnab7ylzz7kp
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("which" ,which)
+ ("glib-bin" ,glib "bin") ;for tests: glib-compile-schemas
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("python" ,python)
+ ("glib" ,glib)
+ ("python-pycairo" ,python-pycairo)
+ ("gobject-introspection" ,gobject-introspection)
+ ("libffi" ,libffi)))
+ (arguments
+ ;; TODO: failing tests: test_native_calls_async
+ ;; test_native_calls_async_errors test_native_calls_sync
+ ;; test_native_calls_sync_errors test_python_calls_async
+ ;; test_python_calls_async_error test_python_calls_async_error_result
+ ;; test_python_calls_sync test_python_calls_sync_errors
+ ;; test_python_calls_sync_noargs test_callback_user_data_middle_none
+ ;; test_callback_user_data_middle_single
+ ;; test_callback_user_data_middle_tuple
+ '(#:tests? #f))
+ (home-page "https://pypi.python.org/pypi/PyGObject")
+ (synopsis "Python bindings for GObject")
+ (description
+ "Python bindings for GLib, GObject, and GIO.")
+ (license license:lgpl2.1+)))
diff --git a/gnu/packages/global.scm b/gnu/packages/global.scm
index d43caf4f54..f7377def0a 100644
--- a/gnu/packages/global.scm
+++ b/gnu/packages/global.scm
@@ -28,14 +28,14 @@
(define-public global ; a global variable
(package
(name "global")
- (version "6.3.2")
+ (version "6.3.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/global/global-"
version ".tar.gz"))
(sha256
(base32
- "07iifpz00ch3drlscvk5v12j7bckwv6pk8040y81s1x14b0gf220"))))
+ "0j828dg2cjf77rx71cw68jpk7jl119v6nyb0kyvirr5i1860j1fx"))))
(build-system gnu-build-system)
(inputs `(("ncurses" ,ncurses)
("libtool" ,libtool)))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 5fa892ad07..1d3ce25421 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -46,7 +46,8 @@
#:use-module (gnu packages xml)
#:use-module (gnu packages gl)
#:use-module (gnu packages compression)
- #:use-module (gnu packages xorg))
+ #:use-module (gnu packages xorg)
+ #:use-module (gnu packages xdisorg))
(define-public brasero
(package
@@ -1119,6 +1120,51 @@ widgets built in the loading process.")
controls using the Bonobo component framework.")
(license license:lgpl2.0+)))
+(define-public libwnck
+ (package
+ (name "libwnck")
+ (version "3.14.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32 "074jww04z8g9r1acndqap79wx4kbm3rpkf4lcg1v82b66iv0027m"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (propagated-inputs
+ `(("gtk+" ,gtk+)
+ ("libxres" ,libxres)
+ ("startup-notification" ,startup-notification)))
+ (home-page "https://developer.gnome.org/libwnck/")
+ (synopsis "Window Navigator Construction Kit")
+ (description
+ "Libwnck is the Window Navigator Construction Kit, a library for use in
+writing pagers, tasklists, and more generally applications that are dealing
+with window management. It tries hard to respect the Extended Window Manager
+Hints specification (EWMH).")
+ (license license:lgpl2.0+)))
+
+;; stable version for gtk2, required by xfwm4.
+(define-public libwnck-1
+ (package (inherit libwnck)
+ (name "libwnck")
+ (version "2.30.7")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
+ (propagated-inputs
+ `(("gtk+" ,gtk+-2)
+ ("libxres" ,libxres)
+ ("startup-notification" ,startup-notification)))))
(define-public goffice
(package
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index d9f83477df..249971becd 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -103,14 +103,14 @@ tool to extract metadata from a file and print the results.")
(define-public libmicrohttpd
(package
(name "libmicrohttpd")
- (version "0.9.37")
+ (version "0.9.38")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-"
version ".tar.gz"))
(sha256
(base32
- "1p3wnhr43v6vqdgl86r76298wjfxz2ihj9zh9kpz8l7va30br357"))))
+ "08g7p4l0p2fsjj8ayl68zq1bqgrn0pck19bm8yd7k61whvfv9wld"))))
(build-system gnu-build-system)
(inputs
`(("curl" ,curl)
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index ecbb17895c..1ef8fe7e3a 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -39,7 +39,7 @@
(define-public libgpg-error
(package
(name "libgpg-error")
- (version "1.13")
+ (version "1.17")
(source
(origin
(method url-fetch)
@@ -47,7 +47,7 @@
version ".tar.bz2"))
(sha256
(base32
- "02lv5h865f8if391xjp3njg04k0l4x2pwjkcdbzcwilail1skazq"))))
+ "1dapxzxl1naghf342fwfc2w2f2c5hb9gr1a1s4n8dsqn26kybx1z"))))
(build-system gnu-build-system)
(home-page "http://gnupg.org")
(synopsis "Library of error values for GnuPG components")
@@ -132,7 +132,7 @@ provided.")
(define-public libksba
(package
(name "libksba")
- (version "1.3.0")
+ (version "1.3.2")
(source
(origin
(method url-fetch)
@@ -141,7 +141,7 @@ provided.")
version ".tar.bz2"))
(sha256
(base32
- "0w8rfb6yhcwkwzvjafrashcygy4hd9xwwmvlnkfd1m2h0paywqas"))))
+ "01l4hvcknk9nb4bvyb6aqaid19jg0wv3ik54j1b89hnzamwm75gb"))))
(build-system gnu-build-system)
(propagated-inputs
`(("libgpg-error" ,libgpg-error)))
diff --git a/gnu/packages/gnutls.scm b/gnu/packages/gnutls.scm
index fd1b38d5ae..7ac7a9e304 100644
--- a/gnu/packages/gnutls.scm
+++ b/gnu/packages/gnutls.scm
@@ -36,7 +36,7 @@
(define-public libtasn1
(package
(name "libtasn1")
- (version "4.1")
+ (version "4.2")
(source
(origin
(method url-fetch)
@@ -44,7 +44,7 @@
version ".tar.gz"))
(sha256
(base32
- "00gkyppzw6fqi5mnc3d8paf7bp6nfhi9213481awy07sviqnbvk0"))))
+ "1fydwh5hlnmprdzmzn4kiqb939br59qv1001k7ah5b626v5l2fv9"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl)
diff --git a/gnu/packages/gsasl.scm b/gnu/packages/gsasl.scm
index 8fb21eee90..071ffb4b84 100644
--- a/gnu/packages/gsasl.scm
+++ b/gnu/packages/gsasl.scm
@@ -48,13 +48,13 @@
(define-public gss
(package
(name "gss")
- (version "1.0.2")
+ (version "1.0.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gss/gss-" version
".tar.gz"))
(sha256 (base32
- "1qa8lbkzi6ilfggx7mchfzjnchvhwi68rck3jf9j4425ncz7zsd9"))))
+ "1syyvh3k659xf1hdv9pilnnhbbhs6vfapayp4xgdcc8mfgf9v4gz"))))
(build-system gnu-build-system)
(inputs `(("nettle" ,nettle)
("shishi" ,shishi)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 15d6ab441b..8646397aad 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -25,6 +25,7 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system python)
#:use-module (gnu packages compression)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages ghostscript)
@@ -38,7 +39,8 @@
#:use-module (gnu packages python)
#:use-module (gnu packages guile)
#:use-module (gnu packages xml)
- #:use-module (gnu packages xorg))
+ #:use-module (gnu packages xorg)
+ #:use-module (gnu packages xdisorg))
(define-public atk
(package
@@ -272,10 +274,11 @@ printing and other features typical of a source code editor.")
(base32
"05s6ksvy1yan6h6zny9n3bmvygcnzma6ljl6i0z9cci2xg116c8q"))))
(build-system gnu-build-system)
- (inputs
+ (propagated-inputs ; required by gdk-pixbuf-2.0.pc
`(("glib" ,glib)
- ("libjpeg" ,libjpeg)
- ("libpng" ,libpng)
+ ("libpng" ,libpng)))
+ (inputs
+ `(("libjpeg" ,libjpeg)
("libtiff" ,libtiff)))
(native-inputs
`(("pkg-config" ,pkg-config)
@@ -634,3 +637,109 @@ extensive documentation, including API reference and a tutorial.")
("atkmm" ,atkmm)
("gtk+" ,gtk+-2)
("glibmm" ,glibmm)))))
+
+(define-public python-pycairo
+ (package
+ (name "python-pycairo")
+ (version "1.10.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://cairographics.org/releases/pycairo-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "1gjkf8x6hyx1skq3hhwcbvwifxvrf9qxis5vx8x5igmmgs70g94s"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (propagated-inputs ;pycairo.pc references cairo
+ `(("cairo" ,cairo)))
+ (arguments
+ `(#:tests? #f
+ #:phases (alist-cons-before
+ 'build 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (zero? (system* "./waf" "configure"
+ (string-append "--prefix="
+ (assoc-ref outputs "out")))))
+ (alist-replace
+ 'build
+ (lambda _
+ (zero? (system* "./waf" "build")))
+ (alist-replace
+ 'install
+ (lambda _
+ (zero? (system* "./waf" "install")))
+ %standard-phases)))))
+ (home-page "http://cairographics.org/pycairo/")
+ (synopsis "Python bindings for cairo")
+ (description
+ "Pycairo is a set of Python bindings for the Cairo graphics library.")
+ (license license:lgpl3+)))
+
+(define-public python2-py2cairo
+ (package (inherit python-pycairo)
+ (name "python2-py2cairo")
+ (version "1.10.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://cairographics.org/releases/py2cairo-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "0cblk919wh6w0pgb45zf48xwxykfif16qk264yga7h9fdkq3j16k"))))
+ (arguments
+ `(#:python ,python-2
+ ,@(package-arguments python-pycairo)))
+ ;; Dual-licensed under LGPL 2.1 or Mozilla Public License 1.1
+ (license (list license:lgpl2.1 license:mpl1.1))))
+
+(define-public python2-pygtk
+ (package
+ (name "python2-pygtk")
+ (version "2.24.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://ftp.gnome.org/pub/GNOME/sources"
+ "/pygtk/" (version-major+minor version)
+ "/pygtk-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "04k942gn8vl95kwf0qskkv6npclfm31d78ljkrkgyqxxcni1w76d"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("python" ,python-2)
+ ("glib" ,glib)))
+ (propagated-inputs
+ `(("python-pycairo" ,python2-py2cairo) ;loaded at runtime
+ ("python-pygobject" ,python2-pygobject-2) ;referenced in pc file
+ ("gtk+" ,gtk+-2)))
+ (arguments
+ `(#:tests? #f
+ #:phases (alist-cons-after
+ 'install 'install-pth
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; pygtk's modules are stored in a subdirectory of python's
+ ;; site-packages directory. Add a .pth file so that python
+ ;; will add that subdirectory to its module search path.
+ (let* ((out (assoc-ref outputs "out"))
+ (site (string-append out "/lib/python"
+ ,(version-major+minor
+ (package-version python-2))
+ "/site-packages")))
+ (call-with-output-file (string-append site "/pygtk.pth")
+ (lambda (port)
+ (format port "gtk-2.0~%")))))
+ %standard-phases)))
+ (home-page "http://www.pygtk.org/")
+ (synopsis "Python bindings for GTK+")
+ (description
+ "PyGTK allows you to write full featured GTK programs in Python. It is
+targetted at GTK 2.x, and can be used in conjunction with gnome-python to
+write GNOME applications.")
+ (license license:lgpl2.1+)))
diff --git a/gnu/packages/linux-libre-i686.conf b/gnu/packages/linux-libre-i686.conf
index e14994c38b..d50f5ca246 100644
--- a/gnu/packages/linux-libre-i686.conf
+++ b/gnu/packages/linux-libre-i686.conf
@@ -1,11 +1,12 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 3.17.0-gnu Kernel Configuration
+# Linux/x86 3.18.0-gnu Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
+CONFIG_PERF_EVENTS_INTEL_UNCORE=y
CONFIG_OUTPUT_FORMAT="elf32-i386"
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
CONFIG_LOCKDEP_SUPPORT=y
@@ -127,6 +128,7 @@ CONFIG_TASK_IO_ACCOUNTING=y
#
CONFIG_TREE_RCU=y
# CONFIG_PREEMPT_RCU is not set
+# CONFIG_TASKS_RCU is not set
CONFIG_RCU_STALL_COMMON=y
CONFIG_RCU_FANOUT=32
CONFIG_RCU_FANOUT_LEAF=16
@@ -139,7 +141,6 @@ CONFIG_RCU_FAST_NO_HZ=y
CONFIG_LOG_BUF_SHIFT=17
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
-CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y
CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not set
CONFIG_CGROUP_FREEZER=y
@@ -184,6 +185,7 @@ CONFIG_ANON_INODES=y
CONFIG_HAVE_UID16=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_HAVE_PCSPKR_PLATFORM=y
+CONFIG_BPF=y
CONFIG_EXPERT=y
CONFIG_UID16=y
CONFIG_SGETMASK_SYSCALL=y
@@ -201,8 +203,10 @@ CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
+CONFIG_BPF_SYSCALL=y
CONFIG_SHMEM=y
CONFIG_AIO=y
+CONFIG_ADVISE_SYSCALLS=y
CONFIG_PCI_QUIRKS=y
# CONFIG_EMBEDDED is not set
CONFIG_HAVE_PERF_EVENTS=y
@@ -289,6 +293,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_MODULE_SIG is not set
+# CONFIG_MODULE_COMPRESS is not set
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_LBDAF=y
@@ -361,12 +366,15 @@ CONFIG_FREEZER=y
#
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
+CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_MPPARSE=y
# CONFIG_X86_BIGSMP is not set
CONFIG_X86_EXTENDED_PLATFORM=y
# CONFIG_X86_GOLDFISH is not set
CONFIG_X86_INTEL_MID=y
CONFIG_X86_INTEL_LPSS=y
+CONFIG_IOSF_MBI=m
+CONFIG_IOSF_MBI_DEBUG=y
# CONFIG_X86_RDC321X is not set
# CONFIG_X86_32_NON_STANDARD is not set
CONFIG_X86_32_IRIS=m
@@ -499,6 +507,7 @@ CONFIG_MEMORY_HOTPLUG_SPARSE=y
CONFIG_MEMORY_HOTREMOVE=y
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_MEMORY_BALLOON=y
CONFIG_BALLOON_COMPACTION=y
CONFIG_COMPACTION=y
CONFIG_MIGRATION=y
@@ -803,7 +812,6 @@ CONFIG_BINFMT_AOUT=m
CONFIG_BINFMT_MISC=m
CONFIG_COREDUMP=y
CONFIG_HAVE_ATOMIC_IOMAP=y
-CONFIG_IOSF_MBI=m
CONFIG_PMC_ATOM=y
CONFIG_NET=y
@@ -847,6 +855,8 @@ CONFIG_IP_PIMSM_V2=y
CONFIG_SYN_COOKIES=y
CONFIG_NET_IPVTI=m
CONFIG_NET_UDP_TUNNEL=m
+CONFIG_NET_FOU=m
+CONFIG_GENEVE=m
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
@@ -872,6 +882,7 @@ CONFIG_TCP_CONG_LP=m
CONFIG_TCP_CONG_VENO=m
CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_TCP_CONG_DCTCP=m
CONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="cubic"
@@ -908,7 +919,7 @@ CONFIG_NET_PTP_CLASSIFY=y
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_NETFILTER_ADVANCED=y
-CONFIG_BRIDGE_NETFILTER=y
+CONFIG_BRIDGE_NETFILTER=m
#
# Core Netfilter Configuration
@@ -967,6 +978,7 @@ CONFIG_NFT_HASH=m
CONFIG_NFT_COUNTER=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
+CONFIG_NFT_MASQ=m
CONFIG_NFT_NAT=m
CONFIG_NFT_QUEUE=m
CONFIG_NFT_REJECT=m
@@ -1070,6 +1082,7 @@ CONFIG_IP_SET_HASH_IPMARK=m
CONFIG_IP_SET_HASH_IPPORT=m
CONFIG_IP_SET_HASH_IPPORTIP=m
CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_MAC=m
CONFIG_IP_SET_HASH_NETPORTNET=m
CONFIG_IP_SET_HASH_NET=m
CONFIG_IP_SET_HASH_NETNET=m
@@ -1098,6 +1111,7 @@ CONFIG_IP_VS_RR=m
CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_FO=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
@@ -1126,10 +1140,13 @@ CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_NF_TABLES_IPV4=m
CONFIG_NFT_CHAIN_ROUTE_IPV4=m
-CONFIG_NFT_CHAIN_NAT_IPV4=m
+CONFIG_NF_REJECT_IPV4=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NF_TABLES_ARP=m
CONFIG_NF_NAT_IPV4=m
+CONFIG_NFT_CHAIN_NAT_IPV4=m
+CONFIG_NF_NAT_MASQUERADE_IPV4=m
+CONFIG_NFT_MASQ_IPV4=m
CONFIG_NF_NAT_SNMP_BASIC=m
CONFIG_NF_NAT_PROTO_GRE=m
CONFIG_NF_NAT_PPTP=m
@@ -1163,10 +1180,13 @@ CONFIG_NF_DEFRAG_IPV6=m
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_NF_TABLES_IPV6=m
CONFIG_NFT_CHAIN_ROUTE_IPV6=m
-CONFIG_NFT_CHAIN_NAT_IPV6=m
+CONFIG_NF_REJECT_IPV6=m
CONFIG_NFT_REJECT_IPV6=m
CONFIG_NF_LOG_IPV6=m
CONFIG_NF_NAT_IPV6=m
+CONFIG_NFT_CHAIN_NAT_IPV6=m
+CONFIG_NF_NAT_MASQUERADE_IPV6=m
+CONFIG_NFT_MASQ_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
@@ -1266,6 +1286,7 @@ CONFIG_BRIDGE_IGMP_SNOOPING=y
CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_HAVE_NET_DSA=y
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_TAG_BRCM=y
CONFIG_NET_DSA_TAG_DSA=y
CONFIG_NET_DSA_TAG_EDSA=y
CONFIG_NET_DSA_TAG_TRAILER=y
@@ -1373,6 +1394,7 @@ CONFIG_BATMAN_ADV_MCAST=y
CONFIG_OPENVSWITCH=m
CONFIG_OPENVSWITCH_GRE=y
CONFIG_OPENVSWITCH_VXLAN=y
+CONFIG_OPENVSWITCH_GENEVE=y
CONFIG_VSOCKETS=m
CONFIG_VMWARE_VMCI_VSOCKETS=m
CONFIG_NETLINK_MMAP=y
@@ -1447,6 +1469,7 @@ CONFIG_CAN_TSCAN1=m
CONFIG_CAN_C_CAN=m
CONFIG_CAN_C_CAN_PLATFORM=m
CONFIG_CAN_C_CAN_PCI=m
+CONFIG_CAN_M_CAN=m
CONFIG_CAN_CC770=m
CONFIG_CAN_CC770_ISA=m
CONFIG_CAN_CC770_PLATFORM=m
@@ -1657,6 +1680,7 @@ CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE=""
CONFIG_FW_LOADER_USER_HELPER=y
CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
+CONFIG_ALLOW_DEV_COREDUMP=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
CONFIG_SYS_HYPERVISOR=y
@@ -1784,6 +1808,7 @@ CONFIG_MTD_NAND_DENALI_PCI=m
CONFIG_MTD_NAND_DENALI_DT=m
CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018
CONFIG_MTD_NAND_GPIO=m
+# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set
CONFIG_MTD_NAND_IDS=m
CONFIG_MTD_NAND_RICOH=m
CONFIG_MTD_NAND_DISKONCHIP=m
@@ -1807,6 +1832,7 @@ CONFIG_MTD_ONENAND_2X_PROGRAM=y
CONFIG_MTD_LPDDR=m
CONFIG_MTD_QINFO_PROBE=m
CONFIG_MTD_SPI_NOR=m
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
CONFIG_MTD_UBI=m
CONFIG_MTD_UBI_WL_THRESHOLD=4096
CONFIG_MTD_UBI_BEB_LIMIT=20
@@ -1979,6 +2005,7 @@ CONFIG_VMWARE_VMCI=m
# Intel MIC Card Driver
#
CONFIG_ECHO=m
+# CONFIG_CXL_BASE is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
@@ -1990,6 +2017,7 @@ CONFIG_RAID_ATTRS=m
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_NETLINK=y
+# CONFIG_SCSI_MQ_DEFAULT is not set
CONFIG_SCSI_PROC_FS=y
#
@@ -2077,6 +2105,7 @@ CONFIG_SCSI_HPTIOP=m
CONFIG_SCSI_BUSLOGIC=m
CONFIG_SCSI_FLASHPOINT=y
CONFIG_VMWARE_PVSCSI=m
+CONFIG_XEN_SCSI_FRONTEND=m
CONFIG_HYPERV_STORAGE=m
CONFIG_LIBFC=m
CONFIG_LIBFCOE=m
@@ -2295,6 +2324,7 @@ CONFIG_TARGET_CORE=m
CONFIG_TCM_IBLOCK=m
CONFIG_TCM_FILEIO=m
CONFIG_TCM_PSCSI=m
+CONFIG_TCM_USER=m
CONFIG_LOOPBACK_TARGET=m
CONFIG_TCM_FC=m
CONFIG_ISCSI_TARGET=m
@@ -2422,6 +2452,8 @@ CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y
CONFIG_NET_DSA_MV88E6131=m
CONFIG_NET_DSA_MV88E6123_61_65=m
+CONFIG_NET_DSA_MV88E6171=m
+CONFIG_NET_DSA_BCM_SF2=m
CONFIG_ETHERNET=y
CONFIG_MDIO=m
CONFIG_NET_VENDOR_3COM=y
@@ -2433,6 +2465,8 @@ CONFIG_VORTEX=m
CONFIG_TYPHOON=m
CONFIG_NET_VENDOR_ADAPTEC=y
CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NET_VENDOR_AGERE=y
+CONFIG_ET131X=m
CONFIG_NET_VENDOR_ALTEON=y
CONFIG_ACENIC=m
# CONFIG_ACENIC_OMIT_TIGON_I is not set
@@ -2523,6 +2557,8 @@ CONFIG_I40E=m
CONFIG_I40E_VXLAN=y
CONFIG_I40E_DCB=y
CONFIG_I40EVF=m
+CONFIG_FM10K=m
+CONFIG_FM10K_VXLAN=y
CONFIG_NET_VENDOR_I825XX=y
CONFIG_IP1000=m
CONFIG_JME=m
@@ -2579,6 +2615,7 @@ CONFIG_QLCNIC_VXLAN=y
CONFIG_QLCNIC_HWMON=y
CONFIG_QLGE=m
CONFIG_NETXEN_NIC=m
+CONFIG_NET_VENDOR_QUALCOMM=y
CONFIG_NET_VENDOR_REALTEK=y
CONFIG_ATP=m
CONFIG_8139CP=m
@@ -2668,6 +2705,7 @@ CONFIG_MICREL_PHY=m
CONFIG_FIXED_PHY=y
CONFIG_MDIO_BITBANG=m
CONFIG_MDIO_GPIO=m
+CONFIG_MDIO_BCM_UNIMAC=m
CONFIG_MICREL_KS8995MA=m
CONFIG_PLIP=m
CONFIG_PPP=y
@@ -2764,8 +2802,10 @@ CONFIG_ATH9K_PCI=y
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_DEBUGFS=y
CONFIG_ATH9K_STATION_STATISTICS=y
+# CONFIG_ATH9K_DYNACK is not set
CONFIG_ATH9K_WOW=y
CONFIG_ATH9K_RFKILL=y
+CONFIG_ATH9K_CHANNEL_CONTEXT=y
CONFIG_ATH9K_HTC=m
CONFIG_ATH9K_HTC_DEBUGFS=y
CONFIG_CARL9170=m
@@ -2852,6 +2892,7 @@ CONFIG_IWLDVM=m
CONFIG_IWLMVM=m
CONFIG_IWLWIFI_OPMODE_MODULAR=y
# CONFIG_IWLWIFI_BCAST_FILTERING is not set
+CONFIG_IWLWIFI_UAPSD=y
#
# Debugging Options
@@ -2926,6 +2967,8 @@ CONFIG_RTL8192DE=m
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
CONFIG_RTL8188EE=m
+CONFIG_RTL8192EE=m
+CONFIG_RTL8821AE=m
CONFIG_RTL8192CU=m
CONFIG_RTLWIFI=m
CONFIG_RTLWIFI_PCI=m
@@ -3346,6 +3389,7 @@ CONFIG_INPUT_AD714X_SPI=m
CONFIG_INPUT_ARIZONA_HAPTICS=m
CONFIG_INPUT_BMA150=m
CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_MAX77693_HAPTIC=m
CONFIG_INPUT_MAX8925_ONKEY=m
CONFIG_INPUT_MAX8997_HAPTIC=m
CONFIG_INPUT_MC13783_PWRBUTTON=m
@@ -3369,6 +3413,7 @@ CONFIG_INPUT_TWL4030_PWRBUTTON=m
CONFIG_INPUT_TWL4030_VIBRA=m
CONFIG_INPUT_TWL6040_VIBRA=m
CONFIG_INPUT_UINPUT=y
+CONFIG_INPUT_PALMAS_PWRBUTTON=m
CONFIG_INPUT_PCF50633_PMU=m
CONFIG_INPUT_PCF8574=m
CONFIG_INPUT_PWM_BEEPER=m
@@ -3386,6 +3431,8 @@ CONFIG_INPUT_CMA3000_I2C=m
CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
CONFIG_INPUT_SOC_BUTTON_ARRAY=m
+CONFIG_INPUT_DRV260X_HAPTICS=m
+CONFIG_INPUT_DRV2667_HAPTICS=m
#
# Hardware I/O ports
@@ -3464,6 +3511,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
CONFIG_SERIAL_8250_RSA=y
CONFIG_SERIAL_8250_DW=m
+CONFIG_SERIAL_8250_FINTEK=m
#
# Non-8250 serial port support
@@ -3553,6 +3601,8 @@ CONFIG_TCG_ST33_I2C=m
CONFIG_TCG_XEN=m
CONFIG_TELCLOCK=m
CONFIG_DEVPORT=y
+CONFIG_XILLYBUS=m
+CONFIG_XILLYBUS_PCIE=m
#
# I2C support
@@ -3736,6 +3786,7 @@ CONFIG_GPIO_MAX730X=m
# Memory mapped GPIO drivers:
#
CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_IT8761E=m
CONFIG_GPIO_F7188X=m
CONFIG_GPIO_SCH311X=m
@@ -3781,6 +3832,7 @@ CONFIG_GPIO_RDC321X=m
# SPI GPIO expanders:
#
CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MCP23S08=m
CONFIG_GPIO_MC33880=m
#
@@ -3954,6 +4006,7 @@ CONFIG_SENSORS_MAX6650=m
CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_HTU21=m
CONFIG_SENSORS_MCP3021=m
+CONFIG_SENSORS_MENF21BMC_HWMON=m
CONFIG_SENSORS_ADCXX=m
CONFIG_SENSORS_LM63=m
CONFIG_SENSORS_LM70=m
@@ -4046,12 +4099,14 @@ CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
CONFIG_THERMAL_GOV_STEP_WISE=y
+CONFIG_THERMAL_GOV_BANG_BANG=y
CONFIG_THERMAL_GOV_USER_SPACE=y
CONFIG_THERMAL_EMULATION=y
CONFIG_INTEL_POWERCLAMP=m
CONFIG_X86_PKG_TEMP_THERMAL=m
-CONFIG_ACPI_INT3403_THERMAL=m
CONFIG_INTEL_SOC_DTS_THERMAL=m
+CONFIG_INT340X_THERMAL=m
+CONFIG_ACPI_THERMAL_REL=m
#
# Texas Instruments thermal drivers
@@ -4066,10 +4121,13 @@ CONFIG_WATCHDOG_CORE=y
CONFIG_SOFT_WATCHDOG=m
CONFIG_DA9052_WATCHDOG=m
CONFIG_DA9055_WATCHDOG=m
+CONFIG_DA9063_WATCHDOG=m
+CONFIG_MENF21BMC_WATCHDOG=m
CONFIG_WM831X_WATCHDOG=m
CONFIG_WM8350_WATCHDOG=m
CONFIG_XILINX_WATCHDOG=m
CONFIG_DW_WATCHDOG=m
+CONFIG_RN5T618_WATCHDOG=m
CONFIG_TWL4030_WATCHDOG=m
CONFIG_RETU_WATCHDOG=m
CONFIG_ACQUIRE_WDT=m
@@ -4203,6 +4261,7 @@ CONFIG_MFD_MAX8907=m
CONFIG_MFD_MAX8925=y
CONFIG_MFD_MAX8997=y
CONFIG_MFD_MAX8998=y
+CONFIG_MFD_MENF21BMC=m
CONFIG_EZX_PCAP=y
CONFIG_MFD_VIPERBOARD=m
CONFIG_MFD_RETU=m
@@ -4214,6 +4273,7 @@ CONFIG_MFD_RDC321X=m
CONFIG_MFD_RTSX_PCI=m
CONFIG_MFD_RTSX_USB=m
CONFIG_MFD_RC5T583=y
+CONFIG_MFD_RN5T618=m
CONFIG_MFD_SEC_CORE=y
CONFIG_MFD_SI476X_CORE=m
CONFIG_MFD_SM501=m
@@ -4285,6 +4345,7 @@ CONFIG_REGULATOR_DA9210=m
CONFIG_REGULATOR_DA9211=m
CONFIG_REGULATOR_FAN53555=m
CONFIG_REGULATOR_GPIO=m
+CONFIG_REGULATOR_ISL9305=m
CONFIG_REGULATOR_ISL6271A=m
CONFIG_REGULATOR_LP3971=m
CONFIG_REGULATOR_LP3972=m
@@ -4304,6 +4365,7 @@ CONFIG_REGULATOR_MAX8997=m
CONFIG_REGULATOR_MAX8998=m
CONFIG_REGULATOR_MAX77686=m
CONFIG_REGULATOR_MAX77693=m
+CONFIG_REGULATOR_MAX77802=m
CONFIG_REGULATOR_MC13XXX_CORE=m
CONFIG_REGULATOR_MC13783=m
CONFIG_REGULATOR_MC13892=m
@@ -4311,7 +4373,9 @@ CONFIG_REGULATOR_PALMAS=m
CONFIG_REGULATOR_PCAP=m
CONFIG_REGULATOR_PCF50633=m
CONFIG_REGULATOR_PFUZE100=m
+CONFIG_REGULATOR_PWM=m
CONFIG_REGULATOR_RC5T583=m
+CONFIG_REGULATOR_RN5T618=m
CONFIG_REGULATOR_S2MPA01=m
CONFIG_REGULATOR_S2MPS11=m
CONFIG_REGULATOR_S5M8767=m
@@ -4388,6 +4452,7 @@ CONFIG_IR_XMP_DECODER=m
CONFIG_RC_DEVICES=y
CONFIG_RC_ATI_REMOTE=m
CONFIG_IR_ENE=m
+CONFIG_IR_HIX5HD2=m
CONFIG_IR_IMON=m
CONFIG_IR_MCEUSB=m
CONFIG_IR_ITE_CIR=m
@@ -4547,11 +4612,13 @@ CONFIG_DVB_USB_GL861=m
CONFIG_DVB_USB_LME2510=m
CONFIG_DVB_USB_MXL111SF=m
CONFIG_DVB_USB_RTL28XXU=m
+CONFIG_DVB_USB_DVBSKY=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
CONFIG_SMS_USB_DRV=m
CONFIG_DVB_B2C2_FLEXCOP_USB=m
# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set
+CONFIG_DVB_AS102=m
#
# Webcam, TV (analog/digital) USB devices
@@ -4565,8 +4632,9 @@ CONFIG_VIDEO_EM28XX_RC=m
#
# Software defined radio USB devices
#
-CONFIG_USB_MSI2500=m
CONFIG_USB_AIRSPY=m
+CONFIG_USB_HACKRF=m
+CONFIG_USB_MSI2500=m
CONFIG_MEDIA_PCI_SUPPORT=y
#
@@ -4592,6 +4660,7 @@ CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_HEXIUM_ORION=m
CONFIG_VIDEO_MXB=m
CONFIG_VIDEO_SOLO6X10=m
+CONFIG_VIDEO_TW68=m
#
# Media capture/analog/hybrid TV support
@@ -4615,11 +4684,13 @@ CONFIG_VIDEO_SAA7134=m
CONFIG_VIDEO_SAA7134_ALSA=m
CONFIG_VIDEO_SAA7134_RC=y
CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_SAA7134_GO7007=m
CONFIG_VIDEO_SAA7164=m
#
# Media digital TV PCI Adapters
#
+CONFIG_DVB_AV7110_IR=y
CONFIG_DVB_AV7110=m
CONFIG_DVB_AV7110_OSD=y
CONFIG_DVB_BUDGET_CORE=m
@@ -4632,6 +4703,7 @@ CONFIG_DVB_B2C2_FLEXCOP_PCI=m
CONFIG_DVB_PLUTO2=m
CONFIG_DVB_DM1105=m
CONFIG_DVB_PT1=m
+CONFIG_DVB_PT3=m
CONFIG_MANTIS_CORE=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_HOPPER=m
@@ -4646,9 +4718,8 @@ CONFIG_SOC_CAMERA_PLATFORM=m
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
CONFIG_VIDEO_SH_VEU=m
-CONFIG_VIDEO_RENESAS_VSP1=m
CONFIG_V4L_TEST_DRIVERS=y
-CONFIG_VIDEO_VIVI=m
+CONFIG_VIDEO_VIVID=m
CONFIG_VIDEO_MEM2MEM_TESTDEV=m
#
@@ -4865,6 +4936,8 @@ CONFIG_MEDIA_TUNER_TUA9001=m
CONFIG_MEDIA_TUNER_SI2157=m
CONFIG_MEDIA_TUNER_IT913X=m
CONFIG_MEDIA_TUNER_R820T=m
+CONFIG_MEDIA_TUNER_MXL301RF=m
+CONFIG_MEDIA_TUNER_QM1D1C0042=m
#
# Multistandard (satellite) frontends
@@ -4938,6 +5011,7 @@ CONFIG_DVB_RTL2830=m
CONFIG_DVB_RTL2832=m
CONFIG_DVB_RTL2832_SDR=m
CONFIG_DVB_SI2168=m
+CONFIG_DVB_AS102_FE=m
#
# DVB-C (cable) frontends
@@ -4969,6 +5043,7 @@ CONFIG_DVB_S5H1411=m
CONFIG_DVB_S921=m
CONFIG_DVB_DIB8000=m
CONFIG_DVB_MB86A20S=m
+CONFIG_DVB_TC90522=m
#
# Digital terrestrial only tuners/PLL
@@ -5022,7 +5097,6 @@ CONFIG_VGA_SWITCHEROO=y
# Direct Rendering Manager
#
CONFIG_DRM=m
-CONFIG_DRM_USB=m
CONFIG_DRM_KMS_HELPER=m
CONFIG_DRM_KMS_FB_HELPER=y
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
@@ -5063,13 +5137,14 @@ CONFIG_DRM_AST=m
# CONFIG_DRM_MGAG200 is not set
CONFIG_DRM_CIRRUS_QEMU=m
CONFIG_DRM_QXL=m
-CONFIG_DRM_BOCHS=m
+# CONFIG_DRM_BOCHS is not set
#
# Frame buffer Devices
#
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_CMDLINE=y
CONFIG_FB_DDC=m
CONFIG_FB_BOOT_VESA_SUPPORT=y
CONFIG_FB_CFB_FILLRECT=y
@@ -5243,7 +5318,7 @@ CONFIG_LOGO=y
CONFIG_LOGO_LIBRE_CLUT224=y
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE=y
-CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
@@ -5494,6 +5569,7 @@ CONFIG_SND_SOC_AK4554=m
CONFIG_SND_SOC_AK4642=m
CONFIG_SND_SOC_AK5386=m
CONFIG_SND_SOC_ALC5623=m
+CONFIG_SND_SOC_CS35L32=m
CONFIG_SND_SOC_CS42L52=m
CONFIG_SND_SOC_CS42L56=m
CONFIG_SND_SOC_CS42L73=m
@@ -5503,6 +5579,7 @@ CONFIG_SND_SOC_CS4271=m
CONFIG_SND_SOC_CS42XX8=m
CONFIG_SND_SOC_CS42XX8_I2C=m
CONFIG_SND_SOC_HDMI_CODEC=m
+CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_MAX98090=m
CONFIG_SND_SOC_PCM1681=m
CONFIG_SND_SOC_PCM1792A=m
@@ -5519,6 +5596,10 @@ CONFIG_SND_SOC_SIGMADSP_I2C=m
CONFIG_SND_SOC_SIRF_AUDIO_CODEC=m
CONFIG_SND_SOC_SN95031=m
CONFIG_SND_SOC_SPDIF=m
+CONFIG_SND_SOC_SSM2602=m
+CONFIG_SND_SOC_SSM2602_SPI=m
+CONFIG_SND_SOC_SSM2602_I2C=m
+CONFIG_SND_SOC_SSM4567=m
CONFIG_SND_SOC_STA350=m
CONFIG_SND_SOC_TAS2552=m
CONFIG_SND_SOC_TAS5086=m
@@ -5539,6 +5620,7 @@ CONFIG_SND_SOC_WM8776=m
CONFIG_SND_SOC_WM8804=m
CONFIG_SND_SOC_WM8903=m
CONFIG_SND_SOC_WM8962=m
+CONFIG_SND_SOC_WM8978=m
CONFIG_SND_SOC_TPA6130A2=m
CONFIG_SND_SIMPLE_CARD=m
# CONFIG_SOUND_PRIME is not set
@@ -5601,6 +5683,7 @@ CONFIG_HID_NTRIG=m
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PENMOUNT=m
CONFIG_HID_PETALYNX=m
CONFIG_HID_PICOLCD=m
CONFIG_HID_PICOLCD_FB=y
@@ -5679,6 +5762,7 @@ CONFIG_USB_WUSB_CBAF=m
#
CONFIG_USB_C67X00_HCD=m
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_PCI=y
CONFIG_USB_XHCI_PLATFORM=m
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
@@ -5701,13 +5785,11 @@ CONFIG_USB_SL811_HCD=m
CONFIG_USB_SL811_HCD_ISO=y
CONFIG_USB_SL811_CS=m
CONFIG_USB_R8A66597_HCD=m
-CONFIG_USB_RENESAS_USBHS_HCD=m
CONFIG_USB_WHCI_HCD=m
CONFIG_USB_HWA_HCD=m
CONFIG_USB_HCD_BCMA=m
CONFIG_USB_HCD_SSB=m
# CONFIG_USB_HCD_TEST_MODE is not set
-CONFIG_USB_RENESAS_USBHS=m
#
# USB Device Class drivers
@@ -5857,7 +5939,6 @@ CONFIG_USB_SERIAL_OMNINET=m
CONFIG_USB_SERIAL_OPTICON=m
CONFIG_USB_SERIAL_XSENS_MT=m
CONFIG_USB_SERIAL_WISHBONE=m
-CONFIG_USB_SERIAL_ZTE=m
CONFIG_USB_SERIAL_SSU100=m
CONFIG_USB_SERIAL_QT2=m
CONFIG_USB_SERIAL_DEBUG=m
@@ -5901,9 +5982,6 @@ CONFIG_USB_XUSBATM=m
#
CONFIG_USB_PHY=y
CONFIG_NOP_USB_XCEIV=m
-CONFIG_SAMSUNG_USBPHY=m
-CONFIG_SAMSUNG_USB2PHY=m
-CONFIG_SAMSUNG_USB3PHY=m
CONFIG_USB_GPIO_VBUS=m
CONFIG_TAHVO_USB=m
CONFIG_TAHVO_USB_HOST_BY_DEFAULT=y
@@ -5921,7 +5999,6 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
CONFIG_USB_FOTG210_UDC=m
CONFIG_USB_GR_UDC=m
CONFIG_USB_R8A66597=m
-CONFIG_USB_RENESAS_USBHS_UDC=m
CONFIG_USB_PXA27X=m
CONFIG_USB_MV_UDC=m
CONFIG_USB_MV_U3D=m
@@ -5948,6 +6025,8 @@ CONFIG_USB_F_SUBSET=m
CONFIG_USB_F_RNDIS=m
CONFIG_USB_F_MASS_STORAGE=m
CONFIG_USB_F_FS=m
+CONFIG_USB_F_UAC1=m
+CONFIG_USB_F_UVC=m
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
@@ -5988,6 +6067,7 @@ CONFIG_USB_G_DBGP=m
# CONFIG_USB_G_DBGP_PRINTK is not set
CONFIG_USB_G_DBGP_SERIAL=y
CONFIG_USB_G_WEBCAM=m
+CONFIG_USB_LED_TRIG=y
CONFIG_UWB=m
CONFIG_UWB_HWA=m
CONFIG_UWB_WHCI=m
@@ -6085,6 +6165,7 @@ CONFIG_LEDS_TCA6507=m
CONFIG_LEDS_MAX8997=m
CONFIG_LEDS_LM355x=m
CONFIG_LEDS_OT200=m
+CONFIG_LEDS_MENF21BMC=m
#
# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
@@ -6188,6 +6269,7 @@ CONFIG_RTC_DRV_MAX8925=m
CONFIG_RTC_DRV_MAX8998=m
CONFIG_RTC_DRV_MAX8997=m
CONFIG_RTC_DRV_MAX77686=m
+CONFIG_RTC_DRV_MAX77802=m
CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_ISL1208=m
CONFIG_RTC_DRV_ISL12022=m
@@ -6245,7 +6327,6 @@ CONFIG_RTC_DRV_DS2404=m
CONFIG_RTC_DRV_DA9052=m
CONFIG_RTC_DRV_DA9055=m
CONFIG_RTC_DRV_DA9063=m
-CONFIG_RTC_DRV_EFI=m
CONFIG_RTC_DRV_STK17TA8=m
CONFIG_RTC_DRV_M48T86=m
CONFIG_RTC_DRV_M48T35=m
@@ -6348,11 +6429,11 @@ CONFIG_XEN_GRANT_DEV_ALLOC=m
CONFIG_SWIOTLB_XEN=y
CONFIG_XEN_TMEM=m
CONFIG_XEN_PCIDEV_BACKEND=m
+CONFIG_XEN_SCSI_BACKEND=m
CONFIG_XEN_PRIVCMD=m
CONFIG_XEN_ACPI_PROCESSOR=y
CONFIG_XEN_HAVE_PVMMU=y
CONFIG_STAGING=y
-CONFIG_ET131X=m
CONFIG_SLICOSS=m
CONFIG_PRISM2_USB=m
CONFIG_COMEDI=m
@@ -6360,12 +6441,10 @@ CONFIG_COMEDI=m
CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048
CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB=20480
CONFIG_COMEDI_MISC_DRIVERS=y
-CONFIG_COMEDI_KCOMEDILIB=m
CONFIG_COMEDI_BOND=m
CONFIG_COMEDI_TEST=m
CONFIG_COMEDI_PARPORT=m
CONFIG_COMEDI_SERIAL2002=m
-CONFIG_COMEDI_SKEL=m
CONFIG_COMEDI_SSV_DNP=m
CONFIG_COMEDI_ISA_DRIVERS=y
CONFIG_COMEDI_PCL711=m
@@ -6480,12 +6559,13 @@ CONFIG_COMEDI_NI_MIO_CS=m
CONFIG_COMEDI_QUATECH_DAQP_CS=m
CONFIG_COMEDI_USB_DRIVERS=y
CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_NI_USB6501=m
CONFIG_COMEDI_USBDUX=m
CONFIG_COMEDI_USBDUXFAST=m
CONFIG_COMEDI_USBDUXSIGMA=m
CONFIG_COMEDI_VMK80XX=m
CONFIG_COMEDI_8255=m
-CONFIG_COMEDI_FC=m
+CONFIG_COMEDI_KCOMEDILIB=m
CONFIG_COMEDI_AMPLC_DIO200=m
CONFIG_COMEDI_AMPLC_PC236=m
CONFIG_COMEDI_DAS08=m
@@ -6505,13 +6585,10 @@ CONFIG_RTL8192E=m
CONFIG_R8712U=m
CONFIG_R8188EU=m
CONFIG_88EU_AP_MODE=y
-CONFIG_R8192EE=m
CONFIG_R8723AU=m
CONFIG_8723AU_AP_MODE=y
CONFIG_8723AU_BT_COEXIST=y
-CONFIG_R8821AE=m
CONFIG_RTS5208=m
-# CONFIG_RTS5208_DEBUG is not set
CONFIG_LINE6_USB=m
# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
CONFIG_VT6655=m
@@ -6561,13 +6638,8 @@ CONFIG_AD7746=m
#
# Direct Digital Synthesis
#
-CONFIG_AD5930=m
CONFIG_AD9832=m
CONFIG_AD9834=m
-CONFIG_AD9850=m
-CONFIG_AD9852=m
-CONFIG_AD9910=m
-CONFIG_AD9951=m
#
# Digital gyroscope sensors
@@ -6647,7 +6719,6 @@ CONFIG_SPEAKUP_SYNTH_DUMMY=m
CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
CONFIG_STAGING_MEDIA=y
-CONFIG_DVB_AS102=m
CONFIG_I2C_BCM2048=m
CONFIG_DVB_CXD2099=m
CONFIG_VIDEO_DT3155=m
@@ -6691,8 +6762,6 @@ CONFIG_LNET=m
CONFIG_LNET_MAX_PAYLOAD=1048576
CONFIG_LNET_SELFTEST=m
CONFIG_LNET_XPRT_IB=m
-CONFIG_XILLYBUS=m
-CONFIG_XILLYBUS_PCIE=m
CONFIG_DGNC=m
CONFIG_DGAP=m
CONFIG_GS_FPGABOOT=m
@@ -6761,6 +6830,7 @@ CONFIG_CHROMEOS_PSTORE=m
#
# SOC (System On Chip) specific Drivers
#
+CONFIG_SOC_TI=y
CONFIG_CLKDEV_LOOKUP=y
CONFIG_HAVE_CLK_PREPARE=y
CONFIG_COMMON_CLK=y
@@ -6769,11 +6839,14 @@ CONFIG_COMMON_CLK=y
# Common Clock Framework
#
CONFIG_COMMON_CLK_WM831X=m
+CONFIG_COMMON_CLK_MAX_GEN=y
CONFIG_COMMON_CLK_MAX77686=m
+CONFIG_COMMON_CLK_MAX77802=m
CONFIG_COMMON_CLK_SI5351=m
CONFIG_COMMON_CLK_S2MPS11=m
CONFIG_CLK_TWL6040=m
CONFIG_COMMON_CLK_PALMAS=m
+# CONFIG_COMMON_CLK_PXA is not set
#
# Hardware Spinlock drivers
@@ -6787,6 +6860,7 @@ CONFIG_CLKEVT_I8253=y
CONFIG_I8253_LOCK=y
CONFIG_CLKBLD_I8253=y
CONFIG_DW_APB_TIMER=y
+# CONFIG_ATMEL_PIT is not set
# CONFIG_SH_TIMER_CMT is not set
# CONFIG_SH_TIMER_MTU2 is not set
# CONFIG_SH_TIMER_TMU is not set
@@ -6808,6 +6882,10 @@ CONFIG_STE_MODEM_RPROC=m
#
# Rpmsg drivers
#
+
+#
+# SOC (System On Chip) specific Drivers
+#
CONFIG_PM_DEVFREQ=y
#
@@ -6833,6 +6911,7 @@ CONFIG_EXTCON_MAX14577=m
CONFIG_EXTCON_MAX77693=m
CONFIG_EXTCON_MAX8997=m
CONFIG_EXTCON_PALMAS=m
+CONFIG_EXTCON_RT8973A=m
CONFIG_EXTCON_SM5502=m
CONFIG_MEMORY=y
CONFIG_IIO=m
@@ -6847,6 +6926,7 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
# Accelerometers
#
CONFIG_BMA180=m
+CONFIG_BMC150_ACCEL=m
CONFIG_HID_SENSOR_ACCEL_3D=m
CONFIG_IIO_ST_ACCEL_3AXIS=m
CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
@@ -6876,6 +6956,7 @@ CONFIG_MCP3422=m
CONFIG_MEN_Z188_ADC=m
CONFIG_NAU7802=m
CONFIG_TI_ADC081C=m
+CONFIG_TI_ADC128S052=m
CONFIG_TI_AM335X_ADC=m
CONFIG_TWL4030_MADC=m
CONFIG_TWL6030_GPADC=m
@@ -6937,6 +7018,7 @@ CONFIG_ADIS16130=m
CONFIG_ADIS16136=m
CONFIG_ADIS16260=m
CONFIG_ADXRS450=m
+CONFIG_BMG160=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_IIO_ST_GYRO_3AXIS=m
CONFIG_IIO_ST_GYRO_I2C_3AXIS=m
@@ -6962,6 +7044,7 @@ CONFIG_IIO_ADIS_LIB_BUFFER=y
# Light sensors
#
CONFIG_ADJD_S311=m
+CONFIG_AL3320A=m
CONFIG_APDS9300=m
CONFIG_CM32181=m
CONFIG_CM36651=m
@@ -7044,6 +7127,8 @@ CONFIG_PWM=y
CONFIG_PWM_SYSFS=y
CONFIG_PWM_LP3943=m
CONFIG_PWM_LPSS=m
+CONFIG_PWM_LPSS_PCI=m
+CONFIG_PWM_LPSS_PLATFORM=m
CONFIG_PWM_TWL=m
CONFIG_PWM_TWL_LED=m
CONFIG_IPACK_BUS=m
@@ -7162,6 +7247,7 @@ CONFIG_QUOTACTL=y
CONFIG_AUTOFS4_FS=m
CONFIG_FUSE_FS=y
CONFIG_CUSE=m
+CONFIG_OVERLAY_FS=m
#
# Caches
@@ -7317,6 +7403,7 @@ CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_V4_SECURITY_LABEL=y
# CONFIG_NFSD_FAULT_INJECTION is not set
+CONFIG_GRACE_PERIOD=m
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_NFS_ACL_SUPPORT=m
@@ -7488,6 +7575,7 @@ CONFIG_PANIC_ON_OOPS_VALUE=0
CONFIG_PANIC_TIMEOUT=0
CONFIG_SCHED_DEBUG=y
CONFIG_SCHEDSTATS=y
+# CONFIG_SCHED_STACK_END_CHECK is not set
CONFIG_TIMER_STATS=y
#
@@ -7592,7 +7680,7 @@ CONFIG_TEST_KSTRTOX=m
# CONFIG_TEST_RHASHTABLE is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_DMA_API_DEBUG is not set
-CONFIG_TEST_MODULE=m
+CONFIG_TEST_LKM=m
CONFIG_TEST_USER_COPY=m
CONFIG_TEST_BPF=m
CONFIG_TEST_FIRMWARE=m
@@ -7663,6 +7751,7 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
CONFIG_SECURITY_SMACK=y
+# CONFIG_SECURITY_SMACK_BRINGUP is not set
CONFIG_SECURITY_TOMOYO=y
CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
@@ -7676,8 +7765,8 @@ CONFIG_SECURITY_YAMA=y
CONFIG_SECURITY_YAMA_STACKED=y
CONFIG_INTEGRITY=y
CONFIG_INTEGRITY_SIGNATURE=y
-CONFIG_INTEGRITY_AUDIT=y
CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
+CONFIG_INTEGRITY_AUDIT=y
CONFIG_IMA=y
CONFIG_IMA_MEASURE_PCR_IDX=10
CONFIG_IMA_LSM_RULES=y
@@ -7693,10 +7782,6 @@ CONFIG_IMA_DEFAULT_HASH="sha1"
CONFIG_IMA_APPRAISE=y
CONFIG_IMA_TRUSTED_KEYRING=y
CONFIG_EVM=y
-
-#
-# EVM options
-#
CONFIG_EVM_ATTR_FSUUID=y
CONFIG_EVM_EXTRA_SMACK_XATTRS=y
# CONFIG_DEFAULT_SECURITY_SELINUX is not set
@@ -7738,6 +7823,7 @@ CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_PCRYPT=m
CONFIG_CRYPTO_WORKQUEUE=y
CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_MCRYPTD=m
CONFIG_CRYPTO_AUTHENC=m
CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_ABLK_HELPER=m
diff --git a/gnu/packages/linux-libre-x86_64.conf b/gnu/packages/linux-libre-x86_64.conf
index fcad0654b5..e7ecc6829e 100644
--- a/gnu/packages/linux-libre-x86_64.conf
+++ b/gnu/packages/linux-libre-x86_64.conf
@@ -1,11 +1,12 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 3.17.0-gnu Kernel Configuration
+# Linux/x86 3.18.0-gnu Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
+CONFIG_PERF_EVENTS_INTEL_UNCORE=y
CONFIG_OUTPUT_FORMAT="elf64-x86-64"
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
CONFIG_LOCKDEP_SUPPORT=y
@@ -132,6 +133,7 @@ CONFIG_TASK_IO_ACCOUNTING=y
#
CONFIG_TREE_RCU=y
# CONFIG_PREEMPT_RCU is not set
+# CONFIG_TASKS_RCU is not set
CONFIG_RCU_STALL_COMMON=y
CONFIG_CONTEXT_TRACKING=y
CONFIG_RCU_USER_QS=y
@@ -152,8 +154,6 @@ CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_SUPPORTS_INT128=y
-CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y
-CONFIG_ARCH_USES_NUMA_PROT_NONE=y
CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
CONFIG_NUMA_BALANCING=y
CONFIG_CGROUPS=y
@@ -200,6 +200,7 @@ CONFIG_ANON_INODES=y
CONFIG_HAVE_UID16=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_HAVE_PCSPKR_PLATFORM=y
+CONFIG_BPF=y
CONFIG_EXPERT=y
CONFIG_UID16=y
CONFIG_SGETMASK_SYSCALL=y
@@ -217,8 +218,10 @@ CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
+CONFIG_BPF_SYSCALL=y
CONFIG_SHMEM=y
CONFIG_AIO=y
+CONFIG_ADVISE_SYSCALLS=y
CONFIG_PCI_QUIRKS=y
# CONFIG_EMBEDDED is not set
CONFIG_HAVE_PERF_EVENTS=y
@@ -309,6 +312,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_MODULE_SIG is not set
+# CONFIG_MODULE_COMPRESS is not set
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_BLK_DEV_BSG=y
@@ -381,6 +385,7 @@ CONFIG_FREEZER=y
#
CONFIG_ZONE_DMA=y
CONFIG_SMP=y
+CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_X2APIC=y
CONFIG_X86_MPPARSE=y
CONFIG_X86_EXTENDED_PLATFORM=y
@@ -389,6 +394,8 @@ CONFIG_X86_NUMACHIP=y
# CONFIG_X86_UV is not set
# CONFIG_X86_GOLDFISH is not set
CONFIG_X86_INTEL_LPSS=y
+CONFIG_IOSF_MBI=m
+CONFIG_IOSF_MBI_DEBUG=y
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_SCHED_OMIT_FRAME_POINTER=y
CONFIG_HYPERVISOR_GUEST=y
@@ -496,6 +503,7 @@ CONFIG_MEMORY_HOTREMOVE=y
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_MEMORY_BALLOON=y
CONFIG_BALLOON_COMPACTION=y
CONFIG_COMPACTION=y
CONFIG_MIGRATION=y
@@ -782,7 +790,6 @@ CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_KEYS_COMPAT=y
CONFIG_X86_DEV_DMA_OPS=y
-CONFIG_IOSF_MBI=m
CONFIG_PMC_ATOM=y
CONFIG_NET=y
CONFIG_COMPAT_NETLINK_MESSAGES=y
@@ -827,6 +834,8 @@ CONFIG_IP_PIMSM_V2=y
CONFIG_SYN_COOKIES=y
CONFIG_NET_IPVTI=m
CONFIG_NET_UDP_TUNNEL=m
+CONFIG_NET_FOU=m
+CONFIG_GENEVE=m
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
@@ -852,6 +861,7 @@ CONFIG_TCP_CONG_LP=m
CONFIG_TCP_CONG_VENO=m
CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_TCP_CONG_DCTCP=m
CONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="cubic"
@@ -888,7 +898,7 @@ CONFIG_NET_PTP_CLASSIFY=y
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
CONFIG_NETFILTER_ADVANCED=y
-CONFIG_BRIDGE_NETFILTER=y
+CONFIG_BRIDGE_NETFILTER=m
#
# Core Netfilter Configuration
@@ -947,6 +957,7 @@ CONFIG_NFT_HASH=m
CONFIG_NFT_COUNTER=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
+CONFIG_NFT_MASQ=m
CONFIG_NFT_NAT=m
CONFIG_NFT_QUEUE=m
CONFIG_NFT_REJECT=m
@@ -1050,6 +1061,7 @@ CONFIG_IP_SET_HASH_IPMARK=m
CONFIG_IP_SET_HASH_IPPORT=m
CONFIG_IP_SET_HASH_IPPORTIP=m
CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_MAC=m
CONFIG_IP_SET_HASH_NETPORTNET=m
CONFIG_IP_SET_HASH_NET=m
CONFIG_IP_SET_HASH_NETNET=m
@@ -1078,6 +1090,7 @@ CONFIG_IP_VS_RR=m
CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_FO=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
@@ -1106,10 +1119,13 @@ CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_NF_TABLES_IPV4=m
CONFIG_NFT_CHAIN_ROUTE_IPV4=m
-CONFIG_NFT_CHAIN_NAT_IPV4=m
+CONFIG_NF_REJECT_IPV4=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NF_TABLES_ARP=m
CONFIG_NF_NAT_IPV4=m
+CONFIG_NFT_CHAIN_NAT_IPV4=m
+CONFIG_NF_NAT_MASQUERADE_IPV4=m
+CONFIG_NFT_MASQ_IPV4=m
CONFIG_NF_NAT_SNMP_BASIC=m
CONFIG_NF_NAT_PROTO_GRE=m
CONFIG_NF_NAT_PPTP=m
@@ -1143,10 +1159,13 @@ CONFIG_NF_DEFRAG_IPV6=m
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_NF_TABLES_IPV6=m
CONFIG_NFT_CHAIN_ROUTE_IPV6=m
-CONFIG_NFT_CHAIN_NAT_IPV6=m
+CONFIG_NF_REJECT_IPV6=m
CONFIG_NFT_REJECT_IPV6=m
CONFIG_NF_LOG_IPV6=m
CONFIG_NF_NAT_IPV6=m
+CONFIG_NFT_CHAIN_NAT_IPV6=m
+CONFIG_NF_NAT_MASQUERADE_IPV6=m
+CONFIG_NFT_MASQ_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
@@ -1246,6 +1265,7 @@ CONFIG_BRIDGE_IGMP_SNOOPING=y
CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_HAVE_NET_DSA=y
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_TAG_BRCM=y
CONFIG_NET_DSA_TAG_DSA=y
CONFIG_NET_DSA_TAG_EDSA=y
CONFIG_NET_DSA_TAG_TRAILER=y
@@ -1349,6 +1369,7 @@ CONFIG_BATMAN_ADV_MCAST=y
CONFIG_OPENVSWITCH=m
CONFIG_OPENVSWITCH_GRE=y
CONFIG_OPENVSWITCH_VXLAN=y
+CONFIG_OPENVSWITCH_GENEVE=y
CONFIG_VSOCKETS=m
CONFIG_VMWARE_VMCI_VSOCKETS=m
CONFIG_NETLINK_MMAP=y
@@ -1418,6 +1439,7 @@ CONFIG_CAN_PLX_PCI=m
CONFIG_CAN_C_CAN=m
CONFIG_CAN_C_CAN_PLATFORM=m
CONFIG_CAN_C_CAN_PCI=m
+CONFIG_CAN_M_CAN=m
CONFIG_CAN_CC770=m
CONFIG_CAN_CC770_ISA=m
CONFIG_CAN_CC770_PLATFORM=m
@@ -1628,6 +1650,7 @@ CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE=""
CONFIG_FW_LOADER_USER_HELPER=y
CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y
+CONFIG_ALLOW_DEV_COREDUMP=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
CONFIG_SYS_HYPERVISOR=y
@@ -1754,6 +1777,7 @@ CONFIG_MTD_NAND_DENALI_PCI=m
CONFIG_MTD_NAND_DENALI_DT=m
CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018
CONFIG_MTD_NAND_GPIO=m
+# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set
CONFIG_MTD_NAND_IDS=m
CONFIG_MTD_NAND_RICOH=m
CONFIG_MTD_NAND_DISKONCHIP=m
@@ -1776,6 +1800,7 @@ CONFIG_MTD_ONENAND_2X_PROGRAM=y
CONFIG_MTD_LPDDR=m
CONFIG_MTD_QINFO_PROBE=m
CONFIG_MTD_SPI_NOR=m
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
CONFIG_MTD_UBI=m
CONFIG_MTD_UBI_WL_THRESHOLD=4096
CONFIG_MTD_UBI_BEB_LIMIT=20
@@ -1947,6 +1972,7 @@ CONFIG_INTEL_MIC_CARD=m
CONFIG_GENWQE=m
CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0
CONFIG_ECHO=m
+# CONFIG_CXL_BASE is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
@@ -1958,6 +1984,7 @@ CONFIG_RAID_ATTRS=m
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_NETLINK=y
+# CONFIG_SCSI_MQ_DEFAULT is not set
CONFIG_SCSI_PROC_FS=y
#
@@ -2040,6 +2067,7 @@ CONFIG_SCSI_HPTIOP=m
CONFIG_SCSI_BUSLOGIC=m
CONFIG_SCSI_FLASHPOINT=y
CONFIG_VMWARE_PVSCSI=m
+CONFIG_XEN_SCSI_FRONTEND=m
CONFIG_HYPERV_STORAGE=m
CONFIG_LIBFC=m
CONFIG_LIBFCOE=m
@@ -2233,6 +2261,7 @@ CONFIG_TARGET_CORE=m
CONFIG_TCM_IBLOCK=m
CONFIG_TCM_FILEIO=m
CONFIG_TCM_PSCSI=m
+CONFIG_TCM_USER=m
CONFIG_LOOPBACK_TARGET=m
CONFIG_TCM_FC=m
CONFIG_ISCSI_TARGET=m
@@ -2359,6 +2388,8 @@ CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y
CONFIG_NET_DSA_MV88E6131=m
CONFIG_NET_DSA_MV88E6123_61_65=m
+CONFIG_NET_DSA_MV88E6171=m
+CONFIG_NET_DSA_BCM_SF2=m
CONFIG_ETHERNET=y
CONFIG_MDIO=m
CONFIG_NET_VENDOR_3COM=y
@@ -2368,6 +2399,8 @@ CONFIG_VORTEX=m
CONFIG_TYPHOON=m
CONFIG_NET_VENDOR_ADAPTEC=y
CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NET_VENDOR_AGERE=y
+CONFIG_ET131X=m
CONFIG_NET_VENDOR_ALTEON=y
CONFIG_ACENIC=m
# CONFIG_ACENIC_OMIT_TIGON_I is not set
@@ -2453,6 +2486,8 @@ CONFIG_I40E=m
CONFIG_I40E_VXLAN=y
CONFIG_I40E_DCB=y
CONFIG_I40EVF=m
+CONFIG_FM10K=m
+CONFIG_FM10K_VXLAN=y
CONFIG_NET_VENDOR_I825XX=y
CONFIG_IP1000=m
CONFIG_JME=m
@@ -2505,6 +2540,7 @@ CONFIG_QLCNIC_VXLAN=y
CONFIG_QLCNIC_HWMON=y
CONFIG_QLGE=m
CONFIG_NETXEN_NIC=m
+CONFIG_NET_VENDOR_QUALCOMM=y
CONFIG_NET_VENDOR_REALTEK=y
CONFIG_ATP=m
CONFIG_8139CP=m
@@ -2593,6 +2629,7 @@ CONFIG_MICREL_PHY=m
CONFIG_FIXED_PHY=y
CONFIG_MDIO_BITBANG=m
CONFIG_MDIO_GPIO=m
+CONFIG_MDIO_BCM_UNIMAC=m
CONFIG_MICREL_KS8995MA=m
CONFIG_PLIP=m
CONFIG_PPP=y
@@ -2689,8 +2726,10 @@ CONFIG_ATH9K_PCI=y
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_DEBUGFS=y
CONFIG_ATH9K_STATION_STATISTICS=y
+# CONFIG_ATH9K_DYNACK is not set
CONFIG_ATH9K_WOW=y
CONFIG_ATH9K_RFKILL=y
+CONFIG_ATH9K_CHANNEL_CONTEXT=y
CONFIG_ATH9K_HTC=m
CONFIG_ATH9K_HTC_DEBUGFS=y
CONFIG_CARL9170=m
@@ -2777,6 +2816,7 @@ CONFIG_IWLDVM=m
CONFIG_IWLMVM=m
CONFIG_IWLWIFI_OPMODE_MODULAR=y
# CONFIG_IWLWIFI_BCAST_FILTERING is not set
+CONFIG_IWLWIFI_UAPSD=y
#
# Debugging Options
@@ -2851,6 +2891,8 @@ CONFIG_RTL8192DE=m
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
CONFIG_RTL8188EE=m
+CONFIG_RTL8192EE=m
+CONFIG_RTL8821AE=m
CONFIG_RTL8192CU=m
CONFIG_RTLWIFI=m
CONFIG_RTLWIFI_PCI=m
@@ -3244,6 +3286,7 @@ CONFIG_INPUT_AD714X_SPI=m
CONFIG_INPUT_ARIZONA_HAPTICS=m
CONFIG_INPUT_BMA150=m
CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_MAX77693_HAPTIC=m
CONFIG_INPUT_MAX8925_ONKEY=m
CONFIG_INPUT_MAX8997_HAPTIC=m
CONFIG_INPUT_MC13783_PWRBUTTON=m
@@ -3266,6 +3309,7 @@ CONFIG_INPUT_TWL4030_PWRBUTTON=m
CONFIG_INPUT_TWL4030_VIBRA=m
CONFIG_INPUT_TWL6040_VIBRA=m
CONFIG_INPUT_UINPUT=y
+CONFIG_INPUT_PALMAS_PWRBUTTON=m
CONFIG_INPUT_PCF50633_PMU=m
CONFIG_INPUT_PCF8574=m
CONFIG_INPUT_PWM_BEEPER=m
@@ -3283,6 +3327,8 @@ CONFIG_INPUT_CMA3000_I2C=m
CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
CONFIG_INPUT_SOC_BUTTON_ARRAY=m
+CONFIG_INPUT_DRV260X_HAPTICS=m
+CONFIG_INPUT_DRV2667_HAPTICS=m
#
# Hardware I/O ports
@@ -3356,6 +3402,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
CONFIG_SERIAL_8250_RSA=y
CONFIG_SERIAL_8250_DW=m
+CONFIG_SERIAL_8250_FINTEK=m
#
# Non-8250 serial port support
@@ -3436,6 +3483,8 @@ CONFIG_TCG_ST33_I2C=m
CONFIG_TCG_XEN=m
CONFIG_TELCLOCK=m
CONFIG_DEVPORT=y
+CONFIG_XILLYBUS=m
+CONFIG_XILLYBUS_PCIE=m
#
# I2C support
@@ -3614,6 +3663,7 @@ CONFIG_GPIO_MAX730X=m
# Memory mapped GPIO drivers:
#
CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_IT8761E=m
CONFIG_GPIO_F7188X=m
CONFIG_GPIO_SCH311X=m
@@ -3656,6 +3706,7 @@ CONFIG_GPIO_RDC321X=m
# SPI GPIO expanders:
#
CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MCP23S08=m
CONFIG_GPIO_MC33880=m
#
@@ -3827,6 +3878,7 @@ CONFIG_SENSORS_MAX6650=m
CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_HTU21=m
CONFIG_SENSORS_MCP3021=m
+CONFIG_SENSORS_MENF21BMC_HWMON=m
CONFIG_SENSORS_ADCXX=m
CONFIG_SENSORS_LM63=m
CONFIG_SENSORS_LM70=m
@@ -3919,12 +3971,14 @@ CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
CONFIG_THERMAL_GOV_STEP_WISE=y
+CONFIG_THERMAL_GOV_BANG_BANG=y
CONFIG_THERMAL_GOV_USER_SPACE=y
CONFIG_THERMAL_EMULATION=y
CONFIG_INTEL_POWERCLAMP=m
CONFIG_X86_PKG_TEMP_THERMAL=m
-CONFIG_ACPI_INT3403_THERMAL=m
CONFIG_INTEL_SOC_DTS_THERMAL=m
+CONFIG_INT340X_THERMAL=m
+CONFIG_ACPI_THERMAL_REL=m
#
# Texas Instruments thermal drivers
@@ -3939,10 +3993,13 @@ CONFIG_WATCHDOG_CORE=y
CONFIG_SOFT_WATCHDOG=m
CONFIG_DA9052_WATCHDOG=m
CONFIG_DA9055_WATCHDOG=m
+CONFIG_DA9063_WATCHDOG=m
+CONFIG_MENF21BMC_WATCHDOG=m
CONFIG_WM831X_WATCHDOG=m
CONFIG_WM8350_WATCHDOG=m
CONFIG_XILINX_WATCHDOG=m
CONFIG_DW_WATCHDOG=m
+CONFIG_RN5T618_WATCHDOG=m
CONFIG_TWL4030_WATCHDOG=m
CONFIG_RETU_WATCHDOG=m
CONFIG_ACQUIRE_WDT=m
@@ -4062,6 +4119,7 @@ CONFIG_MFD_MAX8907=m
CONFIG_MFD_MAX8925=y
CONFIG_MFD_MAX8997=y
CONFIG_MFD_MAX8998=y
+CONFIG_MFD_MENF21BMC=m
CONFIG_EZX_PCAP=y
CONFIG_MFD_VIPERBOARD=m
CONFIG_MFD_RETU=m
@@ -4073,6 +4131,7 @@ CONFIG_MFD_RDC321X=m
CONFIG_MFD_RTSX_PCI=m
CONFIG_MFD_RTSX_USB=m
CONFIG_MFD_RC5T583=y
+CONFIG_MFD_RN5T618=m
CONFIG_MFD_SEC_CORE=y
CONFIG_MFD_SI476X_CORE=m
CONFIG_MFD_SM501=m
@@ -4143,6 +4202,7 @@ CONFIG_REGULATOR_DA9210=m
CONFIG_REGULATOR_DA9211=m
CONFIG_REGULATOR_FAN53555=m
CONFIG_REGULATOR_GPIO=m
+CONFIG_REGULATOR_ISL9305=m
CONFIG_REGULATOR_ISL6271A=m
CONFIG_REGULATOR_LP3971=m
CONFIG_REGULATOR_LP3972=m
@@ -4162,6 +4222,7 @@ CONFIG_REGULATOR_MAX8997=m
CONFIG_REGULATOR_MAX8998=m
CONFIG_REGULATOR_MAX77686=m
CONFIG_REGULATOR_MAX77693=m
+CONFIG_REGULATOR_MAX77802=m
CONFIG_REGULATOR_MC13XXX_CORE=m
CONFIG_REGULATOR_MC13783=m
CONFIG_REGULATOR_MC13892=m
@@ -4169,7 +4230,9 @@ CONFIG_REGULATOR_PALMAS=m
CONFIG_REGULATOR_PCAP=m
CONFIG_REGULATOR_PCF50633=m
CONFIG_REGULATOR_PFUZE100=m
+CONFIG_REGULATOR_PWM=m
CONFIG_REGULATOR_RC5T583=m
+CONFIG_REGULATOR_RN5T618=m
CONFIG_REGULATOR_S2MPA01=m
CONFIG_REGULATOR_S2MPS11=m
CONFIG_REGULATOR_S5M8767=m
@@ -4245,6 +4308,7 @@ CONFIG_IR_XMP_DECODER=m
CONFIG_RC_DEVICES=y
CONFIG_RC_ATI_REMOTE=m
CONFIG_IR_ENE=m
+CONFIG_IR_HIX5HD2=m
CONFIG_IR_IMON=m
CONFIG_IR_MCEUSB=m
CONFIG_IR_ITE_CIR=m
@@ -4404,11 +4468,13 @@ CONFIG_DVB_USB_GL861=m
CONFIG_DVB_USB_LME2510=m
CONFIG_DVB_USB_MXL111SF=m
CONFIG_DVB_USB_RTL28XXU=m
+CONFIG_DVB_USB_DVBSKY=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
CONFIG_SMS_USB_DRV=m
CONFIG_DVB_B2C2_FLEXCOP_USB=m
# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set
+CONFIG_DVB_AS102=m
#
# Webcam, TV (analog/digital) USB devices
@@ -4422,8 +4488,9 @@ CONFIG_VIDEO_EM28XX_RC=m
#
# Software defined radio USB devices
#
-CONFIG_USB_MSI2500=m
CONFIG_USB_AIRSPY=m
+CONFIG_USB_HACKRF=m
+CONFIG_USB_MSI2500=m
CONFIG_MEDIA_PCI_SUPPORT=y
#
@@ -4449,6 +4516,7 @@ CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_HEXIUM_ORION=m
CONFIG_VIDEO_MXB=m
CONFIG_VIDEO_SOLO6X10=m
+CONFIG_VIDEO_TW68=m
#
# Media capture/analog/hybrid TV support
@@ -4472,11 +4540,13 @@ CONFIG_VIDEO_SAA7134=m
CONFIG_VIDEO_SAA7134_ALSA=m
CONFIG_VIDEO_SAA7134_RC=y
CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_SAA7134_GO7007=m
CONFIG_VIDEO_SAA7164=m
#
# Media digital TV PCI Adapters
#
+CONFIG_DVB_AV7110_IR=y
CONFIG_DVB_AV7110=m
CONFIG_DVB_AV7110_OSD=y
CONFIG_DVB_BUDGET_CORE=m
@@ -4489,6 +4559,7 @@ CONFIG_DVB_B2C2_FLEXCOP_PCI=m
CONFIG_DVB_PLUTO2=m
CONFIG_DVB_DM1105=m
CONFIG_DVB_PT1=m
+CONFIG_DVB_PT3=m
CONFIG_MANTIS_CORE=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_HOPPER=m
@@ -4502,9 +4573,8 @@ CONFIG_SOC_CAMERA_PLATFORM=m
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
CONFIG_VIDEO_SH_VEU=m
-CONFIG_VIDEO_RENESAS_VSP1=m
CONFIG_V4L_TEST_DRIVERS=y
-CONFIG_VIDEO_VIVI=m
+CONFIG_VIDEO_VIVID=m
CONFIG_VIDEO_MEM2MEM_TESTDEV=m
#
@@ -4704,6 +4774,8 @@ CONFIG_MEDIA_TUNER_TUA9001=m
CONFIG_MEDIA_TUNER_SI2157=m
CONFIG_MEDIA_TUNER_IT913X=m
CONFIG_MEDIA_TUNER_R820T=m
+CONFIG_MEDIA_TUNER_MXL301RF=m
+CONFIG_MEDIA_TUNER_QM1D1C0042=m
#
# Multistandard (satellite) frontends
@@ -4777,6 +4849,7 @@ CONFIG_DVB_RTL2830=m
CONFIG_DVB_RTL2832=m
CONFIG_DVB_RTL2832_SDR=m
CONFIG_DVB_SI2168=m
+CONFIG_DVB_AS102_FE=m
#
# DVB-C (cable) frontends
@@ -4808,6 +4881,7 @@ CONFIG_DVB_S5H1411=m
CONFIG_DVB_S921=m
CONFIG_DVB_DIB8000=m
CONFIG_DVB_MB86A20S=m
+CONFIG_DVB_TC90522=m
#
# Digital terrestrial only tuners/PLL
@@ -4855,7 +4929,6 @@ CONFIG_VGA_SWITCHEROO=y
# Direct Rendering Manager
#
CONFIG_DRM=m
-CONFIG_DRM_USB=m
CONFIG_DRM_KMS_HELPER=m
CONFIG_DRM_KMS_FB_HELPER=y
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
@@ -4895,13 +4968,14 @@ CONFIG_DRM_AST=m
# CONFIG_DRM_MGAG200 is not set
CONFIG_DRM_CIRRUS_QEMU=m
CONFIG_DRM_QXL=m
-CONFIG_DRM_BOCHS=m
+# CONFIG_DRM_BOCHS is not set
#
# Frame buffer Devices
#
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_CMDLINE=y
CONFIG_FB_DDC=m
CONFIG_FB_BOOT_VESA_SUPPORT=y
CONFIG_FB_CFB_FILLRECT=y
@@ -5068,7 +5142,7 @@ CONFIG_LOGO=y
CONFIG_LOGO_LIBRE_CLUT224=y
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE=y
-CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
@@ -5276,6 +5350,7 @@ CONFIG_SND_SOC_AK4554=m
CONFIG_SND_SOC_AK4642=m
CONFIG_SND_SOC_AK5386=m
CONFIG_SND_SOC_ALC5623=m
+CONFIG_SND_SOC_CS35L32=m
CONFIG_SND_SOC_CS42L52=m
CONFIG_SND_SOC_CS42L56=m
CONFIG_SND_SOC_CS42L73=m
@@ -5285,6 +5360,7 @@ CONFIG_SND_SOC_CS4271=m
CONFIG_SND_SOC_CS42XX8=m
CONFIG_SND_SOC_CS42XX8_I2C=m
CONFIG_SND_SOC_HDMI_CODEC=m
+CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_MAX98090=m
CONFIG_SND_SOC_PCM1681=m
CONFIG_SND_SOC_PCM1792A=m
@@ -5300,6 +5376,10 @@ CONFIG_SND_SOC_SIGMADSP=m
CONFIG_SND_SOC_SIGMADSP_I2C=m
CONFIG_SND_SOC_SIRF_AUDIO_CODEC=m
CONFIG_SND_SOC_SPDIF=m
+CONFIG_SND_SOC_SSM2602=m
+CONFIG_SND_SOC_SSM2602_SPI=m
+CONFIG_SND_SOC_SSM2602_I2C=m
+CONFIG_SND_SOC_SSM4567=m
CONFIG_SND_SOC_STA350=m
CONFIG_SND_SOC_TAS2552=m
CONFIG_SND_SOC_TAS5086=m
@@ -5320,6 +5400,7 @@ CONFIG_SND_SOC_WM8776=m
CONFIG_SND_SOC_WM8804=m
CONFIG_SND_SOC_WM8903=m
CONFIG_SND_SOC_WM8962=m
+CONFIG_SND_SOC_WM8978=m
CONFIG_SND_SOC_TPA6130A2=m
CONFIG_SND_SIMPLE_CARD=m
# CONFIG_SOUND_PRIME is not set
@@ -5382,6 +5463,7 @@ CONFIG_HID_NTRIG=m
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PENMOUNT=m
CONFIG_HID_PETALYNX=m
CONFIG_HID_PICOLCD=m
CONFIG_HID_PICOLCD_FB=y
@@ -5460,6 +5542,7 @@ CONFIG_USB_WUSB_CBAF=m
#
CONFIG_USB_C67X00_HCD=m
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_PCI=y
CONFIG_USB_XHCI_PLATFORM=m
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
@@ -5482,13 +5565,11 @@ CONFIG_USB_SL811_HCD=m
CONFIG_USB_SL811_HCD_ISO=y
CONFIG_USB_SL811_CS=m
CONFIG_USB_R8A66597_HCD=m
-CONFIG_USB_RENESAS_USBHS_HCD=m
CONFIG_USB_WHCI_HCD=m
CONFIG_USB_HWA_HCD=m
CONFIG_USB_HCD_BCMA=m
CONFIG_USB_HCD_SSB=m
# CONFIG_USB_HCD_TEST_MODE is not set
-CONFIG_USB_RENESAS_USBHS=m
#
# USB Device Class drivers
@@ -5638,7 +5719,6 @@ CONFIG_USB_SERIAL_OMNINET=m
CONFIG_USB_SERIAL_OPTICON=m
CONFIG_USB_SERIAL_XSENS_MT=m
CONFIG_USB_SERIAL_WISHBONE=m
-CONFIG_USB_SERIAL_ZTE=m
CONFIG_USB_SERIAL_SSU100=m
CONFIG_USB_SERIAL_QT2=m
CONFIG_USB_SERIAL_DEBUG=m
@@ -5682,9 +5762,6 @@ CONFIG_USB_XUSBATM=m
#
CONFIG_USB_PHY=y
CONFIG_NOP_USB_XCEIV=m
-CONFIG_SAMSUNG_USBPHY=m
-CONFIG_SAMSUNG_USB2PHY=m
-CONFIG_SAMSUNG_USB3PHY=m
CONFIG_USB_GPIO_VBUS=m
CONFIG_TAHVO_USB=m
CONFIG_TAHVO_USB_HOST_BY_DEFAULT=y
@@ -5702,7 +5779,6 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
CONFIG_USB_FOTG210_UDC=m
CONFIG_USB_GR_UDC=m
CONFIG_USB_R8A66597=m
-CONFIG_USB_RENESAS_USBHS_UDC=m
CONFIG_USB_PXA27X=m
CONFIG_USB_MV_UDC=m
CONFIG_USB_MV_U3D=m
@@ -5729,6 +5805,8 @@ CONFIG_USB_F_SUBSET=m
CONFIG_USB_F_RNDIS=m
CONFIG_USB_F_MASS_STORAGE=m
CONFIG_USB_F_FS=m
+CONFIG_USB_F_UAC1=m
+CONFIG_USB_F_UVC=m
CONFIG_USB_CONFIGFS=m
CONFIG_USB_CONFIGFS_SERIAL=y
CONFIG_USB_CONFIGFS_ACM=y
@@ -5769,6 +5847,7 @@ CONFIG_USB_G_DBGP=m
# CONFIG_USB_G_DBGP_PRINTK is not set
CONFIG_USB_G_DBGP_SERIAL=y
CONFIG_USB_G_WEBCAM=m
+CONFIG_USB_LED_TRIG=y
CONFIG_UWB=m
CONFIG_UWB_HWA=m
CONFIG_UWB_WHCI=m
@@ -5864,6 +5943,7 @@ CONFIG_LEDS_MC13783=m
CONFIG_LEDS_TCA6507=m
CONFIG_LEDS_MAX8997=m
CONFIG_LEDS_LM355x=m
+CONFIG_LEDS_MENF21BMC=m
#
# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
@@ -5968,6 +6048,7 @@ CONFIG_RTC_DRV_MAX8925=m
CONFIG_RTC_DRV_MAX8998=m
CONFIG_RTC_DRV_MAX8997=m
CONFIG_RTC_DRV_MAX77686=m
+CONFIG_RTC_DRV_MAX77802=m
CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_ISL1208=m
CONFIG_RTC_DRV_ISL12022=m
@@ -6024,7 +6105,6 @@ CONFIG_RTC_DRV_DS2404=m
CONFIG_RTC_DRV_DA9052=m
CONFIG_RTC_DRV_DA9055=m
CONFIG_RTC_DRV_DA9063=m
-CONFIG_RTC_DRV_EFI=m
CONFIG_RTC_DRV_STK17TA8=m
CONFIG_RTC_DRV_M48T86=m
CONFIG_RTC_DRV_M48T35=m
@@ -6126,13 +6206,13 @@ CONFIG_XEN_GRANT_DEV_ALLOC=m
CONFIG_SWIOTLB_XEN=y
CONFIG_XEN_TMEM=m
CONFIG_XEN_PCIDEV_BACKEND=m
+CONFIG_XEN_SCSI_BACKEND=m
CONFIG_XEN_PRIVCMD=m
CONFIG_XEN_ACPI_PROCESSOR=y
CONFIG_XEN_MCE_LOG=y
CONFIG_XEN_HAVE_PVMMU=y
CONFIG_XEN_EFI=y
CONFIG_STAGING=y
-CONFIG_ET131X=m
CONFIG_SLICOSS=m
CONFIG_PRISM2_USB=m
CONFIG_COMEDI=m
@@ -6140,12 +6220,10 @@ CONFIG_COMEDI=m
CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048
CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB=20480
CONFIG_COMEDI_MISC_DRIVERS=y
-CONFIG_COMEDI_KCOMEDILIB=m
CONFIG_COMEDI_BOND=m
CONFIG_COMEDI_TEST=m
CONFIG_COMEDI_PARPORT=m
CONFIG_COMEDI_SERIAL2002=m
-CONFIG_COMEDI_SKEL=m
CONFIG_COMEDI_ISA_DRIVERS=y
CONFIG_COMEDI_PCL711=m
CONFIG_COMEDI_PCL724=m
@@ -6259,12 +6337,13 @@ CONFIG_COMEDI_NI_MIO_CS=m
CONFIG_COMEDI_QUATECH_DAQP_CS=m
CONFIG_COMEDI_USB_DRIVERS=y
CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_NI_USB6501=m
CONFIG_COMEDI_USBDUX=m
CONFIG_COMEDI_USBDUXFAST=m
CONFIG_COMEDI_USBDUXSIGMA=m
CONFIG_COMEDI_VMK80XX=m
CONFIG_COMEDI_8255=m
-CONFIG_COMEDI_FC=m
+CONFIG_COMEDI_KCOMEDILIB=m
CONFIG_COMEDI_AMPLC_DIO200=m
CONFIG_COMEDI_AMPLC_PC236=m
CONFIG_COMEDI_DAS08=m
@@ -6284,13 +6363,10 @@ CONFIG_RTL8192E=m
CONFIG_R8712U=m
CONFIG_R8188EU=m
CONFIG_88EU_AP_MODE=y
-CONFIG_R8192EE=m
CONFIG_R8723AU=m
CONFIG_8723AU_AP_MODE=y
CONFIG_8723AU_BT_COEXIST=y
-CONFIG_R8821AE=m
CONFIG_RTS5208=m
-# CONFIG_RTS5208_DEBUG is not set
CONFIG_LINE6_USB=m
# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
CONFIG_VT6655=m
@@ -6340,13 +6416,8 @@ CONFIG_AD7746=m
#
# Direct Digital Synthesis
#
-CONFIG_AD5930=m
CONFIG_AD9832=m
CONFIG_AD9834=m
-CONFIG_AD9850=m
-CONFIG_AD9852=m
-CONFIG_AD9910=m
-CONFIG_AD9951=m
#
# Digital gyroscope sensors
@@ -6422,7 +6493,6 @@ CONFIG_SPEAKUP_SYNTH_DUMMY=m
CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
CONFIG_STAGING_MEDIA=y
-CONFIG_DVB_AS102=m
CONFIG_I2C_BCM2048=m
CONFIG_DVB_CXD2099=m
CONFIG_VIDEO_DT3155=m
@@ -6466,8 +6536,6 @@ CONFIG_LNET=m
CONFIG_LNET_MAX_PAYLOAD=1048576
CONFIG_LNET_SELFTEST=m
CONFIG_LNET_XPRT_IB=m
-CONFIG_XILLYBUS=m
-CONFIG_XILLYBUS_PCIE=m
CONFIG_DGNC=m
CONFIG_DGAP=m
CONFIG_GS_FPGABOOT=m
@@ -6540,6 +6608,7 @@ CONFIG_CHROMEOS_PSTORE=m
#
# SOC (System On Chip) specific Drivers
#
+CONFIG_SOC_TI=y
CONFIG_CLKDEV_LOOKUP=y
CONFIG_HAVE_CLK_PREPARE=y
CONFIG_COMMON_CLK=y
@@ -6548,11 +6617,14 @@ CONFIG_COMMON_CLK=y
# Common Clock Framework
#
CONFIG_COMMON_CLK_WM831X=m
+CONFIG_COMMON_CLK_MAX_GEN=y
CONFIG_COMMON_CLK_MAX77686=m
+CONFIG_COMMON_CLK_MAX77802=m
CONFIG_COMMON_CLK_SI5351=m
CONFIG_COMMON_CLK_S2MPS11=m
CONFIG_CLK_TWL6040=m
CONFIG_COMMON_CLK_PALMAS=m
+# CONFIG_COMMON_CLK_PXA is not set
#
# Hardware Spinlock drivers
@@ -6564,6 +6636,7 @@ CONFIG_COMMON_CLK_PALMAS=m
CONFIG_CLKEVT_I8253=y
CONFIG_I8253_LOCK=y
CONFIG_CLKBLD_I8253=y
+# CONFIG_ATMEL_PIT is not set
# CONFIG_SH_TIMER_CMT is not set
# CONFIG_SH_TIMER_MTU2 is not set
# CONFIG_SH_TIMER_TMU is not set
@@ -6589,6 +6662,10 @@ CONFIG_STE_MODEM_RPROC=m
#
# Rpmsg drivers
#
+
+#
+# SOC (System On Chip) specific Drivers
+#
CONFIG_PM_DEVFREQ=y
#
@@ -6614,6 +6691,7 @@ CONFIG_EXTCON_MAX14577=m
CONFIG_EXTCON_MAX77693=m
CONFIG_EXTCON_MAX8997=m
CONFIG_EXTCON_PALMAS=m
+CONFIG_EXTCON_RT8973A=m
CONFIG_EXTCON_SM5502=m
CONFIG_MEMORY=y
CONFIG_IIO=m
@@ -6628,6 +6706,7 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
# Accelerometers
#
CONFIG_BMA180=m
+CONFIG_BMC150_ACCEL=m
CONFIG_HID_SENSOR_ACCEL_3D=m
CONFIG_IIO_ST_ACCEL_3AXIS=m
CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
@@ -6657,6 +6736,7 @@ CONFIG_MCP3422=m
CONFIG_MEN_Z188_ADC=m
CONFIG_NAU7802=m
CONFIG_TI_ADC081C=m
+CONFIG_TI_ADC128S052=m
CONFIG_TI_AM335X_ADC=m
CONFIG_TWL4030_MADC=m
CONFIG_TWL6030_GPADC=m
@@ -6718,6 +6798,7 @@ CONFIG_ADIS16130=m
CONFIG_ADIS16136=m
CONFIG_ADIS16260=m
CONFIG_ADXRS450=m
+CONFIG_BMG160=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_IIO_ST_GYRO_3AXIS=m
CONFIG_IIO_ST_GYRO_I2C_3AXIS=m
@@ -6743,6 +6824,7 @@ CONFIG_IIO_ADIS_LIB_BUFFER=y
# Light sensors
#
CONFIG_ADJD_S311=m
+CONFIG_AL3320A=m
CONFIG_APDS9300=m
CONFIG_CM32181=m
CONFIG_CM36651=m
@@ -6825,6 +6907,8 @@ CONFIG_PWM=y
CONFIG_PWM_SYSFS=y
CONFIG_PWM_LP3943=m
CONFIG_PWM_LPSS=m
+CONFIG_PWM_LPSS_PCI=m
+CONFIG_PWM_LPSS_PLATFORM=m
CONFIG_PWM_TWL=m
CONFIG_PWM_TWL_LED=m
CONFIG_IPACK_BUS=m
@@ -6944,6 +7028,7 @@ CONFIG_QUOTACTL_COMPAT=y
CONFIG_AUTOFS4_FS=m
CONFIG_FUSE_FS=y
CONFIG_CUSE=m
+CONFIG_OVERLAY_FS=m
#
# Caches
@@ -7099,6 +7184,7 @@ CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFSD_V4_SECURITY_LABEL=y
# CONFIG_NFSD_FAULT_INJECTION is not set
+CONFIG_GRACE_PERIOD=m
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_NFS_ACL_SUPPORT=m
@@ -7269,6 +7355,7 @@ CONFIG_PANIC_ON_OOPS_VALUE=0
CONFIG_PANIC_TIMEOUT=0
CONFIG_SCHED_DEBUG=y
CONFIG_SCHEDSTATS=y
+# CONFIG_SCHED_STACK_END_CHECK is not set
CONFIG_TIMER_STATS=y
#
@@ -7374,7 +7461,7 @@ CONFIG_TEST_KSTRTOX=m
# CONFIG_TEST_RHASHTABLE is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_DMA_API_DEBUG is not set
-CONFIG_TEST_MODULE=m
+CONFIG_TEST_LKM=m
CONFIG_TEST_USER_COPY=m
CONFIG_TEST_BPF=m
CONFIG_TEST_FIRMWARE=m
@@ -7445,6 +7532,7 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
CONFIG_SECURITY_SMACK=y
+# CONFIG_SECURITY_SMACK_BRINGUP is not set
CONFIG_SECURITY_TOMOYO=y
CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
@@ -7458,8 +7546,8 @@ CONFIG_SECURITY_YAMA=y
CONFIG_SECURITY_YAMA_STACKED=y
CONFIG_INTEGRITY=y
CONFIG_INTEGRITY_SIGNATURE=y
-CONFIG_INTEGRITY_AUDIT=y
CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
+CONFIG_INTEGRITY_AUDIT=y
CONFIG_IMA=y
CONFIG_IMA_MEASURE_PCR_IDX=10
CONFIG_IMA_LSM_RULES=y
@@ -7475,10 +7563,6 @@ CONFIG_IMA_DEFAULT_HASH="sha1"
CONFIG_IMA_APPRAISE=y
CONFIG_IMA_TRUSTED_KEYRING=y
CONFIG_EVM=y
-
-#
-# EVM options
-#
CONFIG_EVM_ATTR_FSUUID=y
CONFIG_EVM_EXTRA_SMACK_XATTRS=y
# CONFIG_DEFAULT_SECURITY_SELINUX is not set
@@ -7520,6 +7604,7 @@ CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_PCRYPT=m
CONFIG_CRYPTO_WORKQUEUE=y
CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_MCRYPTD=m
CONFIG_CRYPTO_AUTHENC=m
CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_ABLK_HELPER=m
@@ -7572,6 +7657,7 @@ CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA1_SSSE3=m
CONFIG_CRYPTO_SHA256_SSSE3=m
CONFIG_CRYPTO_SHA512_SSSE3=m
+CONFIG_CRYPTO_SHA1_MB=m
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_TGR192=m
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 0d30aeea94..3f83711f32 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -192,7 +192,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM."
#f)))
(define-public linux-libre
- (let* ((version "3.17.3")
+ (let* ((version "3.18")
(build-phase
'(lambda* (#:key system inputs #:allow-other-keys #:rest args)
;; Apply the neat patch.
@@ -265,7 +265,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM."
(uri (linux-libre-urls version))
(sha256
(base32
- "1qyk70m7y7ak94idkqpgyinnnpqpwxvl39rwh8pqdvrcm7w5b0lq"))))
+ "1kv03bhls9rya4sg3qixyjirc79pn2g5bcwldcj7hs4apa77sd0g"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl)
("bc" ,bc)
@@ -1487,7 +1487,13 @@ mapper. Kernel components are part of Linux-libre.")
version ".tar.gz"))
(sha256
(base32
- "0qscyd44jmhs4k32ggp107hlym1pcyjzihiai48xs7xzib4wbndb"))))
+ "0qscyd44jmhs4k32ggp107hlym1pcyjzihiai48xs7xzib4wbndb"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Install the manual pages in the right place.
+ '(substitute* "Makefile"
+ (("INSTALL_MAN= .*")
+ "INSTALL_MAN= $(PREFIX)/share/man")))))
(build-system gnu-build-system)
(arguments
`(#:phases (alist-replace
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index f9d1c26518..0bacac47bf 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -31,13 +31,13 @@
(define-public gcl
(package
(name "gcl")
- (version "2.6.11")
+ (version "2.6.12")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/" name "/" name "-" version ".tar.gz"))
(sha256
- (base32 "177vz8z74mky5nrq6qlfvnzvb1prw8jmlv4cwfx8w7k3k818y1a4"))))
+ (base32 "1s4hs2qbjqmn9h88l4xvsifq5c3dlc5s74lyb61rdi5grhdlkf4f"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-build? #f ; The build system seems not to be thread safe.
@@ -63,7 +63,10 @@
(find-files "h" "\\.defs"))
(("SHELL=/bin/(ba)?sh")
(string-append "SHELL=" (which "bash")))))
- %standard-phases)))
+ ;; drop strip phase to make maxima build, see
+ ;; https://www.ma.utexas.edu/pipermail/maxima/2008/009769.html
+ (alist-delete 'strip
+ %standard-phases))))
(native-inputs
`(("m4" ,m4)
("readline" ,readline)
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
new file mode 100644
index 0000000000..5b70124655
--- /dev/null
+++ b/gnu/packages/llvm.scm
@@ -0,0 +1,107 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.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 GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages llvm)
+ #:use-module (guix packages)
+ #:use-module (guix licenses)
+ #:use-module (guix download)
+ #:use-module (guix utils)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system cmake)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages xml))
+
+(define-public llvm
+ (package
+ (name "llvm")
+ (version "3.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://llvm.org/releases/"
+ version "/llvm-" version ".src.tar.xz"))
+ (sha256
+ (base32
+ "00swb43mzlvda8306arlg2jw7g6k3acwfccgf1k4c2pgd3rrkq98"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("python" ,python-wrapper)
+ ("perl" ,perl)))
+ (arguments
+ `(#:phases (alist-cons-before
+ 'build 'link-lib-for-build-exec
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; This is a hacky fix that will allow binaries to run
+ ;; before being installed. -DCMAKE_SKIP_BUILD_RPATH=FALSE
+ ;; seems to not help. Nixpkgs does the same.
+ (let* ((out (assoc-ref outputs "out"))
+ (out-lib (string-append out "/lib"))
+ (build-lib (string-append (getcwd) "/lib")))
+ (mkdir-p out)
+ (symlink build-lib out-lib)))
+ (alist-cons-after
+ 'build 'cleanup-out
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Cleanup the symlink that was created previously. Let
+ ;; the install phase repopulate out.
+ (delete-file-recursively (assoc-ref outputs "out")))
+ %standard-phases))))
+ (home-page "http://www.llvm.org")
+ (synopsis "Optimizing compiler infrastructure")
+ (description
+ "LLVM is a compiler infrastructure designed for compile-time, link-time, runtime,
+and idle-time optimization of programs from arbitrary programming languages.
+It currently supports compilation of C and C++ programs, using front-ends
+derived from GCC 4.0.1. A new front-end for the C family of languages is in
+development. The compiler infrastructure includes mirror sets of programming
+tools as well as libraries with equivalent functionality.")
+ (license ncsa)))
+
+(define-public clang
+ (package
+ (name "clang")
+ (version (package-version llvm))
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://llvm.org/releases/"
+ version "/cfe-" version ".src.tar.xz"))
+ (sha256
+ (base32
+ "12yv3jwdjcbkrx7zjm8wh4jrvb59v8fdw4mnmz3zc1jb00p9k07w"))))
+ ;; Using cmake allows us to treat llvm as an external library. There
+ ;; doesn't seem to be any way to do this with clang's autotools-based
+ ;; build system.
+ (build-system cmake-build-system)
+ (native-inputs (package-native-inputs llvm))
+ (inputs
+ `(("libxml2" ,libxml2)
+ ,@(package-inputs llvm)))
+ (propagated-inputs
+ `(("llvm" ,llvm)))
+ (arguments `(#:configure-flags '("-DCLANG_INCLUDE_TESTS=True")))
+ (home-page "http://clang.llvm.org")
+ (synopsis "C language family frontend for LLVM")
+ (description
+ "Clang is a compiler front end for the C, C++, Objective-C and
+Objective-C++ programming languages. It uses LLVM as its back end. The Clang
+project includes the Clang front end, the Clang static analyzer, and several
+code analysis tools.")
+ (license ncsa)))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 46c24092e5..6051dabb29 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -2,6 +2,8 @@
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
+;;; Copyright © 2014 Sou Bunnbu <iyzsong@gmail.com>
+;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,14 +24,23 @@
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
+ #:use-module (gnu packages backup)
+ #:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages dejagnu)
#:use-module (gnu packages emacs)
+ #:use-module (gnu packages enchant)
#:use-module (gnu packages gdbm)
+ #:use-module (gnu packages ghostscript)
#:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gnutls)
+ #:use-module (gnu packages gsasl)
+ #:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
+ #:use-module (gnu packages libcanberra)
+ #:use-module (gnu packages libidn)
#:use-module (gnu packages linux)
#:use-module (gnu packages m4)
#:use-module (gnu packages databases)
@@ -46,8 +57,10 @@
#:use-module (gnu packages flex)
#:use-module (gnu packages gdb)
#:use-module (gnu packages samba)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages xorg)
#:use-module ((guix licenses)
- #:select (gpl2 gpl2+ gpl3+ lgpl2.1+ lgpl3+))
+ #:select (gpl2 gpl2+ gpl3+ lgpl2.1+ lgpl3+ bsd-style))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
@@ -365,4 +378,154 @@ attachments, create new maildirs, and so on.")
ing, and tagging large collections of email messages.")
(license gpl3+)))
+(define-public getmail
+ (package
+ (name "getmail")
+ (version "4.46.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://pyropus.ca/software/getmail/old-versions/"
+ name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "15rqmm25pq6ll8aaqh8h6pfdkpqs7y6yismb3h3w1bz8j292c8zl"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f ; no tests
+ #:python ,python-2))
+ (home-page "http://pyropus.ca/software/getmail/")
+ (synopsis "Mail retriever")
+ (description
+ "A flexible, extensible mail retrieval system with support for
+POP3, IMAP4, SSL variants of both, maildirs, mboxrd files, external MDAs,
+arbitrary message filtering, single-user and domain-mailboxes, and many other
+useful features.")
+
+ ;; License is specified in file '__init__.py'.
+ (license gpl2)))
+
+(define-public libetpan
+ (package
+ (name "libetpan")
+ (version "1.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/dinhviethoa/" name
+ "/archive/" version ".tar.gz"))
+ (sha256
+ (base32 "05qyqx2c1ppb1jnrs3m52i60f9xlxfxdmb9dnwg4vqjv8kwv2qkr"))))
+ (build-system gnu-build-system)
+ (native-inputs `(("autoconf" ,(autoconf-wrapper))
+ ("automake" ,automake)
+ ("libtool" ,libtool "bin")
+ ("pkg-config" ,pkg-config)))
+ (propagated-inputs
+ ;; 'libetpan-config --libs' returns '-lssl -lcrypto -lsasl2', so these
+ ;; libraries need to be propagated.
+ `(("cyrus-sasl" ,cyrus-sasl)
+ ("openssl" ,openssl)))
+ (inputs
+ `(("curl" ,curl)
+ ("expat" ,expat)))
+ (arguments
+ '(#:phases (alist-cons-before
+ 'configure 'autogen
+ (lambda _
+ (system* "./autogen.sh")) ;; Note: this fails because the
+ ;; generated configure script uses /bin/sh. It is
+ ;; replaced in the configure phase by the correct
+ ;; value. TODO: replace the configure phase by the
+ ;; autogen phase and have the SHELL variable be replaced
+ %standard-phases)
+ #:configure-flags
+ '("--disable-static" "--disable-db")))
+ (home-page "http://www.etpan.org/libetpan.html")
+ (synopsis "Portable middleware for email access")
+ (description
+ "The purpose of this mail library is to provide a portable, efficient
+framework for different kinds of mail access: IMAP, SMTP, POP and NNTP. It
+provides an API for C language. It's the low-level API used by MailCore and
+MailCore 2.")
+ (license (bsd-style "file://COPYING"))))
+
+(define-public claws-mail
+ (package
+ (name "claws-mail")
+ (version "3.11.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://downloads.sourceforge.net/project/claws-mail/"
+ "Claws Mail/" version "/" name "-" version ".tar.xz"))
+ (sha256
+ (base32 "0cyixz1jgfpi8abh9fbb8ylx9mcvw4jqj81cms666wpqr6v828yp"))))
+ (build-system gnu-build-system)
+ (native-inputs `(("pkg-config" ,pkg-config)))
+ (inputs `(("bogofilter" ,bogofilter)
+ ("curl" ,curl)
+ ("dbus-glib" ,dbus-glib)
+ ("dbus" ,dbus)
+ ("enchant" ,enchant)
+ ("expat" ,expat)
+ ("ghostscript" ,ghostscript)
+ ("hicolor-icon-theme" ,hicolor-icon-theme)
+ ("gnupg" ,gnupg)
+ ("gnutls" ,gnutls)
+ ("gpgme" ,gpgme)
+ ("gtk" ,gtk+-2)
+ ("libarchive" ,libarchive)
+ ("libcanberra" ,libcanberra)
+ ("libetpan" ,libetpan)
+ ("libnotify" ,libnotify)
+ ("libsm" ,libsm)
+ ("libxml2" ,libxml2)
+ ("perl" ,perl)
+ ("python-2" ,python-2)))
+ (arguments
+ '(#:configure-flags
+ '("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant")))
+ (synopsis "GTK-based Email client")
+ (description
+ "Claws-Mail is an email client (and news reader) based on GTK+. The
+appearance and interface are designed to be familiar to new users coming from
+other popular email clients, as well as experienced users. Almost all commands
+are accessible with the keyboard. Plus, Claws-Mail is extensible via addons
+which can add many functionalities to the base client.")
+ (home-page "http://www.claws-mail.org/")
+ (license gpl3+))) ; most files are actually public domain or x11
+
+(define-public msmtp
+ (package
+ (name "msmtp")
+ (version "1.4.32")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://downloads.sourceforge.net/project/msmtp/msmtp/" version
+ "/msmtp-" version ".tar.bz2"))
+ (sha256 (base32
+ "122z38pv4q03w3mbnhrhg4w85a51258sfdg2ips0b6cgwz3wbw1b"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libidn" ,libidn)
+ ("gnutls" ,gnutls)
+ ("zlib" ,zlib)
+ ("gsasl" ,gsasl)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://msmtp.sourceforge.net/")
+ (arguments
+ `(#:configure-flags (list "--with-libgsasl"
+ "--with-libidn"
+ "--with-ssl=gnutls")))
+ (synopsis
+ "Simple and easy to use SMTP client with decent sendmail compatibility")
+ (description
+ "msmtp is an SMTP client. In the default mode, it transmits a mail to
+an SMTP server (for example at a free mail provider) which takes care of further
+delivery.")
+ (license gpl3+)))
+
;;; mail.scm ends here
diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm
index 3d5d02ea64..028403ce74 100644
--- a/gnu/packages/man.scm
+++ b/gnu/packages/man.scm
@@ -151,7 +151,7 @@ Linux kernel and C library interfaces employed by user-space programs.")
(define-public help2man
(package
(name "help2man")
- (version "1.46.3")
+ (version "1.46.4")
(source
(origin
(method url-fetch)
@@ -159,7 +159,7 @@ Linux kernel and C library interfaces employed by user-space programs.")
version ".tar.xz"))
(sha256
(base32
- "0hi94a6ai96yw0v8xgjzpp5c6jr33ifmbn2mkp7wz7rgmwxxqsd6"))))
+ "0csn7jx7nhlrflalw1992p3l5afawlpdyjdff2q5bk5hadgz3rqs"))))
(build-system gnu-build-system)
(arguments `(;; There's no `check' target.
#:tests? #f))
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 1aa3757ebe..7296d48d83 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -953,6 +953,9 @@ point numbers")
(inputs `(("gfortran" ,gfortran-4.8)
("lapack-tar" ,(package-source lapack))))
(outputs '("out" "doc"))
+ ;; For the moment we drop support for MIPS at it fails to compile. See
+ ;; https://lists.gnu.org/archive/html/guix-devel/2014-11/msg00516.html
+ (supported-systems (delete "mips64el-linux" %supported-systems))
(arguments
`(#:parallel-build? #f
#:parallel-tests? #f
@@ -979,6 +982,12 @@ point numbers")
;; Disable parallel build as it gives errors: atlas_pthread.h is
;; needed to compile C files before it is generated.
"-Ss" "pmake" "make -j 1"
+ ;; Probe is failing for MIPS. We therefore define the system
+ ;; architecture explicitly by setting (-A) MACHINETYPE = 49
+ ;; 'MIPSR1xK' and (-V) ISA = 1 'none'.
+ ,,@(if (string-prefix? "mips" (%current-system))
+ (list "-A" "49" "-V" "1")
+ (list))
;; Generate shared libraries.
"--shared"
;; Build a full LAPACK library.
diff --git a/gnu/packages/mg.scm b/gnu/packages/mg.scm
new file mode 100644
index 0000000000..a315dfed33
--- /dev/null
+++ b/gnu/packages/mg.scm
@@ -0,0 +1,64 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.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 GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages mg)
+ #:use-module (guix licenses)
+ #:use-module (guix download)
+ #:use-module (guix packages)
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages pkg-config))
+
+(define-public mg
+ (package
+ (name "mg")
+ (version "20050429")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://homepage.boetes.org/software/mg/mg-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "19kib0aha4a40izzds7r63qfb2akq4sily6k28fl0n0zdgq0cna1"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (substitute* "Makefile.in"
+ (("-Werror") "")
+ (("-lcurses") "-lncurses")
+ (("/usr/bin/install") "install -D")
+ (("/usr/bin/strip") "strip"))))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("ncurses" ,ncurses)))
+ (arguments
+ ;; No test suite available.
+ '(#:tests? #f
+ #:phases (alist-cons-before
+ 'configure 'pre-configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "Makefile.in"
+ (("(prefix=[[:blank:]]*)/usr/local" all prefix)
+ (string-append prefix (assoc-ref outputs "out")))))
+ %standard-phases)))
+ (home-page "http://homepage.boetes.org/software/mg/")
+ (synopsis "Microscopic GNU Emacs clone")
+ (description
+ "mg is Micro GNU Emacs; this is a portable version of the mg maintained
+by the OpenBSD team.")
+ (license public-domain)))
diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index 54b81955d9..1731cd59af 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,17 +25,18 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript)
+ #:use-module (gnu packages ncurses)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages xiph)
#:use-module (gnu packages pulseaudio)
- #:use-module ((gnu packages linux)
- #:select (alsa-lib))
+ #:use-module (gnu packages linux) ;alsa-lib
#: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 cmake))
(define-public libmad
(package
@@ -129,6 +131,90 @@ a highly stable and efficient implementation.")
(license license:lgpl2.0+)
(home-page "http://id3lib.sourceforge.net/")))
+(define-public taglib
+ (package
+ (name "taglib")
+ (version "1.9.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://taglib.github.io/releases/taglib-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "06n7gnbcqa3r6c9gv00y0y1r48dyyazm6yj403i7ma0r2k6p3lvj"))))
+ (build-system cmake-build-system)
+ (arguments '(#:tests? #f)) ;no 'test' target
+ (inputs `(("zlib" ,zlib)))
+ (home-page "http://developer.kde.org/~wheeler/taglib.html")
+ (synopsis "Library to access audio file meta-data")
+ (description
+ "TagLib is a C++ library for reading and editing the meta-data of several
+popular audio formats. Currently it supports both ID3v1 and ID3v2 for MP3
+files, Ogg Vorbis comments and ID3 tags and Vorbis comments in FLAC, MPC,
+Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.")
+
+ ;; Dual-licensed: user may choose between LGPLv2.1 or MPLv1.1.
+ (license (list license:lgpl2.1 license:mpl1.1))))
+
+(define-public mp3info
+ (package
+ (name "mp3info")
+ (version "0.8.5a")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "ftp://ftp.ibiblio.org/pub/linux/apps/sound/mp3-utils/mp3info/mp3info-"
+ version ".tgz"))
+ (sha256
+ (base32
+ "042f1czcs9n2sbqvg4rsvfwlqib2gk976mfa2kxlfjghx5laqf04"))
+ (modules '((guix build utils)))
+ (snippet
+ '(substitute* "Makefile"
+ (("/bin/rm") "rm")
+ (("/usr/bin/install") "install")
+ (("man/man1") "share/man/man1")))))
+ (build-system gnu-build-system)
+ (outputs '("out" "gui")) ;GTK+ interface in "gui"
+ (arguments
+ '(#:phases (alist-replace
+ 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "Makefile"
+ (("prefix=.*")
+ (string-append "prefix := " out "\n")))))
+ (alist-cons-before
+ 'install 'pre-install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (mkdir-p (string-append out "/bin"))
+ (mkdir-p (string-append out "/share/man/man1"))))
+ (alist-cons-after
+ 'install 'post-install
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Move the GTK+ interface to "gui".
+ (let ((out (assoc-ref outputs "out"))
+ (gui (assoc-ref outputs "gui")))
+ (mkdir-p (string-append gui "/bin"))
+ (rename-file (string-append out "/bin/gmp3info")
+ (string-append gui "/bin/gmp3info"))))
+ %standard-phases)))
+ #:tests? #f))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("gtk+" ,gtk+-2)
+ ("ncurses" ,ncurses)))
+ (home-page "http://www.ibiblio.org/mp3info/")
+ (synopsis "MP3 technical info viewer and ID3 1.x tag editor")
+ (description
+ "MP3Info is a little utility used to read and modify the ID3 tags of MP3
+files. MP3Info can also display various techincal aspects of an MP3 file
+including playing time, bit-rate, sampling frequency and other attributes in a
+pre-defined or user-specifiable output format.")
+ (license license:gpl2+)))
+
(define-public libmp3splt
(package
(name "libmp3splt")
diff --git a/gnu/packages/nutrition.scm b/gnu/packages/nutrition.scm
new file mode 100644
index 0000000000..72bd5b0d3e
--- /dev/null
+++ b/gnu/packages/nutrition.scm
@@ -0,0 +1,68 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.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 GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages nutrition)
+ #:use-module (guix packages)
+ #:use-module (guix licenses)
+ #:use-module (guix download)
+ #:use-module (guix build-system python)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages python))
+
+(define-public gourmet
+ (package
+ (name "gourmet")
+ (version "0.17.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/thinkle/gourmet/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1qvz175arzqm10lpfx8ffadrgirs3240zzqcp0h7sl53qfwx7v8k"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("distutils-extra" ,python2-distutils-extra)
+ ("intltool" ,intltool)
+ ("python-pygtk" ,python2-pygtk))) ;for tests
+ ;; TODO: Add python-reportlab and/or python-poppler for printing/pdf
+ ;; export, and python-beautifulsoup for web import plugin.
+ (inputs
+ `(("pygtk" ,python2-pygtk)
+ ("sqlalchemy" ,python2-sqlalchemy)
+ ("python-pillow" ,python2-pillow)
+ ("elib.intl" ,python2-elib.intl)
+ ;; XXX: This really isn't an input for gourmet but of pillow. Making
+ ;; it a propagated input in pillow doesn't seem to get its site path
+ ;; into gourmet's wrapper's PYTHONPATH however...
+ ("python-setuptools" ,python2-setuptools)))
+ (arguments
+ `(#:python ,python-2 ;exception and print syntax
+ #:tests? #f)) ;tests look bitrotted
+ (home-page "http://thinkle.github.io/gourmet/")
+ (synopsis "Recipe organizer")
+ (description
+ "Gourmet Recipe Manager is a recipe organizer that allows you to collect,
+search, organize, and browse your recipes. Gourmet can also generate shopping
+lists and calculate nutritional information. It imports Mealmaster,
+MasterCook and KRecipe files and exports PDFs, webpages, and other formats.")
+ (license gpl2+)))
diff --git a/gnu/packages/ocrad.scm b/gnu/packages/ocrad.scm
index ee35256123..8ad4f32670 100644
--- a/gnu/packages/ocrad.scm
+++ b/gnu/packages/ocrad.scm
@@ -27,14 +27,14 @@
(define-public ocrad
(package
(name "ocrad")
- (version "0.23")
+ (version "0.24")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/ocrad/ocrad-"
version ".tar.lz"))
(sha256
(base32
- "0vx0v4sz8ivgcp04zggdq9cv9sb5zxnn7j1nm15cds0zq1wr9g7m"))))
+ "0hhlx072d00bi9qia0nj5izsq4qkscpfz2mpbyfc72msl3hfvslv"))))
(build-system gnu-build-system)
(native-inputs `(("lzip" ,lzip)))
(home-page "http://www.gnu.org/software/ocrad/")
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 0bbd7b6dcd..408734d6fa 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -118,7 +118,7 @@ the Nix package manager.")
(define guix-devel
;; Development version of Guix.
- (let ((commit "47739f5"))
+ (let ((commit "3b09332"))
(package (inherit guix-0.8)
(version (string-append "0.8." commit))
(source (origin
@@ -129,7 +129,7 @@ the Nix package manager.")
(recursive? #t)))
(sha256
(base32
- "17azgv1i8f9spwa35m23d2yk0wlmf48xm6ka1rqh30nhacwlmnx7"))))
+ "1szlyhpy688ca96kfyjb6cdy5zhxvqmdig4m7ql7rjqfmz0gvka1"))))
(arguments
(substitute-keyword-arguments (package-arguments guix-0.8)
((#:phases phases)
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index eaf789f828..6524110f2a 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -27,7 +27,7 @@
(define-public parallel
(package
(name "parallel")
- (version "20141022")
+ (version "20141122")
(source
(origin
(method url-fetch)
@@ -35,7 +35,7 @@
version ".tar.bz2"))
(sha256
(base32
- "1dpssybids6k6na4rh2gwv1m581h28rcmsvq0hs56hrrh7qpjmvp"))))
+ "1kpd4ayd4lb867nfnpkam4b3mh86jl6cdy386x1rich938gbrg38"))))
(build-system gnu-build-system)
(inputs `(("perl" ,perl)))
(home-page "http://www.gnu.org/software/parallel/")
diff --git a/gnu/packages/patches/glib-tests-gapplication.patch b/gnu/packages/patches/glib-tests-gapplication.patch
new file mode 100644
index 0000000000..1845fcb9b8
--- /dev/null
+++ b/gnu/packages/patches/glib-tests-gapplication.patch
@@ -0,0 +1,28 @@
+This test has proven to be unreliable, often leading to things like this
+in gapplication.log:
+
+ PASS: gapplication 3 /gapplication/properties
+ Failed to register: The connection is closed
+ **
+ GLib-GIO:ERROR:gapplication.c:564:test_quit: assertion failed: (activated)
+ ok 4 /gapplication/app-id
+ PASS: gapplication 4 /gapplication/app-id
+ ../../tap-test: line 5: 24133 Aborted $1 -k --tap
+ # GLib-GIO:ERROR:gapplication.c:564:test_quit: assertion failed: (activated)
+ cleaning up pid 24154
+ ERROR: gapplication - missing test plan
+ ERROR: gapplication - exited with status 134 (terminated by signal 6?)
+
+See <https://bugs.debian.org/756273> and <http://bugs.gnu.org/18445>.
+
+
+--- glib-2.40.2/gio/tests/gapplication.c 2014-12-03 22:34:44.566667649 +0100
++++ glib-2.40.2/gio/tests/gapplication.c 2014-12-03 22:34:45.346674179 +0100
+@@ -685,7 +685,6 @@ main (int argc, char **argv)
+ /* g_test_add_func ("/gapplication/non-unique", test_nonunique); */
+ g_test_add_func ("/gapplication/properties", properties);
+ g_test_add_func ("/gapplication/app-id", appid);
+- g_test_add_func ("/gapplication/quit", test_quit);
+ g_test_add_func ("/gapplication/local-actions", test_local_actions);
+ /* g_test_add_func ("/gapplication/remote-actions", test_remote_actions); */
+ g_test_add_func ("/gapplication/local-command-line", test_local_command_line);
diff --git a/gnu/packages/patches/guile-linux-syscalls.patch b/gnu/packages/patches/guile-linux-syscalls.patch
index 1fb24bde27..57c7f2589d 100644
--- a/gnu/packages/patches/guile-linux-syscalls.patch
+++ b/gnu/packages/patches/guile-linux-syscalls.patch
@@ -7,7 +7,7 @@ diff --git a/libguile/posix.c b/libguile/posix.c
index 324f21b..cbee94d 100644
--- a/libguile/posix.c
+++ b/libguile/posix.c
-@@ -2286,6 +2286,266 @@ scm_init_popen (void)
+@@ -2286,6 +2286,261 @@ scm_init_popen (void)
}
#endif
@@ -84,12 +84,7 @@ index 324f21b..cbee94d 100644
+ free (c_options);
+
+ if (err != 0)
-+ {
-+ /* XXX: `insmod' actually provides better translation of some of
-+ the error codes. */
-+ errno = err;
-+ SCM_SYSERROR;
-+ }
++ SCM_SYSERROR;
+
+ return SCM_UNSPECIFIED;
+}
diff --git a/gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch b/gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch
new file mode 100644
index 0000000000..2f8b159870
--- /dev/null
+++ b/gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch
@@ -0,0 +1,15 @@
+From resolution of upstream python issue #20901: http://bugs.python.org/issue20901
+
+diff --git a/Lib/sqlite3/test/hooks.py b/Lib/sqlite3/test/hooks.py
+--- Lib/sqlite3/test/hooks.py
++++ Lib/sqlite3/test/hooks.py
+@@ -162,7 +162,7 @@ class ProgressTests(unittest.TestCase):
+ create table bar (a, b)
+ """)
+ second_count = len(progress_calls)
+- self.assertGreater(first_count, second_count)
++ self.assertGreaterEqual(first_count, second_count)
+
+ def CheckCancelOperation(self):
+ """
+
diff --git a/gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch b/gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch
new file mode 100644
index 0000000000..6a08e56351
--- /dev/null
+++ b/gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch
@@ -0,0 +1,39 @@
+From e5df32ffbf37481dbb6a70c4d4e7b7b9778c5549 Mon Sep 17 00:00:00 2001
+From: "John (J5) Palmieri" <johnp@redhat.com>
+Date: Sat, 13 Aug 2011 04:13:28 -0400
+Subject: remove references to deprecated GI_INFO_TYPE_ERROR_DOMAIN
+
+
+diff --git a/gi/pygi-info.c b/gi/pygi-info.c
+index 8729e25..007b609 100644
+--- a/gi/pygi-info.c
++++ b/gi/pygi-info.c
+@@ -165,9 +165,6 @@ _pygi_info_new (GIBaseInfo *info)
+ case GI_INFO_TYPE_CONSTANT:
+ type = &PyGIConstantInfo_Type;
+ break;
+- case GI_INFO_TYPE_ERROR_DOMAIN:
+- type = &PyGIErrorDomainInfo_Type;
+- break;
+ case GI_INFO_TYPE_UNION:
+ type = &PyGIUnionInfo_Type;
+ break;
+@@ -484,7 +481,6 @@ _pygi_g_type_info_size (GITypeInfo *type_info)
+ case GI_INFO_TYPE_INVALID:
+ case GI_INFO_TYPE_FUNCTION:
+ case GI_INFO_TYPE_CONSTANT:
+- case GI_INFO_TYPE_ERROR_DOMAIN:
+ case GI_INFO_TYPE_VALUE:
+ case GI_INFO_TYPE_SIGNAL:
+ case GI_INFO_TYPE_PROPERTY:
+@@ -863,7 +859,6 @@ pygi_g_struct_info_is_simple (GIStructInfo *struct_info)
+ case GI_INFO_TYPE_INVALID:
+ case GI_INFO_TYPE_FUNCTION:
+ case GI_INFO_TYPE_CONSTANT:
+- case GI_INFO_TYPE_ERROR_DOMAIN:
+ case GI_INFO_TYPE_VALUE:
+ case GI_INFO_TYPE_SIGNAL:
+ case GI_INFO_TYPE_PROPERTY:
+--
+cgit v0.10.1
+
diff --git a/gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch b/gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch
new file mode 100644
index 0000000000..f121e8852a
--- /dev/null
+++ b/gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch
@@ -0,0 +1,15 @@
+From resolution of upstream python issue #20901: http://bugs.python.org/issue20901
+
+diff --git a/Lib/sqlite3/test/hooks.py b/Lib/sqlite3/test/hooks.py
+--- Lib/sqlite3/test/hooks.py
++++ Lib/sqlite3/test/hooks.py
+@@ -162,7 +162,7 @@ class ProgressTests(unittest.TestCase):
+ create table bar (a, b)
+ """)
+ second_count = len(progress_calls)
+- self.assertTrue(first_count > second_count)
++ self.assertGreaterEqual(first_count, second_count)
+
+ def CheckCancelOperation(self):
+ """
+
diff --git a/gnu/packages/patches/wmctrl-64-fix.patch b/gnu/packages/patches/wmctrl-64-fix.patch
new file mode 100644
index 0000000000..3ec1c913ff
--- /dev/null
+++ b/gnu/packages/patches/wmctrl-64-fix.patch
@@ -0,0 +1,32 @@
+Description: Correct 64 Architecture implementation of 32 bit data
+Author: Chris Donoghue <cdonoghu@gmail.com>
+Bug-Debian: http://bugs.debian.org/362068
+
+--- wmctrl-1.07.orig/main.c
++++ wmctrl-1.07/main.c
+@@ -1425,6 +1425,16 @@ static gchar *get_property (Display *dis
+ *
+ * long_length = Specifies the length in 32-bit multiples of the
+ * data to be retrieved.
++ *
++ * NOTE: see
++ * http://mail.gnome.org/archives/wm-spec-list/2003-March/msg00067.html
++ * In particular:
++ *
++ * When the X window system was ported to 64-bit architectures, a
++ * rather peculiar design decision was made. 32-bit quantities such
++ * as Window IDs, atoms, etc, were kept as longs in the client side
++ * APIs, even when long was changed to 64 bits.
++ *
+ */
+ if (XGetWindowProperty(disp, win, xa_prop_name, 0, MAX_PROPERTY_VALUE_LEN / 4, False,
+ xa_prop_type, &xa_ret_type, &ret_format,
+@@ -1441,6 +1451,8 @@ static gchar *get_property (Display *dis
+
+ /* null terminate the result to make string handling easier */
+ tmp_size = (ret_format / 8) * ret_nitems;
++ /* Correct 64 Architecture implementation of 32 bit data */
++ if(ret_format==32) tmp_size *= sizeof(long)/4;
+ ret = g_malloc(tmp_size + 1);
+ memcpy(ret, ret_prop, tmp_size);
+ ret[tmp_size] = '\0';
diff --git a/gnu/packages/patches/xf86-video-openchrome-includes.patch b/gnu/packages/patches/xf86-video-openchrome-includes.patch
new file mode 100644
index 0000000000..3c79596387
--- /dev/null
+++ b/gnu/packages/patches/xf86-video-openchrome-includes.patch
@@ -0,0 +1,35 @@
+This follows the same rationale as xf86-input-synaptics-glibc-2.20.patch
+to allow building with glibc-2.20.
+diff -u -r xf86-video-openchrome-0.2.906.old/src/via_3d.h xf86-video-openchrome-0.2.906/src/via_3d.h
+--- xf86-video-openchrome-0.2.906.old/src/via_3d.h 2014-11-23 14:04:58.000000000 +0100
++++ xf86-video-openchrome-0.2.906/src/via_3d.h 2014-11-23 14:18:37.000000000 +0100
+@@ -24,6 +24,7 @@
+ #ifndef VIA_3D_H
+ #define VIA_3D_H
+
++#include "xorg-server.h"
+ #include "xf86.h"
+ #include "via_dmabuffer.h"
+
+diff -u -r xf86-video-openchrome-0.2.906.old/src/via_driver.h xf86-video-openchrome-0.2.906/src/via_driver.h
+--- xf86-video-openchrome-0.2.906.old/src/via_driver.h 2014-11-23 14:04:58.000000000 +0100
++++ xf86-video-openchrome-0.2.906/src/via_driver.h 2014-11-23 14:21:43.000000000 +0100
+@@ -35,6 +35,7 @@
+ #endif
+
+ #include "vgaHW.h"
++#include "xorg-server.h"
+ #include "xf86.h"
+
+ #if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
+diff -u -r xf86-video-openchrome-0.2.906.old/src/via_timing.h xf86-video-openchrome-0.2.906/src/via_timing.h
+--- xf86-video-openchrome-0.2.906.old/src/via_timing.h 2014-11-23 14:04:58.000000000 +0100
++++ xf86-video-openchrome-0.2.906/src/via_timing.h 2014-11-23 14:20:50.000000000 +0100
+@@ -25,6 +25,7 @@
+ #ifndef _TIMING_H_
+ #define _TIMING_H_
+
++#include "xorg-server.h"
+ #include "xf86.h"
+
+ /* Aspect ratio not CVT standard */
diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm
index 54a3e2277c..3181ba7592 100644
--- a/gnu/packages/pcre.scm
+++ b/gnu/packages/pcre.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,14 +28,14 @@
(define-public pcre
(package
(name "pcre")
- (version "8.32")
+ (version "8.36")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/pcre/pcre/"
version "/pcre-" version ".tar.bz2"))
(sha256
(base32
- "0m8gvrf1q0iwll4csirvvj98xygw4cy7r14i5l53ivsqs2dzn4x9"))))
+ "1fs5p1z67m9f4xnyil3s4lhgyld78f7m4d1yawpyhh0cvrbk90zg"))))
(build-system gnu-build-system)
(inputs `(("bzip2" ,bzip2)
("readline" ,readline)
@@ -43,7 +44,8 @@
`(#:configure-flags '("--enable-utf"
"--enable-pcregrep-libz"
"--enable-pcregrep-libbz2"
- "--enable-pcretest-libreadline")))
+ "--enable-pcretest-libreadline"
+ "--enable-jit")))
(synopsis "Perl Compatible Regular Expressions")
(description
"The PCRE library is a set of functions that implement regular expression
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 8d71660180..a724a1b21f 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -161,3 +161,206 @@ SHA-1 message digest algorithm for use by Perl programs.")
(home-page (string-append "http://search.cpan.org/~gaas/Digest-SHA1-"
version "/SHA1.pm"))
(license (package-license perl))))
+
+(define-public perl-benchmark-timer
+ (package
+ (name "perl-benchmark-timer")
+ (version "0.7102")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/D/DC/DCOPPIT/"
+ "Benchmark-Timer-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1gl9ybm9hgia3ld5s11b7bv2p2hmx5rss5hxcfy6rmbzrjcnci01"))))
+ (build-system perl-build-system)
+ ;; The optional input module Statistics::PointEstimation (from
+ ;; Statistics-TTest) lists no license.
+ (synopsis "Benchmarking with statistical confidence")
+ (description
+ "The Benchmark::Timer class allows you to time portions of code
+conveniently, as well as benchmark code by allowing timings of repeated
+trials. It is perfect for when you need more precise information about the
+running time of portions of your code than the Benchmark module will give you,
+but don't want to go all out and profile your code.")
+ (home-page (string-append "http://search.cpan.org/~dcoppit/"
+ "Benchmark-Timer-" version))
+ (license gpl2)))
+
+(define-public perl-exporter-lite
+ (package
+ (name "perl-exporter-lite")
+ (version "0.06")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/"
+ "Exporter-Lite-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0k4gkvid4fr8yvwj0axdx5111mzfw2iipls3qllxr364fqhmclpj"))))
+ (build-system perl-build-system)
+ (synopsis "Lightweight exporting of functions and variables")
+ (description
+ "Exporter::Lite is an alternative to Exporter, intended to provide a
+lightweight subset of the most commonly-used functionality. It supports
+import(), @EXPORT and @EXPORT_OK and not a whole lot else.")
+ (home-page (string-append "http://search.cpan.org/~neilb/"
+ "Exporter-Lite-" version))
+ (license (package-license perl))))
+
+(define-public perl-probe-perl
+ (package
+ (name "perl-probe-perl")
+ (version "0.03")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/K/KW/KWILLIAMS/"
+ "Probe-Perl-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0c9wiaz0mqqknafr4jdr0g2gdzxnn539182z0icqaqvp5qgd5r6r"))))
+ (build-system perl-build-system)
+ (synopsis "Information about the currently running perl")
+ (description
+ "Probe::Perl provides methods for obtaining information about the
+currently running perl interpreter. It originally began life as code in the
+Module::Build project, but has been externalized here for general use.")
+ (home-page (string-append "http://search.cpan.org/~kwilliams/"
+ "Probe-Perl-" version))
+ (license (package-license perl))))
+
+(define-public perl-ipc-run3
+ (package
+ (name "perl-ipc-run3")
+ (version "0.048")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
+ "IPC-Run3-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0r9m8q78bg7yycpixd7738jm40yz71p2q7inm766kzsw3g6c709x"))))
+ (build-system perl-build-system)
+ (synopsis "Run a subprocess with input/ouput redirection")
+ (description
+ "The IPC::Run3 module allows you to run a subprocess and redirect stdin,
+stdout, and/or stderr to files and perl data structures. It aims to satisfy
+99% of the need for using system, qx, and open3 with a simple, extremely
+Perlish API and none of the bloat and rarely used features of IPC::Run.")
+ (home-page (string-append "http://search.cpan.org/~rjbs/"
+ "IPC-Run3-" version))
+ ;; "You may use this module under the terms of the BSD, Artistic, or GPL
+ ;; licenses, any version."
+ (license (list bsd-3 gpl3+))))
+
+(define-public perl-test-script
+ (package
+ (name "perl-test-script")
+ (version "1.07")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/A/AD/ADAMK/"
+ "Test-Script-" version ".tar.gz"))
+ (sha256
+ (base32
+ "15pb4zzsnm33msc1syhig2bk05xqc0pckmfyahdwbd177bj5w7p2"))))
+ (build-system perl-build-system)
+ (propagated-inputs
+ `(("probe-perl" ,perl-probe-perl)
+ ("ipc-run3" ,perl-ipc-run3)))
+ (synopsis "Basic cross-platform tests for scripts")
+ (description
+ "The intent of the Test::Script module is to provide a series of basic
+tests for 80% of the testing you will need to do for scripts in the script (or
+bin as is also commonly used) paths of your Perl distribution.")
+ (home-page (string-append "http://search.cpan.org/~adamk/"
+ "Test-Script-" version))
+ (license (package-license perl))))
+
+(define-public perl-file-which
+ (package
+ (name "perl-file-which")
+ (version "1.09")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/A/AD/ADAMK/"
+ "File-Which-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1hxjyh9yrv32f3g8vrnr8iylzprajsac14vjm75kf1qnj1jyqbxp"))))
+ (build-system perl-build-system)
+ (native-inputs `(("test-script" ,perl-test-script)))
+ (synopsis "Portable implementation of the `which' utility")
+ (description
+ "File::Which was created to be able to get the paths to executable
+programs on systems under which the `which' program wasn't implemented in the
+shell.")
+ (home-page (string-append "http://search.cpan.org/~adamk/"
+ "File-Which-" version))
+ (license (package-license perl))))
+
+(define-public perl-getopt-tabular
+ (package
+ (name "perl-getopt-tabular")
+ (version "0.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/G/GW/GWARD/"
+ "Getopt-Tabular-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0xskl9lcj07sdfx5dkma5wvhhgf5xlsq0khgh8kk34dm6dv0dpwv"))))
+ (build-system perl-build-system)
+ (synopsis "Table-driven argument parsing for Perl")
+ (description
+ "Getopt::Tabular is a Perl 5 module for table-driven argument parsing,
+vaguely inspired by John Ousterhout's Tk_ParseArgv.")
+ (home-page (string-append "http://search.cpan.org/~gward/"
+ "Getopt-Tabular-" version))
+ (license (package-license perl))))
+
+(define-public perl-regexp-common
+ (package
+ (name "perl-regexp-common")
+ (version "2013031301")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/A/AB/ABIGAIL/"
+ "Regexp-Common-" version ".tar.gz"))
+ (sha256
+ (base32
+ "112wybsm0vr8yfannx6sdfvgp5vza28gjgr3pgn69ak4sac836kj"))))
+ (build-system perl-build-system)
+ (synopsis "Provide commonly requested regular expressions")
+ (description
+ "This module exports a single hash (`%RE') that stores or generates
+commonly needed regular expressions. Patterns currently provided include:
+balanced parentheses and brackets, delimited text (with escapes), integers and
+floating-point numbers in any base (up to 36), comments in 44 languages,
+offensive language, lists of any pattern, IPv4 addresses, URIs, and Zip
+codes.")
+ (home-page (string-append "http://search.cpan.org/~abigail/"
+ "Regexp-Common-" version))
+ ;; Quad-licensed: Perl Artistic, Perl Artistic 2.0, X11, and BSD.
+ (license (list (package-license perl) x11 bsd-3))))
+
+(define-public perl-sys-cpu
+ (package
+ (name "perl-sys-cpu")
+ (version "0.61")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/M/MZ/MZSANFORD/"
+ "Sys-CPU-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1r6976bs86j7zp51m5vh42xlyah951jgdlkimv202413kjvqc2i5"))))
+ (build-system perl-build-system)
+ (synopsis "Perl extension for getting CPU information")
+ (description
+ "In responce to a post on perlmonks.org, a module for counting the number
+of CPU's on a system. Support has now also been added for type of CPU and
+clock speed.")
+ (home-page (string-append "http://search.cpan.org/~mzsanford/"
+ "Sys-CPU-" version))
+ (license (package-license perl))))
diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm
index 279a6c1f29..dc4905a271 100644
--- a/gnu/packages/pkg-config.scm
+++ b/gnu/packages/pkg-config.scm
@@ -71,13 +71,11 @@ instance.")))
#:builder (begin
(use-modules (guix build utils))
- (let* ((out (assoc-ref %outputs "out"))
- (bin (string-append out "/bin"))
- (prog (string-append ,target "-pkg-config"))
- (native
- (string-append
- (assoc-ref %build-inputs "pkg-config")
- "/bin/pkg-config")))
+ (let* ((in (assoc-ref %build-inputs "pkg-config"))
+ (out (assoc-ref %outputs "out"))
+ (bin (string-append out "/bin"))
+ (prog (string-append ,target "-pkg-config"))
+ (native (string-append in "/bin/pkg-config")))
(mkdir-p bin)
@@ -85,7 +83,13 @@ instance.")))
;; This satisfies the pkg.m4 macros, which use
;; AC_PROG_TOOL to determine the `pkg-config' program
;; name.
- (symlink native (string-append bin "/" prog))))))
+ (symlink native (string-append bin "/" prog))
+
+ ;; Also make 'pkg.m4' available, some packages might
+ ;; expect it.
+ (mkdir-p (string-append out "/share"))
+ (symlink (string-append in "/share/aclocal")
+ (string-append out "/share/aclocal"))))))
(native-inputs `(("pkg-config" ,%pkg-config)))
;; Ignore native inputs, and set `PKG_CONFIG_PATH' for target inputs.
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index bd38a4b53d..1576c3dfea 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -196,3 +196,44 @@ output to 8 different formats, including HTML, LaTeX and ODF. It can also
output to ANSI color escape sequences, so that highlighted source code can be
seen in a terminal.")
(license gpl3+)))
+
+(define-public astyle
+ (package
+ (name "astyle")
+ (version "2.05")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/astyle/astyle/astyle%20"
+ version "/astyle_" version "_linux.tar.gz"))
+ (sha256
+ (base32
+ "0f9sh9kq5ajp1yz133h00fr9235p1m698x7n3h7zbrhjiwgynd6s"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ;no tests
+ #:make-flags (list (string-append "prefix=" %output)
+ "INSTALL=install"
+ "all")
+ #:phases (alist-replace
+ 'configure
+ (lambda _ (chdir "build/gcc"))
+ (alist-cons-after
+ 'install 'install-libs
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Libraries are not installed by default
+ (let* ((output (assoc-ref outputs "out"))
+ (libdir (string-append output "/lib")))
+ (begin
+ (mkdir-p libdir)
+ (for-each (lambda (l)
+ (copy-file
+ l (string-append libdir "/" (basename l))))
+ (find-files "bin" "lib*")))))
+ %standard-phases))))
+ (home-page "http://astyle.sourceforge.net/")
+ (synopsis "Source code indenter, formatter, and beautifier")
+ (description
+ "Artistic Style is a source code indenter, formatter, and beautifier for
+the C, C++, C++/CLI, Objective‑C, C#, and Java programming languages.")
+ (license lgpl3+)))
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 378660482f..dc7def5507 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -24,27 +24,40 @@
(define-module (gnu packages python)
#:use-module ((guix licenses)
#:select (asl2.0 bsd-3 bsd-2 bsd-style cc0 expat x11 x11-style
- gpl2 gpl2+ gpl3+ lgpl2.0+ lgpl2.1+
+ gpl2 gpl2+ gpl3+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+
psfl public-domain))
#:use-module ((guix licenses) #:select (zlib) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages compression)
#:use-module (gnu packages gdbm)
#:use-module (gnu packages icu4c)
+ #:use-module (gnu packages image)
#:use-module (gnu packages libffi)
#:use-module (gnu packages readline)
#:use-module (gnu packages openssl)
#:use-module (gnu packages elf)
+ #:use-module (gnu packages maths)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages databases)
#:use-module (gnu packages zip)
+ #:use-module (gnu packages ghostscript)
#:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages texlive)
+ #:use-module (gnu packages texinfo)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages which)
+ #:use-module (gnu packages perl)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
- #:use-module (guix build-system trivial))
+ #:use-module (guix build-system trivial)
+ #:use-module (srfi srfi-1))
(define-public python-2
(package
@@ -55,7 +68,8 @@
(method url-fetch)
(uri (string-append "https://www.python.org/ftp/python/"
version "/Python-" version ".tar.xz"))
- (patches (list (search-patch "python-libffi-mips-n32-fix.patch")))
+ (patches (list (search-patch "python-libffi-mips-n32-fix.patch")
+ (search-patch "python2-sqlite-3.8.4-test-fix.patch")))
(patch-flags '("-p0"))
(sha256
(base32
@@ -109,6 +123,7 @@
(let ((bz2 (assoc-ref %build-inputs "bzip2"))
(gdbm (assoc-ref %build-inputs "gdbm"))
(libffi (assoc-ref %build-inputs "libffi"))
+ (sqlite (assoc-ref %build-inputs "sqlite"))
(openssl (assoc-ref %build-inputs "openssl"))
(readline (assoc-ref %build-inputs "readline"))
(zlib (assoc-ref %build-inputs "zlib")))
@@ -117,6 +132,7 @@
(string-append "CPPFLAGS="
"-I" bz2 "/include "
"-I" gdbm "/include "
+ "-I" sqlite "/include "
"-I" openssl "/include "
"-I" readline "/include "
"-I" zlib "/include")
@@ -124,6 +140,7 @@
"-L" bz2 "/lib "
"-L" gdbm "/lib "
"-L" libffi "/lib "
+ "-L" sqlite "/lib "
"-L" openssl "/lib "
"-L" readline "/lib "
"-L" zlib "/lib")))
@@ -167,6 +184,7 @@
`(("bzip2" ,bzip2)
("gdbm" ,gdbm)
("libffi" ,libffi) ; for ctypes
+ ("sqlite" ,sqlite) ; for sqlite extension
("openssl" ,openssl)
("readline" ,readline)
("zlib" ,zlib)
@@ -198,6 +216,7 @@ data types.")
(uri (string-append "https://www.python.org/ftp/python/"
version "/Python-" version ".tar.xz"))
(patches (list (search-patch "python-fix-tests.patch")
+ (search-patch "python-sqlite-3.8.4-test-fix.patch")
(search-patch "python-libffi-mips-n32-fix.patch")))
(patch-flags '("-p0"))
(sha256
@@ -1873,3 +1892,653 @@ writing C extensions for Python as easy as Python itself.")
(name "python2-cython")
(inputs
`(("python-2" ,python-2))))) ; this is not automatically changed
+
+;; This version of numpy is missing the documentation and is only used to
+;; build matplotlib which is required to build numpy's documentation.
+(define python-numpy-bootstrap
+ (package
+ (name "python-numpy-bootstrap")
+ (version "1.9.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/numpy"
+ "/numpy-" version ".tar.gz"))
+ (sha256
+ (base32
+ "070ybfvpgfmiz2hs94x445hvkh9dh52nyi0m8jp5kdihgvhbnx80"))))
+ (build-system python-build-system)
+ (inputs
+ `(("python-nose" ,python-nose)
+ ("atlas" ,atlas)))
+ (native-inputs
+ `(("gfortran" ,gfortran-4.8)))
+ (arguments
+ `(#:phases
+ (alist-cons-before
+ 'build 'set-environment-variables
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((atlas-threaded
+ (string-append (assoc-ref inputs "atlas")
+ "/lib/libtatlas.so"))
+ ;; On single core CPUs only the serial library is created.
+ (atlas-lib
+ (if (file-exists? atlas-threaded)
+ atlas-threaded
+ (string-append (assoc-ref inputs "atlas")
+ "/lib/libsatlas.so"))))
+ (setenv "ATLAS" atlas-lib)))
+ ;; Tests can only be run after the library has been installed and not
+ ;; within the source directory.
+ (alist-cons-after
+ 'install 'check
+ (lambda _
+ (with-directory-excursion "/tmp"
+ (zero? (system* "python" "-c"
+ "import numpy; numpy.test(verbose=2)"))))
+ (alist-delete
+ 'check
+ %standard-phases)))))
+ (home-page "http://www.numpy.org/")
+ (synopsis "Fundamental package for scientific computing with Python")
+ (description "NumPy is the fundamental package for scientific computing
+with Python. It contains among other things: a powerful N-dimensional array
+object, sophisticated (broadcasting) functions, tools for integrating C/C++
+and Fortran code, useful linear algebra, Fourier transform, and random number
+capabilities.")
+ (license bsd-3)))
+
+(define python2-numpy-bootstrap
+ (package-with-python2 python-numpy-bootstrap))
+
+(define-public python-numpy
+ (package (inherit python-numpy-bootstrap)
+ (name "python-numpy")
+ (outputs '("out" "doc"))
+ (inputs
+ `(("which" ,which)
+ ("python-setuptools" ,python-setuptools)
+ ("python-matplotlib" ,python-matplotlib)
+ ("python-sphinx" ,python-sphinx)
+ ("python-pyparsing" ,python-pyparsing)
+ ("python-numpydoc" ,python-numpydoc)
+ ,@(package-inputs python-numpy-bootstrap)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("texlive" ,texlive)
+ ("texinfo" ,texinfo)
+ ("perl" ,perl)
+ ,@(package-native-inputs python-numpy-bootstrap)))
+ (arguments
+ `(,@(substitute-keyword-arguments
+ (package-arguments python-numpy-bootstrap)
+ ((#:phases phases)
+ `(alist-cons-after
+ 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
+ (doc (string-append
+ data "/doc/" ,name "-"
+ ,(package-version python-numpy-bootstrap)))
+ (info (string-append data "/info"))
+ (html (string-append doc "/html"))
+ (pyver ,(string-append "PYVER=")))
+ (with-directory-excursion "doc"
+ (mkdir-p html)
+ (system* "make" "html" pyver)
+ (system* "make" "latex" "PAPER=a4" pyver)
+ (system* "make" "-C" "build/latex"
+ "all-pdf" "PAPER=a4" pyver)
+ ;; FIXME: Generation of the info file fails.
+ ;; (system* "make" "info" pyver)
+ ;; (mkdir-p info)
+ ;; (copy-file "build/texinfo/numpy.info"
+ ;; (string-append info "/numpy.info"))
+ (for-each (lambda (file)
+ (copy-file (string-append "build/latex" file)
+ (string-append doc file)))
+ '("/numpy-ref.pdf" "/numpy-user.pdf"))
+ (with-directory-excursion "build/html"
+ (for-each (lambda (file)
+ (let* ((dir (dirname file))
+ (tgt-dir (string-append html "/" dir)))
+ (unless (equal? "." dir)
+ (mkdir-p tgt-dir))
+ (copy-file file (string-append html "/" file))))
+ (find-files "." ".*"))))))
+ ,phases)))))))
+
+(define-public python2-numpy
+ (let ((numpy (package-with-python2 python-numpy)))
+ (package (inherit numpy)
+ ;; Make sure we use exactly PYTHON2-NUMPYDOC, which is customized for
+ ;; Python 2. Since it is also an input to PYTHON2-MATPLOTLIB, we need to
+ ;; import the right version of 'matplotlib' as well.
+ (inputs `(("python2-numpydoc" ,python2-numpydoc)
+ ("python2-matplotlib" ,python2-matplotlib)
+ ,@(alist-delete "python-numpydoc"
+ (alist-delete "python-matplotlib"
+ (package-inputs numpy))))))))
+
+(define-public python-pyparsing
+ (package
+ (name "python-pyparsing")
+ (version "2.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/pyparsing"
+ "/pyparsing-" version ".tar.gz"))
+ (sha256
+ (base32
+ "01lasib0n2fp2k99c988qhz16lm9hcwmnmrmhybdb3jq2xmkvr0p"))))
+ (build-system python-build-system)
+ (outputs '("out" "doc"))
+ (arguments
+ `(#:tests? #f ; no test target
+ #:modules ((guix build python-build-system)
+ (guix build utils))
+ #:phases
+ (alist-cons-after
+ 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((doc (string-append (assoc-ref outputs "doc")
+ "/share/doc/" ,name "-" ,version))
+ (html-doc (string-append doc "/html"))
+ (examples (string-append doc "/examples")))
+ (mkdir-p html-doc)
+ (mkdir-p examples)
+ (for-each
+ (lambda (dir tgt)
+ (map (lambda (file)
+ (copy-file file (string-append tgt "/" (basename file))))
+ (find-files dir ".*")))
+ (list "docs" "htmldoc" "examples")
+ (list doc html-doc examples))))
+ %standard-phases)))
+ (home-page "http://pyparsing.wikispaces.com")
+ (synopsis "Python parsing class library")
+ (description
+ "The pyparsing module is an alternative approach to creating and
+executing simple grammars, vs. the traditional lex/yacc approach, or the use
+of regular expressions. The pyparsing module provides a library of classes
+that client code uses to construct the grammar directly in Python code.")
+ (license expat)))
+
+(define-public python2-pyparsing
+ (package-with-python2 python-pyparsing))
+
+(define-public python-numpydoc
+ (package
+ (name "python-numpydoc")
+ (version "0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://pypi.python.org/packages/source/n/numpydoc/numpydoc-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0d4dnifaxkll50jx6czj05y8cb4ny60njd2wz299sj2jxfy51w4k"))))
+ (build-system python-build-system)
+ (inputs
+ `(("python-setuptools" ,python-setuptools)
+ ("python-docutils" ,python-docutils)
+ ("python-sphinx" ,python-sphinx)
+ ("python-nose" ,python-nose)))
+ (home-page "https://pypi.python.org/pypi/numpydoc")
+ (synopsis
+ "Numpy's Sphinx extensions")
+ (description
+ "Sphinx extension to support docstrings in Numpy format.")
+ (license bsd-2)))
+
+(define-public python2-numpydoc
+ (package
+ (inherit (package-with-python2 python-numpydoc))
+ ;; With python-2 1 test (out of 30) fails because it doesn't find
+ ;; matplotlib. With python-3 it seems to detect at run-time the absence
+ ;; of matplotlib.
+ (arguments `(#:tests? #f
+ #:python ,python-2))))
+
+(define-public python-matplotlib
+ (package
+ (name "python-matplotlib")
+ (version "1.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/matplotlib"
+ "/matplotlib-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0m6v9nwdldlwk22gcd339zg6mny5m301fxgks7z8sb8m9wawg8qp"))))
+ (build-system python-build-system)
+ (outputs '("out" "doc"))
+ (inputs
+ `(("python-setuptools" ,python-setuptools)
+ ("python-dateutil" ,python-dateutil-2)
+ ("python-pyparsing" ,python-pyparsing)
+ ("python-six" ,python-six)
+ ("python-pytz" ,python-pytz)
+ ("python-numpy" ,python-numpy-bootstrap)
+ ("python-sphinx" ,python-sphinx)
+ ("python-numpydoc" ,python-numpydoc)
+ ("python-nose" ,python-nose)
+ ("python-mock" ,python-mock)
+ ("libpng" ,libpng)
+ ("imagemagick" ,imagemagick)
+ ("freetype" ,freetype)
+ ;; FIXME: Add backends when available.
+ ;("python-pygtk" ,python-pygtk)
+ ;("python-pycairo" ,python-pycairo)
+ ;("python-pygobject" ,python-pygobject)
+ ;("python-wxpython" ,python-wxpython)
+ ;("python-pyqt" ,python-pyqt)
+ ))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("texlive" ,texlive)
+ ("texinfo" ,texinfo)))
+ (arguments
+ `(#:phases
+ (alist-cons-after
+ 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
+ (doc (string-append data "/doc/" ,name "-" ,version))
+ (info (string-append data "/info"))
+ (html (string-append doc "/html")))
+ (with-directory-excursion "doc"
+ ;; Without setting this variable we get an encoding error.
+ (setenv "LANG" "en_US.UTF-8")
+ ;; Produce pdf in 'A4' format.
+ (substitute* (find-files "." "conf\\.py")
+ (("latex_paper_size = 'letter'")
+ "latex_paper_size = 'a4'"))
+ (mkdir-p html)
+ (mkdir-p info)
+ ;; The doc recommends to run the 'html' target twice.
+ (system* "python" "make.py" "html")
+ (system* "python" "make.py" "html")
+ (system* "python" "make.py" "latex")
+ (system* "python" "make.py" "texinfo")
+ (copy-file "build/texinfo/matplotlib.info"
+ (string-append info "/matplotlib.info"))
+ (copy-file "build/latex/Matplotlib.pdf"
+ (string-append doc "/Matplotlib.pdf"))
+ (with-directory-excursion "build/html"
+ (map (lambda (file)
+ (let* ((dir (dirname file))
+ (tgt-dir (string-append html "/" dir)))
+ (unless (equal? "." dir)
+ (mkdir-p tgt-dir))
+ (copy-file file (string-append html "/" file))))
+ (find-files "." ".*"))))))
+ %standard-phases)))
+ (home-page "http://matplotlib.org")
+ (synopsis "2D plotting library for Python")
+ (description
+ "Matplotlib is a Python 2D plotting library which produces publication
+quality figures in a variety of hardcopy formats and interactive environments
+across platforms. Matplotlib can be used in Python scripts, the python and
+ipython shell, web application servers, and six graphical user interface
+toolkits.")
+ (license psfl)))
+
+(define-public python2-matplotlib
+ (let ((matplotlib (package-with-python2 python-matplotlib)))
+ (package (inherit matplotlib)
+ ;; Make sure we use exactly PYTHON2-NUMPYDOC, which is
+ ;; customized for Python 2.
+ (inputs `(("python2-numpydoc" ,python2-numpydoc)
+ ,@(alist-delete "python-numpydoc"
+ (package-inputs matplotlib)))))))
+
+;; Scipy 0.14.0 with Numpy 0.19.X fails several tests. This is known and
+;; planned to be fixed in 0.14.1. It is claimed that the failures can safely
+;; be ignored:
+;; http://mail.scipy.org/pipermail/scipy-dev/2014-September/020043.html
+;; https://github.com/scipy/scipy/issues/3853
+;;
+;; The main test suite procedure prints the summary message:
+;;
+;; Ran 16412 tests in 245.033s
+;; FAILED (KNOWNFAIL=277, SKIP=921, errors=327, failures=42)
+;;
+;; However, it still does return normally.
+(define-public python-scipy
+ (package
+ (name "python-scipy")
+ (version "0.14.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/scipy"
+ "/scipy-" version ".tar.gz"))
+ (sha256
+ (base32
+ "053bmz4qmnk4dmxvspfak8r10rpmy6mzwfzgy33z338ppzka6hab"))))
+ (build-system python-build-system)
+ (inputs
+ `(("python-numpy" ,python-numpy)
+ ("python-matplotlib" ,python-matplotlib)
+ ("python-pyparsing" ,python-pyparsing)
+ ("python-nose" ,python-nose)
+ ("python-sphinx" ,python-sphinx)
+ ("atlas" ,atlas)))
+ (native-inputs
+ `(("gfortran" ,gfortran-4.8)
+ ("texlive" ,texlive)
+ ("perl" ,perl)))
+ (outputs '("out" "doc"))
+ (arguments
+ `(#:phases
+ (alist-cons-before
+ 'build 'set-environment-variables
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((atlas-threaded
+ (string-append (assoc-ref inputs "atlas")
+ "/lib/libtatlas.so"))
+ ;; On single core CPUs only the serial library is created.
+ (atlas-lib
+ (if (file-exists? atlas-threaded)
+ atlas-threaded
+ (string-append (assoc-ref inputs "atlas")
+ "/lib/libsatlas.so"))))
+ (setenv "ATLAS" atlas-lib)))
+ (alist-cons-after
+ 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
+ (doc (string-append data "/doc/" ,name "-" ,version))
+ (html (string-append doc "/html"))
+ (pyver ,(string-append "PYVER=")))
+ (with-directory-excursion "doc"
+ ;; Without setting this variable we get an encoding error.
+ (setenv "LANG" "en_US.UTF-8")
+ ;; Fix generation of images for mathematical expressions.
+ (substitute* (find-files "source" "conf\\.py")
+ (("pngmath_use_preview = True")
+ "pngmath_use_preview = False"))
+ (mkdir-p html)
+ (system* "make" "html" pyver)
+ (system* "make" "latex" "PAPER=a4" pyver)
+ (system* "make" "-C" "build/latex" "all-pdf" "PAPER=a4" pyver)
+ (copy-file "build/latex/scipy-ref.pdf"
+ (string-append doc "/scipy-ref.pdf"))
+ (with-directory-excursion "build/html"
+ (for-each (lambda (file)
+ (let* ((dir (dirname file))
+ (tgt-dir (string-append html "/" dir)))
+ (unless (equal? "." dir)
+ (mkdir-p tgt-dir))
+ (copy-file file (string-append html "/" file))))
+ (find-files "." ".*"))))))
+ ;; Tests can only be run after the library has been installed and not
+ ;; within the source directory.
+ (alist-cons-after
+ 'install 'check
+ (lambda _
+ (with-directory-excursion "/tmp"
+ (zero? (system* "python" "-c" "import scipy; scipy.test()"))))
+ (alist-delete
+ 'check
+ %standard-phases))))))
+ (home-page "http://www.scipy.org/")
+ (synopsis "The Scipy library provides efficient numerical routines")
+ (description "The SciPy library is one of the core packages that make up
+the SciPy stack. It provides many user-friendly and efficient numerical
+routines such as routines for numerical integration and optimization.")
+ (license bsd-3)))
+
+(define-public python2-scipy
+ (let ((scipy (package-with-python2 python-scipy)))
+ (package (inherit scipy)
+ ;; Use packages customized for python-2.
+ (inputs `(("python2-matplotlib" ,python2-matplotlib)
+ ("python2-numpy" ,python2-numpy)
+ ,@(alist-delete "python-matplotlib"
+ (alist-delete "python-numpy"
+ (package-inputs scipy))))))))
+
+(define-public python-sqlalchemy
+ (package
+ (name "python-sqlalchemy")
+ (version "0.9.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/S/"
+ "SQLAlchemy/SQLAlchemy-" version ".tar.gz"))
+ (sha256
+ (base32
+ "059ayifj5l08v6vv56anhyibyllscn10dlzr2fcw68gz1hfjdzsz"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-cython" ,python-cython) ;for c extensions
+ ("python-pytest" ,python-pytest)
+ ("python-mock" ,python-mock))) ;for tests
+ (arguments
+ `(#:phases (alist-replace
+ 'check
+ (lambda _ (zero? (system* "py.test")))
+ %standard-phases)))
+ (home-page "http://www.sqlalchemy.org")
+ (synopsis "Database abstraction library")
+ (description
+ "SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that
+gives application developers the full power and flexibility of SQL. It
+provides a full suite of well known enterprise-level persistence patterns,
+designed for efficient and high-performing database access, adapted into a
+simple and Pythonic domain language.")
+ (license x11)))
+
+(define-public python2-sqlalchemy
+ (package-with-python2 python-sqlalchemy))
+
+(define-public python-distutils-extra
+ (package
+ (name "python-distutils-extra")
+ (version "2.38")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://launchpad.net/python-distutils-extra/trunk/"
+ version "/+download/python-distutils-extra-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0lx15kcbby9zisx33p2h5hgakgwh2bvh0ibag8z0px4j6ifhs41x"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)))
+ (home-page "https://launchpad.net/python-distutils-extra/")
+ (synopsis "Enhancements to Python's distutils")
+ (description
+ "The python-distutils-extra module enables you to easily integrate
+gettext support, themed icons, and scrollkeeper-based documentation into
+Python's distutils.")
+ (license gpl2)))
+
+(define-public python2-distutils-extra
+ (package-with-python2 python-distutils-extra))
+
+(define-public python2-elib.intl
+ (package
+ (name "python2-elib.intl")
+ (version "0.0.3")
+ (source
+ (origin
+ ;; This project doesn't tag releases or publish tarballs, so we take
+ ;; source from a (semi-arbitrary, i.e. latest as of now) git commit.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dieterv/elib.intl.git")
+ (commit "d09997cfef")))
+ (sha256
+ (base32
+ "0y7vzff9xgbnaay7m0va1arl6g68ncwrvbgwl7jqlclsahzzb09d"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python2-setuptools" ,python2-setuptools)))
+ (arguments
+ ;; incompatible with Python 3 (exception syntax)
+ `(#:python ,python-2
+ #:tests? #f
+ ;; With standard flags, the install phase attempts to create a zip'd
+ ;; egg file, and fails with an error: 'ZIP does not support timestamps
+ ;; before 1980'
+ #:configure-flags '("--single-version-externally-managed"
+ "--record=elib.txt")))
+ (home-page "https://github.com/dieterv/elib.intl")
+ (synopsis "Enhanced internationalization for Python")
+ (description
+ "The elib.intl module provides enhanced internationalization (I18N)
+services for your Python modules and applications.")
+ (license lgpl3+)))
+
+(define-public python-pillow
+ (package
+ (name "python-pillow")
+ (version "2.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/P/"
+ "Pillow/Pillow-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0iw36c73wkhz88wa78v6l43llsb080ihw8yq7adhfqxdib7l4hzr"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)
+ ("python-nose" ,python-nose)))
+ (inputs
+ `(("lcms" ,lcms)
+ ("zlib" ,zlib)
+ ("libjpeg" ,libjpeg)
+ ("openjpeg" ,openjpeg)
+ ("libtiff" ,libtiff)))
+ (propagated-inputs
+ `(;; Used at runtime for pkg_resources
+ ("python-setuptools" ,python-setuptools)))
+ (arguments
+ `(#:phases (alist-cons-after
+ 'install 'check-installed
+ (lambda _
+ (begin
+ (setenv "HOME" (getcwd))
+ (and (zero? (system* "python" "selftest.py" "--installed"))
+ (zero? (system* "python" "test-installed.py")))))
+ (alist-delete 'check %standard-phases))))
+ (home-page "https://pypi.python.org/pypi/Pillow")
+ (synopsis "Fork of the Python Imaging Library")
+ (description
+ "The Python Imaging Library adds image processing capabilities to your
+Python interpreter. This library provides extensive file format support, an
+efficient internal representation, and fairly powerful image processing
+capabilities. The core image library is designed for fast access to data
+stored in a few basic pixel formats. It should provide a solid foundation for
+a general image processing tool.")
+ (license (x11-style
+ "http://www.pythonware.com/products/pil/license.htm"
+ "The PIL Software License"))))
+
+(define-public python2-pillow
+ (package-with-python2 python-pillow))
+
+(define-public python-pycparser
+ (package
+ (name "python-pycparser")
+ (version "2.10")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/p/"
+ "pycparser/pycparser-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0v5qfq03yvd1pi0dwlgfai0p3dh9bq94pydn19c4pdn0c6v9hzcm"))))
+ (outputs '("out" "doc"))
+ (build-system python-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("python-setuptools" ,python-setuptools)))
+ (arguments
+ `(#:phases
+ (alist-replace
+ 'check
+ (lambda _
+ (with-directory-excursion "tests"
+ (zero? (system* "python" "all_tests.py"))))
+ (alist-cons-after
+ 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
+ (doc (string-append data "/doc/" ,name "-" ,version))
+ (examples (string-append doc "/examples")))
+ (mkdir-p examples)
+ (for-each (lambda (file)
+ (copy-file (string-append "." file)
+ (string-append doc file)))
+ '("/README.rst" "/CHANGES" "/LICENSE"))
+ (copy-recursively "examples" examples)))
+ %standard-phases))))
+ (home-page "https://github.com/eliben/pycparser")
+ (synopsis "C parser in Python")
+ (description
+ "Pycparser is a complete parser of the C language, written in pure Python
+using the PLY parsing library. It parses C code into an AST and can serve as
+a front-end for C compilers or analysis tools.")
+ (license bsd-3)))
+
+(define-public python2-pycparser
+ (package-with-python2 python-pycparser))
+
+(define-public python-cffi
+ (package
+ (name "python-cffi")
+ (version "0.8.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://pypi.python.org/packages/source/c/"
+ "cffi/cffi-" version ".tar.gz"))
+ (sha256
+ (base32 "0406j3sgndmx88idv5zxkkrwfqxmjl18pj8gf47nsg4ymzixjci5"))))
+ (build-system python-build-system)
+ (outputs '("out" "doc"))
+ (inputs
+ `(("libffi" ,libffi)))
+ (propagated-inputs ; required at run-time
+ `(("python-pycparser" ,python-pycparser)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("python-sphinx" ,python-sphinx)
+ ("python-setuptools" ,python-setuptools)))
+ (arguments
+ `(#:tests? #f ; FIXME: requires pytest
+ #:phases
+ (alist-cons-after
+ 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
+ (doc (string-append data "/doc/" ,name "-" ,version))
+ (html (string-append doc "/html")))
+ (with-directory-excursion "doc"
+ (system* "make" "html")
+ (mkdir-p html)
+ (copy-recursively "build/html" html))
+ (copy-file "LICENSE" (string-append doc "/LICENSE"))))
+ %standard-phases)))
+ (home-page "http://cffi.readthedocs.org")
+ (synopsis "Foreign function interface for Python")
+ (description
+ "Foreign Function Interface for Python calling C code.")
+ (license expat)))
+
+(define-public python2-cffi
+ (package-with-python2 python-cffi))
diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm
index 75a14b6e8f..0a37a246bd 100644
--- a/gnu/packages/qemu.scm
+++ b/gnu/packages/qemu.scm
@@ -33,7 +33,7 @@
#:use-module (gnu packages image)
#:use-module (gnu packages attr)
#:use-module (gnu packages linux)
- #:use-module (gnu packages xorg)
+ #:use-module (gnu packages xdisorg)
#:use-module (gnu packages gl)
#:use-module (gnu packages sdl)
#:use-module (gnu packages perl))
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 46c7c34c3c..30b772d4d9 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -26,6 +26,7 @@
#:use-module (gnu packages bison)
#:use-module (gnu packages compression)
#:use-module (gnu packages fontutils)
+ #:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
@@ -36,7 +37,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
- #:use-module (gnu packages gl)
+ #:use-module (gnu packages ruby)
#:use-module (gnu packages xorg))
(define-public libxkbcommon
@@ -52,10 +53,20 @@
"176ii5dn2wh74q48sd8ac37ljlvgvp5f506glr96z6ibfhj7igch"))))
(build-system gnu-build-system)
(inputs
- `(("libxcb" ,libxcb)))
+ `(("libx11" ,libx11)
+ ("libxcb" ,libxcb)
+ ("xkeyboard-config" ,xkeyboard-config)))
(native-inputs
`(("bison" ,bison)
("pkg-config" ,pkg-config)))
+ (arguments
+ `(#:configure-flags
+ (list (string-append "--with-xkb-config-root="
+ (assoc-ref %build-inputs "xkeyboard-config")
+ "/share/X11/xkb")
+ (string-append "--with-x-locale-root="
+ (assoc-ref %build-inputs "libx11")
+ "/share/X11/locale"))))
(home-page "http://xkbcommon.org/")
(synopsis "Library to handle keyboard descriptions")
(description "Xkbcommon is a library to handle keyboard descriptions,
@@ -85,7 +96,6 @@ X11 (yet).")
(propagated-inputs
`(("mesa" ,mesa)))
(inputs
- ;; FIXME: Add input ruby once available.
`(("alsa-lib" ,alsa-lib)
("dbus" ,dbus)
("fontconfig" ,fontconfig)
@@ -102,6 +112,7 @@ X11 (yet).")
("openssl" ,openssl)
("pulseaudio" ,pulseaudio)
("python-wrapper" ,python-wrapper)
+ ("ruby" ,ruby)
("xcb-util" ,xcb-util)
("xcb-util-image" ,xcb-util-image)
("xcb-util-keysyms" ,xcb-util-keysyms)
diff --git a/gnu/packages/scrot.scm b/gnu/packages/scrot.scm
deleted file mode 100644
index b842c2dcf0..0000000000
--- a/gnu/packages/scrot.scm
+++ /dev/null
@@ -1,68 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 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 GNU Guix. If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu packages scrot)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix build-system gnu)
- #:use-module (guix licenses)
- #:use-module (gnu packages xorg)
- #:use-module (gnu packages image))
-
-(define-public scrot
- (package
- (name "scrot")
- (version "0.8")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "http://linuxbrit.co.uk/downloads/scrot-"
- version ".tar.gz"))
- (sha256
- (base32
- "1wll744rhb49lvr2zs6m93rdmiq59zm344jzqvijrdn24ksiqgb1"))))
- (build-system gnu-build-system)
- (arguments
- ;; By default, man and doc are put in PREFIX/{man,doc} instead of
- ;; PREFIX/share/{man,doc}.
- '(#:configure-flags
- (list (string-append "--mandir="
- (assoc-ref %outputs "out")
- "/share/man"))
- #:phases (alist-replace
- 'install
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (doc (string-append out "/share/doc/scrot")))
- (mkdir-p doc)
- (zero?
- (system* "make" "install"
- (string-append "docsdir=" doc)))))
- %standard-phases)))
- (inputs
- `(("libx11" ,libx11)
- ("giblib" ,giblib)))
- (home-page "http://linuxbrit.co.uk/software/")
- (synopsis "Command-line screen capture utility for X Window System")
- (description
- "Scrot allows to save a screenshot of a full screen, a window or a part
-of the screen selected by mouse.")
- ;; This license removes a clause about X Consortium from the original
- ;; X11 license.
- (license (x11-style "file://COPYING"
- "See 'COPYING' in the distribution."))))
diff --git a/gnu/packages/socat.scm b/gnu/packages/socat.scm
new file mode 100644
index 0000000000..7c0bc3d964
--- /dev/null
+++ b/gnu/packages/socat.scm
@@ -0,0 +1,55 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.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 GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages socat)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages openssl))
+
+;; XXX: Group with other networking tools like tcpdump in a module?
+(define-public socat
+ (package
+ (name "socat")
+ (version "1.7.2.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.dest-unreach.org/socat/download/socat-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "028yjka2zr6j1i8pmfmvzqki8ajczdl1hnry1x31xbbg3j83jxsb"))))
+ (build-system gnu-build-system)
+ (arguments '(#:tests? #f)) ;no 'check' phase
+ (inputs `(("openssl" ,openssl)))
+ (home-page "http://www.dest-unreach.org/socat/")
+ (synopsis
+ "Open bidirectional communication channels from the command line")
+ (description
+ "socat is a relay for bidirectional data transfer between two independent
+data channels---files, pipes, devices, sockets, etc. It can create
+\"listening\" sockets, named pipes, and pseudo terminals.
+
+socat can be used, for instance, as TCP port forwarder, as a shell interface
+to UNIX sockets, IPv6 relay, for redirecting TCP oriented programs to a serial
+line, to logically connect serial lines on different computers, or to
+establish a relatively secure environment (su and chroot) for running client
+or server shell scripts with network connections. ")
+ (license license:gpl2)))
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index a5a7902f9c..583c44c50b 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -56,13 +56,13 @@ reimplementation.")
(define-public ucommon
(package
(name "ucommon")
- (version "6.1.11")
+ (version "6.2.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/commoncpp/" name "-"
version ".tar.gz"))
(sha256 (base32
- "0hpwxiyd7c3qnzksk6vw94cdig1v8yy6khgcaa87a7hb3zbkv4zg"))))
+ "1apk1k877knvh2k1yqspsln5wm81a4ly4w97ang1qhi21ydwgjnn"))))
(build-system gnu-build-system)
(synopsis "Common C++ framework for threaded applications")
(description "GNU uCommon C++ is meant as a very light-weight C++ library
@@ -75,13 +75,13 @@ support.")
(define-public ccrtp
(package
(name "ccrtp")
- (version "2.0.9")
+ (version "2.1.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/ccrtp/ccrtp-"
version ".tar.gz"))
(sha256 (base32
- "1prh2niwa4lzvskk12j4ckr7dv141dfh8yjmpkbhbnv4gmpifci0"))))
+ "1p1pk2m7v75rdrh05rizpqcd5p08g3n541rw0kssyfzd805fb90d"))))
(build-system gnu-build-system)
(inputs `(("ucommon" ,ucommon)
("libgcrypt" ,libgcrypt)))
@@ -142,13 +142,13 @@ multiplayer games.")
(define-public sipwitch
(package
(name "sipwitch")
- (version "1.9.2")
+ (version "1.9.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/sipwitch/sipwitch-"
version ".tar.gz"))
(sha256 (base32
- "0cf0zrdfi4w9qn50ags3rvwc29km2k526f6sm6i7jb0hsrvg0k8x"))))
+ "1iyh390rmxqrks7rypl8ql7fhd3pmy2ckqnp1p0llzrx67jh2q91"))))
(build-system gnu-build-system)
;; The configure.ac uses pkg-config but in a kludgy way which breaks when
;; cross-compiling. Among other issues there the program name "pkg-config"
diff --git a/gnu/packages/texlive.scm b/gnu/packages/texlive.scm
index 02637befe4..f14bbb8c06 100644
--- a/gnu/packages/texlive.scm
+++ b/gnu/packages/texlive.scm
@@ -38,6 +38,7 @@
#:use-module (gnu packages tcsh)
#:use-module (gnu packages which)
#:use-module (gnu packages xorg)
+ #:use-module (gnu packages xdisorg)
#:use-module (gnu packages zip)
#:autoload (gnu packages texinfo) (texinfo))
diff --git a/gnu/packages/tre.scm b/gnu/packages/tre.scm
new file mode 100644
index 0000000000..33d2cff093
--- /dev/null
+++ b/gnu/packages/tre.scm
@@ -0,0 +1,45 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright 2014 John Darrington
+;;;
+;;; 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 tre)
+ #:use-module (gnu packages)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix licenses))
+
+(define-public tre
+ (package
+ (name "tre")
+ (version "0.8.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (string-append "http://laurikari.net/tre/" name "-" version
+ ".tar.bz2"))
+ (sha256
+ (base32 "0n36cgqys59r2gmb7jzbqiwsy790v8nbxk82d2n2saz0rp145ild"))))
+
+ (build-system gnu-build-system)
+ (synopsis "Approximate regex matching library and agrep utility")
+ (description "Superset of the POSIX regex API, enabling approximate
+matching. Also ships a version of the agrep utility which behaves similar to
+grep but features ineaxct matching.")
+ (home-page "http://laurikari.net/tre")
+ (license bsd-2)))
diff --git a/gnu/packages/unclutter.scm b/gnu/packages/unclutter.scm
deleted file mode 100644
index ca1f7ede77..0000000000
--- a/gnu/packages/unclutter.scm
+++ /dev/null
@@ -1,69 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 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 GNU Guix. If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu packages unclutter)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix build-system gnu)
- #:use-module (guix licenses)
- #:use-module (gnu packages xorg))
-
-(define-public unclutter
- (package
- (name "unclutter")
- (version "8")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "http://ftp.x.org/contrib/utilities/unclutter-"
- version ".tar.Z"))
- (sha256
- (base32
- "0ahrr5z6wxqqfyihm112hnq0859zlxisrb3y5232zav58j6sfmdq"))))
- (build-system gnu-build-system)
- (arguments
- '(#:tests? #f ; no check target
- #:phases (alist-delete
- 'configure
- (alist-replace
- 'install
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (man1 (string-append out "/share/man/man1")))
- (mkdir-p bin)
- (mkdir-p man1)
- (zero?
- (system* "make" "install" "install.man"
- (string-append "BINDIR=" bin)
- (string-append "MANDIR=" man1)))))
- %standard-phases))))
- (inputs `(("libx11" ,libx11)))
- (home-page "http://ftp.x.org/contrib/utilities/")
- (synopsis "Hide idle mouse cursor")
- (description
- "Unclutter is a program which runs permanently in the background of an
-X11 session. It checks on the X11 pointer (cursor) position every few
-seconds, and when it finds it has not moved (and no buttons are pressed
-on the mouse, and the cursor is not in the root window) it creates a
-small sub-window as a child of the window the cursor is in. The new
-window installs a cursor of size 1x1 but a mask of all 0, i.e. an
-invisible cursor. This allows you to see all the text in an xterm or
-xedit, for example. The human factors crowd would agree it should make
-things less distracting.")
- (license public-domain)))
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 0b52f0c2e5..4f9ed54d56 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,13 +23,18 @@
(define-module (gnu packages version-control)
#:use-module ((guix licenses)
- #:select (asl2.0 gpl1+ gpl2 gpl2+ gpl3+ x11-style))
+ #:select (asl2.0 bsd-2
+ gpl1+ gpl2 gpl2+ gpl3+ lgpl2.1
+ x11-style))
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
+ #:use-module (guix build-system trivial)
#:use-module (guix build utils)
#:use-module (gnu packages apr)
+ #:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages cook)
#:use-module (gnu packages curl)
@@ -204,6 +210,130 @@ everything from small to very large projects with speed and efficiency.")
(license gpl2)
(home-page "http://git-scm.com/")))
+(define-public shflags
+ (package
+ (name "shflags")
+ (version "1.0.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://shflags.googlecode.com/files/"
+ "shflags-" version ".tgz"))
+ (sha256
+ (base32
+ "08laxhf1hifh3w4j0hri5ppcklaqz0mnkmbaz8j0wxih29vi8slm"))))
+ (build-system trivial-build-system)
+ (native-inputs `(("tar" ,tar)
+ ("gzip" ,gzip)))
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder (begin
+ (use-modules (guix build utils))
+ (let* ((source (assoc-ref %build-inputs "source"))
+ (tar (assoc-ref %build-inputs "tar"))
+ (gzip (assoc-ref %build-inputs "gzip"))
+ (output (assoc-ref %outputs "out"))
+ (srcdir (string-append output "/src")))
+ (begin
+ (setenv "PATH" (string-append gzip "/bin"))
+ (system* (string-append tar "/bin/tar") "xzf"
+ source)
+ (chdir ,(string-append name "-" version))
+ (mkdir-p srcdir)
+ (copy-file "src/shflags"
+ (string-append srcdir "/shflags"))
+ #t)))))
+ (home-page "https://code.google.com/p/shflags/")
+ (synopsis "Command-line flags library for shell scripts")
+ (description
+ "Shell Flags (shFlags) is a library written to greatly simplify the
+handling of command-line flags in Bourne based Unix shell scripts (bash, dash,
+ksh, sh, zsh). Most shell scripts use getopt for flags processing, but the
+different versions of getopt on various OSes make writing portable shell
+scripts difficult. shFlags instead provides an API that doesn't change across
+shell and OS versions so the script writer can be confident that the script
+will work.")
+ (license lgpl2.1)))
+
+(define-public git-flow
+ (package
+ (name "git-flow")
+ ;; This version has not be officially released yet, so we build it
+ ;; directly from the git repository.
+ (version "0.4.2-pre")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/nvie/gitflow/")
+ (commit "15aab26")))
+ (sha256
+ (base32
+ "01fs97q76fdfnvmrh2cyjhywcs3pykf1dg58sy0frflnsdzs6prx"))))
+ (build-system gnu-build-system)
+ (inputs `(("shflags" ,shflags)))
+ (arguments
+ '(#:tests? #f ; no tests
+ #:make-flags (list (string-append "prefix="
+ (assoc-ref %outputs "out")))
+ #:phases (alist-cons-after
+ 'unpack 'reset-shFlags-link
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; The link points to a file in the shFlags submodule.
+ ;; Redirect it to point to our system shFlags.
+ (let ((shflags (assoc-ref inputs "shflags")))
+ (begin
+ (delete-file "gitflow-shFlags")
+ (symlink (string-append shflags "/src/shflags")
+ "gitflow-shFlags"))))
+ (alist-delete
+ 'configure
+ (alist-delete 'build %standard-phases)))))
+ (home-page "http://nvie.com/posts/a-successful-git-branching-model/")
+ (synopsis "Git extensions for Vincent Driessen's branching model")
+ (description
+ "Vincent Driessen's branching model is a git branching and release
+management strategy that helps developers keep track of features, hotfixes,
+and releases in bigger software projects. The git-flow library of git
+subcommands helps automate some parts of the flow to make working with it a
+lot easier.")
+ (license bsd-2)))
+
+(define-public git-test-sequence
+ (let ((commit "48e5a2f"))
+ (package
+ (name "git-test-sequence")
+ (version (string-append "20140312." commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ ;; There are many other scripts in this directory; we
+ ;; are interested in just one for this package.
+ (url "https://github.com/dustin/bindir")
+ (commit commit)))
+ (sha256
+ (base32
+ "1dcq0y16yznbv4k9h8gg90kv1gkn8r8dbvl4m2rpfd7q5nqhn617"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder (begin
+ (use-modules (guix build utils))
+ (let* ((source (assoc-ref %build-inputs "source"))
+ (output (assoc-ref %outputs "out"))
+ (bindir (string-append output "/bin"))
+ (script "git-test-sequence"))
+ (begin
+ (mkdir-p bindir)
+ (copy-file (string-append source "/" script)
+ (string-append bindir "/" script))
+ #t)))))
+ (home-page "http://dustin.sallings.org/2010/03/28/git-test-sequence.html")
+ (synopsis "Run a command over a sequence of commits")
+ (description
+ "git-test-sequence is similar to an automated git bisect except it’s
+linear. It will test every change between two points in the DAG. It will
+also walk each side of a merge and test those changes individually.")
+ (license (x11-style "file://LICENSE")))))
+
(define-public mercurial
(package
(name "mercurial")
@@ -297,33 +427,45 @@ property manipulation.")
(version "1.7.18")
(source (origin
(method url-fetch)
- (uri (string-append "http://archive.apache.org/dist/subversion/subversion-"
- version ".tar.bz2"))
+ (uri (string-append "http://archive.apache.org/dist/subversion/"
+ "subversion-" version ".tar.bz2"))
(sha256
(base32
"06nrqnn3qq1hhskkcdbm0ilk2xv6ay2gyf2c7qvxp6xncb782wzn"))))
(build-system gnu-build-system)
(arguments
'(#:phases (alist-cons-after
- 'install 'instal-perl-bindings
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Follow the instructions from
- ;; 'subversion/bindings/swig/INSTALL'.
- (let ((out (assoc-ref outputs "out")))
- (and (zero? (system* "make" "swig-pl-lib"))
- ;; FIXME: Test failures.
- ;; (zero? (system* "make" "check-swig-pl"))
- (zero? (system* "make" "install-swig-pl-lib"))
+ 'configure 'patch-libtool-wrapper-ls
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; This substitution allows tests svnauthz_tests and
+ ;; svnlook_tests to pass. These tests execute svnauthz and
+ ;; svnlook through their libtool wrapper scripts from svn
+ ;; hooks, whose empty environments cause "ls: command not
+ ;; found" errors. It would be nice if this fix ultimately
+ ;; made its way into libtool.
+ (let ((coreutils (assoc-ref inputs "coreutils")))
+ (substitute* "libtool"
+ (("\\\\`ls") (string-append "\\`" coreutils "/bin/ls")))))
+ (alist-cons-after
+ 'install 'instal-perl-bindings
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Follow the instructions from
+ ;; 'subversion/bindings/swig/INSTALL'.
+ (let ((out (assoc-ref outputs "out")))
+ (and (zero? (system* "make" "swig-pl-lib"))
+ ;; FIXME: Test failures.
+ ;; (zero? (system* "make" "check-swig-pl"))
+ (zero? (system* "make" "install-swig-pl-lib"))
- ;; Set the right installation prefix.
- (with-directory-excursion
- "subversion/bindings/swig/perl/native"
- (and (zero?
- (system* "perl" "Makefile.PL"
- (string-append "PREFIX=" out)))
- (zero?
- (system* "make" "install")))))))
- %standard-phases)))
+ ;; Set the right installation prefix.
+ (with-directory-excursion
+ "subversion/bindings/swig/perl/native"
+ (and (zero?
+ (system* "perl" "Makefile.PL"
+ (string-append "PREFIX=" out)))
+ (zero?
+ (system* "make" "install")))))))
+ %standard-phases))))
(native-inputs
`(("pkg-config" ,pkg-config)
;; For the Perl bindings.
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 7ec1537678..063f1dae43 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -395,7 +395,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2014.09.06")
+ (version "2014.11.21.1")
(source (origin
(method url-fetch)
(uri (string-append "http://youtube-dl.org/downloads/"
@@ -403,7 +403,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
version ".tar.gz"))
(sha256
(base32
- "1a50vqgzp9wjh2763shald6dlmdd5qlqy83vg4yrihdrlh8sk6dd"))))
+ "0rxpx8j4qhhsws6czlfji1x9igsinkbbwvld10qdylll7g9q1v7j"))))
(build-system python-build-system)
(inputs `(("setuptools" ,python-setuptools)))
(home-page "http://youtube-dl.org")
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 0731d0b84b..1ff3dfb5a5 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de>
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -19,6 +20,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages web)
+ #:use-module (ice-9 match)
#:use-module ((guix licenses) #:prefix l:)
#:use-module (guix packages)
#:use-module (guix download)
@@ -77,6 +79,69 @@ and its related documentation.")
(license l:asl2.0)
(home-page "https://httpd.apache.org/")))
+(define-public nginx
+ (package
+ (name "nginx")
+ (version "1.6.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://nginx.org/download/nginx-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "060s77qxhkn02fjkcndsr0xppj2bppjzkj0gn84svrykb4lqqq5m"))))
+ (build-system gnu-build-system)
+ (inputs `(("pcre" ,pcre)
+ ("openssl" ,openssl)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:tests? #f ; no test target
+ #:phases
+ (alist-cons-before
+ 'configure 'patch-/bin/sh
+ (lambda _
+ (substitute* "auto/feature"
+ (("/bin/sh") (which "bash"))))
+ (alist-replace
+ 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((flags
+ (list (string-append "--prefix=" (assoc-ref outputs "out"))
+ "--with-http_ssl_module"
+ "--with-pcre-jit"
+ "--with-ipv6"
+ "--with-debug"
+ ;; Even when not cross-building, we pass the
+ ;; --crossbuild option to avoid customizing for the
+ ;; kernel version on the build machine.
+ ,(let ((system "Linux") ; uname -s
+ (release "2.6.32") ; uname -r
+ ;; uname -m
+ (machine (match (or (%current-target-system)
+ (%current-system))
+ ("x86_64-linux" "x86_64")
+ ("i686-linux" "i686")
+ ("mips64el-linux" "mips64"))))
+ (string-append "--crossbuild="
+ system ":" release ":" machine)))))
+ (setenv "CC" "gcc")
+ (format #t "environment variable `CC' set to `gcc'~%")
+ (format #t "configure flags: ~s~%" flags)
+ (zero? (apply system* "./configure" flags))))
+ %standard-phases))))
+ (home-page "http://nginx.org")
+ (synopsis "HTTP and reverse proxy server")
+ (description
+ "Nginx (\"engine X\") is a high-performance web and reverse proxy server
+created by Igor Sysoev. It can be used both as a standalone web server
+and as a proxy to reduce the load on back-end HTTP or mail servers.")
+ ;; Almost all of nginx is distributed under the bsd-2 license.
+ ;; The exceptions are:
+ ;; * The 'nginx-http-push' module is covered by the expat license.
+ ;; * The 'nginx-development-kit' module is mostly covered by bsd-3,
+ ;; except for two source files which are bsd-4 licensed.
+ (license (list l:bsd-2 l:expat l:bsd-3 l:bsd-4))))
+
(define-public json-c
(package
(name "json-c")
diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm
index f937e2ae3c..8debe4baea 100644
--- a/gnu/packages/wget.scm
+++ b/gnu/packages/wget.scm
@@ -31,7 +31,7 @@
(define-public wget
(package
(name "wget")
- (version "1.16")
+ (version "1.16.1")
(source
(origin
(method url-fetch)
@@ -39,7 +39,7 @@
version ".tar.xz"))
(sha256
(base32
- "1rxhr3jmgbwryzl51di4avqxw9m9j1z2aak8q1npns0p184xsqcj"))))
+ "0csdw41hixa4kd0m19r7p41sip1hlnkp5y62bdzq9zhmxq3wg5ib"))))
(build-system gnu-build-system)
(inputs
`(("gnutls" ,gnutls)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
new file mode 100644
index 0000000000..6820d018e3
--- /dev/null
+++ b/gnu/packages/xdisorg.scm
@@ -0,0 +1,341 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2014 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 GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages xdisorg)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages xorg))
+
+;; packages outside the x.org system proper
+
+(define-public xclip
+ (package
+ (name "xclip")
+ (version "0.12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/" name "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0ibcf46rldnv0r424qcnai1fa5iq3lm5q5rdd7snsi5sb78gmixp"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f)) ; There is no test suite
+ (inputs `(("libxmu" ,libxmu)
+ ("libxt" ,libxt)))
+ (home-page "http://xclip.sourceforge.net/")
+ (synopsis "Command line interface to X11 clipboard")
+ (description "Xclip is a command line interface to the X11 clipboard. It
+can also be used for copying files, as an alternative to sftp/scp, thus
+avoiding password prompts when X11 forwarding has already been setup.")
+ (license license:gpl2+)))
+
+(define-public xeyes
+ (package
+ (name "xeyes")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://xeyes.sourcearchive.com/downloads/1.0.1/xeyes_"
+ version
+ ".orig.tar.gz"))
+ (sha256
+ (base32
+ "04c3md570j67g55h3bix1qbngcslnq91skli51k3g1avki88zkm9"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libxext" ,libxext)
+ ("libxmu" ,libxmu)
+ ("libxt" ,libxt)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://xeyes.sourcearchive.com/")
+ (synopsis "Follow-the-mouse X demo")
+ (description "Xeyes is a demo program for x.org. It shows eyes
+following the mouse.")
+ (license license:x11)))
+
+
+(define-public pixman
+ (package
+ (name "pixman")
+ (version "0.32.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://cairographics.org/releases/pixman-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "113ycngcssbrps217dyajq96hm9xghsfch82h14yffla1r1fviw0"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libpng" ,libpng)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://www.pixman.org/")
+ (synopsis "Low-level pixel manipulation library")
+ (description "Pixman is a low-level software library for pixel
+manipulation, providing features such as image compositing and trapezoid
+rasterisation.")
+ (license license:x11)))
+
+
+(define-public libdrm
+ (package
+ (name "libdrm")
+ (version "2.4.46")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://dri.freedesktop.org/libdrm/libdrm-"
+ version
+ ".tar.bz2"))
+ (sha256
+ (base32
+ "1wah4qmrrcv0gnx65lhrlxb6gprxch92wy8lhxv6102fml6k5krk"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libpciaccess" ,libpciaccess)
+ ("libpthread-stubs" ,libpthread-stubs)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://dri.freedesktop.org/wiki/")
+ (synopsis "Direct rendering userspace library")
+ (description "The Direct Rendering Infrastructure, also known as the DRI,
+is a framework for allowing direct access to graphics hardware under the
+X Window System in a safe and efficient manner. It includes changes to the
+X server, to several client libraries, and to the kernel (DRM, Direct
+Rendering Manager). The most important use for the DRI is to create fast
+OpenGL implementations providing hardware acceleration for Mesa.
+Several 3D accelerated drivers have been written to the DRI specification,
+including drivers for chipsets produced by 3DFX, AMD (formerly ATI), Intel
+and Matrox.")
+ (license license:x11)))
+
+
+;; old version, required by old mesa, see
+;; http://www.mail-archive.com/nouveau@lists.freedesktop.org/msg10098.html
+(define-public libdrm-2.4.33
+ (package (inherit libdrm)
+ (version "2.4.33")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://dri.freedesktop.org/libdrm/libdrm-"
+ version
+ ".tar.bz2"))
+ (sha256
+ (base32
+ "1slgi61n4dlsfli47ql354fd1ppj7n40jd94wvnsdqx0mna9syrd"))))
+ (arguments
+ `(#:configure-flags
+ ;; create libdrm_nouveau.so, needed by mesa, see
+ ;; http://comments.gmane.org/gmane.linux.lfs.beyond.support/43261
+ `("--enable-nouveau-experimental-api")))))
+
+
+(define-public mtdev
+ (package
+ (name "mtdev")
+ (version "1.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://bitmath.org/code/mtdev/mtdev-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "159ndzwfpw0xr8mw4lhl47w9c2krshlfrscs7k6n186vknv2hk3d"))))
+ (build-system gnu-build-system)
+ (home-page "http://bitmath.org/code/mtdev/")
+ (synopsis "Multitouch protocol translation library")
+ (description "Mtdev is a stand-alone library which transforms all
+variants of kernel MT events to the slotted type B protocol. The events
+put into mtdev may be from any MT device, specifically type A without
+contact tracking, type A with contact tracking, or type B with contact
+tracking.")
+ (license license:x11)))
+
+(define-public startup-notification
+ (package
+ (name "startup-notification")
+ (version "0.12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.freedesktop.org/software/" name
+ "/releases/" name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0jmyryrpqb35y9hd5sgxqy2z0r1snw7d3ljw0jak0n0cjdz1yf9w"))))
+ (build-system gnu-build-system)
+ (native-inputs `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libx11" ,libx11)
+ ("xcb-util" ,xcb-util)))
+ (home-page "http://www.freedesktop.org/wiki/Software/startup-notification/")
+ (synopsis "Application startup notification and feedback library")
+ (description
+ "Startup-notification contains a reference implementation of the startup
+notification protocol. The reference implementation is mostly under an X Window
+System style license, and has no special dependencies.")
+ ;; Most of the code is provided under x11 license.
+ (license license:lgpl2.0+)))
+
+(define-public wmctrl
+ (package
+ (name "wmctrl")
+ (version "1.07")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://tomas.styblo.name/wmctrl/dist/wmctrl-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1afclc57b9017a73mfs9w7lbdvdipmf9q0xdk116f61gnvyix2np"))
+ (patches (list (search-patch "wmctrl-64-fix.patch")))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:configure-flags
+ (list (string-append "--mandir="
+ (assoc-ref %outputs "out")
+ "/share/man"))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libx11" ,libx11)
+ ("libxmu" ,libxmu)
+ ("glib" ,glib)))
+ (home-page "http://tomas.styblo.name/wmctrl/")
+ (synopsis "Command-line tool to control X window managers")
+ (description
+ "Wmctrl allows to interact with an X window manager that is compatible
+with the EWMH/NetWM specification. It can query the window manager for
+information, and request for certain window management actions (resize and
+move windows, switch between desktops, etc.)")
+ (license license:gpl2+)))
+
+(define-public scrot
+ (package
+ (name "scrot")
+ (version "0.8")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://linuxbrit.co.uk/downloads/scrot-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1wll744rhb49lvr2zs6m93rdmiq59zm344jzqvijrdn24ksiqgb1"))))
+ (build-system gnu-build-system)
+ (arguments
+ ;; By default, man and doc are put in PREFIX/{man,doc} instead of
+ ;; PREFIX/share/{man,doc}.
+ '(#:configure-flags
+ (list (string-append "--mandir="
+ (assoc-ref %outputs "out")
+ "/share/man"))
+ #:phases (alist-replace
+ 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (doc (string-append out "/share/doc/scrot")))
+ (mkdir-p doc)
+ (zero?
+ (system* "make" "install"
+ (string-append "docsdir=" doc)))))
+ %standard-phases)))
+ (inputs
+ `(("libx11" ,libx11)
+ ("giblib" ,giblib)))
+ (home-page "http://linuxbrit.co.uk/software/")
+ (synopsis "Command-line screen capture utility for X Window System")
+ (description
+ "Scrot allows to save a screenshot of a full screen, a window or a part
+of the screen selected by mouse.")
+ ;; This license removes a clause about X Consortium from the original
+ ;; X11 license.
+ (license (license:x11-style "file://COPYING"
+ "See 'COPYING' in the distribution."))))
+
+(define-public unclutter
+ (package
+ (name "unclutter")
+ (version "8")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://ftp.x.org/contrib/utilities/unclutter-"
+ version ".tar.Z"))
+ (sha256
+ (base32
+ "0ahrr5z6wxqqfyihm112hnq0859zlxisrb3y5232zav58j6sfmdq"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ; no check target
+ #:phases (alist-delete
+ 'configure
+ (alist-replace
+ 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (man1 (string-append out "/share/man/man1")))
+ (mkdir-p bin)
+ (mkdir-p man1)
+ (zero?
+ (system* "make" "install" "install.man"
+ (string-append "BINDIR=" bin)
+ (string-append "MANDIR=" man1)))))
+ %standard-phases))))
+ (inputs `(("libx11" ,libx11)))
+ (home-page "http://ftp.x.org/contrib/utilities/")
+ (synopsis "Hide idle mouse cursor")
+ (description
+ "Unclutter is a program which runs permanently in the background of an
+X11 session. It checks on the X11 pointer (cursor) position every few
+seconds, and when it finds it has not moved (and no buttons are pressed
+on the mouse, and the cursor is not in the root window) it creates a
+small sub-window as a child of the window the cursor is in. The new
+window installs a cursor of size 1x1 but a mask of all 0, i.e. an
+invisible cursor. This allows you to see all the text in an xterm or
+xedit, for example. The human factors crowd would agree it should make
+things less distracting.")
+ (license license:public-domain)))
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
new file mode 100644
index 0000000000..69776fc582
--- /dev/null
+++ b/gnu/packages/xfce.scm
@@ -0,0 +1,478 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Sou Bunnbu <iyzsong@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 xfce)
+ #:use-module ((guix licenses) #:hide (freetype))
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix utils)
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages xorg)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages web)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages gnome)
+ #:use-module (gnu packages pdf)
+ #:use-module (gnu packages gstreamer)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages photo)
+ #:use-module (gnu packages pcre))
+
+(define-public gtk-xfce-engine
+ (package
+ (name "gtk-xfce-engine")
+ (version "3.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://archive.xfce.org/xfce/4.10/src/"
+ name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "13c3ajfqkdr6jlqjyhcp4nls0ddanypr83q9qib2ciffik78zq4h"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (inputs `(("gtk+" ,gtk+-2)))
+ (home-page "http://www.xfce.org/")
+ (synopsis "GTK+ theme engine for Xfce")
+ (description
+ "Default GTK+ engine and themes for Xfce Desktop Environment.")
+ (license gpl2+)))
+
+(define-public libxfce4util
+ (package
+ (name "libxfce4util")
+ (version "4.10.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://archive.xfce.org/xfce/"
+ (version-major+minor version)
+ "/src/" name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "13k0wwbbqvdmbj4xmk4nxdlgvrdgr5y6r3dk380mzfw053hzwy89"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (propagated-inputs `(("glib" ,glib))) ; required by libxfce4util-1.0.pc
+ (home-page "http://www.xfce.org/")
+ (synopsis "Basic utility library for Xfce")
+ (description
+ "A general-purpose utility library with core application support for the
+Xfce Desktop Environment.")
+ (license lgpl2.0+)))
+
+(define-public xfconf
+ (package
+ (name "xfconf")
+ (version "4.10.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://archive.xfce.org/xfce/"
+ (version-major+minor version)
+ "/src/" name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0xh520z0qh0ib0ijgnyrgii9h5d4pc53n6mx1chhyzfc86j1jlhp"))))
+ (build-system gnu-build-system)
+ (arguments '(#:parallel-tests? #f)) ; parallel tests failed
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (propagated-inputs
+ ;; libxfconf-0.pc refers to all these.
+ `(("glib" ,glib)
+ ("dbus" ,dbus)
+ ("dbus-glib" ,dbus-glib)))
+ (inputs
+ `(("libxfce4util" ,libxfce4util)))
+ (home-page "http://www.xfce.org/")
+ (synopsis "Configuration storage and query system for Xfce")
+ (description
+ "Settings daemon for Xfce, implemented as a D-Bus-based configuration
+storage system.")
+ (license lgpl2.0+)))
+
+(define-public libxfce4ui
+ (package
+ (name "libxfce4ui")
+ (version "4.10.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://archive.xfce.org/xfce/"
+ (version-major+minor version)
+ "/src/" name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "1qm31s6568cz4c8rl9fsfq0xmf7pldxm0ki62gx1cpybihlgmfd2"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (propagated-inputs
+ ;; libxfce4kbd-private-2.pc refers to all these.
+ `(("gtk+" ,gtk+-2)
+ ("libxfce4util" ,libxfce4util)
+ ("xfconf" ,xfconf)))
+ (inputs `(("libsm" ,libsm)
+ ("libice" ,libice)
+ ("startup-notification" ,startup-notification)))
+ (home-page "http://www.xfce.org/")
+ (synopsis "Widgets library for Xfce")
+ (description
+ "Libxfce4ui is the replacement of the old libxfcegui4 library. It is used
+to share commonly used Xfce widgets amoung the Xfce applications.")
+ (license lgpl2.0+)))
+
+(define-public exo
+ (package
+ (name "exo")
+ (version "0.8.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://archive.xfce.org/xfce/4.10/src/"
+ name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "1c05pbagw14djv5zmqg34qfj40jav8sd10w2zi2wpzrad4qal8bf"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (propagated-inputs
+ ;; exo-1.pc refers to all these.
+ `(("gtk+" ,gtk+-2)
+ ("libxfce4util" ,libxfce4util)))
+ (inputs
+ `(("libxfce4ui" ,libxfce4ui)
+ ("perl-uri" ,perl-uri)))
+ (home-page "http://www.xfce.org/")
+ (synopsis "Extension library for Xfce")
+ (description
+ "An extension library to Xfce. While Xfce comes with quite a few libraries
+that are targeted at desktop development, libexo is targeted at application
+development.")
+ ;; Libraries are under LGPLv2+, and programs under GPLv2+.
+ (license (list gpl2+ lgpl2.1+))))
+
+(define-public garcon
+ (package
+ (name "garcon")
+ (version "0.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://archive.xfce.org/xfce/4.10/src/"
+ name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0v7pkvxcayi86z4f173z5l7w270f3g369sa88z59w0y0p7ns7ph2"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)
+ ("glib:bin" ,glib "bin")))
+ (propagated-inputs `(("glib" ,glib))) ; required by garcon-1.pc
+ (inputs `(("libxfce4util" ,libxfce4util)))
+ (home-page "http://www.xfce.org/")
+ (synopsis "Implementation of the freedesktop.org menu specification")
+ (description
+ "Garcon is a freedesktop.org compliant menu implementation based on
+GLib and GIO. It was started as a complete rewrite of the former Xfce menu
+library called libxfce4menu, which, in contrast to garcon, was lacking menu
+merging features essential for loading menus modified with menu editors.")
+ (license lgpl2.0+)))
+
+(define-public tumbler
+ (package
+ (name "tumbler")
+ (version "0.1.25")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://archive.xfce.org/xfce/4.10/src/"
+ name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0ijm04vm75gmhyyzrlqdr6vzchr01hlajcm84lm6j64cim8dxm82"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)
+ ("glib:bin" ,glib "bin") ; need glib-genmarshal
+ ("dbus-glib" ,dbus-glib))) ; need dbus-binding-tool
+ (propagated-inputs
+ `(("glib" ,glib))) ; required by tumbler-1.pc
+ (inputs
+ `(("dbus" ,dbus)
+ ("gdk-pixbuf" ,gdk-pixbuf)
+ ("freetype" ,freetype)
+ ("libjpeg" ,libjpeg)
+ ("libgsf" ,libgsf)
+ ("poppler" ,poppler)
+ ("gstreamer" ,gstreamer-0.10)))
+ (home-page "http://www.xfce.org/")
+ (synopsis "D-Bus service for applications to request thumbnails")
+ (description
+ "Tumbler is a D-Bus service for applications to request thumbnails for
+various URI schemes and MIME types. It is an implementation of the thumbnail
+management D-Bus specification.")
+ (license gpl2+)))
+
+(define-public xfce4-panel
+ (package
+ (name "xfce4-panel")
+ (version "4.10.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://archive.xfce.org/xfce/"
+ (version-major+minor version)
+ "/src/" name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "1f8903nx6ivzircl8d8s9zna4vjgfy0qhjk5d2x19g9bmycgj89k"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (propagated-inputs
+ `(("libxfce4util" ,libxfce4util))) ; required by libxfce4panel-1.0.pc
+ (inputs
+ `(("exo" ,exo)
+ ("garcon", garcon)
+ ("libwnck" ,libwnck-1)
+ ("libxfce4ui" ,libxfce4ui)))
+ (home-page "http://www.xfce.org/")
+ (synopsis "Xfce desktop panel")
+ (description
+ "Desktop panel for Xfce, which contains program launchers, window buttons,
+applications menu, workspace switcher and more.")
+ ;; Libraries are under LGPLv2.1+, and programs under GPLv2+.
+ (license (list gpl2+ lgpl2.1+))))
+
+(define-public xfce4-appfinder
+ (package
+ (name "xfce4-appfinder")
+ (version "4.10.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://archive.xfce.org/xfce/"
+ (version-major+minor version)
+ "/src/" name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0falckrziw8m1a72nxd7fqq84r3xfbrb6lv35flsca346rzawah4"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (inputs
+ `(("garcon" ,garcon)
+ ("libxfce4ui" ,libxfce4ui)))
+ (home-page "http://www.xfce.org/")
+ (synopsis "Xfce application finder")
+ (description
+ "Application finder for Xfce, it will show the applications installed on
+your system in categories, so you can quickly find and launch them.")
+ (license gpl2+)))
+
+(define-public xfce4-session
+ (package
+ (name "xfce4-session")
+ (version "4.10.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://archive.xfce.org/xfce/"
+ (version-major+minor version)
+ "/src/" name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "1kj65jkjhd0ysf0yxsf88wzpyv6n8i8qgd3gb502hf1x9jksk2mv"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:configure-flags
+ (list (string-append "--with-xsession-prefix=" %output))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (inputs
+ `(("iceauth" ,iceauth)
+ ("libsm" ,libsm)
+ ("libwnck" ,libwnck-1)
+ ("libxfce4ui" ,libxfce4ui)))
+ (home-page "http://www.xfce.org/")
+ (synopsis "Xfce session manager")
+ (description
+ "Session manager for Xfce, it will restore your session on startup and
+allows you to shutdown the computer from Xfce.")
+ (license gpl2+)))
+
+(define-public xfce4-settings
+ (package
+ (name "xfce4-settings")
+ (version "4.10.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://archive.xfce.org/xfce/"
+ (version-major+minor version)
+ "/src/" name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0zppq747z9lrxyv5zrrvpalq7hb3gfhy9p7qbldisgv7m6dz0hq8"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (inputs
+ `(("exo" ,exo)
+ ("garcon" ,garcon)
+ ("libnotify" ,libnotify)
+ ("libxcursor", libxcursor)
+ ("libxi" ,libxi)
+ ("libxrandr" ,libxrandr)
+ ("libxfce4ui" ,libxfce4ui)))
+ (home-page "http://www.xfce.org/")
+ (synopsis "Xfce settings manager")
+ (description
+ "Settings manager for Xfce, it can control various aspects of the desktop
+like appearance, display, keyboard and mouse settings.")
+ (license gpl2+)))
+
+(define-public thunar
+ (package
+ (name "thunar")
+ (version "1.4.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://archive.xfce.org/xfce/4.10/src/"
+ "Thunar-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "1fn8wjzkfvnx2giv3rrg2cyrr2c96f9mskgvcji0ixyfcjga249c"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (inputs
+ `(("exo" ,exo)
+ ("gudev", eudev)
+ ("libexif" ,libexif)
+ ("libnotify" ,libnotify)
+ ("libxfce4ui" ,libxfce4ui)
+ ("pcre" ,pcre)
+ ("xfce4-panel" ,xfce4-panel)
+ ("startup-notification" ,startup-notification)))
+ (home-page "http://www.xfce.org/")
+ (synopsis "Xfce file manager")
+ (description
+ "A modern file manager for graphical desktop, aiming to be easy-to-use and
+fast.")
+ (license gpl2+)))
+
+(define-public thunar-volman
+ (package
+ (name "thunar-volman")
+ (version "0.8.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://archive.xfce.org/xfce/4.10/src/"
+ name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "1sxw09fwyn5sr6ipxk7r8gqjyf41c2v7vkgl0l6mhy5mcb48f27z"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (inputs
+ `(("exo" ,exo)
+ ("gudev" ,eudev)
+ ("libnotify" ,libnotify)
+ ("libxfce4ui" ,libxfce4ui)))
+ (home-page "http://www.xfce.org/")
+ (synopsis "Removable media manager for Thunar")
+ (description
+ "Thunar-volman is an extension for the Thunar File Manager, which enables
+automatic management of removable drives and media. For example, if
+thunar-volman is installed and configured properly, and you plug in your
+digitcal camera, it will automatically spawn your preferred photo application
+and import the new pictures from your camera.")
+ (license gpl2+)))
+
+(define-public xfwm4
+ (package
+ (name "xfwm4")
+ (version "4.10.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://archive.xfce.org/xfce/"
+ (version-major+minor version)
+ "/src/" name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "170zzs7adj47srsi2cl723w9pl8k8awd7w1bpzxby7hj92zmf8s9"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (inputs
+ `(("libwnck", libwnck-1)
+ ("libxfce4ui" ,libxfce4ui)
+ ("libxrandr" ,libxrandr)
+ ("libxcomposite" ,libxcomposite)))
+ (home-page "http://www.xfce.org/")
+ (synopsis "Xfce window manager")
+ (description
+ "Window manager for Xfce, it handles the placement of windows
+on the screen.")
+ (license gpl2+)))
+
+(define-public xfdesktop
+ (package
+ (name "xfdesktop")
+ (version "4.10.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://archive.xfce.org/xfce/"
+ (version-major+minor version)
+ "/src/" name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0yrddj1lgk3xn4w340y89z7x2isks72ia36pka08kk2x8gpfcyl9"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (inputs
+ `(("exo" ,exo)
+ ("garcon" ,garcon)
+ ("libnotify" ,libnotify)
+ ("libwnck" ,libwnck-1)
+ ("libxfce4ui" ,libxfce4ui)
+ ("thunar" ,thunar)))
+ (home-page "http://www.xfce.org/")
+ (synopsis "Xfce desktop manager")
+ (description
+ "Desktop manager for Xfce, it sets the background color or image with
+optional application menu or icons for minimized applications or launchers,
+devices and folders.")
+ (license gpl2+)))
diff --git a/gnu/packages/xfig.scm b/gnu/packages/xfig.scm
index b15407417f..6436e52ad6 100644
--- a/gnu/packages/xfig.scm
+++ b/gnu/packages/xfig.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -118,7 +119,14 @@
(close-pipe in)
(close-port out)))
(zero? (system* "make" "install.doc"))))
- %standard-phases)))))
+ (alist-cons-after
+ 'install 'wrap-xfig
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (wrap-program (string-append out "/bin/xfig")
+ `("XAPPLRESDIR" suffix
+ (,(string-append out "/etc/X11/app-defaults"))))))
+ %standard-phases))))))
(home-page "http://xfig.org/")
(synopsis "Interactive drawing tool")
(description
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 41c6a03932..fcefebffc5 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -41,148 +41,11 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages xml)
- #:use-module (gnu packages ncurses))
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages xdisorg))
-;; packages outside the x.org system proper
-
-(define-public xeyes
- (package
- (name "xeyes")
- (version "1.0.1")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "http://xeyes.sourcearchive.com/downloads/1.0.1/xeyes_"
- version
- ".orig.tar.gz"))
- (sha256
- (base32
- "04c3md570j67g55h3bix1qbngcslnq91skli51k3g1avki88zkm9"))))
- (build-system gnu-build-system)
- (inputs
- `(("libxext" ,libxext)
- ("libxmu" ,libxmu)
- ("libxt" ,libxt)))
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (home-page "http://xeyes.sourcearchive.com/")
- (synopsis "Follow-the-mouse X demo")
- (description "Xeyes is a demo program for x.org. It shows eyes
-following the mouse.")
- (license license:x11)))
-
-
-(define-public pixman
- (package
- (name "pixman")
- (version "0.32.4")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "http://cairographics.org/releases/pixman-"
- version
- ".tar.gz"))
- (sha256
- (base32
- "113ycngcssbrps217dyajq96hm9xghsfch82h14yffla1r1fviw0"))))
- (build-system gnu-build-system)
- (inputs
- `(("libpng" ,libpng)
- ("zlib" ,zlib)))
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (home-page "http://www.pixman.org/")
- (synopsis "Low-level pixel manipulation library")
- (description "Pixman is a low-level software library for pixel
-manipulation, providing features such as image compositing and trapezoid
-rasterisation.")
- (license license:x11)))
-
-
-(define-public libdrm
- (package
- (name "libdrm")
- (version "2.4.46")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "http://dri.freedesktop.org/libdrm/libdrm-"
- version
- ".tar.bz2"))
- (sha256
- (base32
- "1wah4qmrrcv0gnx65lhrlxb6gprxch92wy8lhxv6102fml6k5krk"))))
- (build-system gnu-build-system)
- (inputs
- `(("libpciaccess" ,libpciaccess)
- ("libpthread-stubs" ,libpthread-stubs)))
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (home-page "http://dri.freedesktop.org/wiki/")
- (synopsis "Direct rendering userspace library")
- (description "The Direct Rendering Infrastructure, also known as the DRI,
-is a framework for allowing direct access to graphics hardware under the
-X Window System in a safe and efficient manner. It includes changes to the
-X server, to several client libraries, and to the kernel (DRM, Direct
-Rendering Manager). The most important use for the DRI is to create fast
-OpenGL implementations providing hardware acceleration for Mesa.
-Several 3D accelerated drivers have been written to the DRI specification,
-including drivers for chipsets produced by 3DFX, AMD (formerly ATI), Intel
-and Matrox.")
- (license license:x11)))
-
-
-;; old version, required by old mesa, see
-;; http://www.mail-archive.com/nouveau@lists.freedesktop.org/msg10098.html
-(define-public libdrm-2.4.33
- (package (inherit libdrm)
- (version "2.4.33")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "http://dri.freedesktop.org/libdrm/libdrm-"
- version
- ".tar.bz2"))
- (sha256
- (base32
- "1slgi61n4dlsfli47ql354fd1ppj7n40jd94wvnsdqx0mna9syrd"))))
- (arguments
- `(#:configure-flags
- ;; create libdrm_nouveau.so, needed by mesa, see
- ;; http://comments.gmane.org/gmane.linux.lfs.beyond.support/43261
- `("--enable-nouveau-experimental-api")))))
-
-
-(define-public mtdev
- (package
- (name "mtdev")
- (version "1.1.3")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "http://bitmath.org/code/mtdev/mtdev-"
- version ".tar.bz2"))
- (sha256
- (base32
- "159ndzwfpw0xr8mw4lhl47w9c2krshlfrscs7k6n186vknv2hk3d"))))
- (build-system gnu-build-system)
- (home-page "http://bitmath.org/code/mtdev/")
- (synopsis "Multitouch protocol translation library")
- (description "Mtdev is a stand-alone library which transforms all
-variants of kernel MT events to the slotted type B protocol. The events
-put into mtdev may be from any MT device, specifically type A without
-contact tracking, type A with contact tracking, or type B with contact
-tracking.")
- (license license:x11)))
-
-
;; packages without propagated input
;; (rationale for this separation: The packages in PROPAGATED_INPUTS need to
@@ -1297,7 +1160,8 @@ autotools system.")
(base32
"1b8sniijb85v4my6v30ma9yqnwl4hkclci9l1hqxnipfyhl4sa9j"))))
(build-system gnu-build-system)
- (inputs
+ (propagated-inputs
+ ;; xcomposite.pc refers to all these.
`(("xproto" ,xproto)
("libxfixes" ,libxfixes)
("libx11" ,libx11)
@@ -2843,7 +2707,8 @@ kernel mode setting (KMS).")
".tar.bz2"))
(sha256
(base32
- "0hgzn1r7ig94xbr9dvq0bp1nxqlfp2ki8823jca3f22a2kf8wmg7"))))
+ "0hgzn1r7ig94xbr9dvq0bp1nxqlfp2ki8823jca3f22a2kf8wmg7"))
+ (patches (list (search-patch "xf86-video-openchrome-includes.patch")))))
(build-system gnu-build-system)
(inputs `(("libx11" ,libx11)
("libxext" ,libxext)
diff --git a/gnu/packages/yubico.scm b/gnu/packages/yubico.scm
new file mode 100644
index 0000000000..f2e8ff133c
--- /dev/null
+++ b/gnu/packages/yubico.scm
@@ -0,0 +1,76 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.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 GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages yubico)
+ #:use-module (gnu packages)
+ #:use-module (guix licenses)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages man)
+ #:use-module (gnu packages curl))
+
+(define-public libyubikey
+ (package
+ (name "libyubikey")
+ (version "1.12")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://developers.yubico.com/yubico-c/Releases/"
+ name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1f0plzmr1gwry4rfgq9q70v6qwqny009hac289ad5m6sj7vqflxr"))))
+ (build-system gnu-build-system)
+ (synopsis "Development kit for the YubiKey authentication device")
+ (description
+ "This package contains a C library and command-line tools that make up
+the low-level development kit for the Yubico YubiKey authentication device.")
+ (home-page "https://developers.yubico.com/yubico-c/")
+ (license bsd-2)))
+
+(define-public ykclient
+ (package
+ (name "ykclient")
+ (version "2.13")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://developers.yubico.com/yubico-c-client/Releases/"
+ name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1lw1j61rfjngs8vvv9m348zl4166zg24bq0dy72r44wiz79yic4j"))))
+ (build-system gnu-build-system)
+
+ ;; There's just one test, and it requires network access to access
+ ;; yubico.com, so skip it.
+ (arguments '(#:tests? #f))
+
+ (native-inputs `(("pkg-config" ,pkg-config)
+ ("help2man" ,help2man)))
+ (inputs `(("curl" ,curl)))
+ (synopsis "C library to validate one-time-password YubiKeys")
+ (description
+ "YubiKey C Client Library (libykclient) is a C library used to validate a
+one-time-password (OTP) YubiKey against Yubico’s servers. See the Yubico
+website for more information about Yubico and the YubiKey.")
+ (home-page "https://developers.yubico.com/yubico-c-client/")
+ (license bsd-2)))
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index 5fc98e988c..2b52c777b7 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -91,12 +91,17 @@ When @var{initialize?} is true, automatically create the seed and host key
upon service activation if they do not exist yet. This may take long and
require interaction.
+When @var{initialize?} is false, it is up to the user to initialize the
+randomness generator (@pxref{lsh-make-seed,,, lsh, LSH Manual}), and to create
+a key pair with the private key stored in file @var{host-key} (@pxref{lshd
+basics,,, lsh, LSH Manual}).
+
When @var{interfaces} is empty, lshd listens for connections on all the
network interfaces; otherwise, @var{interfaces} must be a list of host names
or addresses.
-@var{allow-empty-passwords?} specifies whether to accepts log-ins with empty
-passwords, and @var{root-login?} specifies whether to accepts log-ins as
+@var{allow-empty-passwords?} specifies whether to accept log-ins with empty
+passwords, and @var{root-login?} specifies whether to accept log-ins as
root.
The other options should be self-descriptive."
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 5236573a39..fbf96c799b 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -96,6 +96,7 @@ Section \"Files\"
ModulePath \"" xf86-video-intel "/lib/xorg/modules/drivers\"
ModulePath \"" xf86-video-mach64 "/lib/xorg/modules/drivers\"
ModulePath \"" xf86-video-nv "/lib/xorg/modules/drivers\"
+ ModulePath \"" xf86-video-sis "/lib/xorg/modules/drivers\"
ModulePath \"" xf86-input-keyboard "/lib/xorg/modules/input\"
ModulePath \"" xf86-input-mouse "/lib/xorg/modules/input\"
ModulePath \"" xf86-input-synaptics "/lib/xorg/modules/input\"
@@ -142,28 +143,31 @@ EndSection
#~(begin
(use-modules (ice-9 match))
+ (define (exec-from-login-shell command . args)
+ ;; Run COMMAND from a login shell so that it gets to see the same
+ ;; environment variables that one gets when logging in on a tty, for
+ ;; instance.
+ (let* ((pw (getpw (getuid)))
+ (shell (passwd:shell pw))
+ (st (stat command #f)))
+ (when (and st (not (zero? (logand (stat:mode st) #o100))))
+ ;; The '--login' option is supported at least by Bash and zsh.
+ (execl shell shell "--login" "-c"
+ (string-join (cons command args))))))
+
+ ;; First, try to run ~/.xsession.
(let* ((home (getenv "HOME"))
- (profile (string-append home "/.guix-profile/bin"))
- (PATH (or (getenv "PATH") ""))
(xsession (string-append home "/.xsession")))
- ;; Make sure the user's profile is visible.
- (setenv "PATH"
- (string-append profile
- (if (string-null? PATH) "" ":")
- PATH))
-
- ;; First, try to run ~/.xsession.
- (false-if-exception (execl xsession xsession)))
+ (exec-from-login-shell xsession))
;; Then try a pre-configured session type.
(let ((ratpoison (string-append #$ratpoison "/bin/ratpoison"))
(wmaker (string-append #$windowmaker "/bin/wmaker")))
(match (command-line)
((_ "ratpoison")
- (execl ratpoison ratpoison))
+ (exec-from-login-shell ratpoison))
(_
- ;; 'wmaker' does execvp(argv[0]), so we really can't mess up.
- (execl wmaker wmaker))))))
+ (exec-from-login-shell wmaker))))))
(gexp->script "xinitrc" builder))
diff --git a/gnu/system.scm b/gnu/system.scm
index f98aa83f62..fc8b57fe06 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -38,6 +38,7 @@
#:use-module (gnu packages nano)
#:use-module (gnu packages lsof)
#:use-module (gnu packages gawk)
+ #:use-module (gnu packages man)
#:use-module (gnu packages compression)
#:use-module (gnu packages firmware)
#:autoload (gnu packages cryptsetup) (cryptsetup)
@@ -46,12 +47,15 @@
#:use-module (gnu services base)
#:use-module (gnu system grub)
#:use-module (gnu system shadow)
+ #:use-module (gnu system locale)
#:use-module (gnu system linux)
#:use-module (gnu system linux-initrd)
#:use-module (gnu system file-systems)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
+ #:use-module (srfi srfi-34)
+ #:use-module (srfi srfi-35)
#:export (operating-system
operating-system?
@@ -69,6 +73,7 @@
operating-system-packages
operating-system-timezone
operating-system-locale
+ operating-system-locale-definitions
operating-system-mapped-devices
operating-system-file-systems
operating-system-activation-script
@@ -129,7 +134,9 @@
(timezone operating-system-timezone) ; string
(locale operating-system-locale ; string
- (default "en_US.UTF-8"))
+ (default "en_US.utf8"))
+ (locale-definitions operating-system-locale-definitions ; list of <locale-definition>
+ (default %default-locale-definitions))
(services operating-system-user-services ; list of monadic services
(default %base-services))
@@ -204,9 +211,7 @@ file."
"Return file system services for the file systems of OS that are not marked
as 'needed-for-boot'."
(define file-systems
- (remove (lambda (fs)
- (or (file-system-needed-for-boot? fs)
- (string=? "/" (file-system-mount-point fs))))
+ (remove file-system-needed-for-boot?
(operating-system-file-systems os)))
(define (device-mappings fs)
@@ -329,6 +334,12 @@ explicitly appear in OS."
pciutils usbutils
util-linux inetutils isc-dhcp wireless-tools
net-tools ; XXX: remove when Inetutils suffices
+ man-db
+
+ ;; The 'sudo' command is already in %SETUID-PROGRAMS, but we also
+ ;; want the other commands and the man pages (notably because
+ ;; auto-completion in Emacs shell relies on man pages.)
+ sudo
;; Get 'insmod' & co. from kmod, not module-init-tools, since udev
;; already depends on it anyway.
@@ -380,11 +391,10 @@ This is the GNU system. Welcome.\n")
(nsswitch (text-file "nsswitch.conf"
"hosts: files dns\n"))
- ;; TODO: Generate bashrc from packages' search-paths.
- (bashrc (text-file* "bashrc" "
-export PS1='\\u@\\h \\w\\$ '
-
-export LC_ALL=\"" locale "\"
+ ;; Startup file for POSIX-compliant login shells, which set system-wide
+ ;; environment variables.
+ (profile (text-file* "profile" "\
+export LANG=\"" locale "\"
export TZ=\"" timezone "\"
export TZDIR=\"" tzdata "/share/zoneinfo\"
@@ -393,11 +403,8 @@ export LINUX_MODULE_DIRECTORY=/run/booted-system/kernel/lib/modules
export PATH=$HOME/.guix-profile/bin:/run/current-system/profile/bin
export PATH=/run/setuid-programs:/run/current-system/profile/sbin:$PATH
-export CPATH=$HOME/.guix-profile/include:" profile "/include
-export LIBRARY_PATH=$HOME/.guix-profile/lib:" profile "/lib
+export MANPATH=$HOME/.guix-profile/share/man:/run/current-system/profile/share/man
export INFOPATH=$HOME/.guix-profile/share/info:/run/current-system/profile/share/info
-alias ls='ls -p --color'
-alias ll='ls -l'
"))
(skel (skeleton-directory skeletons)))
(file-union "etc"
@@ -410,7 +417,7 @@ alias ll='ls -l'
("nsswitch.conf" ,#~#$nsswitch)
("skel" ,#~#$skel)
("shells" ,#~#$shells)
- ("profile" ,#~#$bashrc)
+ ("profile" ,#~#$profile)
("hosts" ,#~#$hosts-file)
("localtime" ,#~(string-append #$tzdata "/share/zoneinfo/"
#$timezone))
@@ -525,8 +532,10 @@ etc."
(define %modules
'((gnu build activation)
(gnu build linux-boot)
+ (gnu build linux-modules)
(gnu build file-systems)
- (guix build utils)))
+ (guix build utils)
+ (guix elf)))
(define (service-activations services)
;; Return the activation scripts for SERVICES.
@@ -638,12 +647,7 @@ we're running in the final root."
(define (operating-system-initrd-file os)
"Return a gexp denoting the initrd file of OS."
(define boot-file-systems
- (filter (match-lambda
- (($ <file-system> device title "/")
- #t)
- (($ <file-system> device title mount-point type flags
- options boot?)
- boot?))
+ (filter file-system-needed-for-boot?
(operating-system-file-systems os)))
(define mapped-devices
@@ -656,6 +660,19 @@ we're running in the final root."
#:mapped-devices mapped-devices)))
(return #~(string-append #$initrd "/initrd"))))
+(define (operating-system-locale-directory os)
+ "Return the directory containing the locales compiled for the definitions
+listed in OS. The C library expects to find it under
+/run/current-system/locale."
+ ;; While we're at it, check whether the locale of OS is defined.
+ (unless (member (operating-system-locale os)
+ (map locale-definition-name
+ (operating-system-locale-definitions os)))
+ (raise (condition
+ (&message (message "system locale lacks a definition")))))
+
+ (locale-directory (operating-system-locale-definitions os)))
+
(define (kernel->grub-label kernel)
"Return a label for the GRUB menu entry that boots KERNEL."
(string-append "GNU with "
@@ -705,6 +722,7 @@ this file is the reconstruction of GRUB menu entries for old configurations."
(boot (operating-system-boot-script os))
(kernel -> (operating-system-kernel os))
(initrd (operating-system-initrd-file os))
+ (locale (operating-system-locale-directory os))
(params (operating-system-parameters-file os)))
(file-union "system"
`(("boot" ,#~#$boot)
@@ -712,6 +730,7 @@ this file is the reconstruction of GRUB menu entries for old configurations."
("parameters" ,#~#$params)
("initrd" ,initrd)
("profile" ,#~#$profile)
+ ("locale" ,#~#$locale) ;used by libc
("etc" ,#~#$etc)))))
;;; system.scm ends here
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index ed9d70587f..4760821840 100644
--- a/gnu/system/file-systems.scm
+++ b/gnu/system/file-systems.scm
@@ -70,13 +70,19 @@
(default '()))
(options file-system-options ; string or #f
(default #f))
- (needed-for-boot? file-system-needed-for-boot? ; Boolean
+ (needed-for-boot? %file-system-needed-for-boot? ; Boolean
(default #f))
(check? file-system-check? ; Boolean
(default #t))
(create-mount-point? file-system-create-mount-point? ; Boolean
(default #f)))
+(define-inlinable (file-system-needed-for-boot? fs)
+ "Return true if FS has the 'needed-for-boot?' flag set, or if it's the root
+file system."
+ (or (%file-system-needed-for-boot? fs)
+ (string=? "/" (file-system-mount-point fs))))
+
(define %fuse-control-file-system
;; Control file system for Linux' file systems in user-space (FUSE).
(file-system
diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm
index 00e09f9736..ecffee3112 100644
--- a/gnu/system/grub.scm
+++ b/gnu/system/grub.scm
@@ -170,6 +170,9 @@ function load_video {
insmod video_cirrus
}
+# Set 'root' to the partition that contains /gnu/store.
+search --file --set ~a/share/grub/unicode.pf2
+
if loadfont ~a/share/grub/unicode.pf2; then
set gfxmode=640x480
load_video
@@ -185,7 +188,7 @@ else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi~%"
- #$grub
+ #$grub #$grub
#$image
#$(theme-colors grub-theme-color-normal)
#$(theme-colors grub-theme-color-highlight))))))
@@ -209,11 +212,14 @@ entries corresponding to old generations of the system."
(match-lambda
(($ <menu-entry> label linux arguments initrd)
#~(format port "menuentry ~s {
+ # Set 'root' to the partition that contains the kernel.
+ search --file --set ~a/bzImage~%
+
linux ~a/bzImage ~a
initrd ~a
}~%"
#$label
- #$linux (string-join (list #$@arguments))
+ #$linux #$linux (string-join (list #$@arguments))
#$initrd))))
(mlet %store-monad ((sugar (eye-candy config #~port)))
@@ -223,14 +229,9 @@ entries corresponding to old generations of the system."
#$sugar
(format port "
set default=~a
-set timeout=~a
-search.file ~a/bzImage~%"
+set timeout=~a~%"
#$(grub-configuration-default-entry config)
- #$(grub-configuration-timeout config)
- #$(any (match-lambda
- (($ <menu-entry> _ linux)
- linux))
- all-entries))
+ #$(grub-configuration-timeout config))
#$@(map entry->gexp all-entries)
#$@(if (pair? old-entries)
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 961361b937..01e79480b1 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -21,7 +21,9 @@
#:use-module (guix gexp)
#:use-module (guix monads)
#:use-module ((guix store) #:select (%store-prefix))
+ #:use-module (gnu packages admin)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages cryptsetup)
#:use-module (gnu packages package-management)
#:use-module (gnu packages disk)
#:use-module (gnu packages grub)
@@ -219,7 +221,7 @@ Use Alt-F2 for documentation.
(operating-system
(host-name "gnu")
(timezone "Europe/Paris")
- (locale "en_US.UTF-8")
+ (locale "en_US.utf8")
(bootloader (grub-configuration
(device "/dev/sda")))
(file-systems
@@ -254,7 +256,8 @@ Use Alt-F2 for documentation.
(packages (cons* texinfo-4 ;for the standalone Info reader
parted ddrescue
grub ;mostly so xrefs to its manual work
- wireless-tools
+ cryptsetup
+ wireless-tools wpa-supplicant
;; XXX: We used to have GNU fdisk here, but as of version
;; 2.0.0a, that pulls Guile 1.8, which takes unreasonable
;; space; furthermore util-linux's fdisk is already
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 3279172da7..ee6ce48828 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -92,7 +92,9 @@ MODULES and taken from LINUX."
(define build-exp
#~(begin
(use-modules (ice-9 match) (ice-9 regex)
- (guix build utils))
+ (srfi srfi-1)
+ (guix build utils)
+ (gnu build linux-modules))
(define (string->regexp str)
;; Return a regexp that matches STR exactly.
@@ -101,21 +103,35 @@ MODULES and taken from LINUX."
(define module-dir
(string-append #$linux "/lib/modules"))
+ (define (lookup module)
+ (let ((name (ensure-dot-ko module)))
+ (match (find-files module-dir (string->regexp name))
+ ((file)
+ file)
+ (()
+ (error "module not found" name module-dir))
+ ((_ ...)
+ (error "several modules by that name"
+ name module-dir)))))
+
+ (define modules
+ (let ((modules (map lookup '#$modules)))
+ (append modules
+ (recursive-module-dependencies modules
+ #:lookup-module lookup))))
+
(mkdir #$output)
(for-each (lambda (module)
- (match (find-files module-dir (string->regexp module))
- ((file)
- (format #t "copying '~a'...~%" file)
- (copy-file file (string-append #$output "/" module)))
- (()
- (error "module not found" module module-dir))
- ((_ ...)
- (error "several modules by that name"
- module module-dir))))
- '#$modules)))
+ (format #t "copying '~a'...~%" module)
+ (copy-file module
+ (string-append #$output "/"
+ (basename module))))
+ (delete-duplicates modules))))
(gexp->derivation "linux-modules" build-exp
- #:modules '((guix build utils))))
+ #:modules '((guix build utils)
+ (guix elf)
+ (gnu build linux-modules))))
(define (file-system->spec fs)
"Return a list corresponding to file-system FS that can be passed to the
@@ -150,16 +166,16 @@ modules can be listed in EXTRA-MODULES. They will be added to the initrd, and
loaded at boot time in the order in which they appear."
(define virtio-modules
;; Modules for Linux para-virtualized devices, for use in QEMU guests.
- '("virtio.ko" "virtio_ring.ko" "virtio_pci.ko"
- "virtio_balloon.ko" "virtio_blk.ko" "virtio_net.ko"))
+ '("virtio_pci" "virtio_balloon" "virtio_blk" "virtio_net"
+ "virtio_console"))
(define cifs-modules
;; Modules needed to mount CIFS file systems.
- '("md4.ko" "ecb.ko" "cifs.ko"))
+ '("md4" "ecb" "cifs"))
(define virtio-9p-modules
;; Modules for the 9p paravirtualized file system.
- '("fscache.ko" "9pnet.ko" "9p.ko" "9pnet_virtio.ko"))
+ '("9p" "9pnet_virtio"))
(define (file-system-type-predicate type)
(lambda (fs)
@@ -167,8 +183,8 @@ loaded at boot time in the order in which they appear."
(define linux-modules
;; Modules added to the initrd and loaded from the initrd.
- `("libahci.ko" "ahci.ko" ;for SATA controllers
- "pata_acpi.ko" "pata_atiixp.ko" ;for ATA controllers
+ `("ahci" ;for SATA controllers
+ "pata_acpi" "pata_atiixp" ;for ATA controllers
,@(if (or virtio? qemu-networking?)
virtio-modules
'())
@@ -179,7 +195,7 @@ loaded at boot time in the order in which they appear."
virtio-9p-modules
'())
,@(if volatile-root?
- '("fuse.ko")
+ '("fuse")
'())
,@extra-modules))
@@ -220,14 +236,15 @@ loaded at boot time in the order in which they appear."
(boot-system #:mounts '#$(map file-system->spec file-systems)
#:pre-mount (lambda ()
(and #$@device-mapping-commands))
- #:linux-modules (map (lambda (file)
- (string-append #$kodir "/" file))
- '#$linux-modules)
+ #:linux-modules '#$linux-modules
+ #:linux-module-directory '#$kodir
#:qemu-guest-networking? #$qemu-networking?
#:volatile-root? '#$volatile-root?))
#:name "base-initrd"
#:modules '((guix build utils)
(gnu build linux-boot)
- (gnu build file-systems)))))
+ (gnu build linux-modules)
+ (gnu build file-systems)
+ (guix elf)))))
;;; linux-initrd.scm ends here
diff --git a/gnu/system/locale.scm b/gnu/system/locale.scm
new file mode 100644
index 0000000000..17b1dead58
--- /dev/null
+++ b/gnu/system/locale.scm
@@ -0,0 +1,126 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.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 GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu system locale)
+ #:use-module (guix gexp)
+ #:use-module (guix records)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages compression)
+ #:use-module (srfi srfi-26)
+ #:export (locale-definition
+ locale-definition?
+ locale-definition-name
+ locale-definition-source
+ locale-definition-charset
+
+ locale-directory
+
+ %default-locale-definitions))
+
+;;; Commentary:
+;;;
+;;; Locale definitions, and compilation thereof.
+;;;
+;;; Code:
+
+(define-record-type* <locale-definition> locale-definition
+ make-locale-definition
+ locale-definition?
+ (name locale-definition-name) ;string--e.g., "fr_FR.utf8"
+ (source locale-definition-source) ;string--e.g., "fr_FR"
+ (charset locale-definition-charset ;string--e.g., "UTF-8"
+ (default "UTF-8")))
+
+(define* (localedef-command locale
+ #:key (libc (canonical-package glibc)))
+ "Return a gexp that runs 'localedef' from LIBC to build LOCALE."
+ #~(begin
+ (format #t "building locale '~a'...~%"
+ #$(locale-definition-name locale))
+ (zero? (system* (string-append #$libc "/bin/localedef")
+ "--no-archive" "--prefix" #$output
+ "-i" #$(locale-definition-source locale)
+ "-f" #$(locale-definition-charset locale)
+ (string-append #$output "/"
+ #$(locale-definition-name locale))))))
+
+(define* (locale-directory locales
+ #:key (libc (canonical-package glibc)))
+ "Return a directory containing all of LOCALES compiled."
+ (define build
+ #~(begin
+ (mkdir #$output)
+
+ ;; 'localedef' executes 'gzip' to access compressed locale sources.
+ (setenv "PATH" (string-append #$gzip "/bin"))
+
+ (exit
+ (and #$@(map (cut localedef-command <> #:libc libc)
+ locales)))))
+
+ (gexp->derivation "locale" build
+ #:local-build? #t))
+
+(define %default-locale-definitions
+ ;; Arbitrary set of locales that are built by default. They are here mostly
+ ;; to facilitate first-time use to some people, while others may have to add
+ ;; a specific <locale-definition>.
+ (letrec-syntax ((utf8-locale (syntax-rules ()
+ ((_ name*)
+ (locale-definition
+ (name (string-append name* ".utf8"))
+ (source name*)
+ (charset "UTF-8")))))
+ (utf8-locales (syntax-rules ()
+ ((_ name ...)
+ (list (utf8-locale name) ...)))))
+ (utf8-locales "ca_ES"
+ "cs_CZ"
+ "da_DK"
+ "de_DE"
+ "el_GR"
+ "en_AU"
+ "en_CA"
+ "en_GB"
+ "en_US"
+ "es_AR"
+ "es_CL"
+ "es_ES"
+ "es_MX"
+ "fi_FI"
+ "fr_BE"
+ "fr_CA"
+ "fr_CH"
+ "fr_FR"
+ "ga_IE"
+ "it_IT"
+ "ja_JP"
+ "ko_KR"
+ "nb_NO"
+ "nl_NL"
+ "pl_PL"
+ "pt_PT"
+ "ro_RO"
+ "ru_RU"
+ "sv_SE"
+ "tr_TR"
+ "uk_UA"
+ "vi_VN"
+ "zh_CN")))
+
+;;; locale.scm ends here
diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm
index 6970021e1f..b4ba0060bd 100644
--- a/gnu/system/shadow.scm
+++ b/gnu/system/shadow.scm
@@ -115,9 +115,16 @@
(copy-file (car (find-files #$guile-wm "wm-init-sample.scm"))
#$output)))
- (mlet %store-monad ((bashrc (text-file "bashrc" "\
-# Allow non-login shells such as an xterm to get things right.
-test -f /etc/profile && source /etc/profile\n"))
+ (mlet %store-monad ((profile (text-file "bash_profile" "\
+# Honor per-interactive-shell startup file
+if [ -f ~/.bashrc ]; then . ~/.bashrc; fi\n"))
+ (bashrc (text-file "bashrc" "\
+PS1='\\u@\\h \\w\\$ '
+alias ls='ls -p --color'
+alias ll='ls -l'\n"))
+ (zlogin (text-file "zlogin" "\
+# Honor system-wide environment variables
+source /etc/profile\n"))
(guile-wm (gexp->derivation "guile-wm" copy-guile-wm
#:modules
'((guix build utils))))
@@ -127,7 +134,9 @@ XTerm*metaSendsEscape: true\n"))
(gdbinit (text-file "gdbinit" "\
# Tell GDB where to look for separate debugging files.
set debug-file-directory ~/.guix-profile/lib/debug\n")))
- (return `((".bashrc" ,bashrc)
+ (return `((".bash_profile" ,profile)
+ (".bashrc" ,bashrc)
+ (".zlogin" ,zlogin)
(".Xdefaults" ,xdefaults)
(".guile-wm" ,guile-wm)
(".gdbinit" ,gdbinit)))))
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 07b13deeca..4374256530 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -104,7 +104,9 @@
'((gnu build vm)
(gnu build install)
(gnu build linux-boot)
+ (gnu build linux-modules)
(gnu build file-systems)
+ (guix elf)
(guix build utils)
(guix build store-copy)))
(guile-for-build
@@ -470,7 +472,7 @@ with '-virtfs' options for the host file systems listed in SHARED-FS."
" -enable-kvm -no-reboot -net nic,model=virtio \
" #$@(map virtfs-option shared-fs) " \
-net user \
- -serial stdio \
+ -serial stdio -vga std \
-drive file=" #$image
",if=virtio,cache=writeback,werror=report,readonly \
-m 256"))
diff --git a/guix/build-system/glib-or-gtk.scm b/guix/build-system/glib-or-gtk.scm
index 51e0c419e3..8091311879 100644
--- a/guix/build-system/glib-or-gtk.scm
+++ b/guix/build-system/glib-or-gtk.scm
@@ -122,6 +122,7 @@
"bin" "sbin"))
(phases '(@ (guix build glib-or-gtk-build-system)
%standard-phases))
+ (glib-or-gtk-wrap-excluded-outputs ''())
(system (%current-system))
(imported-modules %default-imported-modules)
(modules %default-modules)
@@ -153,6 +154,8 @@
#:search-paths ',(map search-path-specification->sexp
search-paths)
#:phases ,phases
+ #:glib-or-gtk-wrap-excluded-outputs
+ ,glib-or-gtk-wrap-excluded-outputs
#:configure-flags ,configure-flags
#:make-flags ,make-flags
#:out-of-source? ,out-of-source?
diff --git a/guix/build-system/python.scm b/guix/build-system/python.scm
index 78348e9cf7..4bba7167ca 100644
--- a/guix/build-system/python.scm
+++ b/guix/build-system/python.scm
@@ -86,6 +86,8 @@ prepended to the name."
arguments)))
(inputs
(map rewrite (package-inputs p)))
+ (propagated-inputs
+ (map rewrite (package-propagated-inputs p)))
(native-inputs
(map rewrite (package-native-inputs p))))))
diff --git a/guix/build/emacs-utils.scm b/guix/build/emacs-utils.scm
index 10ef3c8d0f..0cff28b45b 100644
--- a/guix/build/emacs-utils.scm
+++ b/guix/build/emacs-utils.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,6 +21,7 @@
#:export (%emacs
emacs-batch-eval
emacs-batch-edit-file
+ emacs-generate-autoloads
emacs-substitute-sexps
emacs-substitute-variables))
@@ -47,6 +49,14 @@
(format #f "--eval=~S" expr)))
(error "emacs-batch-edit-file failed!" file expr)))
+(define (emacs-generate-autoloads name directory)
+ "Generate autoloads for Emacs package NAME placed in DIRECTORY."
+ (let* ((file (string-append directory "/" name "-autoloads.el"))
+ (expr `(let ((backup-inhibited t)
+ (generated-autoload-file ,file))
+ (update-directory-autoloads ,directory))))
+ (emacs-batch-eval expr)))
+
(define-syntax emacs-substitute-sexps
(syntax-rules ()
"Substitute the S-expression immediately following the first occurrence of
diff --git a/guix/build/glib-or-gtk-build-system.scm b/guix/build/glib-or-gtk-build-system.scm
index 1d87a4cf27..9351a70a0e 100644
--- a/guix/build/glib-or-gtk-build-system.scm
+++ b/guix/build/glib-or-gtk-build-system.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
+;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,6 +23,7 @@
#:use-module (ice-9 match)
#:use-module (ice-9 regex)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26)
#:export (%standard-phases
glib-or-gtk-build))
@@ -36,14 +38,14 @@
(define (directory-included? directory directories-list)
"Is DIRECTORY included in DIRECTORIES-LIST?"
- (fold (lambda (s p) (or (string-ci=? s directory) p))
+ (fold (lambda (s p) (or (string-ci=? s directory) p))
#f directories-list))
(define (gtk-module-directories inputs)
"Check for the existence of \"libdir/gtk-v.0\" in INPUTS. Return a list
with all found directories."
- (let* ((version
- (if (string-match "gtk\\+-3"
+ (let* ((version
+ (if (string-match "gtk\\+-3"
(or (assoc-ref inputs "gtk+")
(assoc-ref inputs "source")
"gtk+-3")) ; we default to version 3
@@ -54,7 +56,7 @@ with all found directories."
(let* ((in (match input
((_ . dir) dir)
(_ "")))
- (libdir
+ (libdir
(string-append in "/lib/gtk-" version)))
(if (and (directory-exists? libdir)
(not (directory-included? libdir prev)))
@@ -77,49 +79,68 @@ a list with all found directories."
(fold glib-schemas '() inputs))
-(define* (wrap-all-programs #:key inputs outputs #:allow-other-keys)
+(define* (wrap-all-programs #:key inputs outputs
+ (glib-or-gtk-wrap-excluded-outputs '())
+ #:allow-other-keys)
"Implement phase \"glib-or-gtk-wrap\": look for GSettings schemas and
gtk+-v.0 libraries and create wrappers with suitably set environment variables
-if found."
- (let* ((out (assoc-ref outputs "out"))
- (bindir (string-append out "/bin"))
- (bin-list (find-files bindir ".*"))
- (schemas (schemas-directories (acons "out" out inputs)))
- (schemas-env-var
- (if (not (null? schemas))
- `("XDG_DATA_DIRS" ":" prefix ,schemas)
- #f))
- (gtk-mod-dirs (gtk-module-directories (acons "out" out inputs)))
- (gtk-mod-env-var
- (if (not (null? gtk-mod-dirs))
- `("GTK_PATH" ":" prefix ,gtk-mod-dirs)
- #f)))
- (cond
- ((and schemas-env-var gtk-mod-env-var)
- (map (lambda (prog)
- (wrap-program prog schemas-env-var gtk-mod-env-var))
- bin-list))
- (schemas-env-var
- (map (lambda (prog) (wrap-program prog schemas-env-var)) bin-list))
- (gtk-mod-env-var
- (map (lambda (prog) (wrap-program prog gtk-mod-env-var)) bin-list)))))
+if found.
-(define* (compile-glib-schemas #:key inputs outputs #:allow-other-keys)
+Wrapping is not applied to outputs whose name is listed in
+GLIB-OR-GTK-WRAP-EXCLUDED-OUTPUTS. This is useful when an output is known not
+to contain any GLib or GTK+ binaries, and where wrapping would gratuitously
+add a dependency of that output on GLib and GTK+."
+ (define handle-output
+ (match-lambda
+ ((output . directory)
+ (unless (member output glib-or-gtk-wrap-excluded-outputs)
+ (let* ((bindir (string-append directory "/bin"))
+ (bin-list (find-files bindir ".*"))
+ (schemas (schemas-directories
+ (alist-cons output directory inputs)))
+ (gtk-mod-dirs (gtk-module-directories
+ (alist-cons output directory inputs)))
+ (schemas-env-var
+ (if (not (null? schemas))
+ `("XDG_DATA_DIRS" ":" prefix ,schemas)
+ #f))
+ (gtk-mod-env-var
+ (if (not (null? gtk-mod-dirs))
+ `("GTK_PATH" ":" prefix ,gtk-mod-dirs)
+ #f)))
+ (cond
+ ((and schemas-env-var gtk-mod-env-var)
+ (for-each (cut wrap-program <> schemas-env-var gtk-mod-env-var)
+ bin-list))
+ (schemas-env-var
+ (for-each (cut wrap-program <> schemas-env-var)
+ bin-list))
+ (gtk-mod-env-var
+ (for-each (cut wrap-program <> gtk-mod-env-var)
+ bin-list))))))))
+
+ (for-each handle-output outputs)
+ #t)
+
+(define* (compile-glib-schemas #:key outputs #:allow-other-keys)
"Implement phase \"glib-or-gtk-compile-schemas\": compile \"glib\" schemas
if needed."
- (let* ((out (assoc-ref outputs "out"))
- (schemasdir (string-append out "/share/glib-2.0/schemas")))
- (if (and (directory-exists? schemasdir)
- (not (file-exists?
- (string-append schemasdir "/gschemas.compiled"))))
- (system* "glib-compile-schemas" schemasdir)
- #t)))
+ (every (match-lambda
+ ((output . directory)
+ (let ((schemasdir (string-append directory
+ "/share/glib-2.0/schemas")))
+ (if (and (directory-exists? schemasdir)
+ (not (file-exists?
+ (string-append schemasdir "/gschemas.compiled"))))
+ (zero? (system* "glib-compile-schemas" schemasdir))
+ #t))))
+ outputs))
(define %standard-phases
(alist-cons-after
- 'install 'glib-or-gtk-wrap wrap-all-programs
- (alist-cons-after
- 'install 'glib-or-gtk-compile-schemas compile-glib-schemas
+ 'install 'glib-or-gtk-wrap wrap-all-programs
+ (alist-cons-after
+ 'install 'glib-or-gtk-compile-schemas compile-glib-schemas
gnu:%standard-phases)))
(define* (glib-or-gtk-build #:key inputs (phases %standard-phases)
diff --git a/guix/derivations.scm b/guix/derivations.scm
index b1ba573190..69cef1a4cd 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -37,6 +37,7 @@
derivation-inputs
derivation-sources
derivation-system
+ derivation-builder
derivation-builder-arguments
derivation-builder-environment-vars
derivation-file-name
diff --git a/guix/download.scm b/guix/download.scm
index 947da004ae..4c111dd2b5 100644
--- a/guix/download.scm
+++ b/guix/download.scm
@@ -61,15 +61,23 @@
,@(map (cut string-append <> "/gcc") gnu-mirrors))
(gnupg
"ftp://gd.tuwien.ac.at/privacy/gnupg/"
- "ftp://gnupg.x-zone.org/pub/gnupg/"
- "ftp://ftp.gnupg.cz/pub/gcrypt/"
- "ftp://sunsite.dk/pub/security/gcrypt/"
- "http://gnupg.wildyou.net/"
- "http://ftp.gnupg.zone-h.org/"
- "ftp://ftp.jyu.fi/pub/crypt/gcrypt/"
- "ftp://trumpetti.atm.tut.fi/gcrypt/"
+ "ftp://mirrors.dotsrc.org/gcrypt/"
"ftp://mirror.cict.fr/gnupg/"
- "ftp://ftp.strasbourg.linuxfr.org/pub/gnupg/")
+ "http://artfiles.org/gnupg.org"
+ "ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/"
+ "ftp://ftp.freenet.de/pub/ftp.gnupg.org/gcrypt/"
+ "http://www.crysys.hu/"
+ "ftp://ftp.hi.is/pub/mirrors/gnupg/"
+ "ftp://ftp.heanet.ie/mirrors/ftp.gnupg.org/gcrypt/"
+ "ftp://ftp.bit.nl/mirror/gnupg/"
+ "ftp://ftp.surfnet.nl/pub/security/gnupg/"
+ "ftp://ftp.iasi.roedu.net/pub/mirrors/ftp.gnupg.org/"
+ "ftp://ftp.sunet.se/pub/security/gnupg/"
+ "ftp://mirror.switch.ch/mirror/gnupg/"
+ "ftp://mirror.tje.me.uk/pub/mirrors/ftp.gnupg.org/"
+ "ftp://ftp.mirrorservice.org/sites/ftp.gnupg.org/gcrypt/"
+ "ftp://ftp.ring.gr.jp/pub/net/gnupg/"
+ "ftp://ftp.gnupg.org/gcrypt/")
(gnome
"http://ftp.belnet.be/ftp.gnome.org/"
"http://ftp.linux.org.uk/mirrors/ftp.gnome.org/"
diff --git a/guix/elf.scm b/guix/elf.scm
new file mode 100644
index 0000000000..a4b0e819a5
--- /dev/null
+++ b/guix/elf.scm
@@ -0,0 +1,1045 @@
+;;; Guile ELF reader and writer
+
+;; Copyright (C) 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
+
+;;;; This library is free software; you can redistribute it and/or
+;;;; modify it under the terms of the GNU Lesser General Public
+;;;; License as published by the Free Software Foundation; either
+;;;; version 3 of the License, or (at your option) any later version.
+;;;;
+;;;; This library 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
+;;;; Lesser General Public License for more details.
+;;;;
+;;;; You should have received a copy of the GNU Lesser General Public
+;;;; License along with this library; if not, write to the Free Software
+;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+;;; Commentary:
+;;;
+;;; This file was taken from the Guile 2.1 branch, where it is known as
+;;; (system vm elf), and renamed to (guix elf). It will be unneeded when Guix
+;;; switches to Guile 2.1/2.2.
+;;;
+;;; A module to read and write Executable and Linking Format (ELF)
+;;; files.
+;;;
+;;; This module exports a number of record types that represent the
+;;; various parts that make up ELF files. Fundamentally this is the
+;;; main header, the segment headers (program headers), and the section
+;;; headers. It also exports bindings for symbolic constants and
+;;; utilities to parse and write special kinds of ELF sections.
+;;;
+;;; See elf(5) for more information on ELF.
+;;;
+;;; Code:
+
+(define-module (guix elf)
+ #:use-module (rnrs bytevectors)
+ #:use-module (system foreign)
+ #:use-module (system base target)
+ #:use-module (srfi srfi-9)
+ #:use-module (ice-9 receive)
+ #:use-module (ice-9 vlist)
+ #:export (has-elf-header?
+
+ (make-elf* . make-elf)
+ elf?
+ elf-bytes elf-word-size elf-byte-order
+ elf-abi elf-type elf-machine-type
+ elf-entry elf-phoff elf-shoff elf-flags elf-ehsize
+ elf-phentsize elf-phnum elf-shentsize elf-shnum elf-shstrndx
+
+ ELFOSABI_NONE ELFOSABI_HPUX ELFOSABI_NETBSD ELFOSABI_GNU
+ ELFOSABI_SOLARIS ELFOSABI_AIX ELFOSABI_IRIX ELFOSABI_FREEBSD
+ ELFOSABI_TRU64 ELFOSABI_MODESTO ELFOSABI_OPENBSD
+ ELFOSABI_ARM_AEABI ELFOSABI_ARM ELFOSABI_STANDALONE
+
+ ET_NONE ET_REL ET_EXEC ET_DYN ET_CORE
+
+ EM_NONE EM_SPARC EM_386 EM_MIPS EM_PPC EM_PPC64 EM_ARM EM_SH
+ EM_SPARCV9 EM_IA_64 EM_X86_64
+
+ elf-header-len elf-header-shoff-offset
+ write-elf-header
+
+ (make-elf-segment* . make-elf-segment)
+ elf-segment?
+ elf-segment-index
+ elf-segment-type elf-segment-offset elf-segment-vaddr
+ elf-segment-paddr elf-segment-filesz elf-segment-memsz
+ elf-segment-flags elf-segment-align
+
+ elf-program-header-len write-elf-program-header
+
+ PT_NULL PT_LOAD PT_DYNAMIC PT_INTERP PT_NOTE PT_SHLIB
+ PT_PHDR PT_TLS PT_NUM PT_LOOS PT_GNU_EH_FRAME PT_GNU_STACK
+ PT_GNU_RELRO
+
+ PF_R PF_W PF_X
+
+ (make-elf-section* . make-elf-section)
+ elf-section?
+ elf-section-index
+ elf-section-name elf-section-type elf-section-flags
+ elf-section-addr elf-section-offset elf-section-size
+ elf-section-link elf-section-info elf-section-addralign
+ elf-section-entsize
+
+ elf-section-header-len elf-section-header-addr-offset
+ elf-section-header-offset-offset
+ write-elf-section-header
+
+ (make-elf-symbol* . make-elf-symbol)
+ elf-symbol?
+ elf-symbol-name elf-symbol-value elf-symbol-size
+ elf-symbol-info elf-symbol-other elf-symbol-shndx
+ elf-symbol-binding elf-symbol-type elf-symbol-visibility
+
+ elf-symbol-len elf-symbol-value-offset write-elf-symbol
+
+ SHN_UNDEF
+
+ SHT_NULL SHT_PROGBITS SHT_SYMTAB SHT_STRTAB SHT_RELA
+ SHT_HASH SHT_DYNAMIC SHT_NOTE SHT_NOBITS SHT_REL SHT_SHLIB
+ SHT_DYNSYM SHT_INIT_ARRAY SHT_FINI_ARRAY SHT_PREINIT_ARRAY
+ SHT_GROUP SHT_SYMTAB_SHNDX SHT_NUM SHT_LOOS SHT_HIOS
+ SHT_LOPROC SHT_HIPROC SHT_LOUSER SHT_HIUSER
+
+ SHF_WRITE SHF_ALLOC SHF_EXECINSTR SHF_MERGE SHF_STRINGS
+ SHF_INFO_LINK SHF_LINK_ORDER SHF_OS_NONCONFORMING SHF_GROUP
+ SHF_TLS
+
+ DT_NULL DT_NEEDED DT_PLTRELSZ DT_PLTGOT DT_HASH DT_STRTAB
+ DT_SYMTAB DT_RELA DT_RELASZ DT_RELAENT DT_STRSZ DT_SYMENT
+ DT_INIT DT_FINI DT_SONAME DT_RPATH DT_SYMBOLIC DT_REL
+ DT_RELSZ DT_RELENT DT_PLTREL DT_DEBUG DT_TEXTREL DT_JMPREL
+ DT_BIND_NOW DT_INIT_ARRAY DT_FINI_ARRAY DT_INIT_ARRAYSZ
+ DT_FINI_ARRAYSZ DT_RUNPATH DT_FLAGS DT_ENCODING
+ DT_PREINIT_ARRAY DT_PREINIT_ARRAYSZ DT_NUM DT_LOGUILE
+ DT_GUILE_GC_ROOT DT_GUILE_GC_ROOT_SZ DT_GUILE_ENTRY
+ DT_GUILE_VM_VERSION DT_GUILE_FRAME_MAPS DT_HIGUILE
+ DT_LOOS DT_HIOS DT_LOPROC DT_HIPROC
+
+ string-table-ref
+
+ STB_LOCAL STB_GLOBAL STB_WEAK STB_NUM STB_LOOS STB_GNU
+ STB_HIOS STB_LOPROC STB_HIPROC
+
+ STT_NOTYPE STT_OBJECT STT_FUNC STT_SECTION STT_FILE
+ STT_COMMON STT_TLS STT_NUM STT_LOOS STT_GNU STT_HIOS
+ STT_LOPROC STT_HIPROC
+
+ STV_DEFAULT STV_INTERNAL STV_HIDDEN STV_PROTECTED
+
+ NT_GNU_ABI_TAG NT_GNU_HWCAP NT_GNU_BUILD_ID NT_GNU_GOLD_VERSION
+
+ parse-elf
+ elf-segment elf-segments
+ elf-section elf-sections elf-section-by-name elf-sections-by-name
+ elf-symbol-table-len elf-symbol-table-ref
+
+ parse-elf-note
+ elf-note-name elf-note-desc elf-note-type))
+
+;; #define EI_NIDENT 16
+
+;; typedef struct {
+;; unsigned char e_ident[EI_NIDENT];
+;; uint16_t e_type;
+;; uint16_t e_machine;
+;; uint32_t e_version;
+;; ElfN_Addr e_entry;
+;; ElfN_Off e_phoff;
+;; ElfN_Off e_shoff;
+;; uint32_t e_flags;
+;; uint16_t e_ehsize;
+;; uint16_t e_phentsize;
+;; uint16_t e_phnum;
+;; uint16_t e_shentsize;
+;; uint16_t e_shnum;
+;; uint16_t e_shstrndx;
+;; } ElfN_Ehdr;
+
+(define elf32-header-len 52)
+(define elf64-header-len 64)
+(define (elf-header-len word-size)
+ (case word-size
+ ((4) elf32-header-len)
+ ((8) elf64-header-len)
+ (else (error "invalid word size" word-size))))
+(define (elf-header-shoff-offset word-size)
+ (case word-size
+ ((4) 32)
+ ((8) 40)
+ (else (error "bad word size" word-size))))
+
+(define ELFCLASS32 1) ; 32-bit objects
+(define ELFCLASS64 2) ; 64-bit objects
+
+(define ELFDATA2LSB 1) ; 2's complement, little endian
+(define ELFDATA2MSB 2) ; 2's complement, big endian
+
+(define EV_CURRENT 1) ; Current version
+
+(define ELFOSABI_NONE 0) ; UNIX System V ABI */
+(define ELFOSABI_HPUX 1) ; HP-UX
+(define ELFOSABI_NETBSD 2) ; NetBSD.
+(define ELFOSABI_GNU 3) ; Object uses GNU ELF extensions.
+(define ELFOSABI_SOLARIS 6) ; Sun Solaris.
+(define ELFOSABI_AIX 7) ; IBM AIX.
+(define ELFOSABI_IRIX 8) ; SGI Irix.
+(define ELFOSABI_FREEBSD 9) ; FreeBSD.
+(define ELFOSABI_TRU64 10) ; Compaq TRU64 UNIX.
+(define ELFOSABI_MODESTO 11) ; Novell Modesto.
+(define ELFOSABI_OPENBSD 12) ; OpenBSD.
+(define ELFOSABI_ARM_AEABI 64) ; ARM EABI
+(define ELFOSABI_ARM 97) ; ARM
+(define ELFOSABI_STANDALONE 255) ; Standalone (embedded) application
+
+(define ET_NONE 0) ; No file type
+(define ET_REL 1) ; Relocatable file
+(define ET_EXEC 2) ; Executable file
+(define ET_DYN 3) ; Shared object file
+(define ET_CORE 4) ; Core file
+
+;;
+;; Machine types
+;;
+;; Just a sampling of these values. We could include more, but the
+;; important thing is to recognize architectures for which we have a
+;; native compiler. Recognizing more common machine types is icing on
+;; the cake.
+;;
+(define EM_NONE 0) ; No machine
+(define EM_SPARC 2) ; SUN SPARC
+(define EM_386 3) ; Intel 80386
+(define EM_MIPS 8) ; MIPS R3000 big-endian
+(define EM_PPC 20) ; PowerPC
+(define EM_PPC64 21) ; PowerPC 64-bit
+(define EM_ARM 40) ; ARM
+(define EM_SH 42) ; Hitachi SH
+(define EM_SPARCV9 43) ; SPARC v9 64-bit
+(define EM_IA_64 50) ; Intel Merced
+(define EM_X86_64 62) ; AMD x86-64 architecture
+
+(define cpu-mapping (make-hash-table))
+(for-each (lambda (pair)
+ (hashq-set! cpu-mapping (car pair) (cdr pair)))
+ `((none . ,EM_NONE)
+ (sparc . ,EM_SPARC) ; FIXME: map 64-bit to SPARCV9 ?
+ (i386 . ,EM_386)
+ (mips . ,EM_MIPS)
+ (ppc . ,EM_PPC)
+ (ppc64 . ,EM_PPC64)
+ (arm . ,EM_ARM) ; FIXME: there are more arm cpu variants
+ (sh . ,EM_SH) ; FIXME: there are more sh cpu variants
+ (ia64 . ,EM_IA_64)
+ (x86_64 . ,EM_X86_64)))
+
+(define SHN_UNDEF 0)
+
+(define host-machine-type
+ (hashq-ref cpu-mapping
+ (string->symbol (car (string-split %host-type #\-)))
+ EM_NONE))
+
+(define host-word-size
+ (sizeof '*))
+
+(define host-byte-order
+ (native-endianness))
+
+(define (has-elf-header? bv)
+ (and
+ ;; e_ident
+ (>= (bytevector-length bv) 16)
+ (= (bytevector-u8-ref bv 0) #x7f)
+ (= (bytevector-u8-ref bv 1) (char->integer #\E))
+ (= (bytevector-u8-ref bv 2) (char->integer #\L))
+ (= (bytevector-u8-ref bv 3) (char->integer #\F))
+ (cond
+ ((= (bytevector-u8-ref bv 4) ELFCLASS32)
+ (>= (bytevector-length bv) elf32-header-len))
+ ((= (bytevector-u8-ref bv 4) ELFCLASS64)
+ (>= (bytevector-length bv) elf64-header-len))
+ (else #f))
+ (or (= (bytevector-u8-ref bv 5) ELFDATA2LSB)
+ (= (bytevector-u8-ref bv 5) ELFDATA2MSB))
+ (= (bytevector-u8-ref bv 6) EV_CURRENT)
+ ;; Look at ABI later.
+ (= (bytevector-u8-ref bv 8) 0) ; ABI version
+ ;; The rest of the e_ident is padding.
+
+ ;; e_version
+ (let ((byte-order (if (= (bytevector-u8-ref bv 5) ELFDATA2LSB)
+ (endianness little)
+ (endianness big))))
+ (= (bytevector-u32-ref bv 20 byte-order) EV_CURRENT))))
+
+(define-record-type <elf>
+ (make-elf bytes word-size byte-order abi type machine-type
+ entry phoff shoff flags ehsize
+ phentsize phnum shentsize shnum shstrndx)
+ elf?
+ (bytes elf-bytes)
+ (word-size elf-word-size)
+ (byte-order elf-byte-order)
+ (abi elf-abi)
+ (type elf-type)
+ (machine-type elf-machine-type)
+ (entry elf-entry)
+ (phoff elf-phoff)
+ (shoff elf-shoff)
+ (flags elf-flags)
+ (ehsize elf-ehsize)
+ (phentsize elf-phentsize)
+ (phnum elf-phnum)
+ (shentsize elf-shentsize)
+ (shnum elf-shnum)
+ (shstrndx elf-shstrndx))
+
+(define* (make-elf* #:key (bytes #f)
+ (byte-order (target-endianness))
+ (word-size (target-word-size))
+ (abi ELFOSABI_STANDALONE)
+ (type ET_DYN)
+ (machine-type EM_NONE)
+ (entry 0)
+ (phoff (elf-header-len word-size))
+ (shoff -1)
+ (flags 0)
+ (ehsize (elf-header-len word-size))
+ (phentsize (elf-program-header-len word-size))
+ (phnum 0)
+ (shentsize (elf-section-header-len word-size))
+ (shnum 0)
+ (shstrndx SHN_UNDEF))
+ (make-elf bytes word-size byte-order abi type machine-type
+ entry phoff shoff flags ehsize
+ phentsize phnum shentsize shnum shstrndx))
+
+(define (parse-elf32 bv byte-order)
+ (make-elf bv 4 byte-order
+ (bytevector-u8-ref bv 7)
+ (bytevector-u16-ref bv 16 byte-order)
+ (bytevector-u16-ref bv 18 byte-order)
+ (bytevector-u32-ref bv 24 byte-order)
+ (bytevector-u32-ref bv 28 byte-order)
+ (bytevector-u32-ref bv 32 byte-order)
+ (bytevector-u32-ref bv 36 byte-order)
+ (bytevector-u16-ref bv 40 byte-order)
+ (bytevector-u16-ref bv 42 byte-order)
+ (bytevector-u16-ref bv 44 byte-order)
+ (bytevector-u16-ref bv 46 byte-order)
+ (bytevector-u16-ref bv 48 byte-order)
+ (bytevector-u16-ref bv 50 byte-order)))
+
+(define (write-elf-ident bv class data abi)
+ (bytevector-u8-set! bv 0 #x7f)
+ (bytevector-u8-set! bv 1 (char->integer #\E))
+ (bytevector-u8-set! bv 2 (char->integer #\L))
+ (bytevector-u8-set! bv 3 (char->integer #\F))
+ (bytevector-u8-set! bv 4 class)
+ (bytevector-u8-set! bv 5 data)
+ (bytevector-u8-set! bv 6 EV_CURRENT)
+ (bytevector-u8-set! bv 7 abi)
+ (bytevector-u8-set! bv 8 0) ; ABI version
+ (bytevector-u8-set! bv 9 0) ; Pad to 16 bytes.
+ (bytevector-u8-set! bv 10 0)
+ (bytevector-u8-set! bv 11 0)
+ (bytevector-u8-set! bv 12 0)
+ (bytevector-u8-set! bv 13 0)
+ (bytevector-u8-set! bv 14 0)
+ (bytevector-u8-set! bv 15 0))
+
+(define (write-elf32-header bv elf)
+ (let ((byte-order (elf-byte-order elf)))
+ (write-elf-ident bv ELFCLASS32
+ (case byte-order
+ ((little) ELFDATA2LSB)
+ ((big) ELFDATA2MSB)
+ (else (error "unknown endianness" byte-order)))
+ (elf-abi elf))
+ (bytevector-u16-set! bv 16 (elf-type elf) byte-order)
+ (bytevector-u16-set! bv 18 (elf-machine-type elf) byte-order)
+ (bytevector-u32-set! bv 20 EV_CURRENT byte-order)
+ (bytevector-u32-set! bv 24 (elf-entry elf) byte-order)
+ (bytevector-u32-set! bv 28 (elf-phoff elf) byte-order)
+ (bytevector-u32-set! bv 32 (elf-shoff elf) byte-order)
+ (bytevector-u32-set! bv 36 (elf-flags elf) byte-order)
+ (bytevector-u16-set! bv 40 (elf-ehsize elf) byte-order)
+ (bytevector-u16-set! bv 42 (elf-phentsize elf) byte-order)
+ (bytevector-u16-set! bv 44 (elf-phnum elf) byte-order)
+ (bytevector-u16-set! bv 46 (elf-shentsize elf) byte-order)
+ (bytevector-u16-set! bv 48 (elf-shnum elf) byte-order)
+ (bytevector-u16-set! bv 50 (elf-shstrndx elf) byte-order)))
+
+(define (parse-elf64 bv byte-order)
+ (make-elf bv 8 byte-order
+ (bytevector-u8-ref bv 7)
+ (bytevector-u16-ref bv 16 byte-order)
+ (bytevector-u16-ref bv 18 byte-order)
+ (bytevector-u64-ref bv 24 byte-order)
+ (bytevector-u64-ref bv 32 byte-order)
+ (bytevector-u64-ref bv 40 byte-order)
+ (bytevector-u32-ref bv 48 byte-order)
+ (bytevector-u16-ref bv 52 byte-order)
+ (bytevector-u16-ref bv 54 byte-order)
+ (bytevector-u16-ref bv 56 byte-order)
+ (bytevector-u16-ref bv 58 byte-order)
+ (bytevector-u16-ref bv 60 byte-order)
+ (bytevector-u16-ref bv 62 byte-order)))
+
+(define (write-elf64-header bv elf)
+ (let ((byte-order (elf-byte-order elf)))
+ (write-elf-ident bv ELFCLASS64
+ (case byte-order
+ ((little) ELFDATA2LSB)
+ ((big) ELFDATA2MSB)
+ (else (error "unknown endianness" byte-order)))
+ (elf-abi elf))
+ (bytevector-u16-set! bv 16 (elf-type elf) byte-order)
+ (bytevector-u16-set! bv 18 (elf-machine-type elf) byte-order)
+ (bytevector-u32-set! bv 20 EV_CURRENT byte-order)
+ (bytevector-u64-set! bv 24 (elf-entry elf) byte-order)
+ (bytevector-u64-set! bv 32 (elf-phoff elf) byte-order)
+ (bytevector-u64-set! bv 40 (elf-shoff elf) byte-order)
+ (bytevector-u32-set! bv 48 (elf-flags elf) byte-order)
+ (bytevector-u16-set! bv 52 (elf-ehsize elf) byte-order)
+ (bytevector-u16-set! bv 54 (elf-phentsize elf) byte-order)
+ (bytevector-u16-set! bv 56 (elf-phnum elf) byte-order)
+ (bytevector-u16-set! bv 58 (elf-shentsize elf) byte-order)
+ (bytevector-u16-set! bv 60 (elf-shnum elf) byte-order)
+ (bytevector-u16-set! bv 62 (elf-shstrndx elf) byte-order)))
+
+(define (parse-elf bv)
+ (cond
+ ((has-elf-header? bv)
+ (let ((class (bytevector-u8-ref bv 4))
+ (byte-order (let ((data (bytevector-u8-ref bv 5)))
+ (cond
+ ((= data ELFDATA2LSB) (endianness little))
+ ((= data ELFDATA2MSB) (endianness big))
+ (else (error "unhandled byte order" data))))))
+ (cond
+ ((= class ELFCLASS32) (parse-elf32 bv byte-order))
+ ((= class ELFCLASS64) (parse-elf64 bv byte-order))
+ (else (error "unhandled class" class)))))
+ (else
+ (error "Invalid ELF" bv))))
+
+(define* (write-elf-header bv elf)
+ ((case (elf-word-size elf)
+ ((4) write-elf32-header)
+ ((8) write-elf64-header)
+ (else (error "unknown word size" (elf-word-size elf))))
+ bv elf))
+
+;;
+;; Segment types
+;;
+(define PT_NULL 0) ; Program header table entry unused
+(define PT_LOAD 1) ; Loadable program segment
+(define PT_DYNAMIC 2) ; Dynamic linking information
+(define PT_INTERP 3) ; Program interpreter
+(define PT_NOTE 4) ; Auxiliary information
+(define PT_SHLIB 5) ; Reserved
+(define PT_PHDR 6) ; Entry for header table itself
+(define PT_TLS 7) ; Thread-local storage segment
+(define PT_NUM 8) ; Number of defined types
+(define PT_LOOS #x60000000) ; Start of OS-specific
+(define PT_GNU_EH_FRAME #x6474e550) ; GCC .eh_frame_hdr segment
+(define PT_GNU_STACK #x6474e551) ; Indicates stack executability
+(define PT_GNU_RELRO #x6474e552) ; Read-only after relocation
+
+;;
+;; Segment flags
+;;
+(define PF_X (ash 1 0)) ; Segment is executable
+(define PF_W (ash 1 1)) ; Segment is writable
+(define PF_R (ash 1 2)) ; Segment is readable
+
+(define-record-type <elf-segment>
+ (make-elf-segment index type offset vaddr paddr filesz memsz flags align)
+ elf-segment?
+ (index elf-segment-index)
+ (type elf-segment-type)
+ (offset elf-segment-offset)
+ (vaddr elf-segment-vaddr)
+ (paddr elf-segment-paddr)
+ (filesz elf-segment-filesz)
+ (memsz elf-segment-memsz)
+ (flags elf-segment-flags)
+ (align elf-segment-align))
+
+(define* (make-elf-segment* #:key (index -1) (type PT_LOAD) (offset 0) (vaddr 0)
+ (paddr 0) (filesz 0) (memsz filesz)
+ (flags (logior PF_W PF_R))
+ (align 8))
+ (make-elf-segment index type offset vaddr paddr filesz memsz flags align))
+
+;; typedef struct {
+;; uint32_t p_type;
+;; Elf32_Off p_offset;
+;; Elf32_Addr p_vaddr;
+;; Elf32_Addr p_paddr;
+;; uint32_t p_filesz;
+;; uint32_t p_memsz;
+;; uint32_t p_flags;
+;; uint32_t p_align;
+;; } Elf32_Phdr;
+
+(define (parse-elf32-program-header index bv offset byte-order)
+ (if (<= (+ offset 32) (bytevector-length bv))
+ (make-elf-segment index
+ (bytevector-u32-ref bv offset byte-order)
+ (bytevector-u32-ref bv (+ offset 4) byte-order)
+ (bytevector-u32-ref bv (+ offset 8) byte-order)
+ (bytevector-u32-ref bv (+ offset 12) byte-order)
+ (bytevector-u32-ref bv (+ offset 16) byte-order)
+ (bytevector-u32-ref bv (+ offset 20) byte-order)
+ (bytevector-u32-ref bv (+ offset 24) byte-order)
+ (bytevector-u32-ref bv (+ offset 28) byte-order))
+ (error "corrupt ELF (offset out of range)" offset)))
+
+(define (write-elf32-program-header bv offset byte-order seg)
+ (bytevector-u32-set! bv offset (elf-segment-type seg) byte-order)
+ (bytevector-u32-set! bv (+ offset 4) (elf-segment-offset seg) byte-order)
+ (bytevector-u32-set! bv (+ offset 8) (elf-segment-vaddr seg) byte-order)
+ (bytevector-u32-set! bv (+ offset 12) (elf-segment-paddr seg) byte-order)
+ (bytevector-u32-set! bv (+ offset 16) (elf-segment-filesz seg) byte-order)
+ (bytevector-u32-set! bv (+ offset 20) (elf-segment-memsz seg) byte-order)
+ (bytevector-u32-set! bv (+ offset 24) (elf-segment-flags seg) byte-order)
+ (bytevector-u32-set! bv (+ offset 28) (elf-segment-align seg) byte-order))
+
+
+;; typedef struct {
+;; uint32_t p_type;
+;; uint32_t p_flags;
+;; Elf64_Off p_offset;
+;; Elf64_Addr p_vaddr;
+;; Elf64_Addr p_paddr;
+;; uint64_t p_filesz;
+;; uint64_t p_memsz;
+;; uint64_t p_align;
+;; } Elf64_Phdr;
+
+;; NB: position of `flags' is different!
+
+(define (parse-elf64-program-header index bv offset byte-order)
+ (if (<= (+ offset 56) (bytevector-length bv))
+ (make-elf-segment index
+ (bytevector-u32-ref bv offset byte-order)
+ (bytevector-u64-ref bv (+ offset 8) byte-order)
+ (bytevector-u64-ref bv (+ offset 16) byte-order)
+ (bytevector-u64-ref bv (+ offset 24) byte-order)
+ (bytevector-u64-ref bv (+ offset 32) byte-order)
+ (bytevector-u64-ref bv (+ offset 40) byte-order)
+ (bytevector-u32-ref bv (+ offset 4) byte-order)
+ (bytevector-u64-ref bv (+ offset 48) byte-order))
+ (error "corrupt ELF (offset out of range)" offset)))
+
+(define (write-elf64-program-header bv offset byte-order seg)
+ (bytevector-u32-set! bv offset (elf-segment-type seg) byte-order)
+ (bytevector-u64-set! bv (+ offset 8) (elf-segment-offset seg) byte-order)
+ (bytevector-u64-set! bv (+ offset 16) (elf-segment-vaddr seg) byte-order)
+ (bytevector-u64-set! bv (+ offset 24) (elf-segment-paddr seg) byte-order)
+ (bytevector-u64-set! bv (+ offset 32) (elf-segment-filesz seg) byte-order)
+ (bytevector-u64-set! bv (+ offset 40) (elf-segment-memsz seg) byte-order)
+ (bytevector-u32-set! bv (+ offset 4) (elf-segment-flags seg) byte-order)
+ (bytevector-u64-set! bv (+ offset 48) (elf-segment-align seg) byte-order))
+
+(define (write-elf-program-header bv offset byte-order word-size seg)
+ ((case word-size
+ ((4) write-elf32-program-header)
+ ((8) write-elf64-program-header)
+ (else (error "invalid word size" word-size)))
+ bv offset byte-order seg))
+
+(define (elf-program-header-len word-size)
+ (case word-size
+ ((4) 32)
+ ((8) 56)
+ (else (error "bad word size" word-size))))
+
+(define (elf-segment elf n)
+ (if (not (< -1 n (elf-phnum elf)))
+ (error "bad segment number" n))
+ ((case (elf-word-size elf)
+ ((4) parse-elf32-program-header)
+ ((8) parse-elf64-program-header)
+ (else (error "unhandled pointer size")))
+ (elf-bytes elf)
+ (+ (elf-phoff elf) (* n (elf-phentsize elf)))
+ (elf-byte-order elf)))
+
+(define (elf-segments elf)
+ (let lp ((n (elf-phnum elf)) (out '()))
+ (if (zero? n)
+ out
+ (lp (1- n) (cons (elf-segment elf (1- n)) out)))))
+
+(define-record-type <elf-section>
+ (make-elf-section index name type flags
+ addr offset size link info addralign entsize)
+ elf-section?
+ (index elf-section-index)
+ (name elf-section-name)
+ (type elf-section-type)
+ (flags elf-section-flags)
+ (addr elf-section-addr)
+ (offset elf-section-offset)
+ (size elf-section-size)
+ (link elf-section-link)
+ (info elf-section-info)
+ (addralign elf-section-addralign)
+ (entsize elf-section-entsize))
+
+(define* (make-elf-section* #:key (index SHN_UNDEF) (name 0) (type SHT_PROGBITS)
+ (flags SHF_ALLOC) (addr 0) (offset 0) (size 0)
+ (link 0) (info 0) (addralign 8) (entsize 0))
+ (make-elf-section index name type flags addr offset size link info addralign
+ entsize))
+
+;; typedef struct {
+;; uint32_t sh_name;
+;; uint32_t sh_type;
+;; uint32_t sh_flags;
+;; Elf32_Addr sh_addr;
+;; Elf32_Off sh_offset;
+;; uint32_t sh_size;
+;; uint32_t sh_link;
+;; uint32_t sh_info;
+;; uint32_t sh_addralign;
+;; uint32_t sh_entsize;
+;; } Elf32_Shdr;
+
+(define (parse-elf32-section-header index bv offset byte-order)
+ (if (<= (+ offset 40) (bytevector-length bv))
+ (make-elf-section index
+ (bytevector-u32-ref bv offset byte-order)
+ (bytevector-u32-ref bv (+ offset 4) byte-order)
+ (bytevector-u32-ref bv (+ offset 8) byte-order)
+ (bytevector-u32-ref bv (+ offset 12) byte-order)
+ (bytevector-u32-ref bv (+ offset 16) byte-order)
+ (bytevector-u32-ref bv (+ offset 20) byte-order)
+ (bytevector-u32-ref bv (+ offset 24) byte-order)
+ (bytevector-u32-ref bv (+ offset 28) byte-order)
+ (bytevector-u32-ref bv (+ offset 32) byte-order)
+ (bytevector-u32-ref bv (+ offset 36) byte-order))
+ (error "corrupt ELF (offset out of range)" offset)))
+
+(define (write-elf32-section-header bv offset byte-order sec)
+ (bytevector-u32-set! bv offset (elf-section-name sec) byte-order)
+ (bytevector-u32-set! bv (+ offset 4) (elf-section-type sec) byte-order)
+ (bytevector-u32-set! bv (+ offset 8) (elf-section-flags sec) byte-order)
+ (bytevector-u32-set! bv (+ offset 12) (elf-section-addr sec) byte-order)
+ (bytevector-u32-set! bv (+ offset 16) (elf-section-offset sec) byte-order)
+ (bytevector-u32-set! bv (+ offset 20) (elf-section-size sec) byte-order)
+ (bytevector-u32-set! bv (+ offset 24) (elf-section-link sec) byte-order)
+ (bytevector-u32-set! bv (+ offset 28) (elf-section-info sec) byte-order)
+ (bytevector-u32-set! bv (+ offset 32) (elf-section-addralign sec) byte-order)
+ (bytevector-u32-set! bv (+ offset 36) (elf-section-entsize sec) byte-order))
+
+
+;; typedef struct {
+;; uint32_t sh_name;
+;; uint32_t sh_type;
+;; uint64_t sh_flags;
+;; Elf64_Addr sh_addr;
+;; Elf64_Off sh_offset;
+;; uint64_t sh_size;
+;; uint32_t sh_link;
+;; uint32_t sh_info;
+;; uint64_t sh_addralign;
+;; uint64_t sh_entsize;
+;; } Elf64_Shdr;
+
+(define (elf-section-header-len word-size)
+ (case word-size
+ ((4) 40)
+ ((8) 64)
+ (else (error "bad word size" word-size))))
+
+(define (elf-section-header-addr-offset word-size)
+ (case word-size
+ ((4) 12)
+ ((8) 16)
+ (else (error "bad word size" word-size))))
+
+(define (elf-section-header-offset-offset word-size)
+ (case word-size
+ ((4) 16)
+ ((8) 24)
+ (else (error "bad word size" word-size))))
+
+(define (parse-elf64-section-header index bv offset byte-order)
+ (if (<= (+ offset 64) (bytevector-length bv))
+ (make-elf-section index
+ (bytevector-u32-ref bv offset byte-order)
+ (bytevector-u32-ref bv (+ offset 4) byte-order)
+ (bytevector-u64-ref bv (+ offset 8) byte-order)
+ (bytevector-u64-ref bv (+ offset 16) byte-order)
+ (bytevector-u64-ref bv (+ offset 24) byte-order)
+ (bytevector-u64-ref bv (+ offset 32) byte-order)
+ (bytevector-u32-ref bv (+ offset 40) byte-order)
+ (bytevector-u32-ref bv (+ offset 44) byte-order)
+ (bytevector-u64-ref bv (+ offset 48) byte-order)
+ (bytevector-u64-ref bv (+ offset 56) byte-order))
+ (error "corrupt ELF (offset out of range)" offset)))
+
+(define (write-elf64-section-header bv offset byte-order sec)
+ (bytevector-u32-set! bv offset (elf-section-name sec) byte-order)
+ (bytevector-u32-set! bv (+ offset 4) (elf-section-type sec) byte-order)
+ (bytevector-u64-set! bv (+ offset 8) (elf-section-flags sec) byte-order)
+ (bytevector-u64-set! bv (+ offset 16) (elf-section-addr sec) byte-order)
+ (bytevector-u64-set! bv (+ offset 24) (elf-section-offset sec) byte-order)
+ (bytevector-u64-set! bv (+ offset 32) (elf-section-size sec) byte-order)
+ (bytevector-u32-set! bv (+ offset 40) (elf-section-link sec) byte-order)
+ (bytevector-u32-set! bv (+ offset 44) (elf-section-info sec) byte-order)
+ (bytevector-u64-set! bv (+ offset 48) (elf-section-addralign sec) byte-order)
+ (bytevector-u64-set! bv (+ offset 56) (elf-section-entsize sec) byte-order))
+
+(define (elf-section elf n)
+ (if (not (< -1 n (elf-shnum elf)))
+ (error "bad section number" n))
+ ((case (elf-word-size elf)
+ ((4) parse-elf32-section-header)
+ ((8) parse-elf64-section-header)
+ (else (error "unhandled pointer size")))
+ n
+ (elf-bytes elf)
+ (+ (elf-shoff elf) (* n (elf-shentsize elf)))
+ (elf-byte-order elf)))
+
+(define (write-elf-section-header bv offset byte-order word-size sec)
+ ((case word-size
+ ((4) write-elf32-section-header)
+ ((8) write-elf64-section-header)
+ (else (error "invalid word size" word-size)))
+ bv offset byte-order sec))
+
+(define (elf-sections elf)
+ (let lp ((n (elf-shnum elf)) (out '()))
+ (if (zero? n)
+ out
+ (lp (1- n) (cons (elf-section elf (1- n)) out)))))
+
+;;
+;; Section Types
+;;
+(define SHT_NULL 0) ; Section header table entry unused
+(define SHT_PROGBITS 1) ; Program data
+(define SHT_SYMTAB 2) ; Symbol table
+(define SHT_STRTAB 3) ; String table
+(define SHT_RELA 4) ; Relocation entries with addends
+(define SHT_HASH 5) ; Symbol hash table
+(define SHT_DYNAMIC 6) ; Dynamic linking information
+(define SHT_NOTE 7) ; Notes
+(define SHT_NOBITS 8) ; Program space with no data (bss)
+(define SHT_REL 9) ; Relocation entries, no addends
+(define SHT_SHLIB 10) ; Reserved
+(define SHT_DYNSYM 11) ; Dynamic linker symbol table
+(define SHT_INIT_ARRAY 14) ; Array of constructors
+(define SHT_FINI_ARRAY 15) ; Array of destructors
+(define SHT_PREINIT_ARRAY 16) ; Array of pre-constructors
+(define SHT_GROUP 17) ; Section group
+(define SHT_SYMTAB_SHNDX 18) ; Extended section indeces
+(define SHT_NUM 19) ; Number of defined types.
+(define SHT_LOOS #x60000000) ; Start OS-specific.
+(define SHT_HIOS #x6fffffff) ; End OS-specific type
+(define SHT_LOPROC #x70000000) ; Start of processor-specific
+(define SHT_HIPROC #x7fffffff) ; End of processor-specific
+(define SHT_LOUSER #x80000000) ; Start of application-specific
+(define SHT_HIUSER #x8fffffff) ; End of application-specific
+
+;;
+;; Section Flags
+;;
+(define SHF_WRITE (ash 1 0)) ; Writable
+(define SHF_ALLOC (ash 1 1)) ; Occupies memory during execution
+(define SHF_EXECINSTR (ash 1 2)) ; Executable
+(define SHF_MERGE (ash 1 4)) ; Might be merged
+(define SHF_STRINGS (ash 1 5)) ; Contains nul-terminated strings
+(define SHF_INFO_LINK (ash 1 6)) ; `sh_info' contains SHT index
+(define SHF_LINK_ORDER (ash 1 7)) ; Preserve order after combining
+(define SHF_OS_NONCONFORMING (ash 1 8)) ; Non-standard OS specific handling required
+(define SHF_GROUP (ash 1 9)) ; Section is member of a group.
+(define SHF_TLS (ash 1 10)) ; Section hold thread-local data.
+
+;;
+;; Dynamic entry types. The DT_GUILE types are non-standard.
+;;
+(define DT_NULL 0) ; Marks end of dynamic section
+(define DT_NEEDED 1) ; Name of needed library
+(define DT_PLTRELSZ 2) ; Size in bytes of PLT relocs
+(define DT_PLTGOT 3) ; Processor defined value
+(define DT_HASH 4) ; Address of symbol hash table
+(define DT_STRTAB 5) ; Address of string table
+(define DT_SYMTAB 6) ; Address of symbol table
+(define DT_RELA 7) ; Address of Rela relocs
+(define DT_RELASZ 8) ; Total size of Rela relocs
+(define DT_RELAENT 9) ; Size of one Rela reloc
+(define DT_STRSZ 10) ; Size of string table
+(define DT_SYMENT 11) ; Size of one symbol table entry
+(define DT_INIT 12) ; Address of init function
+(define DT_FINI 13) ; Address of termination function
+(define DT_SONAME 14) ; Name of shared object
+(define DT_RPATH 15) ; Library search path (deprecated)
+(define DT_SYMBOLIC 16) ; Start symbol search here
+(define DT_REL 17) ; Address of Rel relocs
+(define DT_RELSZ 18) ; Total size of Rel relocs
+(define DT_RELENT 19) ; Size of one Rel reloc
+(define DT_PLTREL 20) ; Type of reloc in PLT
+(define DT_DEBUG 21) ; For debugging ; unspecified
+(define DT_TEXTREL 22) ; Reloc might modify .text
+(define DT_JMPREL 23) ; Address of PLT relocs
+(define DT_BIND_NOW 24) ; Process relocations of object
+(define DT_INIT_ARRAY 25) ; Array with addresses of init fct
+(define DT_FINI_ARRAY 26) ; Array with addresses of fini fct
+(define DT_INIT_ARRAYSZ 27) ; Size in bytes of DT_INIT_ARRAY
+(define DT_FINI_ARRAYSZ 28) ; Size in bytes of DT_FINI_ARRAY
+(define DT_RUNPATH 29) ; Library search path
+(define DT_FLAGS 30) ; Flags for the object being loaded
+(define DT_ENCODING 32) ; Start of encoded range
+(define DT_PREINIT_ARRAY 32) ; Array with addresses of preinit fc
+(define DT_PREINIT_ARRAYSZ 33) ; size in bytes of DT_PREINIT_ARRAY
+(define DT_NUM 34) ; Number used
+(define DT_LOGUILE #x37146000) ; Start of Guile-specific
+(define DT_GUILE_GC_ROOT #x37146000) ; Offset of GC roots
+(define DT_GUILE_GC_ROOT_SZ #x37146001) ; Size in machine words of GC roots
+(define DT_GUILE_ENTRY #x37146002) ; Address of entry thunk
+(define DT_GUILE_VM_VERSION #x37146003) ; Bytecode version
+(define DT_GUILE_FRAME_MAPS #x37146004) ; Offset of .guile.frame-maps
+(define DT_HIGUILE #x37146fff) ; End of Guile-specific
+(define DT_LOOS #x6000000d) ; Start of OS-specific
+(define DT_HIOS #x6ffff000) ; End of OS-specific
+(define DT_LOPROC #x70000000) ; Start of processor-specific
+(define DT_HIPROC #x7fffffff) ; End of processor-specific
+
+
+(define (string-table-ref bv offset)
+ (let lp ((end offset))
+ (if (zero? (bytevector-u8-ref bv end))
+ (let ((out (make-bytevector (- end offset))))
+ (bytevector-copy! bv offset out 0 (- end offset))
+ (utf8->string out))
+ (lp (1+ end)))))
+
+(define (elf-section-by-name elf name)
+ (let ((off (elf-section-offset (elf-section elf (elf-shstrndx elf)))))
+ (let lp ((n (elf-shnum elf)))
+ (and (> n 0)
+ (let ((section (elf-section elf (1- n))))
+ (if (equal? (string-table-ref (elf-bytes elf)
+ (+ off (elf-section-name section)))
+ name)
+ section
+ (lp (1- n))))))))
+
+(define (elf-sections-by-name elf)
+ (let* ((sections (elf-sections elf))
+ (off (elf-section-offset (list-ref sections (elf-shstrndx elf)))))
+ (map (lambda (section)
+ (cons (string-table-ref (elf-bytes elf)
+ (+ off (elf-section-name section)))
+ section))
+ sections)))
+
+(define-record-type <elf-symbol>
+ (make-elf-symbol name value size info other shndx)
+ elf-symbol?
+ (name elf-symbol-name)
+ (value elf-symbol-value)
+ (size elf-symbol-size)
+ (info elf-symbol-info)
+ (other elf-symbol-other)
+ (shndx elf-symbol-shndx))
+
+(define* (make-elf-symbol* #:key (name 0) (value 0) (size 0)
+ (binding STB_LOCAL) (type STT_NOTYPE)
+ (info (logior (ash binding 4) type))
+ (visibility STV_DEFAULT) (other visibility)
+ (shndx SHN_UNDEF))
+ (make-elf-symbol name value size info other shndx))
+
+;; typedef struct {
+;; uint32_t st_name;
+;; Elf32_Addr st_value;
+;; uint32_t st_size;
+;; unsigned char st_info;
+;; unsigned char st_other;
+;; uint16_t st_shndx;
+;; } Elf32_Sym;
+
+(define (elf-symbol-len word-size)
+ (case word-size
+ ((4) 16)
+ ((8) 24)
+ (else (error "bad word size" word-size))))
+
+(define (elf-symbol-value-offset word-size)
+ (case word-size
+ ((4) 4)
+ ((8) 8)
+ (else (error "bad word size" word-size))))
+
+(define (parse-elf32-symbol bv offset stroff byte-order)
+ (if (<= (+ offset 16) (bytevector-length bv))
+ (make-elf-symbol (let ((name (bytevector-u32-ref bv offset byte-order)))
+ (if stroff
+ (string-table-ref bv (+ stroff name))
+ name))
+ (bytevector-u32-ref bv (+ offset 4) byte-order)
+ (bytevector-u32-ref bv (+ offset 8) byte-order)
+ (bytevector-u8-ref bv (+ offset 12))
+ (bytevector-u8-ref bv (+ offset 13))
+ (bytevector-u16-ref bv (+ offset 14) byte-order))
+ (error "corrupt ELF (offset out of range)" offset)))
+
+(define (write-elf32-symbol bv offset byte-order sym)
+ (bytevector-u32-set! bv offset (elf-symbol-name sym) byte-order)
+ (bytevector-u32-set! bv (+ offset 4) (elf-symbol-value sym) byte-order)
+ (bytevector-u32-set! bv (+ offset 8) (elf-symbol-size sym) byte-order)
+ (bytevector-u8-set! bv (+ offset 12) (elf-symbol-info sym))
+ (bytevector-u8-set! bv (+ offset 13) (elf-symbol-other sym))
+ (bytevector-u16-set! bv (+ offset 14) (elf-symbol-shndx sym) byte-order))
+
+;; typedef struct {
+;; uint32_t st_name;
+;; unsigned char st_info;
+;; unsigned char st_other;
+;; uint16_t st_shndx;
+;; Elf64_Addr st_value;
+;; uint64_t st_size;
+;; } Elf64_Sym;
+
+(define (parse-elf64-symbol bv offset stroff byte-order)
+ (if (<= (+ offset 24) (bytevector-length bv))
+ (make-elf-symbol (let ((name (bytevector-u32-ref bv offset byte-order)))
+ (if stroff
+ (string-table-ref bv (+ stroff name))
+ name))
+ (bytevector-u64-ref bv (+ offset 8) byte-order)
+ (bytevector-u64-ref bv (+ offset 16) byte-order)
+ (bytevector-u8-ref bv (+ offset 4))
+ (bytevector-u8-ref bv (+ offset 5))
+ (bytevector-u16-ref bv (+ offset 6) byte-order))
+ (error "corrupt ELF (offset out of range)" offset)))
+
+(define (write-elf64-symbol bv offset byte-order sym)
+ (bytevector-u32-set! bv offset (elf-symbol-name sym) byte-order)
+ (bytevector-u8-set! bv (+ offset 4) (elf-symbol-info sym))
+ (bytevector-u8-set! bv (+ offset 5) (elf-symbol-other sym))
+ (bytevector-u16-set! bv (+ offset 6) (elf-symbol-shndx sym) byte-order)
+ (bytevector-u64-set! bv (+ offset 8) (elf-symbol-value sym) byte-order)
+ (bytevector-u64-set! bv (+ offset 16) (elf-symbol-size sym) byte-order))
+
+(define (write-elf-symbol bv offset byte-order word-size sym)
+ ((case word-size
+ ((4) write-elf32-symbol)
+ ((8) write-elf64-symbol)
+ (else (error "invalid word size" word-size)))
+ bv offset byte-order sym))
+
+(define (elf-symbol-table-len section)
+ (let ((len (elf-section-size section))
+ (entsize (elf-section-entsize section)))
+ (unless (and (not (zero? entsize)) (zero? (modulo len entsize)))
+ (error "bad symbol table" section))
+ (/ len entsize)))
+
+(define* (elf-symbol-table-ref elf section n #:optional strtab)
+ (let ((bv (elf-bytes elf))
+ (byte-order (elf-byte-order elf))
+ (stroff (and strtab (elf-section-offset strtab)))
+ (base (elf-section-offset section))
+ (len (elf-section-size section))
+ (entsize (elf-section-entsize section)))
+ (unless (<= (* (1+ n) entsize) len)
+ (error "out of range symbol table access" section n))
+ (case (elf-word-size elf)
+ ((4)
+ (unless (<= 16 entsize)
+ (error "bad entsize for symbol table" section))
+ (parse-elf32-symbol bv (+ base (* n entsize)) stroff byte-order))
+ ((8)
+ (unless (<= 24 entsize)
+ (error "bad entsize for symbol table" section))
+ (parse-elf64-symbol bv (+ base (* n entsize)) stroff byte-order))
+ (else (error "bad word size" elf)))))
+
+;; Legal values for ST_BIND subfield of st_info (symbol binding).
+
+(define STB_LOCAL 0) ; Local symbol
+(define STB_GLOBAL 1) ; Global symbol
+(define STB_WEAK 2) ; Weak symbol
+(define STB_NUM 3) ; Number of defined types.
+(define STB_LOOS 10) ; Start of OS-specific
+(define STB_GNU_UNIQUE 10) ; Unique symbol.
+(define STB_HIOS 12) ; End of OS-specific
+(define STB_LOPROC 13) ; Start of processor-specific
+(define STB_HIPROC 15) ; End of processor-specific
+
+;; Legal values for ST_TYPE subfield of st_info (symbol type).
+
+(define STT_NOTYPE 0) ; Symbol type is unspecified
+(define STT_OBJECT 1) ; Symbol is a data object
+(define STT_FUNC 2) ; Symbol is a code object
+(define STT_SECTION 3) ; Symbol associated with a section
+(define STT_FILE 4) ; Symbol's name is file name
+(define STT_COMMON 5) ; Symbol is a common data object
+(define STT_TLS 6) ; Symbol is thread-local data objec
+(define STT_NUM 7) ; Number of defined types.
+(define STT_LOOS 10) ; Start of OS-specific
+(define STT_GNU_IFUNC 10) ; Symbol is indirect code object
+(define STT_HIOS 12) ; End of OS-specific
+(define STT_LOPROC 13) ; Start of processor-specific
+(define STT_HIPROC 15) ; End of processor-specific
+
+;; Symbol visibility specification encoded in the st_other field.
+
+(define STV_DEFAULT 0) ; Default symbol visibility rules
+(define STV_INTERNAL 1) ; Processor specific hidden class
+(define STV_HIDDEN 2) ; Sym unavailable in other modules
+(define STV_PROTECTED 3) ; Not preemptible, not exported
+
+(define (elf-symbol-binding sym)
+ (ash (elf-symbol-info sym) -4))
+
+(define (elf-symbol-type sym)
+ (logand (elf-symbol-info sym) #xf))
+
+(define (elf-symbol-visibility sym)
+ (logand (elf-symbol-other sym) #x3))
+
+(define NT_GNU_ABI_TAG 1)
+(define NT_GNU_HWCAP 2)
+(define NT_GNU_BUILD_ID 3)
+(define NT_GNU_GOLD_VERSION 4)
+
+(define-record-type <elf-note>
+ (make-elf-note name desc type)
+ elf-note?
+ (name elf-note-name)
+ (desc elf-note-desc)
+ (type elf-note-type))
+
+(define (parse-elf-note elf section)
+ (let ((bv (elf-bytes elf))
+ (byte-order (elf-byte-order elf))
+ (offset (elf-section-offset section)))
+ (unless (<= (+ offset 12) (bytevector-length bv))
+ (error "corrupt ELF (offset out of range)" offset))
+ (let ((namesz (bytevector-u32-ref bv offset byte-order))
+ (descsz (bytevector-u32-ref bv (+ offset 4) byte-order))
+ (type (bytevector-u32-ref bv (+ offset 8) byte-order)))
+ (unless (<= (+ offset 12 namesz descsz) (bytevector-length bv))
+ (error "corrupt ELF (offset out of range)" offset))
+ (let ((name (make-bytevector (1- namesz)))
+ (desc (make-bytevector descsz)))
+ (bytevector-copy! bv (+ offset 12) name 0 (1- namesz))
+ (bytevector-copy! bv (+ offset 12 namesz) desc 0 descsz)
+ (make-elf-note (utf8->string name) desc type)))))
diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm
index ee84446549..0528e9f253 100644
--- a/guix/gnu-maintenance.scm
+++ b/guix/gnu-maintenance.scm
@@ -233,12 +233,14 @@ stored."
(values "ftp.gnu.org" (string-append "/gnu/" project)))))
(define (sans-extension tarball)
- "Return TARBALL without its .tar.* extension."
- (let ((end (string-contains tarball ".tar")))
+ "Return TARBALL without its .tar.* or .zip extension."
+ (let ((end (or (string-contains tarball ".tar")
+ (string-contains tarball ".zip"))))
(substring tarball 0 end)))
(define %tarball-rx
- (make-regexp "^(.+)-([0-9]|[^-])*(-src)?\\.tar\\."))
+ ;; Note: .zip files are notably used for freefont-ttf.
+ (make-regexp "^(.+)-([0-9]|[^-])*(-src)?\\.(tar\\.|zip$)"))
(define %alpha-tarball-rx
(make-regexp "^.*-.*[0-9](-|~)?(alpha|beta|rc|cvs|svn|git)-?[0-9\\.]*\\.tar\\."))
diff --git a/guix/import/gnu.scm b/guix/import/gnu.scm
index 763b8d2a12..1947f489fb 100644
--- a/guix/import/gnu.scm
+++ b/guix/import/gnu.scm
@@ -84,7 +84,7 @@
,(string-append ".tar." archive-type)))
(sha256
(base32
- ,(bytevector->base32-string (file-sha256 tarball))))))
+ ,(bytevector->nix-base32-string (file-sha256 tarball))))))
(build-system gnu-build-system)
(synopsis ,(gnu-package-doc-summary package))
(description ,(gnu-package-doc-description package))
diff --git a/guix/licenses.scm b/guix/licenses.scm
index 3a21f4f5cf..86f3ae4e82 100644
--- a/guix/licenses.scm
+++ b/guix/licenses.scm
@@ -40,7 +40,8 @@
ibmpl1.0
imlib2
lgpl2.0 lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3 lgpl3+
- mpl2.0
+ mpl1.1 mpl2.0
+ ncsa
openldap2.8 openssl
psfl public-domain
qpl
@@ -239,11 +240,21 @@ which may be a file:// URI pointing the package's tree."
"https://www.gnu.org/licenses/lgpl.html"
"https://www.gnu.org/licenses/license-list#LGPLv3"))
+(define mpl1.1
+ (license "MPL 1.1"
+ "http://directory.fsf.org/wiki/License:MPLv1.1"
+ "https://www.gnu.org/licenses/license-list#MPL"))
+
(define mpl2.0
(license "MPL 2.0"
"http://directory.fsf.org/wiki/License:MPLv2.0"
"https://www.gnu.org/licenses/license-list#MPL-2.0"))
+(define ncsa
+ (license "NCSA/University of Illinois Open Source License"
+ "http://directory.fsf.org/wiki/License:IllinoisNCSA"
+ "https://www.gnu.org/licenses/license-list#NCSA"))
+
(define openssl
(license "OpenSSL"
"http://directory.fsf.org/wiki/License:OpenSSL"
diff --git a/guix/monads.scm b/guix/monads.scm
index b419ba066a..65683e65de 100644
--- a/guix/monads.scm
+++ b/guix/monads.scm
@@ -39,7 +39,9 @@
mlet
mlet*
mbegin
- lift1 lift2 lift3 lift4 lift5 lift6 lift7 lift
+ mwhen
+ munless
+ lift0 lift1 lift2 lift3 lift4 lift5 lift6 lift7 lift
listm
foldm
mapm
@@ -173,9 +175,15 @@ form is (VAR -> VAL), bind VAR to the non-monadic value VAL in the same way as
body ...)))))))
(define-syntax mbegin
- (syntax-rules ()
+ (syntax-rules (%current-monad)
"Bind the given monadic expressions in sequence, returning the result of
the last one."
+ ((_ %current-monad mexp)
+ mexp)
+ ((_ %current-monad mexp rest ...)
+ (>>= mexp
+ (lambda (unused-value)
+ (mbegin %current-monad rest ...))))
((_ monad mexp)
(with-monad monad
mexp))
@@ -185,6 +193,26 @@ the last one."
(lambda (unused-value)
(mbegin monad rest ...)))))))
+(define-syntax mwhen
+ (syntax-rules ()
+ "When CONDITION is true, evaluate EXP0..EXP* as in an 'mbegin'. When
+CONDITION is false, return *unspecified* in the current monad."
+ ((_ condition exp0 exp* ...)
+ (if condition
+ (mbegin %current-monad
+ exp0 exp* ...)
+ (return *unspecified*)))))
+
+(define-syntax munless
+ (syntax-rules ()
+ "When CONDITION is false, evaluate EXP0..EXP* as in an 'mbegin'. When
+CONDITION is true, return *unspecified* in the current monad."
+ ((_ condition exp0 exp* ...)
+ (if condition
+ (return *unspecified*)
+ (mbegin %current-monad
+ exp0 exp* ...)))))
+
(define-syntax define-lift
(syntax-rules ()
((_ liftn (args ...))
@@ -194,6 +222,7 @@ the last one."
(with-monad monad
(return (proc args ...))))))))
+(define-lift lift0 ())
(define-lift lift1 (a))
(define-lift lift2 (a b))
(define-lift lift3 (a b c))
diff --git a/guix/packages.scm b/guix/packages.scm
index 67a767106e..07f6d0ccbc 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -376,7 +376,7 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET."
(add-to-store store (basename patch) #t
"sha256" patch))
((? origin?)
- (package-source-derivation store patch)))))
+ (package-source-derivation store patch system)))))
(iota (length patches))
patches))
diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm
index 84904e29da..781ffc5f58 100644
--- a/guix/scripts/archive.scm
+++ b/guix/scripts/archive.scm
@@ -293,6 +293,11 @@ the input port."
(define (guix-archive . args)
(define (parse-options)
;; Return the alist of option values.
+ (append (parse-options-from args)
+ (parse-options-from (environment-build-options))))
+
+ (define (parse-options-from args)
+ ;; Actual parsing takes place here.
(args-fold* args %options
(lambda (opt name arg result)
(leave (_ "~A: unrecognized option~%") name))
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm
index 7b7f419f3a..26e9f42774 100644
--- a/guix/scripts/build.scm
+++ b/guix/scripts/build.scm
@@ -119,7 +119,9 @@ options handled by 'set-build-options-from-command-line', and listed in
(display (_ "
--verbosity=LEVEL use the given verbosity LEVEL"))
(display (_ "
- -c, --cores=N allow the use of up to N CPU cores for the build")))
+ -c, --cores=N allow the use of up to N CPU cores for the build"))
+ (display (_ "
+ -M, --max-jobs=N allow at most N build jobs")))
(define (set-build-options-from-command-line store opts)
"Given OPTS, an alist as returned by 'args-fold' given
@@ -128,6 +130,7 @@ options handled by 'set-build-options-from-command-line', and listed in
(set-build-options store
#:keep-failed? (assoc-ref opts 'keep-failed?)
#:build-cores (or (assoc-ref opts 'cores) 0)
+ #:max-build-jobs (or (assoc-ref opts 'max-jobs) 1)
#:fallback? (assoc-ref opts 'fallback?)
#:use-substitutes? (assoc-ref opts 'substitutes?)
#:use-build-hook? (assoc-ref opts 'build-hook?)
@@ -192,7 +195,15 @@ options handled by 'set-build-options-from-command-line', and listed in
(let ((c (false-if-exception (string->number arg))))
(if c
(apply values (alist-cons 'cores c result) rest)
- (leave (_ "~a: not a number~%") arg)))))))
+ (leave (_ "not a number: '~a' option argument: ~a~%")
+ name arg)))))
+ (option '(#\M "max-jobs") #t #f
+ (lambda (opt name arg result . rest)
+ (let ((c (false-if-exception (string->number arg))))
+ (if c
+ (apply values (alist-cons 'max-jobs c result) rest)
+ (leave (_ "not a number: '~a' option argument: ~a~%")
+ name arg)))))))
;;;
@@ -390,6 +401,11 @@ arguments with packages that use the specified source."
(define (guix-build . args)
(define (parse-options)
;; Return the alist of option values.
+ (append (parse-options-from args)
+ (parse-options-from (environment-build-options))))
+
+ (define (parse-options-from args)
+ ;; Actual parsing takes place here.
(args-fold* args %options
(lambda (opt name arg result)
(leave (_ "~A: unrecognized option~%") name))
diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm
index 81bad963f6..c388b0c52c 100644
--- a/guix/scripts/environment.scm
+++ b/guix/scripts/environment.scm
@@ -213,6 +213,12 @@ packages."
;; Entry point.
(define (guix-environment . args)
(define (parse-options)
+ ;; Return the alist of option values.
+ (append (parse-options-from args)
+ (parse-options-from (environment-build-options))))
+
+ (define (parse-options-from args)
+ ;; Actual parsing takes place here.
(args-fold* args %options
(lambda (opt name arg result)
(leave (_ "~A: unrecognized option~%") name))
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index 3a72053766..21dc66cb75 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -668,6 +668,11 @@ removed from MANIFEST."
(define (guix-package . args)
(define (parse-options)
;; Return the alist of option values.
+ (append (parse-options-from args)
+ (parse-options-from (environment-build-options))))
+
+ (define (parse-options-from args)
+ ;; Actual parsing takes place here.
(args-fold* args %options
(lambda (opt name arg result arg-handler)
(leave (_ "~A: unrecognized option~%") name))
diff --git a/guix/scripts/substitute-binary.scm b/guix/scripts/substitute-binary.scm
index ddca76d370..9c96411630 100755
--- a/guix/scripts/substitute-binary.scm
+++ b/guix/scripts/substitute-binary.scm
@@ -175,7 +175,7 @@ to the caller without emitting an error message."
%fetch-timeout
0)
(begin
- (warning (_ "while fetching ~a: server is unresponsive~%")
+ (warning (_ "while fetching ~a: server is somewhat slow~%")
(uri->string uri))
(warning (_ "try `--no-substitutes' if the problem persists~%"))
@@ -758,6 +758,10 @@ substituter disabled~%")
progress)))
;; Unpack the Nar at INPUT into DESTINATION.
(restore-file input destination)
+
+ ;; Skip a line after what 'progress-proc' printed.
+ (newline (current-error-port))
+
(every (compose zero? cdr waitpid) pids))))
(("--version")
(show-version-and-exit "guix substitute-binary"))
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index 398a5a371b..27404772b7 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -131,6 +131,27 @@ TARGET, and register them."
(map (cut copy-item <> target #:log-port log-port)
to-copy))))
+(define (install-grub* grub.cfg device target)
+ "This is a variant of 'install-grub' with error handling, lifted in
+%STORE-MONAD"
+ (let* ((gc-root (string-append %gc-roots-directory "/grub.cfg"))
+ (temp-gc-root (string-append gc-root ".new"))
+ (delete-file (lift1 delete-file %store-monad))
+ (make-symlink (lift2 switch-symlinks %store-monad))
+ (rename (lift2 rename-file %store-monad)))
+ (mbegin %store-monad
+ ;; Prepare the symlink to GRUB.CFG to make sure that it's a GC root when
+ ;; 'install-grub' completes (being a bit paranoid.)
+ (make-symlink temp-gc-root grub.cfg)
+
+ (munless (false-if-exception (install-grub grub.cfg device target))
+ (delete-file temp-gc-root)
+ (leave (_ "failed to install GRUB on device '~a'~%") device))
+
+ ;; Register GRUB.CFG as a GC root so that its dependencies (background
+ ;; image, font, etc.) are not reclaimed.
+ (rename temp-gc-root gc-root))))
+
(define* (install os-drv target
#:key (log-port (current-output-port))
grub? grub.cfg device)
@@ -151,18 +172,19 @@ When GRUB? is true, install GRUB on DEVICE, using GRUB.CFG."
;; Copy items to the new store.
(copy-closure to-copy target #:log-port log-port)))))
- (mlet* %store-monad ((os-dir -> (derivation->output-path os-drv))
- (% (maybe-copy os-dir)))
+ (let ((os-dir (derivation->output-path os-drv))
+ (format (lift format %store-monad))
+ (populate (lift2 populate-root-file-system %store-monad)))
- ;; Create a bunch of additional files.
- (format log-port "populating '~a'...~%" target)
- (populate-root-file-system os-dir target)
+ (mbegin %store-monad
+ (maybe-copy os-dir)
- (when grub?
- (unless (false-if-exception (install-grub grub.cfg device target))
- (leave (_ "failed to install GRUB on device '~a'~%") device)))
+ ;; Create a bunch of additional files.
+ (format log-port "populating '~a'...~%" target)
+ (populate os-dir target)
- (return #t)))
+ (mwhen grub?
+ (install-grub* grub.cfg device target)))))
;;;
@@ -334,14 +356,11 @@ boot directly to the kernel or to the bootloader."
(case action
((reconfigure)
- (mlet %store-monad ((% (switch-to-system os)))
- (when grub?
- (unless (false-if-exception
- (install-grub (derivation->output-path grub.cfg)
- device "/"))
- (leave (_ "failed to install GRUB on device '~a'~%")
- device)))
- (return #t)))
+ (mbegin %store-monad
+ (switch-to-system os)
+ (mwhen grub?
+ (install-grub* (derivation->output-path grub.cfg)
+ device "/"))))
((init)
(newline)
(format #t (_ "initializing operating system under '~a'...~%")
@@ -467,6 +486,11 @@ Build the operating system declared in FILE according to ACTION.\n"))
(define (guix-system . args)
(define (parse-options)
;; Return the alist of option values.
+ (append (parse-options-from args)
+ (parse-options-from (environment-build-options))))
+
+ (define (parse-options-from args)
+ ;; Actual parsing takes place here.
(args-fold* args %options
(lambda (opt name arg result)
(leave (_ "~A: unrecognized option~%") name))
diff --git a/guix/store.scm b/guix/store.scm
index bc4c641583..571cc060d3 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -435,14 +435,14 @@ encoding conversion errors."
(define* (set-build-options server
#:key keep-failed? keep-going? fallback?
(verbosity 0)
- (max-build-jobs (current-processor-count))
+ (max-build-jobs 1)
timeout
(max-silent-time 3600)
(use-build-hook? #t)
(build-verbosity 0)
(log-type 0)
(print-build-trace #t)
- (build-cores 1)
+ (build-cores (current-processor-count))
(use-substitutes? #t)
(binary-caches '())) ; client "untrusted" cache URLs
;; Must be called after `open-connection'.
diff --git a/guix/ui.scm b/guix/ui.scm
index 69b073da50..c77e04172e 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -64,6 +64,7 @@
string->generations
string->duration
args-fold*
+ environment-build-options
run-guix-command
program-name
guix-warning-port
@@ -712,6 +713,10 @@ reporting."
(leave (_ "invalid argument: ~a~%")
(apply format #f msg args)))))
+(define (environment-build-options)
+ "Return additional build options passed as environment variables."
+ (arguments-from-environment-variable "GUIX_BUILD_OPTIONS"))
+
(define (show-guix-usage)
(format (current-error-port)
(_ "Try `guix --help' for more information.~%"))
diff --git a/guix/utils.scm b/guix/utils.scm
index 9b802b6fb3..d0d2e8a3d4 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -72,6 +72,7 @@
package-name->name+version
string-tokenize*
string-replace-substring
+ arguments-from-environment-variable
file-extension
file-sans-extension
call-with-temporary-output-file
@@ -627,6 +628,15 @@ REPLACEMENT."
(substring str start index)
pieces))))))))
+(define (arguments-from-environment-variable variable)
+ "Retrieve value of environment variable denoted by string VARIABLE in the
+form of a list of strings (`char-set:graphic' tokens) suitable for consumption
+by `args-fold', if VARIABLE is defined, otherwise return an empty list."
+ (let ((env (getenv variable)))
+ (if env
+ (string-tokenize env char-set:graphic)
+ '())))
+
(define (call-with-temporary-output-file proc)
"Call PROC with a name of a temporary file and open output port to that
file; close the file and delete it when leaving the dynamic extent of this
diff --git a/nix/nix-daemon/guix-daemon.cc b/nix/nix-daemon/guix-daemon.cc
index d1d4541971..3cca120755 100644
--- a/nix/nix-daemon/guix-daemon.cc
+++ b/nix/nix-daemon/guix-daemon.cc
@@ -264,6 +264,9 @@ main (int argc, char *argv[])
/* Turn automatic deduplication on by default. */
settings.autoOptimiseStore = true;
+ /* Default to using as many cores as possible. */
+ settings.buildCores = 0;
+
argvSaved = argv;
try
diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in
index 5cc68ff404..591b6a1c9a 100644
--- a/po/guix/POTFILES.in
+++ b/po/guix/POTFILES.in
@@ -1,6 +1,7 @@
# List of source files which contain translatable strings.
# This should be source files of the various tools, and not package modules.
gnu/packages.scm
+gnu/system.scm
guix/scripts/build.scm
guix/scripts/download.scm
guix/scripts/package.scm
diff --git a/po/guix/eo.po b/po/guix/eo.po
index cffc546dc1..ee57c6520b 100644
--- a/po/guix/eo.po
+++ b/po/guix/eo.po
@@ -5,49 +5,68 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: guix 0.7-pre1\n"
+"Project-Id-Version: guix 0.8\n"
"Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2014-07-25 00:55+0200\n"
-"PO-Revision-Date: 2014-07-14 11:29-0300\n"
+"POT-Creation-Date: 2014-11-09 22:32+0100\n"
+"PO-Revision-Date: 2014-12-07 16:05-0300\n"
"Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
"Language: eo\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.5.4\n"
+"X-Generator: Poedit 1.6.10\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: gnu/packages.scm:102
+#: gnu/packages.scm:120
#, scheme-format
msgid "cannot access `~a': ~a~%"
msgstr "ne eblas atingi '~a': ~a~%"
-#: guix/scripts/build.scm:54 guix/scripts/package.scm:349
+#: gnu/packages.scm:350
+#, scheme-format
+msgid "looking for the latest release of GNU ~a..."
+msgstr "ni serĉas la lastan eldonon de GNU ~a..."
+
+#: gnu/packages.scm:354
+#, scheme-format
+msgid "~a: note: using ~a but ~a is available upstream~%"
+msgstr "~a: rimarko: ni uzas ~a sed ~a disponeblas unuanivele~%"
+
+#: gnu/packages.scm:376 guix/scripts/package.scm:305
#, scheme-format
msgid "ambiguous package specification `~a'~%"
msgstr "plursenca pak-specifigo '~a'~%"
-#: guix/scripts/build.scm:55 guix/scripts/package.scm:351
+#: gnu/packages.scm:377 guix/scripts/package.scm:307
#, scheme-format
msgid "choosing ~a from ~a~%"
msgstr "ni elektas ~a el ~a~%"
-#: guix/scripts/build.scm:61
+#: gnu/packages.scm:383
#, scheme-format
msgid "~A: package not found for version ~a~%"
msgstr "~A: pako ne trovita por versio ~a~%"
-#: guix/scripts/build.scm:63
+#: gnu/packages.scm:385
#, scheme-format
msgid "~A: unknown package~%"
msgstr "~A: nekonata pako~%"
-#: guix/scripts/build.scm:86
+#: guix/scripts/build.scm:65
#, scheme-format
msgid "failed to create GC root `~a': ~a~%"
msgstr "fiasko dum kreo de radiko GC '~a': ~a~%"
-#: guix/scripts/build.scm:123
+#: guix/scripts/build.scm:102
+msgid ""
+"\n"
+" -L, --load-path=DIR prepend DIR to the package module search path"
+msgstr ""
+"\n"
+" -L, --load-path=UJO antaŭmedi UJOn al la modula serĉvojo de la pako"
+
+#: guix/scripts/build.scm:104
msgid ""
"\n"
" -K, --keep-failed keep build tree of failed builds"
@@ -55,7 +74,7 @@ msgstr ""
"\n"
" -K, --keep-failed teni konstru-arbon el fiaskintaj konstruoj"
-#: guix/scripts/build.scm:125
+#: guix/scripts/build.scm:106
msgid ""
"\n"
" -n, --dry-run do not build the derivations"
@@ -63,7 +82,7 @@ msgstr ""
"\n"
" -n, --dry-run ne konstrui derivaĵojn"
-#: guix/scripts/build.scm:127
+#: guix/scripts/build.scm:108
msgid ""
"\n"
" --fallback fall back to building when the substituter fails"
@@ -71,7 +90,7 @@ msgstr ""
"\n"
" --fallback retropaŝi al konstruado kiam la anstataŭiganto fiaskas"
-#: guix/scripts/build.scm:129
+#: guix/scripts/build.scm:110
msgid ""
"\n"
" --no-substitutes build instead of resorting to pre-built substitutes"
@@ -79,7 +98,7 @@ msgstr ""
"\n"
" --no-substitutes konstrui anstataŭ provi jam-konstruitajn anstataŭigantojn"
-#: guix/scripts/build.scm:131
+#: guix/scripts/build.scm:112
msgid ""
"\n"
" --no-build-hook do not attempt to offload builds via the build hook"
@@ -87,7 +106,7 @@ msgstr ""
"\n"
" --no-build-hook ne provi disŝarĝi konstruojn per la konstru-hoko"
-#: guix/scripts/build.scm:133
+#: guix/scripts/build.scm:114
msgid ""
"\n"
" --max-silent-time=SECONDS\n"
@@ -97,7 +116,7 @@ msgstr ""
" --max-silent-time=SEKUNDOJ\n"
" marki la konstruon kiel fiaskintan post SEKUNDOJ da silento"
-#: guix/scripts/build.scm:136
+#: guix/scripts/build.scm:117
msgid ""
"\n"
" --timeout=SECONDS mark the build as failed after SECONDS of activity"
@@ -105,7 +124,7 @@ msgstr ""
"\n"
" --timeout=SEKUNDOJ marki la konstruon kiel fiaskintan post SEKUNDOJ da aktivado"
-#: guix/scripts/build.scm:138
+#: guix/scripts/build.scm:119
msgid ""
"\n"
" --verbosity=LEVEL use the given verbosity LEVEL"
@@ -113,7 +132,7 @@ msgstr ""
"\n"
" --verbosity=NIVELO uzi la indikitan detaligan NIVELOn"
-#: guix/scripts/build.scm:140
+#: guix/scripts/build.scm:121
msgid ""
"\n"
" -c, --cores=N allow the use of up to N CPU cores for the build"
@@ -121,12 +140,12 @@ msgstr ""
"\n"
" -c, --cores=N permesigi uzon de ĝis N CPU-nukleojn por la konstruo"
-#: guix/scripts/build.scm:206
+#: guix/scripts/build.scm:195
#, scheme-format
msgid "~a: not a number~%"
msgstr "~a: ne estas numero~%"
-#: guix/scripts/build.scm:223
+#: guix/scripts/build.scm:213
msgid ""
"Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n"
"Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"
@@ -134,7 +153,7 @@ msgstr ""
"Uzado: guix build [MODIFILO]... PAKO-AŬ-DERIVAĴO...\n"
"Konstrui la indikitan PAKO-AŬ-DERIVAĴOn kaj montri iliajn eligajn vojojn.\n"
-#: guix/scripts/build.scm:225
+#: guix/scripts/build.scm:215
msgid ""
"\n"
" -e, --expression=EXPR build the package or derivation EXPR evaluates to"
@@ -142,7 +161,7 @@ msgstr ""
"\n"
" -e, --expression=ESPR konstrui la pakon aŭ derivaĵon kiu rezultas de ESPR"
-#: guix/scripts/build.scm:227
+#: guix/scripts/build.scm:217
msgid ""
"\n"
" -S, --source build the packages' source derivations"
@@ -150,7 +169,7 @@ msgstr ""
"\n"
" -S, --source konstrui la font-derivaĵojn de la pakoj"
-#: guix/scripts/build.scm:229
+#: guix/scripts/build.scm:219
msgid ""
"\n"
" -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\""
@@ -158,7 +177,7 @@ msgstr ""
"\n"
" -s, --system=SISTEMO provi konstrui por SISTEMO--ekz., \"i686-linux\""
-#: guix/scripts/build.scm:231
+#: guix/scripts/build.scm:221
msgid ""
"\n"
" --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
@@ -166,7 +185,7 @@ msgstr ""
"\n"
" --target=TRIOPO cruc-konstrui por TRIOPO--ekz., \"armel-linux-gnu\""
-#: guix/scripts/build.scm:233
+#: guix/scripts/build.scm:223
msgid ""
"\n"
" --with-source=SOURCE\n"
@@ -176,7 +195,15 @@ msgstr ""
" --with-source=FONTO\n"
" uzi FONTOn dum konstruo de la koresponda pako"
-#: guix/scripts/build.scm:236
+#: guix/scripts/build.scm:226
+msgid ""
+"\n"
+" --no-grafts do not graft packages"
+msgstr ""
+"\n"
+" --no-grafts ne kunmetu pakojn"
+
+#: guix/scripts/build.scm:228
msgid ""
"\n"
" -d, --derivations return the derivation paths of the given packages"
@@ -184,7 +211,7 @@ msgstr ""
"\n"
" -d, --derivations liveri la derivaĵajn vojojn de la indikitaj pakoj"
-#: guix/scripts/build.scm:238
+#: guix/scripts/build.scm:230
msgid ""
"\n"
" -r, --root=FILE make FILE a symlink to the result, and register it\n"
@@ -194,7 +221,7 @@ msgstr ""
" -r, --root=DOSIERO igi DOSIEROn simbola ligo al la rezulto, kaj registri\n"
" ĝin kiel radikon de rubaĵ-kolektanto"
-#: guix/scripts/build.scm:241
+#: guix/scripts/build.scm:233
msgid ""
"\n"
" --log-file return the log file names for the given derivations"
@@ -202,10 +229,11 @@ msgstr ""
"\n"
" --log-file liveri la protokol-dosierajn nomojn por la indikitaj derivaĵoj"
-#: guix/scripts/build.scm:246 guix/scripts/download.scm:53
-#: guix/scripts/package.scm:525 guix/scripts/gc.scm:58
-#: guix/scripts/hash.scm:55 guix/scripts/pull.scm:82
-#: guix/scripts/substitute-binary.scm:564 guix/scripts/system.scm:362
+#: guix/scripts/build.scm:238 guix/scripts/download.scm:53
+#: guix/scripts/package.scm:451 guix/scripts/gc.scm:58
+#: guix/scripts/hash.scm:55 guix/scripts/pull.scm:81
+#: guix/scripts/substitute-binary.scm:560 guix/scripts/system.scm:371
+#: guix/scripts/lint.scm:262
msgid ""
"\n"
" -h, --help display this help and exit"
@@ -213,10 +241,11 @@ msgstr ""
"\n"
" -h, --help montri ĉi tiun helpon kaj eliri"
-#: guix/scripts/build.scm:248 guix/scripts/download.scm:55
-#: guix/scripts/package.scm:527 guix/scripts/gc.scm:60
-#: guix/scripts/hash.scm:57 guix/scripts/pull.scm:84
-#: guix/scripts/substitute-binary.scm:566 guix/scripts/system.scm:364
+#: guix/scripts/build.scm:240 guix/scripts/download.scm:55
+#: guix/scripts/package.scm:453 guix/scripts/gc.scm:60
+#: guix/scripts/hash.scm:57 guix/scripts/pull.scm:83
+#: guix/scripts/substitute-binary.scm:562 guix/scripts/system.scm:373
+#: guix/scripts/lint.scm:266
msgid ""
"\n"
" -V, --version display version information and exit"
@@ -224,19 +253,20 @@ msgstr ""
"\n"
" -V, --version montri informon pri versio kaj eliri"
-#: guix/scripts/build.scm:368
+#: guix/scripts/build.scm:366
#, scheme-format
msgid "sources do not match any package:~{ ~a~}~%"
msgstr "fontoj ne kongruas al iu ajn pako:~{ ~a~}~%"
-#: guix/scripts/build.scm:397 guix/scripts/download.scm:96
-#: guix/scripts/package.scm:763 guix/scripts/gc.scm:122
-#: guix/scripts/pull.scm:115 guix/scripts/system.scm:414
+#: guix/scripts/build.scm:395 guix/scripts/download.scm:96
+#: guix/scripts/package.scm:673 guix/scripts/gc.scm:122
+#: guix/scripts/pull.scm:213 guix/scripts/system.scm:426
+#: guix/scripts/lint.scm:313
#, scheme-format
msgid "~A: unrecognized option~%"
msgstr "~A: nerekonata modifilo~%"
-#: guix/scripts/build.scm:425
+#: guix/scripts/build.scm:423
#, scheme-format
msgid "no build log for '~a'~%"
msgstr "neniu konstruita protokolo por '~a'~%"
@@ -280,73 +310,42 @@ msgstr "~a: analizo de URI fiaskis~%"
msgid "~a: download failed~%"
msgstr "~a: elŝuto fiaskis~%"
-#: guix/scripts/package.scm:88
+#: guix/scripts/package.scm:97
#, scheme-format
msgid "failed to build the empty profile~%"
msgstr "fiasko dum konstruo de malplena profilo~%"
-#: guix/scripts/package.scm:97
+#: guix/scripts/package.scm:113
#, scheme-format
msgid "switching from generation ~a to ~a~%"
msgstr "alterno el generacio ~a al ~a~%"
-#: guix/scripts/package.scm:108 guix/scripts/package.scm:873
-#: guix/scripts/package.scm:985
-#, scheme-format
-msgid "profile '~a' does not exist~%"
-msgstr "profilo '~a' ne ekzistas~%"
-
-#: guix/scripts/package.scm:112
+#: guix/scripts/package.scm:132
#, scheme-format
msgid "nothing to do: already at the empty profile~%"
msgstr "nenio por fari: jam estas ĉe la malplena profilo~%"
-#: guix/scripts/package.scm:197
-#, scheme-format
-msgid "The following package would be removed:~%~{~a~%~}~%"
-msgstr "La jena pako devos esti forigata:~%~{~a~%~}~%"
-
-#: guix/scripts/package.scm:202
-#, scheme-format
-msgid "The following package will be removed:~%~{~a~%~}~%"
-msgstr "La jena pako estos forigata:~%~{~a~%~}~%"
-
-#: guix/scripts/package.scm:214
-#, scheme-format
-msgid "The following package would be installed:~%~{~a~%~}~%"
-msgstr "La jena pako estus instalata:~% ~{~a~%~}~%"
-
-#: guix/scripts/package.scm:219
+#: guix/scripts/package.scm:144
#, scheme-format
-msgid "The following package will be installed:~%~{~a~%~}~%"
-msgstr "La jena pako estos instalata:~% ~{~a~%~}~%"
+msgid "deleting ~a~%"
+msgstr "ni forigas ~a~%"
-#: guix/scripts/package.scm:339
+#: guix/scripts/package.scm:295
#, scheme-format
msgid "package `~a' lacks output `~a'~%"
msgstr "pako '~a' malhavas eligon '~a'~%"
-#: guix/scripts/package.scm:356
+#: guix/scripts/package.scm:312
#, scheme-format
msgid "~a: package not found~%"
msgstr "~a: pako ne trovita~%"
-#: guix/scripts/package.scm:391
-#, scheme-format
-msgid "looking for the latest release of GNU ~a..."
-msgstr "ni serĉas la lastan eldonon de GNU ~a..."
-
-#: guix/scripts/package.scm:395
-#, scheme-format
-msgid "~a: note: using ~a but ~a is available upstream~%"
-msgstr "~a: rimarko: ni uzas ~a sed ~a disponeblas unuanivele~%"
-
-#: guix/scripts/package.scm:467
+#: guix/scripts/package.scm:390
#, scheme-format
msgid "The following environment variable definitions may be needed:~%"
msgstr "La jenaj medi-variablaj difinoj povos esti necesaj:~%"
-#: guix/scripts/package.scm:483
+#: guix/scripts/package.scm:406
msgid ""
"Usage: guix package [OPTION]... PACKAGES...\n"
"Install, remove, or upgrade PACKAGES in a single transaction.\n"
@@ -354,7 +353,7 @@ msgstr ""
"Uzmaniero: guix package [MODIFILO]... PAKOJ...\n"
"Instalas, forigas, aŭ ĝisdatigas PAKOJn en ununura ago.\n"
-#: guix/scripts/package.scm:485
+#: guix/scripts/package.scm:408
msgid ""
"\n"
" -i, --install=PACKAGE install PACKAGE"
@@ -362,7 +361,7 @@ msgstr ""
"\n"
" -i, --install=PAKO instali PAKOn"
-#: guix/scripts/package.scm:487
+#: guix/scripts/package.scm:410
msgid ""
"\n"
" -e, --install-from-expression=EXP\n"
@@ -372,7 +371,7 @@ msgstr ""
" -e, --install-from-expression=ESP\n"
" instali la pakon ESP rezultas al"
-#: guix/scripts/package.scm:490
+#: guix/scripts/package.scm:413
msgid ""
"\n"
" -r, --remove=PACKAGE remove PACKAGE"
@@ -380,7 +379,7 @@ msgstr ""
"\n"
" -r, --remove=PAKO forigi PAKOn"
-#: guix/scripts/package.scm:492
+#: guix/scripts/package.scm:415
msgid ""
"\n"
" -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
@@ -388,7 +387,7 @@ msgstr ""
"\n"
" -u, --upgrade[=REGESP] ĝisdatigi ĉiujn instalitajn pakojn kongruantajn al REGESP"
-#: guix/scripts/package.scm:494
+#: guix/scripts/package.scm:417
msgid ""
"\n"
" --roll-back roll back to the previous generation"
@@ -396,7 +395,7 @@ msgstr ""
"\n"
" --roll-back retropaŝi al la antaŭa generacio"
-#: guix/scripts/package.scm:496
+#: guix/scripts/package.scm:419
msgid ""
"\n"
" --search-paths display needed environment variable definitions"
@@ -404,7 +403,7 @@ msgstr ""
"\n"
" --search-paths montri necesajn medi-variablajn difinojn"
-#: guix/scripts/package.scm:498
+#: guix/scripts/package.scm:421
msgid ""
"\n"
" -l, --list-generations[=PATTERN]\n"
@@ -414,7 +413,7 @@ msgstr ""
" -I, --list-generations[=ŜABLONO]\n"
" listigi generaciojn kongruantajn al ŜABLONO"
-#: guix/scripts/package.scm:501
+#: guix/scripts/package.scm:424
msgid ""
"\n"
" -d, --delete-generations[=PATTERN]\n"
@@ -424,7 +423,17 @@ msgstr ""
" -d, --delete-generations[=ŜABLONO]\n"
" forigi generaciojn kongruantajn al ŜABLONO"
-#: guix/scripts/package.scm:504
+#: guix/scripts/package.scm:427
+msgid ""
+"\n"
+" -S, --switch-generation=PATTERN\n"
+" switch to a generation matching PATTERN"
+msgstr ""
+"\n"
+" -S, --switch-generations=ŜABLONO\n"
+" ŝalti al generacio kongruanta al ŜABLONO"
+
+#: guix/scripts/package.scm:430
msgid ""
"\n"
" -p, --profile=PROFILE use PROFILE instead of the user's default profile"
@@ -432,7 +441,7 @@ msgstr ""
"\n"
" -p, --profile=PROFILO uzi PROFILOn anstataŭ la apriora profilo de la uzanto"
-#: guix/scripts/package.scm:507
+#: guix/scripts/package.scm:433
msgid ""
"\n"
" --bootstrap use the bootstrap Guile to build the profile"
@@ -440,7 +449,7 @@ msgstr ""
"\n"
" --bootstrap uzi la praŝargilon Guile por konstrui la profilon"
-#: guix/scripts/package.scm:509 guix/scripts/pull.scm:75
+#: guix/scripts/package.scm:435 guix/scripts/pull.scm:74
msgid ""
"\n"
" --verbose produce verbose output"
@@ -448,7 +457,7 @@ msgstr ""
"\n"
" --verbose produkti detalplenan eligon"
-#: guix/scripts/package.scm:512
+#: guix/scripts/package.scm:438
msgid ""
"\n"
" -s, --search=REGEXP search in synopsis and description using REGEXP"
@@ -456,7 +465,7 @@ msgstr ""
"\n"
" -s, --search=REGESP serĉi en resumo kaj priskribo uzante REGESP"
-#: guix/scripts/package.scm:514
+#: guix/scripts/package.scm:440
msgid ""
"\n"
" -I, --list-installed[=REGEXP]\n"
@@ -466,7 +475,7 @@ msgstr ""
" -I, --list-installed[=REGESP]\n"
" listigi instalitajn pakojn kongruantajn al REGESP"
-#: guix/scripts/package.scm:517
+#: guix/scripts/package.scm:443
msgid ""
"\n"
" -A, --list-available[=REGEXP]\n"
@@ -476,71 +485,72 @@ msgstr ""
" -A, --list-available[=REGESP]\n"
" listigi disponeblajn pakojn kongruantajn al REGESP"
-#: guix/scripts/package.scm:520
-#, fuzzy
+#: guix/scripts/package.scm:446
msgid ""
"\n"
" --show=PACKAGE show details about PACKAGE"
msgstr ""
"\n"
-" -i, --install=PAKO instali PAKOn"
+" -show=PAKO montri detalojn pri PAKO"
-#: guix/scripts/package.scm:767
+#: guix/scripts/package.scm:677
#, scheme-format
msgid "~A: extraneous argument~%"
msgstr "~A: fremda argumento~%"
-#: guix/scripts/package.scm:782
+#: guix/scripts/package.scm:687
#, scheme-format
msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%"
msgstr "Provu \"info '(guix) Invoking guix package'\" por pli da informo.'%"
-#: guix/scripts/package.scm:804
+#: guix/scripts/package.scm:709
#, scheme-format
msgid "error: while creating directory `~a': ~a~%"
msgstr "eraro: dum kreo de dosierujo '~a': ~a~%"
-#: guix/scripts/package.scm:808
+#: guix/scripts/package.scm:713
#, scheme-format
msgid "Please create the `~a' directory, with you as the owner.~%"
msgstr "Bonvolu krei la dosierujon '~a', kun vi kiel posedanto.~%"
-#: guix/scripts/package.scm:815
+#: guix/scripts/package.scm:720
#, scheme-format
msgid "error: directory `~a' is not owned by you~%"
msgstr "eraro: dosierujo '~a' ne estas posedata de vi~%"
-#: guix/scripts/package.scm:818
+#: guix/scripts/package.scm:723
#, scheme-format
msgid "Please change the owner of `~a' to user ~s.~%"
msgstr "Bonvole ŝanĝu la posedanton de '~a' al la uzanto ~s.~%"
-#: guix/scripts/package.scm:843
+#: guix/scripts/package.scm:756
#, scheme-format
-msgid "deleting ~a~%"
-msgstr "ni forigas ~a~%"
+msgid "cannot switch to generation '~a'~%"
+msgstr "ne eblas ŝalti al generacio '~a'~%"
-#: guix/scripts/package.scm:896 guix/scripts/package.scm:1001
+#: guix/scripts/package.scm:788 guix/scripts/package.scm:889
#, scheme-format
msgid "invalid syntax: ~a~%"
msgstr "malvalida sintakso: ~a~%"
-#: guix/scripts/package.scm:925
+#: guix/scripts/package.scm:825
#, scheme-format
msgid "nothing to be done~%"
msgstr "nenio por fari~%"
-#: guix/scripts/package.scm:948
+#: guix/scripts/package.scm:840
#, scheme-format
msgid "~a package in profile~%"
-msgstr "pako ~a en profilo~%"
+msgid_plural "~a packages in profile~%"
+msgstr[0] "pako ~a en profilo~%"
+msgstr[1] "pakoj ~a en profilo~%"
-#: guix/scripts/package.scm:963
+#: guix/scripts/package.scm:855
#, scheme-format
msgid "Generation ~a\t~a"
msgstr "Generacio ~a\t~a"
-#: guix/scripts/package.scm:970
+#: guix/scripts/package.scm:862
#, scheme-format
msgid "~a\t(current)~%"
msgstr "~a\t(nuna)~%"
@@ -643,7 +653,7 @@ msgstr ""
msgid "unrecognized option: ~a~%"
msgstr "nerekonata modifilo: ~a~%"
-#: guix/scripts/hash.scm:134 guix/ui.scm:233
+#: guix/scripts/hash.scm:134 guix/ui.scm:252
#, scheme-format
msgid "~a~%"
msgstr "~a~%"
@@ -653,7 +663,7 @@ msgstr "~a~%"
msgid "wrong number of arguments~%"
msgstr "malĝusta nombro da argumentoj~%"
-#: guix/scripts/pull.scm:73
+#: guix/scripts/pull.scm:72
msgid ""
"Usage: guix pull [OPTION]...\n"
"Download and deploy the latest version of Guix.\n"
@@ -661,7 +671,7 @@ msgstr ""
"Uzmaniero: guix pull [MODIFILO]...\n"
"Elŝuti kaj liveri la lastan version de Guix.\n"
-#: guix/scripts/pull.scm:77
+#: guix/scripts/pull.scm:76
msgid ""
"\n"
" --url=URL download the Guix tarball from URL"
@@ -669,7 +679,7 @@ msgstr ""
"\n"
" --url=URL elŝuti la tar-dosiero de Guix el URL"
-#: guix/scripts/pull.scm:79
+#: guix/scripts/pull.scm:78
msgid ""
"\n"
" --bootstrap use the bootstrap Guile to build the new Guix"
@@ -677,29 +687,42 @@ msgstr ""
"\n"
" --bootstrap uzi la 'bootstrap' Guile por konstrui novan Guix"
-#: guix/scripts/pull.scm:117
+#: guix/scripts/pull.scm:132
+msgid "tarball did not produce a single source directory"
+msgstr "tarball ne produktis ununuran fontan dosierujon"
+
+#: guix/scripts/pull.scm:150
#, scheme-format
-msgid "~A: unexpected argument~%"
-msgstr "~A: neatendita argumento~%"
+msgid "unpacking '~a'...~%"
+msgstr "malpakado de '~a'...~%"
-#: guix/scripts/pull.scm:126
-msgid "failed to download up-to-date source, exiting\n"
-msgstr "fiasko dum elŝuto de aktuala fonto, ni ĉesas\n"
+#: guix/scripts/pull.scm:159
+msgid "failed to unpack source code"
+msgstr "ni malsukcesis malpaki font-kodon"
-#: guix/scripts/pull.scm:145
+#: guix/scripts/pull.scm:200
#, scheme-format
msgid "updated ~a successfully deployed under `~a'~%"
msgstr "ni ĝisdatigis ~a sukcese, liverita sur '~a'~%"
-#: guix/scripts/pull.scm:148
+#: guix/scripts/pull.scm:203
#, scheme-format
msgid "failed to update Guix, check the build log~%"
msgstr "fiasko dum ĝisdatigo de Guix, kontrolu la konstru-protokolon~%"
-#: guix/scripts/pull.scm:150
+#: guix/scripts/pull.scm:205
msgid "Guix already up to date\n"
msgstr "Guix jam estas ĝisdata\n"
+#: guix/scripts/pull.scm:215
+#, scheme-format
+msgid "~A: unexpected argument~%"
+msgstr "~A: neatendita argumento~%"
+
+#: guix/scripts/pull.scm:224
+msgid "failed to download up-to-date source, exiting\n"
+msgstr "fiasko dum elŝuto de aktuala fonto, ni ĉesas\n"
+
#: guix/scripts/substitute-binary.scm:80
#, scheme-format
msgid "authentication and authorization of substitutes disabled!~%"
@@ -775,12 +798,12 @@ msgstr "Ni elŝutas, bonvolu atendi...~%"
msgid "(Please consider upgrading Guile to get proper progress report.)~%"
msgstr "(Bonvolu konsideri pri ĝisdatigo de Guile por havigi ĝustan progres-raporton.)~%"
-#: guix/scripts/substitute-binary.scm:545
+#: guix/scripts/substitute-binary.scm:541
#, scheme-format
msgid "host name lookup error: ~a~%"
msgstr "eraro en serĉado de gastigant-nomo: ~a~%"
-#: guix/scripts/substitute-binary.scm:554
+#: guix/scripts/substitute-binary.scm:550
msgid ""
"Usage: guix substitute-binary [OPTION]...\n"
"Internal tool to substitute a pre-built binary to a local build.\n"
@@ -788,7 +811,7 @@ msgstr ""
"Uzmaniero: guix substitute-binary [MODIFILO]...\n"
"Interna ilo por anstataŭigi antaŭ-konstruitan duumaĵon al loka kompilaĵo.\n"
-#: guix/scripts/substitute-binary.scm:556
+#: guix/scripts/substitute-binary.scm:552
msgid ""
"\n"
" --query report on the availability of substitutes for the\n"
@@ -798,7 +821,7 @@ msgstr ""
" --query raporti pri la disponebleco de anstataŭigoj por la\n"
" konservaj dosier-nomoj indikitaj per la ĉefenigujo"
-#: guix/scripts/substitute-binary.scm:559
+#: guix/scripts/substitute-binary.scm:555
msgid ""
"\n"
" --substitute STORE-FILE DESTINATION\n"
@@ -810,16 +833,21 @@ msgstr ""
" elŝuti KONSERV-DOSIEROn kaj konservi ĝin kiel Nar en la\n"
" dosiero CELO"
-#: guix/scripts/substitute-binary.scm:604
+#: guix/scripts/substitute-binary.scm:600
msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n"
msgstr "ACL por importo de arĥivoj ŝajnas esti ne-ekigita, anstataŭoj eble ne disponeblos\n"
-#: guix/scripts/substitute-binary.scm:625
+#: guix/scripts/substitute-binary.scm:634
+#, scheme-format
+msgid "these substitute URLs will not be used:~{ ~a~}~%"
+msgstr "tiuj ĉi anstataŭigaj URL-oj ne estos uzataj:~{ ~a~}~%"
+
+#: guix/scripts/substitute-binary.scm:660
#, scheme-format
msgid "failed to look up host '~a' (~a), substituter disabled~%"
msgstr "ni malsukcesis serĉi gastiganton '~a' (~a), anstataŭiganto estas malebligata~%"
-#: guix/scripts/substitute-binary.scm:732
+#: guix/scripts/substitute-binary.scm:767
#, scheme-format
msgid "~a: unrecognized options~%"
msgstr "~a: nerekonata modifiloj~%"
@@ -863,7 +891,7 @@ msgstr "malĝustaj argumentoj"
msgid "failed to open operating system file '~a': ~a~%"
msgstr "fiasko dum malfermo de la operaci-sistema dosiero '~a': ~a~%"
-#: guix/scripts/system.scm:78 guix/ui.scm:238
+#: guix/scripts/system.scm:78 guix/ui.scm:258
#, scheme-format
msgid "~a: ~a~%"
msgstr "~a: ~a~%"
@@ -883,7 +911,7 @@ msgstr "fiasko dum registro de '~a' sub '~a'~%"
msgid "initializing the current root file system~%"
msgstr "ekigado de la nuna radika dosiersistemo~%"
-#: guix/scripts/system.scm:162 guix/scripts/system.scm:318
+#: guix/scripts/system.scm:162 guix/scripts/system.scm:325
#, scheme-format
msgid "failed to install GRUB on device '~a'~%"
msgstr "fiasko dum instalo de GRUB en la aparato '~a'~%"
@@ -893,17 +921,17 @@ msgstr "fiasko dum instalo de GRUB en la aparato '~a'~%"
msgid "activating system...~%"
msgstr "ni aktivas la sistemon...~%"
-#: guix/scripts/system.scm:236
+#: guix/scripts/system.scm:239
#, scheme-format
msgid "unrecognized boot parameters for '~a'~%"
msgstr "nerekonataj ekŝargaj parametroj por '~a'~%"
-#: guix/scripts/system.scm:323
+#: guix/scripts/system.scm:330
#, scheme-format
msgid "initializing operating system under '~a'...~%"
msgstr "ni ekigas la operaci-sistemon sub '~a'...~%"
-#: guix/scripts/system.scm:339
+#: guix/scripts/system.scm:346
msgid ""
"Usage: guix system [OPTION] ACTION FILE\n"
"Build the operating system declared in FILE according to ACTION.\n"
@@ -911,35 +939,35 @@ msgstr ""
"Uzmaniero: guix system [MODIFILO] AGO DOSIERO\n"
"Konstrui la operaci-sistemon deklarita en DOSIERO akorde al AGO.\n"
-#: guix/scripts/system.scm:342
+#: guix/scripts/system.scm:349
msgid "The valid values for ACTION are:\n"
msgstr "La validaj valoroj por AGO estas:\n"
-#: guix/scripts/system.scm:343
+#: guix/scripts/system.scm:350
msgid " - 'reconfigure', switch to a new operating system configuration\n"
msgstr " - 'reconfigure', alterni al nova operaci-sistema agordaro\n"
-#: guix/scripts/system.scm:345
+#: guix/scripts/system.scm:352
msgid " - 'build', build the operating system without installing anything\n"
msgstr " - 'build', konstrui la operaci-sistemon sen instali ion ajn\n"
-#: guix/scripts/system.scm:347
+#: guix/scripts/system.scm:354
msgid " - 'vm', build a virtual machine image that shares the host's store\n"
msgstr " - 'vm', konstrui virtual-maŝinan bildon kiu kundividas la gastigantan memoron\n"
-#: guix/scripts/system.scm:349
+#: guix/scripts/system.scm:356
msgid " - 'vm-image', build a freestanding virtual machine image\n"
msgstr " - 'vm-image', konstrui memstaran virtual-maŝinan bildon\n"
-#: guix/scripts/system.scm:351
+#: guix/scripts/system.scm:358
msgid " - 'disk-image', build a disk image, suitable for a USB stick\n"
msgstr " - 'disk-image', konstrui disk-bildon, taŭga por USB-memoro\n"
-#: guix/scripts/system.scm:353
+#: guix/scripts/system.scm:360
msgid " - 'init', initialize a root file system to run GNU.\n"
msgstr " - 'init', ekigi radikan dosiersistemon por lanĉi GNU-on.\n"
-#: guix/scripts/system.scm:357
+#: guix/scripts/system.scm:364
msgid ""
"\n"
" --image-size=SIZE for 'vm-image', produce an image of SIZE"
@@ -947,7 +975,7 @@ msgstr ""
"\n"
" --image-size=GRANDO por 'vm-image', produkti bildon je GRANDO"
-#: guix/scripts/system.scm:359
+#: guix/scripts/system.scm:366
msgid ""
"\n"
" --no-grub for 'init', do not install GRUB"
@@ -955,21 +983,86 @@ msgstr ""
"\n"
" --no-grub por 'init', ne instali GRUB"
-#: guix/scripts/system.scm:422
+#: guix/scripts/system.scm:368
+msgid ""
+"\n"
+" --full-boot for 'vm', make a full boot sequence"
+msgstr ""
+"\n"
+" --full-boot por 'vm', fari kompletan ekŝargan sekvon"
+
+#: guix/scripts/system.scm:434
#, scheme-format
msgid "~a: unknown action~%"
msgstr "~a: nekonata pako~%"
-#: guix/scripts/system.scm:439
+#: guix/scripts/system.scm:451
#, scheme-format
msgid "wrong number of arguments for action '~a'~%"
msgstr "malĝusta nombro da argumentoj por la ago '~a'~%"
-#: guix/scripts/system.scm:459
+#: guix/scripts/system.scm:471
#, scheme-format
msgid "no configuration file specified~%"
msgstr "neniu agorda dosiero estis indikata~%"
+#: guix/scripts/lint.scm:51
+#, scheme-format
+msgid "~a: ~a: ~a~%"
+msgstr "~a: ~a: ~a~%"
+
+#: guix/scripts/lint.scm:72
+#, scheme-format
+msgid "Available checkers:~%"
+msgstr "Disponeblaj kontroliloj:~%"
+
+#: guix/scripts/lint.scm:226
+msgid "Validate package descriptions"
+msgstr "Validigi pak-priskribojn"
+
+#: guix/scripts/lint.scm:230
+msgid "Identify inputs that should be native inputs"
+msgstr "Identigi enigojn kiuj devus esti originalaj enigoj"
+
+#: guix/scripts/lint.scm:234
+msgid "Validate filenames of patches"
+msgstr "Validigi dosiernomojn de flikaĵoj"
+
+#: guix/scripts/lint.scm:238
+msgid "Validate package synopsis"
+msgstr "Validigi pak-resumojn"
+
+#: guix/scripts/lint.scm:257
+msgid ""
+"Usage: guix lint [OPTION]... [PACKAGE]...\n"
+"Run a set of checkers on the specified package; if none is specified, run the checkers on all packages.\n"
+msgstr ""
+"Uzmaniero: guix lint [MODIFILO]... [PAKO]...\n"
+"Lanĉi aron da kontroliloj por la indikita pako; se neniu estas indikita, lanĉi la konstrolilojn por ĉiuj pakoj.\n"
+
+#: guix/scripts/lint.scm:259
+msgid ""
+"\n"
+" -c, --checkers=CHECKER1,CHECKER2...\n"
+" only run the specificed checkers"
+msgstr ""
+"\n"
+" -c, --checkers=KONTROL1,KONTROL2...\n"
+" nur lanĉi la indikitajn kontrolilojn"
+
+#: guix/scripts/lint.scm:264
+msgid ""
+"\n"
+" -l, --list-checkers display the list of available lint checkers"
+msgstr ""
+"\n"
+" -l, --list-checkers montri la liston de disponeblaj kontroliloj"
+
+#: guix/scripts/lint.scm:283
+#, scheme-format
+msgid "~a: invalid checker"
+msgstr "~a: malvalida kontrolilo"
+
#: guix/gnu-maintenance.scm:373
#, scheme-format
msgid "signature verification failed for `~a'~%"
@@ -990,12 +1083,12 @@ msgstr "~a: ne eblis trovi fontan dosieron"
msgid "~a: ~a: no `version' field in source; skipping~%"
msgstr "~a: ~a: neniu kampo 'version' en la fonto; ni saltas~%"
-#: guix/ui.scm:131
+#: guix/ui.scm:135
#, scheme-format
msgid "failed to install locale: ~a~%"
msgstr "fiasko dum instalo de lokaĵaro: ~a~%"
-#: guix/ui.scm:150
+#: guix/ui.scm:154
msgid ""
"Copyright (C) 2014 the Guix authors\n"
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
@@ -1007,7 +1100,7 @@ msgstr ""
"Tio ĉi estas libera programaro: vi estas libera por modifi kaj redisdoni ĝin.\n"
"Estas NENIU GARANTIO, plejamplekse permesate de leĝoj.\n"
-#: guix/ui.scm:158
+#: guix/ui.scm:162
#, scheme-format
msgid ""
"\n"
@@ -1016,7 +1109,7 @@ msgstr ""
"\n"
"Raportu program-misojn al: ~a."
-#: guix/ui.scm:160
+#: guix/ui.scm:164
#, scheme-format
msgid ""
"\n"
@@ -1025,7 +1118,7 @@ msgstr ""
"\n"
"hejm-paĝo de ~a: <~a>"
-#: guix/ui.scm:162
+#: guix/ui.scm:166
msgid ""
"\n"
"General help using GNU software: <http://www.gnu.org/gethelp/>"
@@ -1033,100 +1126,160 @@ msgstr ""
"\n"
"Ĝenerala helpo por uzi programaron de GNU: <http://www.gnu.org/gethelp/>"
-#: guix/ui.scm:169
+#: guix/ui.scm:173
#, scheme-format
msgid "~a: invalid number~%"
msgstr "~a: malvalida numero~%"
-#: guix/ui.scm:186
+#: guix/ui.scm:190
#, scheme-format
msgid "invalid number: ~a~%"
msgstr "malvalida numero: ~a~%"
-#: guix/ui.scm:201
+#: guix/ui.scm:213
#, scheme-format
msgid "unknown unit: ~a~%"
msgstr "nekonata unuo: ~a~%"
-#: guix/ui.scm:212
+#: guix/ui.scm:224
#, scheme-format
msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%"
msgstr "~a:~a:~a: pako '~a' havas malvalidan enigon: ~s~%"
-#: guix/ui.scm:219
+#: guix/ui.scm:231
#, scheme-format
msgid "~a: ~a: build system `~a' does not support cross builds~%"
msgstr "~a: ~a: konstrui sistemon '~a' ne subtenas crucajn konstruojn~%"
-#: guix/ui.scm:224
+#: guix/ui.scm:236
+#, scheme-format
+msgid "profile '~a' does not exist~%"
+msgstr "profilo '~a' ne ekzistas~%"
+
+#: guix/ui.scm:239
+#, scheme-format
+msgid "generation ~a of profile '~a' does not exist~%"
+msgstr "generacio ~a de la profilo '~a' ne ekzistas~%"
+
+#: guix/ui.scm:243
#, scheme-format
msgid "failed to connect to `~a': ~a~%"
msgstr "fiasko dum konekto al '~a': ~a~%"
-#: guix/ui.scm:229
+#: guix/ui.scm:248
#, scheme-format
msgid "build failed: ~a~%"
msgstr "konstruo fiakis: ~a~%"
-#: guix/ui.scm:257
+#: guix/ui.scm:277
#, scheme-format
msgid "failed to read expression ~s: ~s~%"
msgstr "fiasko dum lego de esprimo ~s: ~s~%"
-#: guix/ui.scm:263
+#: guix/ui.scm:283
#, scheme-format
msgid "failed to evaluate expression `~a': ~s~%"
msgstr "fiasko dum analizo de esprimo '~a': ~a~%"
-#: guix/ui.scm:272
+#: guix/ui.scm:292
#, scheme-format
msgid "expression ~s does not evaluate to a package~%"
msgstr "la esprimo ~s ne rezultas pakon~%"
-#: guix/ui.scm:319
+#: guix/ui.scm:339
#, scheme-format
msgid "~:[The following derivation would be built:~%~{ ~a~%~}~;~]"
-msgstr "~:[La jena derivo povus esti konstruata:~%~{ ~a~%~}~;~]"
+msgid_plural "~:[The following derivations would be built:~%~{ ~a~%~}~;~]"
+msgstr[0] "~:[La jena derivo estus konstruata:~%~{ ~a~%~}~;~]"
+msgstr[1] "~:[La jenaj derivoj estus konstruataj:~%~{ ~a~%~}~;~]"
-#: guix/ui.scm:324
+#: guix/ui.scm:344
#, scheme-format
msgid "~:[The following file would be downloaded:~%~{ ~a~%~}~;~]"
-msgstr "~:[La jena derivo povus esti elŝutata:~%~{ ~a~%~}~;~]"
+msgid_plural "~:[The following files would be downloaded:~%~{ ~a~%~}~;~]"
+msgstr[0] "~:[La jena derivo estus elŝutata:~%~{ ~a~%~}~;~]"
+msgstr[1] "~:[La jenaj derivoj estus elŝutataj:~%~{ ~a~%~}~;~]"
-#: guix/ui.scm:330
+#: guix/ui.scm:350
#, scheme-format
msgid "~:[The following derivation will be built:~%~{ ~a~%~}~;~]"
-msgstr "~:[La jena derivo estos esti konstruata:~%~{ ~a~%~}~;~]"
+msgid_plural "~:[The following derivations will be built:~%~{ ~a~%~}~;~]"
+msgstr[0] "~:[La jena derivo estos konstruata:~%~{ ~a~%~}~;~]"
+msgstr[1] "~:[La jenaj derivoj estos konstruataj:~%~{ ~a~%~}~;~]"
-#: guix/ui.scm:335
+#: guix/ui.scm:355
#, scheme-format
msgid "~:[The following file will be downloaded:~%~{ ~a~%~}~;~]"
-msgstr "~:[La jena derivo estos esti elŝutata:~%~{ ~a~%~}~;~]"
+msgid_plural "~:[The following files will be downloaded:~%~{ ~a~%~}~;~]"
+msgstr[0] "~:[La jena derivo estos elŝutata:~%~{ ~a~%~}~;~]"
+msgstr[1] "~:[La jenaj derivoj estos elŝutataj:~%~{ ~a~%~}~;~]"
+
+#: guix/ui.scm:407
+#, scheme-format
+msgid "The following package would be removed:~%~{~a~%~}~%"
+msgid_plural "The following packages would be removed:~%~{~a~%~}~%"
+msgstr[0] "La jena pako estus forigata:~%~{~a~%~}~%"
+msgstr[1] "La jenaj pakoj estus forigataj:~%~{~a~%~}~%"
+
+#: guix/ui.scm:412
+#, scheme-format
+msgid "The following package will be removed:~%~{~a~%~}~%"
+msgid_plural "The following packages will be removed:~%~{~a~%~}~%"
+msgstr[0] "La jena pako estos forigata:~%~{~a~%~}~%"
+msgstr[1] "La jenaj pakoj estos forigataj:~%~{~a~%~}~%"
+
+#: guix/ui.scm:425
+#, scheme-format
+msgid "The following package would be upgraded:~%~{~a~%~}~%"
+msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%"
+msgstr[0] "La jena pako estus ĝisdatigata:~%~{~a~%~}~%"
+msgstr[1] "La jenaj pakoj estus ĝisdatigataj:~%~{~a~%~}~%"
+
+#: guix/ui.scm:430
+#, scheme-format
+msgid "The following package will be upgraded:~%~{~a~%~}~%"
+msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
+msgstr[0] "La jena pako estos ĝisdatigata:~%~{~a~%~}~%"
+msgstr[1] "La jenaj pakoj estos ĝisdatigataj:~%~{~a~%~}~%"
+
+#: guix/ui.scm:441
+#, scheme-format
+msgid "The following package would be installed:~%~{~a~%~}~%"
+msgid_plural "The following packages would be installed:~%~{~a~%~}~%"
+msgstr[0] "La jena pako estus instalata:~% ~{~a~%~}~%"
+msgstr[1] "La jenaj pakoj estus instalataj:~% ~{~a~%~}~%"
+
+#: guix/ui.scm:446
+#, scheme-format
+msgid "The following package will be installed:~%~{~a~%~}~%"
+msgid_plural "The following packages will be installed:~%~{~a~%~}~%"
+msgstr[0] "La jena pako estos instalata:~% ~{~a~%~}~%"
+msgstr[1] "La jenaj pakoj estos instalataj:~% ~{~a~%~}~%"
-#: guix/ui.scm:352
+#: guix/ui.scm:463
msgid "<unknown location>"
msgstr "<nekonata loko>"
-#: guix/ui.scm:380
+#: guix/ui.scm:489
#, scheme-format
msgid "failed to create configuration directory `~a': ~a~%"
msgstr "fiasko dum kreo de agorda dosierujo '~a': ~a~%"
-#: guix/ui.scm:475 guix/ui.scm:489
+#: guix/ui.scm:589 guix/ui.scm:603
msgid "unknown"
msgstr "nekonata"
-#: guix/ui.scm:598
+#: guix/ui.scm:712
#, scheme-format
msgid "invalid argument: ~a~%"
msgstr "malvalida argumento: ~a~%"
-#: guix/ui.scm:603
+#: guix/ui.scm:717
#, scheme-format
msgid "Try `guix --help' for more information.~%"
msgstr "Provu 'guix --help' por pli da informo.~%"
-#: guix/ui.scm:633
+#: guix/ui.scm:747
msgid ""
"Usage: guix COMMAND ARGS...\n"
"Run COMMAND with ARGS.\n"
@@ -1134,21 +1287,21 @@ msgstr ""
"Uzmaniero: guix KOMANDO ARGj...\n"
"Lanĉas KOMANDOn kun ARGj.\n"
-#: guix/ui.scm:636
+#: guix/ui.scm:750
msgid "COMMAND must be one of the sub-commands listed below:\n"
msgstr "KOMANDO devas esti unu el la sub-komandoj sube listataj:\n"
-#: guix/ui.scm:656
+#: guix/ui.scm:770
#, scheme-format
msgid "guix: ~a: command not found~%"
msgstr "guix: ~a: komando ne trovita~%"
-#: guix/ui.scm:674
+#: guix/ui.scm:788
#, scheme-format
msgid "guix: missing command name~%"
msgstr "guix: mankas komanda nomo~%"
-#: guix/ui.scm:682
+#: guix/ui.scm:796
#, scheme-format
msgid "guix: unrecognized option '~a'~%"
msgstr "guix: nerekonata modifilo: '~a'~%"
@@ -1172,84 +1325,75 @@ msgstr "ni sekvas la redirektigon al '~a'...~%"
msgid "download failed"
msgstr "elŝuto fiaskis"
-#: guix/nar.scm:134
-msgid "unexpected executable file marker"
-msgstr "neatendita rul-dosiera markilo"
-
-#: guix/nar.scm:141
-msgid "unsupported nar file type"
-msgstr "nesubtenata dosier-tipo nar"
-
-#: guix/nar.scm:209
-msgid "unsupported file type"
-msgstr "nesubtenata dosier-tipo"
-
-#: guix/nar.scm:219
-msgid "invalid nar signature"
-msgstr "malvalida subskribo nar"
-
-#: guix/nar.scm:230
-msgid "invalid nar end-of-file marker"
-msgstr "malvalida dosierfina markilo nar"
-
-#: guix/nar.scm:244
-msgid "invalid symlink tokens"
-msgstr "malvalidaj simbol-ligaj ĵetonoj"
-
-#: guix/nar.scm:263
-msgid "unexpected directory entry termination"
-msgstr "neatendita fino de dosieruja enigo"
-
-#: guix/nar.scm:272
-msgid "unexpected directory inter-entry marker"
-msgstr "neatendita dosieruja inter-eniga markilo"
-
-#: guix/nar.scm:277
-msgid "unsupported nar entry type"
-msgstr "nesubtenata enig-tipo nar"
-
-#: guix/nar.scm:376
+#: guix/nar.scm:155
msgid "signature is not a valid s-expression"
msgstr "subskribo ne estas valida s-esprimo"
-#: guix/nar.scm:385
+#: guix/nar.scm:164
msgid "invalid signature"
msgstr "nevalida subskribo"
-#: guix/nar.scm:389
+#: guix/nar.scm:168
msgid "invalid hash"
msgstr "nevalida haketo"
-#: guix/nar.scm:397
+#: guix/nar.scm:176
msgid "unauthorized public key"
msgstr "nerajtigita publika ŝlosilo"
-#: guix/nar.scm:402
+#: guix/nar.scm:181
msgid "corrupt signature data"
msgstr "difektita subskriba datumaro"
-#: guix/nar.scm:422
+#: guix/nar.scm:201
msgid "corrupt file set archive"
msgstr "difektita arĥivo de dosier-grupo"
-#: guix/nar.scm:432
+#: guix/nar.scm:211
#, scheme-format
msgid "importing file or directory '~a'...~%"
msgstr "ni importas dosieron aŭ dosierujon '~a'...~%"
-#: guix/nar.scm:441
+#: guix/nar.scm:220
#, scheme-format
msgid "found valid signature for '~a'~%"
msgstr "ni trovis validan subskribon por '~a'~%"
-#: guix/nar.scm:448
+#: guix/nar.scm:227
msgid "imported file lacks a signature"
msgstr "importita dosiero malhavas subskribon"
-#: guix/nar.scm:487
+#: guix/nar.scm:266
msgid "invalid inter-file archive mark"
msgstr "malvalida inter-dosiera arĥiva marko"
+#~ msgid "unexpected executable file marker"
+#~ msgstr "neatendita rul-dosiera markilo"
+
+#~ msgid "unsupported nar file type"
+#~ msgstr "nesubtenata dosier-tipo nar"
+
+#~ msgid "unsupported file type"
+#~ msgstr "nesubtenata dosier-tipo"
+
+#~ msgid "invalid nar signature"
+#~ msgstr "malvalida subskribo nar"
+
+#~ msgid "invalid nar end-of-file marker"
+#~ msgstr "malvalida dosierfina markilo nar"
+
+#~ msgid "invalid symlink tokens"
+#~ msgstr "malvalidaj simbol-ligaj ĵetonoj"
+
+#~ msgid "unexpected directory entry termination"
+#~ msgstr "neatendita fino de dosieruja enigo"
+
+#~ msgid "unexpected directory inter-entry marker"
+#~ msgstr "neatendita dosieruja inter-eniga markilo"
+
+#~ msgid "unsupported nar entry type"
+#~ msgstr "nesubtenata enig-tipo nar"
+
#~ msgid "Hello, GNU world: An example GNU package"
#~ msgstr "Saluton, mondo GNU: ekzemplo de pako GNU"
diff --git a/po/guix/hu.po b/po/guix/hu.po
index 33b42f71dc..7d4322cdb6 100644
--- a/po/guix/hu.po
+++ b/po/guix/hu.po
@@ -5,10 +5,10 @@
# Balázs Úr <urbalazs@gmail.com>, 2014.
msgid ""
msgstr ""
-"Project-Id-Version: guix 0.7-pre1\n"
+"Project-Id-Version: guix 0.8\n"
"Report-Msgid-Bugs-To: ludo@gnu.org\n"
-"POT-Creation-Date: 2014-07-25 00:55+0200\n"
-"PO-Revision-Date: 2014-07-18 17:37+0200\n"
+"POT-Creation-Date: 2014-11-09 22:32+0100\n"
+"PO-Revision-Date: 2014-12-03 21:49+0100\n"
"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
"Language: hu\n"
@@ -18,37 +18,55 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 1.5\n"
-#: gnu/packages.scm:102
+#: gnu/packages.scm:120
#, scheme-format
msgid "cannot access `~a': ~a~%"
msgstr "nem sikerült elérni: „~a”: ~a~%"
-#: guix/scripts/build.scm:54 guix/scripts/package.scm:349
+#: gnu/packages.scm:350
+#, scheme-format
+msgid "looking for the latest release of GNU ~a..."
+msgstr "a GNU ~a legutóbbi kiadásának keresése…"
+
+#: gnu/packages.scm:354
+#, scheme-format
+msgid "~a: note: using ~a but ~a is available upstream~%"
+msgstr "~a: megjegyzés: ~a használata, de ~a elérhető a tárolóban~%"
+
+#: gnu/packages.scm:376 guix/scripts/package.scm:305
#, scheme-format
msgid "ambiguous package specification `~a'~%"
msgstr "nem egyértelmű csomag specifikáció: „~a”~%"
-#: guix/scripts/build.scm:55 guix/scripts/package.scm:351
+#: gnu/packages.scm:377 guix/scripts/package.scm:307
#, scheme-format
msgid "choosing ~a from ~a~%"
msgstr "~a választása innen: ~a~%"
-#: guix/scripts/build.scm:61
+#: gnu/packages.scm:383
#, scheme-format
msgid "~A: package not found for version ~a~%"
msgstr "~A: nem található csomag ehhez a verzióhoz: ~a~%"
-#: guix/scripts/build.scm:63
+#: gnu/packages.scm:385
#, scheme-format
msgid "~A: unknown package~%"
msgstr "~A: ismeretlen csomag~%"
-#: guix/scripts/build.scm:86
+#: guix/scripts/build.scm:65
#, scheme-format
msgid "failed to create GC root `~a': ~a~%"
msgstr "nem sikerült a GC gyökér létrehozása: „~a”: ~a~%"
-#: guix/scripts/build.scm:123
+#: guix/scripts/build.scm:102
+msgid ""
+"\n"
+" -L, --load-path=DIR prepend DIR to the package module search path"
+msgstr ""
+"\n"
+" -L, --load-path=KVT KVT beszúrása a csomag modul keresési útvonalhoz"
+
+#: guix/scripts/build.scm:104
msgid ""
"\n"
" -K, --keep-failed keep build tree of failed builds"
@@ -57,7 +75,7 @@ msgstr ""
" -K, --keep-failed sikertelen összeállítások összeállítási fájának\n"
" megtartása"
-#: guix/scripts/build.scm:125
+#: guix/scripts/build.scm:106
msgid ""
"\n"
" -n, --dry-run do not build the derivations"
@@ -65,7 +83,7 @@ msgstr ""
"\n"
" -n, --dry-run ne állítsa össze a származékokat"
-#: guix/scripts/build.scm:127
+#: guix/scripts/build.scm:108
msgid ""
"\n"
" --fallback fall back to building when the substituter fails"
@@ -74,7 +92,7 @@ msgstr ""
" --fallback térjen vissza az összeállításra, ha a helyettesítő\n"
" sikertelen"
-#: guix/scripts/build.scm:129
+#: guix/scripts/build.scm:110
msgid ""
"\n"
" --no-substitutes build instead of resorting to pre-built substitutes"
@@ -83,7 +101,7 @@ msgstr ""
" --no-substitutes összeállítás az előre összeállított helyettesítők\n"
" felhasználása helyett"
-#: guix/scripts/build.scm:131
+#: guix/scripts/build.scm:112
msgid ""
"\n"
" --no-build-hook do not attempt to offload builds via the build hook"
@@ -92,7 +110,7 @@ msgstr ""
" --no-build-hook ne próbáljon meg összeállításokat tehermentesíteni\n"
" az összeállítási hurkon keresztül"
-#: guix/scripts/build.scm:133
+#: guix/scripts/build.scm:114
msgid ""
"\n"
" --max-silent-time=SECONDS\n"
@@ -103,7 +121,7 @@ msgstr ""
" az összeállítás sikertelennek jelölése MÁSODPERC\n"
" hallgatás után"
-#: guix/scripts/build.scm:136
+#: guix/scripts/build.scm:117
msgid ""
"\n"
" --timeout=SECONDS mark the build as failed after SECONDS of activity"
@@ -112,7 +130,7 @@ msgstr ""
" --timeout=MÁSODPERC az összeállítás sikertelennek jelölése MÁSODPERC\n"
" aktivitás után"
-#: guix/scripts/build.scm:138
+#: guix/scripts/build.scm:119
msgid ""
"\n"
" --verbosity=LEVEL use the given verbosity LEVEL"
@@ -120,7 +138,7 @@ msgstr ""
"\n"
" --verbosity=SZINT a megadott bőbeszédűségi SZINT használata"
-#: guix/scripts/build.scm:140
+#: guix/scripts/build.scm:121
msgid ""
"\n"
" -c, --cores=N allow the use of up to N CPU cores for the build"
@@ -129,12 +147,12 @@ msgstr ""
" -c, --cores=N legfeljebb N CPU-mag használatának engedélyezése\n"
" az összeállításhoz"
-#: guix/scripts/build.scm:206
+#: guix/scripts/build.scm:195
#, scheme-format
msgid "~a: not a number~%"
msgstr "~a: nem szám~%"
-#: guix/scripts/build.scm:223
+#: guix/scripts/build.scm:213
msgid ""
"Usage: guix build [OPTION]... PACKAGE-OR-DERIVATION...\n"
"Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"
@@ -143,7 +161,7 @@ msgstr ""
"A megadott CSOMAG-VAGY-SZÁRMAZTATOTT összeállítása, és a kimeneti elérési\n"
"útjaik visszaadása.\n"
-#: guix/scripts/build.scm:225
+#: guix/scripts/build.scm:215
msgid ""
"\n"
" -e, --expression=EXPR build the package or derivation EXPR evaluates to"
@@ -152,7 +170,7 @@ msgstr ""
" -e, --expression=KIF a csomag vagy a kiértékelt származtatott KIF\n"
" összeállítása"
-#: guix/scripts/build.scm:227
+#: guix/scripts/build.scm:217
msgid ""
"\n"
" -S, --source build the packages' source derivations"
@@ -160,7 +178,7 @@ msgstr ""
"\n"
" -S, --source a csomagok forrásszármazékainak összeállítása"
-#: guix/scripts/build.scm:229
+#: guix/scripts/build.scm:219
msgid ""
"\n"
" -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\""
@@ -169,7 +187,7 @@ msgstr ""
" -s, --system=RENDSZER kísérlet a RENDSZERRE történő összeállításra,\n"
" például „i686-linux”"
-#: guix/scripts/build.scm:231
+#: guix/scripts/build.scm:221
msgid ""
"\n"
" --target=TRIPLET cross-build for TRIPLET--e.g., \"armel-linux-gnu\""
@@ -178,7 +196,7 @@ msgstr ""
" --target=HÁRMAS kereszt összeállítás a HÁRMASRA, például\n"
" „armel-linux-gnu”"
-#: guix/scripts/build.scm:233
+#: guix/scripts/build.scm:223
msgid ""
"\n"
" --with-source=SOURCE\n"
@@ -188,7 +206,15 @@ msgstr ""
" --with-source=FORRÁS\n"
" FORRÁS használata a megfelelő csomag összeállításakor"
-#: guix/scripts/build.scm:236
+#: guix/scripts/build.scm:226
+msgid ""
+"\n"
+" --no-grafts do not graft packages"
+msgstr ""
+"\n"
+" --no-grafts ne oltsa be a csomagokat"
+
+#: guix/scripts/build.scm:228
msgid ""
"\n"
" -d, --derivations return the derivation paths of the given packages"
@@ -196,7 +222,7 @@ msgstr ""
"\n"
" -d, --derivations a megadott csomagok származék-útvonalának visszaadása"
-#: guix/scripts/build.scm:238
+#: guix/scripts/build.scm:230
msgid ""
"\n"
" -r, --root=FILE make FILE a symlink to the result, and register it\n"
@@ -206,7 +232,7 @@ msgstr ""
" -r, --root=FÁJL a FÁJL az eredmény egy szimbolikus linkje legyen,\n"
" és regisztrálja gyökér szemétgyűjtőként"
-#: guix/scripts/build.scm:241
+#: guix/scripts/build.scm:233
msgid ""
"\n"
" --log-file return the log file names for the given derivations"
@@ -214,10 +240,11 @@ msgstr ""
"\n"
" --log-file a megadott származékok naplófájl-neveinek visszaadása"
-#: guix/scripts/build.scm:246 guix/scripts/download.scm:53
-#: guix/scripts/package.scm:525 guix/scripts/gc.scm:58
-#: guix/scripts/hash.scm:55 guix/scripts/pull.scm:82
-#: guix/scripts/substitute-binary.scm:564 guix/scripts/system.scm:362
+#: guix/scripts/build.scm:238 guix/scripts/download.scm:53
+#: guix/scripts/package.scm:451 guix/scripts/gc.scm:58
+#: guix/scripts/hash.scm:55 guix/scripts/pull.scm:81
+#: guix/scripts/substitute-binary.scm:560 guix/scripts/system.scm:371
+#: guix/scripts/lint.scm:262
msgid ""
"\n"
" -h, --help display this help and exit"
@@ -225,10 +252,11 @@ msgstr ""
"\n"
" -h, --help ezen súgó megjelenítése és kilépés"
-#: guix/scripts/build.scm:248 guix/scripts/download.scm:55
-#: guix/scripts/package.scm:527 guix/scripts/gc.scm:60
-#: guix/scripts/hash.scm:57 guix/scripts/pull.scm:84
-#: guix/scripts/substitute-binary.scm:566 guix/scripts/system.scm:364
+#: guix/scripts/build.scm:240 guix/scripts/download.scm:55
+#: guix/scripts/package.scm:453 guix/scripts/gc.scm:60
+#: guix/scripts/hash.scm:57 guix/scripts/pull.scm:83
+#: guix/scripts/substitute-binary.scm:562 guix/scripts/system.scm:373
+#: guix/scripts/lint.scm:266
msgid ""
"\n"
" -V, --version display version information and exit"
@@ -236,19 +264,20 @@ msgstr ""
"\n"
" -V, --version verzióinformációk megjelenítése és kilépés"
-#: guix/scripts/build.scm:368
+#: guix/scripts/build.scm:366
#, scheme-format
msgid "sources do not match any package:~{ ~a~}~%"
msgstr "a források nem illeszkednek semmilyen csomagra:~{ ~a~}~%"
-#: guix/scripts/build.scm:397 guix/scripts/download.scm:96
-#: guix/scripts/package.scm:763 guix/scripts/gc.scm:122
-#: guix/scripts/pull.scm:115 guix/scripts/system.scm:414
+#: guix/scripts/build.scm:395 guix/scripts/download.scm:96
+#: guix/scripts/package.scm:673 guix/scripts/gc.scm:122
+#: guix/scripts/pull.scm:213 guix/scripts/system.scm:426
+#: guix/scripts/lint.scm:313
#, scheme-format
msgid "~A: unrecognized option~%"
msgstr "~A: ismeretlen kapcsoló~%"
-#: guix/scripts/build.scm:425
+#: guix/scripts/build.scm:423
#, scheme-format
msgid "no build log for '~a'~%"
msgstr "nincs összeállítási napló ehhez: „~a”~%"
@@ -292,73 +321,42 @@ msgstr "~a: az URI feldolgozása sikertelen~%"
msgid "~a: download failed~%"
msgstr "~a: letöltés sikertelen~%"
-#: guix/scripts/package.scm:88
+#: guix/scripts/package.scm:97
#, scheme-format
msgid "failed to build the empty profile~%"
msgstr "az üres profil összeállítása sikertelen~%"
-#: guix/scripts/package.scm:97
+#: guix/scripts/package.scm:113
#, scheme-format
msgid "switching from generation ~a to ~a~%"
msgstr "átváltás a(z) ~a generációról erre: ~a~%"
-#: guix/scripts/package.scm:108 guix/scripts/package.scm:873
-#: guix/scripts/package.scm:985
-#, scheme-format
-msgid "profile '~a' does not exist~%"
-msgstr "a(z) „~a” profil nem létezik~%"
-
-#: guix/scripts/package.scm:112
+#: guix/scripts/package.scm:132
#, scheme-format
msgid "nothing to do: already at the empty profile~%"
msgstr "nincs mit tenni: már az üres profilnál van~%"
-#: guix/scripts/package.scm:197
-#, scheme-format
-msgid "The following package would be removed:~%~{~a~%~}~%"
-msgstr "A következő csomagot el kellene távolítani:~%~{~a~%~}~%"
-
-#: guix/scripts/package.scm:202
-#, scheme-format
-msgid "The following package will be removed:~%~{~a~%~}~%"
-msgstr "A következő csomag el lesz távolítva:~%~{~a~%~}~%"
-
-#: guix/scripts/package.scm:214
-#, scheme-format
-msgid "The following package would be installed:~%~{~a~%~}~%"
-msgstr "A következő csomagot telepíteni kellene:~%~{~a~%~}~%"
-
-#: guix/scripts/package.scm:219
+#: guix/scripts/package.scm:144
#, scheme-format
-msgid "The following package will be installed:~%~{~a~%~}~%"
-msgstr "A következő csomag telepítve lesz:~%~{~a~%~}~%"
+msgid "deleting ~a~%"
+msgstr "~a törlése~%"
-#: guix/scripts/package.scm:339
+#: guix/scripts/package.scm:295
#, scheme-format
msgid "package `~a' lacks output `~a'~%"
msgstr "a(z) „~a” csomag hiányolja a kimenetet: „~a”~%"
-#: guix/scripts/package.scm:356
+#: guix/scripts/package.scm:312
#, scheme-format
msgid "~a: package not found~%"
msgstr "~a: a csomag nem található~%"
-#: guix/scripts/package.scm:391
-#, scheme-format
-msgid "looking for the latest release of GNU ~a..."
-msgstr "a GNU ~a legutóbbi kiadásának keresése…"
-
-#: guix/scripts/package.scm:395
-#, scheme-format
-msgid "~a: note: using ~a but ~a is available upstream~%"
-msgstr "~a: megjegyzés: ~a használata, de ~a elérhető a tárolóban~%"
-
-#: guix/scripts/package.scm:467
+#: guix/scripts/package.scm:390
#, scheme-format
msgid "The following environment variable definitions may be needed:~%"
msgstr "A következő környezeti változó meghatározások lehetnek szükségesek:~%"
-#: guix/scripts/package.scm:483
+#: guix/scripts/package.scm:406
msgid ""
"Usage: guix package [OPTION]... PACKAGES...\n"
"Install, remove, or upgrade PACKAGES in a single transaction.\n"
@@ -366,7 +364,7 @@ msgstr ""
"Használat: guix package [KAPCSOLÓ]… CSOMAGOK…\n"
"CSOMAGOK telepítése, eltávolítása vagy frissítése egyetlen tranzakcióban.\n"
-#: guix/scripts/package.scm:485
+#: guix/scripts/package.scm:408
msgid ""
"\n"
" -i, --install=PACKAGE install PACKAGE"
@@ -374,7 +372,7 @@ msgstr ""
"\n"
" -i, --install=CSOMAG CSOMAG telepítése"
-#: guix/scripts/package.scm:487
+#: guix/scripts/package.scm:410
msgid ""
"\n"
" -e, --install-from-expression=EXP\n"
@@ -384,7 +382,7 @@ msgstr ""
" -e, --install-from-expression=KIF\n"
" a kiértékelt KIF csomag telepítése"
-#: guix/scripts/package.scm:490
+#: guix/scripts/package.scm:413
msgid ""
"\n"
" -r, --remove=PACKAGE remove PACKAGE"
@@ -392,7 +390,7 @@ msgstr ""
"\n"
" -r, --remove=CSOMAG CSOMAG eltávolítása"
-#: guix/scripts/package.scm:492
+#: guix/scripts/package.scm:415
msgid ""
"\n"
" -u, --upgrade[=REGEXP] upgrade all the installed packages matching REGEXP"
@@ -401,7 +399,7 @@ msgstr ""
" -u, --upgrade[=REGKIF] az összes REGKIF-re illeszkedő telepített csomag\n"
" frissítése"
-#: guix/scripts/package.scm:494
+#: guix/scripts/package.scm:417
msgid ""
"\n"
" --roll-back roll back to the previous generation"
@@ -409,7 +407,7 @@ msgstr ""
"\n"
" --roll-back visszagörgetés az előző generációra"
-#: guix/scripts/package.scm:496
+#: guix/scripts/package.scm:419
msgid ""
"\n"
" --search-paths display needed environment variable definitions"
@@ -418,7 +416,7 @@ msgstr ""
" --search-paths a szükséges környezeti változó meghatározások\n"
" megjelenítése"
-#: guix/scripts/package.scm:498
+#: guix/scripts/package.scm:421
msgid ""
"\n"
" -l, --list-generations[=PATTERN]\n"
@@ -428,7 +426,7 @@ msgstr ""
" -l, --list-generations[=MINTA]\n"
" a MINTÁRA illeszkedő generációk listázása"
-#: guix/scripts/package.scm:501
+#: guix/scripts/package.scm:424
msgid ""
"\n"
" -d, --delete-generations[=PATTERN]\n"
@@ -438,7 +436,17 @@ msgstr ""
" -d, --delete-generations[=MINTA]\n"
" a MINTÁRA illeszkedő generációk törlése"
-#: guix/scripts/package.scm:504
+#: guix/scripts/package.scm:427
+msgid ""
+"\n"
+" -S, --switch-generation=PATTERN\n"
+" switch to a generation matching PATTERN"
+msgstr ""
+"\n"
+" -S, --switch-generation=MINTA\n"
+" átváltás a MINTÁRA illeszkedő generációra"
+
+#: guix/scripts/package.scm:430
msgid ""
"\n"
" -p, --profile=PROFILE use PROFILE instead of the user's default profile"
@@ -447,7 +455,7 @@ msgstr ""
" -p, --profile=PROFIL a PROFIL használata a felhasználó alapértelmezett\n"
" profilja helyett"
-#: guix/scripts/package.scm:507
+#: guix/scripts/package.scm:433
msgid ""
"\n"
" --bootstrap use the bootstrap Guile to build the profile"
@@ -456,7 +464,7 @@ msgstr ""
" --bootstrap a Guile rendszertöltő használata a profil\n"
" összeállításához"
-#: guix/scripts/package.scm:509 guix/scripts/pull.scm:75
+#: guix/scripts/package.scm:435 guix/scripts/pull.scm:74
msgid ""
"\n"
" --verbose produce verbose output"
@@ -464,7 +472,7 @@ msgstr ""
"\n"
" --verbose bőbeszédű kimenet előállítása"
-#: guix/scripts/package.scm:512
+#: guix/scripts/package.scm:438
msgid ""
"\n"
" -s, --search=REGEXP search in synopsis and description using REGEXP"
@@ -473,7 +481,7 @@ msgstr ""
" -s, --search=REGKIF keresés az összegzésben és a leírásban REGKIF\n"
" használatával"
-#: guix/scripts/package.scm:514
+#: guix/scripts/package.scm:440
msgid ""
"\n"
" -I, --list-installed[=REGEXP]\n"
@@ -483,7 +491,7 @@ msgstr ""
" -I, --list-installed[=REGKIF]\n"
" a REGKIF-re illeszkedő telepített csomagok listázása"
-#: guix/scripts/package.scm:517
+#: guix/scripts/package.scm:443
msgid ""
"\n"
" -A, --list-available[=REGEXP]\n"
@@ -493,73 +501,74 @@ msgstr ""
" -A, --list-available[=REGKIF]\n"
" a REGKIF-re illeszkedő elérhető csomagok listázása"
-#: guix/scripts/package.scm:520
-#, fuzzy
+#: guix/scripts/package.scm:446
msgid ""
"\n"
" --show=PACKAGE show details about PACKAGE"
msgstr ""
"\n"
-" -i, --install=CSOMAG CSOMAG telepítése"
+" --show=CSOMAG a CSOMAG részleteinek megjelenítése"
-#: guix/scripts/package.scm:767
+#: guix/scripts/package.scm:677
#, scheme-format
msgid "~A: extraneous argument~%"
msgstr "~A: nem odatartozó argumentum~%"
-#: guix/scripts/package.scm:782
+#: guix/scripts/package.scm:687
#, scheme-format
msgid "Try \"info '(guix) Invoking guix package'\" for more information.~%"
msgstr ""
"További információkért próbálja az „info '(guix) Invoking guix package'”\n"
"parancsot.~%"
-#: guix/scripts/package.scm:804
+#: guix/scripts/package.scm:709
#, scheme-format
msgid "error: while creating directory `~a': ~a~%"
msgstr "hiba: a(z) „~a” könyvtár létrehozása közben: ~a~%"
-#: guix/scripts/package.scm:808
+#: guix/scripts/package.scm:713
#, scheme-format
msgid "Please create the `~a' directory, with you as the owner.~%"
msgstr "Hozza létre a(z) „~a” könyvtárat az ön nevében, tulajdonosként.~%"
-#: guix/scripts/package.scm:815
+#: guix/scripts/package.scm:720
#, scheme-format
msgid "error: directory `~a' is not owned by you~%"
msgstr "hiba: a(z) „~a” könyvtárnak nem ön a tulajdonosa~%"
-#: guix/scripts/package.scm:818
+#: guix/scripts/package.scm:723
#, scheme-format
msgid "Please change the owner of `~a' to user ~s.~%"
msgstr "Változtassa meg a(z) „~a” tulajdonosát erre a felhasználóra: ~s.~%"
-#: guix/scripts/package.scm:843
+#: guix/scripts/package.scm:756
#, scheme-format
-msgid "deleting ~a~%"
-msgstr "~a törlése~%"
+msgid "cannot switch to generation '~a'~%"
+msgstr "nem sikerült átváltani erre a generációra: „~a”~%"
-#: guix/scripts/package.scm:896 guix/scripts/package.scm:1001
+#: guix/scripts/package.scm:788 guix/scripts/package.scm:889
#, scheme-format
msgid "invalid syntax: ~a~%"
msgstr "érvénytelen szintaxis: ~a~%"
-#: guix/scripts/package.scm:925
+#: guix/scripts/package.scm:825
#, scheme-format
msgid "nothing to be done~%"
msgstr "nincs mit tenni~%"
-#: guix/scripts/package.scm:948
+#: guix/scripts/package.scm:840
#, scheme-format
msgid "~a package in profile~%"
-msgstr "~a csomag a profilban~%"
+msgid_plural "~a packages in profile~%"
+msgstr[0] "~a csomag a profilban~%"
+msgstr[1] "~a csomag a profilban~%"
-#: guix/scripts/package.scm:963
+#: guix/scripts/package.scm:855
#, scheme-format
msgid "Generation ~a\t~a"
msgstr "~a generáció\t~a"
-#: guix/scripts/package.scm:970
+#: guix/scripts/package.scm:862
#, scheme-format
msgid "~a\t(current)~%"
msgstr "~a\t(jelenlegi)~%"
@@ -662,7 +671,7 @@ msgstr ""
msgid "unrecognized option: ~a~%"
msgstr "ismeretlen kapcsoló: ~a~%"
-#: guix/scripts/hash.scm:134 guix/ui.scm:233
+#: guix/scripts/hash.scm:134 guix/ui.scm:252
#, scheme-format
msgid "~a~%"
msgstr "~a~%"
@@ -672,7 +681,7 @@ msgstr "~a~%"
msgid "wrong number of arguments~%"
msgstr "nem megfelelő számú argumentum~%"
-#: guix/scripts/pull.scm:73
+#: guix/scripts/pull.scm:72
msgid ""
"Usage: guix pull [OPTION]...\n"
"Download and deploy the latest version of Guix.\n"
@@ -680,7 +689,7 @@ msgstr ""
"Használat: guix pull [KAPCSOLÓ]…\n"
"A Guix legújabb verziójának letöltése és telepítése.\n"
-#: guix/scripts/pull.scm:77
+#: guix/scripts/pull.scm:76
msgid ""
"\n"
" --url=URL download the Guix tarball from URL"
@@ -688,7 +697,7 @@ msgstr ""
"\n"
" --url=URL a Guix tarball letöltése az URL-ről"
-#: guix/scripts/pull.scm:79
+#: guix/scripts/pull.scm:78
msgid ""
"\n"
" --bootstrap use the bootstrap Guile to build the new Guix"
@@ -697,29 +706,42 @@ msgstr ""
" --bootstrap a Guile rendszertöltő használata az új Guix\n"
" összeállításához"
-#: guix/scripts/pull.scm:117
+#: guix/scripts/pull.scm:132
+msgid "tarball did not produce a single source directory"
+msgstr "a tarball nem hozott létre egyedüli forráskönyvtárat"
+
+#: guix/scripts/pull.scm:150
#, scheme-format
-msgid "~A: unexpected argument~%"
-msgstr "~A: nem várt argumentum~%"
+msgid "unpacking '~a'...~%"
+msgstr "kibontás: „~a”...~%"
-#: guix/scripts/pull.scm:126
-msgid "failed to download up-to-date source, exiting\n"
-msgstr "a legfrissebb forrás letöltése sikertelen, kilépés\n"
+#: guix/scripts/pull.scm:159
+msgid "failed to unpack source code"
+msgstr "nem sikerült a forráskód kibontása"
-#: guix/scripts/pull.scm:145
+#: guix/scripts/pull.scm:200
#, scheme-format
msgid "updated ~a successfully deployed under `~a'~%"
msgstr "a(z) ~a frissítése sikeresen telepítve ez alá: „~a”~%"
-#: guix/scripts/pull.scm:148
+#: guix/scripts/pull.scm:203
#, scheme-format
msgid "failed to update Guix, check the build log~%"
msgstr "a Guix frissítése sikertelen, nézze meg az összeállítási naplót~%"
-#: guix/scripts/pull.scm:150
+#: guix/scripts/pull.scm:205
msgid "Guix already up to date\n"
msgstr "A Guix már naprakész\n"
+#: guix/scripts/pull.scm:215
+#, scheme-format
+msgid "~A: unexpected argument~%"
+msgstr "~A: nem várt argumentum~%"
+
+#: guix/scripts/pull.scm:224
+msgid "failed to download up-to-date source, exiting\n"
+msgstr "a legfrissebb forrás letöltése sikertelen, kilépés\n"
+
#: guix/scripts/substitute-binary.scm:80
#, scheme-format
msgid "authentication and authorization of substitutes disabled!~%"
@@ -795,12 +817,12 @@ msgstr "Letöltés, kérem várjon…~%"
msgid "(Please consider upgrading Guile to get proper progress report.)~%"
msgstr "(Fontolja meg a Guile frissítését a megfelelő állapotjelentés beszerzéséhez.)~%"
-#: guix/scripts/substitute-binary.scm:545
+#: guix/scripts/substitute-binary.scm:541
#, scheme-format
msgid "host name lookup error: ~a~%"
msgstr "gépnév keresési hiba: ~a~%"
-#: guix/scripts/substitute-binary.scm:554
+#: guix/scripts/substitute-binary.scm:550
msgid ""
"Usage: guix substitute-binary [OPTION]...\n"
"Internal tool to substitute a pre-built binary to a local build.\n"
@@ -809,7 +831,7 @@ msgstr ""
"Belső eszköz egy előre összeállított binárisnak egy helyi összeállítással\n"
"való helyettesítéséhez.\n"
-#: guix/scripts/substitute-binary.scm:556
+#: guix/scripts/substitute-binary.scm:552
msgid ""
"\n"
" --query report on the availability of substitutes for the\n"
@@ -819,7 +841,7 @@ msgstr ""
" --query a helyettesítők elérhetőségének jelentése a\n"
" szabványos bemeneten átadott tároló fájlnevekhez"
-#: guix/scripts/substitute-binary.scm:559
+#: guix/scripts/substitute-binary.scm:555
msgid ""
"\n"
" --substitute STORE-FILE DESTINATION\n"
@@ -831,18 +853,23 @@ msgstr ""
" TÁROLÓ-FÁJL letöltése és eltárolása Nar formátumban\n"
" a CÉL fájlban"
-#: guix/scripts/substitute-binary.scm:604
+#: guix/scripts/substitute-binary.scm:600
msgid "ACL for archive imports seems to be uninitialized, substitutes may be unavailable\n"
msgstr ""
"Az ACL előkészítetlennek tűnik az archívum importokhoz, a helyettesítők\n"
"elérhetetlenek lehetnek\n"
-#: guix/scripts/substitute-binary.scm:625
+#: guix/scripts/substitute-binary.scm:634
+#, scheme-format
+msgid "these substitute URLs will not be used:~{ ~a~}~%"
+msgstr "ezek a helyettesítő URL-ek nem lesznek használva:~{ ~a~}~%"
+
+#: guix/scripts/substitute-binary.scm:660
#, scheme-format
msgid "failed to look up host '~a' (~a), substituter disabled~%"
msgstr "a(z) „~a” (~a) gép keresése sikertelen, a helyettesítő letiltva~%"
-#: guix/scripts/substitute-binary.scm:732
+#: guix/scripts/substitute-binary.scm:767
#, scheme-format
msgid "~a: unrecognized options~%"
msgstr "~a: ismeretlen kapcsolók~%"
@@ -886,7 +913,7 @@ msgstr "hibás argumentumok"
msgid "failed to open operating system file '~a': ~a~%"
msgstr "a(z) „~a” operációs rendszer fájl megnyitása sikertelen: ~a~%"
-#: guix/scripts/system.scm:78 guix/ui.scm:238
+#: guix/scripts/system.scm:78 guix/ui.scm:258
#, scheme-format
msgid "~a: ~a~%"
msgstr "~a: ~a~%"
@@ -906,7 +933,7 @@ msgstr "a(z) „~a” regisztrálása sikertelen ez alá: „~a”~%"
msgid "initializing the current root file system~%"
msgstr "a jelenlegi gyökér fájlrendszer előkészítése~%"
-#: guix/scripts/system.scm:162 guix/scripts/system.scm:318
+#: guix/scripts/system.scm:162 guix/scripts/system.scm:325
#, scheme-format
msgid "failed to install GRUB on device '~a'~%"
msgstr "a GRUB telepítése sikertelen a(z) „~a” eszközre~%"
@@ -916,17 +943,17 @@ msgstr "a GRUB telepítése sikertelen a(z) „~a” eszközre~%"
msgid "activating system...~%"
msgstr "a rendszer aktiválása…~%"
-#: guix/scripts/system.scm:236
+#: guix/scripts/system.scm:239
#, scheme-format
msgid "unrecognized boot parameters for '~a'~%"
msgstr "azonosítatlan indítási paraméterek ehhez: „~a”~%"
-#: guix/scripts/system.scm:323
+#: guix/scripts/system.scm:330
#, scheme-format
msgid "initializing operating system under '~a'...~%"
msgstr "az operációs rendszer előkészítése „~a” alá…~%"
-#: guix/scripts/system.scm:339
+#: guix/scripts/system.scm:346
msgid ""
"Usage: guix system [OPTION] ACTION FILE\n"
"Build the operating system declared in FILE according to ACTION.\n"
@@ -934,37 +961,37 @@ msgstr ""
"Használat: guix system [KAPCSOLÓ] MŰVELET FÁJL\n"
"A FÁJLBAN meghatározott operációs rendszer összeállítása a MŰVELET szerint.\n"
-#: guix/scripts/system.scm:342
+#: guix/scripts/system.scm:349
msgid "The valid values for ACTION are:\n"
msgstr "A MŰVELET érvényes értékei a következők:\n"
-#: guix/scripts/system.scm:343
+#: guix/scripts/system.scm:350
msgid " - 'reconfigure', switch to a new operating system configuration\n"
msgstr " - „reconfigure”, átváltás egy új operációs rendszer beállításra\n"
-#: guix/scripts/system.scm:345
+#: guix/scripts/system.scm:352
msgid " - 'build', build the operating system without installing anything\n"
msgstr " - „build”, az operációs rendszer összeállítása bármi telepítése nélkül\n"
-#: guix/scripts/system.scm:347
+#: guix/scripts/system.scm:354
msgid " - 'vm', build a virtual machine image that shares the host's store\n"
msgstr ""
" - „vm”, egy virtuális gép lemezkép összeállítása, amely megosztja a gazda\n"
" tárolóját\n"
-#: guix/scripts/system.scm:349
+#: guix/scripts/system.scm:356
msgid " - 'vm-image', build a freestanding virtual machine image\n"
msgstr " - „vm-image”, egy szabadon álló virtuális gép lemezkép összeállítása\n"
-#: guix/scripts/system.scm:351
+#: guix/scripts/system.scm:358
msgid " - 'disk-image', build a disk image, suitable for a USB stick\n"
msgstr " - „disk-image”, egy USB-meghajtóhoz megfelelő lemezkép összeállítása\n"
-#: guix/scripts/system.scm:353
+#: guix/scripts/system.scm:360
msgid " - 'init', initialize a root file system to run GNU.\n"
msgstr " - „init”, a gyökér fájlrendszer előkészítése a GNU futtatásához.\n"
-#: guix/scripts/system.scm:357
+#: guix/scripts/system.scm:364
msgid ""
"\n"
" --image-size=SIZE for 'vm-image', produce an image of SIZE"
@@ -972,7 +999,7 @@ msgstr ""
"\n"
" --image-size=MÉRET a „vm-image”-hez, adott MÉRETŰ lemezkép előállítása"
-#: guix/scripts/system.scm:359
+#: guix/scripts/system.scm:366
msgid ""
"\n"
" --no-grub for 'init', do not install GRUB"
@@ -980,21 +1007,86 @@ msgstr ""
"\n"
" --no-grub az „init”-hez, ne telepítse a GRUB rendszerbetöltőt"
-#: guix/scripts/system.scm:422
+#: guix/scripts/system.scm:368
+msgid ""
+"\n"
+" --full-boot for 'vm', make a full boot sequence"
+msgstr ""
+"\n"
+" --full-boot „vm” esetén, teljes indítási sorozat készítése"
+
+#: guix/scripts/system.scm:434
#, scheme-format
msgid "~a: unknown action~%"
msgstr "~a: ismeretlen művelet~%"
-#: guix/scripts/system.scm:439
+#: guix/scripts/system.scm:451
#, scheme-format
msgid "wrong number of arguments for action '~a'~%"
msgstr "nem megfelelő számú argumentum a(z) „~a” művelethez~%"
-#: guix/scripts/system.scm:459
+#: guix/scripts/system.scm:471
#, scheme-format
msgid "no configuration file specified~%"
msgstr "nincs beállítófájl megadva~%"
+#: guix/scripts/lint.scm:51
+#, scheme-format
+msgid "~a: ~a: ~a~%"
+msgstr "~a: ~a: ~a~%"
+
+#: guix/scripts/lint.scm:72
+#, scheme-format
+msgid "Available checkers:~%"
+msgstr "Elérhető ellenőrzők:~%"
+
+#: guix/scripts/lint.scm:226
+msgid "Validate package descriptions"
+msgstr "Csomagleírások ellenőrzése"
+
+#: guix/scripts/lint.scm:230
+msgid "Identify inputs that should be native inputs"
+msgstr "Bemenetek azonosítása, amelyek natív bemenetek lehetnek"
+
+#: guix/scripts/lint.scm:234
+msgid "Validate filenames of patches"
+msgstr "Javítócsomagok fájlneveinek ellenőrzése"
+
+#: guix/scripts/lint.scm:238
+msgid "Validate package synopsis"
+msgstr "Csomagáttekintés ellenőrzése"
+
+#: guix/scripts/lint.scm:257
+msgid ""
+"Usage: guix lint [OPTION]... [PACKAGE]...\n"
+"Run a set of checkers on the specified package; if none is specified, run the checkers on all packages.\n"
+msgstr ""
+"Használat: guix lint [KAPCSOLÓ]… [CSOMAG]…\n"
+"Számos ellenőrző futtatása a megadott csomagon. Ha semmi sincs megadva, az ellenőrzők futtatása minden csomagon.\n"
+
+#: guix/scripts/lint.scm:259
+msgid ""
+"\n"
+" -c, --checkers=CHECKER1,CHECKER2...\n"
+" only run the specificed checkers"
+msgstr ""
+"\n"
+" -c, --checkers=ELLENŐRZŐ1,ELLENŐRZŐ2…\n"
+" csak a megadott ellenőrzők futtatása"
+
+#: guix/scripts/lint.scm:264
+msgid ""
+"\n"
+" -l, --list-checkers display the list of available lint checkers"
+msgstr ""
+"\n"
+" -l, --list-checkers az elérhető lint ellenőrzők listájának megjelenítése"
+
+#: guix/scripts/lint.scm:283
+#, scheme-format
+msgid "~a: invalid checker"
+msgstr "~a: érvénytelen ellenőrző"
+
#: guix/gnu-maintenance.scm:373
#, scheme-format
msgid "signature verification failed for `~a'~%"
@@ -1015,12 +1107,12 @@ msgstr "~a: nem található a forrásfájl"
msgid "~a: ~a: no `version' field in source; skipping~%"
msgstr "~a: ~a: nincs „version” mező a forrásban; kihagyás~%"
-#: guix/ui.scm:131
+#: guix/ui.scm:135
#, scheme-format
msgid "failed to install locale: ~a~%"
msgstr "a területi beállítás telepítése sikertelen: ~a~%"
-#: guix/ui.scm:150
+#: guix/ui.scm:154
msgid ""
"Copyright (C) 2014 the Guix authors\n"
"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
@@ -1033,7 +1125,7 @@ msgstr ""
"Ez egy szabad szoftver, terjesztheti és/vagy módosíthatja.\n"
"NINCS GARANCIA, a törvény által engedélyezett mértékig.\n"
-#: guix/ui.scm:158
+#: guix/ui.scm:162
#, scheme-format
msgid ""
"\n"
@@ -1042,7 +1134,7 @@ msgstr ""
"\n"
"A hibákat ide jelentse: ~a."
-#: guix/ui.scm:160
+#: guix/ui.scm:164
#, scheme-format
msgid ""
"\n"
@@ -1051,7 +1143,7 @@ msgstr ""
"\n"
"~a honlap: <~a>"
-#: guix/ui.scm:162
+#: guix/ui.scm:166
msgid ""
"\n"
"General help using GNU software: <http://www.gnu.org/gethelp/>"
@@ -1059,100 +1151,160 @@ msgstr ""
"\n"
"Általános segítség a GNU szoftverek használatához: <http://www.gnu.org/gethelp/>"
-#: guix/ui.scm:169
+#: guix/ui.scm:173
#, scheme-format
msgid "~a: invalid number~%"
msgstr "~a: érvénytelen szám~%"
-#: guix/ui.scm:186
+#: guix/ui.scm:190
#, scheme-format
msgid "invalid number: ~a~%"
msgstr "érvénytelen szám: ~a~%"
-#: guix/ui.scm:201
+#: guix/ui.scm:213
#, scheme-format
msgid "unknown unit: ~a~%"
msgstr "ismeretlen egység: ~a~%"
-#: guix/ui.scm:212
+#: guix/ui.scm:224
#, scheme-format
msgid "~a:~a:~a: package `~a' has an invalid input: ~s~%"
msgstr "~a:~a:~a: a(z) „~a” csomagnak érvénytelen bemenete van: ~s~%"
-#: guix/ui.scm:219
+#: guix/ui.scm:231
#, scheme-format
msgid "~a: ~a: build system `~a' does not support cross builds~%"
msgstr "~a: ~a: a(z) „~a” összeállítási rendszer nem támogatja a kereszt összeállításokat~%"
-#: guix/ui.scm:224
+#: guix/ui.scm:236
+#, scheme-format
+msgid "profile '~a' does not exist~%"
+msgstr "a(z) „~a” profil nem létezik~%"
+
+#: guix/ui.scm:239
+#, scheme-format
+msgid "generation ~a of profile '~a' does not exist~%"
+msgstr "a(z) ~a generáció a(z) „~a” profilhoz nem létezik~%"
+
+#: guix/ui.scm:243
#, scheme-format
msgid "failed to connect to `~a': ~a~%"
msgstr "sikertelen csatlakozás ehhez: „~a”: ~a~%"
-#: guix/ui.scm:229
+#: guix/ui.scm:248
#, scheme-format
msgid "build failed: ~a~%"
msgstr "az összeállítás sikertelen: ~a~%"
-#: guix/ui.scm:257
+#: guix/ui.scm:277
#, scheme-format
msgid "failed to read expression ~s: ~s~%"
msgstr "a(z) ~s kifejezés olvasása sikertelen: ~s~%"
-#: guix/ui.scm:263
+#: guix/ui.scm:283
#, scheme-format
msgid "failed to evaluate expression `~a': ~s~%"
msgstr "a(z) „~a” kifejezés kiértékelése sikertelen: ~s~%"
-#: guix/ui.scm:272
+#: guix/ui.scm:292
#, scheme-format
msgid "expression ~s does not evaluate to a package~%"
msgstr "a(z) ~s kifejezés nem értékelhető ki a csomaghoz~%"
-#: guix/ui.scm:319
+#: guix/ui.scm:339
#, scheme-format
msgid "~:[The following derivation would be built:~%~{ ~a~%~}~;~]"
-msgstr "~:[A következő származékot kellene összeállítani:~%~{ ~a~%~}~;~]"
+msgid_plural "~:[The following derivations would be built:~%~{ ~a~%~}~;~]"
+msgstr[0] "~:[A következő származékot kellene összeállítani:~%~{ ~a~%~}~;~]"
+msgstr[1] "~:[A következő származékokat kellene összeállítani:~%~{ ~a~%~}~;~]"
-#: guix/ui.scm:324
+#: guix/ui.scm:344
#, scheme-format
msgid "~:[The following file would be downloaded:~%~{ ~a~%~}~;~]"
-msgstr "~:[A következő fájlt kellene letölteni:~%~{ ~a~%~}~;~]"
+msgid_plural "~:[The following files would be downloaded:~%~{ ~a~%~}~;~]"
+msgstr[0] "~:[A következő fájlt kellene letölteni:~%~{ ~a~%~}~;~]"
+msgstr[1] "~:[A következő fájlokat kellene letölteni:~%~{ ~a~%~}~;~]"
-#: guix/ui.scm:330
+#: guix/ui.scm:350
#, scheme-format
msgid "~:[The following derivation will be built:~%~{ ~a~%~}~;~]"
-msgstr "~:[A következő származék lesz összeállítva:~%~{ ~a~%~}~;~]"
+msgid_plural "~:[The following derivations will be built:~%~{ ~a~%~}~;~]"
+msgstr[0] "~:[A következő származék lesz összeállítva:~%~{ ~a~%~}~;~]"
+msgstr[1] "~:[A következő származékok lesznek összeállítva:~%~{ ~a~%~}~;~]"
-#: guix/ui.scm:335
+#: guix/ui.scm:355
#, scheme-format
msgid "~:[The following file will be downloaded:~%~{ ~a~%~}~;~]"
-msgstr "~:[A következő fájl lesz letöltve:~%~{ ~a~%~}~;~]"
+msgid_plural "~:[The following files will be downloaded:~%~{ ~a~%~}~;~]"
+msgstr[0] "~:[A következő fájl lesz letöltve:~%~{ ~a~%~}~;~]"
+msgstr[1] "~:[A következő fájlok lesznek letöltve:~%~{ ~a~%~}~;~]"
+
+#: guix/ui.scm:407
+#, scheme-format
+msgid "The following package would be removed:~%~{~a~%~}~%"
+msgid_plural "The following packages would be removed:~%~{~a~%~}~%"
+msgstr[0] "A következő csomagot el kellene távolítani:~%~{~a~%~}~%"
+msgstr[1] "A következő csomagokat el kellene távolítani:~%~{~a~%~}~%"
+
+#: guix/ui.scm:412
+#, scheme-format
+msgid "The following package will be removed:~%~{~a~%~}~%"
+msgid_plural "The following packages will be removed:~%~{~a~%~}~%"
+msgstr[0] "A következő csomag el lesz távolítva:~%~{~a~%~}~%"
+msgstr[1] "A következő csomagok el lesznek távolítva:~%~{~a~%~}~%"
+
+#: guix/ui.scm:425
+#, scheme-format
+msgid "The following package would be upgraded:~%~{~a~%~}~%"
+msgid_plural "The following packages would be upgraded:~%~{~a~%~}~%"
+msgstr[0] "A következő csomagot kellene frissíteni:~%~{~a~%~}~%"
+msgstr[1] "A következő csomagokat kellene frissíteni:~%~{~a~%~}~%"
+
+#: guix/ui.scm:430
+#, scheme-format
+msgid "The following package will be upgraded:~%~{~a~%~}~%"
+msgid_plural "The following packages will be upgraded:~%~{~a~%~}~%"
+msgstr[0] "A következő csomag lesz frissítve:~%~{~a~%~}~%"
+msgstr[1] "A következő csomagok lesznek frissítve:~%~{~a~%~}~%"
+
+#: guix/ui.scm:441
+#, scheme-format
+msgid "The following package would be installed:~%~{~a~%~}~%"
+msgid_plural "The following packages would be installed:~%~{~a~%~}~%"
+msgstr[0] "A következő csomagot kellene telepíteni:~%~{~a~%~}~%"
+msgstr[1] "A következő csomagokat kellene telepíteni:~%~{~a~%~}~%"
+
+#: guix/ui.scm:446
+#, scheme-format
+msgid "The following package will be installed:~%~{~a~%~}~%"
+msgid_plural "The following packages will be installed:~%~{~a~%~}~%"
+msgstr[0] "A következő csomag lesz telepítve:~%~{~a~%~}~%"
+msgstr[1] "A következő csomagok lesznek telepítve:~%~{~a~%~}~%"
-#: guix/ui.scm:352
+#: guix/ui.scm:463
msgid "<unknown location>"
msgstr "<ismeretlen hely>"
-#: guix/ui.scm:380
+#: guix/ui.scm:489
#, scheme-format
msgid "failed to create configuration directory `~a': ~a~%"
msgstr "a(z) „~a” beállítási könyvtár létrehozása sikertelen: ~a~%"
-#: guix/ui.scm:475 guix/ui.scm:489
+#: guix/ui.scm:589 guix/ui.scm:603
msgid "unknown"
msgstr "ismeretlen"
-#: guix/ui.scm:598
+#: guix/ui.scm:712
#, scheme-format
msgid "invalid argument: ~a~%"
msgstr "érvénytelen argumentum: ~a~%"
-#: guix/ui.scm:603
+#: guix/ui.scm:717
#, scheme-format
msgid "Try `guix --help' for more information.~%"
msgstr "További információkért próbálja a „guix --help” parancsot.~%"
-#: guix/ui.scm:633
+#: guix/ui.scm:747
msgid ""
"Usage: guix COMMAND ARGS...\n"
"Run COMMAND with ARGS.\n"
@@ -1160,21 +1312,21 @@ msgstr ""
"Használat: guix PARANCS ARGUMENTUMOK…\n"
"A PARANCS futtatása ARGUMENTUMOKKAL.\n"
-#: guix/ui.scm:636
+#: guix/ui.scm:750
msgid "COMMAND must be one of the sub-commands listed below:\n"
msgstr "A PARANCSNAK a lenti listában lévő alparancsok egyikének kell lennie:\n"
-#: guix/ui.scm:656
+#: guix/ui.scm:770
#, scheme-format
msgid "guix: ~a: command not found~%"
msgstr "guix: ~a: a parancs nem található~%"
-#: guix/ui.scm:674
+#: guix/ui.scm:788
#, scheme-format
msgid "guix: missing command name~%"
msgstr "guix: hiányzó parancsnév~%"
-#: guix/ui.scm:682
+#: guix/ui.scm:796
#, scheme-format
msgid "guix: unrecognized option '~a'~%"
msgstr "guix: ismeretlen kapcsoló: „~a”~%"
@@ -1198,80 +1350,71 @@ msgstr "átirányítás követése ide: „~a”…~%"
msgid "download failed"
msgstr "letöltés sikertelen"
-#: guix/nar.scm:134
-msgid "unexpected executable file marker"
-msgstr "nem várt végrehajtható fájljelölő"
-
-#: guix/nar.scm:141
-msgid "unsupported nar file type"
-msgstr "nem támogatott nar fájltípus"
-
-#: guix/nar.scm:209
-msgid "unsupported file type"
-msgstr "nem támogatott fájltípus"
-
-#: guix/nar.scm:219
-msgid "invalid nar signature"
-msgstr "érvénytelen nar aláírás"
-
-#: guix/nar.scm:230
-msgid "invalid nar end-of-file marker"
-msgstr "érvénytelen nar fájlvége jelölő"
-
-#: guix/nar.scm:244
-msgid "invalid symlink tokens"
-msgstr "érvénytelen szimbolikus link jelsorok"
-
-#: guix/nar.scm:263
-msgid "unexpected directory entry termination"
-msgstr "nem várt könyvtárbejegyzés végződés"
-
-#: guix/nar.scm:272
-msgid "unexpected directory inter-entry marker"
-msgstr "nem várt könyvtár belső-bejegyzés jelölő"
-
-#: guix/nar.scm:277
-msgid "unsupported nar entry type"
-msgstr "nem támogatott nar bejegyzéstípus"
-
-#: guix/nar.scm:376
+#: guix/nar.scm:155
msgid "signature is not a valid s-expression"
msgstr "az aláírás nem érvényes s-kifejezés"
-#: guix/nar.scm:385
+#: guix/nar.scm:164
msgid "invalid signature"
msgstr "érvénytelen aláírás"
-#: guix/nar.scm:389
+#: guix/nar.scm:168
msgid "invalid hash"
msgstr "érvénytelen hash"
-#: guix/nar.scm:397
+#: guix/nar.scm:176
msgid "unauthorized public key"
msgstr "jogosulatlan nyilvános kulcs"
-#: guix/nar.scm:402
+#: guix/nar.scm:181
msgid "corrupt signature data"
msgstr "sérült aláírás adatok"
-#: guix/nar.scm:422
+#: guix/nar.scm:201
msgid "corrupt file set archive"
msgstr "sérült fájlhalmaz archívum"
-#: guix/nar.scm:432
+#: guix/nar.scm:211
#, scheme-format
msgid "importing file or directory '~a'...~%"
msgstr "fájl vagy könyvtár importálása: „~a”…~%"
-#: guix/nar.scm:441
+#: guix/nar.scm:220
#, scheme-format
msgid "found valid signature for '~a'~%"
msgstr "érvényes aláírás található ehhez: „~a”~%"
-#: guix/nar.scm:448
+#: guix/nar.scm:227
msgid "imported file lacks a signature"
msgstr "az importált fájl egy aláírást hiányol"
-#: guix/nar.scm:487
+#: guix/nar.scm:266
msgid "invalid inter-file archive mark"
msgstr "érvénytelen belső-fájl archívum jelölő"
+
+#~ msgid "unexpected executable file marker"
+#~ msgstr "nem várt végrehajtható fájljelölő"
+
+#~ msgid "unsupported nar file type"
+#~ msgstr "nem támogatott nar fájltípus"
+
+#~ msgid "unsupported file type"
+#~ msgstr "nem támogatott fájltípus"
+
+#~ msgid "invalid nar signature"
+#~ msgstr "érvénytelen nar aláírás"
+
+#~ msgid "invalid nar end-of-file marker"
+#~ msgstr "érvénytelen nar fájlvége jelölő"
+
+#~ msgid "invalid symlink tokens"
+#~ msgstr "érvénytelen szimbolikus link jelsorok"
+
+#~ msgid "unexpected directory entry termination"
+#~ msgstr "nem várt könyvtárbejegyzés végződés"
+
+#~ msgid "unexpected directory inter-entry marker"
+#~ msgstr "nem várt könyvtár belső-bejegyzés jelölő"
+
+#~ msgid "unsupported nar entry type"
+#~ msgstr "nem támogatott nar bejegyzéstípus"
diff --git a/po/packages/LINGUAS b/po/packages/LINGUAS
index 74504b6f07..6ba2fe22cc 100644
--- a/po/packages/LINGUAS
+++ b/po/packages/LINGUAS
@@ -4,6 +4,7 @@ de
en@boldquot
en@quot
eo
+hu
pt_BR
sr
vi
diff --git a/po/packages/hu.po b/po/packages/hu.po
new file mode 100644
index 0000000000..f03c0af959
--- /dev/null
+++ b/po/packages/hu.po
@@ -0,0 +1,1262 @@
+# Hungarian translation for guix-packages.
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This file is distributed under the same license as the guix package.
+#
+# Balázs Úr <urbalazs@gmail.com>, 2014.
+msgid ""
+msgstr ""
+"Project-Id-Version: guix-packages 0.8\n"
+"Report-Msgid-Bugs-To: ludo@gnu.org\n"
+"POT-Creation-Date: 2014-11-10 15:37+0100\n"
+"PO-Revision-Date: 2014-12-03 21:17+0100\n"
+"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
+"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
+"Language: hu\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Lokalize 1.5\n"
+
+#: gnu/packages/aspell.scm:42
+msgid "Spell checker"
+msgstr "Helyesírás-ellenőrző"
+
+#: gnu/packages/aspell.scm:44
+msgid ""
+"Aspell is a spell-checker which can be used either as a library or as\n"
+"a standalone program. Notable features of Aspell include its full support of\n"
+"documents written in the UTF-8 encoding and its ability to use multiple\n"
+"dictionaries, including personal ones."
+msgstr ""
+
+#: gnu/packages/aspell.scm:84
+msgid "This package provides a dictionary for the GNU Aspell spell checker."
+msgstr "Ez a csomag egy szótárat biztosít a GNU Aspell helyesírás-ellenőrzőhöz."
+
+#: gnu/packages/backup.scm:87
+msgid "Encrypted backup using rsync algorithm"
+msgstr "Titkosított biztonsági mentés az rsync algoritmus használatával"
+
+#: gnu/packages/backup.scm:89
+msgid ""
+"Duplicity backs up directories by producing encrypted tar-format volumes\n"
+"and uploading them to a remote or local file server. Because duplicity uses\n"
+"librsync, the incremental archives are space efficient and only record the\n"
+"parts of files that have changed since the last backup. Because duplicity\n"
+"uses GnuPG to encrypt and/or sign these archives, they will be safe from\n"
+"spying and/or modification by the server."
+msgstr ""
+
+#: gnu/packages/backup.scm:123
+msgid "Simple incremental backup tool"
+msgstr "Egyszerű növekményes biztonsági mentés eszköz"
+
+#: gnu/packages/backup.scm:125
+msgid ""
+"Hdup2 is a backup utilty, its aim is to make backup really simple. The\n"
+"backup scheduling is done by means of a cron job. It supports an\n"
+"include/exclude mechanism, remote backups, encrypted backups and split\n"
+"backups (called chunks) to allow easy burning to CD/DVD."
+msgstr ""
+
+#: gnu/packages/backup.scm:178
+msgid "Multi-format archive and compression library"
+msgstr ""
+
+#: gnu/packages/backup.scm:180
+msgid ""
+"Libarchive provides a flexible interface for reading and writing\n"
+"archives in various formats such as tar and cpio. Libarchive also supports\n"
+"reading and writing archives compressed using various compression filters such\n"
+"as gzip and bzip2. The library is inherently stream-oriented; readers\n"
+"serially iterate through the archive, writers serially add things to the\n"
+"archive. In particular, note that there is currently no built-in support for\n"
+"random access nor for in-place modification."
+msgstr ""
+
+#: gnu/packages/backup.scm:243
+msgid "Provide a list of files to backup"
+msgstr ""
+
+#: gnu/packages/backup.scm:245
+msgid ""
+"Rdup is a utility inspired by rsync and the plan9 way of doing backups.\n"
+"Rdup itself does not backup anything, it only print a list of absolute\n"
+"filenames to standard output. Auxiliary scripts are needed that act on this\n"
+"list and implement the backup strategy."
+msgstr ""
+
+#: gnu/packages/backup.scm:275
+msgid "Tar-compatible archiver"
+msgstr "Tar-kompatibilis archiváló"
+
+#: gnu/packages/backup.scm:277
+msgid ""
+"Btar is a tar-compatible archiver which allows arbitrary compression and\n"
+"ciphering, redundancy, differential backup, indexed extraction, multicore\n"
+"compression, input and output serialisation, and tolerance to partial archive\n"
+"errors."
+msgstr ""
+
+#: gnu/packages/backup.scm:305
+msgid "Local/remote mirroring+incremental backup"
+msgstr "Helyi/távoli tükröző + növekményes biztonsági mentés"
+
+#: gnu/packages/backup.scm:307
+msgid ""
+"Rdiff-backup backs up one directory to another, possibly over a network.\n"
+"The target directory ends up a copy of the source directory, but extra reverse\n"
+"diffs are stored in a special subdirectory of that target directory, so you\n"
+"can still recover files lost some time ago. The idea is to combine the best\n"
+"features of a mirror and an incremental backup. Rdiff-backup also preserves\n"
+"subdirectories, hard links, dev files, permissions, uid/gid ownership,\n"
+"modification times, extended attributes, acls, and resource forks. Also,\n"
+"rdiff-backup can operate in a bandwidth efficient manner over a pipe, like\n"
+"rsync. Thus you can use rdiff-backup and ssh to securely back a hard drive up\n"
+"to a remote location, and only the differences will be transmitted. Finally,\n"
+"rdiff-backup is easy to use and settings have sensical defaults."
+msgstr ""
+
+#: gnu/packages/base.scm:56
+msgid "Hello, GNU world: An example GNU package"
+msgstr "Helló, GNU világ: egy példa GNU csomag"
+
+#: gnu/packages/base.scm:58
+msgid ""
+"GNU Hello prints the message \"Hello, world!\" and then exits. It\n"
+"serves as an example of standard GNU coding practices. As such, it supports\n"
+"command-line arguments, multiple languages, and so on."
+msgstr ""
+"A GNU Helló a „Helló, világ!” üzenetet írja ki, majd kilép. Ez a szabványos\n"
+"GNU kódolási gyakorlatok példájaként szolgál. Mint olyan, támogatja a\n"
+"parancssori argumentumokat, több nyelvet, és így tovább."
+
+#: gnu/packages/base.scm:76
+msgid "Print lines matching a pattern"
+msgstr "Egy mintára illeszkedő sorok kiírása"
+
+#: gnu/packages/base.scm:78
+msgid ""
+"grep is a tool for finding text inside files. Text is found by\n"
+"matching a pattern provided by the user in one or many files. The pattern\n"
+"may be provided as a basic or extended regular expression, or as fixed\n"
+"strings. By default, the matching text is simply printed to the screen,\n"
+"however the output can be greatly customized to include, for example, line\n"
+"numbers. GNU grep offers many extensions over the standard utility,\n"
+"including, for example, recursive directory searching."
+msgstr ""
+"A grep a fájlokon belüli szöveg keresésére szolgáló eszköz. A szöveg a\n"
+"felhasználó által megadott mintákra illeszkedve található meg egy vagy több\n"
+"fájlban. A minta megadható alap vagy kiterjesztett reguláris kifejezésként,\n"
+"illetve rögzített szövegként. Alapértelmezetten az illeszkedő szöveg\n"
+"egyszerűen kiírásra kerül a képernyőre, viszont a kimenet nagymértékben\n"
+"testre szabható a beágyazáshoz, például sorok számozásához. A GNU grep számos\n"
+"kiterjesztést nyújt a szabványos segédprogramokon túl, beleértve például a\n"
+"rekurzív könyvtárkeresést."
+
+#: gnu/packages/base.scm:100
+msgid "Stream editor"
+msgstr "Folyamszerkesztő"
+
+#: gnu/packages/base.scm:115
+msgid ""
+"Sed is a non-interactive, text stream editor. It receives a text\n"
+"input from a file or from standard input and it then applies a series of text\n"
+"editing commands to the stream and prints its output to standard output. It\n"
+"is often used for substituting text patterns in a stream. The GNU\n"
+"implementation offers several extensions over the standard utility."
+msgstr ""
+"A sed egy nem interaktív szövegfolyam-szerkesztő. Szöveges bemenetet fogad\n"
+"egy fájlból vagy a szabványos bemenetről, majd egy sor szövegszerkesztési\n"
+"parancsot alkalmaz a folyamon, és kiírja a kimenetét a szabványos kimenetre.\n"
+"Gyakran használják szövegminták helyettesítésére egy folyamban. A GNU\n"
+"megvalósítása számos kiterjesztést nyújt a szabványos segédprogramokon túl."
+
+#: gnu/packages/base.scm:135
+msgid "Managing tar archives"
+msgstr "Tar archívumok kezelése"
+
+#: gnu/packages/base.scm:137
+msgid ""
+"Tar provides the ability to create tar archives, as well as the\n"
+"ability to extract, update or list files in an existing archive. It is\n"
+"useful for combining many files into one larger file, while maintaining\n"
+"directory structure and file information such as permissions and\n"
+"creation/modification dates. GNU tar offers many extensions over the\n"
+"standard utility."
+msgstr ""
+
+#: gnu/packages/base.scm:161
+msgid "Apply differences to originals, with optional backups"
+msgstr ""
+
+#: gnu/packages/base.scm:163
+msgid ""
+"Patch is a program that applies changes to files based on differences\n"
+"laid out as by the program \"diff\". The changes may be applied to one or more\n"
+"files depending on the contents of the diff file. It accepts several\n"
+"different diff formats. It may also be used to revert previously applied\n"
+"differences."
+msgstr ""
+
+#: gnu/packages/base.scm:183
+msgid "Comparing and merging files"
+msgstr ""
+
+#: gnu/packages/base.scm:185
+msgid ""
+"GNU Diffutils is a package containing tools for finding the\n"
+"differences between files. The \"diff\" command is used to show how two files\n"
+"differ, while \"cmp\" shows the offsets and line numbers where they differ. \n"
+"\"diff3\" allows you to compare three files. Finally, \"sdiff\" offers an\n"
+"interactive means to merge two files."
+msgstr ""
+
+#: gnu/packages/base.scm:212
+msgid "Operating on files matching given criteria"
+msgstr ""
+
+#: gnu/packages/base.scm:214
+msgid ""
+"Findutils supplies the basic file directory searching utilities of the\n"
+"GNU system. It consists of two primary searching utilities: \"find\"\n"
+"recursively searches for files in a directory according to given criteria and\n"
+"\"locate\" lists files in a database that match a query. Two auxiliary tools\n"
+"are included: \"updatedb\" updates the file name database and \"xargs\" may be\n"
+"used to apply commands with arbitrarily long arguments."
+msgstr ""
+
+#: gnu/packages/base.scm:264
+msgid "Core GNU utilities (file, text, shell)"
+msgstr ""
+
+#: gnu/packages/base.scm:266
+msgid ""
+"GNU Coreutils includes all of the basic command-line tools that are\n"
+"expected in a POSIX system. These provide the basic file, shell and text\n"
+"manipulation functions of the GNU system. Most of these tools offer extended\n"
+"functionality beyond that which is outlined in the POSIX standard."
+msgstr ""
+
+#: gnu/packages/base.scm:300
+msgid "Remake files automatically"
+msgstr ""
+
+#: gnu/packages/base.scm:302
+msgid ""
+"Make is a program that is used to control the production of\n"
+"executables or other files from their source files. The process is\n"
+"controlled from a Makefile, in which the developer specifies how each file is\n"
+"generated from its source. It has powerful dependency resolution and the\n"
+"ability to determine when files have to be regenerated after their sources\n"
+"change. GNU make offers many powerful extensions over the standard utility."
+msgstr ""
+
+#: gnu/packages/base.scm:347
+msgid "Binary utilities: bfd gas gprof ld"
+msgstr ""
+
+#: gnu/packages/base.scm:349
+msgid ""
+"GNU Binutils is a collection of tools for working with binary files.\n"
+"Perhaps the most notable are \"ld\", a linker, and \"as\", an assembler.\n"
+"Other tools include programs to display binary profiling information, list\n"
+"the strings in a binary file, and utilities for working with archives. The\n"
+"\"bfd\" library for working with executable and object formats is also\n"
+"included."
+msgstr ""
+
+#: gnu/packages/base.scm:491
+msgid "The GNU C Library"
+msgstr ""
+
+#: gnu/packages/base.scm:493
+msgid ""
+"Any Unix-like operating system needs a C library: the library which\n"
+"defines the \"system calls\" and other basic facilities such as open, malloc,\n"
+"printf, exit...\n"
+"\n"
+"The GNU C library is used as the C library in the GNU system and most systems\n"
+"with the Linux kernel."
+msgstr ""
+
+#: gnu/packages/base.scm:562
+msgid "Database of current and historical time zones"
+msgstr ""
+
+#: gnu/packages/base.scm:563
+msgid ""
+"The Time Zone Database (often called tz or zoneinfo)\n"
+"contains code and data that represent the history of local time for many\n"
+"representative locations around the globe. It is updated periodically to\n"
+"reflect changes made by political bodies to time zone boundaries, UTC offsets,\n"
+"and daylight-saving rules."
+msgstr ""
+
+#: gnu/packages/databases.scm:83
+msgid "Berkeley database"
+msgstr ""
+
+#: gnu/packages/databases.scm:85
+msgid ""
+"Berkeley DB is an embeddable database allowing developers the choice of\n"
+"SQL, Key/Value, XML/XQuery or Java Object storage for their data model."
+msgstr ""
+
+#: gnu/packages/databases.scm:143
+msgid "Fast, easy to use, and popular database"
+msgstr ""
+
+#: gnu/packages/databases.scm:145
+msgid ""
+"MySQL is a fast, reliable, and easy to use relational database\n"
+"management system that supports the standardized Structured Query\n"
+"Language."
+msgstr ""
+
+#: gnu/packages/databases.scm:166
+msgid "Powerful object-relational database system"
+msgstr ""
+
+#: gnu/packages/databases.scm:168
+msgid ""
+"PostgreSQL is a powerful object-relational database system. It is fully\n"
+"ACID compliant, has full support for foreign keys, joins, views, triggers, and\n"
+"stored procedures (in multiple languages). It includes most SQL:2008 data\n"
+"types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and\n"
+"TIMESTAMP. It also supports storage of binary large objects, including\n"
+"pictures, sounds, or video."
+msgstr ""
+
+#: gnu/packages/databases.scm:203
+msgid "Manipulate plain text files as databases"
+msgstr ""
+
+#: gnu/packages/databases.scm:205
+msgid ""
+"GNU Recutils is a set of tools and libraries for creating and\n"
+"manipulating text-based, human-editable databases. Despite being text-based,\n"
+"databases created with Recutils carry all of the expected features such as\n"
+"unique fields, primary keys, time stamps and more. Many different field\n"
+"types are supported, as is encryption."
+msgstr ""
+
+#: gnu/packages/databases.scm:243
+msgid "The SQLite database management system"
+msgstr ""
+
+#: gnu/packages/databases.scm:245
+msgid ""
+"SQLite is a software library that implements a self-contained, serverless,\n"
+"zero-configuration, transactional SQL database engine. SQLite is the most\n"
+"widely deployed SQL database engine in the world. The source code for SQLite\n"
+"is in the public domain."
+msgstr ""
+
+#: gnu/packages/databases.scm:280
+msgid "Trivial database"
+msgstr ""
+
+#: gnu/packages/databases.scm:282
+msgid ""
+"TDB is a Trivial Database. In concept, it is very much like GDBM,\n"
+"and BSD's DB except that it allows multiple simultaneous writers and uses\n"
+"locking internally to keep writers from trampling on each other. TDB is also\n"
+"extremely small."
+msgstr ""
+
+#: gnu/packages/databases.scm:301
+msgid "Database independent interface for Perl"
+msgstr ""
+
+#: gnu/packages/databases.scm:302
+msgid "This package provides an database interface for Perl."
+msgstr ""
+
+#: gnu/packages/databases.scm:321
+msgid "SQlite interface for Perl"
+msgstr ""
+
+#: gnu/packages/databases.scm:322
+msgid ""
+"DBD::SQLite is a Perl DBI driver for SQLite, that includes\n"
+"the entire thing in the distribution. So in order to get a fast transaction\n"
+"capable RDBMS working for your Perl project you simply have to install this\n"
+"module, and nothing else."
+msgstr ""
+
+#: gnu/packages/databases.scm:342
+msgid "Data source abstraction library"
+msgstr ""
+
+#: gnu/packages/databases.scm:343
+msgid ""
+"Unixodbc is a library providing an API with which to access\n"
+"data sources. Data sources include SQL Servers and any software with an ODBC\n"
+"Driver."
+msgstr ""
+
+#: gnu/packages/gcc.scm:254
+msgid "GNU Compiler Collection"
+msgstr ""
+
+#: gnu/packages/gcc.scm:256
+msgid ""
+"GCC is the GNU Compiler Collection. It provides compiler front-ends\n"
+"for several languages, including C, C++, Objective-C, Fortran, Java, Ada, and\n"
+"Go. It also includes runtime support libraries for these languages."
+msgstr ""
+
+#: gnu/packages/gcc.scm:340
+msgid "Manipulating sets and relations of integer points bounded by linear constraints"
+msgstr ""
+
+#: gnu/packages/gcc.scm:343
+msgid ""
+"isl is a library for manipulating sets and relations of integer points\n"
+"bounded by linear constraints. Supported operations on sets include\n"
+"intersection, union, set difference, emptiness check, convex hull, (integer)\n"
+"affine hull, integer projection, computing the lexicographic minimum using\n"
+"parametric integer programming, coalescing and parametric vertex\n"
+"enumeration. It also includes an ILP solver based on generalized basis\n"
+"reduction, transitive closures on maps (which may encode infinite graphs),\n"
+"dependence analysis and bounds on piecewise step-polynomials."
+msgstr ""
+
+#: gnu/packages/gcc.scm:375
+msgid "Library to generate code for scanning Z-polyhedra"
+msgstr ""
+
+#: gnu/packages/gcc.scm:377
+msgid ""
+"CLooG is a free software library to generate code for scanning\n"
+"Z-polyhedra. That is, it finds a code (e.g., in C, FORTRAN...) that\n"
+"reaches each integral point of one or more parameterized polyhedra.\n"
+"CLooG has been originally written to solve the code generation problem\n"
+"for optimizing compilers based on the polytope model. Nevertheless it\n"
+"is used now in various area e.g., to build control automata for\n"
+"high-level synthesis or to find the best polynomial approximation of a\n"
+"function. CLooG may help in any situation where scanning polyhedra\n"
+"matters. While the user has full control on generated code quality,\n"
+"CLooG is designed to avoid control overhead and to produce a very\n"
+"effective code."
+msgstr ""
+
+#: gnu/packages/gettext.scm:74
+msgid "Tools and documentation for translation"
+msgstr ""
+
+#: gnu/packages/gettext.scm:76
+msgid ""
+"GNU Gettext is a package providing a framework for translating the\n"
+"textual output of programs into multiple languages. It provides translators\n"
+"with the means to create message catalogs, as well as an Emacs mode to work\n"
+"with them, and a runtime library to load translated messages from the\n"
+"catalogs. Nearly all GNU packages use Gettext."
+msgstr ""
+
+#: gnu/packages/guile.scm:100 gnu/packages/guile.scm:163
+msgid "Scheme implementation intended especially for extensions"
+msgstr ""
+
+#: gnu/packages/guile.scm:102 gnu/packages/guile.scm:165
+msgid ""
+"Guile is the GNU Ubiquitous Intelligent Language for Extensions, the\n"
+"official extension language of the GNU system. It is an implementation of\n"
+"the Scheme language which can be easily embedded in other applications to\n"
+"provide a convenient means of extending the functionality of the application\n"
+"without requiring the source code to be rewritten."
+msgstr ""
+
+#: gnu/packages/guile.scm:208
+msgid "Framework for building readers for GNU Guile"
+msgstr ""
+
+#: gnu/packages/guile.scm:210
+msgid ""
+"Guile-Reader is a simple framework for building readers for GNU Guile.\n"
+"\n"
+"The idea is to make it easy to build procedures that extend Guile’s read\n"
+"procedure. Readers supporting various syntax variants can easily be written,\n"
+"possibly by re-using existing “token readers” of a standard Scheme\n"
+"readers. For example, it is used to implement Skribilo’s R5RS-derived\n"
+"document syntax.\n"
+"\n"
+"Guile-Reader’s approach is similar to Common Lisp’s “read table”, but\n"
+"hopefully more powerful and flexible (for instance, one may instantiate as\n"
+"many readers as needed)."
+msgstr ""
+
+#: gnu/packages/guile.scm:263
+msgid "Guile bindings to ncurses"
+msgstr ""
+
+#: gnu/packages/guile.scm:265
+msgid ""
+"guile-ncurses provides Guile language bindings for the ncurses\n"
+"library."
+msgstr ""
+
+#: gnu/packages/guile.scm:285
+msgid "Run jobs at scheduled times"
+msgstr ""
+
+#: gnu/packages/guile.scm:287
+msgid ""
+"GNU Mcron is a complete replacement for Vixie cron. It is used to run\n"
+"tasks on a schedule, such as every hour or every Monday. Mcron is written in\n"
+"Guile, so its configuration can be written in Scheme; the original cron\n"
+"format is also supported."
+msgstr ""
+
+#: gnu/packages/guile.scm:315
+msgid "Collection of useful Guile Scheme modules"
+msgstr ""
+
+#: gnu/packages/guile.scm:317
+msgid ""
+"Guile-Lib is intended as an accumulation place for pure-scheme Guile\n"
+"modules, allowing for people to cooperate integrating their generic Guile\n"
+"modules into a coherent library. Think \"a down-scaled, limited-scope CPAN\n"
+"for Guile\"."
+msgstr ""
+
+#: gnu/packages/guile.scm:348
+msgid "JSON module for Guile"
+msgstr ""
+
+#: gnu/packages/guile.scm:350
+msgid ""
+"Guile-json supports parsing and building JSON documents according to the\n"
+"http:://json.org specification. These are the main features:\n"
+"- Strictly complies to http://json.org specification.\n"
+"- Build JSON documents programmatically via macros.\n"
+"- Unicode support for strings.\n"
+"- Allows JSON pretty printing."
+msgstr ""
+
+#: gnu/packages/guile.scm:381
+msgid "Create charts and graphs in Guile"
+msgstr ""
+
+#: gnu/packages/guile.scm:383
+msgid ""
+"Guile-Charting is a Guile Scheme library to create bar charts and graphs\n"
+"using the Cairo drawing library."
+msgstr ""
+
+#: gnu/packages/inkscape.scm:78
+msgid "Vector graphics editor"
+msgstr ""
+
+#: gnu/packages/inkscape.scm:79
+msgid ""
+"Inkscape is a vector graphics editor. What sets Inkscape\n"
+"apart is its use of Scalable Vector Graphics (SVG), an XML-based W3C standard,\n"
+"as the native format."
+msgstr ""
+
+#: gnu/packages/linux.scm:131
+msgid "GNU Linux-Libre kernel headers"
+msgstr ""
+
+#: gnu/packages/linux.scm:132
+msgid "Headers of the Linux-Libre kernel."
+msgstr ""
+
+#: gnu/packages/linux.scm:163
+msgid "Tools for loading and managing Linux kernel modules"
+msgstr ""
+
+#: gnu/packages/linux.scm:165
+msgid ""
+"Tools for loading and managing Linux kernel modules, such as `modprobe',\n"
+"`insmod', `lsmod', and more."
+msgstr ""
+
+#: gnu/packages/linux.scm:296
+msgid "100% free redistribution of a cleaned Linux kernel"
+msgstr ""
+
+#: gnu/packages/linux.scm:298
+msgid ""
+"GNU Linux-Libre is a free (as in freedom) variant of the Linux kernel.\n"
+"It has been modified to remove all non-free binary blobs."
+msgstr ""
+
+#: gnu/packages/linux.scm:341
+msgid "Pluggable authentication modules for Linux"
+msgstr ""
+
+#: gnu/packages/linux.scm:343
+msgid ""
+"A *Free* project to implement OSF's RFC 86.0.\n"
+"Pluggable authentication modules are small shared object files that can\n"
+"be used through the PAM API to perform tasks, like authenticating a user\n"
+"at login. Local and dynamic reconfiguration are its key features"
+msgstr ""
+
+#: gnu/packages/linux.scm:370
+msgid "Small utilities that use the proc filesystem"
+msgstr ""
+
+#: gnu/packages/linux.scm:372
+msgid ""
+"This PSmisc package is a set of some small useful utilities that\n"
+"use the proc filesystem. We're not about changing the world, but\n"
+"providing the system administrator with some help in common tasks."
+msgstr ""
+
+#: gnu/packages/linux.scm:416
+msgid "Collection of utilities for the Linux kernel"
+msgstr ""
+
+#: gnu/packages/linux.scm:418
+msgid "Util-linux is a random collection of utilities for the Linux kernel."
+msgstr ""
+
+#: gnu/packages/linux.scm:472
+msgid "Utilities that give information about processes"
+msgstr ""
+
+#: gnu/packages/linux.scm:474
+msgid ""
+"Procps is the package that has a bunch of small useful utilities\n"
+"that give information about processes using the Linux /proc file system.\n"
+"The package includes the programs ps, top, vmstat, w, kill, free,\n"
+"slabtop, and skill."
+msgstr ""
+
+#: gnu/packages/linux.scm:499
+msgid "Tools for working with USB devices, such as lsusb"
+msgstr ""
+
+#: gnu/packages/linux.scm:501
+msgid "Tools for working with USB devices, such as lsusb."
+msgstr ""
+
+#: gnu/packages/linux.scm:542
+msgid "Creating and checking ext2/ext3/ext4 file systems"
+msgstr ""
+
+#: gnu/packages/linux.scm:544
+msgid "This package provides tools for manipulating ext2/ext3/ext4 file systems."
+msgstr ""
+
+#: gnu/packages/linux.scm:575
+msgid "Statically-linked fsck.* commands from e2fsprogs"
+msgstr ""
+
+#: gnu/packages/linux.scm:577
+msgid ""
+"This package provides statically-linked command of fsck.ext[234] taken\n"
+"from the e2fsprogs package. It is meant to be used in initrds."
+msgstr ""
+
+#: gnu/packages/linux.scm:596
+msgid "System call tracer for Linux"
+msgstr ""
+
+#: gnu/packages/linux.scm:598
+msgid ""
+"strace is a system call tracer, i.e. a debugging tool which prints out a\n"
+"trace of all the system calls made by a another process/program."
+msgstr ""
+
+#: gnu/packages/linux.scm:617
+msgid "The Advanced Linux Sound Architecture libraries"
+msgstr ""
+
+#: gnu/packages/linux.scm:619 gnu/packages/linux.scm:661
+msgid ""
+"The Advanced Linux Sound Architecture (ALSA) provides audio and\n"
+"MIDI functionality to the Linux-based operating system."
+msgstr ""
+
+#: gnu/packages/linux.scm:659
+msgid "Utilities for the Advanced Linux Sound Architecture (ALSA)"
+msgstr ""
+
+#: gnu/packages/linux.scm:683
+msgid "Program to configure the Linux IP packet filtering rules"
+msgstr ""
+
+#: gnu/packages/linux.scm:685
+msgid ""
+"iptables is the userspace command line program used to configure the\n"
+"Linux 2.4.x and later IPv4 packet filtering ruleset. It is targeted towards\n"
+"system administrators. Since Network Address Translation is also configured\n"
+"from the packet filter ruleset, iptables is used for this, too. The iptables\n"
+"package also includes ip6tables. ip6tables is used for configuring the IPv6\n"
+"packet filter."
+msgstr ""
+
+#: gnu/packages/linux.scm:733
+msgid "Utilities for controlling TCP/IP networking and traffic in Linux"
+msgstr ""
+
+#: gnu/packages/linux.scm:735
+msgid ""
+"Iproute2 is a collection of utilities for controlling TCP/IP\n"
+"networking and traffic with the Linux kernel.\n"
+"\n"
+"Most network configuration manuals still refer to ifconfig and route as the\n"
+"primary network configuration tools, but ifconfig is known to behave\n"
+"inadequately in modern network environments. They should be deprecated, but\n"
+"most distros still include them. Most network configuration systems make use\n"
+"of ifconfig and thus provide a limited feature set. The /etc/net project aims\n"
+"to support most modern network technologies, as it doesn't use ifconfig and\n"
+"allows a system administrator to make use of all iproute2 features, including\n"
+"traffic control.\n"
+"\n"
+"iproute2 is usually shipped in a package called iproute or iproute2 and\n"
+"consists of several tools, of which the most important are ip and tc. ip\n"
+"controls IPv4 and IPv6 configuration and tc stands for traffic control. Both\n"
+"tools print detailed usage messages and are accompanied by a set of\n"
+"manpages."
+msgstr ""
+
+#: gnu/packages/linux.scm:827
+msgid "Tools for controlling the network subsystem in Linux"
+msgstr ""
+
+#: gnu/packages/linux.scm:829
+msgid ""
+"This package includes the important tools for controlling the network\n"
+"subsystem of the Linux kernel. This includes arp, hostname, ifconfig,\n"
+"netstat, rarp and route. Additionally, this package contains utilities\n"
+"relating to particular network hardware types (plipconfig, slattach) and\n"
+"advanced aspects of IP configuration (iptunnel, ipmaddr)."
+msgstr ""
+
+#: gnu/packages/linux.scm:862
+msgid "Library for working with POSIX capabilities"
+msgstr ""
+
+#: gnu/packages/linux.scm:864
+msgid ""
+"Libcap2 provides a programming interface to POSIX capabilities on\n"
+"Linux-based operating systems."
+msgstr ""
+
+#: gnu/packages/linux.scm:896
+msgid "Manipulate Ethernet bridges"
+msgstr ""
+
+#: gnu/packages/linux.scm:898
+msgid ""
+"Utilities for Linux's Ethernet bridging facilities. A bridge is a way\n"
+"to connect two Ethernet segments together in a protocol independent way.\n"
+"Packets are forwarded based on Ethernet address, rather than IP address (like\n"
+"a router). Since forwarding is done at Layer 2, all protocols can go\n"
+"transparently through a bridge."
+msgstr ""
+
+#: gnu/packages/linux.scm:920
+msgid "NetLink protocol library suite"
+msgstr ""
+
+#: gnu/packages/linux.scm:922
+msgid ""
+"The libnl suite is a collection of libraries providing APIs to netlink\n"
+"protocol based Linux kernel interfaces. Netlink is an IPC mechanism primarly\n"
+"between the kernel and user space processes. It was designed to be a more\n"
+"flexible successor to ioctl to provide mainly networking related kernel\n"
+"configuration and monitoring interfaces."
+msgstr ""
+
+#: gnu/packages/linux.scm:955
+msgid "Analyze power consumption on Intel-based laptops"
+msgstr ""
+
+#: gnu/packages/linux.scm:957
+msgid ""
+"PowerTOP is a Linux tool to diagnose issues with power consumption and\n"
+"power management. In addition to being a diagnostic tool, PowerTOP also has\n"
+"an interactive mode where the user can experiment various power management\n"
+"settings for cases where the operating system has not enabled these\n"
+"settings."
+msgstr ""
+
+#: gnu/packages/linux.scm:979
+msgid "Audio mixer for X and the console"
+msgstr ""
+
+#: gnu/packages/linux.scm:981
+msgid ""
+"Aumix adjusts an audio mixer from X, the console, a terminal,\n"
+"the command line or a script."
+msgstr ""
+
+#: gnu/packages/linux.scm:1005
+msgid "Displays the IO activity of running processes"
+msgstr ""
+
+#: gnu/packages/linux.scm:1007
+msgid ""
+"Iotop is a Python program with a top like user interface to show the\n"
+"processes currently causing I/O."
+msgstr ""
+
+#: gnu/packages/linux.scm:1058
+msgid "Support file systems implemented in user space"
+msgstr ""
+
+#: gnu/packages/linux.scm:1060
+msgid ""
+"As a consequence of its monolithic design, file system code for Linux\n"
+"normally goes into the kernel itself---which is not only a robustness issue,\n"
+"but also an impediment to system extensibility. FUSE, for \"file systems in\n"
+"user space\", is a kernel module and user-space library that tries to address\n"
+"part of this problem by allowing users to run file system implementations as\n"
+"user-space processes."
+msgstr ""
+
+#: gnu/packages/linux.scm:1085
+msgid "User-space union file system"
+msgstr ""
+
+#: gnu/packages/linux.scm:1087
+msgid ""
+"UnionFS-FUSE is a flexible union file system implementation in user\n"
+"space, using the FUSE library. Mounting a union file system allows you to\n"
+"\"aggregate\" the contents of several directories into a single mount point.\n"
+"UnionFS-FUSE additionally supports copy-on-write."
+msgstr ""
+
+#: gnu/packages/linux.scm:1112
+msgid "User-space union file system (statically linked)"
+msgstr ""
+
+#: gnu/packages/linux.scm:1154
+msgid "Mount remote file systems over SSH"
+msgstr ""
+
+#: gnu/packages/linux.scm:1156
+msgid ""
+"This is a file system client based on the SSH File Transfer Protocol.\n"
+"Since most SSH servers already support this protocol it is very easy to set\n"
+"up: on the server side there's nothing to do; on the client side mounting the\n"
+"file system is as easy as logging into the server with an SSH client."
+msgstr ""
+
+#: gnu/packages/linux.scm:1204
+msgid "Tools for non-uniform memory access (NUMA) machines"
+msgstr ""
+
+#: gnu/packages/linux.scm:1206
+msgid ""
+"NUMA stands for Non-Uniform Memory Access, in other words a system whose\n"
+"memory is not all in one place. The numactl program allows you to run your\n"
+"application program on specific CPU's and memory nodes. It does this by\n"
+"supplying a NUMA memory policy to the operating system before running your\n"
+"program.\n"
+"\n"
+"The package contains other commands, such as numademo, numastat and memhog.\n"
+"The numademo command provides a quick overview of NUMA performance on your\n"
+"system."
+msgstr ""
+
+#: gnu/packages/linux.scm:1269
+msgid "Linux keyboard utilities and keyboard maps"
+msgstr ""
+
+#: gnu/packages/linux.scm:1271
+msgid ""
+"This package contains keytable files and keyboard utilities compatible\n"
+"for systems using the Linux kernel. This includes commands such as\n"
+"'loadkeys', 'setfont', 'kbdinfo', and 'chvt'."
+msgstr ""
+
+#: gnu/packages/linux.scm:1290
+msgid "Monitor file accesses"
+msgstr ""
+
+#: gnu/packages/linux.scm:1292
+msgid ""
+"The inotify-tools packages provides a C library and command-line tools\n"
+"to use Linux' inotify mechanism, which allows file accesses to be monitored."
+msgstr ""
+
+#: gnu/packages/linux.scm:1330
+msgid "Kernel module tools"
+msgstr ""
+
+#: gnu/packages/linux.scm:1331
+msgid ""
+"Kmod is a set of tools to handle common tasks with Linux\n"
+"kernel modules like insert, remove, list, check properties, resolve\n"
+"dependencies and aliases.\n"
+"\n"
+"These tools are designed on top of libkmod, a library that is shipped with\n"
+"kmod. The aim is to be compatible with tools, configurations and indices\n"
+"from the module-init-tools project."
+msgstr ""
+
+#: gnu/packages/linux.scm:1380
+msgid "Userspace device management"
+msgstr ""
+
+#: gnu/packages/linux.scm:1381
+msgid ""
+"Udev is a daemon which dynamically creates and removes\n"
+"device nodes from /dev/, handles hotplug events and loads drivers at boot\n"
+"time."
+msgstr ""
+
+#: gnu/packages/linux.scm:1470
+msgid "Logical volume management for Linux"
+msgstr ""
+
+#: gnu/packages/linux.scm:1472
+msgid ""
+"LVM2 is the logical volume management tool set for Linux-based systems.\n"
+"This package includes the user-space libraries and tools, including the device\n"
+"mapper. Kernel components are part of Linux-libre."
+msgstr ""
+
+#: gnu/packages/linux.scm:1499
+msgid "Tools for manipulating Linux Wireless Extensions"
+msgstr ""
+
+#: gnu/packages/linux.scm:1500
+msgid ""
+"Wireless Tools are used to manipulate the Linux Wireless\n"
+"Extensions. The Wireless Extension is an interface allowing you to set\n"
+"Wireless LAN specific parameters and get the specific stats."
+msgstr ""
+
+#: gnu/packages/linux.scm:1572
+msgid "Utilities to read temperature/voltage/fan sensors"
+msgstr ""
+
+#: gnu/packages/linux.scm:1574
+msgid ""
+"Lm-sensors is a hardware health monitoring package for Linux. It allows\n"
+"you to access information from temperature, voltage, and fan speed sensors.\n"
+"It works with most newer systems."
+msgstr ""
+
+#: gnu/packages/linux.scm:1609
+msgid "Hardware health information viewer"
+msgstr ""
+
+#: gnu/packages/linux.scm:1611
+msgid ""
+"Xsensors reads data from the libsensors library regarding hardware\n"
+"health such as temperature, voltage and fan speed and displays the information\n"
+"in a digital read-out."
+msgstr ""
+
+#: gnu/packages/linux.scm:1654
+msgid "Linux profiling with performance counters"
+msgstr ""
+
+#: gnu/packages/linux.scm:1656
+msgid ""
+"perf is a tool suite for profiling using hardware performance counters,\n"
+"with support in the Linux kernel. perf can instrument CPU performance\n"
+"counters, tracepoints, kprobes, and uprobes (dynamic tracing). It is capable\n"
+"of lightweight profiling. This package contains the user-land tools and in\n"
+"particular the 'perf' command."
+msgstr ""
+
+#: gnu/packages/lout.scm:109
+msgid "Document layout system"
+msgstr ""
+
+#: gnu/packages/lout.scm:111
+msgid ""
+"The Lout document formatting system reads a high-level description of\n"
+"a document similar in style to LaTeX and produces a PostScript or plain text\n"
+"output file.\n"
+"\n"
+"Lout offers an unprecedented range of advanced features, including optimal\n"
+"paragraph and page breaking, automatic hyphenation, PostScript EPS file\n"
+"inclusion and generation, equation formatting, tables, diagrams, rotation and\n"
+"scaling, sorted indexes, bibliographic databases, running headers and\n"
+"odd-even pages, automatic cross referencing, multilingual documents including\n"
+"hyphenation (most European languages are supported), formatting of computer\n"
+"programs, and much more, all ready to use. Furthermore, Lout is easily\n"
+"extended with definitions which are very much easier to write than troff of\n"
+"TeX macros because Lout is a high-level, purely functional language, the\n"
+"outcome of an eight-year research project that went back to the\n"
+"beginning."
+msgstr ""
+
+#: gnu/packages/mpd.scm:62
+msgid "Music Player Daemon client library"
+msgstr ""
+
+#: gnu/packages/mpd.scm:63
+msgid ""
+"A stable, documented, asynchronous API library for\n"
+"interfacing MPD in the C, C++ & Objective C languages."
+msgstr ""
+
+#: gnu/packages/mpd.scm:121
+msgid "Music Player Daemon"
+msgstr ""
+
+#: gnu/packages/mpd.scm:122
+msgid ""
+"Music Player Daemon (MPD) is a flexible, powerful,\n"
+"server-side application for playing music. Through plugins and libraries it\n"
+"can play a variety of sound files while being controlled by its network\n"
+"protocol."
+msgstr ""
+
+#: gnu/packages/mpd.scm:147
+msgid "Curses Music Player Daemon client"
+msgstr ""
+
+#: gnu/packages/mpd.scm:148
+msgid ""
+"ncmpc is a fully featured MPD client, which runs in a\n"
+"terminal using ncurses."
+msgstr ""
+
+#: gnu/packages/mpd.scm:169
+msgid "Featureful ncurses based MPD client inspired by ncmpc"
+msgstr ""
+
+#: gnu/packages/mpd.scm:170
+msgid ""
+"Ncmpcpp is an mpd client with a UI very similar to ncmpc,\n"
+"but it provides new useful features such as support for regular expressions\n"
+"for library searches, extended song format, items filtering, the ability to\n"
+"sort playlists, and a local filesystem browser."
+msgstr ""
+
+#: gnu/packages/pdf.scm:79
+msgid "PDF rendering library"
+msgstr ""
+
+#: gnu/packages/pdf.scm:81
+msgid "Poppler is a PDF rendering library based on the xpdf-3.0 code base."
+msgstr ""
+
+#: gnu/packages/pdf.scm:124
+msgid "Viewer for PDF files based on the Motif toolkit"
+msgstr ""
+
+#: gnu/packages/pdf.scm:126
+msgid "Xpdf is a viewer for Portable Document Format (PDF) files"
+msgstr ""
+
+#: gnu/packages/pdf.scm:154
+msgid "Tools to work with the PDF file format"
+msgstr ""
+
+#: gnu/packages/pdf.scm:156
+msgid ""
+"PoDoFo is a C++ library and set of command-line tools to work with the\n"
+"PDF file format. It can parse PDF files and load them into memory, and makes\n"
+"it easy to modify them and write the changes to disk. It is primarily useful\n"
+"for applications that wish to do lower level manipulation of PDF, such as\n"
+"extracting content or merging files."
+msgstr ""
+
+#: gnu/packages/pdf.scm:217
+msgid "Lightweight PDF viewer and toolkit"
+msgstr ""
+
+#: gnu/packages/pdf.scm:219
+msgid ""
+"MuPDF is a C library that implements a PDF and XPS parsing and\n"
+"rendering engine. It is used primarily to render pages into bitmaps,\n"
+"but also provides support for other operations such as searching and\n"
+"listing the table of contents and hyperlinks.\n"
+"\n"
+"The library ships with a rudimentary X11 viewer, and a set of command\n"
+"line tools for batch rendering (pdfdraw), examining the file structure\n"
+"(pdfshow), and rewriting files (pdfclean)."
+msgstr ""
+
+#: gnu/packages/ratpoison.scm:60
+msgid "Simple mouse-free tiling window manager"
+msgstr ""
+
+#: gnu/packages/ratpoison.scm:62
+msgid ""
+"Ratpoison is a simple window manager with no fat library\n"
+"dependencies, no fancy graphics, no window decorations, and no\n"
+"rodent dependence. It is largely modelled after GNU Screen which\n"
+"has done wonders in the virtual terminal market.\n"
+"\n"
+"The screen can be split into non-overlapping frames. All windows\n"
+"are kept maximized inside their frames to take full advantage of\n"
+"your precious screen real estate.\n"
+"\n"
+"All interaction with the window manager is done through keystrokes.\n"
+"Ratpoison has a prefix map to minimize the key clobbering that\n"
+"cripples Emacs and other quality pieces of software."
+msgstr ""
+
+#: gnu/packages/scanner.scm:52
+msgid "Raster image scanner library and drivers"
+msgstr ""
+
+#: gnu/packages/scanner.scm:53
+msgid ""
+"SANE stands for \"Scanner Access Now Easy\" and is an API\n"
+"proving access to any raster image scanner hardware (flatbed scanner,\n"
+"hand-held scanner, video- and still-cameras, frame-grabbers, etc.). The\n"
+"package contains the library and drivers."
+msgstr ""
+
+#: gnu/packages/scheme.scm:126
+msgid "A Scheme implementation with integrated editor and debugger"
+msgstr ""
+
+#: gnu/packages/scheme.scm:128
+msgid ""
+"GNU/MIT Scheme is an implementation of the Scheme programming\n"
+"language. It provides an interpreter, a compiler and a debugger. It also\n"
+"features an integrated Emacs-like editor and a large runtime library."
+msgstr ""
+
+#: gnu/packages/scheme.scm:208
+msgid "Efficient Scheme compiler"
+msgstr ""
+
+#: gnu/packages/scheme.scm:210
+msgid ""
+"Bigloo is a Scheme implementation devoted to one goal: enabling\n"
+"Scheme based programming style where C(++) is usually\n"
+"required. Bigloo attempts to make Scheme practical by offering\n"
+"features usually presented by traditional programming languages\n"
+"but not offered by Scheme and functional programming. Bigloo\n"
+"compiles Scheme modules. It delivers small and fast stand alone\n"
+"binary executables. Bigloo enables full connections between\n"
+"Scheme and C programs and between Scheme and Java programs."
+msgstr ""
+
+#: gnu/packages/scheme.scm:281
+msgid "Multi-tier programming language for the Web 2.0"
+msgstr ""
+
+#: gnu/packages/scheme.scm:283
+msgid ""
+"HOP is a multi-tier programming language for the Web 2.0 and the\n"
+"so-called diffuse Web. It is designed for programming interactive web\n"
+"applications in many fields such as multimedia (web galleries, music players,\n"
+"...), ubiquitous and house automation (SmartPhones, personal appliance),\n"
+"mashups, office (web agendas, mail clients, ...), etc."
+msgstr ""
+
+#: gnu/packages/scheme.scm:323
+msgid "R5RS Scheme implementation that compiles native code via C"
+msgstr ""
+
+#: gnu/packages/scheme.scm:325
+msgid ""
+"CHICKEN is a compiler for the Scheme programming language. CHICKEN\n"
+"produces portable and efficient C, supports almost all of the R5RS Scheme\n"
+"language standard, and includes many enhancements and extensions."
+msgstr ""
+
+#: gnu/packages/scheme.scm:344
+msgid "Scheme implementation using a bytecode interpreter"
+msgstr ""
+
+#: gnu/packages/scheme.scm:346
+msgid ""
+"Scheme 48 is an implementation of Scheme based on a byte-code\n"
+"interpreter and is designed to be used as a testbed for experiments in\n"
+"implementation techniques and as an expository tool."
+msgstr ""
+
+#: gnu/packages/scheme.scm:419
+msgid "Implementation of Scheme and related languages"
+msgstr ""
+
+#: gnu/packages/scheme.scm:421
+msgid ""
+"Racket is an implementation of the Scheme programming language (R5RS and\n"
+"R6RS) and related languages, such as Typed Racket. It features a compiler and\n"
+"a virtual machine with just-in-time native compilation, as well as a large set\n"
+"of libraries."
+msgstr ""
+
+#: gnu/packages/wordnet.scm:79
+msgid "Lexical database for the English language"
+msgstr ""
+
+#: gnu/packages/wordnet.scm:81
+msgid ""
+"WordNet® is a large lexical database of English. Nouns, verbs,\n"
+"adjectives and adverbs are grouped into sets of cognitive synonyms\n"
+"(synsets), each expressing a distinct concept. Synsets are interlinked by\n"
+"means of conceptual-semantic and lexical relations. The resulting network of\n"
+"meaningfully related words and concepts can be navigated with the browser.\n"
+"WordNet is also freely and publicly available for download. WordNet's\n"
+"structure makes it a useful tool for computational linguistics and natural\n"
+"language processing."
+msgstr ""
+
+#: gnu/packages/zip.scm:56
+msgid "Compression and file packing utility"
+msgstr ""
+
+#: gnu/packages/zip.scm:58
+msgid ""
+"Zip is a compression and file packaging/archive utility. Zip is useful\n"
+"for packaging a set of files for distribution, for archiving files, and for\n"
+"saving disk space by temporarily compressing unused files or directories.\n"
+"Zip puts one or more compressed files into a single ZIP archive, along with\n"
+"information about the files (name, path, date, time of last modification,\n"
+"protection, and check information to verify file integrity). An entire\n"
+"directory structure can be packed into a ZIP archive with a single command.\n"
+"\n"
+"Zip has one compression method (deflation) and can also store files without\n"
+"compression. Zip automatically chooses the better of the two for each file.\n"
+"Compression ratios of 2:1 to 3:1 are common for text files."
+msgstr ""
+
+#: gnu/packages/zip.scm:98
+msgid "Decompression and file extraction utility"
+msgstr ""
+
+#: gnu/packages/zip.scm:100
+msgid ""
+"UnZip is an extraction utility for archives compressed in .zip format,\n"
+"also called \"zipfiles\".\n"
+"\n"
+"UnZip lists, tests, or extracts files from a .zip archive. The default\n"
+"behaviour (with no options) is to extract into the current directory, and\n"
+"subdirectories below it, all files from the specified zipfile. UnZip\n"
+"recreates the stored directory structure by default."
+msgstr ""
+
+#: gnu/packages/zip.scm:134
+msgid "Library for accessing zip files"
+msgstr ""
+
+#: gnu/packages/zip.scm:136
+msgid "ZZipLib is a library based on zlib for accessing zip files."
+msgstr ""
+
+#: gnu/packages/zip.scm:154
+msgid "Provides an interface to ZIP archive files"
+msgstr ""
+
+#: gnu/packages/zip.scm:155
+msgid ""
+"The Archive::Zip module allows a Perl program to create,\n"
+"manipulate, read, and write Zip archive files."
+msgstr ""
+
+#: gnu/packages/zsh.scm:63
+msgid "Powerful shell for interactive use and scripting"
+msgstr ""
+
+#: gnu/packages/zsh.scm:64
+msgid ""
+"The Z shell (zsh) is a Unix shell that can be used\n"
+"as an interactive login shell and as a powerful command interpreter\n"
+"for shell scripting. Zsh can be thought of as an extended Bourne shell\n"
+"with a large number of improvements, including some features of bash,\n"
+"ksh, and tcsh."
+msgstr ""
diff --git a/test-env.in b/test-env.in
index 39b205dc8a..f66a0db555 100644
--- a/test-env.in
+++ b/test-env.in
@@ -99,8 +99,8 @@ unset LANGUAGE
LC_MESSAGES=C
export LC_MESSAGES
-# Ignore user modules.
-unset GUIX_PACKAGE_PATH
+# Ignore user settings.
+unset GUIX_PACKAGE_PATH GUIX_BUILD_OPTIONS
storedir="@storedir@"
prefix="@prefix@"
diff --git a/tests/guix-build.sh b/tests/guix-build.sh
index 27b3fdc39e..836c45e776 100644
--- a/tests/guix-build.sh
+++ b/tests/guix-build.sh
@@ -84,3 +84,13 @@ guix build -e "(begin
# Running a gexp.
guix build -e '#~(mkdir #$output)' -d
guix build -e '#~(mkdir #$output)' -d | grep 'gexp\.drv'
+
+# Using 'GUIX_BUILD_OPTIONS'.
+GUIX_BUILD_OPTIONS="--dry-run"
+export GUIX_BUILD_OPTIONS
+
+guix build emacs
+
+GUIX_BUILD_OPTIONS="--something-completely-crazy"
+if guix build emacs;
+then false; else true; fi
diff --git a/tests/guix-package.sh b/tests/guix-package.sh
index 3e0e36fa23..f4e091a5a2 100644
--- a/tests/guix-package.sh
+++ b/tests/guix-package.sh
@@ -289,3 +289,16 @@ GUIX_PACKAGE_PATH="$module_dir"
export GUIX_PACKAGE_PATH
guix package -A emacs-foo-bar | grep 42
guix package -i emacs-foo-bar-42 -n
+unset GUIX_PACKAGE_PATH
+
+# Using 'GUIX_BUILD_OPTIONS'.
+
+available="`guix package -A | sort`"
+GUIX_BUILD_OPTIONS="--dry-run"
+export GUIX_BUILD_OPTIONS
+
+# Make sure $GUIX_BUILD_OPTIONS is not simply appended to the command-line,
+# which would break 'guix package -A' and similar.
+available2="`guix package -A | sort`"
+test "$available2" = "$available"
+guix package -I