diff options
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 @@ -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 = @@ -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 @@ -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 |