Merge branch 'master' into core-updates
This commit is contained in:
commit
75710da667
|
@ -120,8 +120,7 @@ GTAGS
|
|||
/emacs/Makefile
|
||||
/emacs/guix-autoloads.el
|
||||
/emacs/guix-helper.scm
|
||||
/emacs/guix-init.el
|
||||
/emacs/guix-profiles.el
|
||||
/emacs/guix-config.el
|
||||
/doc/os-config-bare-bones.texi
|
||||
/doc/os-config-desktop.texi
|
||||
/doc/*.1
|
||||
|
|
|
@ -58,6 +58,7 @@ MODULES = \
|
|||
guix/build-system/perl.scm \
|
||||
guix/build-system/python.scm \
|
||||
guix/build-system/waf.scm \
|
||||
guix/build-system/r.scm \
|
||||
guix/build-system/ruby.scm \
|
||||
guix/build-system/trivial.scm \
|
||||
guix/ftp-client.scm \
|
||||
|
@ -77,6 +78,7 @@ MODULES = \
|
|||
guix/build/gnu-dist.scm \
|
||||
guix/build/perl-build-system.scm \
|
||||
guix/build/python-build-system.scm \
|
||||
guix/build/r-build-system.scm \
|
||||
guix/build/ruby-build-system.scm \
|
||||
guix/build/waf-build-system.scm \
|
||||
guix/build/haskell-build-system.scm \
|
||||
|
@ -97,6 +99,7 @@ MODULES = \
|
|||
guix/import/gnu.scm \
|
||||
guix/import/snix.scm \
|
||||
guix/import/cabal.scm \
|
||||
guix/import/cran.scm \
|
||||
guix/import/hackage.scm \
|
||||
guix/import/elpa.scm \
|
||||
guix/scripts/download.scm \
|
||||
|
@ -112,6 +115,7 @@ MODULES = \
|
|||
guix/scripts/refresh.scm \
|
||||
guix/scripts/system.scm \
|
||||
guix/scripts/lint.scm \
|
||||
guix/scripts/import/cran.scm \
|
||||
guix/scripts/import/gnu.scm \
|
||||
guix/scripts/import/nix.scm \
|
||||
guix/scripts/import/hackage.scm \
|
||||
|
@ -198,6 +202,7 @@ SCM_TESTS = \
|
|||
tests/packages.scm \
|
||||
tests/snix.scm \
|
||||
tests/hackage.scm \
|
||||
tests/cran.scm \
|
||||
tests/elpa.scm \
|
||||
tests/store.scm \
|
||||
tests/monads.scm \
|
||||
|
@ -226,7 +231,8 @@ MODULES += \
|
|||
|
||||
SCM_TESTS += \
|
||||
tests/pypi.scm \
|
||||
tests/cpan.scm
|
||||
tests/cpan.scm \
|
||||
tests/gem.scm
|
||||
|
||||
endif
|
||||
|
||||
|
|
|
@ -205,8 +205,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
|
||||
AC_CONFIG_FILES([emacs/guix-config.el
|
||||
emacs/guix-helper.scm])
|
||||
|
||||
AC_OUTPUT
|
||||
|
|
104
doc/emacs.texi
104
doc/emacs.texi
|
@ -1,29 +1,22 @@
|
|||
@node Emacs Interface
|
||||
@section Emacs Interface
|
||||
@chapter Emacs Interface
|
||||
|
||||
@cindex Emacs
|
||||
GNU Guix comes with a visual user interface for GNU@tie{}Emacs, known
|
||||
as ``guix.el''. It can be used for routine package management tasks,
|
||||
pretty much like the @command{guix package} command (@pxref{Invoking
|
||||
guix package}). Specifically, ``guix.el'' makes it easy to:
|
||||
|
||||
@itemize
|
||||
@item browse and display packages and generations;
|
||||
@item search, install, upgrade and remove packages;
|
||||
@item display packages from previous generations;
|
||||
@item do some other useful things.
|
||||
@end itemize
|
||||
GNU Guix comes with several useful modules (known as ``guix.el'') for
|
||||
GNU@tie{}Emacs which are intended to make an Emacs user interaction with
|
||||
Guix convenient and fun.
|
||||
|
||||
@menu
|
||||
* Initial Setup: Emacs Initial Setup. Preparing @file{~/.emacs}.
|
||||
* Usage: Emacs Usage. Using the interface.
|
||||
* Configuration: Emacs Configuration. Configuring the interface.
|
||||
* Package Management: Emacs Package Management. Managing packages and generations.
|
||||
* Popup Interface: Emacs Popup Interface. Magit-like interface for guix commands.
|
||||
* Prettify Mode: Emacs Prettify. Abbreviating @file{/gnu/store/@dots{}} file names.
|
||||
* Completions: Emacs Completions. Completing @command{guix} shell command.
|
||||
@end menu
|
||||
|
||||
|
||||
@node Emacs Initial Setup
|
||||
@subsection Initial Setup
|
||||
@section Initial Setup
|
||||
|
||||
On the Guix System Distribution (@pxref{GNU Distribution}), ``guix.el''
|
||||
is ready to use, provided Guix is installed system-wide, which is the
|
||||
|
@ -43,6 +36,12 @@ later;
|
|||
@uref{http://nongnu.org/geiser/, Geiser}, version 0.3 or later: it is
|
||||
used for interacting with the Guile process.
|
||||
|
||||
@item
|
||||
@uref{https://github.com/magit/magit/, magit-popup library}. You
|
||||
already have this library if you use Magit 2.1.0 or later. This library
|
||||
is an optional dependency---it is required only for @kbd{M-x@tie{}guix}
|
||||
command (@pxref{Emacs Popup Interface}).
|
||||
|
||||
@end itemize
|
||||
|
||||
When it is done ``guix.el'' may be configured by requiring a special
|
||||
|
@ -105,22 +104,32 @@ emacs, The GNU Emacs Manual}).
|
|||
You can activate Emacs packages installed in your profile whenever you
|
||||
want using @kbd{M-x@tie{}guix-emacs-load-autoloads}.
|
||||
|
||||
@node Emacs Usage
|
||||
@subsection Usage
|
||||
|
||||
@node Emacs Package Management
|
||||
@section Package Management
|
||||
|
||||
Once ``guix.el'' has been successfully configured, you should be able to
|
||||
use commands for displaying packages and generations. This information
|
||||
can be displayed in a ``list'' or ``info'' buffer.
|
||||
use a visual interface for routine package management tasks, pretty much
|
||||
like the @command{guix package} command (@pxref{Invoking guix package}).
|
||||
Specifically, it makes it easy to:
|
||||
|
||||
@itemize
|
||||
@item browse and display packages and generations;
|
||||
@item search, install, upgrade and remove packages;
|
||||
@item display packages from previous generations;
|
||||
@item do some other useful things.
|
||||
@end itemize
|
||||
|
||||
@menu
|
||||
* Commands: Emacs Commands. @kbd{M-x guix-@dots{}}
|
||||
* General information: Emacs General info. Common for both interfaces.
|
||||
* ``List'' buffer: Emacs List buffer. List-like interface.
|
||||
* ``Info'' buffer: Emacs Info buffer. Help-like interface.
|
||||
* Configuration: Emacs Configuration. Configuring the interface.
|
||||
@end menu
|
||||
|
||||
@node Emacs Commands
|
||||
@subsubsection Commands
|
||||
@subsection Commands
|
||||
|
||||
All commands for displaying packages and generations use the current
|
||||
profile, which can be changed with
|
||||
|
@ -191,7 +200,7 @@ Once @command{guix pull} has succeeded, the Guix REPL is restared. This
|
|||
allows you to keep using the Emacs interface with the updated Guix.
|
||||
|
||||
@node Emacs General info
|
||||
@subsubsection General information
|
||||
@subsection General information
|
||||
|
||||
The following keys are available for both ``list'' and ``info'' types of
|
||||
buffers:
|
||||
|
@ -235,7 +244,7 @@ was restarted, you may want to revert ``list'' buffer (by pressing
|
|||
@kbd{g}).
|
||||
|
||||
@node Emacs List buffer
|
||||
@subsubsection ``List'' buffer
|
||||
@subsection ``List'' buffer
|
||||
|
||||
An interface of a ``list'' buffer is similar to the interface provided
|
||||
by ``package.el'' (@pxref{Package Menu,,, emacs, The GNU Emacs Manual}).
|
||||
|
@ -310,7 +319,7 @@ with another marked generation.
|
|||
@end table
|
||||
|
||||
@node Emacs Info buffer
|
||||
@subsubsection ``Info'' buffer
|
||||
@subsection ``Info'' buffer
|
||||
|
||||
The interface of an ``info'' buffer is similar to the interface of
|
||||
@code{help-mode} (@pxref{Help Mode,,, emacs, The GNU Emacs Manual}).
|
||||
|
@ -484,12 +493,49 @@ Various settings for ``info'' buffers.
|
|||
@end table
|
||||
|
||||
|
||||
@node Emacs Prettify
|
||||
@subsection Guix Prettify Mode
|
||||
@node Emacs Popup Interface
|
||||
@section Popup Interface
|
||||
|
||||
Along with ``guix.el'', GNU@tie{}Guix comes with ``guix-prettify.el''.
|
||||
It provides a minor mode for abbreviating store file names by replacing
|
||||
hash sequences of symbols with ``@dots{}'':
|
||||
If you ever used Magit, you know what ``popup interface'' is
|
||||
(@pxref{Top,,, magit-popup, Magit-Popup User Manual}). Even if you are
|
||||
not acquainted with Magit, there should be no worries as it is very
|
||||
intuitive.
|
||||
|
||||
So @kbd{M-x@tie{}guix} command provides a top-level popup interface for
|
||||
all available guix commands. When you select an option, you'll be
|
||||
prompted for a value in the minibuffer. Many values have completions,
|
||||
so don't hesitate to press @key{TAB} key. Multiple values (for example,
|
||||
packages or lint checkers) should be separated by commas.
|
||||
|
||||
After specifying all options and switches for a command, you may choose
|
||||
one of the available actions. The following default actions are
|
||||
available for all commands:
|
||||
|
||||
@itemize
|
||||
|
||||
@item
|
||||
Run the command in the Guix REPL. It is faster than running
|
||||
@code{guix@tie{}@dots{}} command directly in shell, as there is no
|
||||
need to run another guile process and to load required modules there.
|
||||
|
||||
@item
|
||||
Run the command in a shell buffer. You can set
|
||||
@code{guix-run-in-shell-function} variable to fine tune the shell buffer
|
||||
you want to use.
|
||||
|
||||
@item
|
||||
Add the command line to the kill ring (@pxref{Kill Ring,,, emacs, The
|
||||
GNU Emacs Manual}).
|
||||
|
||||
@end itemize
|
||||
|
||||
|
||||
@node Emacs Prettify
|
||||
@section Guix Prettify Mode
|
||||
|
||||
GNU@tie{}Guix also comes with ``guix-prettify.el''. It provides a minor
|
||||
mode for abbreviating store file names by replacing hash sequences of
|
||||
symbols with ``@dots{}'':
|
||||
|
||||
@example
|
||||
/gnu/store/72f54nfp6g1hz873w8z3gfcah0h4nl9p-foo-0.1
|
||||
|
@ -526,7 +572,7 @@ mode hooks (@pxref{Hooks,,, emacs, The GNU Emacs Manual}), for example:
|
|||
|
||||
|
||||
@node Emacs Completions
|
||||
@subsection Shell Completions
|
||||
@section Shell Completions
|
||||
|
||||
Another feature that becomes available after configuring Emacs interface
|
||||
(@pxref{Emacs Initial Setup}) is completing of @command{guix}
|
||||
|
|
166
doc/guix.texi
166
doc/guix.texi
|
@ -70,6 +70,7 @@ package management tool written for the GNU system.
|
|||
* Introduction:: What is Guix about?
|
||||
* Installation:: Installing Guix.
|
||||
* Package Management:: Package installation, upgrade, etc.
|
||||
* Emacs Interface:: Using Guix from Emacs.
|
||||
* Programming Interface:: Using Guix in Scheme.
|
||||
* Utilities:: Package management commands.
|
||||
* GNU Distribution:: Software for your friendly GNU system.
|
||||
|
@ -101,13 +102,20 @@ 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.
|
||||
|
||||
Emacs Interface
|
||||
|
||||
* Initial Setup: Emacs Initial Setup. Preparing @file{~/.emacs}.
|
||||
* Package Management: Emacs Package Management. Managing packages and generations.
|
||||
* Popup Interface: Emacs Popup Interface. Magit-like interface for guix commands.
|
||||
* Prettify Mode: Emacs Prettify. Abbreviating @file{/gnu/store/@dots{}} file names.
|
||||
* Completions: Emacs Completions. Completing @command{guix} shell command.
|
||||
|
||||
Programming Interface
|
||||
|
||||
* Defining Packages:: Defining new packages.
|
||||
|
@ -964,14 +972,13 @@ features.
|
|||
|
||||
This chapter describes the main features of Guix, as well as the package
|
||||
management tools it provides. Two user interfaces are provided for
|
||||
routine package management tasks: a command-line interface
|
||||
(@pxref{Invoking guix package, @code{guix package}}), and a visual user
|
||||
interface in Emacs (@pxref{Emacs Interface}).
|
||||
routine package management tasks: A command-line interface described below
|
||||
(@pxref{Invoking guix package, @code{guix package}}), as well as a visual user
|
||||
interface in Emacs described in a subsequent chapter (@pxref{Emacs Interface}).
|
||||
|
||||
@menu
|
||||
* 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.
|
||||
|
@ -1455,8 +1462,6 @@ Finally, since @command{guix package} may actually start build
|
|||
processes, it supports all the common build options that @command{guix
|
||||
build} supports (@pxref{Invoking guix build, common build options}).
|
||||
|
||||
@include emacs.texi
|
||||
|
||||
@node Substitutes
|
||||
@section Substitutes
|
||||
|
||||
|
@ -1898,6 +1903,8 @@ automatically builds them. The build process may be controlled with the
|
|||
same options that can be passed to the @command{guix build} command
|
||||
(@pxref{Invoking guix build, common build options}).
|
||||
|
||||
@c *********************************************************************
|
||||
@include emacs.texi
|
||||
|
||||
@c *********************************************************************
|
||||
@node Programming Interface
|
||||
|
@ -2484,6 +2491,16 @@ passes flags specified by the @code{#:make-maker-flags} or
|
|||
Which Perl package is used can be specified with @code{#:perl}.
|
||||
@end defvr
|
||||
|
||||
@defvr {Scheme Variable} r-build-system
|
||||
This variable is exported by @code{(guix build-system r)}. It
|
||||
implements the build procedure used by @uref{http://r-project.org, R}
|
||||
packages, which essentially is little more than running @code{R CMD
|
||||
INSTALL --library=/gnu/store/@dots{}} in an environment where
|
||||
@code{R_LIBS_SITE} contains the paths to all R package inputs. Tests
|
||||
are run after installation using the R function
|
||||
@code{tools::testInstalledPackage}.
|
||||
@end defvr
|
||||
|
||||
@defvr {Scheme Variable} ruby-build-system
|
||||
This variable is exported by @code{(guix build-system ruby)}. It
|
||||
implements the RubyGems build procedure used by Ruby packages, which
|
||||
|
@ -3612,7 +3629,7 @@ Make @var{file} a symlink to the result, and register it as a garbage
|
|||
collector root.
|
||||
|
||||
@item --log-file
|
||||
Return the build log file names for the given
|
||||
Return the build log file names or URLs for the given
|
||||
@var{package-or-derivation}s, or raise an error if build logs are
|
||||
missing.
|
||||
|
||||
|
@ -3626,7 +3643,19 @@ guix build --log-file guile
|
|||
guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'
|
||||
@end example
|
||||
|
||||
If a log is unavailable locally, and unless @code{--no-substitutes} is
|
||||
passed, the command looks for a corresponding log on one of the
|
||||
substitute servers (as specified with @code{--substitute-urls}.)
|
||||
|
||||
So for instance, let's say you want to see the build log of GDB on MIPS
|
||||
but you're actually on an @code{x86_64} machine:
|
||||
|
||||
@example
|
||||
$ guix build --log-file gdb -s mips64el-linux
|
||||
http://hydra.gnu.org/log/@dots{}-gdb-7.10
|
||||
@end example
|
||||
|
||||
You can freely access a huge library of build logs!
|
||||
@end table
|
||||
|
||||
@cindex common build options
|
||||
|
@ -3932,6 +3961,21 @@ Perl module:
|
|||
guix import cpan Acme::Boolean
|
||||
@end example
|
||||
|
||||
@item cran
|
||||
@cindex CRAN
|
||||
Import meta-data from @uref{http://cran.r-project.org/, CRAN}, the
|
||||
central repository for the @uref{http://r-project.org, GNU@tie{}R
|
||||
statistical and graphical environment}.
|
||||
|
||||
Information is extracted from the HTML package description.
|
||||
|
||||
The command command below imports meta-data for the @code{Cairo}
|
||||
R package:
|
||||
|
||||
@example
|
||||
guix import cran Cairo
|
||||
@end example
|
||||
|
||||
@item nix
|
||||
Import meta-data from a local copy of the source of the
|
||||
@uref{http://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This
|
||||
|
@ -4385,6 +4429,16 @@ the values listed above.
|
|||
|
||||
@item --list-types
|
||||
List the supported graph types.
|
||||
|
||||
@item --expression=@var{expr}
|
||||
@itemx -e @var{expr}
|
||||
Consider the package @var{expr} evaluates to.
|
||||
|
||||
This is useful to precisely refer to a package, as in this example:
|
||||
|
||||
@example
|
||||
guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'
|
||||
@end example
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -5477,7 +5531,7 @@ special-case and is automatically added whether or not it is specified.
|
|||
A @dfn{locale} defines cultural conventions for a particular language
|
||||
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{@var{language}_@var{territory}.@var{codeset}}---e.g.,
|
||||
@code{fr_LU.utf8} designates the locale for the French language, with
|
||||
cultural conventions from Luxembourg, and using the UTF-8 encoding.
|
||||
|
||||
|
@ -5538,9 +5592,17 @@ IANA}.
|
|||
@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}
|
||||
An arbitrary list of commonly used UTF-8 locales, used as the default
|
||||
value of the @code{locale-definitions} field of @code{operating-system}
|
||||
declarations.
|
||||
|
||||
@cindex locale name
|
||||
@cindex normalized codeset in locale names
|
||||
These locale definitions use the @dfn{normalized codeset} for the part
|
||||
that follows the dot in the name (@pxref{Using gettextized software,
|
||||
normalized codeset,, libc, The GNU C Library Reference Manual}). So for
|
||||
instance it has @code{uk_UA.utf8} but @emph{not}, say,
|
||||
@code{uk_UA.UTF-8}.
|
||||
@end defvr
|
||||
|
||||
@node Services
|
||||
|
@ -6009,6 +6071,7 @@ adds or adjust services for a typical ``desktop'' setup.
|
|||
In particular, it adds a graphical login manager (@pxref{X Window,
|
||||
@code{slim-service}}), a network management tool (@pxref{Networking
|
||||
Services, @code{wicd-service}}), energy and color management services,
|
||||
the @code{elogind} login and seat manager, the Polkit privilege service,
|
||||
the GeoClue location service, an NTP client (@pxref{Networking
|
||||
Services}), the Avahi daemon, and has the name service switch service
|
||||
configured to be able to use @code{nss-mdns} (@pxref{Name Service
|
||||
|
@ -6037,6 +6100,87 @@ and policy files. For example, to allow avahi-daemon to use the system bus,
|
|||
@var{services} must be equal to @code{(list avahi)}.
|
||||
@end deffn
|
||||
|
||||
@deffn {Monadic Procedure} elogind-service @
|
||||
[#:elogind @var{elogind}] [#:config @var{config}]
|
||||
Return a service that runs the @code{elogind} login and
|
||||
seat management daemon. @uref{https://github.com/andywingo/elogind,
|
||||
Elogind} exposes a D-Bus interface that can be used to know which users
|
||||
are logged in, know what kind of sessions they have open, suspend the
|
||||
system, inhibit system suspend, reboot the system, and other tasks.
|
||||
|
||||
Elogind handles most system-level power events for a computer, for
|
||||
example suspending the system when a lid is closed, or shutting it down
|
||||
when the power button is pressed.
|
||||
|
||||
The @var{config} keyword argument specifies the configuration for
|
||||
elogind, and should be the result of a @code{(elogind-configuration
|
||||
(@var{parameter} @var{value})...)} invocation. Available parameters and
|
||||
their default values are:
|
||||
|
||||
@table @code
|
||||
@item kill-user-processes?
|
||||
@code{#f}
|
||||
@item kill-only-users
|
||||
@code{()}
|
||||
@item kill-exclude-users
|
||||
@code{("root")}
|
||||
@item inhibit-delay-max-seconds
|
||||
@code{5}
|
||||
@item handle-power-key
|
||||
@code{poweroff}
|
||||
@item handle-suspend-key
|
||||
@code{suspend}
|
||||
@item handle-hibernate-key
|
||||
@code{hibernate}
|
||||
@item handle-lid-switch
|
||||
@code{suspend}
|
||||
@item handle-lid-switch-docked
|
||||
@code{ignore}
|
||||
@item power-key-ignore-inhibited?
|
||||
@code{#f}
|
||||
@item suspend-key-ignore-inhibited?
|
||||
@code{#f}
|
||||
@item hibernate-key-ignore-inhibited?
|
||||
@code{#f}
|
||||
@item lid-switch-ignore-inhibited?
|
||||
@code{#t}
|
||||
@item holdoff-timeout-seconds
|
||||
@code{30}
|
||||
@item idle-action
|
||||
@code{ignore}
|
||||
@item idle-action-seconds
|
||||
@code{(* 30 60)}
|
||||
@item runtime-directory-size-percent
|
||||
@code{10}
|
||||
@item runtime-directory-size
|
||||
@code{#f}
|
||||
@item remove-ipc?
|
||||
@code{#t}
|
||||
@item suspend-state
|
||||
@code{("mem" "standby" "freeze")}
|
||||
@item suspend-mode
|
||||
@code{()}
|
||||
@item hibernate-state
|
||||
@code{("disk")}
|
||||
@item hibernate-mode
|
||||
@code{("platform" "shutdown")}
|
||||
@item hybrid-sleep-state
|
||||
@code{("disk")}
|
||||
@item hybrid-sleep-mode
|
||||
@code{("suspend" "platform" "shutdown")}
|
||||
@end table
|
||||
@end deffn
|
||||
|
||||
@deffn {Monadic Procedure} polkit-service @
|
||||
[#:polkit @var{polkit}]
|
||||
Return a service that runs the Polkit privilege manager.
|
||||
@uref{http://www.freedesktop.org/wiki/Software/polkit/, Polkit} allows
|
||||
system administrators to grant access to privileged operations in a
|
||||
structured way. For example, polkit rules can allow a logged-in user
|
||||
whose session is active to shut down the machine, if there are no other
|
||||
users active.
|
||||
@end deffn
|
||||
|
||||
@deffn {Monadic Procedure} upower-service [#:upower @var{upower}] @
|
||||
[#:watts-up-pro? #f] @
|
||||
[#:poll-batteries? #t] @
|
||||
|
|
13
emacs.am
13
emacs.am
|
@ -1,5 +1,5 @@
|
|||
# GNU Guix --- Functional package management for GNU
|
||||
# Copyright © 2014 Alex Kost <alezost@gmail.com>
|
||||
# Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
|
||||
#
|
||||
# This file is part of GNU Guix.
|
||||
#
|
||||
|
@ -21,13 +21,20 @@ AUTOLOADS = emacs/guix-autoloads.el
|
|||
ELFILES = \
|
||||
emacs/guix-backend.el \
|
||||
emacs/guix-base.el \
|
||||
emacs/guix-command.el \
|
||||
emacs/guix-emacs.el \
|
||||
emacs/guix-external.el \
|
||||
emacs/guix-help-vars.el \
|
||||
emacs/guix-history.el \
|
||||
emacs/guix-info.el \
|
||||
emacs/guix-init.el \
|
||||
emacs/guix-list.el \
|
||||
emacs/guix-messages.el \
|
||||
emacs/guix-pcomplete.el \
|
||||
emacs/guix-popup.el \
|
||||
emacs/guix-prettify.el \
|
||||
emacs/guix-profiles.el \
|
||||
emacs/guix-read.el \
|
||||
emacs/guix-utils.el \
|
||||
emacs/guix.el
|
||||
|
||||
|
@ -37,9 +44,7 @@ dist_lisp_DATA = \
|
|||
$(ELFILES) \
|
||||
$(AUTOLOADS)
|
||||
|
||||
nodist_lisp_DATA = \
|
||||
emacs/guix-init.el \
|
||||
emacs/guix-profiles.el
|
||||
nodist_lisp_DATA = emacs/guix-config.el
|
||||
|
||||
$(AUTOLOADS): $(ELFILES)
|
||||
$(EMACS) --batch --eval \
|
||||
|
|
|
@ -52,26 +52,16 @@
|
|||
;;; Code:
|
||||
|
||||
(require 'geiser-mode)
|
||||
(require 'guix-config)
|
||||
(require 'guix-emacs)
|
||||
|
||||
(defvar guix-load-path
|
||||
(file-name-directory (or load-file-name
|
||||
(locate-library "guix")))
|
||||
(defvar guix-load-path guix-emacs-interface-directory
|
||||
"Directory with scheme files for \"guix.el\" package.")
|
||||
|
||||
(defvar guix-helper-file
|
||||
(expand-file-name "guix-helper.scm" guix-load-path)
|
||||
"Auxiliary scheme file for loading.")
|
||||
|
||||
(defvar guix-guile-program (or geiser-guile-binary "guile")
|
||||
"Name of the guile executable used for Guix REPL.
|
||||
May be either a string (the name of the executable) or a list of
|
||||
strings of the form:
|
||||
|
||||
(NAME . ARGS)
|
||||
|
||||
Where ARGS is a list of arguments to the guile program.")
|
||||
|
||||
|
||||
;;; REPL
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; guix-base.el --- Common definitions -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright © 2014 Alex Kost <alezost@gmail.com>
|
||||
;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
|
||||
|
||||
;; This file is part of GNU Guix.
|
||||
|
||||
|
@ -89,7 +89,7 @@ Each element of the list has a form:
|
|||
|
||||
(defun guix-get-param-title (entry-type param)
|
||||
"Return title of an ENTRY-TYPE entry parameter PARAM."
|
||||
(or (guix-get-key-val guix-param-titles
|
||||
(or (guix-assq-value guix-param-titles
|
||||
entry-type param)
|
||||
(prog1 (symbol-name param)
|
||||
(message "Couldn't find title for '%S %S'."
|
||||
|
@ -102,15 +102,15 @@ Each element of the list has a form:
|
|||
|
||||
(defun guix-get-full-name (entry &optional output)
|
||||
"Return name specification of the package ENTRY and OUTPUT."
|
||||
(guix-get-name-spec (guix-get-key-val entry 'name)
|
||||
(guix-get-key-val entry 'version)
|
||||
(guix-get-name-spec (guix-assq-value entry 'name)
|
||||
(guix-assq-value entry 'version)
|
||||
output))
|
||||
|
||||
(defun guix-entry-to-specification (entry)
|
||||
"Return name specification by the package or output ENTRY."
|
||||
(guix-get-name-spec (guix-get-key-val entry 'name)
|
||||
(guix-get-key-val entry 'version)
|
||||
(guix-get-key-val entry 'output)))
|
||||
(guix-get-name-spec (guix-assq-value entry 'name)
|
||||
(guix-assq-value entry 'version)
|
||||
(guix-assq-value entry 'output)))
|
||||
|
||||
(defun guix-entries-to-specifications (entries)
|
||||
"Return name specifications by the package or output ENTRIES."
|
||||
|
@ -120,13 +120,13 @@ Each element of the list has a form:
|
|||
(defun guix-get-installed-outputs (entry)
|
||||
"Return list of installed outputs for the package ENTRY."
|
||||
(mapcar (lambda (installed-entry)
|
||||
(guix-get-key-val installed-entry 'output))
|
||||
(guix-get-key-val entry 'installed)))
|
||||
(guix-assq-value installed-entry 'output))
|
||||
(guix-assq-value entry 'installed)))
|
||||
|
||||
(defun guix-get-entry-by-id (id entries)
|
||||
"Return entry from ENTRIES by entry ID."
|
||||
(cl-find-if (lambda (entry)
|
||||
(equal id (guix-get-key-val entry 'id)))
|
||||
(equal id (guix-assq-value entry 'id)))
|
||||
entries))
|
||||
|
||||
(defun guix-get-package-id-and-output-by-output-id (oid)
|
||||
|
@ -172,13 +172,36 @@ If PATH is relative, it is considered to be relative to
|
|||
(move-to-column col)
|
||||
(recenter 1))))
|
||||
|
||||
(defun guix-edit-package (id)
|
||||
"Edit (go to location of) package with ID."
|
||||
(let ((loc (guix-eval-read (guix-make-guile-expression
|
||||
'package-location-string id))))
|
||||
(if loc
|
||||
(guix-find-location loc)
|
||||
(message "Couldn't find package location."))))
|
||||
(defun guix-package-location (id-or-name)
|
||||
"Return location of a package with ID-OR-NAME.
|
||||
For the meaning of location, see `guix-find-location'."
|
||||
(guix-eval-read (guix-make-guile-expression
|
||||
'package-location-string id-or-name)))
|
||||
|
||||
|
||||
;;; Receivable lists of packages, lint checkers, etc.
|
||||
|
||||
(guix-memoized-defun guix-graph-type-names ()
|
||||
"Return a list of names of available graph node types."
|
||||
(guix-eval-read (guix-make-guile-expression 'graph-type-names)))
|
||||
|
||||
(guix-memoized-defun guix-lint-checker-names ()
|
||||
"Return a list of names of available lint checkers."
|
||||
(guix-eval-read (guix-make-guile-expression 'lint-checker-names)))
|
||||
|
||||
(guix-memoized-defun guix-package-names ()
|
||||
"Return a list of names of available packages."
|
||||
(sort
|
||||
;; Work around <https://github.com/jaor/geiser/issues/64>:
|
||||
;; list of strings is parsed much slower than list of lists,
|
||||
;; so we use 'package-names-lists' instead of 'package-names'.
|
||||
|
||||
;; (guix-eval-read (guix-make-guile-expression 'package-names))
|
||||
|
||||
(mapcar #'car
|
||||
(guix-eval-read (guix-make-guile-expression
|
||||
'package-names-lists)))
|
||||
#'string<))
|
||||
|
||||
|
||||
;;; Buffers and auto updating.
|
||||
|
@ -392,7 +415,6 @@ following keywords are available:
|
|||
(prefix (concat "guix-" entry-type-str "-" buf-type-str))
|
||||
(group (intern prefix))
|
||||
(mode-map-str (concat prefix "-mode-map"))
|
||||
(mode-map (intern mode-map-str))
|
||||
(parent-mode (intern (concat "guix-" buf-type-str "-mode")))
|
||||
(mode (intern (concat prefix "-mode")))
|
||||
(mode-init-fun (intern (concat prefix "-mode-initialize")))
|
||||
|
@ -910,11 +932,11 @@ ENTRIES is a list of package entries to get info about packages."
|
|||
(outputs (cdr spec))
|
||||
(entry (guix-get-entry-by-id id entries)))
|
||||
(when entry
|
||||
(let ((location (guix-get-key-val entry 'location)))
|
||||
(let ((location (guix-assq-value entry 'location)))
|
||||
(concat (guix-get-full-name entry)
|
||||
(when outputs
|
||||
(concat ":"
|
||||
(mapconcat #'identity outputs ",")))
|
||||
(guix-concat-strings outputs ",")))
|
||||
(when location
|
||||
(concat "\t(" location ")")))))))
|
||||
specs)))
|
||||
|
@ -1060,6 +1082,63 @@ FILE. With a prefix argument, also prompt for PROFILE."
|
|||
(concat "--manifest=" file))
|
||||
operation-buffer)))
|
||||
|
||||
|
||||
;;; Executing guix commands
|
||||
|
||||
(defcustom guix-run-in-shell-function #'guix-run-in-shell
|
||||
"Function used to run guix command.
|
||||
The function is called with a single argument - a command line string."
|
||||
:type '(choice (function-item guix-run-in-shell)
|
||||
(function-item guix-run-in-eshell)
|
||||
(function :tag "Other function"))
|
||||
:group 'guix)
|
||||
|
||||
(defcustom guix-shell-buffer-name "*shell*"
|
||||
"Default name of a shell buffer used for running guix commands."
|
||||
:type 'string
|
||||
:group 'guix)
|
||||
|
||||
(declare-function comint-send-input "comint" t)
|
||||
|
||||
(defun guix-run-in-shell (string)
|
||||
"Run command line STRING in `guix-shell-buffer-name' buffer."
|
||||
(shell guix-shell-buffer-name)
|
||||
(goto-char (point-max))
|
||||
(insert string)
|
||||
(comint-send-input))
|
||||
|
||||
(declare-function eshell-send-input "esh-mode" t)
|
||||
|
||||
(defun guix-run-in-eshell (string)
|
||||
"Run command line STRING in eshell buffer."
|
||||
(eshell)
|
||||
(goto-char (point-max))
|
||||
(insert string)
|
||||
(eshell-send-input))
|
||||
|
||||
(defun guix-run-command-in-shell (args)
|
||||
"Execute 'guix ARGS ...' command in a shell buffer."
|
||||
(funcall guix-run-in-shell-function
|
||||
(guix-command-string args)))
|
||||
|
||||
(defun guix-run-command-in-repl (args)
|
||||
"Execute 'guix ARGS ...' command in Guix REPL."
|
||||
(guix-eval-in-repl
|
||||
(apply #'guix-make-guile-expression
|
||||
'guix-command args)))
|
||||
|
||||
(defun guix-command-output (args)
|
||||
"Return string with 'guix ARGS ...' output."
|
||||
(guix-eval-read
|
||||
(apply #'guix-make-guile-expression
|
||||
'guix-command-output args)))
|
||||
|
||||
(defun guix-help-string (&optional commands)
|
||||
"Return string with 'guix COMMANDS ... --help' output."
|
||||
(guix-eval-read
|
||||
(apply #'guix-make-guile-expression
|
||||
'help-string commands)))
|
||||
|
||||
|
||||
;;; Pull
|
||||
|
||||
|
|
|
@ -0,0 +1,671 @@
|
|||
;;; guix-command.el --- Popup interface for guix commands -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright © 2015 Alex Kost <alezost@gmail.com>
|
||||
|
||||
;; This file is part of GNU Guix.
|
||||
|
||||
;; GNU Guix is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Guix is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; This file provides a magit-like popup interface for running guix
|
||||
;; commands in Guix REPL. The entry point is "M-x guix". When it is
|
||||
;; called the first time, "guix --help" output is parsed and
|
||||
;; `guix-COMMAND-action' functions are generated for each available guix
|
||||
;; COMMAND. Then a window with these commands is popped up. When a
|
||||
;; particular COMMAND is called, "guix COMMAND --help" output is parsed,
|
||||
;; and a user get a new popup window with available options for this
|
||||
;; command and so on.
|
||||
|
||||
;; To avoid hard-coding all guix options, actions, etc., as much data is
|
||||
;; taken from "guix ... --help" outputs as possible. But this data is
|
||||
;; still incomplete: not all long options have short analogs, also
|
||||
;; special readers should be used for some options (for example, to
|
||||
;; complete package names while prompting for a package). So after
|
||||
;; parsing --help output, the arguments are "improved". All arguments
|
||||
;; (switches, options and actions) are `guix-command-argument'
|
||||
;; structures.
|
||||
|
||||
;; Only "M-x guix" command is available after this file is loaded. The
|
||||
;; rest commands/actions/popups are generated on the fly only when they
|
||||
;; are needed (that's why there is a couple of `eval'-s in this file).
|
||||
|
||||
;; COMMANDS argument is used by many functions in this file. It means a
|
||||
;; list of guix commands without "guix" itself, e.g.: ("build"),
|
||||
;; ("import" "gnu"). The empty list stands for the plain "guix" without
|
||||
;; subcommands.
|
||||
|
||||
;; All actions in popup windows are divided into 2 groups:
|
||||
;;
|
||||
;; - 'Popup' actions - used to pop up another window. For example, every
|
||||
;; action in the 'guix' or 'guix import' window is a popup action. They
|
||||
;; are defined by `guix-command-define-popup-action' macro.
|
||||
;;
|
||||
;; - 'Execute' actions - used to do something with the command line (to
|
||||
;; run a command in Guix REPL or to copy it into kill-ring) constructed
|
||||
;; with the current popup. They are defined by
|
||||
;; `guix-command-define-execute-action' macro.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'cl-lib)
|
||||
(require 'guix-popup)
|
||||
(require 'guix-utils)
|
||||
(require 'guix-help-vars)
|
||||
(require 'guix-read)
|
||||
(require 'guix-base)
|
||||
(require 'guix-external)
|
||||
|
||||
(defgroup guix-commands nil
|
||||
"Settings for guix popup windows."
|
||||
:group 'guix)
|
||||
|
||||
(defvar guix-command-complex-with-shared-arguments
|
||||
'("system")
|
||||
"List of guix commands which have subcommands with shared options.
|
||||
I.e., 'guix foo --help' is the same as 'guix foo bar --help'.")
|
||||
|
||||
(defun guix-command-action-name (&optional commands &rest name-parts)
|
||||
"Return name of action function for guix COMMANDS."
|
||||
(guix-command-symbol (append commands name-parts (list "action"))))
|
||||
|
||||
|
||||
;;; Command arguments
|
||||
|
||||
(cl-defstruct (guix-command-argument
|
||||
(:constructor guix-command-make-argument)
|
||||
(:copier guix-command-copy-argument))
|
||||
name char doc fun switch? option? action?)
|
||||
|
||||
(cl-defun guix-command-modify-argument
|
||||
(argument &key
|
||||
(name nil name-bound?)
|
||||
(char nil char-bound?)
|
||||
(doc nil doc-bound?)
|
||||
(fun nil fun-bound?)
|
||||
(switch? nil switch?-bound?)
|
||||
(option? nil option?-bound?)
|
||||
(action? nil action?-bound?))
|
||||
"Return a modified version of ARGUMENT."
|
||||
(declare (indent 1))
|
||||
(let ((copy (guix-command-copy-argument argument)))
|
||||
(and name-bound? (setf (guix-command-argument-name copy) name))
|
||||
(and char-bound? (setf (guix-command-argument-char copy) char))
|
||||
(and doc-bound? (setf (guix-command-argument-doc copy) doc))
|
||||
(and fun-bound? (setf (guix-command-argument-fun copy) fun))
|
||||
(and switch?-bound? (setf (guix-command-argument-switch? copy) switch?))
|
||||
(and option?-bound? (setf (guix-command-argument-option? copy) option?))
|
||||
(and action?-bound? (setf (guix-command-argument-action? copy) action?))
|
||||
copy))
|
||||
|
||||
(defun guix-command-modify-argument-from-alist (argument alist)
|
||||
"Return a modified version of ARGUMENT or nil if it wasn't modified.
|
||||
Each assoc from ALIST have a form (NAME . PLIST). NAME is an
|
||||
argument name. PLIST is a property list of argument parameters
|
||||
to be modified."
|
||||
(let* ((name (guix-command-argument-name argument))
|
||||
(plist (guix-assoc-value alist name)))
|
||||
(when plist
|
||||
(apply #'guix-command-modify-argument
|
||||
argument plist))))
|
||||
|
||||
(defmacro guix-command-define-argument-improver (name alist)
|
||||
"Define NAME variable and function to modify an argument from ALIST."
|
||||
(declare (indent 1))
|
||||
`(progn
|
||||
(defvar ,name ,alist)
|
||||
(defun ,name (argument)
|
||||
(guix-command-modify-argument-from-alist argument ,name))))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-action-argument
|
||||
'(("graph" :char ?G)
|
||||
("environment" :char ?E)
|
||||
("publish" :char ?u)
|
||||
("pull" :char ?P)
|
||||
("size" :char ?z)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-common-argument
|
||||
'(("--help" :switch? nil)
|
||||
("--version" :switch? nil)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-target-argument
|
||||
'(("--target" :char ?T)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-system-type-argument
|
||||
'(("--system" :fun guix-read-system-type)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-load-path-argument
|
||||
'(("--load-path" :fun read-directory-name)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-search-paths-argument
|
||||
'(("--search-paths" :char ?P)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-substitute-urls-argument
|
||||
'(("--substitute-urls" :char ?U)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-hash-argument
|
||||
'(("--format" :fun guix-read-hash-format)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-key-policy-argument
|
||||
'(("--key-download" :fun guix-read-key-policy)))
|
||||
|
||||
(defvar guix-command-improve-common-build-argument
|
||||
'(("--no-substitutes" :char ?s)
|
||||
("--no-build-hook" :char ?h)
|
||||
("--max-silent-time" :char ?x)))
|
||||
|
||||
(defun guix-command-improve-common-build-argument (argument)
|
||||
(guix-command-modify-argument-from-alist
|
||||
argument
|
||||
(append guix-command-improve-load-path-argument
|
||||
guix-command-improve-substitute-urls-argument
|
||||
guix-command-improve-common-build-argument)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-archive-argument
|
||||
'(("--generate-key" :char ?k)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-build-argument
|
||||
'(("--no-grafts" :char ?g)
|
||||
("--root" :fun guix-read-file-name)
|
||||
("--sources" :char ?S :fun guix-read-source-type :switch? nil)
|
||||
("--with-source" :fun guix-read-file-name)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-environment-argument
|
||||
'(("--exec" :fun read-shell-command)
|
||||
("--load" :fun guix-read-file-name)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-gc-argument
|
||||
'(("--list-dead" :char ?D)
|
||||
("--list-live" :char ?L)
|
||||
("--referrers" :char ?f)
|
||||
("--verify" :fun guix-read-verify-options-string)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-graph-argument
|
||||
'(("--type" :fun guix-read-graph-type)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-import-argument
|
||||
'(("cran" :char ?r)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-import-elpa-argument
|
||||
'(("--archive" :fun guix-read-elpa-archive)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-lint-argument
|
||||
'(("--checkers" :fun guix-read-lint-checker-names-string)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-package-argument
|
||||
;; Unlike all other options, --install/--remove do not have a form
|
||||
;; '--install=foo,bar' but '--install foo bar' instead, so we need
|
||||
;; some tweaks.
|
||||
'(("--install"
|
||||
:name "--install " :fun guix-read-package-names-string
|
||||
:switch? nil :option? t)
|
||||
("--remove"
|
||||
:name "--remove " :fun guix-read-package-names-string
|
||||
:switch? nil :option? t)
|
||||
("--install-from-file" :fun guix-read-file-name)
|
||||
("--manifest" :fun guix-read-file-name)
|
||||
("--do-not-upgrade" :char ?U)
|
||||
("--roll-back" :char ?R)
|
||||
("--show" :char ?w :fun guix-read-package-name)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-refresh-argument
|
||||
'(("--select" :fun guix-read-refresh-subset)
|
||||
("--key-server" :char ?S)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-size-argument
|
||||
'(("--map-file" :fun guix-read-file-name)))
|
||||
|
||||
(guix-command-define-argument-improver
|
||||
guix-command-improve-system-argument
|
||||
'(("vm-image" :char ?V)
|
||||
("--on-error" :char ?E)
|
||||
("--no-grub" :char ?g)
|
||||
("--full-boot" :char ?b)))
|
||||
|
||||
(defvar guix-command-argument-improvers
|
||||
'((()
|
||||
guix-command-improve-action-argument)
|
||||
(("archive")
|
||||
guix-command-improve-common-build-argument
|
||||
guix-command-improve-target-argument
|
||||
guix-command-improve-system-type-argument
|
||||
guix-command-improve-archive-argument)
|
||||
(("build")
|
||||
guix-command-improve-common-build-argument
|
||||
guix-command-improve-target-argument
|
||||
guix-command-improve-system-type-argument
|
||||
guix-command-improve-build-argument)
|
||||
(("download")
|
||||
guix-command-improve-hash-argument)
|
||||
(("hash")
|
||||
guix-command-improve-hash-argument)
|
||||
(("environment")
|
||||
guix-command-improve-common-build-argument
|
||||
guix-command-improve-search-paths-argument
|
||||
guix-command-improve-system-type-argument
|
||||
guix-command-improve-environment-argument)
|
||||
(("gc")
|
||||
guix-command-improve-gc-argument)
|
||||
(("graph")
|
||||
guix-command-improve-graph-argument)
|
||||
(("import")
|
||||
guix-command-improve-import-argument)
|
||||
(("import" "gnu")
|
||||
guix-command-improve-key-policy-argument)
|
||||
(("import" "elpa")
|
||||
guix-command-improve-import-elpa-argument)
|
||||
(("lint")
|
||||
guix-command-improve-lint-argument)
|
||||
(("package")
|
||||
guix-command-improve-common-build-argument
|
||||
guix-command-improve-search-paths-argument
|
||||
guix-command-improve-package-argument)
|
||||
(("refresh")
|
||||
guix-command-improve-key-policy-argument
|
||||
guix-command-improve-refresh-argument)
|
||||
(("size")
|
||||
guix-command-improve-system-type-argument
|
||||
guix-command-improve-substitute-urls-argument
|
||||
guix-command-improve-size-argument)
|
||||
(("system")
|
||||
guix-command-improve-common-build-argument
|
||||
guix-command-improve-system-argument))
|
||||
"Alist of guix commands and argument improvers for them.")
|
||||
|
||||
(defun guix-command-improve-argument (argument improvers)
|
||||
"Return ARGUMENT modified with IMPROVERS."
|
||||
(or (guix-any (lambda (improver)
|
||||
(funcall improver argument))
|
||||
improvers)
|
||||
argument))
|
||||
|
||||
(defun guix-command-improve-arguments (arguments commands)
|
||||
"Return ARGUMENTS for 'guix COMMANDS ...' modified for popup interface."
|
||||
(let ((improvers (cons 'guix-command-improve-common-argument
|
||||
(guix-assoc-value guix-command-argument-improvers
|
||||
commands))))
|
||||
(mapcar (lambda (argument)
|
||||
(guix-command-improve-argument argument improvers))
|
||||
arguments)))
|
||||
|
||||
(defun guix-command-parse-arguments (&optional commands)
|
||||
"Return a list of parsed 'guix COMMANDS ...' arguments."
|
||||
(with-temp-buffer
|
||||
(insert (guix-help-string commands))
|
||||
(let (args)
|
||||
(guix-while-search guix-help-parse-option-regexp
|
||||
(let* ((short (match-string-no-properties 1))
|
||||
(name (match-string-no-properties 2))
|
||||
(arg (match-string-no-properties 3))
|
||||
(doc (match-string-no-properties 4))
|
||||
(char (if short
|
||||
(elt short 1) ; short option letter
|
||||
(elt name 2))) ; first letter of the long option
|
||||
;; If "--foo=bar" or "--foo[=bar]" then it is 'option'.
|
||||
(option? (not (string= "" arg)))
|
||||
;; If "--foo" or "--foo[=bar]" then it is 'switch'.
|
||||
(switch? (or (string= "" arg)
|
||||
(eq ?\[ (elt arg 0)))))
|
||||
(push (guix-command-make-argument
|
||||
:name name
|
||||
:char char
|
||||
:doc doc
|
||||
:switch? switch?
|
||||
:option? option?)
|
||||
args)))
|
||||
(guix-while-search guix-help-parse-command-regexp
|
||||
(let* ((name (match-string-no-properties 1))
|
||||
(char (elt name 0)))
|
||||
(push (guix-command-make-argument
|
||||
:name name
|
||||
:char char
|
||||
:fun (guix-command-action-name commands name)
|
||||
:action? t)
|
||||
args)))
|
||||
args)))
|
||||
|
||||
(defun guix-command-rest-argument (&optional commands)
|
||||
"Return '--' argument for COMMANDS."
|
||||
(cl-flet ((argument (&rest args)
|
||||
(apply #'guix-command-make-argument
|
||||
:name "-- " :char ?= :option? t args)))
|
||||
(let ((command (car commands)))
|
||||
(cond
|
||||
((member command '("archive" "build" "graph" "edit"
|
||||
"environment" "lint" "refresh"))
|
||||
(argument :doc "Packages" :fun 'guix-read-package-names-string))
|
||||
((string= command "download")
|
||||
(argument :doc "URL"))
|
||||
((string= command "gc")
|
||||
(argument :doc "Paths" :fun 'guix-read-file-name))
|
||||
((member command '("hash" "system"))
|
||||
(argument :doc "File" :fun 'guix-read-file-name))
|
||||
((string= command "size")
|
||||
(argument :doc "Package" :fun 'guix-read-package-name))
|
||||
((equal commands '("import" "nix"))
|
||||
(argument :doc "Nixpkgs Attribute"))
|
||||
;; Other 'guix import' subcommands, but not 'import' itself.
|
||||
((and (cdr commands)
|
||||
(string= command "import"))
|
||||
(argument :doc "Package name"))))))
|
||||
|
||||
(defun guix-command-additional-arguments (&optional commands)
|
||||
"Return additional arguments for COMMANDS."
|
||||
(let ((rest-arg (guix-command-rest-argument commands)))
|
||||
(and rest-arg (list rest-arg))))
|
||||
|
||||
;; Ideally only `guix-command-arguments' function should exist with the
|
||||
;; contents of `guix-command-all-arguments', but we need to make a
|
||||
;; special case for `guix-command-complex-with-shared-arguments' commands.
|
||||
|
||||
(defun guix-command-all-arguments (&optional commands)
|
||||
"Return list of all arguments for 'guix COMMANDS ...'."
|
||||
(let ((parsed (guix-command-parse-arguments commands)))
|
||||
(append (guix-command-improve-arguments parsed commands)
|
||||
(guix-command-additional-arguments commands))))
|
||||
|
||||
(guix-memoized-defalias guix-command-all-arguments-memoize
|
||||
guix-command-all-arguments)
|
||||
|
||||
(defun guix-command-arguments (&optional commands)
|
||||
"Return list of arguments for 'guix COMMANDS ...'."
|
||||
(let ((command (car commands)))
|
||||
(if (member command
|
||||
guix-command-complex-with-shared-arguments)
|
||||
;; Take actions only for 'guix system', and switches+options for
|
||||
;; 'guix system foo'.
|
||||
(funcall (if (null (cdr commands))
|
||||
#'cl-remove-if-not
|
||||
#'cl-remove-if)
|
||||
#'guix-command-argument-action?
|
||||
(guix-command-all-arguments-memoize (list command)))
|
||||
(guix-command-all-arguments commands))))
|
||||
|
||||
(defun guix-command-switch->popup-switch (switch)
|
||||
"Return popup switch from command SWITCH argument."
|
||||
(list (guix-command-argument-char switch)
|
||||
(or (guix-command-argument-doc switch)
|
||||
"Unknown")
|
||||
(guix-command-argument-name switch)))
|
||||
|
||||
(defun guix-command-option->popup-option (option)
|
||||
"Return popup option from command OPTION argument."
|
||||
(list (guix-command-argument-char option)
|
||||
(or (guix-command-argument-doc option)
|
||||
"Unknown")
|
||||
(let ((name (guix-command-argument-name option)))
|
||||
(if (string-match-p " \\'" name) ; ends with space
|
||||
name
|
||||
(concat name "=")))
|
||||
(or (guix-command-argument-fun option)
|
||||
'read-from-minibuffer)))
|
||||
|
||||
(defun guix-command-action->popup-action (action)
|
||||
"Return popup action from command ACTION argument."
|
||||
(list (guix-command-argument-char action)
|
||||
(or (guix-command-argument-doc action)
|
||||
(guix-command-argument-name action)
|
||||
"Unknown")
|
||||
(guix-command-argument-fun action)))
|
||||
|
||||
(defun guix-command-sort-arguments (arguments)
|
||||
"Sort ARGUMENTS by name in alphabetical order."
|
||||
(sort arguments
|
||||
(lambda (a1 a2)
|
||||
(let ((name1 (guix-command-argument-name a1))
|
||||
(name2 (guix-command-argument-name a2)))
|
||||
(cond ((null name1) nil)
|
||||
((null name2) t)
|
||||
(t (string< name1 name2)))))))
|
||||
|
||||
(defun guix-command-switches (arguments)
|
||||
"Return switches from ARGUMENTS."
|
||||
(cl-remove-if-not #'guix-command-argument-switch? arguments))
|
||||
|
||||
(defun guix-command-options (arguments)
|
||||
"Return options from ARGUMENTS."
|
||||
(cl-remove-if-not #'guix-command-argument-option? arguments))
|
||||
|
||||
(defun guix-command-actions (arguments)
|
||||
"Return actions from ARGUMENTS."
|
||||
(cl-remove-if-not #'guix-command-argument-action? arguments))
|
||||
|
||||
(defun guix-command-post-process-args (args)
|
||||
"Adjust appropriately command line ARGS returned from popup command."
|
||||
;; XXX We need to split "--install foo bar" and similar strings into
|
||||
;; lists of strings. But some commands (e.g., 'guix hash') accept a
|
||||
;; file name as the 'rest' argument, and as file names may contain
|
||||
;; spaces, splitting by spaces will break such names. For example, the
|
||||
;; following argument: "-- /tmp/file with spaces" will be transformed
|
||||
;; into the following list: ("--" "/tmp/file" "with" "spaces") instead
|
||||
;; of the wished ("--" "/tmp/file with spaces").
|
||||
(let* (rest
|
||||
(rx (rx string-start
|
||||
(or "-- " "--install " "--remove ")))
|
||||
(args (mapcar (lambda (arg)
|
||||
(if (string-match-p rx arg)
|
||||
(progn (push (split-string arg) rest)
|
||||
nil)
|
||||
arg))
|
||||
args)))
|
||||
(if rest
|
||||
(apply #'append (delq nil args) rest)
|
||||
args)))
|
||||
|
||||
|
||||
;;; 'Execute' actions
|
||||
|
||||
(defvar guix-command-default-execute-arguments
|
||||
(list
|
||||
(guix-command-make-argument
|
||||
:name "repl" :char ?r :doc "Run in Guix REPL")
|
||||
(guix-command-make-argument
|
||||
:name "shell" :char ?s :doc "Run in shell")
|
||||
(guix-command-make-argument
|
||||
:name "copy" :char ?c :doc "Copy command line"))
|
||||
"List of default 'execute' action arguments.")
|
||||
|
||||
(defvar guix-command-additional-execute-arguments
|
||||
`((("graph")
|
||||
,(guix-command-make-argument
|
||||
:name "view" :char ?v :doc "View graph")))
|
||||
"Alist of guix commands and additional 'execute' action arguments.")
|
||||
|
||||
(defun guix-command-execute-arguments (commands)
|
||||
"Return a list of 'execute' action arguments for COMMANDS."
|
||||
(mapcar (lambda (arg)
|
||||
(guix-command-modify-argument arg
|
||||
:action? t
|
||||
:fun (guix-command-action-name
|
||||
commands (guix-command-argument-name arg))))
|
||||
(append guix-command-default-execute-arguments
|
||||
(guix-assoc-value
|
||||
guix-command-additional-execute-arguments commands))))
|
||||
|
||||
(defvar guix-command-special-executors
|
||||
'((("environment")
|
||||
("repl" . guix-run-environment-command-in-repl))
|
||||
(("pull")
|
||||
("repl" . guix-run-pull-command-in-repl))
|
||||
(("graph")
|
||||
("view" . guix-run-view-graph)))
|
||||
"Alist of guix commands and alists of special executers for them.
|
||||
See also `guix-command-default-executors'.")
|
||||
|
||||
(defvar guix-command-default-executors
|
||||
'(("repl" . guix-run-command-in-repl)
|
||||
("shell" . guix-run-command-in-shell)
|
||||
("copy" . guix-copy-command-as-kill))
|
||||
"Alist of default executers for action names.")
|
||||
|
||||
(defun guix-command-executor (commands name)
|
||||
"Return function to run command line arguments for guix COMMANDS."
|
||||
(or (guix-assoc-value guix-command-special-executors commands name)
|
||||
(guix-assoc-value guix-command-default-executors name)))
|
||||
|
||||
(defun guix-run-environment-command-in-repl (args)
|
||||
"Run 'guix ARGS ...' environment command in Guix REPL."
|
||||
;; As 'guix environment' usually tries to run another process, it may
|
||||
;; be fun but not wise to run this command in Geiser REPL.
|
||||
(when (or (member "--dry-run" args)
|
||||
(member "--search-paths" args)
|
||||
(when (y-or-n-p
|
||||
(format "'%s' command will spawn an external process.
|
||||
Do you really want to execute this command in Geiser REPL? "
|
||||
(guix-command-string args)))
|
||||
(message "May \"M-x shell-mode\" be with you!")
|
||||
t))
|
||||
(guix-run-command-in-repl args)))
|
||||
|
||||
(defun guix-run-pull-command-in-repl (args)
|
||||
"Run 'guix ARGS ...' pull command in Guix REPL.
|
||||
Perform pull-specific actions after operation, see
|
||||
`guix-after-pull-hook' and `guix-update-after-pull'."
|
||||
(guix-eval-in-repl
|
||||
(apply #'guix-make-guile-expression 'guix-command args)
|
||||
nil 'pull))
|
||||
|
||||
(defun guix-run-view-graph (args)
|
||||
"Run 'guix ARGS ...' graph command, make the image and open it."
|
||||
(let* ((graph-file (guix-dot-file-name))
|
||||
(dot-args (guix-dot-arguments graph-file)))
|
||||
(if (guix-eval-read (guix-make-guile-expression
|
||||
'pipe-guix-output args dot-args))
|
||||
(guix-find-file graph-file)
|
||||
(error "Couldn't create a graph"))))
|
||||
|
||||
|
||||
;;; Generating popups, actions, etc.
|
||||
|
||||
(defmacro guix-command-define-popup-action (name &optional commands)
|
||||
"Define NAME function to generate (if needed) and run popup for COMMANDS."
|
||||
(declare (indent 1) (debug t))
|
||||
(let* ((popup-fun (guix-command-symbol `(,@commands "popup")))
|
||||
(doc (format "Call `%s' (generate it if needed)."
|
||||
popup-fun)))
|
||||
`(defun ,name (&optional arg)
|
||||
,doc
|
||||
(interactive "P")
|
||||
(unless (fboundp ',popup-fun)
|
||||
(guix-command-generate-popup ',popup-fun ',commands))
|
||||
(,popup-fun arg))))
|
||||
|
||||
(defmacro guix-command-define-execute-action (name executor
|
||||
&optional commands)
|
||||
"Define NAME function to execute the current action for guix COMMANDS.
|
||||
EXECUTOR function is called with the current command line arguments."
|
||||
(declare (indent 1) (debug t))
|
||||
(let* ((arguments-fun (guix-command-symbol `(,@commands "arguments")))
|
||||
(doc (format "Call `%s' with the current popup arguments."
|
||||
executor)))
|
||||
`(defun ,name (&rest args)
|
||||
,doc
|
||||
(interactive (,arguments-fun))
|
||||
(,executor (append ',commands
|
||||
(guix-command-post-process-args args))))))
|
||||
|
||||
(defun guix-command-generate-popup-actions (actions &optional commands)
|
||||
"Generate 'popup' commands from ACTIONS arguments for guix COMMANDS."
|
||||
(dolist (action actions)
|
||||
(let ((fun (guix-command-argument-fun action)))
|
||||
(unless (fboundp fun)
|
||||
(eval `(guix-command-define-popup-action ,fun
|
||||
,(append commands
|
||||
(list (guix-command-argument-name action)))))))))
|
||||
|
||||
(defun guix-command-generate-execute-actions (actions &optional commands)
|
||||
"Generate 'execute' commands from ACTIONS arguments for guix COMMANDS."
|
||||
(dolist (action actions)
|
||||
(let ((fun (guix-command-argument-fun action)))
|
||||
(unless (fboundp fun)
|
||||
(eval `(guix-command-define-execute-action ,fun
|
||||
,(guix-command-executor
|
||||
commands (guix-command-argument-name action))
|
||||
,commands))))))
|
||||
|
||||
(defun guix-command-generate-popup (name &optional commands)
|
||||
"Define NAME popup with 'guix COMMANDS ...' interface."
|
||||
(let* ((command (car commands))
|
||||
(man-page (concat "guix" (and command (concat "-" command))))
|
||||
(doc (format "Popup window for '%s' command."
|
||||
(guix-concat-strings (cons "guix" commands)
|
||||
" ")))
|
||||
(args (guix-command-arguments commands))
|
||||
(switches (guix-command-sort-arguments
|
||||
(guix-command-switches args)))
|
||||
(options (guix-command-sort-arguments
|
||||
(guix-command-options args)))
|
||||
(popup-actions (guix-command-sort-arguments
|
||||
(guix-command-actions args)))
|
||||
(execute-actions (unless popup-actions
|
||||
(guix-command-execute-arguments commands)))
|
||||
(actions (or popup-actions execute-actions)))
|
||||
(if popup-actions
|
||||
(guix-command-generate-popup-actions popup-actions commands)
|
||||
(guix-command-generate-execute-actions execute-actions commands))
|
||||
(eval
|
||||
`(guix-define-popup ,name
|
||||
,doc
|
||||
'guix-commands
|
||||
:man-page ,man-page
|
||||
:switches ',(mapcar #'guix-command-switch->popup-switch switches)
|
||||
:options ',(mapcar #'guix-command-option->popup-option options)
|
||||
:actions ',(mapcar #'guix-command-action->popup-action actions)
|
||||
:max-action-columns 4))))
|
||||
|
||||
;;;###autoload (autoload 'guix "guix-command" "Popup window for 'guix'." t)
|
||||
(guix-command-define-popup-action guix)
|
||||
|
||||
(defalias 'guix-edit-action #'guix-edit)
|
||||
|
||||
|
||||
(defvar guix-command-font-lock-keywords
|
||||
(eval-when-compile
|
||||
`((,(rx "("
|
||||
(group "guix-command-define-"
|
||||
(or "popup-action"
|
||||
"execute-action"
|
||||
"argument-improver"))
|
||||
symbol-end
|
||||
(zero-or-more blank)
|
||||
(zero-or-one
|
||||
(group (one-or-more (or (syntax word) (syntax symbol))))))
|
||||
(1 font-lock-keyword-face)
|
||||
(2 font-lock-function-name-face nil t)))))
|
||||
|
||||
(font-lock-add-keywords 'emacs-lisp-mode guix-command-font-lock-keywords)
|
||||
|
||||
(provide 'guix-command)
|
||||
|
||||
;;; guix-command.el ends here
|
|
@ -0,0 +1,40 @@
|
|||
;;; guix-config.el --- Compile-time configuration of Guix.
|
||||
|
||||
;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
|
||||
|
||||
;; This file is part of GNU Guix.
|
||||
|
||||
;; GNU Guix is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Guix is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defconst guix-emacs-interface-directory
|
||||
(replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@"))
|
||||
|
||||
(defconst guix-state-directory
|
||||
;; This must match `NIX_STATE_DIR' as defined in `daemon.am'.
|
||||
(or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix"))
|
||||
|
||||
(defvar guix-guile-program "@GUILE@"
|
||||
"Name of the guile executable used for Guix REPL.
|
||||
May be either a string (the name of the executable) or a list of
|
||||
strings of the form:
|
||||
|
||||
(NAME . ARGS)
|
||||
|
||||
Where ARGS is a list of arguments to the guile program.")
|
||||
|
||||
(provide 'guix-config)
|
||||
|
||||
;;; guix-config.el ends here
|
|
@ -0,0 +1,72 @@
|
|||
;;; guix-external.el --- External programs -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright © 2015 Alex Kost <alezost@gmail.com>
|
||||
|
||||
;; This file is part of GNU Guix.
|
||||
|
||||
;; GNU Guix is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Guix is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; This file provides auxiliary code for running external programs.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defgroup guix-external nil
|
||||
"Settings for external programs."
|
||||
:group 'guix)
|
||||
|
||||
(defcustom guix-dot-program (executable-find "dot")
|
||||
"Name of the 'dot' executable."
|
||||
:type 'string
|
||||
:group 'guix-external)
|
||||
|
||||
(defcustom guix-dot-default-arguments
|
||||
'("-Tpng")
|
||||
"Default arguments for 'dot' program."
|
||||
:type '(repeat string)
|
||||
:group 'guix-external)
|
||||
|
||||
(defcustom guix-dot-file-name-function #'guix-png-file-name
|
||||
"Function used to define a file name of a temporary 'dot' file.
|
||||
The function is called without arguments."
|
||||
:type '(choice (function-item guix-png-file-name)
|
||||
(function :tag "Other function"))
|
||||
:group 'guix-external)
|
||||
|
||||
(defun guix-dot-arguments (output-file &rest args)
|
||||
"Return a list of dot arguments for writing a graph into OUTPUT-FILE.
|
||||
If ARGS is nil, use `guix-dot-default-arguments'."
|
||||
(or guix-dot-program
|
||||
(error (concat "Couldn't find 'dot'.\n"
|
||||
"Set guix-dot-program to a proper value")))
|
||||
(apply #'list
|
||||
guix-dot-program
|
||||
(concat "-o" output-file)
|
||||
(or args guix-dot-default-arguments)))
|
||||
|
||||
(defun guix-dot-file-name ()
|
||||
"Call `guix-dot-file-name-function'."
|
||||
(funcall guix-dot-file-name-function))
|
||||
|
||||
(defun guix-png-file-name ()
|
||||
"Return '.png' file name in the `temporary-file-directory'."
|
||||
(concat (make-temp-name
|
||||
(concat (file-name-as-directory temporary-file-directory)
|
||||
"graph-"))
|
||||
".png"))
|
||||
|
||||
(provide 'guix-external)
|
||||
|
||||
;;; guix-external.el ends here
|
|
@ -0,0 +1,108 @@
|
|||
;;; guix-help-vars.el --- Variables related to --help output
|
||||
|
||||
;; Copyright © 2015 Alex Kost <alezost@gmail.com>
|
||||
|
||||
;; This file is part of GNU Guix.
|
||||
|
||||
;; GNU Guix is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Guix is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; This file provides regular expressions to parse various "guix
|
||||
;; ... --help" outputs and lists of non-receivable items (system types,
|
||||
;; hash formats, etc.).
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
||||
;;; Regexps for parsing "guix ..." outputs
|
||||
|
||||
(defvar guix-help-parse-option-regexp
|
||||
(rx bol " "
|
||||
(zero-or-one (group "-" (not (any "- ")))
|
||||
",")
|
||||
(one-or-more " ")
|
||||
(group "--" (one-or-more (or wordchar "-")))
|
||||
(group (zero-or-one "[")
|
||||
(zero-or-one "="))
|
||||
(zero-or-more (not space))
|
||||
(one-or-more space)
|
||||
(group (one-or-more any)))
|
||||
"Common regexp used to find command options.")
|
||||
|
||||
(defvar guix-help-parse-command-regexp
|
||||
(rx bol " "
|
||||
(group wordchar (one-or-more (or wordchar "-"))))
|
||||
"Regexp used to find guix commands.
|
||||
'Command' means any option not prefixed with '-'. For example,
|
||||
guix subcommand, system action, importer, etc.")
|
||||
|
||||
(defvar guix-help-parse-long-option-regexp
|
||||
(rx (or " " ", ")
|
||||
(group "--" (one-or-more (or wordchar "-"))
|
||||
(zero-or-one "=")))
|
||||
"Regexp used to find long options.")
|
||||
|
||||
(defvar guix-help-parse-short-option-regexp
|
||||
(rx bol (one-or-more blank)
|
||||
"-" (group (not (any "- "))))
|
||||
"Regexp used to find short options.")
|
||||
|
||||
(defvar guix-help-parse-package-regexp
|
||||
(rx bol (group (one-or-more (not blank))))
|
||||
"Regexp used to find names of the packages.")
|
||||
|
||||
(defvar guix-help-parse-list-regexp
|
||||
(rx bol (zero-or-more blank) "- "
|
||||
(group (one-or-more (or wordchar "-"))))
|
||||
"Regexp used to find various lists (lint checkers, graph types).")
|
||||
|
||||
(defvar guix-help-parse-regexp-group 1
|
||||
"Parenthesized expression of regexps used to find commands and
|
||||
options.")
|
||||
|
||||
|
||||
;;; Non-receivable lists of system types, hash formats, etc.
|
||||
|
||||
(defvar guix-help-system-types
|
||||
'("x86_64-linux" "i686-linux" "armhf-linux" "mips64el-linux")
|
||||
"List of supported systems.")
|
||||
|
||||
(defvar guix-help-source-types
|
||||
'("package" "all" "transitive")
|
||||
"List of supported sources types.")
|
||||
|
||||
(defvar guix-help-hash-formats
|
||||
'("nix-base32" "base32" "base16" "hex" "hexadecimal")
|
||||
"List of supported hash formats.")
|
||||
|
||||
(defvar guix-help-refresh-subsets
|
||||
'("core" "non-core")
|
||||
"List of supported 'refresh' subsets.")
|
||||
|
||||
(defvar guix-help-key-policies
|
||||
'("interactive" "always" "never")
|
||||
"List of supported key download policies.")
|
||||
|
||||
(defvar guix-help-verify-options
|
||||
'("repair" "contents")
|
||||
"List of supported 'verify' options")
|
||||
|
||||
(defvar guix-help-elpa-archives
|
||||
'("gnu" "melpa" "melpa-stable")
|
||||
"List of supported ELPA archives.")
|
||||
|
||||
(provide 'guix-help-vars)
|
||||
|
||||
;;; guix-help-vars.el ends here
|
|
@ -178,12 +178,12 @@ The order of displayed parameters is the same as in this list.")
|
|||
(defun guix-info-get-insert-methods (entry-type param)
|
||||
"Return list of insert methods for parameter PARAM of ENTRY-TYPE.
|
||||
See `guix-info-insert-methods' for details."
|
||||
(guix-get-key-val guix-info-insert-methods
|
||||
(guix-assq-value guix-info-insert-methods
|
||||
entry-type param))
|
||||
|
||||
(defun guix-info-get-displayed-params (entry-type)
|
||||
"Return parameters of ENTRY-TYPE that should be displayed."
|
||||
(guix-get-key-val guix-info-displayed-params
|
||||
(guix-assq-value guix-info-displayed-params
|
||||
entry-type))
|
||||
|
||||
(defun guix-info-get-indent (&optional level)
|
||||
|
@ -232,7 +232,7 @@ Use `guix-info-insert-ENTRY-TYPE-function' or
|
|||
"Insert title and value of a PARAM at point.
|
||||
ENTRY is alist with parameters and their values.
|
||||
ENTRY-TYPE is a type of ENTRY."
|
||||
(let ((val (guix-get-key-val entry param)))
|
||||
(let ((val (guix-assq-value entry param)))
|
||||
(unless (and guix-info-ignore-empty-vals (null val))
|
||||
(let* ((title (guix-get-param-title entry-type param))
|
||||
(insert-methods (guix-info-get-insert-methods entry-type param))
|
||||
|
@ -492,12 +492,12 @@ filling them to fit the window."
|
|||
(defun guix-package-info-insert-heading (entry)
|
||||
"Insert the heading for package ENTRY.
|
||||
Show package name, version, and `guix-package-info-heading-params'."
|
||||
(guix-format-insert (concat (guix-get-key-val entry 'name) " "
|
||||
(guix-get-key-val entry 'version))
|
||||
(guix-format-insert (concat (guix-assq-value entry 'name) " "
|
||||
(guix-assq-value entry 'version))
|
||||
'guix-package-info-heading)
|
||||
(insert "\n\n")
|
||||
(mapc (lambda (param)
|
||||
(let ((val (guix-get-key-val entry param))
|
||||
(let ((val (guix-assq-value entry param))
|
||||
(face (guix-get-symbol (symbol-name param)
|
||||
'info 'package)))
|
||||
(when val
|
||||
|
@ -587,10 +587,10 @@ If nil, insert installed info in a default way.")
|
|||
|
||||
(defun guix-package-info-insert-outputs (outputs entry)
|
||||
"Insert OUTPUTS from package ENTRY at point."
|
||||
(and (guix-get-key-val entry 'obsolete)
|
||||
(and (guix-assq-value entry 'obsolete)
|
||||
(guix-package-info-insert-obsolete-text))
|
||||
(and (guix-get-key-val entry 'non-unique)
|
||||
(guix-get-key-val entry 'installed)
|
||||
(and (guix-assq-value entry 'non-unique)
|
||||
(guix-assq-value entry 'installed)
|
||||
(guix-package-info-insert-non-unique-text
|
||||
(guix-get-full-name entry)))
|
||||
(insert "\n")
|
||||
|
@ -617,11 +617,11 @@ If nil, insert installed info in a default way.")
|
|||
Make some fancy text with buttons and additional stuff if the
|
||||
current OUTPUT is installed (if there is such output in
|
||||
`installed' parameter of a package ENTRY)."
|
||||
(let* ((installed (guix-get-key-val entry 'installed))
|
||||
(obsolete (guix-get-key-val entry 'obsolete))
|
||||
(let* ((installed (guix-assq-value entry 'installed))
|
||||
(obsolete (guix-assq-value entry 'obsolete))
|
||||
(installed-entry (cl-find-if
|
||||
(lambda (entry)
|
||||
(string= (guix-get-key-val entry 'output)
|
||||
(string= (guix-assq-value entry 'output)
|
||||
output))
|
||||
installed))
|
||||
(action-type (if installed-entry 'delete 'install)))
|
||||
|
@ -655,8 +655,8 @@ ENTRY is an alist with package info."
|
|||
(current-buffer)))
|
||||
(concat type-str " '" full-name "'")
|
||||
'action-type type
|
||||
'id (or (guix-get-key-val entry 'package-id)
|
||||
(guix-get-key-val entry 'id))
|
||||
'id (or (guix-assq-value entry 'package-id)
|
||||
(guix-assq-value entry 'id))
|
||||
'output output)))
|
||||
|
||||
(defun guix-package-info-insert-output-path (path &optional _)
|
||||
|
@ -720,7 +720,7 @@ PACKAGE-ID is an ID of the package which source to show."
|
|||
(entries (cl-substitute-if
|
||||
new-entry
|
||||
(lambda (entry)
|
||||
(equal (guix-get-key-val entry 'id)
|
||||
(equal (guix-assq-value entry 'id)
|
||||
entry-id))
|
||||
guix-entries
|
||||
:count 1)))
|
||||
|
@ -746,9 +746,9 @@ SOURCE is a list of URLs."
|
|||
(guix-info-insert-indent)
|
||||
(if (null source)
|
||||
(guix-format-insert nil)
|
||||
(let* ((source-file (guix-get-key-val entry 'source-file))
|
||||
(entry-id (guix-get-key-val entry 'id))
|
||||
(package-id (or (guix-get-key-val entry 'package-id)
|
||||
(let* ((source-file (guix-assq-value entry 'source-file))
|
||||
(entry-id (guix-assq-value entry 'id))
|
||||
(package-id (or (guix-assq-value entry 'package-id)
|
||||
entry-id)))
|
||||
(if (null source-file)
|
||||
(guix-info-insert-action-button
|
||||
|
@ -798,13 +798,13 @@ If nil, insert output in a default way.")
|
|||
"Insert output VERSION and obsolete text if needed at point."
|
||||
(guix-info-insert-val-default version
|
||||
'guix-package-info-version)
|
||||
(and (guix-get-key-val entry 'obsolete)
|
||||
(and (guix-assq-value entry 'obsolete)
|
||||
(guix-package-info-insert-obsolete-text)))
|
||||
|
||||
(defun guix-output-info-insert-output (output entry)
|
||||
"Insert OUTPUT and action buttons at point."
|
||||
(let* ((installed (guix-get-key-val entry 'installed))
|
||||
(obsolete (guix-get-key-val entry 'obsolete))
|
||||
(let* ((installed (guix-assq-value entry 'installed))
|
||||
(obsolete (guix-assq-value entry 'obsolete))
|
||||
(action-type (if installed 'delete 'install)))
|
||||
(guix-info-insert-val-default
|
||||
output
|
||||
|
@ -874,7 +874,7 @@ If nil, insert generation in a default way.")
|
|||
(guix-switch-to-generation guix-profile (button-get btn 'number)
|
||||
(current-buffer)))
|
||||
"Switch to this generation (make it the current one)"
|
||||
'number (guix-get-key-val entry 'number))))
|
||||
'number (guix-assq-value entry 'number))))
|
||||
|
||||
(provide 'guix-info)
|
||||
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
(require 'guix-autoloads)
|
||||
|
||||
(defvar guix-load-path
|
||||
(replace-regexp-in-string "${prefix}" "@prefix@" "@emacsuidir@")
|
||||
"Directory with scheme files for \"guix.el\" package.")
|
||||
|
||||
(defcustom guix-package-enable-at-startup t
|
||||
"If non-nil, activate Emacs packages installed in a user profile.
|
||||
Set this variable to nil before requiring `guix-init' file to
|
|
@ -1,6 +1,6 @@
|
|||
;;; guix-list.el --- List buffers for displaying entries -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright © 2014 Alex Kost <alezost@gmail.com>
|
||||
;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
|
||||
|
||||
;; This file is part of GNU Guix.
|
||||
|
||||
|
@ -110,13 +110,13 @@ parameters and their values).")
|
|||
|
||||
(defun guix-list-get-param-title (entry-type param)
|
||||
"Return title of an ENTRY-TYPE entry parameter PARAM."
|
||||
(or (guix-get-key-val guix-list-column-titles
|
||||
(or (guix-assq-value guix-list-column-titles
|
||||
entry-type param)
|
||||
(guix-get-param-title entry-type param)))
|
||||
|
||||
(defun guix-list-get-column-format (entry-type)
|
||||
"Return column format for ENTRY-TYPE."
|
||||
(guix-get-key-val guix-list-column-format entry-type))
|
||||
(guix-assq-value guix-list-column-format entry-type))
|
||||
|
||||
(defun guix-list-get-displayed-params (entry-type)
|
||||
"Return list of parameters of ENTRY-TYPE that should be displayed."
|
||||
|
@ -170,7 +170,7 @@ ENTRIES should have a form of `guix-entries'."
|
|||
Values are taken from ENTRIES which should have the form of
|
||||
`guix-entries'."
|
||||
(mapcar (lambda (entry)
|
||||
(list (guix-get-key-val entry 'id)
|
||||
(list (guix-assq-value entry 'id)
|
||||
(guix-list-get-tabulated-entry entry entry-type)))
|
||||
entries))
|
||||
|
||||
|
@ -180,8 +180,8 @@ Parameters are taken from ENTRY of ENTRY-TYPE."
|
|||
(guix-list-make-tabulated-vector
|
||||
entry-type
|
||||
(lambda (param _)
|
||||
(let ((val (guix-get-key-val entry param))
|
||||
(fun (guix-get-key-val guix-list-column-value-methods
|
||||
(let ((val (guix-assq-value entry param))
|
||||
(fun (guix-assq-value guix-list-column-value-methods
|
||||
entry-type param)))
|
||||
(if fun
|
||||
(funcall fun val entry)
|
||||
|
@ -221,7 +221,7 @@ VAL may be nil."
|
|||
(guix-package-list-mode
|
||||
(guix-list-current-id))
|
||||
(guix-output-list-mode
|
||||
(guix-get-key-val (guix-list-current-entry) 'package-id))))
|
||||
(guix-assq-value (guix-list-current-entry) 'package-id))))
|
||||
|
||||
(defun guix-list-for-each-line (fun &rest args)
|
||||
"Call FUN with ARGS for each entry line."
|
||||
|
@ -262,7 +262,7 @@ ARGS is a list of additional values.")
|
|||
|
||||
(defsubst guix-list-get-mark (name)
|
||||
"Return mark character by its NAME."
|
||||
(or (guix-get-key-val guix-list-mark-alist name)
|
||||
(or (guix-assq-value guix-list-mark-alist name)
|
||||
(error "Mark '%S' not found" name)))
|
||||
|
||||
(defsubst guix-list-get-mark-string (name)
|
||||
|
@ -355,7 +355,7 @@ With ARG, unmark all lines."
|
|||
"Put marks according to `guix-list-mark-alist'."
|
||||
(guix-list-for-each-line
|
||||
(lambda ()
|
||||
(let ((mark-name (car (guix-get-key-val guix-list-marked
|
||||
(let ((mark-name (car (guix-assq-value guix-list-marked
|
||||
(guix-list-current-id)))))
|
||||
(tabulated-list-put-tag
|
||||
(guix-list-get-mark-string (or mark-name 'empty)))))))
|
||||
|
@ -472,7 +472,7 @@ With prefix (if ARG is non-nil), describe entries marked with any mark."
|
|||
(defun guix-list-edit-package ()
|
||||
"Go to the location of the current package."
|
||||
(interactive)
|
||||
(guix-edit-package (guix-list-current-package-id)))
|
||||
(guix-edit (guix-list-current-package-id)))
|
||||
|
||||
|
||||
;;; Displaying packages
|
||||
|
@ -524,16 +524,16 @@ likely)."
|
|||
Colorize it with `guix-package-list-installed' or
|
||||
`guix-package-list-obsolete' if needed."
|
||||
(guix-get-string name
|
||||
(cond ((guix-get-key-val entry 'obsolete)
|
||||
(cond ((guix-assq-value entry 'obsolete)
|
||||
'guix-package-list-obsolete)
|
||||
((guix-get-key-val entry 'installed)
|
||||
((guix-assq-value entry 'installed)
|
||||
'guix-package-list-installed))))
|
||||
|
||||
(defun guix-package-list-get-installed-outputs (installed &optional _)
|
||||
"Return string with outputs from INSTALLED entries."
|
||||
(guix-get-string
|
||||
(mapcar (lambda (entry)
|
||||
(guix-get-key-val entry 'output))
|
||||
(guix-assq-value entry 'output))
|
||||
installed)))
|
||||
|
||||
(defun guix-package-list-marking-check ()
|
||||
|
@ -562,7 +562,7 @@ be separated with \",\")."
|
|||
(interactive "P")
|
||||
(guix-package-list-marking-check)
|
||||
(let* ((entry (guix-list-current-entry))
|
||||
(all (guix-get-key-val entry 'outputs))
|
||||
(all (guix-assq-value entry 'outputs))
|
||||
(installed (guix-get-installed-outputs entry))
|
||||
(available (cl-set-difference all installed :test #'string=)))
|
||||
(or available
|
||||
|
@ -597,7 +597,7 @@ be separated with \",\")."
|
|||
(installed (guix-get-installed-outputs entry)))
|
||||
(or installed
|
||||
(user-error "This package is not installed"))
|
||||
(when (or (guix-get-key-val entry 'obsolete)
|
||||
(when (or (guix-assq-value entry 'obsolete)
|
||||
(y-or-n-p "This package is not obsolete. Try to upgrade it anyway? "))
|
||||
(guix-package-list-mark-outputs
|
||||
'upgrade installed
|
||||
|
@ -611,14 +611,14 @@ accept an entry as argument."
|
|||
(guix-package-list-marking-check)
|
||||
(let ((obsolete (cl-remove-if-not
|
||||
(lambda (entry)
|
||||
(guix-get-key-val entry 'obsolete))
|
||||
(guix-assq-value entry 'obsolete))
|
||||
guix-entries)))
|
||||
(guix-list-for-each-line
|
||||
(lambda ()
|
||||
(let* ((id (guix-list-current-id))
|
||||
(entry (cl-find-if
|
||||
(lambda (entry)
|
||||
(equal id (guix-get-key-val entry 'id)))
|
||||
(equal id (guix-assq-value entry 'id)))
|
||||
obsolete)))
|
||||
(when entry
|
||||
(funcall fun entry)))))))
|
||||
|
@ -682,7 +682,7 @@ The specification is suitable for `guix-process-package-actions'."
|
|||
(interactive)
|
||||
(guix-package-list-marking-check)
|
||||
(let* ((entry (guix-list-current-entry))
|
||||
(installed (guix-get-key-val entry 'installed)))
|
||||
(installed (guix-assq-value entry 'installed)))
|
||||
(if installed
|
||||
(user-error "This output is already installed")
|
||||
(guix-list--mark 'install t))))
|
||||
|
@ -692,7 +692,7 @@ The specification is suitable for `guix-process-package-actions'."
|
|||
(interactive)
|
||||
(guix-package-list-marking-check)
|
||||
(let* ((entry (guix-list-current-entry))
|
||||
(installed (guix-get-key-val entry 'installed)))
|
||||
(installed (guix-assq-value entry 'installed)))
|
||||
(if installed
|
||||
(guix-list--mark 'delete t)
|
||||
(user-error "This output is not installed"))))
|
||||
|
@ -702,10 +702,10 @@ The specification is suitable for `guix-process-package-actions'."
|
|||
(interactive)
|
||||
(guix-package-list-marking-check)
|
||||
(let* ((entry (guix-list-current-entry))
|
||||
(installed (guix-get-key-val entry 'installed)))
|
||||
(installed (guix-assq-value entry 'installed)))
|
||||
(or installed
|
||||
(user-error "This output is not installed"))
|
||||
(when (or (guix-get-key-val entry 'obsolete)
|
||||
(when (or (guix-assq-value entry 'obsolete)
|
||||
(y-or-n-p "This output is not obsolete. Try to upgrade it anyway? "))
|
||||
(guix-list--mark 'upgrade t))))
|
||||
|
||||
|
@ -777,8 +777,8 @@ VAL is a boolean value."
|
|||
"Switch current profile to the generation at point."
|
||||
(interactive)
|
||||
(let* ((entry (guix-list-current-entry))
|
||||
(current (guix-get-key-val entry 'current))
|
||||
(number (guix-get-key-val entry 'number)))
|
||||
(current (guix-assq-value entry 'current))
|
||||
(number (guix-assq-value entry 'number)))
|
||||
(if current
|
||||
(user-error "This generation is already the current one")
|
||||
(guix-switch-to-generation guix-profile number (current-buffer)))))
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
|
||||
;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -45,6 +45,7 @@
|
|||
(use-modules
|
||||
(ice-9 vlist)
|
||||
(ice-9 match)
|
||||
(ice-9 popen)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-2)
|
||||
(srfi srfi-11)
|
||||
|
@ -57,6 +58,8 @@
|
|||
(guix licenses)
|
||||
(guix utils)
|
||||
(guix ui)
|
||||
(guix scripts graph)
|
||||
(guix scripts lint)
|
||||
(guix scripts package)
|
||||
(guix scripts pull)
|
||||
(gnu packages))
|
||||
|
@ -68,7 +71,14 @@
|
|||
(define (list-maybe obj)
|
||||
(if (list? obj) obj (list obj)))
|
||||
|
||||
(define full-name->name+version package-name->name+version)
|
||||
(define (full-name->name+version spec)
|
||||
"Given package specification SPEC with or without output,
|
||||
return two values: name and version. For example, for SPEC
|
||||
\"foo-0.9.1b:lib\", return \"foo\" and \"0.9.1b\"."
|
||||
(let-values (((name version output)
|
||||
(package-specification->name+version+output spec)))
|
||||
(values name version)))
|
||||
|
||||
(define (name+version->full-name name version)
|
||||
(string-append name "-" version))
|
||||
|
||||
|
@ -244,6 +254,10 @@ Example:
|
|||
(filter-map (match-lambda
|
||||
((_ (? package? package))
|
||||
(package-full-name package))
|
||||
((_ (? package? package) output)
|
||||
(make-package-specification (package-name package)
|
||||
(package-version package)
|
||||
output))
|
||||
(_ #f))
|
||||
inputs))
|
||||
|
||||
|
@ -279,7 +293,7 @@ Example:
|
|||
(license . ,package-license-names)
|
||||
(source . ,package-source-names)
|
||||
(synopsis . ,package-synopsis)
|
||||
(description . ,package-description)
|
||||
(description . ,package-description-string)
|
||||
(home-url . ,package-home-page)
|
||||
(outputs . ,package-outputs)
|
||||
(non-unique . ,(negate package-unique?))
|
||||
|
@ -887,9 +901,10 @@ GENERATIONS is a list of generation numbers."
|
|||
(with-store store
|
||||
(delete-generations store profile generations)))
|
||||
|
||||
(define (package-location-string package-id)
|
||||
"Return a location string of a package PACKAGE-ID."
|
||||
(and-let* ((package (package-by-id package-id))
|
||||
(define (package-location-string id-or-name)
|
||||
"Return a location string of a package with ID-OR-NAME."
|
||||
(and-let* ((package (or (package-by-id id-or-name)
|
||||
(first (packages-by-name id-or-name))))
|
||||
(location (package-location package)))
|
||||
(location->string location)))
|
||||
|
||||
|
@ -927,3 +942,54 @@ GENERATIONS is a list of generation numbers."
|
|||
(build-derivations store derivations))
|
||||
(format #t "The source store path: ~a~%"
|
||||
(package-source-derivation->store-path derivation))))))
|
||||
|
||||
|
||||
;;; Executing guix commands
|
||||
|
||||
(define (guix-command . args)
|
||||
"Run 'guix ARGS ...' command."
|
||||
(catch 'quit
|
||||
(lambda () (apply run-guix args))
|
||||
(const #t)))
|
||||
|
||||
(define (guix-command-output . args)
|
||||
"Return string with 'guix ARGS ...' output."
|
||||
(with-output-to-string
|
||||
(lambda () (apply guix-command args))))
|
||||
|
||||
(define (help-string . commands)
|
||||
"Return string with 'guix COMMANDS ... --help' output."
|
||||
(apply guix-command-output `(,@commands "--help")))
|
||||
|
||||
(define (pipe-guix-output guix-args command-args)
|
||||
"Run 'guix GUIX-ARGS ...' command and pipe its output to a shell command
|
||||
defined by COMMAND-ARGS.
|
||||
Return #t if the shell command was executed successfully."
|
||||
(let ((pipe (apply open-pipe* OPEN_WRITE command-args)))
|
||||
(with-output-to-port pipe
|
||||
(lambda () (apply guix-command guix-args)))
|
||||
(zero? (status:exit-val (close-pipe pipe)))))
|
||||
|
||||
|
||||
;;; Lists of packages, lint checkers, etc.
|
||||
|
||||
(define (graph-type-names)
|
||||
"Return a list of names of available graph node types."
|
||||
(map node-type-name %node-types))
|
||||
|
||||
(define (lint-checker-names)
|
||||
"Return a list of names of available lint checkers."
|
||||
(map (lambda (checker)
|
||||
(symbol->string (lint-checker-name checker)))
|
||||
%checkers))
|
||||
|
||||
(define (package-names)
|
||||
"Return a list of names of available packages."
|
||||
(delete-duplicates
|
||||
(fold-packages (lambda (pkg res)
|
||||
(cons (package-name pkg) res))
|
||||
'())))
|
||||
|
||||
;; See the comment to 'guix-package-names' function in "guix-popup.el".
|
||||
(define (package-names-lists)
|
||||
(map list (package-names)))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; guix-messages.el --- Minibuffer messages
|
||||
|
||||
;; Copyright © 2014 Alex Kost <alezost@gmail.com>
|
||||
;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
|
||||
|
||||
;; This file is part of GNU Guix.
|
||||
|
||||
|
@ -186,14 +186,14 @@
|
|||
(defun guix-result-message (profile entries entry-type
|
||||
search-type search-vals)
|
||||
"Display an appropriate message after displaying ENTRIES."
|
||||
(let* ((type-spec (guix-get-key-val guix-messages
|
||||
(let* ((type-spec (guix-assq-value guix-messages
|
||||
entry-type search-type))
|
||||
(fun-or-count-spec (car type-spec)))
|
||||
(if (functionp fun-or-count-spec)
|
||||
(funcall fun-or-count-spec profile entries search-vals)
|
||||
(let* ((count (length entries))
|
||||
(count-key (if (> count 1) 'many count))
|
||||
(msg-spec (guix-get-key-val type-spec count-key))
|
||||
(msg-spec (guix-assq-value type-spec count-key))
|
||||
(msg (car msg-spec))
|
||||
(args (cdr msg-spec)))
|
||||
(mapc (lambda (subst)
|
||||
|
|
|
@ -28,59 +28,7 @@
|
|||
(require 'pcmpl-unix)
|
||||
(require 'cl-lib)
|
||||
(require 'guix-utils)
|
||||
|
||||
|
||||
;;; Regexps for parsing various "guix ..." outputs
|
||||
|
||||
(defvar guix-pcomplete-parse-package-regexp
|
||||
(rx bol (group (one-or-more (not blank))))
|
||||
"Regexp used to find names of the packages.")
|
||||
|
||||
(defvar guix-pcomplete-parse-command-regexp
|
||||
(rx bol " "
|
||||
(group wordchar (one-or-more (or wordchar "-"))))
|
||||
"Regexp used to find guix commands.
|
||||
'Command' means any option not prefixed with '-'. For example,
|
||||
guix subcommand, system action, importer, etc.")
|
||||
|
||||
(defvar guix-pcomplete-parse-long-option-regexp
|
||||
(rx (or " " ", ")
|
||||
(group "--" (one-or-more (or wordchar "-"))
|
||||
(zero-or-one "=")))
|
||||
"Regexp used to find long options.")
|
||||
|
||||
(defvar guix-pcomplete-parse-short-option-regexp
|
||||
(rx bol (one-or-more blank)
|
||||
"-" (group (not (any "- "))))
|
||||
"Regexp used to find short options.")
|
||||
|
||||
(defvar guix-pcomplete-parse-list-regexp
|
||||
(rx bol (zero-or-more blank) "- "
|
||||
(group (one-or-more (or wordchar "-"))))
|
||||
"Regexp used to find various lists (lint checkers, graph types).")
|
||||
|
||||
(defvar guix-pcomplete-parse-regexp-group 1
|
||||
"Parenthesized expression of regexps used to find commands and
|
||||
options.")
|
||||
|
||||
|
||||
;;; Non-receivable completions
|
||||
|
||||
(defvar guix-pcomplete-systems
|
||||
'("x86_64-linux" "i686-linux" "armhf-linux" "mips64el-linux")
|
||||
"List of supported systems.")
|
||||
|
||||
(defvar guix-pcomplete-hash-formats
|
||||
'("nix-base32" "base32" "base16" "hex" "hexadecimal")
|
||||
"List of supported hash formats.")
|
||||
|
||||
(defvar guix-pcomplete-refresh-subsets
|
||||
'("core" "non-core")
|
||||
"List of supported 'refresh' subsets.")
|
||||
|
||||
(defvar guix-pcomplete-key-policies
|
||||
'("interactive" "always" "never")
|
||||
"List of supported key download policies.")
|
||||
(require 'guix-help-vars)
|
||||
|
||||
|
||||
;;; Interacting with guix
|
||||
|
@ -105,9 +53,8 @@ Return a list of strings matching REGEXP.
|
|||
GROUP specifies a parenthesized expression used in REGEXP."
|
||||
(with-temp-buffer
|
||||
(apply #'guix-pcomplete-run-guix args)
|
||||
(goto-char (point-min))
|
||||
(let (result)
|
||||
(while (re-search-forward regexp nil t)
|
||||
(guix-while-search regexp
|
||||
(push (match-string-no-properties group) result))
|
||||
(nreverse result))))
|
||||
|
||||
|
@ -129,7 +76,7 @@ function call is returned."
|
|||
(let* ((args '("--help"))
|
||||
(args (if command (cons command args) args))
|
||||
(res (apply #'guix-pcomplete-run-guix-and-search
|
||||
,regexp guix-pcomplete-parse-regexp-group args)))
|
||||
,regexp guix-help-parse-regexp-group args)))
|
||||
,(if filter
|
||||
`(funcall ,filter res)
|
||||
'res))))
|
||||
|
@ -138,23 +85,23 @@ function call is returned."
|
|||
"If COMMAND is nil, return a list of available guix commands.
|
||||
If COMMAND is non-nil (it should be a string), return available
|
||||
subcommands, actions, etc. for this guix COMMAND."
|
||||
guix-pcomplete-parse-command-regexp)
|
||||
guix-help-parse-command-regexp)
|
||||
|
||||
(guix-pcomplete-define-options-finder guix-pcomplete-long-options
|
||||
"Return a list of available long options for guix COMMAND."
|
||||
guix-pcomplete-parse-long-option-regexp)
|
||||
guix-help-parse-long-option-regexp)
|
||||
|
||||
(guix-pcomplete-define-options-finder guix-pcomplete-short-options
|
||||
"Return a string with available short options for guix COMMAND."
|
||||
guix-pcomplete-parse-short-option-regexp
|
||||
guix-help-parse-short-option-regexp
|
||||
(lambda (list)
|
||||
(mapconcat #'identity list "")))
|
||||
(guix-concat-strings list "")))
|
||||
|
||||
(guix-memoized-defun guix-pcomplete-all-packages ()
|
||||
"Return a list of all available Guix packages."
|
||||
(guix-pcomplete-run-guix-and-search
|
||||
guix-pcomplete-parse-package-regexp
|
||||
guix-pcomplete-parse-regexp-group
|
||||
guix-help-parse-package-regexp
|
||||
guix-help-parse-regexp-group
|
||||
"package" "--list-available"))
|
||||
|
||||
(guix-memoized-defun guix-pcomplete-installed-packages (&optional profile)
|
||||
|
@ -163,22 +110,22 @@ subcommands, actions, etc. for this guix COMMAND."
|
|||
(list (concat "--profile=" profile))))
|
||||
(args (append '("package" "--list-installed") args)))
|
||||
(apply #'guix-pcomplete-run-guix-and-search
|
||||
guix-pcomplete-parse-package-regexp
|
||||
guix-pcomplete-parse-regexp-group
|
||||
guix-help-parse-package-regexp
|
||||
guix-help-parse-regexp-group
|
||||
args)))
|
||||
|
||||
(guix-memoized-defun guix-pcomplete-lint-checkers ()
|
||||
"Return a list of all available lint checkers."
|
||||
(guix-pcomplete-run-guix-and-search
|
||||
guix-pcomplete-parse-list-regexp
|
||||
guix-pcomplete-parse-regexp-group
|
||||
guix-help-parse-list-regexp
|
||||
guix-help-parse-regexp-group
|
||||
"lint" "--list-checkers"))
|
||||
|
||||
(guix-memoized-defun guix-pcomplete-graph-types ()
|
||||
"Return a list of all available graph types."
|
||||
(guix-pcomplete-run-guix-and-search
|
||||
guix-pcomplete-parse-list-regexp
|
||||
guix-pcomplete-parse-regexp-group
|
||||
guix-help-parse-list-regexp
|
||||
guix-help-parse-regexp-group
|
||||
"graph" "--list-types"))
|
||||
|
||||
|
||||
|
@ -284,7 +231,7 @@ INPUT is the current partially completed string."
|
|||
((option? "-L" "--load-path")
|
||||
(complete* (pcomplete-dirs)))
|
||||
((string= "--key-download" option)
|
||||
(complete* guix-pcomplete-key-policies))
|
||||
(complete* guix-help-key-policies))
|
||||
|
||||
((command? "package")
|
||||
(cond
|
||||
|
@ -313,7 +260,7 @@ INPUT is the current partially completed string."
|
|||
|
||||
((and (command? "archive" "build" "size")
|
||||
(option? "-s" "--system"))
|
||||
(complete* guix-pcomplete-systems))
|
||||
(complete* guix-help-system-types))
|
||||
|
||||
((and (command? "build")
|
||||
(option? "-r" "--root"))
|
||||
|
@ -329,7 +276,7 @@ INPUT is the current partially completed string."
|
|||
|
||||
((and (command? "hash" "download")
|
||||
(option? "-f" "--format"))
|
||||
(complete* guix-pcomplete-hash-formats))
|
||||
(complete* guix-help-hash-formats))
|
||||
|
||||
((and (command? "lint")
|
||||
(option? "-c" "--checkers"))
|
||||
|
@ -342,7 +289,7 @@ INPUT is the current partially completed string."
|
|||
|
||||
((and (command? "refresh")
|
||||
(option? "-s" "--select"))
|
||||
(complete* guix-pcomplete-refresh-subsets))
|
||||
(complete* guix-help-refresh-subsets))
|
||||
|
||||
((and (command? "size")
|
||||
(option? "-m" "--map-file"))
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
;;; guix-popup.el --- Popup windows library
|
||||
|
||||
;; Copyright © 2015 Alex Kost <alezost@gmail.com>
|
||||
|
||||
;; This file is part of GNU Guix.
|
||||
|
||||
;; GNU Guix is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Guix is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; This file provides `guix-define-popup' macro which is just an alias
|
||||
;; to `magit-define-popup'. According to the manual (info
|
||||
;; "(magit-popup) Defining prefix and suffix commands") `magit-popup'
|
||||
;; library will eventually be superseded by a more general library.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'magit-popup)
|
||||
|
||||
(defalias 'guix-define-popup 'magit-define-popup)
|
||||
|
||||
(defvar guix-popup-font-lock-keywords
|
||||
(eval-when-compile
|
||||
`((,(rx "("
|
||||
(group "guix-define-popup")
|
||||
symbol-end
|
||||
(zero-or-more blank)
|
||||
(zero-or-one
|
||||
(group (one-or-more (or (syntax word) (syntax symbol))))))
|
||||
(1 font-lock-keyword-face)
|
||||
(2 font-lock-function-name-face nil t)))))
|
||||
|
||||
(font-lock-add-keywords 'emacs-lisp-mode guix-popup-font-lock-keywords)
|
||||
|
||||
(provide 'guix-popup)
|
||||
|
||||
;;; guix-popup.el ends here
|
|
@ -1,6 +1,6 @@
|
|||
;;; guix-prettify.el --- Prettify Guix store file names
|
||||
|
||||
;; Copyright © 2014 Alex Kost <alezost@gmail.com>
|
||||
;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
|
||||
|
||||
;; This file is part of GNU Guix.
|
||||
|
||||
|
@ -47,9 +47,12 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
(require 'guix-utils)
|
||||
|
||||
(defgroup guix-prettify nil
|
||||
"Prettify Guix store file names."
|
||||
:prefix "guix-prettify-"
|
||||
:group 'guix
|
||||
:group 'font-lock
|
||||
:group 'convenience)
|
||||
|
||||
|
@ -136,13 +139,11 @@ enabling/disabling `guix-prettify-mode'. If nil, do nothing.")
|
|||
(remove-text-properties (point-min)
|
||||
(point-max)
|
||||
'(composition nil))
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward guix-prettify-regexp nil t)
|
||||
(guix-while-search guix-prettify-regexp
|
||||
(remove-text-properties
|
||||
(match-beginning guix-prettify-regexp-group)
|
||||
(match-end guix-prettify-regexp-group)
|
||||
'(composition nil))))))))
|
||||
'(composition nil)))))))
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode guix-prettify-mode
|
||||
|
|
|
@ -19,12 +19,14 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
(require 'guix-config)
|
||||
|
||||
(defvar guix-user-profile
|
||||
(expand-file-name "~/.guix-profile")
|
||||
"User profile.")
|
||||
|
||||
(defvar guix-default-profile
|
||||
(concat (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix")
|
||||
(concat guix-state-directory
|
||||
"/profiles/per-user/"
|
||||
(getenv "USER")
|
||||
"/guix-profile")
|
|
@ -0,0 +1,176 @@
|
|||
;;; guix-read.el --- Minibuffer readers
|
||||
|
||||
;; Copyright © 2015 Alex Kost <alezost@gmail.com>
|
||||
|
||||
;; This file is part of GNU Guix.
|
||||
|
||||
;; GNU Guix is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; GNU Guix is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; This file provides functions to prompt a user for packages, system
|
||||
;; types, hash formats and other guix related stuff.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'guix-help-vars)
|
||||
(require 'guix-utils)
|
||||
(require 'guix-base)
|
||||
|
||||
(defun guix-read-file-name (prompt &optional dir default-filename
|
||||
mustmatch initial predicate)
|
||||
"Read file name.
|
||||
This function is similar to `read-file-name' except it also
|
||||
expands the file name."
|
||||
(expand-file-name (read-file-name prompt dir default-filename
|
||||
mustmatch initial predicate)))
|
||||
|
||||
(defmacro guix-define-reader (name read-fun completions prompt)
|
||||
"Define NAME function to read from minibuffer.
|
||||
READ-FUN may be `completing-read', `completing-read-multiple' or
|
||||
another function with the same arguments."
|
||||
`(defun ,name (&optional prompt initial-contents)
|
||||
(,read-fun ,(if prompt
|
||||
`(or prompt ,prompt)
|
||||
'prompt)
|
||||
,completions nil nil initial-contents)))
|
||||
|
||||
(defmacro guix-define-readers (&rest args)
|
||||
"Define reader functions.
|
||||
|
||||
ARGS should have a form [KEYWORD VALUE] ... The following
|
||||
keywords are available:
|
||||
|
||||
- `completions-var' - variable used to get completions.
|
||||
|
||||
- `completions-getter' - function used to get completions.
|
||||
|
||||
- `single-reader', `single-prompt' - name of a function to read
|
||||
a single value, and a prompt for it.
|
||||
|
||||
- `multiple-reader', `multiple-prompt' - name of a function to
|
||||
read multiple values, and a prompt for it.
|
||||
|
||||
- `multiple-separator' - if specified, another
|
||||
`<multiple-reader-name>-string' function returning a string
|
||||
of multiple values separated the specified separator will be
|
||||
defined."
|
||||
(let (completions-var
|
||||
completions-getter
|
||||
single-reader
|
||||
single-prompt
|
||||
multiple-reader
|
||||
multiple-prompt
|
||||
multiple-separator)
|
||||
|
||||
;; Process the keyword args.
|
||||
(while (keywordp (car args))
|
||||
(pcase (pop args)
|
||||
(`:completions-var (setq completions-var (pop args)))
|
||||
(`:completions-getter (setq completions-getter (pop args)))
|
||||
(`:single-reader (setq single-reader (pop args)))
|
||||
(`:single-prompt (setq single-prompt (pop args)))
|
||||
(`:multiple-reader (setq multiple-reader (pop args)))
|
||||
(`:multiple-prompt (setq multiple-prompt (pop args)))
|
||||
(`:multiple-separator (setq multiple-separator (pop args)))
|
||||
(_ (pop args))))
|
||||
|
||||
(let ((completions
|
||||
(cond ((and completions-var completions-getter)
|
||||
`(or ,completions-var
|
||||
(setq ,completions-var
|
||||
(funcall ',completions-getter))))
|
||||
(completions-var
|
||||
completions-var)
|
||||
(completions-getter
|
||||
`(funcall ',completions-getter)))))
|
||||
`(progn
|
||||
,(when (and completions-var
|
||||
(not (boundp completions-var)))
|
||||
`(defvar ,completions-var nil))
|
||||
|
||||
,(when single-reader
|
||||
`(guix-define-reader ,single-reader completing-read
|
||||
,completions ,single-prompt))
|
||||
|
||||
,(when multiple-reader
|
||||
`(guix-define-reader ,multiple-reader completing-read-multiple
|
||||
,completions ,multiple-prompt))
|
||||
|
||||
,(when (and multiple-reader multiple-separator)
|
||||
(let ((name (intern (concat (symbol-name multiple-reader)
|
||||
"-string"))))
|
||||
`(defun ,name (&optional prompt initial-contents)
|
||||
(guix-concat-strings
|
||||
(,multiple-reader prompt initial-contents)
|
||||
,multiple-separator))))))))
|
||||
|
||||
(guix-define-readers
|
||||
:completions-var guix-help-system-types
|
||||
:single-reader guix-read-system-type
|
||||
:single-prompt "System type: ")
|
||||
|
||||
(guix-define-readers
|
||||
:completions-var guix-help-source-types
|
||||
:single-reader guix-read-source-type
|
||||
:single-prompt "Source type: ")
|
||||
|
||||
(guix-define-readers
|
||||
:completions-var guix-help-hash-formats
|
||||
:single-reader guix-read-hash-format
|
||||
:single-prompt "Hash format: ")
|
||||
|
||||
(guix-define-readers
|
||||
:completions-var guix-help-refresh-subsets
|
||||
:single-reader guix-read-refresh-subset
|
||||
:single-prompt "Refresh subset: ")
|
||||
|
||||
(guix-define-readers
|
||||
:completions-var guix-help-key-policies
|
||||
:single-reader guix-read-key-policy
|
||||
:single-prompt "Key policy: ")
|
||||
|
||||
(guix-define-readers
|
||||
:completions-var guix-help-elpa-archives
|
||||
:single-reader guix-read-elpa-archive
|
||||
:single-prompt "ELPA archive: ")
|
||||
|
||||
(guix-define-readers
|
||||
:completions-var guix-help-verify-options
|
||||
:multiple-reader guix-read-verify-options
|
||||
:multiple-prompt "Verify option,s: "
|
||||
:multiple-separator ",")
|
||||
|
||||
(guix-define-readers
|
||||
:completions-getter guix-graph-type-names
|
||||
:single-reader guix-read-graph-type
|
||||
:single-prompt "Graph node type: ")
|
||||
|
||||
(guix-define-readers
|
||||
:completions-getter guix-lint-checker-names
|
||||
:multiple-reader guix-read-lint-checker-names
|
||||
:multiple-prompt "Linter,s: "
|
||||
:multiple-separator ",")
|
||||
|
||||
(guix-define-readers
|
||||
:completions-getter guix-package-names
|
||||
:single-reader guix-read-package-name
|
||||
:single-prompt "Package: "
|
||||
:multiple-reader guix-read-package-names
|
||||
:multiple-prompt "Package,s: "
|
||||
:multiple-separator " ")
|
||||
|
||||
(provide 'guix-read)
|
||||
|
||||
;;; guix-read.el ends here
|
|
@ -128,6 +128,53 @@ split it into several short lines."
|
|||
(fill-region (point-min) (point-max)))
|
||||
(buffer-string)))
|
||||
|
||||
(defun guix-concat-strings (strings separator &optional location)
|
||||
"Return new string by concatenating STRINGS with SEPARATOR.
|
||||
If LOCATION is a symbol `head', add another SEPARATOR to the
|
||||
beginning of the returned string; if `tail' - add SEPARATOR to
|
||||
the end of the string; if nil, do not add SEPARATOR; otherwise
|
||||
add both to the end and to the beginning."
|
||||
(let ((str (mapconcat #'identity strings separator)))
|
||||
(cond ((null location)
|
||||
str)
|
||||
((eq location 'head)
|
||||
(concat separator str))
|
||||
((eq location 'tail)
|
||||
(concat str separator))
|
||||
(t
|
||||
(concat separator str separator)))))
|
||||
|
||||
(defun guix-shell-quote-argument (argument)
|
||||
"Quote shell command ARGUMENT.
|
||||
This function is similar to `shell-quote-argument', but less strict."
|
||||
(if (equal argument "")
|
||||
"''"
|
||||
(replace-regexp-in-string
|
||||
"\n" "'\n'"
|
||||
(replace-regexp-in-string
|
||||
(rx (not (any alnum "-=,./\n"))) "\\\\\\&" argument))))
|
||||
|
||||
(defun guix-command-symbol (&optional args)
|
||||
"Return symbol by concatenating 'guix' and ARGS (strings)."
|
||||
(intern (guix-concat-strings (cons "guix" args) "-")))
|
||||
|
||||
(defun guix-command-string (&optional args)
|
||||
"Return 'guix ARGS ...' string with quoted shell arguments."
|
||||
(let ((args (mapcar #'guix-shell-quote-argument args)))
|
||||
(guix-concat-strings (cons "guix" args) " ")))
|
||||
|
||||
(defun guix-copy-as-kill (string &optional no-message?)
|
||||
"Put STRING into `kill-ring'.
|
||||
If NO-MESSAGE? is non-nil, do not display a message about it."
|
||||
(kill-new string)
|
||||
(unless no-message?
|
||||
(message "'%s' has been added to kill ring." string)))
|
||||
|
||||
(defun guix-copy-command-as-kill (args &optional no-message?)
|
||||
"Put 'guix ARGS ...' string into `kill-ring'.
|
||||
See also `guix-copy-as-kill'."
|
||||
(guix-copy-as-kill (guix-command-string args) no-message?))
|
||||
|
||||
(defun guix-completing-read-multiple (prompt table &optional predicate
|
||||
require-match initial-input
|
||||
hist def inherit-input-method)
|
||||
|
@ -146,20 +193,56 @@ Return time value."
|
|||
(require 'org)
|
||||
(org-read-date nil t nil prompt))
|
||||
|
||||
(defun guix-get-key-val (alist &rest keys)
|
||||
"Return value from ALIST by KEYS.
|
||||
ALIST is alist of alists of alists ... which can be consecutively
|
||||
accessed with KEYS."
|
||||
(let ((val alist))
|
||||
(dolist (key keys val)
|
||||
(setq val (cdr (assq key val))))))
|
||||
(defcustom guix-find-file-function #'find-file
|
||||
"Function used to find a file.
|
||||
The function is called by `guix-find-file' with a file name as a
|
||||
single argument."
|
||||
:type '(choice (function-item find-file)
|
||||
(function-item org-open-file)
|
||||
(function :tag "Other function"))
|
||||
:group 'guix)
|
||||
|
||||
(defun guix-find-file (file)
|
||||
"Find FILE if it exists."
|
||||
(if (file-exists-p file)
|
||||
(find-file file)
|
||||
(funcall guix-find-file-function file)
|
||||
(message "File '%s' does not exist." file)))
|
||||
|
||||
(defmacro guix-while-search (regexp &rest body)
|
||||
"Evaluate BODY after each search for REGEXP in the current buffer."
|
||||
(declare (indent 1) (debug t))
|
||||
`(save-excursion
|
||||
(goto-char (point-min))
|
||||
(while (re-search-forward ,regexp nil t)
|
||||
,@body)))
|
||||
|
||||
(defun guix-any (pred lst)
|
||||
"Test whether any element from LST satisfies PRED.
|
||||
If so, return the return value from the successful PRED call.
|
||||
Return nil otherwise."
|
||||
(when lst
|
||||
(or (funcall pred (car lst))
|
||||
(guix-any pred (cdr lst)))))
|
||||
|
||||
|
||||
;;; Alist accessors
|
||||
|
||||
(defmacro guix-define-alist-accessor (name assoc-fun)
|
||||
"Define NAME function to access alist values using ASSOC-FUN."
|
||||
`(defun ,name (alist &rest keys)
|
||||
,(format "Return value from ALIST by KEYS using `%s'.
|
||||
ALIST is alist of alists of alists ... which can be consecutively
|
||||
accessed with KEYS."
|
||||
assoc-fun)
|
||||
(if (or (null alist) (null keys))
|
||||
alist
|
||||
(apply #',name
|
||||
(cdr (,assoc-fun (car keys) alist))
|
||||
(cdr keys)))))
|
||||
|
||||
(guix-define-alist-accessor guix-assq-value assq)
|
||||
(guix-define-alist-accessor guix-assoc-value assoc)
|
||||
|
||||
|
||||
;;; Diff
|
||||
|
||||
|
@ -199,6 +282,27 @@ See `defun' for the meaning of arguments."
|
|||
(mapconcat #'symbol-name arglist " ")
|
||||
docstring)))
|
||||
|
||||
(defmacro guix-memoized-defalias (symbol definition &optional docstring)
|
||||
"Set SYMBOL's function definition to memoized version of DEFINITION."
|
||||
(declare (doc-string 3) (indent 1))
|
||||
`(defalias ',symbol
|
||||
(guix-memoize #',definition)
|
||||
,(or docstring
|
||||
(format "Memoized version of `%S'." definition))))
|
||||
|
||||
(defvar guix-memoized-font-lock-keywords
|
||||
(eval-when-compile
|
||||
`((,(rx "("
|
||||
(group "guix-memoized-" (or "defun" "defalias"))
|
||||
symbol-end
|
||||
(zero-or-more blank)
|
||||
(zero-or-one
|
||||
(group (one-or-more (or (syntax word) (syntax symbol))))))
|
||||
(1 font-lock-keyword-face)
|
||||
(2 font-lock-function-name-face nil t)))))
|
||||
|
||||
(font-lock-add-keywords 'emacs-lisp-mode guix-memoized-font-lock-keywords)
|
||||
|
||||
(provide 'guix-utils)
|
||||
|
||||
;;; guix-utils.el ends here
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; guix.el --- Interface for GNU Guix package manager
|
||||
|
||||
;; Copyright © 2014 Alex Kost <alezost@gmail.com>
|
||||
;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
|
||||
|
||||
;; Package-Requires: ((geiser "0.3"))
|
||||
;; Keywords: tools
|
||||
|
@ -32,6 +32,7 @@
|
|||
(require 'guix-list)
|
||||
(require 'guix-info)
|
||||
(require 'guix-utils)
|
||||
(require 'guix-read)
|
||||
|
||||
(defgroup guix nil
|
||||
"Interface for Guix package manager."
|
||||
|
@ -193,6 +194,15 @@ Interactively with prefix, prompt for PROFILE."
|
|||
(float-time from)
|
||||
(float-time to)))
|
||||
|
||||
;;;###autoload
|
||||
(defun guix-edit (id-or-name)
|
||||
"Edit (go to location of) package with ID-OR-NAME."
|
||||
(interactive (list (guix-read-package-name)))
|
||||
(let ((loc (guix-package-location id-or-name)))
|
||||
(if loc
|
||||
(guix-find-location loc)
|
||||
(message "Couldn't find package location."))))
|
||||
|
||||
(provide 'guix)
|
||||
|
||||
;;; guix.el ends here
|
||||
|
|
|
@ -239,6 +239,7 @@ GNU_SYSTEM_MODULES = \
|
|||
gnu/packages/onc-rpc.scm \
|
||||
gnu/packages/openbox.scm \
|
||||
gnu/packages/openldap.scm \
|
||||
gnu/packages/openstack.scm \
|
||||
gnu/packages/orpheus.scm \
|
||||
gnu/packages/ots.scm \
|
||||
gnu/packages/package-management.scm \
|
||||
|
@ -416,12 +417,6 @@ dist_patch_DATA = \
|
|||
gnu/packages/patches/clucene-pkgconfig.patch \
|
||||
gnu/packages/patches/cmake-fix-tests.patch \
|
||||
gnu/packages/patches/coreutils-racy-tail-test.patch \
|
||||
gnu/packages/patches/cpio-CVE-2014-9112-pt1.patch \
|
||||
gnu/packages/patches/cpio-CVE-2014-9112-pt2.patch \
|
||||
gnu/packages/patches/cpio-CVE-2014-9112-pt3.patch \
|
||||
gnu/packages/patches/cpio-CVE-2014-9112-pt4.patch \
|
||||
gnu/packages/patches/cpio-CVE-2014-9112-pt5.patch \
|
||||
gnu/packages/patches/cpio-fix-symlink-bad-length-test.patch \
|
||||
gnu/packages/patches/cpio-gets-undeclared.patch \
|
||||
gnu/packages/patches/cpufrequtils-fix-aclocal.patch \
|
||||
gnu/packages/patches/crda-optional-gcrypt.patch \
|
||||
|
@ -476,6 +471,7 @@ dist_patch_DATA = \
|
|||
gnu/packages/patches/glibc-locales.patch \
|
||||
gnu/packages/patches/glibc-o-largefile.patch \
|
||||
gnu/packages/patches/gmp-arm-asm-nothumb.patch \
|
||||
gnu/packages/patches/gnucash-price-quotes-perl.patch \
|
||||
gnu/packages/patches/gnutls-doc-fix.patch \
|
||||
gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \
|
||||
gnu/packages/patches/gobject-introspection-cc.patch \
|
||||
|
@ -489,7 +485,9 @@ dist_patch_DATA = \
|
|||
gnu/packages/patches/guile-arm-fixes.patch \
|
||||
gnu/packages/patches/guile-default-utf8.patch \
|
||||
gnu/packages/patches/guile-linux-syscalls.patch \
|
||||
gnu/packages/patches/guile-present-coding.patch \
|
||||
gnu/packages/patches/guile-relocatable.patch \
|
||||
gnu/packages/patches/guile-rsvg-pkgconfig.patch \
|
||||
gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \
|
||||
gnu/packages/patches/hop-bigloo-4.0b.patch \
|
||||
gnu/packages/patches/hop-linker-flags.patch \
|
||||
|
@ -576,6 +574,7 @@ dist_patch_DATA = \
|
|||
gnu/packages/patches/patchutils-xfail-gendiff-tests.patch \
|
||||
gnu/packages/patches/patch-hurd-path-max.patch \
|
||||
gnu/packages/patches/perl-autosplit-default-time.patch \
|
||||
gnu/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \
|
||||
gnu/packages/patches/perl-gd-options-passthrough-and-fontconfig.patch \
|
||||
gnu/packages/patches/perl-module-pluggable-search.patch \
|
||||
gnu/packages/patches/perl-net-amazon-s3-moose-warning.patch \
|
||||
|
@ -691,6 +690,7 @@ dist_patch_DATA = \
|
|||
gnu/packages/patches/xf86-video-trident-remove-mibstore.patch \
|
||||
gnu/packages/patches/xf86-video-vmware-glibc-2.20.patch \
|
||||
gnu/packages/patches/xfce4-panel-plugins.patch \
|
||||
gnu/packages/patches/xfce4-settings-defaults.patch \
|
||||
gnu/packages/patches/xmodmap-asprintf.patch \
|
||||
gnu/packages/patches/zathura-plugindir-environment-variable.patch
|
||||
|
||||
|
|
|
@ -55,6 +55,9 @@ to ROOT, then make ROOT the new root directory for the process."
|
|||
(define (scope dir)
|
||||
(string-append root dir))
|
||||
|
||||
(define (touch file-name)
|
||||
(call-with-output-file file-name (const #t)))
|
||||
|
||||
(define (bind-mount src dest)
|
||||
(mount src dest "none" MS_BIND))
|
||||
|
||||
|
@ -89,8 +92,7 @@ to ROOT, then make ROOT the new root directory for the process."
|
|||
(for-each (lambda (device)
|
||||
(when (file-exists? device)
|
||||
;; Create the mount point file.
|
||||
(call-with-output-file (scope device)
|
||||
(const #t))
|
||||
(touch (scope device))
|
||||
(bind-mount device (scope device))))
|
||||
'("/dev/null"
|
||||
"/dev/zero"
|
||||
|
@ -101,6 +103,15 @@ to ROOT, then make ROOT the new root directory for the process."
|
|||
"/dev/ptmx"
|
||||
"/dev/fuse"))
|
||||
|
||||
;; Setup the container's /dev/console by bind mounting the pseudo-terminal
|
||||
;; associated with standard input.
|
||||
(let ((in (current-input-port))
|
||||
(console (scope "/dev/console")))
|
||||
(when (isatty? in)
|
||||
(touch console)
|
||||
(chmod console #o600)
|
||||
(bind-mount (ttyname in) console)))
|
||||
|
||||
;; Setup standard input/output/error.
|
||||
(symlink "/proc/self/fd" (scope "/dev/fd"))
|
||||
(symlink "/proc/self/fd/0" (scope "/dev/stdin"))
|
||||
|
@ -151,7 +162,8 @@ host user identifiers to map into the user namespace."
|
|||
(define (namespaces->bit-mask namespaces)
|
||||
"Return the number suitable for the 'flags' argument of 'clone' that
|
||||
corresponds to the symbols in NAMESPACES."
|
||||
(apply logior SIGCHLD
|
||||
;; Use the same flags as fork(3) in addition to the namespace flags.
|
||||
(apply logior SIGCHLD CLONE_CHILD_CLEARTID CLONE_CHILD_SETTID
|
||||
(map (match-lambda
|
||||
('mnt CLONE_NEWNS)
|
||||
('uts CLONE_NEWUTS)
|
||||
|
|
|
@ -72,7 +72,9 @@ COMPRESS? is true, compress it using GZIP. On success, return OUTPUT."
|
|||
#:file->header cpio:file->cpio-header*)))
|
||||
|
||||
(or (not compress?)
|
||||
(and (zero? (system* gzip "--best" output))
|
||||
;; Use '--no-name' so that gzip records neither a file name nor a time
|
||||
;; stamp in its output.
|
||||
(and (zero? (system* gzip "--best" "--no-name" output))
|
||||
(rename-file (string-append output ".gz")
|
||||
output))
|
||||
output))
|
||||
|
|
|
@ -704,9 +704,9 @@ commands and their arguments.")
|
|||
;; See <http://www.sudo.ws/sudo/license.html>.
|
||||
(license license:x11)))
|
||||
|
||||
(define-public wpa-supplicant-light
|
||||
(define-public wpa-supplicant-minimal
|
||||
(package
|
||||
(name "wpa-supplicant-light")
|
||||
(name "wpa-supplicant-minimal")
|
||||
(version "2.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
|
@ -796,12 +796,12 @@ This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.")
|
|||
(license license:bsd-3)))
|
||||
|
||||
(define-public wpa-supplicant
|
||||
(package (inherit wpa-supplicant-light)
|
||||
(package (inherit wpa-supplicant-minimal)
|
||||
(name "wpa-supplicant")
|
||||
(inputs `(("dbus" ,dbus)
|
||||
,@(package-inputs wpa-supplicant-light)))
|
||||
,@(package-inputs wpa-supplicant-minimal)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments wpa-supplicant-light)
|
||||
(substitute-keyword-arguments (package-arguments wpa-supplicant-minimal)
|
||||
((#:phases phases)
|
||||
`(alist-cons-after
|
||||
'configure 'configure-for-dbus
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
`(("wxwidgets" ,wxwidgets-2)
|
||||
("gtk" ,gtk+-2)
|
||||
("alsa-lib" ,alsa-lib)
|
||||
("jack" ,jack-2)
|
||||
("jack" ,jack-1)
|
||||
("expat" ,expat)
|
||||
("ffmpeg" ,ffmpeg)
|
||||
("lame" ,lame)
|
||||
|
|
|
@ -1659,14 +1659,14 @@ interface.")
|
|||
(define-public qsynth
|
||||
(package
|
||||
(name "qsynth")
|
||||
(version "0.3.9")
|
||||
(version "0.4.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://sourceforge/qsynth/qsynth-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "08kyn6cl755l9i1grzjx8yi3f8mgiz4gx0hgqad1n0d8yz85087b"))))
|
||||
(base32 "1chc89v9hcjw3k4rvzakl8g56wv24kh48fzv1gfs4iv8vhyl3j4x"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ; no "check" phase
|
||||
|
@ -1689,12 +1689,13 @@ synthesizer written in C++.")
|
|||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/Themaister/RSound/archive/v"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version))
|
||||
(sha256
|
||||
(base32 "1wzs40c0k5zpkmm5ffl6c17xmr399sxli7ys0fbb9ib0fd334knx"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
("jack" ,jack-2)
|
||||
("jack" ,jack-1)
|
||||
("ao" ,ao)
|
||||
("libsamplerate" ,libsamplerate)
|
||||
("openal" ,openal)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
|
||||
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -26,6 +27,7 @@
|
|||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages acl)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages dejagnu)
|
||||
|
@ -35,11 +37,11 @@
|
|||
#:use-module (gnu packages mcrypt)
|
||||
#:use-module (gnu packages nettle)
|
||||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages rsync)
|
||||
#:use-module (gnu packages ssh)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages xml))
|
||||
|
||||
(define-public duplicity
|
||||
|
@ -316,3 +318,37 @@ rsync. Thus you can use rdiff-backup and ssh to securely back a hard drive up
|
|||
to a remote location, and only the differences will be transmitted. Finally,
|
||||
rdiff-backup is easy to use and settings have sensible defaults.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public attic
|
||||
(package
|
||||
(name "attic")
|
||||
(version "0.16")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://pypi.python.org/packages/source/A/Attic/Attic-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0b5skd36r4c0915lwpkqg5hxm49gls9pprs1b7hc40910wlcsl36"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before
|
||||
'build 'set-openssl-prefix
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(setenv "ATTIC_OPENSSL_PREFIX" (assoc-ref inputs "openssl"))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("acl" ,acl)
|
||||
("openssl" ,openssl)
|
||||
("python-llfuse" ,python-llfuse)
|
||||
("python-msgpack" ,python-msgpack)))
|
||||
(synopsis "Deduplicating backup program")
|
||||
(description "Attic is a deduplicating backup program. The main goal of
|
||||
Attic is to provide an efficient and secure way to backup data. The data
|
||||
deduplication technique used makes Attic suitable for daily backups since only
|
||||
changes are stored.")
|
||||
(home-page "https://attic-backup.org/")
|
||||
(license license:bsd-3)))
|
||||
|
|
|
@ -873,6 +873,45 @@ file formats including SAM/BAM, Wiggle/BigWig, BED, GFF/GTF, VCF.")
|
|||
other types of unwanted sequence from high-throughput sequencing reads.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public deeptools
|
||||
(package
|
||||
(name "deeptools")
|
||||
(version "1.5.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/fidelram/deepTools/archive/"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1kaagygcbvjs9sxd9cqmskd02wcfp9imvb735r087w7hwqpvz6fs"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:python ,python-2))
|
||||
(propagated-inputs
|
||||
`(("python-scipy" ,python2-scipy)
|
||||
("python-numpy" ,python2-numpy)
|
||||
("python-matplotlib" ,python2-matplotlib)
|
||||
("python-bx-python" ,python2-bx-python)
|
||||
("python-pysam" ,python2-pysam)))
|
||||
(native-inputs
|
||||
`(("python-mock" ,python2-mock) ;for tests
|
||||
("python-pytz" ,python2-pytz) ;for tests
|
||||
("python-setuptools" ,python2-setuptools)))
|
||||
(home-page "https://github.com/fidelram/deepTools")
|
||||
(synopsis "Tools for normalizing and visualizing deep-sequencing data")
|
||||
(description
|
||||
"DeepTools addresses the challenge of handling the large amounts of data
|
||||
that are now routinely generated from DNA sequencing centers. To do so,
|
||||
deepTools contains useful modules to process the mapped reads data to create
|
||||
coverage files in standard bedGraph and bigWig file formats. By doing so,
|
||||
deepTools allows the creation of normalized coverage files or the comparison
|
||||
between two files (for example, treatment and control). Finally, using such
|
||||
normalized and standardized files, multiple visualizations can be created to
|
||||
identify enrichments with functional annotations of the genome.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public diamond
|
||||
(package
|
||||
(name "diamond")
|
||||
|
|
|
@ -127,7 +127,7 @@ successful, or false to signal an error."
|
|||
(synopsis description)
|
||||
(description #f)
|
||||
(home-page #f)
|
||||
(license #f)))
|
||||
(license gpl3+)))
|
||||
|
||||
(define package-with-bootstrap-guile
|
||||
(memoize
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -30,6 +31,7 @@
|
|||
#:use-module (guix build-system perl)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages valgrind)
|
||||
#:use-module ((srfi srfi-1) #:select (last)))
|
||||
|
||||
(define-public zlib
|
||||
|
@ -513,3 +515,35 @@ compression library.")
|
|||
(description "IO-Compress provides a Perl interface to allow reading and
|
||||
writing of compressed data created with the zlib and bzip2 libraries.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public lz4
|
||||
(package
|
||||
(name "lz4")
|
||||
(version "131")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/Cyan4973/lz4/archive/"
|
||||
"r" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1vfg305zvj50hwscad24wan9jar6nqj14gdk2hqyr7bb9mhh0kcx"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("valgrind" ,valgrind)))
|
||||
(arguments
|
||||
`(#:test-target "test"
|
||||
#:parallel-tests? #f ; tests fail if run in parallel
|
||||
#:make-flags (list "CC=gcc"
|
||||
(string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||
#:phases (modify-phases %standard-phases
|
||||
(delete 'configure))))
|
||||
(home-page "https://github.com/Cyan4973/lz4")
|
||||
(synopsis "Compression algorithm focused on speed")
|
||||
(description "LZ4 is a lossless compression algorithm, providing
|
||||
compression speed at 400 MB/s per core (0.16 Bytes/cycle). It also features an
|
||||
extremely fast decoder, with speed in multiple GB/s per core (0.71 Bytes/cycle).
|
||||
A high compression derivative, called LZ4_HC, is also provided. It trades CPU
|
||||
time for compression ratio.")
|
||||
;; The libraries (lz4, lz4hc, and xxhash are BSD licenced. The command
|
||||
;; line interface programs (lz4, fullbench, fuzzer, datagen) are GPL2+.
|
||||
(license (list license:bsd-2 license:gpl2+))))
|
||||
|
|
|
@ -28,29 +28,15 @@
|
|||
(define-public cpio
|
||||
(package
|
||||
(name "cpio")
|
||||
(version "2.11")
|
||||
(version "2.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/cpio/cpio-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1gavgpzqwgkpagjxw72xgxz52y1ifgz0ckqh8g7cckz7jvyhp0mv"))
|
||||
(patches (map search-patch
|
||||
'("cpio-CVE-2014-9112-pt1.patch"
|
||||
"cpio-CVE-2014-9112-pt2.patch"
|
||||
"cpio-CVE-2014-9112-pt3.patch"
|
||||
"cpio-CVE-2014-9112-pt4.patch"
|
||||
"cpio-CVE-2014-9112-pt5.patch"
|
||||
"cpio-fix-symlink-bad-length-test.patch"
|
||||
"cpio-gets-undeclared.patch")))))
|
||||
"0vi9q475h1rki53100zml75vxsykzyhrn70hidy41s5c2rc8r6bh"))))
|
||||
(build-system gnu-build-system)
|
||||
|
||||
;; FIXME: autoconf is needed to run autom4te, to update to test suite
|
||||
;; after the CVE-2014-9112 patches. Remove this when cpio is
|
||||
;; updated to post-2.11.
|
||||
(native-inputs `(("autoconf" ,autoconf)))
|
||||
|
||||
(home-page "https://www.gnu.org/software/cpio/")
|
||||
(synopsis "Manage cpio and tar file archives")
|
||||
(description
|
||||
|
|
|
@ -328,11 +328,18 @@ types are supported, as is encryption.")
|
|||
6 #\0))))))
|
||||
(list
|
||||
(string-append
|
||||
"http://distfiles.gentoo.org/distfiles/"
|
||||
"/sqlite-autoconf-" numeric-version ".tar.gz")
|
||||
"https://fossies.org/linux/misc/sqlite-autoconf-"
|
||||
numeric-version ".tar.gz")
|
||||
(string-append
|
||||
"mirror://sourceforge/sqlite.mirror/SQLite%20" version
|
||||
"/sqlite-autoconf-" numeric-version ".tar.gz"))))
|
||||
"http://distfiles.gentoo.org/distfiles/"
|
||||
"/sqlite-autoconf-" numeric-version ".tar.gz"))
|
||||
|
||||
;; XXX: As of 2015-09-08, SourceForge is squatting the URL
|
||||
;; below, returning 200 and showing an advertising page.
|
||||
;; (string-append
|
||||
;; "mirror://sourceforge/sqlite.mirror/SQLite%20" version
|
||||
;; "/sqlite-autoconf-" numeric-version ".tar.gz")
|
||||
))
|
||||
(sha256
|
||||
(base32
|
||||
"1dnkl4qr1dgaprbyf3jddfiynkhxnin86qabni47wjlc0fnb16gv"))))
|
||||
|
@ -740,14 +747,14 @@ similar to BerkeleyDB, LevelDB, etc.")
|
|||
(define-public redis
|
||||
(package
|
||||
(name "redis")
|
||||
(version "3.0.3")
|
||||
(version "3.0.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://download.redis.io/releases/redis-"
|
||||
version".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"19cxdrk380qachw160h1x51mwj7kpkxlggfzfh19bl0nbdkgl20x"))))
|
||||
"1kqjc4qrasadgnl3cg71x3g5qpw2rilyk4pwl151698rb2nr0pm3"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; tests related to master/slave and replication fail
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
(define-public calibre
|
||||
(package
|
||||
(name "calibre")
|
||||
(version "2.35.0")
|
||||
(version "2.37.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -69,7 +69,7 @@
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"13sic0l16myvka8mgpr56h6qlpf1cwx8xlf4acp3qz6gsmz3r23x"))
|
||||
"0cbpkhchxjz9dz4chkrlgq0q1sjmyp6lm9vrhnm2mwai61kzn25s"))
|
||||
;; Remove non-free or doubtful code, see
|
||||
;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html
|
||||
(modules '((guix build utils)))
|
||||
|
|
|
@ -310,7 +310,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
|
|||
(define-public magit
|
||||
(package
|
||||
(name "magit")
|
||||
(version "2.2.1")
|
||||
(version "2.2.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -318,7 +318,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
|
|||
version "/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0bjdj4468i5w3j2i945b6psb6n04z34vhjaqr0iz4xgixk3wiqmh"))))
|
||||
"1imkj4prprnivhbpdn1mdpiryxkckzy5hbnqaahv7gixwac1irh8"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("texinfo" ,texinfo)
|
||||
("emacs" ,emacs-no-x)))
|
||||
|
@ -483,6 +483,82 @@ support for Git-SVN.")
|
|||
programs.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public let-alist
|
||||
(package
|
||||
(name "emacs-let-alist")
|
||||
(version "1.0.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://elpa.gnu.org/packages/let-alist-"
|
||||
version ".el"))
|
||||
(sha256
|
||||
(base32
|
||||
"07312bvvyz86lf64vdkxg2l1wgfjl25ljdjwlf1bdzj01c4hm88x"))))
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils)
|
||||
(guix build emacs-utils))
|
||||
|
||||
#:builder (begin
|
||||
(use-modules (guix build emacs-utils)
|
||||
(guix build utils))
|
||||
|
||||
(let* ((out (assoc-ref %outputs "out"))
|
||||
(lispdir (string-append out
|
||||
"/share/emacs/site-lisp/"
|
||||
"guix.d/let-alist-"
|
||||
,version))
|
||||
(emacs (assoc-ref %build-inputs "emacs")))
|
||||
|
||||
(mkdir-p lispdir)
|
||||
(copy-file (assoc-ref %build-inputs "source")
|
||||
(string-append lispdir "/let-alist.el"))
|
||||
|
||||
(setenv "PATH" (string-append emacs "/bin"))
|
||||
(emacs-byte-compile-directory lispdir)
|
||||
#t))))
|
||||
(native-inputs `(("emacs" ,emacs-no-x)))
|
||||
(home-page "http://elpa.gnu.org/packages/let-alist.html")
|
||||
(synopsis "Easily let-bind values of an assoc-list by their names")
|
||||
(description
|
||||
"This package offers a single Emacs Lisp macro, @code{let-alist}. This
|
||||
macro takes a first argument, whose value must be an alist (association list),
|
||||
and a body.
|
||||
|
||||
The macro expands to a let form containing the body, where each dotted symbol
|
||||
inside body is let-bound to their cdrs in the alist. Only those present in
|
||||
the body are let-bound and this search is done at compile time.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public flycheck
|
||||
(package
|
||||
(name "emacs-flycheck")
|
||||
(version "0.23")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/flycheck/flycheck/releases/download/"
|
||||
version "/flycheck-" version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"1n2cifzsl5dbv42l82bi3y1vk6q33msi8dd4bj7b9nvnl9jfjj5b"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-dash" ,emacs-dash)
|
||||
("emacs-let-alist" ,let-alist)))
|
||||
(home-page "https://www.flycheck.org")
|
||||
(synopsis "On-the-fly syntax checking")
|
||||
(description
|
||||
"This package provides on-the-fly syntax checking for GNU Emacs. It is a
|
||||
replacement for the older Flymake extension which is part of GNU Emacs, with
|
||||
many improvements and additional features.
|
||||
|
||||
Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
|
||||
checking for over 30 programming and markup languages with more than 70
|
||||
different tools. It highlights errors and warnings inline in the buffer, and
|
||||
provides an optional IDE-like error list.")
|
||||
(license license:gpl3+))) ;+GFDLv1.3+ for the manual
|
||||
|
||||
|
||||
;;;
|
||||
;;; Web browsing.
|
||||
|
@ -989,3 +1065,30 @@ files and directories.")
|
|||
(description "This package adds support to Org-Babel for evaluating Python
|
||||
source code using IPython.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-debbugs
|
||||
(package
|
||||
(name "emacs-debbugs")
|
||||
(version "0.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://elpa.gnu.org/packages/debbugs-"
|
||||
version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"0pbglx3paa8icazgxlg4jf40wl8war63y9j2jmbb7gbd1xp95v72"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "http://elpa.gnu.org/packages/debbugs.html")
|
||||
(synopsis "Access the Debbugs bug tracker in Emacs")
|
||||
(description
|
||||
"This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
|
||||
Tracker} from within Emacs.
|
||||
|
||||
For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
|
||||
and the command @code{M-x debbugs-gnu-search} for bug searching. If you
|
||||
prefer the listing of bugs as TODO items of @code{org-mode}, you could use
|
||||
@code{M-x debbugs-org} and related commands.
|
||||
|
||||
A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
|
||||
Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
|
||||
(license license:gpl3+)))
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages boost)
|
||||
|
@ -35,6 +36,7 @@
|
|||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages gd)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages ghostscript)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
|
@ -360,3 +362,49 @@ multipole-accelerated algorithm.")
|
|||
"Fasthenry is an inductance extraction program based on a
|
||||
multipole-accelerated algorithm.")
|
||||
(license (license:non-copyleft #f "See induct.c."))))
|
||||
|
||||
(define-public gerbv
|
||||
(package
|
||||
(name "gerbv")
|
||||
(version "2.6.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/gerbv/gerbv/gerbv-"
|
||||
version "/gerbv-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0v6ry0mxi5qym4z0y0lpblxsw9dfjpgxs4c4v2ngg7yw4b3a59ks"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'autoconf
|
||||
(lambda _
|
||||
;; Build rules contain references to Russian translation, but the
|
||||
;; needed files are missing; see
|
||||
;; http://sourceforge.net/p/gerbv/bugs/174/
|
||||
(delete-file "po/LINGUAS")
|
||||
(substitute* "man/Makefile.am"
|
||||
(("PO_FILES= gerbv.ru.1.in.po") "")
|
||||
(("man_MANS = gerbv.1 gerbv.ru.1") "man_MANS = gerbv.1"))
|
||||
(zero? (system* "autoreconf" "-vfi")))))))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)
|
||||
("gettext" ,gnu-gettext)
|
||||
("po4a" ,po4a)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("cairo" ,cairo)
|
||||
("gtk" ,gtk+-2)
|
||||
("desktop-file-utils" ,desktop-file-utils)))
|
||||
(home-page "http://gerbv.geda-project.org/")
|
||||
(synopsis "Gerber file viewer")
|
||||
(description
|
||||
"Gerbv is a viewer for files in the Gerber format (RS-274X only), which
|
||||
is commonly used to represent printed circuit board (PCB) layouts. Gerbv lets
|
||||
you load several files on top of each other, do measurements on the displayed
|
||||
image, etc. Besides viewing Gerbers, you may also view Excellon drill files
|
||||
as well as pick-place files.")
|
||||
(license license:gpl2+)))
|
||||
|
|
|
@ -51,14 +51,15 @@
|
|||
(define-public efl
|
||||
(package
|
||||
(name "efl")
|
||||
(version "1.14.2")
|
||||
(version "1.15.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://download.enlightenment.org/rel/libs/efl/efl-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "0kg51v63ljq1z4dj65aiyxaqhq54gkl4hx53ifwbci6ihammandr"))))
|
||||
(base32
|
||||
"1n2l2n09lys5dph9lrnsv5z3qbgzp7bi0vidal2fvy18hflbbvsn"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -127,20 +128,21 @@
|
|||
for Enlightenment. Libraries covers data serialization, wide support for
|
||||
graphics rendering, UI layout and themes, interaction with OS, access to
|
||||
removable devices or support for multimedia.")
|
||||
(license (list license:bsd-2 license:lgpl2.1 license:zlib)))) ; different parts under different licenses
|
||||
;; Different parts are under different licenses.
|
||||
(license (list license:bsd-2 license:lgpl2.1 license:zlib))))
|
||||
|
||||
(define-public elementary
|
||||
(package
|
||||
(name "elementary")
|
||||
(version "1.14.2")
|
||||
(version "1.15.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append
|
||||
"https://download.enlightenment.org/rel/libs/elementary/elementary-"
|
||||
version ".tar.xz"))
|
||||
(string-append "https://download.enlightenment.org/rel/libs/"
|
||||
"elementary/elementary-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "1ck1jm9dfx2l72nklndqjfsxjqb0024b88naskld1dk9b8drs76b"))))
|
||||
(base32
|
||||
"015b277bvgb4q8cqjl58ir9nqb1d40fpj2jblf4gkxq8a45a88mb"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -157,7 +159,7 @@ full capabilities of EFL.")
|
|||
(define-public evas-generic-loaders
|
||||
(package
|
||||
(name "evas-generic-loaders")
|
||||
(version "1.14.0")
|
||||
(version "1.15.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
|
@ -166,7 +168,8 @@ full capabilities of EFL.")
|
|||
"evas_generic_loaders/evas_generic_loaders-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "18b6xmbf81bly4mlwlzwr17g2m8dzznbhsdjk6pbb3nw4wn3y88l"))))
|
||||
(base32
|
||||
"0zzx06j20x580xqnnsxp7gb7rv279zcgvdxfbhs905af9m6rwlqy"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -188,15 +191,16 @@ files in Evas (EFL canvas library).")
|
|||
(define-public emotion-generic-players
|
||||
(package
|
||||
(name "emotion-generic-players")
|
||||
(version "1.14.0")
|
||||
(version "1.15.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append
|
||||
"https://download.enlightenment.org/rel/libs/emotion_generic_players/emotion_generic_players-"
|
||||
version ".tar.xz"))
|
||||
(string-append "https://download.enlightenment.org/rel/libs/"
|
||||
"emotion_generic_players/emotion_generic_players"
|
||||
"-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "0685jzag98ykknycfdqn70zif3fmcfi6m8k9yp6d79r1h8gc49n4"))))
|
||||
(base32
|
||||
"0pszwmcygxnv1sfx0m79md2jmi4sng8mdb1xcr6h2z5c8685wvcz"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -214,15 +218,15 @@ The only supported now is VLC.")
|
|||
(define-public terminology
|
||||
(package
|
||||
(name "terminology")
|
||||
(version "0.8.0")
|
||||
(version "0.9.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append
|
||||
"https://download.enlightenment.org/rel/apps/terminology/terminology-"
|
||||
version ".tar.gz"))
|
||||
(string-append "https://download.enlightenment.org/rel/apps/"
|
||||
"terminology/terminology-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "0a767ixackzmhb2awrhjy7q6vsivsd54wc434i617xiw095x843s"))))
|
||||
(base32
|
||||
"0iwid9cvd96kwl0hjhbby84kkz5sgb4p8454nnkf7wjvdz2f9b96"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -266,15 +270,14 @@ Libraries with some extra bells and whistles.")
|
|||
(define-public enlightenment
|
||||
(package
|
||||
(name "enlightenment")
|
||||
(version "0.19.5")
|
||||
(version "0.19.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append
|
||||
"https://download.enlightenment.org/rel/apps/enlightenment/enlightenment-"
|
||||
version ".tar.xz"))
|
||||
(string-append "https://download.enlightenment.org/rel/apps/"
|
||||
name "/" name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "0j66x7x76fbgqfw6fi77v8qy50slw3jnsq3vvs82rrfvniabm8wc"))))
|
||||
(base32 "1ajpyw1bfbmxpniw041vbvrs9wqgzyw9kccx72nnfiy2wxspjcr5"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -29,7 +29,7 @@
|
|||
(define-public ath9k-htc-firmware
|
||||
(package
|
||||
(name "ath9k-htc-firmware")
|
||||
(version "1.3.2")
|
||||
(version "1.4.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -37,7 +37,7 @@
|
|||
(commit version)))
|
||||
(sha256
|
||||
(base32
|
||||
"0dgqfp4cbky79vzjrdy3j462l8figymzrk2v0jalmmz3lkxw88ww"))
|
||||
"16jbj8avg5jkgvq5lxm0hdxxn4c3zn7fx8b4nxllvr024apk9w23"))
|
||||
(patches (list (search-patch "ath9k-htc-firmware-objcopy.patch")))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
|
||||
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
|
||||
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
|
||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -486,3 +487,84 @@ code-points needed for zh_cn, zh_sg, zh_tw, zh_hk, zh_mo, ja (Japanese) and
|
|||
ko (Korean) locales for fontconfig.")
|
||||
;; GPLv2 with font embedding exception
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public font-tex-gyre
|
||||
(package
|
||||
(name "font-tex-gyre")
|
||||
(version "2.005")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.gust.org.pl/projects/e-foundry/"
|
||||
"tex-gyre/whole/tg-" version "otf.zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"0kph9l3g7jb2bpmxdbdg5zl56wacmnvdvsdn7is1gc750sqvsn31"))))
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(let ((unzip (string-append (assoc-ref %build-inputs "unzip")
|
||||
"/bin/unzip"))
|
||||
(font-dir (string-append %output "/share/fonts/opentype")))
|
||||
(mkdir-p font-dir)
|
||||
(system* unzip
|
||||
(assoc-ref %build-inputs "source")
|
||||
"-d" font-dir)))))
|
||||
(native-inputs
|
||||
`(("unzip" ,unzip)))
|
||||
(home-page "http://www.gust.org.pl/projects/e-foundry/tex-gyre/")
|
||||
(synopsis "Remake of Ghostscript fonts")
|
||||
(description "The TeX Gyre collection of fonts is the result of an
|
||||
extensive remake and extension of the freely available base PostScript fonts
|
||||
distributed with Ghostscript version 4.00. The collection contains the
|
||||
following fonts in the OpenType format: Adventor, Bonum, Chorus, Cursor,
|
||||
Heros, Pagella, Schola, Termes.")
|
||||
(license license:gfl1.0)))
|
||||
|
||||
(define-public font-anonymous-pro
|
||||
(package
|
||||
(name "font-anonymous-pro")
|
||||
(version "1.002")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://www.marksimonson.com/assets/content/fonts/"
|
||||
"AnonymousPro-" version ".zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"1asj6lykvxh46czbal7ymy2k861zlcdqpz8x3s5bbpqwlm3mhrl6"))))
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
(let ((unzip (string-append (assoc-ref %build-inputs "unzip")
|
||||
"/bin/unzip"))
|
||||
(font-dir (string-append %output "/share/fonts/truetype"))
|
||||
(doc-dir (string-append %output "/share/doc/" ,name)))
|
||||
(system* unzip (assoc-ref %build-inputs "source"))
|
||||
(mkdir-p font-dir)
|
||||
(mkdir-p doc-dir)
|
||||
(chdir (string-append "AnonymousPro-" ,version ".001"))
|
||||
(for-each (lambda (ttf)
|
||||
(copy-file ttf
|
||||
(string-append font-dir "/" ttf)))
|
||||
(find-files "." "\\.ttf$"))
|
||||
(for-each (lambda (doc)
|
||||
(copy-file doc
|
||||
(string-append doc-dir "/" doc)))
|
||||
(find-files "." "\\.txt$"))))))
|
||||
(native-inputs
|
||||
`(("unzip" ,unzip)))
|
||||
(home-page "http://www.marksimonson.com/fonts/view/anonymous-pro")
|
||||
(synopsis "Fixed-width fonts designed with coding in mind")
|
||||
(description "Anonymous Pro is a family of four fixed-width fonts designed
|
||||
with coding in mind. Anonymous Pro features an international, Unicode-based
|
||||
character set, with support for most Western and Central European Latin-based
|
||||
languages, plus Greek and Cyrillic.")
|
||||
(license license:silofl1.1)))
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages m4)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages doxygen)
|
||||
#:use-module (gnu packages libffi)
|
||||
|
@ -130,19 +131,16 @@ the freedesktop.org XDG Base Directory specification.")
|
|||
(license license:expat)))
|
||||
|
||||
(define-public elogind
|
||||
(let ((commit "14405a9"))
|
||||
(package
|
||||
(name "elogind")
|
||||
(version (string-append "219." commit))
|
||||
(version "219.12")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "http://git.elephly.net/software/elogind.git")
|
||||
(commit commit)))
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://wingolog.org/pub/" name "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1wz5lxj95qg64x2q5hf4zcb35hpxlw3wfswx6sb2srvsg50y3y72"))
|
||||
(file-name (string-append name "-checkout-" commit))
|
||||
"13qc4f0dl7ynnfp1y565z2k0jjizly5w3dqhiqkdk7v6jr4pksb7"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -154,27 +152,21 @@ the freedesktop.org XDG Base Directory specification.")
|
|||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list
|
||||
;; pam_elogind fails because of bus-error.c hackery
|
||||
"--disable-pam"
|
||||
(string-append "--with-rootprefix=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'autogen
|
||||
(lambda _
|
||||
(and (zero? (system* "intltoolize" "--force" "--automake"))
|
||||
(zero? (system* "autoreconf" "-vif"))))))))
|
||||
(list (string-append "--with-libcap="
|
||||
(assoc-ref %build-inputs "libcap"))
|
||||
(string-append "--with-udevrulesdir="
|
||||
(assoc-ref %outputs "out")
|
||||
"/lib/udev/rules.d"))
|
||||
#:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent")))
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
("gettext" ,gnu-gettext)
|
||||
("docbook-xsl" ,docbook-xsl)
|
||||
("docbook-xml" ,docbook-xml)
|
||||
("xsltproc" ,libxslt)
|
||||
("m4" ,m4)
|
||||
("libxml2" ,libxml2) ;for XML_CATALOG_FILES
|
||||
("pkg-config", pkg-config)
|
||||
("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)
|
||||
("gperf" ,gperf)))
|
||||
(inputs
|
||||
`(("linux-pam" ,linux-pam)
|
||||
|
@ -188,7 +180,7 @@ the freedesktop.org XDG Base Directory specification.")
|
|||
extracted out as a separate project. Elogind integrates with PAM to provide
|
||||
the org.freedesktop.login1 interface over the system bus, allowing other parts
|
||||
of a the system to know what users are logged in, and where.")
|
||||
(license license:lgpl2.1+))))
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public python-pyxdg
|
||||
(package
|
||||
|
|
|
@ -37,7 +37,8 @@
|
|||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages sdl)
|
||||
#:use-module (gnu packages pkg-config))
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages xiph))
|
||||
|
||||
(define-public bullet
|
||||
(package
|
||||
|
@ -66,7 +67,7 @@ is used in some video games and movies.")
|
|||
(define-public tiled
|
||||
(package
|
||||
(name "tiled")
|
||||
(version "0.13.0")
|
||||
(version "0.13.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/bjorn/tiled/archive/v"
|
||||
|
@ -74,7 +75,7 @@ is used in some video games and movies.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1cfdhjwwwnc5fsq53axxyf6vmyy1grkk9ghi58dir68pwf6rlr3n"))))
|
||||
"057a5cna3vhznpl9hyql2sxz995aprv43r8wva89x4vdphxv04lm"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("qt" ,qt)
|
||||
("zlib" ,zlib)))
|
||||
|
@ -101,14 +102,14 @@ clone.")
|
|||
(define-public sfml
|
||||
(package
|
||||
(name "sfml")
|
||||
(version "2.2")
|
||||
(version "2.3.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://mirror0.sfml-dev.org/files/SFML-"
|
||||
version "-sources.zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"1xhkvgyfbhqsjdmfbxvk729kdrzh7kdyagxa3bvpzi6z43mh1frd"))))
|
||||
"0mjpkgfnz6ka4p0ir219pcqsbdy7gwcjydk7xxmjjfm2k5sw2qys"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; no tests
|
||||
|
@ -117,7 +118,10 @@ clone.")
|
|||
(inputs
|
||||
`(("mesa" ,mesa)
|
||||
("glew" ,glew)
|
||||
("flac" ,flac)
|
||||
("libvorbis" ,libvorbis)
|
||||
("libx11" ,libx11)
|
||||
("xcb-util-image" ,xcb-util-image)
|
||||
("libxrandr" ,libxrandr)
|
||||
("eudev" ,eudev)
|
||||
("freetype" ,freetype)
|
||||
|
|
|
@ -576,7 +576,7 @@ for common mesh file formats, and collision detection.")
|
|||
(define minetest-data
|
||||
(package
|
||||
(name "minetest-data")
|
||||
(version "0.4.12")
|
||||
(version "0.4.13")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -585,7 +585,7 @@ for common mesh file formats, and collision detection.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0642vy6r6sv96mz6wbs9qvyr95vd69zj4fxiljdg9801javrmm9p"))))
|
||||
"04xnyfap75v3p818kpqb07xshqwqzpws5xjvw5m96qnd9x4725ld"))))
|
||||
(build-system trivial-build-system)
|
||||
(native-inputs
|
||||
`(("source" ,source)
|
||||
|
@ -617,7 +617,7 @@ for common mesh file formats, and collision detection.")
|
|||
(define-public minetest
|
||||
(package
|
||||
(name "minetest")
|
||||
(version "0.4.12")
|
||||
(version "0.4.13")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -626,7 +626,7 @@ for common mesh file formats, and collision detection.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1pqp8hfwg5wkimig8j5jrihzgjjgplxr24w5xisrxvx1hlvnczdk"))))
|
||||
"1xzrvsg0fpbj5p4pz6lls11m3ab4y2bnjlsm4gnw68x9006ffznp"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -36,33 +36,47 @@
|
|||
(define-public gdb
|
||||
(package
|
||||
(name "gdb")
|
||||
(version "7.9.1")
|
||||
(version "7.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gdb/gdb-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0h5sfg4ndhb8q4fxbq0hdxfjp35n6ih96f6x8yvb418s84x5976d"))))
|
||||
"1a08c9svaihqmz2mm44il1gwa810gmwkckns8b0y0v3qz52amgby"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; FIXME "make check" fails on single-processor systems.
|
||||
#:phases (alist-cons-after
|
||||
`(#:tests? #f ; FIXME "make check" fails on single-processor systems.
|
||||
|
||||
#:modules ((srfi srfi-1)
|
||||
,@%gnu-build-system-modules)
|
||||
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after
|
||||
'configure 'post-configure
|
||||
(lambda _
|
||||
(for-each patch-makefile-SHELL
|
||||
(find-files "." "Makefile\\.in")))
|
||||
(alist-cons-after
|
||||
'install 'post-install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Like Binutils, GDB installs libbfd and libopcodes.
|
||||
(find-files "." "Makefile\\.in"))))
|
||||
(add-after
|
||||
'install 'remove-libs-already-in-binutils
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
;; Like Binutils, GDB installs libbfd, libopcodes, etc.
|
||||
;; However, this leads to collisions when both are
|
||||
;; installed, and really is none of its business,
|
||||
;; conceptually. So remove them.
|
||||
(for-each delete-file
|
||||
(find-files (assoc-ref outputs "out")
|
||||
"^lib(opcodes|bfd)\\.")))
|
||||
%standard-phases))))
|
||||
(let* ((binutils (assoc-ref inputs "binutils"))
|
||||
(out (assoc-ref outputs "out"))
|
||||
(files1 (with-directory-excursion binutils
|
||||
(append (find-files "lib")
|
||||
(find-files "include"))))
|
||||
(files2 (with-directory-excursion out
|
||||
(append (find-files "lib")
|
||||
(find-files "include"))))
|
||||
(common (lset-intersection string=?
|
||||
files1 files2)))
|
||||
(with-directory-excursion out
|
||||
(for-each delete-file common)
|
||||
#t)))))))
|
||||
(inputs
|
||||
`(("expat" ,expat)
|
||||
("mpfr" ,mpfr)
|
||||
|
|
|
@ -25,8 +25,7 @@
|
|||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module ((gnu packages ghostscript)
|
||||
#:select (lcms))
|
||||
#:use-module (gnu packages ghostscript)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages xml))
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -18,11 +19,15 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages gettext)
|
||||
#:use-module ((guix licenses) #:select (gpl3+))
|
||||
#:use-module ((guix licenses) #:select (gpl2+ gpl3+))
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages texlive)
|
||||
#:use-module (gnu packages xml))
|
||||
|
||||
;; Use that name to avoid clashes with Guile's 'gettext' procedure.
|
||||
|
@ -91,3 +96,59 @@ with the means to create message catalogs, as well as an Emacs mode to work
|
|||
with them, and a runtime library to load translated messages from the
|
||||
catalogs. Nearly all GNU packages use Gettext.")
|
||||
(license gpl3+))) ;some files are under GPLv2+
|
||||
|
||||
(define-public po4a
|
||||
(package
|
||||
(name "po4a")
|
||||
(version "0.47")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://alioth.debian.org/frs/download.php"
|
||||
"/file/4142/po4a-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"01vm0750aq0h2lphrflv3wq9gz7y0py8frglfpacn58ivyvy242h"))))
|
||||
(build-system perl-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; FIXME: One test fails as we don't have SGMLS.pm
|
||||
(add-before 'check 'disable-sgml-test
|
||||
(lambda _
|
||||
(delete-file "t/20-sgml.t")
|
||||
#t))
|
||||
(add-after 'unpack 'fix-builder
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(substitute* "Po4aBuilder.pm"
|
||||
;; By default it tries to install into perl's manpath.
|
||||
(("my \\$mandir = .*$")
|
||||
(string-append "my $mandir = \"" (assoc-ref outputs "out")
|
||||
"/share/man\";\n")))
|
||||
#t))
|
||||
(add-after 'install 'wrap-programs
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Make sure all executables in "bin" find the Perl modules
|
||||
;; provided by this package at runtime.
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin/"))
|
||||
(path (string-append out "/lib/perl5/site_perl")))
|
||||
(for-each (lambda (file)
|
||||
(wrap-program file
|
||||
`("PERL5LIB" ":" prefix (,path))))
|
||||
(find-files bin "\\.*$"))
|
||||
#t))))))
|
||||
(native-inputs
|
||||
`(("gettext" ,gnu-gettext)
|
||||
("perl-module-build" ,perl-module-build)
|
||||
("docbook-xsl" ,docbook-xsl)
|
||||
("docbook-xml" ,docbook-xml) ;for tests
|
||||
("texlive-bin" ,texlive-bin) ;for tests
|
||||
("libxml2" ,libxml2)
|
||||
("xsltproc" ,libxslt)))
|
||||
(home-page "http://po4a.alioth.debian.org/")
|
||||
(synopsis "Scripts to ease maintenance of translations")
|
||||
(description
|
||||
"The po4a (PO for anything) project goal is to ease translations (and
|
||||
more interestingly, the maintenance of translations) using gettext tools on
|
||||
areas where they were not expected like documentation.")
|
||||
(license gpl2+)))
|
||||
|
|
|
@ -1912,15 +1912,15 @@ library.")
|
|||
library.")
|
||||
(license license:lgpl2.0+)))
|
||||
|
||||
(define-public librest
|
||||
(define-public rest
|
||||
(package
|
||||
(name "librest")
|
||||
(name "rest")
|
||||
(version "0.7.93")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/rest/"
|
||||
(version-major+minor version) "/"
|
||||
"rest-" version ".tar.xz"))
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"05mj10hhiik23ai8w4wkk5vhsp7hcv24bih5q3fl82ilam268467"))))
|
||||
|
@ -2629,6 +2629,8 @@ without stepping on each others toes.")
|
|||
(base32
|
||||
"1b0ikh9q3c3qnny3kbvhqih35449q8ajcbh7zkm8k3kykwfx4scf"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out"
|
||||
"doc")) ;9 MiB of gtk-doc HTML pages
|
||||
(native-inputs
|
||||
`(("glib:bin" ,glib "bin") ; for glib-genmarshal
|
||||
("gobject-introspection" ,gobject-introspection)
|
||||
|
@ -2649,7 +2651,12 @@ without stepping on each others toes.")
|
|||
`(("libxkbcommon" ,libxkbcommon)
|
||||
("udev" ,eudev)))
|
||||
(arguments
|
||||
`(#:configure-flags '("--enable-x11-backend=yes")
|
||||
`(#:configure-flags (list "--enable-x11-backend=yes"
|
||||
|
||||
;; This produces share/doc/{clutter,cally}.
|
||||
(string-append "--with-html-dir="
|
||||
(assoc-ref %outputs "doc")
|
||||
"/share/doc"))
|
||||
;; XXX FIXME: Get test suite working. It would probably fail in the
|
||||
;; same way the cogl tests fail, since clutter is based on cogl.
|
||||
#:tests? #f))
|
||||
|
@ -2720,6 +2727,38 @@ implements the ClutterGstPlayer interface using playbin. Clutter is an Open
|
|||
GL based interactive canvas library.")
|
||||
(license license:lgpl2.0+)))
|
||||
|
||||
(define-public libchamplain
|
||||
(package
|
||||
(name "libchamplain")
|
||||
(version "0.12.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://gnome/sources/libchamplain/0.12/libchamplain-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"019b8scnx7d3wdylmpk9ihzh06w25b63x9cn8nhj6kjx82rcwlxz"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(propagated-inputs
|
||||
`(("libsoup" ,libsoup)
|
||||
("sqlite" ,sqlite)
|
||||
("clutter" ,clutter)
|
||||
("clutter-gtk" ,clutter-gtk)
|
||||
("glib:bin" ,glib "bin") ;glib-mkenums, etc.
|
||||
("cairo" ,cairo)
|
||||
("gtk+3" ,gtk+)
|
||||
("glib" ,glib)))
|
||||
(home-page "http://projects.gnome.org/libchamplain/")
|
||||
(synopsis "C library providing a ClutterActor to display maps")
|
||||
(description
|
||||
"libchamplain is a C library providing a ClutterActor to display maps.
|
||||
It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
|
||||
and Perl bindings are also available. It supports numerous free map sources
|
||||
such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public gom
|
||||
(package
|
||||
(name "gom")
|
||||
|
@ -3371,3 +3410,93 @@ principles are simplicity and standards compliance.")
|
|||
"D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
|
||||
of running programs and invoke methods on those interfaces.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public yelp-xsl
|
||||
(package
|
||||
(name "yelp-xsl")
|
||||
(version "3.16.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jhpni4mmfvj3xf57rjm61nc8d0x66hz9gd1ywws5lh39g6fx59j"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
("itstool" ,itstool)
|
||||
("xmllint" ,libxml2)))
|
||||
(home-page "https://wiki.gnome.org/Apps/Yelp")
|
||||
(synopsis "XSL stylesheets for Yelp")
|
||||
(description
|
||||
"Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
|
||||
to format Docbook and Mallard documents.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public yelp
|
||||
(package
|
||||
(name "yelp")
|
||||
(version "3.16.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jk7aad1srykhgc3x0hd3q3dnlshmy1ak00alwjzaasxvy6hp0b0"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
|
||||
("intltool" ,intltool)
|
||||
("itstool" ,itstool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(propagated-inputs
|
||||
`(("dconf" ,dconf)))
|
||||
(inputs
|
||||
`(("libxslt" ,libxslt)
|
||||
("sqlite" ,sqlite)
|
||||
("webkitgtk" ,webkitgtk-2.4)
|
||||
("yelp-xsl" ,yelp-xsl)
|
||||
;; XXX: need by libwebkitgtk-3.0.la.
|
||||
("icu4c" ,(@ (gnu packages icu4c) icu4c))))
|
||||
(home-page "https://wiki.gnome.org/Apps/Yelp")
|
||||
(synopsis "GNOME help browser")
|
||||
(description
|
||||
"Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
|
||||
man, info, and HTML documents. It can locate documents according to the
|
||||
freedesktop.org help system specification.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public yelp-tools
|
||||
(package
|
||||
(name "yelp-tools")
|
||||
(version "3.16.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"177qzvj5w019isdp41qxqcys2kc4sq2x6dqhqn6l9ipib8a6rxml"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(propagated-inputs
|
||||
;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
|
||||
`(("itstool" ,itstool)
|
||||
("xmllint" ,libxml2)
|
||||
("xsltproc" ,libxslt)))
|
||||
(inputs
|
||||
`(("yelp-xsl" ,yelp-xsl)))
|
||||
(home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
|
||||
(synopsis "Yelp documentation tools")
|
||||
(description
|
||||
"Yelp-tools is a collection of scripts and build utilities to help create,
|
||||
manage, and publish documentation for Yelp and the web. Most of the heavy
|
||||
lifting is done by packages like yelp-xsl and itstool. This package just
|
||||
wraps things up in a developer-friendly way.")
|
||||
(license license:gpl2+)))
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -27,7 +28,9 @@
|
|||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages icu4c)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages webkit)
|
||||
#:use-module (gnu packages xml))
|
||||
|
||||
|
@ -42,11 +45,9 @@
|
|||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"103ir5qg6k8m2mmg9b99c3gn8myxh1gsqyr0mfhmrhqya68wfdr3"))))
|
||||
"103ir5qg6k8m2mmg9b99c3gn8myxh1gsqyr0mfhmrhqya68wfdr3"))
|
||||
(patches (list (search-patch "gnucash-price-quotes-perl.patch")))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ;FIXME: failing at /qof/gnc-date/qof print date dmy buff
|
||||
#:configure-flags '("--disable-dbi")))
|
||||
(inputs
|
||||
`(("guile" ,guile-2.0)
|
||||
("icu4c" ,icu4c)
|
||||
|
@ -56,11 +57,46 @@
|
|||
("libgnomecanvas" ,libgnomecanvas)
|
||||
("libxml2" ,libxml2)
|
||||
("libxslt" ,libxslt)
|
||||
("webkitgtk" ,webkitgtk/gtk+-2)))
|
||||
("webkitgtk" ,webkitgtk/gtk+-2)
|
||||
("perl-date-manip" ,perl-date-manip)
|
||||
("perl-finance-quote" ,perl-finance-quote)))
|
||||
(native-inputs
|
||||
`(("glib" ,glib "bin") ; glib-compile-schemas, etc.
|
||||
("intltool" ,intltool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(arguments
|
||||
`(#:tests? #f ;FIXME: failing at /qof/gnc-date/qof print date dmy buff
|
||||
#:configure-flags '("--disable-dbi")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after
|
||||
'install 'wrap-programs
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(for-each (lambda (prog)
|
||||
(wrap-program (string-append (assoc-ref outputs "out")
|
||||
"/bin/" prog)
|
||||
`("PERL5LIB" ":" prefix
|
||||
,(map (lambda (o)
|
||||
(string-append o "/lib/perl5/site_perl/"
|
||||
,(package-version perl)))
|
||||
(if (string=? prog "gnc-fq-helper")
|
||||
(list
|
||||
,@(transitive-input-references
|
||||
'inputs
|
||||
(map (lambda (l)
|
||||
(assoc l (inputs)))
|
||||
'("perl-finance-quote"
|
||||
"perl-date-manip"))))
|
||||
(list
|
||||
,@(transitive-input-references
|
||||
'inputs
|
||||
(map (lambda (l)
|
||||
(assoc l (inputs)))
|
||||
'("perl-finance-quote")))))))))
|
||||
'("gnucash"
|
||||
"gnc-fq-check"
|
||||
"gnc-fq-helper"
|
||||
"gnc-fq-dump")))))))
|
||||
(home-page "https://gnu.org/software/gnucash")
|
||||
(synopsis "Personal and small business financial accounting software")
|
||||
(description
|
||||
|
|
|
@ -193,14 +193,14 @@ compatible to GNU Pth.")
|
|||
(define-public gnupg
|
||||
(package
|
||||
(name "gnupg")
|
||||
(version "2.1.7")
|
||||
(version "2.1.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
|
||||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0vl4wzraln0h4db0kfza4l5by5pgfijqplji5n4riv3zsiv3g2n1"))))
|
||||
"18w14xp0ynzzwpklyplkzbrncds1hly4k2gjx115swch8qgd1f53"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
|
|
@ -203,7 +203,7 @@ for the GStreamer multimedia library.")
|
|||
("flac" ,flac)
|
||||
("gdk-pixbuf" ,gdk-pixbuf)
|
||||
("gst-plugins-base" ,gst-plugins-base)
|
||||
("jack" ,jack-2)
|
||||
("jack" ,jack-1)
|
||||
("libavc1394" ,libavc1394)
|
||||
("libcaca" ,libcaca)
|
||||
("libdv" ,libdv)
|
||||
|
|
|
@ -33,6 +33,8 @@
|
|||
#:use-module (guix build-system waf)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages docbook)
|
||||
|
@ -632,6 +634,92 @@ graphics library with all of the benefits of Scheme: memory management,
|
|||
exceptions, macros, and a dynamic programming environment.")
|
||||
(license license:lgpl3+)))
|
||||
|
||||
(define-public guile-rsvg
|
||||
(package
|
||||
(name "guile-rsvg")
|
||||
(version "2.18.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://wingolog.org/pub/guile-rsvg/"
|
||||
name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"136f236iw3yrrz6pkkp1ma9c5mrs5icqha6pnawinqpk892r3jh7"))
|
||||
(patches (list (search-patch "guile-rsvg-pkgconfig.patch")))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(substitute* (find-files "." "Makefile\\.am")
|
||||
(("/share/guile/site")
|
||||
"/share/guile/site/2.0")))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
(add-before 'configure 'bootstrap
|
||||
(lambda _
|
||||
(zero? (system* "autoreconf" "-vfi")))))))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)
|
||||
("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)
|
||||
("texinfo" ,texinfo)))
|
||||
(inputs `(("guile" ,guile-2.0)
|
||||
("librsvg" ,librsvg)
|
||||
("guile-lib" ,guile-lib))) ;for (unit-test)
|
||||
(propagated-inputs `(("guile-cairo" ,guile-cairo)))
|
||||
(synopsis "Render SVG images using Cairo from Guile")
|
||||
(description
|
||||
"Guile-RSVG wraps the RSVG library for Guile, allowing you to render SVG
|
||||
images onto Cairo surfaces.")
|
||||
(home-page "http://wingolog.org/projects/guile-rsvg/")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public guile-present
|
||||
(package
|
||||
(name "guile-present")
|
||||
(version "0.3.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://wingolog.org/pub/guile-present/"
|
||||
"guile-present-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1qam447m05sxxv6x8dlzg7qnyfc4dh8apjw1idpfhpns671gfr6m"))
|
||||
(patches (list (search-patch "guile-present-coding.patch")))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(substitute* "Makefile.in"
|
||||
(("godir = .*$")
|
||||
"godir = $(moddir)\n")))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases (alist-cons-after
|
||||
'install 'post-install
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(guile (assoc-ref inputs "guile")))
|
||||
(substitute* (find-files bin ".*")
|
||||
(("guile")
|
||||
(string-append guile "/bin/guile -L "
|
||||
out "/share/guile/site/2.0 -C "
|
||||
out "/share/guile/site/2.0 ")))))
|
||||
%standard-phases)))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(inputs `(("guile" ,guile-2.0)))
|
||||
(propagated-inputs
|
||||
;; These are used by the (present …) modules.
|
||||
`(("guile-lib" ,guile-lib)
|
||||
("guile-cairo" ,guile-cairo)
|
||||
("guile-rsvg" ,guile-rsvg)))
|
||||
(home-page "http://wingolog.org/software/guile-present/")
|
||||
(synopsis "Create SVG or PDF presentations in Guile")
|
||||
(description
|
||||
"Guile-Present defines a declarative vocabulary for presentations,
|
||||
together with tools to render presentation documents as SVG or PDF.
|
||||
Guile-Present can be used to make presentations programmatically, but also
|
||||
includes a tools to generate PDF presentations out of Org mode and Texinfo
|
||||
documents.")
|
||||
(license license:lgpl3+)))
|
||||
|
||||
;;;
|
||||
;;; C++ bindings.
|
||||
|
|
|
@ -24,6 +24,10 @@
|
|||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system glib-or-gtk)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gtk)
|
||||
|
@ -34,20 +38,24 @@
|
|||
(define-public ibus
|
||||
(package
|
||||
(name "ibus")
|
||||
(version "1.5.5")
|
||||
(version "1.5.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://ibus.googlecode.com/files/ibus-"
|
||||
version ".tar.gz"))
|
||||
(uri (string-append "https://github.com/ibus/ibus/"
|
||||
"releases/download/"
|
||||
version "/ibus-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1v4a9xv2k26g6ggk4282ynfvh68j2r5hg1cdpvnryfa8c2pkdaq2"))))
|
||||
"1g26llizd26h9sfz4xdq8krhz19hn08pirvfbkk3g89ri8lmm6a9"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; tests fail because there's no connection to dbus
|
||||
#:make-flags
|
||||
(list "CC=gcc"
|
||||
(string-append "pyoverridesdir="
|
||||
(assoc-ref %outputs "out")
|
||||
"/lib/python2.7/site-packages/gi/overrides/")
|
||||
(string-append "py2overridesdir="
|
||||
(assoc-ref %outputs "out")
|
||||
"/lib/python2.7/site-packages/gi/overrides/"))
|
||||
#:phases
|
||||
|
@ -83,6 +91,10 @@
|
|||
`(("glib" ,glib "bin") ; for glib-genmarshal
|
||||
("gobject-introspection" ,gobject-introspection) ; for g-ir-compiler
|
||||
("pkg-config" ,pkg-config)))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "IBUS_COMPONENT_PATH")
|
||||
(files '("share/ibus/component")))))
|
||||
(synopsis "Input method framework")
|
||||
(description
|
||||
"IBus is an input framework providing a full-featured and user-friendly
|
||||
|
@ -90,3 +102,103 @@ input method user interface. It comes with multilingual input support. It
|
|||
may also simplify input method development.")
|
||||
(home-page "http://ibus.googlecode.com/")
|
||||
(license lgpl2.1+)))
|
||||
|
||||
(define-public ibus-libpinyin
|
||||
(package
|
||||
(name "ibus-libpinyin")
|
||||
(version "1.7.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/libpinyin/"
|
||||
"ibus-libpinyin/archive/" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"080ixx5lih9lr78b061y67dqmiyc7ij87jl1sa26hhs1dr28ihka"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'autogen
|
||||
(lambda _ (and (zero? (system* "intltoolize"))
|
||||
(zero? (system* "autoreconf" "-vif")))))
|
||||
(add-after 'wrap-program 'wrap-with-additional-paths
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
;; Make sure 'ibus-setup-libpinyin' runs with the correct
|
||||
;; PYTHONPATH and GI_TYPELIB_PATH.
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(wrap-program (string-append out "/libexec/ibus-setup-libpinyin")
|
||||
`("PYTHONPATH" ":" prefix
|
||||
(,(getenv "PYTHONPATH")
|
||||
,(string-append (assoc-ref inputs "ibus")
|
||||
"/lib/girepository-1.0")))
|
||||
`("GI_TYPELIB_PATH" ":" prefix
|
||||
(,(string-append (assoc-ref inputs "ibus")
|
||||
"/lib/girepository-1.0"))))
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("ibus" ,ibus)
|
||||
("libpinyin" ,libpinyin)
|
||||
("bdb" ,bdb)
|
||||
("sqlite" ,sqlite)
|
||||
("python" ,python-2)
|
||||
("pyxdg" ,python2-pyxdg)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("intltool" ,intltool)
|
||||
("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)))
|
||||
(synopsis "Chinese Pinyin and ZhuYin input methods for IBus")
|
||||
(description
|
||||
"This package includes a Chinese Pinyin input method and a Chinese
|
||||
ZhuYin (Bopomofo) input method based on libpinyin for IBus.")
|
||||
(home-page "https://github.com/libpinyin/ibus-libpinyin")
|
||||
(license gpl2+)))
|
||||
|
||||
(define-public libpinyin
|
||||
(package
|
||||
(name "libpinyin")
|
||||
(version "1.2.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/libpinyin/libpinyin/archive/"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04didxd39vlry6nqy7xqynwc68ndajnhw334wahfmp7zjbbscs7p"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'autogen
|
||||
(lambda _ (zero? (system* "autoreconf" "-vif"))))
|
||||
(add-after 'unpack 'unpack-model
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(zero? (system* "tar" "-xvf"
|
||||
(assoc-ref inputs "model")
|
||||
"-C" "data")))))))
|
||||
(inputs
|
||||
`(("glib" ,glib)
|
||||
("bdb" ,bdb)
|
||||
("model"
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/libpinyin/"
|
||||
"models/model10.text.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0g489wqcfklxphhxpkh8i4qf9y8scmnmdbfrzdbrgf3rignbwyiw"))))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)))
|
||||
(synopsis "Library to handle Chinese Pinyin")
|
||||
(description
|
||||
"The libpinyin C++ library provides algorithms needed for sentence-based
|
||||
Chinese pinyin input methods.")
|
||||
(home-page "https://github.com/libpinyin/libpinyin")
|
||||
(license gpl2+)))
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages ghostscript)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages graphics)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
|
@ -132,7 +133,7 @@ Included are a library, libtiff, for reading and writing TIFF and a small
|
|||
collection of tools for doing simple manipulations of TIFF images.")
|
||||
(license (license:non-copyleft "file://COPYRIGHT"
|
||||
"See COPYRIGHT in the distribution."))
|
||||
(home-page "http://www.libtiff.org/")))
|
||||
(home-page "http://www.remotesensing.org/libtiff/")))
|
||||
|
||||
(define-public libwmf
|
||||
(package
|
||||
|
@ -508,9 +509,12 @@ graphics image formats like PNG, BMP, JPEG, TIFF and others.")
|
|||
("fftw" ,fftw)
|
||||
("fftwf" ,fftwf)
|
||||
("hdf5" ,hdf5)
|
||||
("ilmbase" ,ilmbase) ; propagated by openexr, but needed explicitly
|
||||
; to create a configure-flag
|
||||
("libjpeg" ,libjpeg)
|
||||
("libpng" ,libpng)
|
||||
("libtiff" ,libtiff)
|
||||
("openexr" ,openexr)
|
||||
("python" ,python-2) ; print syntax
|
||||
("python2-numpy" ,python2-numpy)
|
||||
("zlib" ,zlib)))
|
||||
|
@ -524,7 +528,15 @@ graphics image formats like PNG, BMP, JPEG, TIFF and others.")
|
|||
(list "-Wno-dev" ; suppress developer mode with lots of warnings
|
||||
(string-append "-DVIGRANUMPY_INSTALL_DIR="
|
||||
(assoc-ref %outputs "out")
|
||||
"/lib/python2.7/site-packages"))))
|
||||
"/lib/python2.7/site-packages")
|
||||
;; OpenEXR is not enabled by default.
|
||||
"-DWITH_OPENEXR=1"
|
||||
;; The header files of ilmbase are not found when included
|
||||
;; by the header files of openexr, and an explicit flag
|
||||
;; needs to be set.
|
||||
(string-append "-DCMAKE_CXX_FLAGS=-I"
|
||||
(assoc-ref %build-inputs "ilmbase")
|
||||
"/include/OpenEXR"))))
|
||||
(synopsis "Computer vision library")
|
||||
(description
|
||||
"VIGRA stands for Vision with Generic Algorithms. It is an image
|
||||
|
|
|
@ -18,7 +18,8 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages libcanberra)
|
||||
#:use-module ((guix licenses) #:select (lgpl2.1+))
|
||||
#:use-module ((guix licenses)
|
||||
#:select (lgpl2.1+ gpl2 gpl2+ cc-by-sa4.0 cc-by3.0))
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
|
@ -112,5 +113,8 @@ null) and is designed to be portable.")
|
|||
(description
|
||||
"This package provides audio samples that can be used by libcanberra as
|
||||
sounds for various system events.")
|
||||
(license #f)
|
||||
|
||||
;; The license of the various sounds is given in the 'CREDITS' file.
|
||||
(license (list cc-by-sa4.0 cc-by3.0 gpl2 gpl2+))
|
||||
|
||||
(home-page "http://www.freedesktop.org/wiki/Specifications/sound-theme-spec/")))
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
|
||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -26,7 +27,7 @@
|
|||
(define-public libedit
|
||||
(package
|
||||
(name "libedit")
|
||||
(version "20141030-3.1")
|
||||
(version "20150325-3.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -34,8 +35,9 @@
|
|||
"/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0h2svwfcdldpbg0fy7fnkld706r2a9k9h1mm0yj7z3zvf1jy20cp"))))
|
||||
"1if8zi9h52m80ck796an28rrqfljk2n8cn25m3fl0prwz155x2n8"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments `(#:configure-flags (list "--enable-widec")))
|
||||
(inputs
|
||||
`(("ncurses" ,ncurses)))
|
||||
(home-page "http://thrysoee.dk/editline/")
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
|
||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -25,9 +26,13 @@
|
|||
#:use-module (guix utils)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system glib-or-gtk)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages pkg-config))
|
||||
#:use-module (gnu packages mp3)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages xiph))
|
||||
|
||||
(define-public libusb
|
||||
(package
|
||||
|
@ -116,3 +121,37 @@ proposed for standardization.")
|
|||
;; Foundation; either version 2 of the License, or (at your option) any
|
||||
;; later version."
|
||||
(license lgpl2.1+)))
|
||||
|
||||
(define-public gmtp
|
||||
(package
|
||||
(name "gmtp")
|
||||
(version "1.3.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/gmtp/" version
|
||||
"/gmtp-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0bdxvi0jf3q870a39xzsaj4qrjwc9b5bgvc95plc7xb6vf2m7zsv"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
(let ((libid3tag (assoc-ref %build-inputs "libid3tag")))
|
||||
(list
|
||||
;; libid3tag provides no .pc file, so pkg-config fails to find them.
|
||||
(string-append "ID3TAG_CFLAGS=-I" libid3tag "/include")
|
||||
(string-append "ID3TAG_LIBS=-L" libid3tag "/lib -lid3tag -lz")))))
|
||||
(inputs
|
||||
`(("gtk+" ,gtk+)
|
||||
("flac" ,flac)
|
||||
("libvorbis" ,libvorbis)
|
||||
("libid3tag" ,libid3tag)
|
||||
("libmtp" ,libmtp)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(home-page "http://gmtp.sourceforge.net/")
|
||||
(synopsis "Simple graphical MTP client")
|
||||
(description "gMTP is a simple graphical client for the Media Transfer Protocol
|
||||
(MTP), which allows media files to be transferred to and from many portable
|
||||
devices.")
|
||||
(license bsd-3)))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/x86 4.1.0-gnu Kernel Configuration
|
||||
# Linux/x86 4.2.0-gnu Kernel Configuration
|
||||
#
|
||||
# CONFIG_64BIT is not set
|
||||
CONFIG_X86_32=y
|
||||
|
@ -34,7 +34,6 @@ CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
|
|||
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
|
||||
CONFIG_HAVE_INTEL_TXT=y
|
||||
CONFIG_X86_32_SMP=y
|
||||
CONFIG_X86_HT=y
|
||||
CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
|
||||
CONFIG_ARCH_SUPPORTS_UPROBES=y
|
||||
CONFIG_FIX_EARLYCON_MEM=y
|
||||
|
@ -83,11 +82,12 @@ CONFIG_AUDIT_TREE=y
|
|||
#
|
||||
CONFIG_GENERIC_IRQ_PROBE=y
|
||||
CONFIG_GENERIC_IRQ_SHOW=y
|
||||
CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ=y
|
||||
CONFIG_GENERIC_PENDING_IRQ=y
|
||||
CONFIG_GENERIC_IRQ_CHIP=y
|
||||
CONFIG_IRQ_DOMAIN=y
|
||||
CONFIG_IRQ_DOMAIN_HIERARCHY=y
|
||||
CONFIG_GENERIC_MSI_IRQ=y
|
||||
CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
|
||||
# CONFIG_IRQ_DOMAIN_DEBUG is not set
|
||||
CONFIG_IRQ_FORCED_THREADING=y
|
||||
CONFIG_SPARSE_IRQ=y
|
||||
|
@ -126,15 +126,11 @@ CONFIG_TASK_IO_ACCOUNTING=y
|
|||
# RCU Subsystem
|
||||
#
|
||||
CONFIG_TREE_RCU=y
|
||||
# CONFIG_RCU_EXPERT is not set
|
||||
CONFIG_SRCU=y
|
||||
# CONFIG_TASKS_RCU is not set
|
||||
CONFIG_RCU_STALL_COMMON=y
|
||||
CONFIG_RCU_FANOUT=32
|
||||
CONFIG_RCU_FANOUT_LEAF=16
|
||||
# CONFIG_RCU_FANOUT_EXACT is not set
|
||||
CONFIG_RCU_FAST_NO_HZ=y
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
CONFIG_RCU_KTHREAD_PRIO=0
|
||||
# CONFIG_RCU_NOCB_CPU is not set
|
||||
# CONFIG_RCU_EXPEDITE_BOOT is not set
|
||||
CONFIG_BUILD_BIN2C=y
|
||||
|
@ -162,6 +158,7 @@ CONFIG_CFS_BANDWIDTH=y
|
|||
# CONFIG_RT_GROUP_SCHED is not set
|
||||
CONFIG_BLK_CGROUP=y
|
||||
# CONFIG_DEBUG_BLK_CGROUP is not set
|
||||
CONFIG_CGROUP_WRITEBACK=y
|
||||
CONFIG_CHECKPOINT_RESTORE=y
|
||||
CONFIG_NAMESPACES=y
|
||||
CONFIG_UTS_NS=y
|
||||
|
@ -251,6 +248,7 @@ CONFIG_HAVE_ARCH_TRACEHOOK=y
|
|||
CONFIG_HAVE_DMA_ATTRS=y
|
||||
CONFIG_HAVE_DMA_CONTIGUOUS=y
|
||||
CONFIG_GENERIC_SMP_IDLE_THREAD=y
|
||||
CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
|
||||
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
|
||||
CONFIG_HAVE_CLK=y
|
||||
CONFIG_HAVE_DMA_API_DEBUG=y
|
||||
|
@ -278,6 +276,7 @@ CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
|
|||
CONFIG_HAVE_ARCH_HUGE_VMAP=y
|
||||
CONFIG_MODULES_USE_ELF_REL=y
|
||||
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
|
||||
CONFIG_HAVE_COPY_THREAD_TLS=y
|
||||
CONFIG_CLONE_BACKWARDS=y
|
||||
CONFIG_OLD_SIGSUSPEND3=y
|
||||
CONFIG_OLD_SIGACTION=y
|
||||
|
@ -299,6 +298,7 @@ CONFIG_MODVERSIONS=y
|
|||
CONFIG_MODULE_SRCVERSION_ALL=y
|
||||
# CONFIG_MODULE_SIG is not set
|
||||
# CONFIG_MODULE_COMPRESS is not set
|
||||
CONFIG_MODULES_TREE_LOOKUP=y
|
||||
CONFIG_STOP_MACHINE=y
|
||||
CONFIG_BLOCK=y
|
||||
CONFIG_LBDAF=y
|
||||
|
@ -312,13 +312,7 @@ CONFIG_BLK_CMDLINE_PARSER=y
|
|||
# Partition Types
|
||||
#
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
CONFIG_ACORN_PARTITION=y
|
||||
CONFIG_ACORN_PARTITION_CUMANA=y
|
||||
CONFIG_ACORN_PARTITION_EESOX=y
|
||||
CONFIG_ACORN_PARTITION_ICS=y
|
||||
CONFIG_ACORN_PARTITION_ADFS=y
|
||||
CONFIG_ACORN_PARTITION_POWERTEC=y
|
||||
CONFIG_ACORN_PARTITION_RISCIX=y
|
||||
# CONFIG_ACORN_PARTITION is not set
|
||||
CONFIG_AIX_PARTITION=y
|
||||
CONFIG_OSF_PARTITION=y
|
||||
CONFIG_AMIGA_PARTITION=y
|
||||
|
@ -353,7 +347,6 @@ CONFIG_DEFAULT_IOSCHED="deadline"
|
|||
CONFIG_PREEMPT_NOTIFIERS=y
|
||||
CONFIG_PADATA=y
|
||||
CONFIG_ASN1=y
|
||||
CONFIG_UNINLINE_SPIN_UNLOCK=y
|
||||
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
|
||||
CONFIG_INLINE_READ_UNLOCK=y
|
||||
CONFIG_INLINE_READ_UNLOCK_IRQ=y
|
||||
|
@ -363,8 +356,10 @@ CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
|
|||
CONFIG_MUTEX_SPIN_ON_OWNER=y
|
||||
CONFIG_RWSEM_SPIN_ON_OWNER=y
|
||||
CONFIG_LOCK_SPIN_ON_OWNER=y
|
||||
CONFIG_ARCH_USE_QUEUE_RWLOCK=y
|
||||
CONFIG_QUEUE_RWLOCK=y
|
||||
CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
|
||||
CONFIG_QUEUED_SPINLOCKS=y
|
||||
CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
|
||||
CONFIG_QUEUED_RWLOCKS=y
|
||||
CONFIG_FREEZER=y
|
||||
|
||||
#
|
||||
|
@ -541,7 +536,9 @@ CONFIG_ZSMALLOC=y
|
|||
CONFIG_PGTABLE_MAPPING=y
|
||||
# CONFIG_ZSMALLOC_STAT is not set
|
||||
CONFIG_GENERIC_EARLY_IOREMAP=y
|
||||
# CONFIG_X86_PMEM_LEGACY is not set
|
||||
CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y
|
||||
# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
|
||||
CONFIG_X86_PMEM_LEGACY=y
|
||||
CONFIG_HIGHPTE=y
|
||||
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
|
||||
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
|
||||
|
@ -612,6 +609,7 @@ CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
|
|||
CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
|
||||
CONFIG_ACPI_SLEEP=y
|
||||
# CONFIG_ACPI_PROCFS_POWER is not set
|
||||
CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
|
||||
CONFIG_ACPI_EC_DEBUGFS=m
|
||||
CONFIG_ACPI_AC=y
|
||||
CONFIG_ACPI_BATTERY=y
|
||||
|
@ -638,6 +636,8 @@ CONFIG_ACPI_HED=y
|
|||
# CONFIG_ACPI_CUSTOM_METHOD is not set
|
||||
CONFIG_ACPI_BGRT=y
|
||||
# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
|
||||
CONFIG_ACPI_NFIT=m
|
||||
# CONFIG_ACPI_NFIT_DEBUG is not set
|
||||
CONFIG_HAVE_ACPI_APEI=y
|
||||
CONFIG_HAVE_ACPI_APEI_NMI=y
|
||||
CONFIG_ACPI_APEI=y
|
||||
|
@ -738,7 +738,9 @@ CONFIG_PCIEASPM_DEFAULT=y
|
|||
# CONFIG_PCIEASPM_POWERSAVE is not set
|
||||
# CONFIG_PCIEASPM_PERFORMANCE is not set
|
||||
CONFIG_PCIE_PME=y
|
||||
CONFIG_PCI_BUS_ADDR_T_64BIT=y
|
||||
CONFIG_PCI_MSI=y
|
||||
CONFIG_PCI_MSI_IRQ_DOMAIN=y
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
CONFIG_PCI_REALLOC_ENABLE_AUTO=y
|
||||
CONFIG_PCI_STUB=m
|
||||
|
@ -826,6 +828,7 @@ CONFIG_COREDUMP=y
|
|||
CONFIG_HAVE_ATOMIC_IOMAP=y
|
||||
CONFIG_PMC_ATOM=y
|
||||
CONFIG_NET=y
|
||||
CONFIG_NET_INGRESS=y
|
||||
|
||||
#
|
||||
# Networking options
|
||||
|
@ -869,7 +872,7 @@ CONFIG_NET_IPVTI=m
|
|||
CONFIG_NET_UDP_TUNNEL=m
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_NET_FOU_IP_TUNNELS=y
|
||||
CONFIG_GENEVE=m
|
||||
CONFIG_GENEVE_CORE=m
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_IPCOMP=m
|
||||
|
@ -896,6 +899,7 @@ CONFIG_TCP_CONG_VENO=m
|
|||
CONFIG_TCP_CONG_YEAH=m
|
||||
CONFIG_TCP_CONG_ILLINOIS=m
|
||||
CONFIG_TCP_CONG_DCTCP=m
|
||||
CONFIG_TCP_CONG_CDG=m
|
||||
CONFIG_DEFAULT_CUBIC=y
|
||||
# CONFIG_DEFAULT_RENO is not set
|
||||
CONFIG_DEFAULT_TCP_CONG="cubic"
|
||||
|
@ -937,6 +941,7 @@ CONFIG_BRIDGE_NETFILTER=m
|
|||
#
|
||||
# Core Netfilter Configuration
|
||||
#
|
||||
CONFIG_NETFILTER_INGRESS=y
|
||||
CONFIG_NETFILTER_NETLINK=m
|
||||
CONFIG_NETFILTER_NETLINK_ACCT=m
|
||||
CONFIG_NETFILTER_NETLINK_QUEUE=m
|
||||
|
@ -984,6 +989,7 @@ CONFIG_NF_NAT_REDIRECT=m
|
|||
CONFIG_NETFILTER_SYNPROXY=m
|
||||
CONFIG_NF_TABLES=m
|
||||
CONFIG_NF_TABLES_INET=m
|
||||
CONFIG_NF_TABLES_NETDEV=m
|
||||
CONFIG_NFT_EXTHDR=m
|
||||
CONFIG_NFT_META=m
|
||||
CONFIG_NFT_CT=m
|
||||
|
@ -1382,6 +1388,7 @@ CONFIG_NET_CLS_RSVP6=m
|
|||
CONFIG_NET_CLS_FLOW=m
|
||||
CONFIG_NET_CLS_CGROUP=m
|
||||
CONFIG_NET_CLS_BPF=m
|
||||
CONFIG_NET_CLS_FLOWER=m
|
||||
CONFIG_NET_EMATCH=y
|
||||
CONFIG_NET_EMATCH_STACK=32
|
||||
CONFIG_NET_EMATCH_CMP=m
|
||||
|
@ -1594,8 +1601,10 @@ CONFIG_BT_DEBUGFS=y
|
|||
#
|
||||
CONFIG_BT_INTEL=m
|
||||
CONFIG_BT_BCM=m
|
||||
CONFIG_BT_RTL=m
|
||||
CONFIG_BT_HCIBTUSB=m
|
||||
CONFIG_BT_HCIBTUSB_BCM=y
|
||||
CONFIG_BT_HCIBTUSB_RTL=y
|
||||
CONFIG_BT_HCIBTSDIO=m
|
||||
CONFIG_BT_HCIUART=m
|
||||
CONFIG_BT_HCIUART_H4=y
|
||||
|
@ -1654,6 +1663,7 @@ CONFIG_MAC80211_LEDS=y
|
|||
CONFIG_MAC80211_DEBUGFS=y
|
||||
CONFIG_MAC80211_MESSAGE_TRACING=y
|
||||
# CONFIG_MAC80211_DEBUG_MENU is not set
|
||||
CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
|
||||
CONFIG_WIMAX=m
|
||||
CONFIG_WIMAX_DEBUG_LEVEL=8
|
||||
CONFIG_RFKILL=y
|
||||
|
@ -1676,6 +1686,7 @@ CONFIG_NFC=m
|
|||
CONFIG_NFC_DIGITAL=m
|
||||
CONFIG_NFC_NCI=m
|
||||
CONFIG_NFC_NCI_SPI=y
|
||||
CONFIG_NFC_NCI_UART=m
|
||||
CONFIG_NFC_HCI=m
|
||||
CONFIG_NFC_SHDLC=y
|
||||
|
||||
|
@ -1696,10 +1707,11 @@ CONFIG_NFC_MICROREAD_I2C=m
|
|||
CONFIG_NFC_MICROREAD_MEI=m
|
||||
CONFIG_NFC_MRVL=m
|
||||
CONFIG_NFC_MRVL_USB=m
|
||||
CONFIG_NFC_MRVL_UART=m
|
||||
CONFIG_NFC_ST21NFCA=m
|
||||
CONFIG_NFC_ST21NFCA_I2C=m
|
||||
CONFIG_NFC_ST21NFCB=m
|
||||
CONFIG_NFC_ST21NFCB_I2C=m
|
||||
CONFIG_NFC_ST_NCI=m
|
||||
CONFIG_NFC_ST_NCI_I2C=m
|
||||
CONFIG_NFC_NXP_NCI=m
|
||||
CONFIG_NFC_NXP_NCI_I2C=m
|
||||
|
||||
|
@ -1885,6 +1897,7 @@ CONFIG_MTD_UBI_BEB_LIMIT=20
|
|||
CONFIG_MTD_UBI_FASTMAP=y
|
||||
CONFIG_MTD_UBI_GLUEBI=m
|
||||
CONFIG_MTD_UBI_BLOCK=y
|
||||
# CONFIG_OF is not set
|
||||
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
|
||||
CONFIG_PARPORT=m
|
||||
CONFIG_PARPORT_PC=m
|
||||
|
@ -1942,7 +1955,6 @@ CONFIG_PARIDE_ON26=m
|
|||
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
|
||||
CONFIG_ZRAM=m
|
||||
CONFIG_ZRAM_LZ4_COMPRESS=y
|
||||
# CONFIG_ZRAM_DEBUG is not set
|
||||
CONFIG_BLK_CPQ_CISS_DA=m
|
||||
CONFIG_CISS_SCSI_TAPE=y
|
||||
CONFIG_BLK_DEV_DAC960=m
|
||||
|
@ -1961,7 +1973,6 @@ CONFIG_BLK_DEV_RAM=y
|
|||
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||
CONFIG_BLK_DEV_RAM_SIZE=65536
|
||||
CONFIG_BLK_DEV_RAM_DAX=y
|
||||
CONFIG_BLK_DEV_PMEM=m
|
||||
CONFIG_CDROM_PKTCDVD=m
|
||||
CONFIG_CDROM_PKTCDVD_BUFFERS=8
|
||||
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
|
||||
|
@ -2044,6 +2055,10 @@ CONFIG_VMWARE_VMCI=m
|
|||
# Intel MIC Bus Driver
|
||||
#
|
||||
|
||||
#
|
||||
# SCIF Bus Driver
|
||||
#
|
||||
|
||||
#
|
||||
# Intel MIC Host Driver
|
||||
#
|
||||
|
@ -2051,8 +2066,13 @@ CONFIG_VMWARE_VMCI=m
|
|||
#
|
||||
# Intel MIC Card Driver
|
||||
#
|
||||
|
||||
#
|
||||
# SCIF Driver
|
||||
#
|
||||
CONFIG_ECHO=m
|
||||
# CONFIG_CXL_BASE is not set
|
||||
# CONFIG_CXL_KERNEL_API is not set
|
||||
CONFIG_HAVE_IDE=y
|
||||
# CONFIG_IDE is not set
|
||||
|
||||
|
@ -2158,6 +2178,8 @@ CONFIG_LIBFC=m
|
|||
CONFIG_LIBFCOE=m
|
||||
CONFIG_FCOE=m
|
||||
CONFIG_FCOE_FNIC=m
|
||||
CONFIG_SCSI_SNIC=m
|
||||
# CONFIG_SCSI_SNIC_DEBUG_FS is not set
|
||||
CONFIG_SCSI_DMX3191D=m
|
||||
CONFIG_SCSI_DTC3280=m
|
||||
CONFIG_SCSI_EATA=m
|
||||
|
@ -2356,6 +2378,7 @@ CONFIG_DM_SNAPSHOT=m
|
|||
CONFIG_DM_THIN_PROVISIONING=m
|
||||
CONFIG_DM_CACHE=m
|
||||
CONFIG_DM_CACHE_MQ=m
|
||||
CONFIG_DM_CACHE_SMQ=m
|
||||
CONFIG_DM_CACHE_CLEANER=m
|
||||
CONFIG_DM_ERA=m
|
||||
CONFIG_DM_MIRROR=m
|
||||
|
@ -2417,6 +2440,7 @@ CONFIG_MACVLAN=m
|
|||
CONFIG_MACVTAP=m
|
||||
CONFIG_IPVLAN=m
|
||||
CONFIG_VXLAN=m
|
||||
CONFIG_GENEVE=m
|
||||
CONFIG_NETCONSOLE=m
|
||||
CONFIG_NETCONSOLE_DYNAMIC=y
|
||||
CONFIG_NETPOLL=y
|
||||
|
@ -2426,6 +2450,7 @@ CONFIG_RIONET=m
|
|||
CONFIG_RIONET_TX_SIZE=128
|
||||
CONFIG_RIONET_RX_SIZE=128
|
||||
CONFIG_TUN=y
|
||||
# CONFIG_TUN_VNET_CROSS_LE is not set
|
||||
CONFIG_VETH=m
|
||||
CONFIG_VIRTIO_NET=y
|
||||
CONFIG_NLMON=m
|
||||
|
@ -2485,6 +2510,7 @@ CONFIG_VHOST_NET=m
|
|||
CONFIG_VHOST_SCSI=m
|
||||
CONFIG_VHOST_RING=m
|
||||
CONFIG_VHOST=m
|
||||
# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
|
||||
|
||||
#
|
||||
# Distributed Switch Architecture drivers
|
||||
|
@ -2536,6 +2562,7 @@ CONFIG_BNX2X=m
|
|||
CONFIG_BNX2X_SRIOV=y
|
||||
CONFIG_NET_VENDOR_BROCADE=y
|
||||
CONFIG_BNA=m
|
||||
CONFIG_NET_VENDOR_CAVIUM=m
|
||||
CONFIG_NET_VENDOR_CHELSIO=y
|
||||
CONFIG_CHELSIO_T1=m
|
||||
CONFIG_CHELSIO_T1_1G=y
|
||||
|
@ -2570,7 +2597,9 @@ CONFIG_SUNDANCE=m
|
|||
# CONFIG_SUNDANCE_MMIO is not set
|
||||
CONFIG_NET_VENDOR_EMULEX=y
|
||||
CONFIG_BE2NET=m
|
||||
CONFIG_BE2NET_HWMON=y
|
||||
CONFIG_BE2NET_VXLAN=y
|
||||
CONFIG_NET_VENDOR_EZCHIP=y
|
||||
CONFIG_NET_VENDOR_EXAR=y
|
||||
CONFIG_S2IO=m
|
||||
CONFIG_VXGE=m
|
||||
|
@ -2618,6 +2647,7 @@ CONFIG_MLX4_EN_VXLAN=y
|
|||
CONFIG_MLX4_CORE=m
|
||||
CONFIG_MLX4_DEBUG=y
|
||||
CONFIG_MLX5_CORE=m
|
||||
CONFIG_MLX5_CORE_EN=y
|
||||
CONFIG_NET_VENDOR_MICREL=y
|
||||
CONFIG_KS8842=m
|
||||
CONFIG_KS8851=m
|
||||
|
@ -2667,6 +2697,7 @@ CONFIG_8139TOO_PIO=y
|
|||
CONFIG_8139TOO_8129=y
|
||||
# CONFIG_8139_OLD_RX_RESET is not set
|
||||
CONFIG_R8169=m
|
||||
CONFIG_NET_VENDOR_RENESAS=y
|
||||
CONFIG_NET_VENDOR_RDC=y
|
||||
CONFIG_R6040=m
|
||||
CONFIG_NET_VENDOR_ROCKER=y
|
||||
|
@ -2682,6 +2713,7 @@ CONFIG_SFC=m
|
|||
CONFIG_SFC_MTD=y
|
||||
CONFIG_SFC_MCDI_MON=y
|
||||
CONFIG_SFC_SRIOV=y
|
||||
CONFIG_SFC_MCDI_LOGGING=y
|
||||
CONFIG_NET_VENDOR_SMSC=y
|
||||
CONFIG_SMC9194=m
|
||||
CONFIG_PCMCIA_SMC91C92=m
|
||||
|
@ -2692,6 +2724,7 @@ CONFIG_SMSC9420=m
|
|||
CONFIG_NET_VENDOR_STMICRO=y
|
||||
CONFIG_STMMAC_ETH=m
|
||||
CONFIG_STMMAC_PLATFORM=m
|
||||
CONFIG_DWMAC_GENERIC=m
|
||||
# CONFIG_STMMAC_PCI is not set
|
||||
CONFIG_NET_VENDOR_SUN=y
|
||||
CONFIG_HAPPYMEAL=m
|
||||
|
@ -2744,6 +2777,7 @@ CONFIG_NATIONAL_PHY=m
|
|||
CONFIG_STE10XP=m
|
||||
CONFIG_LSI_ET1011C_PHY=m
|
||||
CONFIG_MICREL_PHY=m
|
||||
CONFIG_DP83867_PHY=m
|
||||
CONFIG_FIXED_PHY=y
|
||||
CONFIG_MDIO_BITBANG=m
|
||||
CONFIG_MDIO_GPIO=m
|
||||
|
@ -3003,6 +3037,8 @@ CONFIG_RT2X00_LIB_CRYPTO=y
|
|||
CONFIG_RT2X00_LIB_LEDS=y
|
||||
# CONFIG_RT2X00_LIB_DEBUGFS is not set
|
||||
# CONFIG_RT2X00_DEBUG is not set
|
||||
CONFIG_WL_MEDIATEK=y
|
||||
CONFIG_MT7601U=m
|
||||
CONFIG_RTL_CARDS=m
|
||||
CONFIG_RTL8192CE=m
|
||||
CONFIG_RTL8192SE=m
|
||||
|
@ -3083,6 +3119,7 @@ CONFIG_IEEE802154_FAKELB=m
|
|||
CONFIG_IEEE802154_AT86RF230=m
|
||||
CONFIG_IEEE802154_MRF24J40=m
|
||||
CONFIG_IEEE802154_CC2520=m
|
||||
CONFIG_IEEE802154_ATUSB=m
|
||||
CONFIG_XEN_NETDEV_FRONTEND=y
|
||||
CONFIG_XEN_NETDEV_BACKEND=m
|
||||
CONFIG_VMXNET3=m
|
||||
|
@ -3239,6 +3276,7 @@ CONFIG_ISDN_HDLC=m
|
|||
# Input device support
|
||||
#
|
||||
CONFIG_INPUT=y
|
||||
CONFIG_INPUT_LEDS=m
|
||||
CONFIG_INPUT_FF_MEMLESS=m
|
||||
CONFIG_INPUT_POLLDEV=m
|
||||
CONFIG_INPUT_SPARSEKMAP=m
|
||||
|
@ -3394,6 +3432,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
|
|||
CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
|
||||
CONFIG_TOUCHSCREEN_UCB1400=m
|
||||
CONFIG_TOUCHSCREEN_PIXCIR=m
|
||||
CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
|
||||
CONFIG_TOUCHSCREEN_WM831X=m
|
||||
CONFIG_TOUCHSCREEN_WM97XX=m
|
||||
CONFIG_TOUCHSCREEN_WM9705=y
|
||||
|
@ -3474,6 +3513,7 @@ CONFIG_INPUT_PWM_BEEPER=m
|
|||
CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
|
||||
CONFIG_INPUT_DA9052_ONKEY=m
|
||||
CONFIG_INPUT_DA9055_ONKEY=m
|
||||
CONFIG_INPUT_DA9063_ONKEY=m
|
||||
CONFIG_INPUT_WM831X_ON=m
|
||||
CONFIG_INPUT_PCAP=m
|
||||
CONFIG_INPUT_ADXL34X=m
|
||||
|
@ -3486,6 +3526,7 @@ CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
|
|||
CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
|
||||
CONFIG_INPUT_SOC_BUTTON_ARRAY=m
|
||||
CONFIG_INPUT_DRV260X_HAPTICS=m
|
||||
CONFIG_INPUT_DRV2665_HAPTICS=m
|
||||
CONFIG_INPUT_DRV2667_HAPTICS=m
|
||||
|
||||
#
|
||||
|
@ -3581,7 +3622,10 @@ CONFIG_CONSOLE_POLL=y
|
|||
CONFIG_SERIAL_JSM=m
|
||||
CONFIG_SERIAL_SCCNXP=y
|
||||
CONFIG_SERIAL_SCCNXP_CONSOLE=y
|
||||
CONFIG_SERIAL_SC16IS7XX_CORE=m
|
||||
CONFIG_SERIAL_SC16IS7XX=m
|
||||
CONFIG_SERIAL_SC16IS7XX_I2C=y
|
||||
CONFIG_SERIAL_SC16IS7XX_SPI=y
|
||||
CONFIG_SERIAL_TIMBERDALE=m
|
||||
CONFIG_SERIAL_ALTERA_JTAGUART=m
|
||||
CONFIG_SERIAL_ALTERA_UART=m
|
||||
|
@ -3774,6 +3818,7 @@ CONFIG_SPI_SC18IS602=m
|
|||
CONFIG_SPI_TOPCLIFF_PCH=m
|
||||
CONFIG_SPI_XCOMM=m
|
||||
# CONFIG_SPI_XILINX is not set
|
||||
CONFIG_SPI_ZYNQMP_GQSPI=m
|
||||
CONFIG_SPI_DESIGNWARE=m
|
||||
CONFIG_SPI_DW_PCI=m
|
||||
CONFIG_SPI_DW_MID_DMA=y
|
||||
|
@ -3969,6 +4014,7 @@ CONFIG_BATTERY_BQ27X00_PLATFORM=y
|
|||
CONFIG_BATTERY_DA9030=m
|
||||
CONFIG_BATTERY_DA9052=m
|
||||
CONFIG_CHARGER_DA9150=m
|
||||
CONFIG_AXP288_CHARGER=m
|
||||
CONFIG_AXP288_FUEL_GAUGE=m
|
||||
CONFIG_BATTERY_MAX17040=m
|
||||
CONFIG_BATTERY_MAX17042=m
|
||||
|
@ -3990,11 +4036,14 @@ CONFIG_CHARGER_MAX8997=m
|
|||
CONFIG_CHARGER_MAX8998=m
|
||||
CONFIG_CHARGER_BQ2415X=m
|
||||
CONFIG_CHARGER_BQ24190=m
|
||||
CONFIG_CHARGER_BQ24257=m
|
||||
CONFIG_CHARGER_BQ24735=m
|
||||
CONFIG_CHARGER_BQ25890=m
|
||||
CONFIG_CHARGER_SMB347=m
|
||||
CONFIG_CHARGER_TPS65090=m
|
||||
CONFIG_BATTERY_GAUGE_LTC2941=m
|
||||
CONFIG_BATTERY_RT5033=m
|
||||
CONFIG_CHARGER_RT9455=m
|
||||
CONFIG_POWER_RESET=y
|
||||
CONFIG_POWER_RESET_RESTART=y
|
||||
CONFIG_POWER_AVS=y
|
||||
|
@ -4032,6 +4081,7 @@ CONFIG_SENSORS_ASB100=m
|
|||
CONFIG_SENSORS_ATXP1=m
|
||||
CONFIG_SENSORS_DS620=m
|
||||
CONFIG_SENSORS_DS1621=m
|
||||
CONFIG_SENSORS_DELL_SMM=m
|
||||
CONFIG_SENSORS_DA9052_ADC=m
|
||||
CONFIG_SENSORS_DA9055=m
|
||||
CONFIG_SENSORS_I5K_AMB=m
|
||||
|
@ -4134,6 +4184,7 @@ CONFIG_SENSORS_ADS7871=m
|
|||
CONFIG_SENSORS_AMC6821=m
|
||||
CONFIG_SENSORS_INA209=m
|
||||
CONFIG_SENSORS_INA2XX=m
|
||||
CONFIG_SENSORS_TC74=m
|
||||
CONFIG_SENSORS_THMC50=m
|
||||
CONFIG_SENSORS_TMP102=m
|
||||
CONFIG_SENSORS_TMP103=m
|
||||
|
@ -4164,16 +4215,20 @@ CONFIG_SENSORS_ACPI_POWER=m
|
|||
CONFIG_SENSORS_ATK0110=m
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_THERMAL_HWMON=y
|
||||
CONFIG_THERMAL_WRITABLE_TRIPS=y
|
||||
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
|
||||
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
|
||||
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
|
||||
# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set
|
||||
CONFIG_THERMAL_GOV_FAIR_SHARE=y
|
||||
CONFIG_THERMAL_GOV_STEP_WISE=y
|
||||
CONFIG_THERMAL_GOV_BANG_BANG=y
|
||||
CONFIG_THERMAL_GOV_USER_SPACE=y
|
||||
CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
|
||||
CONFIG_THERMAL_EMULATION=y
|
||||
CONFIG_INTEL_POWERCLAMP=m
|
||||
CONFIG_X86_PKG_TEMP_THERMAL=m
|
||||
CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
|
||||
CONFIG_INTEL_SOC_DTS_THERMAL=m
|
||||
CONFIG_INT340X_THERMAL=m
|
||||
CONFIG_ACPI_THERMAL_REL=m
|
||||
|
@ -4200,6 +4255,7 @@ CONFIG_CADENCE_WATCHDOG=m
|
|||
CONFIG_DW_WATCHDOG=m
|
||||
CONFIG_RN5T618_WATCHDOG=m
|
||||
CONFIG_TWL4030_WATCHDOG=m
|
||||
CONFIG_MAX63XX_WATCHDOG=m
|
||||
CONFIG_RETU_WATCHDOG=m
|
||||
CONFIG_ACQUIRE_WDT=m
|
||||
CONFIG_ADVANTECH_WDT=m
|
||||
|
@ -4306,6 +4362,7 @@ CONFIG_MFD_BCM590XX=m
|
|||
CONFIG_MFD_AXP20X=y
|
||||
CONFIG_MFD_CROS_EC=m
|
||||
CONFIG_MFD_CROS_EC_I2C=m
|
||||
CONFIG_MFD_CROS_EC_SPI=m
|
||||
CONFIG_PMIC_DA903X=y
|
||||
CONFIG_PMIC_DA9052=y
|
||||
CONFIG_MFD_DA9052_SPI=y
|
||||
|
@ -4451,6 +4508,7 @@ CONFIG_REGULATOR_PCAP=m
|
|||
CONFIG_REGULATOR_PCF50633=m
|
||||
CONFIG_REGULATOR_PFUZE100=m
|
||||
CONFIG_REGULATOR_PWM=m
|
||||
CONFIG_REGULATOR_QCOM_SPMI=m
|
||||
CONFIG_REGULATOR_RC5T583=m
|
||||
CONFIG_REGULATOR_RN5T618=m
|
||||
CONFIG_REGULATOR_RT5033=m
|
||||
|
@ -4494,6 +4552,7 @@ CONFIG_VIDEO_V4L2=m
|
|||
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
|
||||
CONFIG_VIDEO_TUNER=m
|
||||
CONFIG_V4L2_MEM2MEM_DEV=m
|
||||
CONFIG_V4L2_FLASH_LED_CLASS=m
|
||||
CONFIG_VIDEOBUF_GEN=m
|
||||
CONFIG_VIDEOBUF_DMA_SG=m
|
||||
CONFIG_VIDEOBUF_VMALLOC=m
|
||||
|
@ -4733,6 +4792,7 @@ CONFIG_VIDEO_HEXIUM_ORION=m
|
|||
CONFIG_VIDEO_MXB=m
|
||||
CONFIG_VIDEO_SOLO6X10=m
|
||||
CONFIG_VIDEO_TW68=m
|
||||
CONFIG_VIDEO_DT3155=m
|
||||
|
||||
#
|
||||
# Media capture/analog/hybrid TV support
|
||||
|
@ -4758,6 +4818,7 @@ CONFIG_VIDEO_SAA7134_RC=y
|
|||
CONFIG_VIDEO_SAA7134_DVB=m
|
||||
CONFIG_VIDEO_SAA7134_GO7007=m
|
||||
CONFIG_VIDEO_SAA7164=m
|
||||
CONFIG_VIDEO_COBALT=m
|
||||
|
||||
#
|
||||
# Media digital TV PCI Adapters
|
||||
|
@ -4895,6 +4956,8 @@ CONFIG_VIDEO_SAA6588=m
|
|||
# Video decoders
|
||||
#
|
||||
CONFIG_VIDEO_ADV7180=m
|
||||
CONFIG_VIDEO_ADV7604=m
|
||||
CONFIG_VIDEO_ADV7842=m
|
||||
CONFIG_VIDEO_BT819=m
|
||||
CONFIG_VIDEO_BT856=m
|
||||
CONFIG_VIDEO_BT866=m
|
||||
|
@ -4920,6 +4983,7 @@ CONFIG_VIDEO_SAA7127=m
|
|||
CONFIG_VIDEO_SAA7185=m
|
||||
CONFIG_VIDEO_ADV7170=m
|
||||
CONFIG_VIDEO_ADV7175=m
|
||||
CONFIG_VIDEO_ADV7511=m
|
||||
|
||||
#
|
||||
# Camera sensor devices
|
||||
|
@ -5046,6 +5110,7 @@ CONFIG_DVB_TDA826X=m
|
|||
CONFIG_DVB_TUA6100=m
|
||||
CONFIG_DVB_CX24116=m
|
||||
CONFIG_DVB_CX24117=m
|
||||
CONFIG_DVB_CX24120=m
|
||||
CONFIG_DVB_SI21XX=m
|
||||
CONFIG_DVB_TS2020=m
|
||||
CONFIG_DVB_DS3000=m
|
||||
|
@ -5188,6 +5253,9 @@ CONFIG_DRM_R128=m
|
|||
CONFIG_DRM_RADEON=m
|
||||
# CONFIG_DRM_RADEON_USERPTR is not set
|
||||
# CONFIG_DRM_RADEON_UMS is not set
|
||||
CONFIG_DRM_AMDGPU=m
|
||||
CONFIG_DRM_AMDGPU_CIK=y
|
||||
CONFIG_DRM_AMDGPU_USERPTR=y
|
||||
CONFIG_DRM_NOUVEAU=m
|
||||
CONFIG_NOUVEAU_DEBUG=5
|
||||
CONFIG_NOUVEAU_DEBUG_DEFAULT=3
|
||||
|
@ -5196,7 +5264,7 @@ CONFIG_DRM_I810=m
|
|||
CONFIG_DRM_I915=m
|
||||
CONFIG_DRM_I915_KMS=y
|
||||
CONFIG_DRM_I915_FBDEV=y
|
||||
CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT=y
|
||||
# CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set
|
||||
CONFIG_DRM_MGA=m
|
||||
CONFIG_DRM_SIS=m
|
||||
CONFIG_DRM_VIA=m
|
||||
|
@ -5214,6 +5282,7 @@ CONFIG_DRM_AST=m
|
|||
CONFIG_DRM_CIRRUS_QEMU=m
|
||||
CONFIG_DRM_QXL=m
|
||||
# CONFIG_DRM_BOCHS is not set
|
||||
CONFIG_DRM_VIRTIO_GPU=m
|
||||
CONFIG_DRM_PANEL=y
|
||||
|
||||
#
|
||||
|
@ -5422,11 +5491,11 @@ CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
|
|||
CONFIG_SND_DYNAMIC_MINORS=y
|
||||
CONFIG_SND_MAX_CARDS=32
|
||||
CONFIG_SND_SUPPORT_OLD_API=y
|
||||
CONFIG_SND_PROC_FS=y
|
||||
CONFIG_SND_VERBOSE_PROCFS=y
|
||||
# CONFIG_SND_VERBOSE_PRINTK is not set
|
||||
# CONFIG_SND_DEBUG is not set
|
||||
CONFIG_SND_VMASTER=y
|
||||
CONFIG_SND_KCTL_JACK=y
|
||||
CONFIG_SND_DMA_SGBUF=y
|
||||
CONFIG_SND_RAWMIDI_SEQ=m
|
||||
CONFIG_SND_OPL3_LIB_SEQ=m
|
||||
|
@ -5569,20 +5638,16 @@ CONFIG_SND_YMFPCI=m
|
|||
#
|
||||
CONFIG_SND_HDA=m
|
||||
CONFIG_SND_HDA_INTEL=m
|
||||
CONFIG_SND_HDA_DSP_LOADER=y
|
||||
CONFIG_SND_HDA_PREALLOC_SIZE=64
|
||||
CONFIG_SND_HDA_HWDEP=y
|
||||
CONFIG_SND_HDA_RECONFIG=y
|
||||
CONFIG_SND_HDA_INPUT_BEEP=y
|
||||
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
|
||||
CONFIG_SND_HDA_INPUT_JACK=y
|
||||
CONFIG_SND_HDA_PATCH_LOADER=y
|
||||
CONFIG_SND_HDA_CODEC_REALTEK=m
|
||||
CONFIG_SND_HDA_CODEC_ANALOG=m
|
||||
CONFIG_SND_HDA_CODEC_SIGMATEL=m
|
||||
CONFIG_SND_HDA_CODEC_VIA=m
|
||||
CONFIG_SND_HDA_CODEC_HDMI=m
|
||||
CONFIG_SND_HDA_I915=y
|
||||
CONFIG_SND_HDA_CODEC_CIRRUS=m
|
||||
CONFIG_SND_HDA_CODEC_CONEXANT=m
|
||||
CONFIG_SND_HDA_CODEC_CA0110=m
|
||||
|
@ -5593,6 +5658,9 @@ CONFIG_SND_HDA_CODEC_SI3054=m
|
|||
CONFIG_SND_HDA_GENERIC=m
|
||||
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
|
||||
CONFIG_SND_HDA_CORE=m
|
||||
CONFIG_SND_HDA_DSP_LOADER=y
|
||||
CONFIG_SND_HDA_I915=y
|
||||
CONFIG_SND_HDA_PREALLOC_SIZE=64
|
||||
CONFIG_SND_SPI=y
|
||||
CONFIG_SND_USB=y
|
||||
CONFIG_SND_USB_AUDIO=m
|
||||
|
@ -5621,6 +5689,7 @@ CONFIG_SND_PCMCIA=y
|
|||
CONFIG_SND_VXPOCKET=m
|
||||
CONFIG_SND_PDAUDIOCF=m
|
||||
CONFIG_SND_SOC=m
|
||||
CONFIG_SND_SOC_AC97_BUS=y
|
||||
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
|
||||
CONFIG_SND_ATMEL_SOC=m
|
||||
CONFIG_SND_DESIGNWARE_I2S=m
|
||||
|
@ -5654,6 +5723,7 @@ CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
|
|||
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
|
||||
CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
|
||||
CONFIG_SND_SOC_QCOM=m
|
||||
CONFIG_SND_SOC_XTFPGA_I2S=m
|
||||
CONFIG_SND_SOC_I2C_AND_SPI=m
|
||||
|
@ -5661,6 +5731,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=m
|
|||
#
|
||||
# CODEC drivers
|
||||
#
|
||||
CONFIG_SND_SOC_AC97_CODEC=m
|
||||
CONFIG_SND_SOC_ADAU1701=m
|
||||
CONFIG_SND_SOC_AK4104=m
|
||||
CONFIG_SND_SOC_AK4554=m
|
||||
|
@ -5689,6 +5760,7 @@ CONFIG_SND_SOC_PCM512x=m
|
|||
CONFIG_SND_SOC_PCM512x_I2C=m
|
||||
CONFIG_SND_SOC_PCM512x_SPI=m
|
||||
CONFIG_SND_SOC_RL6231=m
|
||||
CONFIG_SND_SOC_RL6347A=m
|
||||
CONFIG_SND_SOC_RT286=m
|
||||
CONFIG_SND_SOC_RT5631=m
|
||||
CONFIG_SND_SOC_RT5640=m
|
||||
|
@ -5710,6 +5782,7 @@ CONFIG_SND_SOC_STA32X=m
|
|||
CONFIG_SND_SOC_STA350=m
|
||||
CONFIG_SND_SOC_TAS2552=m
|
||||
CONFIG_SND_SOC_TAS5086=m
|
||||
CONFIG_SND_SOC_TAS571X=m
|
||||
CONFIG_SND_SOC_TFA9879=m
|
||||
CONFIG_SND_SOC_TLV320AIC23=m
|
||||
CONFIG_SND_SOC_TLV320AIC23_I2C=m
|
||||
|
@ -5870,6 +5943,7 @@ CONFIG_USB_DYNAMIC_MINORS=y
|
|||
# CONFIG_USB_OTG_WHITELIST is not set
|
||||
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
|
||||
# CONFIG_USB_OTG_FSM is not set
|
||||
CONFIG_USB_ULPI_BUS=m
|
||||
CONFIG_USB_MON=m
|
||||
CONFIG_USB_WUSB=m
|
||||
CONFIG_USB_WUSB_CBAF=m
|
||||
|
@ -5960,6 +6034,7 @@ CONFIG_USB_MUSB_DUAL_ROLE=y
|
|||
#
|
||||
CONFIG_MUSB_PIO_ONLY=y
|
||||
CONFIG_USB_DWC3=m
|
||||
CONFIG_USB_DWC3_ULPI=y
|
||||
# CONFIG_USB_DWC3_HOST is not set
|
||||
# CONFIG_USB_DWC3_GADGET is not set
|
||||
CONFIG_USB_DWC3_DUAL_ROLE=y
|
||||
|
@ -5979,7 +6054,6 @@ CONFIG_USB_DWC2_HOST=y
|
|||
#
|
||||
# Gadget/Dual-role mode requires USB Gadget support to be enabled
|
||||
#
|
||||
CONFIG_USB_DWC2_PLATFORM=y
|
||||
CONFIG_USB_DWC2_PCI=y
|
||||
# CONFIG_USB_DWC2_DEBUG is not set
|
||||
# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
|
||||
|
@ -6243,6 +6317,7 @@ CONFIG_MMC_USDHI6ROL0=m
|
|||
CONFIG_MMC_REALTEK_PCI=m
|
||||
CONFIG_MMC_REALTEK_USB=m
|
||||
CONFIG_MMC_TOSHIBA_PCI=m
|
||||
CONFIG_MMC_MTK=m
|
||||
CONFIG_MEMSTICK=m
|
||||
# CONFIG_MEMSTICK_DEBUG is not set
|
||||
|
||||
|
@ -6278,11 +6353,10 @@ CONFIG_LEDS_PCA9532=m
|
|||
CONFIG_LEDS_PCA9532_GPIO=y
|
||||
CONFIG_LEDS_GPIO=m
|
||||
CONFIG_LEDS_LP3944=m
|
||||
CONFIG_LEDS_LP55XX_COMMON=m
|
||||
CONFIG_LEDS_LP5521=m
|
||||
CONFIG_LEDS_LP5523=m
|
||||
CONFIG_LEDS_LP5562=m
|
||||
CONFIG_LEDS_LP8501=m
|
||||
# CONFIG_LEDS_LP5521 is not set
|
||||
# CONFIG_LEDS_LP5523 is not set
|
||||
# CONFIG_LEDS_LP5562 is not set
|
||||
# CONFIG_LEDS_LP8501 is not set
|
||||
CONFIG_LEDS_LP8788=m
|
||||
CONFIG_LEDS_LP8860=m
|
||||
CONFIG_LEDS_CLEVO_MAIL=m
|
||||
|
@ -6302,6 +6376,7 @@ CONFIG_LEDS_ADP5520=m
|
|||
CONFIG_LEDS_DELL_NETBOOKS=m
|
||||
CONFIG_LEDS_MC13783=m
|
||||
CONFIG_LEDS_TCA6507=m
|
||||
CONFIG_LEDS_TLC591XX=m
|
||||
CONFIG_LEDS_MAX8997=m
|
||||
CONFIG_LEDS_LM355x=m
|
||||
CONFIG_LEDS_OT200=m
|
||||
|
@ -6357,6 +6432,8 @@ CONFIG_INFINIBAND_SRP=m
|
|||
CONFIG_INFINIBAND_SRPT=m
|
||||
CONFIG_INFINIBAND_ISER=m
|
||||
CONFIG_INFINIBAND_ISERT=m
|
||||
CONFIG_EDAC_ATOMIC_SCRUB=y
|
||||
CONFIG_EDAC_SUPPORT=y
|
||||
CONFIG_EDAC=y
|
||||
# CONFIG_EDAC_LEGACY_SYSFS is not set
|
||||
# CONFIG_EDAC_DEBUG is not set
|
||||
|
@ -6384,8 +6461,9 @@ CONFIG_EDAC_I7300=m
|
|||
CONFIG_RTC_LIB=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_HCTOSYS=y
|
||||
CONFIG_RTC_SYSTOHC=y
|
||||
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
|
||||
CONFIG_RTC_SYSTOHC=y
|
||||
CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
|
||||
# CONFIG_RTC_DEBUG is not set
|
||||
|
||||
#
|
||||
|
@ -6498,7 +6576,7 @@ CONFIG_RTC_DRV_AB3100=m
|
|||
#
|
||||
CONFIG_RTC_DRV_PCAP=m
|
||||
CONFIG_RTC_DRV_MC13XXX=m
|
||||
CONFIG_RTC_DRV_XGENE=m
|
||||
CONFIG_RTC_DRV_MT6397=m
|
||||
|
||||
#
|
||||
# HID Sensor RTC drivers
|
||||
|
@ -6543,6 +6621,7 @@ CONFIG_UIO_AEC=m
|
|||
CONFIG_UIO_SERCOS3=m
|
||||
CONFIG_UIO_PCI_GENERIC=m
|
||||
CONFIG_UIO_NETX=m
|
||||
CONFIG_UIO_PRUSS=m
|
||||
CONFIG_UIO_MF624=m
|
||||
CONFIG_VFIO_IOMMU_TYPE1=m
|
||||
CONFIG_VFIO_VIRQFD=m
|
||||
|
@ -6728,6 +6807,7 @@ CONFIG_COMEDI_USBDUXSIGMA=m
|
|||
CONFIG_COMEDI_VMK80XX=m
|
||||
CONFIG_COMEDI_8254=m
|
||||
CONFIG_COMEDI_8255=m
|
||||
CONFIG_COMEDI_8255_SA=m
|
||||
CONFIG_COMEDI_KCOMEDILIB=m
|
||||
CONFIG_COMEDI_AMPLC_DIO200=m
|
||||
CONFIG_COMEDI_AMPLC_PC236=m
|
||||
|
@ -6883,9 +6963,6 @@ CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
|
|||
CONFIG_STAGING_MEDIA=y
|
||||
CONFIG_I2C_BCM2048=m
|
||||
CONFIG_DVB_CXD2099=m
|
||||
CONFIG_VIDEO_DT3155=m
|
||||
# CONFIG_DT3155_CCIR is not set
|
||||
CONFIG_DT3155_STREAMING=y
|
||||
CONFIG_DVB_MN88472=m
|
||||
CONFIG_DVB_MN88473=m
|
||||
CONFIG_LIRC_STAGING=y
|
||||
|
@ -6932,6 +7009,7 @@ CONFIG_FB_TFT_BD663474=m
|
|||
CONFIG_FB_TFT_HX8340BN=m
|
||||
CONFIG_FB_TFT_HX8347D=m
|
||||
CONFIG_FB_TFT_HX8353D=m
|
||||
CONFIG_FB_TFT_HX8357D=m
|
||||
CONFIG_FB_TFT_ILI9163=m
|
||||
CONFIG_FB_TFT_ILI9320=m
|
||||
CONFIG_FB_TFT_ILI9325=m
|
||||
|
@ -6955,16 +7033,6 @@ CONFIG_FB_TFT_UPD161704=m
|
|||
CONFIG_FB_TFT_WATTEROTT=m
|
||||
CONFIG_FB_FLEX=m
|
||||
CONFIG_FB_TFT_FBTFT_DEVICE=m
|
||||
CONFIG_I2O=m
|
||||
CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
|
||||
CONFIG_I2O_EXT_ADAPTEC=y
|
||||
CONFIG_I2O_EXT_ADAPTEC_DMA64=y
|
||||
CONFIG_I2O_CONFIG=m
|
||||
# CONFIG_I2O_CONFIG_OLD_IOCTL is not set
|
||||
CONFIG_I2O_BUS=m
|
||||
CONFIG_I2O_BLOCK=m
|
||||
CONFIG_I2O_SCSI=m
|
||||
CONFIG_I2O_PROC=m
|
||||
CONFIG_X86_PLATFORM_DEVICES=y
|
||||
CONFIG_ACER_WMI=m
|
||||
CONFIG_ACERHDF=m
|
||||
|
@ -6974,6 +7042,7 @@ CONFIG_DELL_LAPTOP=m
|
|||
CONFIG_DELL_WMI=m
|
||||
CONFIG_DELL_WMI_AIO=m
|
||||
CONFIG_DELL_SMO8800=m
|
||||
CONFIG_DELL_RBTN=m
|
||||
CONFIG_FUJITSU_LAPTOP=m
|
||||
# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
|
||||
CONFIG_FUJITSU_TABLET=m
|
||||
|
@ -7023,11 +7092,13 @@ CONFIG_APPLE_GMUX=m
|
|||
CONFIG_INTEL_RST=m
|
||||
CONFIG_INTEL_SMARTCONNECT=m
|
||||
CONFIG_PVPANIC=m
|
||||
CONFIG_INTEL_PMC_IPC=m
|
||||
CONFIG_CHROME_PLATFORMS=y
|
||||
CONFIG_CHROMEOS_LAPTOP=m
|
||||
CONFIG_CHROMEOS_PSTORE=m
|
||||
CONFIG_CROS_EC_CHARDEV=m
|
||||
CONFIG_CROS_EC_LPC=m
|
||||
CONFIG_CROS_EC_PROTO=y
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
CONFIG_HAVE_CLK_PREPARE=y
|
||||
CONFIG_COMMON_CLK=y
|
||||
|
@ -7089,6 +7160,7 @@ CONFIG_STE_MODEM_RPROC=m
|
|||
#
|
||||
# SOC (System On Chip) specific Drivers
|
||||
#
|
||||
# CONFIG_SUNXI_SRAM is not set
|
||||
CONFIG_SOC_TI=y
|
||||
CONFIG_PM_DEVFREQ=y
|
||||
|
||||
|
@ -7111,6 +7183,7 @@ CONFIG_EXTCON=y
|
|||
#
|
||||
CONFIG_EXTCON_ADC_JACK=m
|
||||
CONFIG_EXTCON_ARIZONA=m
|
||||
CONFIG_EXTCON_AXP288=m
|
||||
CONFIG_EXTCON_GPIO=m
|
||||
CONFIG_EXTCON_MAX14577=m
|
||||
CONFIG_EXTCON_MAX77693=m
|
||||
|
@ -7144,6 +7217,8 @@ CONFIG_KXCJK1013=m
|
|||
CONFIG_MMA9551_CORE=m
|
||||
CONFIG_MMA9551=m
|
||||
CONFIG_MMA9553=m
|
||||
CONFIG_STK8312=m
|
||||
CONFIG_STK8BA50=m
|
||||
|
||||
#
|
||||
# Analog to digital converters
|
||||
|
@ -7213,6 +7288,7 @@ CONFIG_AD5755=m
|
|||
CONFIG_AD5764=m
|
||||
CONFIG_AD5791=m
|
||||
CONFIG_AD7303=m
|
||||
CONFIG_M62332=m
|
||||
CONFIG_MAX517=m
|
||||
CONFIG_MCP4725=m
|
||||
CONFIG_MCP4922=m
|
||||
|
@ -7266,9 +7342,11 @@ CONFIG_IIO_ADIS_LIB_BUFFER=y
|
|||
#
|
||||
# Light sensors
|
||||
#
|
||||
CONFIG_ACPI_ALS=m
|
||||
CONFIG_ADJD_S311=m
|
||||
CONFIG_AL3320A=m
|
||||
CONFIG_APDS9300=m
|
||||
CONFIG_BH1750=m
|
||||
CONFIG_CM32181=m
|
||||
CONFIG_CM3232=m
|
||||
CONFIG_CM3323=m
|
||||
|
@ -7280,6 +7358,7 @@ CONFIG_HID_SENSOR_PROX=m
|
|||
CONFIG_JSA1212=m
|
||||
CONFIG_SENSORS_LM3533=m
|
||||
CONFIG_LTR501=m
|
||||
CONFIG_STK3310=m
|
||||
CONFIG_TCS3414=m
|
||||
CONFIG_TCS3472=m
|
||||
CONFIG_SENSORS_TSL2563=m
|
||||
|
@ -7293,9 +7372,11 @@ CONFIG_AK8975=m
|
|||
CONFIG_AK09911=m
|
||||
CONFIG_MAG3110=m
|
||||
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
|
||||
CONFIG_MMC35240=m
|
||||
CONFIG_IIO_ST_MAGN_3AXIS=m
|
||||
CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
|
||||
CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
|
||||
CONFIG_BMC150_MAGN=m
|
||||
|
||||
#
|
||||
# Inclinometer sensors
|
||||
|
@ -7340,6 +7421,9 @@ CONFIG_SX9500=m
|
|||
CONFIG_MLX90614=m
|
||||
CONFIG_TMP006=m
|
||||
CONFIG_NTB=m
|
||||
CONFIG_NTB_PINGPONG=m
|
||||
CONFIG_NTB_TOOL=m
|
||||
CONFIG_NTB_TRANSPORT=m
|
||||
CONFIG_VME_BUS=y
|
||||
|
||||
#
|
||||
|
@ -7380,11 +7464,14 @@ CONFIG_FMC_CHARDEV=m
|
|||
# PHY Subsystem
|
||||
#
|
||||
CONFIG_GENERIC_PHY=y
|
||||
CONFIG_PHY_PXA_28NM_HSIC=m
|
||||
CONFIG_PHY_PXA_28NM_USB2=m
|
||||
CONFIG_BCM_KONA_USB2_PHY=m
|
||||
CONFIG_PHY_SAMSUNG_USB2=m
|
||||
# CONFIG_PHY_EXYNOS4210_USB2 is not set
|
||||
# CONFIG_PHY_EXYNOS4X12_USB2 is not set
|
||||
# CONFIG_PHY_EXYNOS5250_USB2 is not set
|
||||
CONFIG_PHY_TUSB1210=m
|
||||
CONFIG_POWERCAP=y
|
||||
CONFIG_INTEL_RAPL=m
|
||||
CONFIG_MCB=m
|
||||
|
@ -7396,6 +7483,11 @@ CONFIG_THUNDERBOLT=m
|
|||
# Android
|
||||
#
|
||||
# CONFIG_ANDROID is not set
|
||||
CONFIG_LIBNVDIMM=y
|
||||
CONFIG_BLK_DEV_PMEM=m
|
||||
CONFIG_ND_BLK=m
|
||||
CONFIG_ND_BTT=m
|
||||
CONFIG_BTT=y
|
||||
|
||||
#
|
||||
# Firmware Drivers
|
||||
|
@ -7416,6 +7508,7 @@ CONFIG_ISCSI_IBFT=m
|
|||
# EFI (Extensible Firmware Interface) Support
|
||||
#
|
||||
CONFIG_EFI_VARS=y
|
||||
CONFIG_EFI_ESRT=y
|
||||
CONFIG_EFI_VARS_PSTORE=m
|
||||
# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
|
||||
CONFIG_EFI_RUNTIME_MAP=y
|
||||
|
@ -7476,6 +7569,7 @@ CONFIG_F2FS_FS_XATTR=y
|
|||
CONFIG_F2FS_FS_POSIX_ACL=y
|
||||
CONFIG_F2FS_FS_SECURITY=y
|
||||
# CONFIG_F2FS_CHECK_FS is not set
|
||||
CONFIG_F2FS_FS_ENCRYPTION=y
|
||||
# CONFIG_F2FS_IO_TRACE is not set
|
||||
CONFIG_FS_DAX=y
|
||||
CONFIG_FS_POSIX_ACL=y
|
||||
|
@ -7540,6 +7634,7 @@ CONFIG_PROC_KCORE=y
|
|||
CONFIG_PROC_VMCORE=y
|
||||
CONFIG_PROC_SYSCTL=y
|
||||
CONFIG_PROC_PAGE_MONITOR=y
|
||||
CONFIG_PROC_CHILDREN=y
|
||||
CONFIG_KERNFS=y
|
||||
CONFIG_SYSFS=y
|
||||
CONFIG_TMPFS=y
|
||||
|
@ -7662,8 +7757,7 @@ CONFIG_SUNRPC_BACKCHANNEL=y
|
|||
CONFIG_SUNRPC_SWAP=y
|
||||
CONFIG_RPCSEC_GSS_KRB5=m
|
||||
CONFIG_SUNRPC_DEBUG=y
|
||||
CONFIG_SUNRPC_XPRT_RDMA_CLIENT=m
|
||||
CONFIG_SUNRPC_XPRT_RDMA_SERVER=m
|
||||
CONFIG_SUNRPC_XPRT_RDMA=m
|
||||
CONFIG_CEPH_FS=m
|
||||
CONFIG_CEPH_FSCACHE=y
|
||||
CONFIG_CEPH_FS_POSIX_ACL=y
|
||||
|
@ -7679,6 +7773,7 @@ CONFIG_CIFS_DEBUG=y
|
|||
# CONFIG_CIFS_DEBUG2 is not set
|
||||
CONFIG_CIFS_DFS_UPCALL=y
|
||||
CONFIG_CIFS_SMB2=y
|
||||
CONFIG_CIFS_SMB311=y
|
||||
CONFIG_CIFS_FSCACHE=y
|
||||
CONFIG_NCP_FS=m
|
||||
CONFIG_NCPFS_PACKET_SIGNING=y
|
||||
|
@ -7824,6 +7919,7 @@ CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
|
|||
CONFIG_PANIC_ON_OOPS_VALUE=0
|
||||
CONFIG_PANIC_TIMEOUT=0
|
||||
CONFIG_SCHED_DEBUG=y
|
||||
CONFIG_SCHED_INFO=y
|
||||
CONFIG_SCHEDSTATS=y
|
||||
CONFIG_SCHED_STACK_END_CHECK=y
|
||||
# CONFIG_DEBUG_TIMEKEEPING is not set
|
||||
|
@ -7861,6 +7957,7 @@ CONFIG_TORTURE_TEST=m
|
|||
CONFIG_RCU_CPU_STALL_TIMEOUT=60
|
||||
# CONFIG_RCU_CPU_STALL_INFO is not set
|
||||
# CONFIG_RCU_TRACE is not set
|
||||
# CONFIG_RCU_EQS_DEBUG is not set
|
||||
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
|
||||
CONFIG_NOTIFIER_ERROR_INJECTION=m
|
||||
CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
|
||||
|
@ -7978,8 +8075,11 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=1
|
|||
# CONFIG_DEBUG_BOOT_PARAMS is not set
|
||||
# CONFIG_CPA_DEBUG is not set
|
||||
CONFIG_OPTIMIZE_INLINING=y
|
||||
# CONFIG_DEBUG_ENTRY is not set
|
||||
# CONFIG_DEBUG_NMI_SELFTEST is not set
|
||||
# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set
|
||||
CONFIG_X86_DEBUG_FPU=y
|
||||
CONFIG_PUNIT_ATOM_DEBUG=m
|
||||
|
||||
#
|
||||
# Security options
|
||||
|
@ -8069,8 +8169,12 @@ CONFIG_CRYPTO_HASH=y
|
|||
CONFIG_CRYPTO_HASH2=y
|
||||
CONFIG_CRYPTO_RNG=y
|
||||
CONFIG_CRYPTO_RNG2=y
|
||||
CONFIG_CRYPTO_RNG_DEFAULT=m
|
||||
CONFIG_CRYPTO_PCOMP=m
|
||||
CONFIG_CRYPTO_PCOMP2=y
|
||||
CONFIG_CRYPTO_AKCIPHER2=y
|
||||
CONFIG_CRYPTO_AKCIPHER=m
|
||||
CONFIG_CRYPTO_RSA=m
|
||||
CONFIG_CRYPTO_MANAGER=y
|
||||
CONFIG_CRYPTO_MANAGER2=y
|
||||
CONFIG_CRYPTO_USER=m
|
||||
|
@ -8091,7 +8195,9 @@ CONFIG_CRYPTO_GLUE_HELPER_X86=m
|
|||
#
|
||||
CONFIG_CRYPTO_CCM=m
|
||||
CONFIG_CRYPTO_GCM=m
|
||||
CONFIG_CRYPTO_CHACHA20POLY1305=m
|
||||
CONFIG_CRYPTO_SEQIV=m
|
||||
CONFIG_CRYPTO_ECHAINIV=m
|
||||
|
||||
#
|
||||
# Block modes
|
||||
|
@ -8121,6 +8227,7 @@ CONFIG_CRYPTO_CRC32=m
|
|||
CONFIG_CRYPTO_CRC32_PCLMUL=m
|
||||
CONFIG_CRYPTO_CRCT10DIF=y
|
||||
CONFIG_CRYPTO_GHASH=m
|
||||
CONFIG_CRYPTO_POLY1305=m
|
||||
CONFIG_CRYPTO_MD4=m
|
||||
CONFIG_CRYPTO_MD5=y
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
|
@ -8153,6 +8260,7 @@ CONFIG_CRYPTO_FCRYPT=m
|
|||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SALSA20=m
|
||||
CONFIG_CRYPTO_SALSA20_586=m
|
||||
CONFIG_CRYPTO_CHACHA20=m
|
||||
CONFIG_CRYPTO_SEED=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_SERPENT_SSE2_586=m
|
||||
|
@ -8167,6 +8275,7 @@ CONFIG_CRYPTO_TWOFISH_586=m
|
|||
CONFIG_CRYPTO_DEFLATE=m
|
||||
CONFIG_CRYPTO_ZLIB=m
|
||||
CONFIG_CRYPTO_LZO=y
|
||||
CONFIG_CRYPTO_842=m
|
||||
CONFIG_CRYPTO_LZ4=m
|
||||
CONFIG_CRYPTO_LZ4HC=m
|
||||
|
||||
|
@ -8179,10 +8288,12 @@ CONFIG_CRYPTO_DRBG_HMAC=y
|
|||
CONFIG_CRYPTO_DRBG_HASH=y
|
||||
CONFIG_CRYPTO_DRBG_CTR=y
|
||||
CONFIG_CRYPTO_DRBG=m
|
||||
CONFIG_CRYPTO_JITTERENTROPY=m
|
||||
CONFIG_CRYPTO_USER_API=m
|
||||
CONFIG_CRYPTO_USER_API_HASH=m
|
||||
CONFIG_CRYPTO_USER_API_SKCIPHER=m
|
||||
CONFIG_CRYPTO_USER_API_RNG=m
|
||||
CONFIG_CRYPTO_USER_API_AEAD=m
|
||||
CONFIG_CRYPTO_HASH_INFO=y
|
||||
CONFIG_CRYPTO_HW=y
|
||||
CONFIG_CRYPTO_DEV_PADLOCK=y
|
||||
|
@ -8253,6 +8364,8 @@ CONFIG_CRC8=m
|
|||
CONFIG_AUDIT_GENERIC=y
|
||||
# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
|
||||
# CONFIG_RANDOM32_SELFTEST is not set
|
||||
CONFIG_842_COMPRESS=m
|
||||
CONFIG_842_DECOMPRESS=m
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
CONFIG_LZO_COMPRESS=y
|
||||
|
@ -8312,3 +8425,4 @@ CONFIG_FONT_SUPPORT=y
|
|||
CONFIG_FONT_8x8=y
|
||||
CONFIG_FONT_8x16=y
|
||||
CONFIG_ARCH_HAS_SG_CHAIN=y
|
||||
CONFIG_ARCH_HAS_PMEM_API=y
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -210,7 +210,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM."
|
|||
#f)))
|
||||
|
||||
(define-public linux-libre
|
||||
(let* ((version "4.1.6")
|
||||
(let* ((version "4.2")
|
||||
(build-phase
|
||||
'(lambda* (#:key system inputs #:allow-other-keys #:rest args)
|
||||
;; Apply the neat patch.
|
||||
|
@ -283,7 +283,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM."
|
|||
(uri (linux-libre-urls version))
|
||||
(sha256
|
||||
(base32
|
||||
"07gmpy32v90bx78bm1khc1hw7x0akdh2sxpkxkavwj4fjc6f732v"))))
|
||||
"0jfgbr9qc92bk7hyfdvw030xyic2bg834l8cxp25rw9qbbdck3rs"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("perl" ,perl)
|
||||
("bc" ,bc)
|
||||
|
|
|
@ -405,6 +405,40 @@ attachments, create new maildirs, and so on.")
|
|||
ing, and tagging large collections of email messages.")
|
||||
(license gpl3+)))
|
||||
|
||||
(define-public python2-notmuch
|
||||
(package
|
||||
(name "python2-notmuch")
|
||||
(version "0.15.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://pypi.python.org/packages/source/n/notmuch/notmuch-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"18g8701ibr153ngsz258kgcd42wqnbf9ifpqig1bijy6b0zx9xn5"))))
|
||||
(build-system python-build-system)
|
||||
(inputs `(("notmuch" ,notmuch)))
|
||||
(arguments
|
||||
`(#:python ,python-2
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-before
|
||||
'build 'set-libnotmuch-file-name
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((notmuch (assoc-ref inputs "notmuch")))
|
||||
(substitute* "notmuch/globals.py"
|
||||
(("libnotmuch\\.so\\.[0-9]")
|
||||
(string-append notmuch "/lib/libnotmuch.so.4")))
|
||||
#t))))
|
||||
#:tests? #f)) ;no "test" target
|
||||
(home-page "http://notmuchmail.org/")
|
||||
(synopsis "Python bindings of the Notmuch mail indexing library")
|
||||
(description
|
||||
"This package provides Python bindings to use the Notmuch mail indexing
|
||||
and search library.")
|
||||
(license gpl3+)))
|
||||
|
||||
(define-public getmail
|
||||
(package
|
||||
(name "getmail")
|
||||
|
|
|
@ -269,7 +269,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
|
|||
(synopsis "Statically-linked bootstrap binaries")
|
||||
(description
|
||||
"Binaries used to bootstrap the distribution.")
|
||||
(license #f)
|
||||
(license gpl3+)
|
||||
(home-page #f)))
|
||||
|
||||
(define %binutils-static
|
||||
|
|
|
@ -1926,3 +1926,39 @@ in finite element programs.")
|
|||
"-DMPI_Fortran_COMPILER=mpifort"
|
||||
,@,cf))))
|
||||
(synopsis "Finite element library (with MPI support)")))
|
||||
|
||||
(define-public flann
|
||||
(package
|
||||
(name "flann")
|
||||
(version "1.8.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append
|
||||
"http://www.cs.ubc.ca/research/flann/uploads/FLANN/flann-"
|
||||
version "-src.zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"022w8hph7bli5zbpnk3z1qh1c2sl5hm8fw2ccim651ynn0hr7fyz"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("unzip" ,unzip)))
|
||||
(inputs
|
||||
`(("hdf5" ,hdf5)
|
||||
("octave" ,octave)
|
||||
("python" ,python-2) ; print syntax
|
||||
;; ("python2-numpy" ,python2-numpy) ; only required for the tests
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
`(#:tests? #f)) ; The test data are downloaded from the Internet.
|
||||
(home-page "http://www.cs.ubc.ca/research/flann/")
|
||||
(synopsis "Library for approximate nearest neighbors computation")
|
||||
(description "FLANN is a library for performing fast approximate
|
||||
nearest neighbor searches in high dimensional spaces. It implements a
|
||||
collection of algorithms and a system for automatically choosing the best
|
||||
algorithm and optimum parameters depending on the dataset.
|
||||
|
||||
FLANN is written in C++ and contains bindings for C, Octave and Python.")
|
||||
(license (license:non-copyleft "file://COPYING"
|
||||
"See COPYING in the distribution."))))
|
||||
|
|
|
@ -24,8 +24,10 @@
|
|||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system waf)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages audio)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages base) ;libbdf
|
||||
|
@ -54,6 +56,7 @@
|
|||
#:use-module (gnu packages man)
|
||||
#:use-module (gnu packages mp3)
|
||||
#:use-module (gnu packages netpbm)
|
||||
#:use-module (gnu packages pdf)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages pulseaudio) ;libsndfile
|
||||
|
@ -66,6 +69,7 @@
|
|||
#:use-module (gnu packages texlive)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages xiph)
|
||||
#:use-module (gnu packages zip)
|
||||
#:use-module ((srfi srfi-1) #:select (last)))
|
||||
|
@ -647,3 +651,65 @@ equipment. Pd is suitable for learning basic multimedia processing and visual
|
|||
programming methods as well as for realizing complex systems for large-scale
|
||||
projects.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public frescobaldi
|
||||
(package
|
||||
(name "frescobaldi")
|
||||
(version "2.18.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/wbsoft/frescobaldi/releases/download/v"
|
||||
version "/frescobaldi-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1hflc6gck6dn17czc2ldai5j0ynfg3df8lqcggdry06qxsdbnns7"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("lilypond" ,lilypond)
|
||||
("python-pyqt-4" ,python-pyqt-4)
|
||||
("python-ly" ,python-ly)
|
||||
("poppler" ,poppler)
|
||||
("python-poppler-qt4" ,python-poppler-qt4)
|
||||
("python-sip" ,python-sip)))
|
||||
(home-page "http://www.frescobaldi.org/")
|
||||
(synopsis "LilyPond sheet music text editor")
|
||||
(description
|
||||
"Frescobaldi is a LilyPond sheet music text editor with syntax
|
||||
highlighting and automatic completion. Among other things, it can render
|
||||
scores next to the source, can capture input from MIDI or read MusicXML and
|
||||
ABC files, has a MIDI player for proof-listening, and includes a documentation
|
||||
browser.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public zynaddsubfx
|
||||
(package
|
||||
(name "zynaddsubfx")
|
||||
(version "2.5.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://sourceforge/zynaddsubfx/zynaddsubfx/"
|
||||
version "/zynaddsubfx-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"01c4v5lbzard6y00cjq3b6a50cafqwfwibzng9gdsajczhnbkqz2"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
`(("liblo" ,liblo)
|
||||
("ntk" ,ntk)
|
||||
("alsa-lib" ,alsa-lib)
|
||||
("jack" ,jack-1)
|
||||
("fftw" ,fftw)
|
||||
("minixml" ,minixml)
|
||||
("libxpm" ,libxpm)
|
||||
("zlib" ,zlib)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(home-page "http://zynaddsubfx.sf.net/")
|
||||
(synopsis "Software synthesizer")
|
||||
(description
|
||||
"ZynAddSubFX is a feature heavy realtime software synthesizer. It offers
|
||||
three synthesizer engines, multitimbral and polyphonic synths, microtonal
|
||||
capabilities, custom envelopes, effects, etc.")
|
||||
(license license:gpl2)))
|
||||
|
|
|
@ -27,22 +27,23 @@
|
|||
(define-public ncdu
|
||||
(package
|
||||
(name "ncdu")
|
||||
(version "1.10")
|
||||
(version "1.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://dev.yorhel.nl/download/ncdu-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0rqc5wpqcbfqpcwxgh3jxwa0yw2py0hv0acpsf0a9g6v9144m6gm"))))
|
||||
(inputs
|
||||
`(("ncurses" ,ncurses)))
|
||||
"0yxv87hpal05p6nii6rlnai5a8958689l9vz020w4qvlwiragbnh"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("ncurses" ,ncurses)))
|
||||
(synopsis "Ncurses based disk usage analyzer")
|
||||
(description "A disk usage analyzer with an ncurses interface, aimed to be
|
||||
run on a remote server where you don't have an entire graphical setup, but have
|
||||
to do with a simple SSH connection. ncdu aims to be fast, simple and easy to
|
||||
use, and should be able to run in any minimal POSIX-like environment with
|
||||
ncurses installed.")
|
||||
(license (x11-style "http://g.blicky.net/ncdu.git/plain/COPYING?id=v1.10"))
|
||||
(license (x11-style
|
||||
(string-append "http://g.blicky.net/ncdu.git/plain/COPYING?id=v"
|
||||
version)))
|
||||
(home-page "http://dev.yorhel.nl/ncdu")))
|
||||
|
|
|
@ -0,0 +1,216 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages openstack)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix download)
|
||||
#:use-module ((guix licenses)
|
||||
#:select (asl2.0))
|
||||
#:use-module (guix packages))
|
||||
|
||||
(define-public python-mox3
|
||||
(package
|
||||
(name "python-mox3")
|
||||
(version "0.8.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://pypi.python.org/packages/source/m/mox3/mox3-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1dwj9lkifdqvrcympqa47bj55l0n0j9jhzv2gj03h0dpzg6mgfkj"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("python-fixtures" ,python-fixtures)
|
||||
("python-pbr" ,python-pbr)
|
||||
("python-setuptools" ,python-setuptools)
|
||||
("python-six" ,python-six)
|
||||
("python-testtools" ,python-testtools)))
|
||||
(home-page "http://www.openstack.org/")
|
||||
(synopsis "Mock object framework for Python")
|
||||
(description
|
||||
"Mox3 is an unofficial port of the Google mox framework
|
||||
(http://code.google.com/p/pymox/) to Python 3. It was meant to be as compatible
|
||||
with mox as possible, but small enhancements have been made. The library was
|
||||
tested on Python version 3.2, 2.7 and 2.6.")
|
||||
(license asl2.0)))
|
||||
|
||||
(define-public python-os-client-config
|
||||
(package
|
||||
(name "python-os-client-config")
|
||||
(version "1.4.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://pypi.python.org/packages/source/o/os-client-config/os-client-config-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"14png6ml3zbbilh8bihav24f8vig9lyijwynnjcvazdxxrzvwq9j"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ;; Circular dependency with python-oslotest
|
||||
(inputs
|
||||
`(("python-appdirs" ,python-appdirs)
|
||||
("python-fixtures" ,python-fixtures)
|
||||
("python-mimeparse" ,python-mimeparse)
|
||||
("python-pbr" ,python-pbr)
|
||||
("python-pyyaml" ,python-pyyaml)
|
||||
("python-testrepository" ,python-testrepository)
|
||||
("python-setuptools" ,python-setuptools)
|
||||
("python-testscenarios" ,python-testscenarios)
|
||||
("python-testtools" ,python-testtools)))
|
||||
(home-page "http://www.openstack.org/")
|
||||
(synopsis
|
||||
"OpenStack Client Configuration Library")
|
||||
(description
|
||||
"The OpenStack Client Configuration Library is a library for collecting
|
||||
client configuration for using an OpenStack cloud in a consistent and
|
||||
comprehensive manner.")
|
||||
(license asl2.0)))
|
||||
|
||||
(define-public python2-os-client-config
|
||||
(package-with-python2 python-os-client-config))
|
||||
|
||||
(define-public python2-mox3
|
||||
(package-with-python2 python-mox3))
|
||||
|
||||
(define-public python-pbr
|
||||
(package
|
||||
(name "python-pbr")
|
||||
(version "1.6.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://pypi.python.org/packages/source/p/pbr/pbr-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1lg1klrczvzfan89y3bl9ykrknl3nb01vvai37fkww24apzyibjf"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ;; Most tests seem to use the Internet.
|
||||
(propagated-inputs
|
||||
`(("python-testrepository" ,python-testrepository)
|
||||
("git" ,git))) ;; pbr actually uses the "git" binary.
|
||||
(inputs
|
||||
`(("python-fixtures" ,python-fixtures)
|
||||
("python-mimeparse" ,python-mimeparse)
|
||||
("python-mock" ,python-mock)
|
||||
("python-setuptools" ,python-setuptools)
|
||||
("python-six" ,python-six)
|
||||
("python-sphinx" ,python-sphinx)
|
||||
("python-testrepository" ,python-testrepository)
|
||||
("python-testresources" ,python-testresources)
|
||||
("python-testscenarios" ,python-testscenarios)
|
||||
("python-testtools" ,python-testtools)
|
||||
("python-virtualenv" ,python-virtualenv)))
|
||||
(home-page "https://launchpad.net/pbr")
|
||||
(synopsis "Change the default behavior of Python’s setuptools")
|
||||
(description
|
||||
"Python Build Reasonableness (PBR) is a library that injects some useful
|
||||
and sensible default behaviors into your setuptools run.")
|
||||
(license asl2.0)))
|
||||
|
||||
(define-public python2-pbr
|
||||
(package-with-python2 python-pbr))
|
||||
|
||||
;; Packages from the Oslo library
|
||||
(define-public python-oslo.i18n
|
||||
(package
|
||||
(name "python-oslo.i18n")
|
||||
(version "2.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://pypi.python.org/packages/source/o/oslo.i18n/oslo.i18n-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1kg72mqldlri3x0bhxai7j979czrd7mf8s3iflvvv0x9kn9ah4cw"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-babel" ,python-babel)
|
||||
("python-six" ,python-six)))
|
||||
(inputs
|
||||
`(("python-pbr" ,python-pbr)
|
||||
("python-setuptools" ,python-setuptools)
|
||||
;; Tests
|
||||
("python-mock" ,python-mock)
|
||||
("python-mox3" ,python-mox3)
|
||||
("python-oslotest" ,python-oslotest)
|
||||
("python-testscenarios" ,python-testscenarios)))
|
||||
(home-page "http://launchpad.net/oslo")
|
||||
(synopsis "Oslo internationalization (i18n) library")
|
||||
(description
|
||||
"The oslo.i18n library contain utilities for working with
|
||||
internationalization (i18n) features, especially translation for text strings
|
||||
in an application or library.")
|
||||
(license asl2.0)))
|
||||
|
||||
(define-public python2-oslo.i18n
|
||||
(package-with-python2 python-oslo.i18n))
|
||||
|
||||
(define-public python-oslotest
|
||||
(package
|
||||
(name "python-oslotest")
|
||||
(version "1.10.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://pypi.python.org/packages/source/o/oslotest/oslotest-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0l3ny48ddz5xbf0v4r0jv1yhbdzinc2vy0lybhdkmx3xy0b886fs"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-fixtures" ,python-fixtures)
|
||||
("python-mock" ,python-mock)
|
||||
("python-six" ,python-six)))
|
||||
(inputs
|
||||
`(("python-pbr" ,python-pbr)
|
||||
("python-mox3" ,python-mox3)
|
||||
("python-os-client-config" ,python-os-client-config)
|
||||
("python-setuptools" ,python-setuptools)
|
||||
("python-subunit" ,python-subunit)
|
||||
("python-testrepository" ,python-testrepository)
|
||||
("python-testscenarios" ,python-testscenarios)
|
||||
("python-testtools" ,python-testtools)))
|
||||
(home-page "http://launchpad.net/oslo")
|
||||
(synopsis "Oslo test framework")
|
||||
(description
|
||||
"The Oslo Test framework provides common fixtures, support for debugging,
|
||||
and better support for mocking results.")
|
||||
(license asl2.0)))
|
||||
|
||||
(define-public python2-oslotest
|
||||
(package-with-python2 python-oslotest))
|
|
@ -200,18 +200,7 @@ the Nix package manager.")
|
|||
(chmod po #o666))
|
||||
(find-files "." "\\.po$"))
|
||||
|
||||
(zero? (system* "sh" "bootstrap"))))
|
||||
(add-after
|
||||
'unpack 'disable-container-tests
|
||||
;; XXX FIXME: These tests fail within the build container.
|
||||
(lambda _
|
||||
(substitute* "tests/syscalls.scm"
|
||||
(("^\\(test-assert \"(clone|setns|pivot-root)\"" all)
|
||||
(string-append "(test-skip 1)\n" all)))
|
||||
(substitute* "tests/containers.scm"
|
||||
(("^\\(test-assert" all)
|
||||
(string-append "(test-skip 1)\n" all)))
|
||||
#t))))))
|
||||
(zero? (system* "sh" "bootstrap"))))))))
|
||||
(native-inputs
|
||||
`(("autoconf" ,(autoconf-wrapper))
|
||||
("automake" ,automake)
|
||||
|
|
|
@ -1,231 +0,0 @@
|
|||
Partially fix CVE-2014-9112, part 1/5. Backported to 2.11.
|
||||
|
||||
From 746f3ff670dcfcdd28fcc990e79cd6fccc7ae48d Mon Sep 17 00:00:00 2001
|
||||
From: Sergey Poznyakoff <gray@gnu.org.ua>
|
||||
Date: Mon, 01 Dec 2014 13:15:28 +0000
|
||||
Subject: Fix memory overrun on reading improperly created link records.
|
||||
|
||||
See http://lists.gnu.org/archive/html/bug-cpio/2014-11/msg00007.html
|
||||
|
||||
* src/copyin.c (get_link_name): New function.
|
||||
(list_file, copyin_link): use get_link_name
|
||||
|
||||
* tests/symlink-bad-length.at: New file.
|
||||
* tests/symlink-long.at: New file.
|
||||
* tests/Makefile.am: Add new files.
|
||||
* tests/testsuite.at: Likewise.
|
||||
---
|
||||
diff --git a/src/copyin.c b/src/copyin.c
|
||||
index 38d809f..c502c7d 100644
|
||||
--- a/src/copyin.c
|
||||
+++ b/src/copyin.c
|
||||
@@ -124,10 +124,30 @@ tape_skip_padding (int in_file_des, off_t offset)
|
||||
if (pad != 0)
|
||||
tape_toss_input (in_file_des, pad);
|
||||
}
|
||||
-
|
||||
+
|
||||
+static char *
|
||||
+get_link_name (struct cpio_file_stat *file_hdr, int in_file_des)
|
||||
+{
|
||||
+ off_t n = file_hdr->c_filesize + 1;
|
||||
+ char *link_name;
|
||||
+
|
||||
+ if (n == 0 || n > SIZE_MAX)
|
||||
+ {
|
||||
+ error (0, 0, _("%s: stored filename length too big"), file_hdr->c_name);
|
||||
+ link_name = NULL;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ link_name = xmalloc (n);
|
||||
+ tape_buffered_read (link_name, in_file_des, file_hdr->c_filesize);
|
||||
+ link_name[file_hdr->c_filesize] = '\0';
|
||||
+ tape_skip_padding (in_file_des, file_hdr->c_filesize);
|
||||
+ }
|
||||
+ return link_name;
|
||||
+}
|
||||
|
||||
static void
|
||||
-list_file(struct cpio_file_stat* file_hdr, int in_file_des)
|
||||
+list_file (struct cpio_file_stat* file_hdr, int in_file_des)
|
||||
{
|
||||
if (verbose_flag)
|
||||
{
|
||||
@@ -136,21 +156,16 @@ list_file(struct cpio_file_stat* file_hdr, int in_file_des)
|
||||
{
|
||||
if (archive_format != arf_tar && archive_format != arf_ustar)
|
||||
{
|
||||
- char *link_name = NULL; /* Name of hard and symbolic links. */
|
||||
-
|
||||
- link_name = (char *) xmalloc ((unsigned int) file_hdr->c_filesize + 1);
|
||||
- link_name[file_hdr->c_filesize] = '\0';
|
||||
- tape_buffered_read (link_name, in_file_des, file_hdr->c_filesize);
|
||||
- long_format (file_hdr, link_name);
|
||||
- free (link_name);
|
||||
- tape_skip_padding (in_file_des, file_hdr->c_filesize);
|
||||
- return;
|
||||
+ char *link_name = get_link_name (file_hdr, in_file_des);
|
||||
+ if (link_name)
|
||||
+ {
|
||||
+ long_format (file_hdr, link_name);
|
||||
+ free (link_name);
|
||||
+ }
|
||||
}
|
||||
else
|
||||
- {
|
||||
- long_format (file_hdr, file_hdr->c_tar_linkname);
|
||||
- return;
|
||||
- }
|
||||
+ long_format (file_hdr, file_hdr->c_tar_linkname);
|
||||
+ return;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
@@ -650,10 +665,7 @@ copyin_link(struct cpio_file_stat *file_
|
||||
|
||||
if (archive_format != arf_tar && archive_format != arf_ustar)
|
||||
{
|
||||
- link_name = (char *) xmalloc ((unsigned int) file_hdr->c_filesize + 1);
|
||||
- link_name[file_hdr->c_filesize] = '\0';
|
||||
- tape_buffered_read (link_name, in_file_des, file_hdr->c_filesize);
|
||||
- tape_skip_padding (in_file_des, file_hdr->c_filesize);
|
||||
+ link_name = get_link_name (file_hdr, in_file_des);
|
||||
}
|
||||
else
|
||||
{
|
||||
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
||||
index 3f714d1..b4ca92d 100644
|
||||
--- a/tests/Makefile.am
|
||||
+++ b/tests/Makefile.am
|
||||
@@ -52,6 +52,8 @@ TESTSUITE_AT = \
|
||||
setstat04.at\
|
||||
setstat05.at\
|
||||
symlink.at\
|
||||
+ symlink-bad-length.at\
|
||||
+ symlink-long.at\
|
||||
version.at
|
||||
|
||||
TESTSUITE = $(srcdir)/testsuite
|
||||
diff --git a/tests/symlink-bad-length.at b/tests/symlink-bad-length.at
|
||||
new file mode 100644
|
||||
index 0000000..6f804b1
|
||||
--- a/dev/null
|
||||
+++ b/tests/symlink-bad-length.at
|
||||
@@ -0,0 +1,49 @@
|
||||
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
|
||||
+# Copyright (C) 2014 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3, or (at your option)
|
||||
+# any later version.
|
||||
+
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program; if not, write to the Free Software
|
||||
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
+# 02110-1301 USA.
|
||||
+
|
||||
+# Cpio v2.11 did segfault with badly set symlink length.
|
||||
+# References:
|
||||
+# http://lists.gnu.org/archive/html/bug-cpio/2014-11/msg00007.html
|
||||
+
|
||||
+AT_SETUP([symlink-bad-length])
|
||||
+AT_KEYWORDS([symlink-long copyout])
|
||||
+
|
||||
+AT_DATA([ARCHIVE.base64],
|
||||
+[x3EjAIBAtIEtJy8nAQAAAHRUYW0FAAAADQBGSUxFAABzb21lIGNvbnRlbnQKAMdxIwBgQ/+hLScv
|
||||
+JwEAAAB0VEhuBQD/////TElOSwAARklMRcdxAAAAAAAAAAAAAAEAAAAAAAAACwAAAAAAVFJBSUxF
|
||||
+UiEhIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
||||
+])
|
||||
+
|
||||
+AT_CHECK([
|
||||
+base64 -d ARCHIVE.base64 > ARCHIVE || AT_SKIP_TEST
|
||||
+cpio -ntv < ARCHIVE
|
||||
+test $? -eq 2
|
||||
+],
|
||||
+[0],
|
||||
+[-rw-rw-r-- 1 10029 10031 13 Nov 25 13:52 FILE
|
||||
+],[cpio: LINK: stored filename length too big
|
||||
+cpio: premature end of file
|
||||
+])
|
||||
+
|
||||
+AT_CLEANUP
|
||||
diff --git a/tests/symlink-long.at b/tests/symlink-long.at
|
||||
new file mode 100644
|
||||
index 0000000..d3def2d
|
||||
--- a/dev/null
|
||||
+++ b/tests/symlink-long.at
|
||||
@@ -0,0 +1,46 @@
|
||||
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
|
||||
+# Copyright (C) 2014 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3, or (at your option)
|
||||
+# any later version.
|
||||
+
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program; if not, write to the Free Software
|
||||
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
+# 02110-1301 USA.
|
||||
+
|
||||
+# Cpio v2.11.90 changed the way symlink name is read from archive.
|
||||
+# References:
|
||||
+# http://lists.gnu.org/archive/html/bug-cpio/2014-11/msg00007.html
|
||||
+
|
||||
+AT_SETUP([symlink-long])
|
||||
+AT_KEYWORDS([symlink-long copyout])
|
||||
+
|
||||
+AT_CHECK([
|
||||
+
|
||||
+# len(dirname) > READBUFSIZE
|
||||
+dirname=
|
||||
+for i in {1..52}; do
|
||||
+ dirname="xxxxxxxxx/$dirname"
|
||||
+ mkdir "$dirname"
|
||||
+done
|
||||
+ln -s "$dirname" x || AT_SKIP_TEST
|
||||
+
|
||||
+echo x | cpio -o > ar
|
||||
+list=`cpio -tv < ar | sed 's|.*-> ||'`
|
||||
+test "$list" = "$dirname" && echo success || echo fail
|
||||
+],
|
||||
+[0],
|
||||
+[success
|
||||
+],[2 blocks
|
||||
+2 blocks
|
||||
+])
|
||||
+
|
||||
+AT_CLEANUP
|
||||
diff --git a/tests/testsuite.at b/tests/testsuite.at
|
||||
index e67689f..3b5377e 100644
|
||||
--- a/tests/testsuite.at
|
||||
+++ b/tests/testsuite.at
|
||||
@@ -31,6 +31,8 @@ m4_include([version.at])
|
||||
|
||||
m4_include([inout.at])
|
||||
m4_include([symlink.at])
|
||||
+m4_include([symlink-bad-length.at])
|
||||
+m4_include([symlink-long.at])
|
||||
m4_include([interdir.at])
|
||||
|
||||
m4_include([setstat01.at])
|
||||
--
|
||||
cgit v0.9.0.2
|
|
@ -1,51 +0,0 @@
|
|||
Partially fix CVE-2014-9112, part 2/5.
|
||||
|
||||
From 54d1c42ac2cb91389fca04a5018ad573e4ae265a Mon Sep 17 00:00:00 2001
|
||||
From: Sergey Poznyakoff <gray@gnu.org.ua>
|
||||
Date: Mon, 01 Dec 2014 19:10:39 +0000
|
||||
Subject: Bugfix
|
||||
|
||||
* src/copyin.c (get_link_name): Fix range checking.
|
||||
* tests/symlink-bad-length.at: Change expected error message.
|
||||
---
|
||||
diff --git a/src/copyin.c b/src/copyin.c
|
||||
index c502c7d..042cc41 100644
|
||||
--- a/src/copyin.c
|
||||
+++ b/src/copyin.c
|
||||
@@ -128,17 +128,17 @@ tape_skip_padding (int in_file_des, off_t offset)
|
||||
static char *
|
||||
get_link_name (struct cpio_file_stat *file_hdr, int in_file_des)
|
||||
{
|
||||
- off_t n = file_hdr->c_filesize + 1;
|
||||
char *link_name;
|
||||
|
||||
- if (n == 0 || n > SIZE_MAX)
|
||||
+ if (file_hdr->c_filesize < 0 || file_hdr->c_filesize > SIZE_MAX-1)
|
||||
{
|
||||
- error (0, 0, _("%s: stored filename length too big"), file_hdr->c_name);
|
||||
+ error (0, 0, _("%s: stored filename length is out of range"),
|
||||
+ file_hdr->c_name);
|
||||
link_name = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
- link_name = xmalloc (n);
|
||||
+ link_name = xmalloc (file_hdr->c_filesize);
|
||||
tape_buffered_read (link_name, in_file_des, file_hdr->c_filesize);
|
||||
link_name[file_hdr->c_filesize] = '\0';
|
||||
tape_skip_padding (in_file_des, file_hdr->c_filesize);
|
||||
diff --git a/tests/symlink-bad-length.at b/tests/symlink-bad-length.at
|
||||
index 6f804b1..cbf4aa7 100644
|
||||
--- a/tests/symlink-bad-length.at
|
||||
+++ b/tests/symlink-bad-length.at
|
||||
@@ -42,7 +42,7 @@ test $? -eq 2
|
||||
],
|
||||
[0],
|
||||
[-rw-rw-r-- 1 10029 10031 13 Nov 25 13:52 FILE
|
||||
-],[cpio: LINK: stored filename length too big
|
||||
+],[cpio: LINK: stored filename length is out of range
|
||||
cpio: premature end of file
|
||||
])
|
||||
|
||||
--
|
||||
cgit v0.9.0.2
|
|
@ -1,23 +0,0 @@
|
|||
Partially fix CVE-2014-9112, part 3/5.
|
||||
|
||||
From 58df4f1b44a1142bba500f980fd26806413b1728 Mon Sep 17 00:00:00 2001
|
||||
From: Sergey Poznyakoff <gray@gnu.org.ua>
|
||||
Date: Tue, 02 Dec 2014 09:33:29 +0000
|
||||
Subject: Fix typo
|
||||
|
||||
---
|
||||
diff --git a/src/copyin.c b/src/copyin.c
|
||||
index 042cc41..264bfcb 100644
|
||||
--- a/src/copyin.c
|
||||
+++ b/src/copyin.c
|
||||
@@ -138,7 +138,7 @@ get_link_name (struct cpio_file_stat *file_hdr, int in_file_des)
|
||||
}
|
||||
else
|
||||
{
|
||||
- link_name = xmalloc (file_hdr->c_filesize);
|
||||
+ link_name = xmalloc (file_hdr->c_filesize + 1);
|
||||
tape_buffered_read (link_name, in_file_des, file_hdr->c_filesize);
|
||||
link_name[file_hdr->c_filesize] = '\0';
|
||||
tape_skip_padding (in_file_des, file_hdr->c_filesize);
|
||||
--
|
||||
cgit v0.9.0.2
|
|
@ -1,105 +0,0 @@
|
|||
Partially fix CVE-2014-9112, part 4/5. Backported to 2.11.
|
||||
|
||||
From fd262d116c4564c1796be9be2799619cf7785d07 Mon Sep 17 00:00:00 2001
|
||||
From: Sergey Poznyakoff <gray@gnu.org.ua>
|
||||
Date: Thu, 11 Dec 2014 10:51:21 +0000
|
||||
Subject: Fix error recovery in copy-in mode
|
||||
|
||||
* src/copyin.c (copyin_link): Fix null dereference.
|
||||
(read_in_header): Fix error recovery (bug introduced by
|
||||
27e0ae55).
|
||||
* tests/symlink-bad-length.at: Test error recovery.
|
||||
Catch various architecture-dependent error messages (suggested
|
||||
by Pavel Raiskup).
|
||||
---
|
||||
diff --git a/src/copyin.c b/src/copyin.c
|
||||
index 264bfcb..ca12356 100644
|
||||
--- a/src/copyin.c
|
||||
+++ b/src/copyin.c
|
||||
@@ -655,7 +655,7 @@ copyin_device (struct cpio_file_stat* file_hdr)
|
||||
}
|
||||
|
||||
static void
|
||||
-copyin_link(struct cpio_file_stat *file_hdr, int in_file_des)
|
||||
+copyin_link (struct cpio_file_stat *file_hdr, int in_file_des)
|
||||
{
|
||||
char *link_name = NULL; /* Name of hard and symbolic links. */
|
||||
int res; /* Result of various function calls. */
|
||||
@@ -666,6 +666,8 @@ copyin_link(struct cpio_file_stat *file_
|
||||
if (archive_format != arf_tar && archive_format != arf_ustar)
|
||||
{
|
||||
link_name = get_link_name (file_hdr, in_file_des);
|
||||
+ if (!link_name)
|
||||
+ return;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1017,7 +1019,7 @@ read_in_header (struct cpio_file_stat *file_hdr, int in_des)
|
||||
|
||||
file_hdr->c_tar_linkname = NULL;
|
||||
|
||||
- tape_buffered_read (magic.str, in_des, 6L);
|
||||
+ tape_buffered_read (magic.str, in_des, sizeof (magic.str));
|
||||
while (1)
|
||||
{
|
||||
if (append_flag)
|
||||
@@ -1062,8 +1064,8 @@ read_in_header (struct cpio_file_stat *file_hdr, int in_des)
|
||||
break;
|
||||
}
|
||||
bytes_skipped++;
|
||||
- memmove (magic.str, magic.str + 1, 5);
|
||||
- tape_buffered_read (magic.str, in_des, 1L);
|
||||
+ memmove (magic.str, magic.str + 1, sizeof (magic.str) - 1);
|
||||
+ tape_buffered_read (magic.str + sizeof (magic.str) - 1, in_des, 1L);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/tests/symlink-bad-length.at b/tests/symlink-bad-length.at
|
||||
index cbf4aa7..4dbeaa3 100644
|
||||
--- a/tests/symlink-bad-length.at
|
||||
+++ b/tests/symlink-bad-length.at
|
||||
@@ -24,9 +24,9 @@ AT_SETUP([symlink-bad-length])
|
||||
AT_KEYWORDS([symlink-long copyout])
|
||||
|
||||
AT_DATA([ARCHIVE.base64],
|
||||
-[x3EjAIBAtIEtJy8nAQAAAHRUYW0FAAAADQBGSUxFAABzb21lIGNvbnRlbnQKAMdxIwBgQ/+hLScv
|
||||
-JwEAAAB0VEhuBQD/////TElOSwAARklMRcdxAAAAAAAAAAAAAAEAAAAAAAAACwAAAAAAVFJBSUxF
|
||||
-UiEhIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
+[x3ECCJ1jtIHoA2QAAQAAAIlUwl0FAAAADQBGSUxFAABzb21lIGNvbnRlbnQKAMdxAgidHv+h6ANk
|
||||
+AAEAAACJVHFtBQD/////TElOSwAARklMRcdxAgieHqSB6ANkAAEAAACJVDJuBgAAABIARklMRTIA
|
||||
+c29tZSBtb3JlIGNvbnRlbnQKx3EAAAAAAAAAAAAAAQAAAAAAAAALAAAAAABUUkFJTEVSISEhAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
@@ -37,13 +37,23 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
||||
|
||||
AT_CHECK([
|
||||
base64 -d ARCHIVE.base64 > ARCHIVE || AT_SKIP_TEST
|
||||
-cpio -ntv < ARCHIVE
|
||||
-test $? -eq 2
|
||||
+TZ=UTC cpio -ntv < ARCHIVE 2>stderr
|
||||
+rc=$?
|
||||
+cat stderr | grep -v \
|
||||
+ -e 'stored filename length is out of range' \
|
||||
+ -e 'premature end of file' \
|
||||
+ -e 'archive header has reverse byte-order' \
|
||||
+ -e 'memory exhausted' \
|
||||
+ >&2
|
||||
+echo >&2 STDERR
|
||||
+test "$rc" -ne 0
|
||||
],
|
||||
-[0],
|
||||
-[-rw-rw-r-- 1 10029 10031 13 Nov 25 13:52 FILE
|
||||
-],[cpio: LINK: stored filename length is out of range
|
||||
-cpio: premature end of file
|
||||
+[1],
|
||||
+[-rw-rw-r-- 1 1000 100 13 Dec 11 09:02 FILE
|
||||
+-rw-r--r-- 1 1000 100 18 Dec 11 10:13 FILE2
|
||||
+],[cpio: warning: skipped 4 bytes of junk
|
||||
+1 block
|
||||
+STDERR
|
||||
])
|
||||
|
||||
AT_CLEANUP
|
||||
--
|
||||
cgit v0.9.0.2
|
|
@ -1,88 +0,0 @@
|
|||
Partially fix CVE-2014-9112, part 5/5. Backported to 2.11.
|
||||
|
||||
From f6a8a2cbd2d5ca40ea94900b55b845dd5ca87328 Mon Sep 17 00:00:00 2001
|
||||
From: Sergey Poznyakoff <gray@gnu.org.ua>
|
||||
Date: Thu, 11 Dec 2014 13:21:40 +0000
|
||||
Subject: Fix symlink-bad-length test for 64-bit architectures.
|
||||
|
||||
* src/util.c: Return non-zero exit code if EOF is hit prematurely.
|
||||
* tests/symlink-bad-length.at: Revert to original archive: there's
|
||||
no use testing for recovery, because that depends on the host
|
||||
architecture. Don't test for exit code as well (same reason).
|
||||
Account for eventual warning messages.
|
||||
---
|
||||
diff --git a/src/util.c b/src/util.c
|
||||
index 6c483f8..39c9813 100644
|
||||
--- a/src/util.c
|
||||
+++ b/src/util.c
|
||||
@@ -206,10 +206,7 @@ tape_fill_input_buffer (int in_des, int
|
||||
if (input_size < 0)
|
||||
error (1, errno, _("read error"));
|
||||
if (input_size == 0)
|
||||
- {
|
||||
- error (0, 0, _("premature end of file"));
|
||||
- exit (1);
|
||||
- }
|
||||
+ error (PAXEXIT_FAILURE, 0, _("premature end of file"));
|
||||
input_bytes += input_size;
|
||||
}
|
||||
|
||||
diff --git a/tests/symlink-bad-length.at b/tests/symlink-bad-length.at
|
||||
index 4dbeaa3..e1a7093 100644
|
||||
--- a/tests/symlink-bad-length.at
|
||||
+++ b/tests/symlink-bad-length.at
|
||||
@@ -24,9 +24,9 @@ AT_SETUP([symlink-bad-length])
|
||||
AT_KEYWORDS([symlink-long copyout])
|
||||
|
||||
AT_DATA([ARCHIVE.base64],
|
||||
-[x3ECCJ1jtIHoA2QAAQAAAIlUwl0FAAAADQBGSUxFAABzb21lIGNvbnRlbnQKAMdxAgidHv+h6ANk
|
||||
-AAEAAACJVHFtBQD/////TElOSwAARklMRcdxAgieHqSB6ANkAAEAAACJVDJuBgAAABIARklMRTIA
|
||||
-c29tZSBtb3JlIGNvbnRlbnQKx3EAAAAAAAAAAAAAAQAAAAAAAAALAAAAAABUUkFJTEVSISEhAAAA
|
||||
+[x3EjAIBAtIEtJy8nAQAAAHRUYW0FAAAADQBGSUxFAABzb21lIGNvbnRlbnQKAMdxIwBgQ/+hLScv
|
||||
+JwEAAAB0VEhuBQD/////TElOSwAARklMRcdxAAAAAAAAAAAAAAEAAAAAAAAACwAAAAAAVFJBSUxF
|
||||
+UiEhIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
@@ -35,25 +35,30 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
||||
])
|
||||
|
||||
+# The exact error message and exit status depend on the host architecture,
|
||||
+# therefore strderr is filtered out and error code is not checked.
|
||||
+
|
||||
+# So far the only case when cpio would exit with code 0 is when it skips
|
||||
+# several bytes and encounters a valid record header. Perhaps it should
|
||||
+# exit with code 2 (non-critical error), if at least one byte was skipped,
|
||||
+# but that could hurt backward compatibility.
|
||||
+
|
||||
AT_CHECK([
|
||||
base64 -d ARCHIVE.base64 > ARCHIVE || AT_SKIP_TEST
|
||||
-TZ=UTC cpio -ntv < ARCHIVE 2>stderr
|
||||
-rc=$?
|
||||
+TZ=UTC cpio -ntv < ARCHIVE 2>stderr
|
||||
cat stderr | grep -v \
|
||||
-e 'stored filename length is out of range' \
|
||||
-e 'premature end of file' \
|
||||
-e 'archive header has reverse byte-order' \
|
||||
-e 'memory exhausted' \
|
||||
+ -e 'skipped [[0-9][0-9]*] bytes of junk' \
|
||||
+ -e '[[0-9][0-9]*] block' \
|
||||
>&2
|
||||
echo >&2 STDERR
|
||||
-test "$rc" -ne 0
|
||||
],
|
||||
-[1],
|
||||
-[-rw-rw-r-- 1 1000 100 13 Dec 11 09:02 FILE
|
||||
--rw-r--r-- 1 1000 100 18 Dec 11 10:13 FILE2
|
||||
-],[cpio: warning: skipped 4 bytes of junk
|
||||
-1 block
|
||||
-STDERR
|
||||
+[0],
|
||||
+[-rw-rw-r-- 1 10029 10031 13 Nov 25 11:52 FILE
|
||||
+],[STDERR
|
||||
])
|
||||
|
||||
AT_CLEANUP
|
||||
--
|
||||
cgit v0.9.0.2
|
|
@ -1,44 +0,0 @@
|
|||
From bebf9662c406d1d137a66c567d8748b489d352e7 Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Raiskup <praiskup@redhat.com>
|
||||
Date: Thu, 4 Jun 2015 13:27:42 +0200
|
||||
Subject: [PATCH] tests: fix expected output for old file
|
||||
|
||||
Thanks Victor Rodriguez. Upstream thread:
|
||||
http://lists.gnu.org/archive/html/bug-cpio/2015-06/msg00000.html
|
||||
|
||||
* tests/symlink-bad-length.at (STDOUT): Expect the year string
|
||||
'2014' is printed and not time because the file in archive is
|
||||
older than 6 months.
|
||||
* Thanks: Mention Victor.
|
||||
---
|
||||
THANKS | 1 +
|
||||
tests/symlink-bad-length.at | 2 +-
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/THANKS b/THANKS
|
||||
index 45b0dfb..3228df9 100644
|
||||
--- a/THANKS
|
||||
+++ b/THANKS
|
||||
@@ -23,6 +23,7 @@ Mitsuru Chinen <mchinen@yamato.ibm.com>
|
||||
Peter Breitenlohner <peb@mppmu.mpg.de>
|
||||
Peter Vrabec <pvrabec@redhat.com>
|
||||
Robert Millan <rmh@aybabtu.com>
|
||||
+Victor Rodriguez <vm.rod25@gmail.com>
|
||||
|
||||
Local Variables:
|
||||
mode: Fundamental
|
||||
diff --git a/tests/symlink-bad-length.at b/tests/symlink-bad-length.at
|
||||
index e1a7093..2cdc692 100644
|
||||
--- a/tests/symlink-bad-length.at
|
||||
+++ b/tests/symlink-bad-length.at
|
||||
@@ -57,7 +57,7 @@ cat stderr | grep -v \
|
||||
echo >&2 STDERR
|
||||
],
|
||||
[0],
|
||||
-[-rw-rw-r-- 1 10029 10031 13 Nov 25 11:52 FILE
|
||||
+[-rw-rw-r-- 1 10029 10031 13 Nov 25 2014 FILE
|
||||
],[STDERR
|
||||
])
|
||||
|
||||
--
|
||||
2.1.0
|
|
@ -0,0 +1,23 @@
|
|||
After wrapping gnc-fq-check and gnc-fq-helper we can no longer execute them
|
||||
with perl, so execute them directly instead.
|
||||
|
||||
--- gnucash-2.6.6/src/scm/price-quotes.scm.orig 2014-04-27 17:42:28.000000000 -0500
|
||||
+++ gnucash-2.6.6/src/scm/price-quotes.scm 2015-07-09 16:12:11.196218472 -0500
|
||||
@@ -74,7 +74,7 @@
|
||||
(define (start-program)
|
||||
(if (not (string-null? gnc:*finance-quote-check*))
|
||||
(set! program (gnc-spawn-process-async
|
||||
- (list "perl" "-w" gnc:*finance-quote-check*) #t))))
|
||||
+ (list gnc:*finance-quote-check*) #t))))
|
||||
|
||||
(define (get-sources)
|
||||
(if (not (null? program))
|
||||
@@ -158,7 +158,7 @@
|
||||
(define (start-quoter)
|
||||
(if (not (string-null? gnc:*finance-quote-helper*))
|
||||
(set! quoter (gnc-spawn-process-async
|
||||
- (list "perl" "-w" gnc:*finance-quote-helper*) #t))))
|
||||
+ (list gnc:*finance-quote-helper*) #t))))
|
||||
|
||||
(define (get-quotes)
|
||||
(if (not (null? quoter))
|
|
@ -0,0 +1,16 @@
|
|||
The tests/org-mode.scm tests expects 'jpl-outline-es' to be read as UTF-8.
|
||||
|
||||
--- guile-present-0.3.0/tests/org-mode.scm 2014-09-23 22:29:51.426705753 +0200
|
||||
+++ guile-present-0.3.0/tests/org-mode.scm 2014-09-23 22:30:09.634705548 +0200
|
||||
@@ -194,9 +194,10 @@
|
||||
"(Just another hacker)"
|
||||
"wingo@fluendo.com")
|
||||
(p "Julien Moutte, CEO" "julien@fluendo.com")))
|
||||
+ (with-fluids ((%default-port-encoding "UTF-8"))
|
||||
(call-with-input-file
|
||||
(in-vicinity *top-srcdir* "tests/jpl-outline-es")
|
||||
- org->presentation)))
|
||||
+ org->presentation))))
|
||||
|
||||
(setlocale LC_ALL "")
|
||||
(exit-with-summary (run-all-defined-test-cases))
|
|
@ -0,0 +1,16 @@
|
|||
This patch fixes a bug in guile-rsvg's build system, whereby the CFLAGS
|
||||
and LDFLAGS for Guile would not be captured.
|
||||
|
||||
--- guile-rsvg-2.18.1/configure.ac 2015-08-31 22:30:30.578909480 +0200
|
||||
+++ guile-rsvg-2.18.1/configure.ac 2015-08-31 22:32:15.071516084 +0200
|
||||
@@ -39,6 +39,10 @@ AC_SUBST(WARN_CFLAGS)
|
||||
|
||||
GUILE_PKG([2.2 2.0 1.8])
|
||||
|
||||
+dnl The above macro fails to set the 'GUILE_CFLAGS' and 'GUILE_LIBS'
|
||||
+dnl substitution variables, hence this line.
|
||||
+PKG_CHECK_MODULES(GUILE, guile-2.0)
|
||||
+
|
||||
PKG_CHECK_MODULES(GUILE_CAIRO, guile-cairo >= 1.4.0)
|
||||
AC_SUBST(GUILE_CAIRO_LIBS)
|
||||
AC_SUBST(GUILE_CAIRO_CFLAGS)
|
|
@ -0,0 +1,15 @@
|
|||
Rather than unconditionally using Mozilla's CA certificates, let the user tell
|
||||
LWP's UserAgent where to find certificates with the PERL_LWP_SSL_CA_FILE,
|
||||
HTTPS_CA_FILE, PERL_LWP_SSL_CA_PATH, or HTTPS_CA_DIR environment variables
|
||||
instead.
|
||||
|
||||
--- Finance-Quote-1.37/lib/Finance/Quote/Tiaacref.pm.orig 2015-02-01 13:24:41.000000000 -0600
|
||||
+++ Finance-Quote-1.37/lib/Finance/Quote/Tiaacref.pm 2015-07-07 20:09:47.278885944 -0500
|
||||
@@ -30,7 +30,6 @@
|
||||
package Finance::Quote::Tiaacref;
|
||||
require 5.005;
|
||||
require LWP::Protocol::https;
|
||||
-require Mozilla::CA;
|
||||
|
||||
use strict;
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
This patch make Xfce use "gnome" as the default icon theme and enable font antialias.
|
||||
|
||||
Taken from ArchLinux.
|
||||
|
||||
diff -upr xfce4-settings-4.12.0.orig/xfsettingsd/xsettings.xml xfce4-settings-4.12.0/xfsettingsd/xsettings.xml
|
||||
--- xfce4-settings-4.12.0.orig/xfsettingsd/xsettings.xml 2015-02-24 03:33:11.000000000 +0200
|
||||
+++ xfce4-settings-4.12.0/xfsettingsd/xsettings.xml 2015-03-01 09:52:24.376869688 +0200
|
||||
@@ -6,8 +6,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<channel name="xsettings" version="1.0">
|
||||
<property name="Net" type="empty">
|
||||
<property name="ThemeName" type="empty"/>
|
||||
- <property name="IconThemeName" type="empty"/>
|
||||
+ <property name="IconThemeName" type="string" value="gnome"/>
|
||||
<property name="DoubleClickTime" type="int" value="400"/>
|
||||
<property name="DoubleClickDistance" type="int" value="5"/>
|
||||
<property name="DndDragThreshold" type="int" value="8"/>
|
||||
@@ -19,9 +19,9 @@
|
||||
</property>
|
||||
<property name="Xft" type="empty">
|
||||
<property name="DPI" type="empty"/>
|
||||
- <property name="Antialias" type="int" value="-1"/>
|
||||
+ <property name="Antialias" type="int" value="1"/>
|
||||
<property name="Hinting" type="int" value="-1"/>
|
||||
- <property name="HintStyle" type="string" value="hintnone"/>
|
||||
+ <property name="HintStyle" type="string" value="hintfull"/>
|
||||
<property name="RGBA" type="string" value="none"/>
|
||||
<!-- <property name="Lcdfilter" type="string" value="none"/> -->
|
||||
</property>
|
|
@ -20,7 +20,9 @@
|
|||
#:use-module (guix packages)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages ed)
|
||||
#:use-module (gnu packages base)
|
||||
|
@ -29,6 +31,8 @@
|
|||
#:use-module (gnu packages gawk)
|
||||
#:use-module (gnu packages less)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages mail)
|
||||
#:use-module (gnu packages xml))
|
||||
|
||||
(define-public patchutils
|
||||
|
@ -170,3 +174,31 @@ refreshed, and more.")
|
|||
"Colordiff is Perl script wrapper on top of diff command which provides
|
||||
'syntax highlighting' for various patch formats.")
|
||||
(license gpl2+)))
|
||||
|
||||
(define-public patches
|
||||
(let ((commit "26d7dbc"))
|
||||
(package
|
||||
(name "patches")
|
||||
(version (string-append "0.0." commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/aliguori/patches")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"1bah6y84nlii5yif189ns28dz1m9vmsyw66jyk2vr5yf0njf7mzh"))))
|
||||
(build-system python-build-system)
|
||||
(inputs `(("python-notmuch" ,python2-notmuch)))
|
||||
(arguments
|
||||
`(#:tests? #f ;no "test" target
|
||||
#:python ,python-2)) ;not compatible with Python 3
|
||||
(home-page "https://github.com/aliguori/patches")
|
||||
(synopsis "Patch tracking tool")
|
||||
(description
|
||||
"'Patches' is a patch-tracking tool initially written for the QEMU
|
||||
project. It provides commands that build a database of patches from a mailing
|
||||
list, and commands that can search that database. It allows users to track
|
||||
the status of a patch, apply patches, and search for patches---all that from
|
||||
the command-line or from Emacs via its Notmuch integration.")
|
||||
(license gpl2+))))
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages fontutils)
|
||||
|
@ -36,6 +37,7 @@
|
|||
#:use-module (gnu packages lesstif)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages glib)
|
||||
|
@ -103,6 +105,50 @@
|
|||
(license license:gpl2+)
|
||||
(home-page "http://poppler.freedesktop.org/")))
|
||||
|
||||
(define-public poppler-qt4
|
||||
(package (inherit poppler)
|
||||
(name "poppler-qt4")
|
||||
(inputs `(("qt-4" ,qt-4)
|
||||
,@(package-inputs poppler)))
|
||||
(synopsis "Qt4 frontend for the Poppler PDF rendering library")))
|
||||
|
||||
(define-public python-poppler-qt4
|
||||
(package
|
||||
(name "python-poppler-qt4")
|
||||
(version "0.24.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://pypi.python.org/packages/source/p"
|
||||
"/python-poppler-qt4/python-poppler-qt4-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0x63niylkk4q3h3ay8zrk3m1xiik0x3hlr4gvj7kswx48qi1vb99"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after
|
||||
'unpack 'patch-poppler-include-paths
|
||||
(lambda _
|
||||
(substitute* (find-files "." "poppler-.*\\.sip")
|
||||
(("qt4/poppler-.*\\.h" header)
|
||||
(string-append "poppler/" header)))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("python-sip" ,python-sip)
|
||||
("python-pyqt-4" ,python-pyqt-4)
|
||||
("poppler-qt4" ,poppler-qt4)))
|
||||
(home-page "https://pypi.python.org/pypi/python-poppler-qt4")
|
||||
(synopsis "Python bindings for Poppler-Qt4")
|
||||
(description
|
||||
"This package provides Python bindings for the Qt4 interface of the
|
||||
Poppler PDF rendering library.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public xpdf
|
||||
(package
|
||||
(name "xpdf")
|
||||
|
|
|
@ -1052,6 +1052,46 @@ contained in Appendix A of FIPS Publication 181, \"Standard for Automated
|
|||
Password Generator\".")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public perl-czplib
|
||||
(package
|
||||
(name "perl-czplib")
|
||||
(version "1.0.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/czplib/czplib.v"
|
||||
version ".tgz"))
|
||||
(sha256
|
||||
(base32
|
||||
"12kln8l5h406r1ss6zbazgcshmys9nvabkrhvk2zwrrgl1saq1kf"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Remove .git directory
|
||||
(delete-file-recursively ".git")
|
||||
#t))))
|
||||
(build-system perl-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(delete 'build)
|
||||
(replace
|
||||
'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(copy-recursively "."
|
||||
(string-append (assoc-ref outputs "out")
|
||||
"/plib/perl5/site_perl/"
|
||||
,(package-version perl)
|
||||
"/czplib/"))
|
||||
#t)))))
|
||||
(home-page "http://sourceforge.net/projects/czplib/")
|
||||
(synopsis "Library for genomic analysis")
|
||||
(description "Chaolin Zhang's Perl Library (czplib) contains assorted
|
||||
functions and data structures for processing and analysing genomic and
|
||||
bioinformatics data.")
|
||||
(license gpl3+)))
|
||||
|
||||
(define-public perl-data-dump
|
||||
(package
|
||||
(name "perl-data-dump")
|
||||
|
@ -1293,6 +1333,31 @@ applicable).")
|
|||
Date::Calc.")
|
||||
(license (list (package-license perl) lgpl2.0+))))
|
||||
|
||||
(define-public perl-date-manip
|
||||
(package
|
||||
(name "perl-date-manip")
|
||||
(version "6.50")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://cpan.metacpan.org/authors/id/S/SB/SBECK/"
|
||||
"Date-Manip-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0zd0wbf91i49753rnf7m1lw197hdl5r97mxy0n43zdmcmhvkb3qq"))))
|
||||
(build-system perl-build-system)
|
||||
(arguments
|
||||
;; Tests would require tzdata for timezone information, but tzdata is in
|
||||
;; (gnu packages base) which would create a circular dependency. TODO:
|
||||
;; Maybe put this package elsewhere so we can turn on tests.
|
||||
'(#:tests? #f))
|
||||
(home-page "http://search.cpan.org/dist/Date-Manip")
|
||||
(synopsis "Date manipulation routines")
|
||||
(description "Date::Manip is a series of modules for common date/time
|
||||
operations, such as comparing two times, determining a date a given amount of
|
||||
time from another, or parsing international times.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public perl-datetime
|
||||
(package
|
||||
(name "perl-datetime")
|
||||
|
@ -1666,7 +1731,7 @@ particular command is available.")
|
|||
(home-page "http://search.cpan.org/dist/Devel-GlobalDestruction")
|
||||
(synopsis "Provides equivalent of ${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls")
|
||||
(description "Devel::GlobalDestruction provides a function returning the
|
||||
equivalent of \"${^GLOBAL_PHASE} eq 'DESTRUCT'\" for older perls.")
|
||||
equivalent of \"$@{^GLOBAL_PHASE@} eq 'DESTRUCT'\" for older perls.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public perl-devel-lexalias
|
||||
|
@ -1910,7 +1975,7 @@ constructors, which speeds code up at runtime by a significant amount. String
|
|||
eval is not without its issues however - it's difficult to control the scope
|
||||
it's used in (which determines which variables are in scope inside the eval),
|
||||
and it's easy to miss compilation errors, since eval catches them and sticks
|
||||
them in $@ instead. This module attempts to solve these problems. It
|
||||
them in $@@ instead. This module attempts to solve these problems. It
|
||||
provides an eval_closure function, which evals a string in a clean
|
||||
environment, other than a fixed list of specified variables. Compilation
|
||||
errors are rethrown automatically.")
|
||||
|
@ -1954,7 +2019,7 @@ in your modules in a \"Java-esque\" manner.")
|
|||
(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.")
|
||||
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))))
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -17,18 +19,50 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages photo)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages libusb)
|
||||
#:use-module (guix download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages popt)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages ghostscript)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages graphics)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages imagemagick)
|
||||
#:use-module (gnu packages libusb)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages base))
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages popt)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages xfig)
|
||||
#:use-module (gnu packages xml))
|
||||
|
||||
(define-public libraw
|
||||
(package
|
||||
(name "libraw")
|
||||
(version "0.17.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.libraw.org/data/LibRaw-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"043kckxjqanw8dl3m9f6kvsf0l20ywxmgxd1xb0slj6m8l4w4hz6"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.libraw.org")
|
||||
(synopsis "Raw image decoder")
|
||||
(description
|
||||
"LibRaw is a library for reading RAW files obtained from digital photo
|
||||
cameras (CRW/CR2, NEF, RAF, DNG, and others).")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public libexif
|
||||
(package
|
||||
|
@ -47,7 +81,7 @@
|
|||
(description
|
||||
"The libexif C library allows applications to read, edit, and save EXIF
|
||||
data as produced by digital cameras.")
|
||||
(license lgpl2.1+)))
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public libgphoto2
|
||||
(package
|
||||
|
@ -77,7 +111,7 @@ MTP, and other vendor specific protocols for controlling and transferring data
|
|||
from digital cameras.")
|
||||
|
||||
;; 'COPYING' says LGPLv2.1+, but in practices files are under LGPLv2+.
|
||||
(license lgpl2.1+)))
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public gphoto2
|
||||
(package
|
||||
|
@ -120,7 +154,7 @@ number of different digital cameras. Through libgphoto2, it supports PTP,
|
|||
MTP, and much more.")
|
||||
|
||||
;; Files are typically under LGPLv2+, but 'COPYING' says GPLv2+.
|
||||
(license gpl2+)))
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public perl-image-exiftool
|
||||
(package
|
||||
|
@ -154,3 +188,73 @@ MTP, and much more.")
|
|||
"This package provides the 'exiftool' command and the 'Image::ExifTool'
|
||||
Perl library to manipulate EXIF tags of digital images.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public libpano13
|
||||
(package
|
||||
(name "libpano13")
|
||||
(version "2.9.19")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/panotools/libpano13/"
|
||||
"libpano13-" version "/"
|
||||
"libpano13-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1a4m3plmfcrrplqs9zfzhc5apibn10m5sajpizm1sd3q74w5fwq3"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
`(("libjpeg" ,libjpeg)
|
||||
("libpng" ,libpng)
|
||||
("libtiff" ,libtiff)
|
||||
("zlib" ,zlib)))
|
||||
(home-page "http://panotools.sourceforge.net/")
|
||||
(synopsis "Library for panoramic images")
|
||||
(description
|
||||
"The libpano13 package contains the backend library written by the
|
||||
Panorama Tools project for building panoramic images from a set of
|
||||
overlapping images, as well as some command line tools.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public enblend-enfuse
|
||||
(package
|
||||
(name "enblend-enfuse")
|
||||
(version "4.1.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/enblend/"
|
||||
name "/"
|
||||
name "-" (version-major+minor version) "/"
|
||||
name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1b7r1nnwaind0344ckwggy0ghl0ipbk9jzylsxcjfl05rnasw00w"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("perl" ,perl)
|
||||
("perl-timedate" ,perl-timedate)
|
||||
;; for building the documentation
|
||||
("gnuplot" ,gnuplot)
|
||||
("imagemagick" ,imagemagick)
|
||||
("libxml2" ,libxml2)
|
||||
("tidy" ,tidy)
|
||||
("transfig" ,transfig)))
|
||||
(inputs
|
||||
`(("boost" ,boost)
|
||||
("gsl" ,gsl)
|
||||
("lcms" ,lcms)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libpng" ,libpng)
|
||||
("libtiff" ,libtiff)
|
||||
("openexr" ,openexr)
|
||||
("vigra" ,vigra)
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
`(#:configure-flags `("--enable-openmp")))
|
||||
(home-page "http://enblend.sourceforge.net/")
|
||||
(synopsis "Tools for combining and blending images")
|
||||
(description
|
||||
"Enblend blends away the seams in a panoramic image mosaic using a
|
||||
multi-resolution spline. Enfuse merges different exposures of the same
|
||||
scene to produce an image that looks much like a tone-mapped image.")
|
||||
(license license:gpl2+)))
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
|
||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -23,6 +25,7 @@
|
|||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnuzilla)
|
||||
#:use-module (gnu packages linux)
|
||||
|
@ -44,19 +47,77 @@
|
|||
(sha256
|
||||
(base32
|
||||
"109w86kfqrgz83g9ivggplmgc77rz8kx8646izvm2jb57h4rbh71"))
|
||||
(patches (list (search-patch "polkit-drop-test.patch")))))
|
||||
(patches (list (search-patch "polkit-drop-test.patch")))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
(use-modules (guix build utils))
|
||||
(substitute* "configure"
|
||||
;; Replace libsystemd-login with libelogind.
|
||||
(("libsystemd-login") "libelogind")
|
||||
;; Skip the sanity check that the current system runs
|
||||
;; systemd.
|
||||
(("test ! -d /sys/fs/cgroup/systemd/") "false"))
|
||||
(substitute* "src/polkit/polkitunixsession-systemd.c"
|
||||
(("systemd") "elogind"))
|
||||
(substitute* "src/polkitbackend/polkitbackendsessionmonitor-systemd.c"
|
||||
(("systemd") "elogind"))
|
||||
(substitute* "src/polkitbackend/polkitbackendjsauthority.c"
|
||||
(("systemd") "elogind"))
|
||||
|
||||
(substitute* "src/polkitagent/polkitagentsession.c"
|
||||
(("PACKAGE_PREFIX \"/lib/polkit-1/polkit-agent-helper-1\"")
|
||||
"\"/run/setuid-programs/polkit-agent-helper-1\""))
|
||||
(substitute* "src/polkitbackend/polkitbackendinteractiveauthority.c"
|
||||
(("PACKAGE_DATA_DIR \"/polkit-1/actions\"")
|
||||
"\"/run/current-system/profile/share/polkit-1/actions\""))
|
||||
(substitute* "src/polkitbackend/polkitbackendjsauthority.c"
|
||||
(("PACKAGE_SYSCONF_DIR \"/polkit-1/rules.d\"")
|
||||
"\"/run/current-system/profile/etc/polkit-1/rules.d\""))
|
||||
(substitute* "src/polkitbackend/polkitbackendjsauthority.c"
|
||||
(("PACKAGE_DATA_DIR \"/polkit-1/rules.d\"")
|
||||
"\"/run/current-system/profile/share/polkit-1/rules.d\""))))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("expat" ,expat)
|
||||
("glib:bin" ,glib "bin") ; for glib-mkenums
|
||||
("intltool" ,intltool)
|
||||
("linux-pam" ,linux-pam)
|
||||
("elogind" ,elogind)
|
||||
("mozjs" ,mozjs)
|
||||
("nspr" ,nspr)))
|
||||
(propagated-inputs
|
||||
`(("glib" ,glib))) ; required by polkit-gobject-1.pc
|
||||
(native-inputs
|
||||
`(("pkg-config", pkg-config)))
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("glib:bin" ,glib "bin") ; for glib-mkenums
|
||||
("intltool" ,intltool)
|
||||
("gobject-introspection" ,gobject-introspection)))
|
||||
(arguments
|
||||
`(#:configure-flags '("--sysconfdir=/etc"
|
||||
"--enable-man-pages")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after
|
||||
'unpack 'fix-introspection-install-dir
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* (find-files "." "Makefile.in")
|
||||
(("@INTROSPECTION_GIRDIR@")
|
||||
(string-append out "/share/gir-1.0/"))
|
||||
(("@INTROSPECTION_TYPELIBDIR@")
|
||||
(string-append out "/lib/girepository-1.0/"))))))
|
||||
(replace
|
||||
'install
|
||||
(lambda* (#:key outputs (make-flags '()) #:allow-other-keys)
|
||||
;; Override sysconfdir during "make install", to avoid attempting
|
||||
;; to install in /etc, and to instead install the skeletons in the
|
||||
;; output directory.
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(zero? (apply system*
|
||||
"make" "install"
|
||||
(string-append "sysconfdir=" out "/etc")
|
||||
(string-append "polkit_actiondir="
|
||||
out "/share/polkit-1/actions")
|
||||
make-flags))))))))
|
||||
(home-page "http://www.freedesktop.org/wiki/Software/polkit/")
|
||||
(synopsis "Authorization API for privilege management")
|
||||
(description "Polkit is an application-level toolkit for defining and
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.org>
|
||||
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
|
||||
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -33,6 +34,7 @@
|
|||
isc psfl public-domain x11-style))
|
||||
#:use-module ((guix licenses) #:select (expat zlib) #:prefix license:)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages attr)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages fontutils)
|
||||
|
@ -45,6 +47,7 @@
|
|||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages imagemagick)
|
||||
#:use-module (gnu packages libffi)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages networking)
|
||||
|
@ -1171,7 +1174,7 @@ other Python program.")
|
|||
"EmPy is a system for embedding Python expressions and statements in
|
||||
template text; it takes an EmPy source file, processes it, and produces
|
||||
output. This is accomplished via expansions, which are special signals to the
|
||||
EmPy system and are set off by a special prefix (by default the at sign, @).
|
||||
EmPy system and are set off by a special prefix (by default the at sign, @@).
|
||||
EmPy can expand arbitrary Python expressions and statements in this way, as
|
||||
well as a variety of special forms. Textual data not explicitly delimited in
|
||||
this way is sent unaffected to the output, allowing Python to be used in
|
||||
|
@ -1711,11 +1714,12 @@ Python tests.")
|
|||
(base32
|
||||
"1ssqb07c277010i6gzzkbdd46gd9mrj0bi0i8vn560n2k2y4j93m"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-fixtures" ,python-fixtures)
|
||||
("python-testtools" ,python-testtools)))
|
||||
(inputs
|
||||
`(("python-setuptools" ,python-setuptools)
|
||||
("python-testtools" ,python-testtools)
|
||||
("python-subunit" ,python-subunit)
|
||||
("python-fixtures" ,python-fixtures)
|
||||
("python-mimeparse" ,python-mimeparse)))
|
||||
(home-page "https://launchpad.net/testrepository")
|
||||
(synopsis "Database for Python test results")
|
||||
|
@ -4658,3 +4662,109 @@ from an XML-based format.")
|
|||
|
||||
(define-public python2-fonttools
|
||||
(package-with-python2 python-fonttools))
|
||||
|
||||
(define-public python-ly
|
||||
(package
|
||||
(name "python-ly")
|
||||
(version "0.9.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://pypi.python.org/packages/source/p/python-ly/python-ly-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1bsjg4q9ihr8bfdclrcmb8yjcg8xm9dznh58f3zsyrkrjzwbhcd2"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-setuptools" ,python-setuptools)))
|
||||
(synopsis "Tool and library for manipulating LilyPond files")
|
||||
(description "This package provides a Python library to parse, manipulate
|
||||
or create documents in LilyPond format. A command line program ly is also
|
||||
provided that can be used to do various manipulations with LilyPond files.")
|
||||
(home-page "https://pypi.python.org/pypi/python-ly")
|
||||
(license gpl2+)))
|
||||
|
||||
(define-public python-appdirs
|
||||
(package
|
||||
(name "python-appdirs")
|
||||
(version "1.4.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://pypi.python.org/packages/source/a/appdirs/appdirs-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1iddva7v3fq0aqzsahkazxr7vpw28mqcrsy818z4wyiqnkplbhlg"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("python-setuptools" ,python-setuptools)))
|
||||
(home-page "http://github.com/ActiveState/appdirs")
|
||||
(synopsis
|
||||
"Determine platform-specific dirs, e.g. a \"user data dir\"")
|
||||
(description
|
||||
"This module provides a portable way of finding out where user data
|
||||
should be stored on various operating systems.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-appdirs
|
||||
(package-with-python2 python-appdirs))
|
||||
|
||||
(define-public python-llfuse
|
||||
(package
|
||||
(name "python-llfuse")
|
||||
(version "0.41")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://bitbucket.org/nikratio/python-llfuse/downloads/"
|
||||
"llfuse-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0yzy8ixpmxk00kdq6lx5vvwbs0n6s59qnja5q0js2ahbqyxiz2hb"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("fuse" ,fuse)
|
||||
("attr" ,attr)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("python-setuptools" ,python-setuptools)))
|
||||
(synopsis "Python bindings for FUSE")
|
||||
(description
|
||||
"Python-LLFUSE is a set of Python bindings for the low level FUSE API.")
|
||||
(home-page "https://bitbucket.org/nikratio/python-llfuse/")
|
||||
;; Python-LLFUSE includes underscore.js, which is MIT (expat) licensed.
|
||||
;; The rest of the package is licensed under LGPL2.0 or later.
|
||||
(license (list license:expat lgpl2.0+))))
|
||||
|
||||
(define-public python2-llfuse
|
||||
(package-with-python2 python-llfuse))
|
||||
|
||||
(define-public python-msgpack
|
||||
(package
|
||||
(name "python-msgpack")
|
||||
(version "0.4.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://pypi.python.org/packages/source/m/"
|
||||
"msgpack-python/msgpack-python-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1527c76b6fn4zzkgfq5xvhh7x9a9686g7fjiz717rw5vklf5ik5z"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-setuptools" ,python-setuptools)))
|
||||
(synopsis "MessagePack (de)serializer")
|
||||
(description "MessagePack is a fast, compact binary serialization format,
|
||||
suitable for similar data to JSON. This package provides CPython bindings for
|
||||
reading and writing MessagePack data.")
|
||||
(home-page "https://pypi.python.org/pypi/msgpack-python/")
|
||||
(license asl2.0)))
|
||||
|
||||
(define-public python2-msgpack
|
||||
(package-with-python2 python-msgpack))
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014 Pjotr Prins <pjotr.guix@thebird.nl>
|
||||
;;; Copyright © 2014, 2015 Pjotr Prins <pjotr.guix@thebird.nl>
|
||||
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2014 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -23,8 +24,10 @@
|
|||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages java)
|
||||
#:use-module (gnu packages libffi)
|
||||
#:use-module (gnu packages gdbm)
|
||||
#:use-module (gnu packages tls)
|
||||
|
@ -34,6 +37,7 @@
|
|||
#:use-module (guix git-download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (guix build-system ruby))
|
||||
|
||||
(define-public ruby
|
||||
|
@ -192,16 +196,16 @@ packaging native C and Java extensions in Ruby.")
|
|||
(define-public ruby-i18n
|
||||
(package
|
||||
(name "ruby-i18n")
|
||||
(version "0.6.11")
|
||||
(version "0.7.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "i18n" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0fwjlgmgry2blf8zlxn9c555cf4a16p287l599kz5104ncjxlzdk"))))
|
||||
"1i5z1ykl8zhszsxcs8mzl8d0dxgs3ylz8qlzrw74jb0gplkx6758"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; requires bundler
|
||||
'(#:tests? #f)) ; no tests
|
||||
(synopsis "Internationalization library for Ruby")
|
||||
(description "Ruby i18n is an internationalization and localization
|
||||
solution for Ruby programs. It features translation and localization,
|
||||
|
@ -254,7 +258,7 @@ groups.")
|
|||
(home-page "https://github.com/rspec/rspec-core")
|
||||
(license license:expat)))
|
||||
|
||||
(define ruby-diff-lcs-for-rspec
|
||||
(define-public ruby-diff-lcs
|
||||
(package
|
||||
(name "ruby-diff-lcs")
|
||||
(version "1.2.5")
|
||||
|
@ -290,7 +294,7 @@ standard diff-like tool.")
|
|||
'(#:tests? #f)) ; avoid dependency cycles
|
||||
(propagated-inputs
|
||||
`(("ruby-rspec-support" ,ruby-rspec-support)
|
||||
("ruby-diff-lcs" ,ruby-diff-lcs-for-rspec)))
|
||||
("ruby-diff-lcs" ,ruby-diff-lcs)))
|
||||
(synopsis "RSpec expectations library")
|
||||
(description "Rspec-expectations provides a simple API to express expected
|
||||
outcomes of a code example.")
|
||||
|
@ -312,7 +316,7 @@ outcomes of a code example.")
|
|||
'(#:tests? #f)) ; avoid dependency cycles
|
||||
(propagated-inputs
|
||||
`(("ruby-rspec-support" ,ruby-rspec-support)
|
||||
("ruby-diff-lcs" ,ruby-diff-lcs-for-rspec)))
|
||||
("ruby-diff-lcs" ,ruby-diff-lcs)))
|
||||
(synopsis "RSpec stubbing and mocking library")
|
||||
(description "Rspec-mocks provides RSpec's \"test double\" framework, with
|
||||
support for stubbing and mocking.")
|
||||
|
@ -348,13 +352,13 @@ expectations and mocks frameworks.")
|
|||
(define-public bundler
|
||||
(package
|
||||
(name "bundler")
|
||||
(version "1.9.9")
|
||||
(version "1.10.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "bundler" version))
|
||||
(sha256
|
||||
(base32
|
||||
"12qk1569pswa9mmid6lsqy2napn9fmkbmv0k7xkl52nyfh8rsy4d"))))
|
||||
"1vlzfq0bkkj4jyq6av0y55mh5nj5n0f3mfbmmifwgkh44g8k6agv"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; avoid dependency cycles
|
||||
|
@ -364,6 +368,143 @@ specified in a \"Gemfile\", as well as their dependencies.")
|
|||
(home-page "http://bundler.io/")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public ruby-builder
|
||||
(package
|
||||
(name "ruby-builder")
|
||||
(version "3.2.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "builder" version))
|
||||
(sha256
|
||||
(base32
|
||||
"14fii7ab8qszrvsvhz6z2z3i4dw0h41a62fjr2h1j8m41vbrmyv2"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'do-not-use-rvm
|
||||
(lambda _
|
||||
(substitute* "rakelib/tags.rake"
|
||||
(("RVM_GEMDIR = .*") "RVM_GEMDIR = 'no-rvm-please'\n"))
|
||||
#t)))))
|
||||
(synopsis "Ruby library to create structured data")
|
||||
(description "Builder provides a number of builder objects that make it
|
||||
easy to create structured data. Currently the following builder objects are
|
||||
supported: XML Markup and XML Events.")
|
||||
(home-page "https://github.com/jimweirich/builder")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public ruby-rjb
|
||||
(package
|
||||
(name "ruby-rjb")
|
||||
(version "1.5.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "rjb" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0gzs92dagk981s4vrymnqg0vll783b9k564j0cdgp167nc5a2zg4"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no rakefile
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'set-java-home
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("jdk" ,icedtea7 "jdk")))
|
||||
(synopsis "Ruby-to-Java bridge using the Java Native Interface")
|
||||
(description "RJB is a bridge program that connects Ruby and Java via the
|
||||
Java Native Interface.")
|
||||
(home-page "http://www.artonx.org/collabo/backyard/?RubyJavaBridge")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public ruby-atoulme-antwrap
|
||||
(package
|
||||
(name "ruby-atoulme-antwrap")
|
||||
(version "0.7.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "atoulme-Antwrap" version))
|
||||
(sha256
|
||||
(base32
|
||||
"05s3iw44lqa81f8nfy5f0xjj808600h82zb9bsh46b9kcq2w2kmz"))))
|
||||
(build-system ruby-build-system)
|
||||
;; Test data required for most of the tests are not included.
|
||||
(arguments `(#:tests? #f))
|
||||
(native-inputs
|
||||
`(("ruby-hoe" ,ruby-hoe)))
|
||||
(inputs
|
||||
`(("ruby-rjb" ,ruby-rjb)))
|
||||
(synopsis "Ruby wrapper for the Ant build tool")
|
||||
(description "Antwrap is a Ruby module that wraps the Apache Ant build
|
||||
tool. Antwrap can be used to invoke Ant tasks from a Ruby or a JRuby
|
||||
script.")
|
||||
(home-page "http://rubyforge.org/projects/antwrap/")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public ruby-orderedhash
|
||||
(package
|
||||
(name "ruby-orderedhash")
|
||||
(version "0.0.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "orderedhash" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0fryy7f9jbpx33jq5m402yqj01zcg563k9fsxlqbhmq638p4bzd7"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; no test suite
|
||||
(synopsis "Ruby library providing an order-preserving hash")
|
||||
(description "Orderedhash is a Ruby library providing a hash
|
||||
implementation that preserves the order of items and features some array-like
|
||||
extensions.")
|
||||
(home-page "http://codeforpeople.com/lib/ruby/orderedhash/")
|
||||
(license license:public-domain)))
|
||||
|
||||
(define-public ruby-xml-simple
|
||||
(package
|
||||
(name "ruby-xml-simple")
|
||||
(version "1.1.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "xml-simple" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0xlqplda3fix5pcykzsyzwgnbamb3qrqkgbrhhfz2a2fxhrkvhw8"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; no test suite
|
||||
(synopsis "Simple Ruby library for XML processing")
|
||||
(description "This library provides a simple API for XML processing in
|
||||
Ruby.")
|
||||
(home-page "https://github.com/maik/xml-simple")
|
||||
(license license:ruby)))
|
||||
|
||||
(define-public ruby-thor
|
||||
(package
|
||||
(name "ruby-thor")
|
||||
(version "0.19.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "thor" version))
|
||||
(sha256
|
||||
(base32
|
||||
"08p5gx18yrbnwc6xc0mxvsfaxzgy2y9i78xq7ds0qmdm67q39y4z"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; no test suite
|
||||
(native-inputs
|
||||
`(("bundler" ,bundler)))
|
||||
(synopsis "Ruby toolkit for building command-line interfaces")
|
||||
(description "Thor is a toolkit for building powerful command-line
|
||||
interfaces.")
|
||||
(home-page "http://whatisthor.com/")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public ruby-useragent
|
||||
(package
|
||||
(name "ruby-useragent")
|
||||
|
@ -592,6 +733,16 @@ options and parsing command line flags.")
|
|||
(home-page "https://github.com/leejarvis/slop")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public ruby-slop-3
|
||||
(package (inherit ruby-slop)
|
||||
(version "3.6.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "slop" version))
|
||||
(sha256
|
||||
(base32
|
||||
"00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n"))))))
|
||||
|
||||
(define-public ruby-multipart-post
|
||||
(package
|
||||
(name "ruby-multipart-post")
|
||||
|
@ -628,3 +779,348 @@ net/http library.")
|
|||
(description "Arel is a SQL AST manager for Ruby. It simplifies the
|
||||
generation of complex SQL queries and is compatible with various RDBMSes.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public ruby-minitar
|
||||
(package
|
||||
(name "ruby-minitar")
|
||||
(version "0.5.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "minitar" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1vpdjfmdq1yc4i620frfp9af02ia435dnpj8ybsd7dc3rypkvbka"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; missing a gemspec
|
||||
(synopsis "Ruby library and utility for handling tar archives")
|
||||
(description
|
||||
"Archive::Tar::Minitar is a pure-Ruby library and command-line utility
|
||||
that provides the ability to deal with POSIX tar archive files.")
|
||||
(home-page "http://www.github.com/atoulme/minitar")
|
||||
(license (list license:gpl2+ license:ruby))))
|
||||
|
||||
(define-public ruby-mini-portile
|
||||
(package
|
||||
(name "ruby-mini-portile")
|
||||
(version "0.6.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "mini_portile" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0h3xinmacscrnkczq44s6pnhrp4nqma7k056x5wv5xixvf2wsq2w"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; tests require network access
|
||||
(synopsis "Ports system for Ruby developers")
|
||||
(description "Mini-portile is a port/recipe system for Ruby developers.
|
||||
It provides a standard way to compile against specific versions of libraries
|
||||
to reproduce user environments.")
|
||||
(home-page "http://github.com/flavorjones/mini_portile")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public ruby-nokogiri
|
||||
(package
|
||||
(name "ruby-nokogiri")
|
||||
(version "1.6.6.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "nokogiri" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1j4qv32qjh67dcrc1yy1h8sqjnny8siyy4s44awla8d6jk361h30"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
;; Tests fail because Nokogiri can only test with an installed extension,
|
||||
;; and also because many test framework dependencies are missing.
|
||||
'(#:tests? #f
|
||||
#:gem-flags (list "--" "--use-system-libraries"
|
||||
(string-append "--with-xml2-include="
|
||||
(assoc-ref %build-inputs "libxml2")
|
||||
"/include/libxml2" ))))
|
||||
(native-inputs
|
||||
`(("ruby-hoe" ,ruby-hoe)
|
||||
("ruby-rake-compiler", ruby-rake-compiler)))
|
||||
(inputs
|
||||
`(("zlib" ,zlib)
|
||||
("libxml2" ,libxml2)
|
||||
("libxslt" ,libxslt)))
|
||||
(propagated-inputs
|
||||
`(("ruby-mini-portile" ,ruby-mini-portile)))
|
||||
(synopsis "HTML, XML, SAX, and Reader parser for Ruby")
|
||||
(description "Nokogiri (鋸) parses and searches XML/HTML, and features
|
||||
both CSS3 selector and XPath 1.0 support.")
|
||||
(home-page "http://www.nokogiri.org/")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public ruby-method-source
|
||||
(package
|
||||
(name "ruby-method-source")
|
||||
(version "0.8.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "method_source" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1g5i4w0dmlhzd18dijlqw5gk27bv6dj2kziqzrzb7mpgxgsd1sf2"))))
|
||||
(build-system ruby-build-system)
|
||||
(native-inputs
|
||||
`(("ruby-bacon" ,ruby-bacon)
|
||||
("git" ,git)))
|
||||
(synopsis "Retrieve the source code for Ruby methods")
|
||||
(description "Method_source retrieves the source code for Ruby methods.
|
||||
Additionally, it can extract source code from Proc and Lambda objects or just
|
||||
extract comments.")
|
||||
(home-page "https://github.com/banister/method_source")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public ruby-coderay
|
||||
(package
|
||||
(name "ruby-coderay")
|
||||
(version "1.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "coderay" version))
|
||||
(sha256
|
||||
(base32
|
||||
"059wkzlap2jlkhg460pkwc1ay4v4clsmg1bp4vfzjzkgwdckr52s"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; missing test files
|
||||
(synopsis "Ruby syntax highlighting library")
|
||||
(description "Coderay is a Ruby library that provides syntax highlighting
|
||||
for select languages.")
|
||||
(home-page "http://coderay.rubychan.de")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public ruby-pry
|
||||
(package
|
||||
(name "ruby-pry")
|
||||
(version "0.10.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "pry" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1j0r5fm0wvdwzbh6d6apnp7c0n150hpm9zxpm5xvcgfqr36jaj8z"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; no tests
|
||||
(propagated-inputs
|
||||
`(("ruby-coderay" ,ruby-coderay)
|
||||
("ruby-method-source" ,ruby-method-source)
|
||||
("ruby-slop" ,ruby-slop-3)))
|
||||
(synopsis "Ruby REPL")
|
||||
(description "Pry is an IRB alternative and runtime developer console for
|
||||
Ruby. It features syntax highlighting, a plugin architecture, runtime
|
||||
invocation, and source and documentation browsing.")
|
||||
(home-page "http://pryrepl.org")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public ruby-thread-safe
|
||||
(package
|
||||
(name "ruby-thread-safe")
|
||||
(version "0.3.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "thread_safe" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1hq46wqsyylx5afkp6jmcihdpv4ynzzq9ygb6z2pb1cbz5js0gcr"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; needs simplecov, among others
|
||||
(synopsis "Thread-safe utilities for Ruby")
|
||||
(description "The thread_safe library provides thread-safe collections and
|
||||
utilities for Ruby.")
|
||||
(home-page "https://github.com/ruby-concurrency/thread_safe")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public ruby-tzinfo
|
||||
(package
|
||||
(name "ruby-tzinfo")
|
||||
(version "1.2.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "tzinfo" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1c01p3kg6xvy1cgjnzdfq45fggbwish8krd0h864jvbpybyx7cgx"))))
|
||||
(build-system ruby-build-system)
|
||||
(propagated-inputs
|
||||
`(("ruby-thread-safe" ,ruby-thread-safe)))
|
||||
(synopsis "Time zone library for Ruby")
|
||||
(description "TZInfo is a Ruby library that provides daylight savings
|
||||
aware transformations between times in different time zones.")
|
||||
(home-page "http://tzinfo.github.io")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public ruby-json
|
||||
(package
|
||||
(name "ruby-json")
|
||||
(version "1.8.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "json" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1nsby6ry8l9xg3yw4adlhk2pnc7i0h0rznvcss4vk3v74qg0k8lc"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments '(#:tests? #f)) ; dependency cycle with sdoc
|
||||
(synopsis "JSON library for Ruby")
|
||||
(description "This Ruby library provides a JSON implementation written as
|
||||
a native C extension.")
|
||||
(home-page "http://json-jruby.rubyforge.org/")
|
||||
(license (list license:ruby license:gpl2)))) ; GPL2 only
|
||||
|
||||
(define-public ruby-activesupport
|
||||
(package
|
||||
(name "ruby-activesupport")
|
||||
(version "4.2.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "activesupport" version))
|
||||
(sha256
|
||||
(base32
|
||||
"19n38rj6r1gyxgka18qvcxyla0fwan8a5p3ghq0pp8aj93sbmr6f"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; no tests
|
||||
(propagated-inputs
|
||||
`(("ruby-i18n" ,ruby-i18n)
|
||||
("ruby-json" ,ruby-json)
|
||||
("ruby-minitest" ,ruby-minitest)
|
||||
("ruby-thread-safe" ,ruby-thread-safe)
|
||||
("ruby-tzinfo" ,ruby-tzinfo)))
|
||||
(synopsis "Ruby on Rails utility library")
|
||||
(description "ActiveSupport is a toolkit of support libraries and Ruby
|
||||
core extensions extracted from the Rails framework. It includes support for
|
||||
multibyte strings, internationalization, time zones, and testing.")
|
||||
(home-page "http://www.rubyonrails.org")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public ruby-ox
|
||||
(package
|
||||
(name "ruby-ox")
|
||||
(version "2.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "ox" version))
|
||||
(sha256
|
||||
(base32
|
||||
"00i11xd4ayh7349rhgskajfxn0qzkb74ab01217zix9qcapssxax"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; no tests
|
||||
(synopsis "Optimized XML library for Ruby")
|
||||
(description
|
||||
"Optimized XML (Ox) is a fast XML parser and object serializer for Ruby
|
||||
written as a native C extension. It was designed to be an alternative to
|
||||
Nokogiri and other Ruby XML parsers for generic XML parsing and as an
|
||||
alternative to Marshal for Object serialization. ")
|
||||
(home-page "http://www.ohler.com/ox")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public ruby-pg
|
||||
(package
|
||||
(name "ruby-pg")
|
||||
(version "0.18.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "pg" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1axxbf6ij1iqi3i1r3asvjc80b0py5bz0m2wy5kdi5xkrpr82kpf"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
'(#:test-target "spec"))
|
||||
(native-inputs
|
||||
`(("ruby-rake-compiler" ,ruby-rake-compiler)
|
||||
("ruby-hoe" ,ruby-hoe)
|
||||
("ruby-rspec" ,ruby-rspec)))
|
||||
(inputs
|
||||
`(("postgresql" ,postgresql)))
|
||||
(synopsis "Ruby interface to PostgreSQL")
|
||||
(description "Pg is the Ruby interface to the PostgreSQL RDBMS. It works
|
||||
with PostgreSQL 8.4 and later.")
|
||||
(home-page "https://bitbucket.org/ged/ruby-pg")
|
||||
(license license:ruby)))
|
||||
|
||||
(define-public ruby-byebug
|
||||
(package
|
||||
(name "ruby-byebug")
|
||||
(version "6.0.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "byebug" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0537h9qbhr6csahmzyn4lk1g5b2lcligbzd21gfy93nx9lbfdnzc"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; no tests
|
||||
(synopsis "Debugger for Ruby 2")
|
||||
(description "Byebug is a Ruby 2 debugger implemented using the Ruby 2
|
||||
TracePoint C API for execution control and the Debug Inspector C API for call
|
||||
stack navigation. The core component provides support that front-ends can
|
||||
build on. It provides breakpoint handling and bindings for stack frames among
|
||||
other things and it comes with a command line interface.")
|
||||
(home-page "http://github.com/deivid-rodriguez/byebug")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public ruby-rack
|
||||
(package
|
||||
(name "ruby-rack")
|
||||
(version "1.6.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "rack" version))
|
||||
(sha256
|
||||
(base32
|
||||
"09bs295yq6csjnkzj7ncj50i6chfxrhmzg1pk6p0vd2lb9ac8pj5"))))
|
||||
(build-system ruby-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'check 'fix-tests
|
||||
(lambda _
|
||||
;; A few of the tests use the length of a file on disk for
|
||||
;; Content-Length and Content-Range headers. However, this file
|
||||
;; has a shebang in it which an earlier phase patches, growing
|
||||
;; the file size from 193 to 239 bytes when the store prefix is
|
||||
;; "/gnu/store".
|
||||
(let ((size-diff (- (string-length (which "ruby"))
|
||||
(string-length "/usr/bin/env ruby"))))
|
||||
(substitute* '("test/spec_file.rb")
|
||||
(("193")
|
||||
(number->string (+ 193 size-diff)))
|
||||
(("bytes(.)22-33" all delimiter)
|
||||
(string-append "bytes"
|
||||
delimiter
|
||||
(number->string (+ 22 size-diff))
|
||||
"-"
|
||||
(number->string (+ 33 size-diff))))))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("ruby-bacon" ,ruby-bacon)))
|
||||
(synopsis "Unified web application interface for Ruby")
|
||||
(description "Rack provides a minimal, modular and adaptable interface for
|
||||
developing web applications in Ruby. By wrapping HTTP requests and responses,
|
||||
it unifies the API for web servers, web frameworks, and software in between
|
||||
into a single method call.")
|
||||
(home-page "http://rack.github.io/")
|
||||
(license license:expat)))
|
||||
|
|
|
@ -43,24 +43,15 @@
|
|||
(define-public libssh
|
||||
(package
|
||||
(name "libssh")
|
||||
(version "0.6.3")
|
||||
(version "0.6.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://red.libssh.org/attachments/download/87/libssh-"
|
||||
(uri (string-append
|
||||
"https://red.libssh.org/attachments/download/121/libssh-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jyaj9h1iglvn02hrvcchbx8ycjpj8b91h8mi459k7q5jp2xgd9b"))
|
||||
(patches
|
||||
;; Apply the patch as discussed at
|
||||
;; <http://lists.gnu.org/archive/html/guix-devel/2014-10/msg00180.html>.
|
||||
(list (origin
|
||||
(uri
|
||||
"http://git.libssh.org/projects/libssh.git/patch/?id=a033b93c616f4a81afc3fc6a017396d507d96c19")
|
||||
(method url-fetch)
|
||||
(sha256
|
||||
(base32
|
||||
"16fdkjcnhc6j7qxz9575fzr9044927ws5259yh0xb9yv1q14j0vh")))))))
|
||||
"0b6wyx6bwbb8jpn8x4rhlrdiqwqrwrs0mxjmrnqykm9kw1ijgm8g"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags '("-DWITH_GCRYPT=ON")
|
||||
|
@ -68,10 +59,7 @@
|
|||
;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite.
|
||||
#:tests? #f))
|
||||
(inputs `(("zlib" ,zlib)
|
||||
;; Link against an older gcrypt, because libssh tries to access
|
||||
;; fields of 'gcry_thread_cbs' that are now private:
|
||||
;; src/threads.c:72:26: error: 'struct gcry_thread_cbs' has no member named 'mutex_init'
|
||||
("libgcrypt", libgcrypt-1.5)))
|
||||
("libgcrypt", libgcrypt)))
|
||||
(synopsis "SSH client library")
|
||||
(description
|
||||
"libssh is a C library implementing the SSHv2 and SSHv1 protocol for
|
||||
|
@ -188,15 +176,17 @@ Additionally, various channel-specific options can be negotiated.")
|
|||
(define-public guile-ssh
|
||||
(package
|
||||
(name "guile-ssh")
|
||||
(version "0.7.2")
|
||||
(version "0.8.0")
|
||||
(source (origin
|
||||
;; ftp://memory-heap.org/software/guile-ssh/guile-ssh-VERSION.tar.gz
|
||||
;; exists, but the server appears to be too slow and unreliable.
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/artyom-poptsov/libguile-ssh.git")
|
||||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32
|
||||
"1wcv10xv7ayrhrg77zyng6flknnlkzhni24nf8x9nic00zha8znk"))))
|
||||
"1ld2khzylaylhqfsfcvbxs95frvm8pkr7dq40ia1wwn9c349fcdv"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases (alist-cons-after
|
||||
|
@ -235,7 +225,7 @@ Additionally, various channel-specific options can be negotiated.")
|
|||
("which" ,which)))
|
||||
(inputs `(("guile" ,guile-2.0)
|
||||
("libssh" ,libssh)
|
||||
("libgcrypt" ,libgcrypt-1.5)))
|
||||
("libgcrypt" ,libgcrypt)))
|
||||
(synopsis "Guile bindings to libssh")
|
||||
(description
|
||||
"Guile-SSH is a library that provides access to the SSH protocol for
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system r)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages gcc)
|
||||
|
@ -67,7 +68,11 @@
|
|||
(add-before
|
||||
'check 'set-timezone
|
||||
;; Some tests require the timezone to be set.
|
||||
(lambda _ (setenv "TZ" "UTC") #t)))
|
||||
(lambda _ (setenv "TZ" "UTC") #t))
|
||||
(add-after 'build 'make-info
|
||||
(lambda _ (zero? (system* "make" "info"))))
|
||||
(add-after 'build 'install-info
|
||||
(lambda _ (zero? (system* "make" "install-info")))))
|
||||
#:configure-flags
|
||||
'("--with-blas=openblas"
|
||||
"--with-lapack"
|
||||
|
@ -83,11 +88,20 @@
|
|||
"--with-system-pcre"
|
||||
"--with-system-tre"
|
||||
"--with-system-xz")))
|
||||
;; R has some support for Java. When the JDK is available at configure
|
||||
;; time environment variables pointing to the JDK will be recorded under
|
||||
;; $R_HOME/etc and ./tools/getsp.java will be compiled which is used by "R
|
||||
;; CMD javareconf". "R CMD javareconf" appears to only be used to update
|
||||
;; the recorded environment variables in $R_HOME/etc. Refer to
|
||||
;; https://cran.r-project.org/doc/manuals/r-release/R-admin.html#Java-support
|
||||
;; for additional information.
|
||||
|
||||
;; As the JDK is a rather large input with only very limited effects on R,
|
||||
;; we decided to drop it.
|
||||
(native-inputs
|
||||
`(("bzip2" ,bzip2)
|
||||
("perl" ,perl)
|
||||
("pkg-config" ,pkg-config)
|
||||
("texlive" ,texlive) ; needed to make vignettes
|
||||
("texinfo" ,texinfo) ; for building HTML manuals
|
||||
("which" ,which) ; for tests/Examples/base-Ex.R
|
||||
("xz" ,xz)))
|
||||
|
@ -96,7 +110,6 @@
|
|||
("cairo" ,cairo)
|
||||
("gfortran" ,gfortran)
|
||||
("icu4c" ,icu4c)
|
||||
("icedtea6" ,icedtea6 "jdk")
|
||||
("lapack" ,lapack)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libpng" ,libpng)
|
||||
|
@ -119,3 +132,369 @@ and clustering. It also provides robust support for producing
|
|||
publication-quality data plots. A large amount of 3rd-party packages are
|
||||
available, greatly increasing its breadth and scope.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public r-colorspace
|
||||
(package
|
||||
(name "r-colorspace")
|
||||
(version "1.2-6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cran/src/contrib/colorspace_"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0y8n4ljwhbdvkysdwgqzcnpv107pb3px1jip3k6svv86p72nacds"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://cran.r-project.org/web/packages/colorspace")
|
||||
(synopsis "Color space manipulation")
|
||||
(description
|
||||
"This package carries out a mapping between assorted color spaces
|
||||
including RGB, HSV, HLS, CIEXYZ, CIELUV, HCL (polar CIELUV), CIELAB and polar
|
||||
CIELAB. Qualitative, sequential, and diverging color palettes based on HCL
|
||||
colors are provided.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public r-dichromat
|
||||
(package
|
||||
(name "r-dichromat")
|
||||
(version "2.0-0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cran/src/contrib/dichromat_"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1l8db1nk29ccqg3mkbafvfiw0775iq4gapysf88xq2zp6spiw59i"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://cran.r-project.org/web/packages/dichromat")
|
||||
(synopsis "Color schemes for dichromats")
|
||||
(description
|
||||
"Dichromat collapses red-green or green-blue distinctions to simulate the
|
||||
effects of different types of color-blindness.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public r-digest
|
||||
(package
|
||||
(name "r-digest")
|
||||
(version "0.6.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cran/src/contrib/digest_"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0m9grqv67hhf51lz10whymhw0g0d98466ka694kya5x95hn44qih"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://dirk.eddelbuettel.com/code/digest.html")
|
||||
(synopsis "Create cryptographic hash digests of R objects")
|
||||
(description
|
||||
"This package contains an implementation of a function 'digest()' for the
|
||||
creation of hash digests of arbitrary R objects (using the md5, sha-1,
|
||||
sha-256, crc32, xxhash and murmurhash algorithms) permitting easy comparison
|
||||
of R language objects, as well as a function 'hmac()' to create hash-based
|
||||
message authentication code.
|
||||
|
||||
Please note that this package is not meant to be deployed for cryptographic
|
||||
purposes for which more comprehensive (and widely tested) libraries such as
|
||||
OpenSSL should be used.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public r-gtable
|
||||
(package
|
||||
(name "r-gtable")
|
||||
(version "0.1.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cran/src/contrib/gtable_"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0k9hfj6r5y238gqh92s3cbdn34biczx3zfh79ix5xq0c5vkai2xh"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://cran.r-project.org/web/packages/gtable")
|
||||
(synopsis "R library to arrange grobs in tables")
|
||||
(description
|
||||
"Gtable is a collection of tools to make it easier to work with
|
||||
\"tables\" of grobs.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public r-labeling
|
||||
(package
|
||||
(name "r-labeling")
|
||||
(version "0.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cran/src/contrib/labeling_"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "13sk7zrrrzry6ky1bp8mmnzcl9jhvkig8j4id9nny7z993mnk00d"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://cran.r-project.org/web/packages/labeling")
|
||||
(synopsis "Axis labeling algorithms")
|
||||
(description "The labeling package provides a range of axis labeling
|
||||
algorithms.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public r-magrittr
|
||||
(package
|
||||
(name "r-magrittr")
|
||||
(version "1.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cran/src/contrib/magrittr_"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1s1ar6rag8m277qcqmdp02gn4awn9bdj9ax0r8s32i59mm1mki05"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://cran.r-project.org/web/packages/magrittr/index.html")
|
||||
(synopsis "A forward-pipe operator for R")
|
||||
(description
|
||||
"Magrittr provides a mechanism for chaining commands with a new
|
||||
forward-pipe operator, %>%. This operator will forward a value, or the result
|
||||
of an expression, into the next function call/expression. There is flexible
|
||||
support for the type of right-hand side expressions. For more information,
|
||||
see package vignette. To quote Rene Magritte, \"Ceci n'est pas un pipe.\"")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public r-munsell
|
||||
(package
|
||||
(name "r-munsell")
|
||||
(version "0.4.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cran/src/contrib/munsell_"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1bi5yi0i80778bbzx2rm4f0glpc34kvh24pwwfhm4v32izsqgrw4"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-colorspace" ,r-colorspace)))
|
||||
(home-page "http://cran.r-project.org/web/packages/munsell")
|
||||
(synopsis "Munsell colour system")
|
||||
(description
|
||||
"The Munsell package contains Functions for exploring and using the
|
||||
Munsell colour system.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public r-rcpp
|
||||
(package
|
||||
(name "r-rcpp")
|
||||
(version "0.12.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cran/src/contrib/Rcpp_"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "182109z0yc1snqgd833ssl2cix6cbq83bcxmy5344b15ym820y38"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://www.rcpp.org")
|
||||
(synopsis "Seamless R and C++ Integration")
|
||||
(description
|
||||
"The Rcpp package provides R functions as well as C++ classes which offer
|
||||
a seamless integration of R and C++. Many R data types and objects can be
|
||||
mapped back and forth to C++ equivalents which facilitates both writing of new
|
||||
code as well as easier integration of third-party libraries. Documentation
|
||||
about Rcpp is provided by several vignettes included in this package, via the
|
||||
'Rcpp Gallery' site at <http://gallery.rcpp.org>, the paper by Eddelbuettel
|
||||
and Francois (2011, JSS), and the book by Eddelbuettel (2013, Springer); see
|
||||
'citation(\"Rcpp\")' for details on these last two.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public r-plyr
|
||||
(package
|
||||
(name "r-plyr")
|
||||
(version "1.8.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cran/src/contrib/plyr_"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "06v4zxawpjz37rp2q2ii5q43g664z9s29j4ydn0cz3crn7lzl6pk"))))
|
||||
(build-system r-build-system)
|
||||
(native-inputs `(("r-rcpp" ,r-rcpp)))
|
||||
(home-page "http://had.co.nz/plyr")
|
||||
(synopsis "Tools for Splitting, Applying and Combining Data")
|
||||
(description
|
||||
"Plyr is a set of tools that solves a common set of problems: you need to
|
||||
break a big problem down into manageable pieces, operate on each piece and
|
||||
then put all the pieces back together. For example, you might want to fit a
|
||||
model to each spatial location or time point in your study, summarise data by
|
||||
panels or collapse high-dimensional arrays to simpler summary statistics.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public r-proto
|
||||
(package
|
||||
(name "r-proto")
|
||||
(version "0.3-10")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cran/src/contrib/proto_" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "03mvzi529y6kjcp9bkpk7zlgpcakb3iz73hca6rpjy14pyzl3nfh"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://r-proto.googlecode.com")
|
||||
(synopsis "Prototype object-based programming")
|
||||
(description
|
||||
"Proto is an object oriented system using object-based, also called
|
||||
prototype-based, rather than class-based object oriented ideas.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public r-rcolorbrewer
|
||||
(package
|
||||
(name "r-rcolorbrewer")
|
||||
(version "1.1-2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cran/src/contrib/RColorBrewer_"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1pfcl8z1pnsssfaaz9dvdckyfnnc6rcq56dhislbf571hhg7isgk"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://cran.r-project.org/web/packages/RColorBrewer")
|
||||
(synopsis "ColorBrewer palettes")
|
||||
(description
|
||||
"This package provides color schemes for maps (and other graphics)
|
||||
designed by Cynthia Brewer as described at http://colorbrewer2.org")
|
||||
;; Includes code licensed under bsd-4
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public r-stringi
|
||||
(package
|
||||
(name "r-stringi")
|
||||
(version "0.5-5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://cran/src/contrib/stringi_"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"183wrrjhpgl1wbnn9lhghyvhz7l2mc64mpcmzplckal7y9j7pmhw"))))
|
||||
(build-system r-build-system)
|
||||
(inputs `(("icu4c" ,icu4c)))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(home-page "http://stringi.rexamine.com/")
|
||||
(synopsis "Character string processing facilities")
|
||||
(description
|
||||
"This package allows for fast, correct, consistent, portable, as well as
|
||||
convenient character string/text processing in every locale and any native
|
||||
encoding. Owing to the use of the ICU library, the package provides R users
|
||||
with platform-independent functions known to Java, Perl, Python, PHP, and Ruby
|
||||
programmers. Among available features there are: pattern searching
|
||||
(e.g. via regular expressions), random string generation, string collation,
|
||||
transliteration, concatenation, date-time formatting and parsing, etc.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public r-stringr
|
||||
(package
|
||||
(name "r-stringr")
|
||||
(version "1.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cran/src/contrib/stringr_"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0jnz6r9yqyf7dschr2fnn1slg4wn6b4ik5q00j4zrh43bfw7s9pq"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-magrittr" ,r-magrittr)
|
||||
("r-stringi" ,r-stringi)))
|
||||
(home-page "https://github.com/hadley/stringr")
|
||||
(synopsis "Simple, consistent wrappers for common string operations")
|
||||
(description
|
||||
"Stringr is a consistent, simple and easy to use set of wrappers around
|
||||
the fantastic 'stringi' package. All function and argument names (and
|
||||
positions) are consistent, all functions deal with \"NA\"'s and zero length
|
||||
vectors in the same way, and the output from one function is easy to feed into
|
||||
the input of another.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public r-reshape2
|
||||
(package
|
||||
(name "r-reshape2")
|
||||
(version "1.4.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cran/src/contrib/reshape2_"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0hl082dyk3pk07nqprpn5dvnrkqhnf6zjnjig1ijddxhlmsrzm7v"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-plyr" ,r-plyr)
|
||||
("r-rcpp" ,r-rcpp)
|
||||
("r-stringr" ,r-stringr)))
|
||||
(home-page "https://github.com/hadley/reshape")
|
||||
(synopsis "Flexibly reshape data: a reboot of the \"reshape\" package")
|
||||
(description
|
||||
"Reshape2 is an R library to flexibly restructure and aggregate data
|
||||
using just two functions: melt and dcast (or acast).")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public r-scales
|
||||
(package
|
||||
(name "r-scales")
|
||||
(version "0.2.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cran/src/contrib/scales_"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "12xrmn1vh64dl46bq7n7pa427aicb2ifjrby9in3m32nyvir0kac"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-dichromat" ,r-dichromat)
|
||||
("r-labeling" ,r-labeling)
|
||||
("r-munsell" ,r-munsell)
|
||||
("r-plyr" ,r-plyr)
|
||||
("r-rcolorbrewer" ,r-rcolorbrewer)
|
||||
("r-rcpp" ,r-rcpp)))
|
||||
(home-page "https://github.com/hadley/scales")
|
||||
(synopsis "Scale functions for visualization")
|
||||
(description
|
||||
"This package provides graphical scales that map data to aesthetics, and
|
||||
provides methods for automatically determining breaks and labels for axes and
|
||||
legends.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public r-ggplot2
|
||||
(package
|
||||
(name "r-ggplot2")
|
||||
(version "1.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cran/src/contrib/ggplot2_"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0794kjqi3lrxb33lr1mykd58959hlgkhdn259vj8fxrh65mqw920"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-digest" ,r-digest)
|
||||
("r-gtable" ,r-gtable)
|
||||
("r-plyr" ,r-plyr)
|
||||
("r-proto" ,r-proto)
|
||||
("r-reshape2" ,r-reshape2)
|
||||
("r-scales" ,r-scales)))
|
||||
(home-page "http://ggplot2.org")
|
||||
(synopsis "An implementation of the grammar of graphics")
|
||||
(description
|
||||
"Ggplot2 is an implementation of the grammar of graphics in R. It
|
||||
combines the advantages of both base and lattice graphics: conditioning and
|
||||
shared axes are handled automatically, and you can still build up a plot step
|
||||
by step from multiple data sources. It also implements a sophisticated
|
||||
multidimensional conditioning system and a consistent interface to map data to
|
||||
aesthetic attributes.")
|
||||
(license license:gpl2+)))
|
||||
|
|
|
@ -98,24 +98,6 @@ changes to project files over time. It supports both a distributed workflow
|
|||
as well as the classic centralized workflow.")
|
||||
(license gpl2+)))
|
||||
|
||||
(define (package-transitive-propagated-labels* package)
|
||||
"Return a list of the input labels of PACKAGE and its transitive inputs."
|
||||
(let ((name (package-name package)))
|
||||
`(,name
|
||||
,@(map (match-lambda
|
||||
((label (? package? _) . _)
|
||||
label))
|
||||
(package-transitive-propagated-inputs package)))))
|
||||
|
||||
(define (package-propagated-input-refs inputs packages)
|
||||
"Return a list of (assoc-ref INPUTS <package-name>) for each package in
|
||||
PACKAGES and their propagated inputs."
|
||||
(map (lambda (l)
|
||||
`(assoc-ref ,inputs ,l))
|
||||
(delete-duplicates ;XXX: efficiency
|
||||
(append-map package-transitive-propagated-labels*
|
||||
packages))))
|
||||
|
||||
(define-public git
|
||||
;; Keep in sync with 'git-manpages'!
|
||||
(package
|
||||
|
@ -238,11 +220,13 @@ PACKAGES and their propagated inputs."
|
|||
`("PERL5LIB" ":" prefix
|
||||
,(map (lambda (o) (string-append o "/lib/perl5/site_perl"))
|
||||
(list
|
||||
,@(package-propagated-input-refs
|
||||
,@(transitive-input-references
|
||||
'inputs
|
||||
(list perl-authen-sasl
|
||||
perl-net-smtp-ssl
|
||||
perl-io-socket-ssl))))))
|
||||
(map (lambda (l)
|
||||
(assoc l (inputs)))
|
||||
'("perl-authen-sasl"
|
||||
"perl-net-smtp-ssl"
|
||||
"perl-io-socket-ssl")))))))
|
||||
|
||||
;; Tell 'git-submodule' where Perl is.
|
||||
(wrap-program git-sm
|
||||
|
|
|
@ -370,14 +370,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
|
|||
(define-public ffmpeg
|
||||
(package
|
||||
(name "ffmpeg")
|
||||
(version "2.7.2")
|
||||
(version "2.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.ffmpeg.org/releases/ffmpeg-"
|
||||
version ".tar.bz2"))
|
||||
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1wlygd0jp34dk4qagi4h9psn4yk8zgyj7zy9lrpm5332mm87bsvw"))))
|
||||
"10l1iwc01k1algk2v4vzsrahdvqjmjfi3qazm2cwism0d8hsfg4r"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("fontconfig" ,fontconfig)
|
||||
|
@ -403,7 +403,6 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
|
|||
("zlib", zlib)))
|
||||
(native-inputs
|
||||
`(("bc" ,bc)
|
||||
("bzip2" ,bzip2)
|
||||
("perl" ,perl)
|
||||
("pkg-config" ,pkg-config)
|
||||
("texinfo" ,texinfo)
|
||||
|
@ -692,7 +691,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
|
|||
`(("alsa-lib" ,alsa-lib)
|
||||
("enca" ,enca)
|
||||
("ffmpeg" ,ffmpeg)
|
||||
("jack" ,jack-2)
|
||||
("jack" ,jack-1)
|
||||
("ladspa" ,ladspa)
|
||||
("lcms" ,lcms)
|
||||
("libass" ,libass)
|
||||
|
@ -792,15 +791,15 @@ projects while introducing many more.")
|
|||
(define-public youtube-dl
|
||||
(package
|
||||
(name "youtube-dl")
|
||||
(version "2015.08.16.1")
|
||||
(version "2015.09.03")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://youtube-dl.org/downloads/"
|
||||
(uri (string-append "https://youtube-dl.org/downloads/"
|
||||
version "/youtube-dl-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04g78anvy519pj8m8ys1ifmnmp1x3i9bw3afwqjch71n9f77papy"))))
|
||||
"0wxjbqr07rm26iih12yhv0qwspfrg9safhgnrp8misqjjk4fz86z"))))
|
||||
(build-system python-build-system)
|
||||
(inputs `(("setuptools" ,python-setuptools)))
|
||||
(home-page "http://youtube-dl.org")
|
||||
|
|
|
@ -169,6 +169,10 @@ traversing network address translators (NATs) and firewalls.")
|
|||
(base32
|
||||
"08ds8s32cjslms1q227ihd6jz35583v378ij4pknfa5xngfijhrb"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
'("--sysconfdir=/etc"
|
||||
"--localstatedir=/var")))
|
||||
(inputs `(("zlib" ,zlib)
|
||||
("lzo" ,lzo)
|
||||
("openssl" ,openssl)))
|
||||
|
|
|
@ -663,6 +663,59 @@ minimum to provide high performance operation.")
|
|||
;; bundled CuTest framework uses a different non-copyleft license.
|
||||
(license (list l:asl2.0 (l:non-copyleft "file://test/CuTest-README.txt")))))
|
||||
|
||||
(define-public sassc
|
||||
;; libsass must be statically linked and it isn't included in the sassc
|
||||
;; release tarballs, hence this odd package recipe.
|
||||
(let* ((version "3.2.5")
|
||||
(libsass
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/sass/libsass/archive/"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append "libsass-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1x25k6p1s1yzsdpzb7bzh8japilmi1mk3z96q66pycbinj9z9is4")))))
|
||||
(package
|
||||
(name "sassc")
|
||||
(version version)
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/sass/sassc/archive/"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append "sassc-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1xf3w75w840rj0nx375rxi7mcv1ngqqq8p3zrzjlyx8jfpnldmv5"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags '("CC=gcc")
|
||||
#:test-target "test"
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-after 'unpack 'unpack-libsass-and-set-path
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(and (zero? (system* "tar" "xvf" (assoc-ref inputs "libsass")))
|
||||
(begin
|
||||
(setenv "SASS_LIBSASS_PATH"
|
||||
(string-append (getcwd) "/libsass-" ,version))
|
||||
#t))))
|
||||
(replace 'install ; no install target
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((bin (string-append (assoc-ref outputs "out") "/bin")))
|
||||
(mkdir-p bin)
|
||||
(copy-file "bin/sassc" (string-append bin "/sassc"))
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("libsass" ,libsass)))
|
||||
(synopsis "CSS pre-processor")
|
||||
(description "SassC is a compiler written in C for the CSS pre-processor
|
||||
language known as SASS.")
|
||||
(home-page "http://sass-lang.com/libsass")
|
||||
(license l:expat))))
|
||||
|
||||
|
||||
(define-public perl-apache-logformat-compiler
|
||||
(package
|
||||
|
@ -1620,6 +1673,39 @@ with Encode::decode(locale => $string).")
|
|||
which can be used to parse directory listings.")
|
||||
(home-page "http://search.cpan.org/~gaas/File-Listing/")))
|
||||
|
||||
(define-public perl-finance-quote
|
||||
(package
|
||||
(name "perl-finance-quote")
|
||||
(version "1.37")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://cpan.metacpan.org/authors/id/E/EC/ECOCODE/"
|
||||
"Finance-Quote-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1b6pbh7f76fb5sa4f0lhx085xy55pprz5v7z7li7pqiyw7i4f4bf"))
|
||||
(patches (list
|
||||
(search-patch "perl-finance-quote-unuse-mozilla-ca.patch")))))
|
||||
(build-system perl-build-system)
|
||||
(propagated-inputs
|
||||
`(("perl-datetime" ,perl-datetime)
|
||||
("perl-html-parser" ,perl-html-parser)
|
||||
("perl-html-tableextract" ,perl-html-tableextract)
|
||||
("perl-html-tree" ,perl-html-tree)
|
||||
("perl-http-cookies" ,perl-http-cookies)
|
||||
("perl-http-message" ,perl-http-message)
|
||||
("perl-json" ,perl-json)
|
||||
("perl-libwww" ,perl-libwww)
|
||||
("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
|
||||
("perl-uri" ,perl-uri)))
|
||||
(home-page "http://search.cpan.org/dist/Finance-Quote")
|
||||
(synopsis "Stock and mutual fund quotes")
|
||||
(description
|
||||
"Finance::Quote gets stock quotes from various internet sources, including
|
||||
Yahoo! Finance, Fidelity Investments, and the Australian Stock Exchange.")
|
||||
(license l:gpl2)))
|
||||
|
||||
(define-public perl-gssapi
|
||||
(package
|
||||
(name "perl-gssapi")
|
||||
|
@ -1643,6 +1729,28 @@ which can be used to parse directory listings.")
|
|||
described in RFC 2744.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public perl-html-element-extended
|
||||
(package
|
||||
(name "perl-html-element-extended")
|
||||
(version "1.18")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://cpan/authors/id/M/MS/MSISK/"
|
||||
"HTML-Element-Extended-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0axknss8c368r5i082yhkfj8mq0w4nglfrpcxcayyzzj13qimvzk"))))
|
||||
(build-system perl-build-system)
|
||||
(propagated-inputs
|
||||
`(("perl-html-tree" ,perl-html-tree)))
|
||||
(home-page "http://search.cpan.org/dist/HTML-Element-Extended")
|
||||
(synopsis "Manipulate tables of HTML::Element")
|
||||
(description
|
||||
"HTML::Element::Extended is a Perl extension for manipulating a table
|
||||
composed of HTML::Element style components.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public perl-html-form
|
||||
(package
|
||||
(name "perl-html-form")
|
||||
|
@ -1691,6 +1799,29 @@ described in RFC 2744.")
|
|||
syntactic legitmacy.")
|
||||
(license l:artistic2.0)))
|
||||
|
||||
(define-public perl-html-tableextract
|
||||
(package
|
||||
(name "perl-html-tableextract")
|
||||
(version "2.13")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://cpan.metacpan.org/authors/id/M/MS/MSISK/"
|
||||
"HTML-TableExtract-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"01jimmss3q68a89696wmclvqwb2ybz6xgabpnbp6mm6jcni82z8a"))))
|
||||
(build-system perl-build-system)
|
||||
(propagated-inputs
|
||||
`(("perl-html-element-extended" ,perl-html-element-extended)
|
||||
("perl-html-parser" ,perl-html-parser)))
|
||||
(home-page "http://search.cpan.org/dist/HTML-TableExtract")
|
||||
(synopsis "Extract contents from HTML tables")
|
||||
(description
|
||||
"HTML::TableExtract is a Perl module for extracting the content contained
|
||||
in tables within an HTML document, either as text or encoded element trees.")
|
||||
(license (package-license perl))))
|
||||
|
||||
(define-public perl-html-tree
|
||||
(package
|
||||
(name "perl-html-tree")
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
|
||||
;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
|
||||
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -21,6 +23,8 @@
|
|||
#:use-module (guix packages)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system haskell)
|
||||
#:use-module (gnu packages haskell)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages perl)
|
||||
|
@ -143,3 +147,78 @@ commands would.")
|
|||
from scratch. i3 is primarily targeted at advanced users and
|
||||
developers.")
|
||||
(license bsd-3)))
|
||||
|
||||
(define-public xmonad
|
||||
(package
|
||||
(name "xmonad")
|
||||
(version "0.11.1")
|
||||
(synopsis "Tiling window manager")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://hackage.haskell.org/package/xmonad/"
|
||||
"xmonad-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1pfjssamiwpwjp1qqkm9m9p9s35pv381m0cwg6jxg0ppglibzq1r"))))
|
||||
(build-system haskell-build-system)
|
||||
(inputs
|
||||
`(("ghc-mtl" ,ghc-mtl)
|
||||
("ghc-utf8-string" ,ghc-utf8-string)
|
||||
("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
|
||||
("ghc-x11" ,ghc-x11)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after
|
||||
'install 'install-xsession
|
||||
(lambda _
|
||||
(let* ((xsessions (string-append %output "/share/xsessions")))
|
||||
(mkdir-p xsessions)
|
||||
(call-with-output-file
|
||||
(string-append xsessions "/xmonad.desktop")
|
||||
(lambda (port)
|
||||
(format port "~
|
||||
[Desktop Entry]~@
|
||||
Name=~a~@
|
||||
Comment=~a~@
|
||||
Exec=~a/bin/xmonad~@
|
||||
Type=Application~%" ,name ,synopsis %output)))))))))
|
||||
(home-page "http://xmonad.org")
|
||||
(description
|
||||
"Xmonad is a tiling window manager for X. Windows are arranged
|
||||
automatically to tile the screen without gaps or overlap, maximising screen
|
||||
use. All features of the window manager are accessible from the keyboard: a
|
||||
mouse is strictly optional. Xmonad is written and extensible in Haskell.
|
||||
Custom layout algorithms, and other extensions, may be written by the user in
|
||||
config files. Layouts are applied dynamically, and different layouts may be
|
||||
used on each workspace. Xinerama is fully supported, allowing windows to be
|
||||
tiled on several screens.")
|
||||
(license bsd-3)))
|
||||
|
||||
(define-public ghc-xmonad-contrib
|
||||
(package
|
||||
(name "ghc-xmonad-contrib")
|
||||
(version "0.11.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://hackage.haskell.org/package/xmonad-contrib/"
|
||||
"xmonad-contrib-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"14h9vr33yljymswj50wbimav263y9abdcgi07mvfis0zd08rxqxa"))))
|
||||
(build-system haskell-build-system)
|
||||
(propagated-inputs
|
||||
`(("ghc-mtl" ,ghc-mtl)
|
||||
("ghc-random" ,ghc-random)
|
||||
("ghc-utf8-string" ,ghc-utf8-string)
|
||||
("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
|
||||
("ghc-x11" ,ghc-x11)
|
||||
("ghc-x11-xft" ,ghc-x11-xft)
|
||||
("xmonad" ,xmonad)))
|
||||
(home-page "http://xmonad.org")
|
||||
(synopsis "Third party extensions for xmonad")
|
||||
(description
|
||||
"Third party tiling algorithms, configurations, and scripts to Xmonad, a
|
||||
tiling window manager for X.")
|
||||
(license bsd-3)))
|
||||
|
|
|
@ -38,7 +38,8 @@
|
|||
#:use-module (gnu packages gstreamer)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages photo)
|
||||
#:use-module (gnu packages pcre))
|
||||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages pulseaudio))
|
||||
|
||||
(define-public gtk-xfce-engine
|
||||
(package
|
||||
|
@ -146,8 +147,9 @@ storage system.")
|
|||
`(("pkg-config" ,pkg-config)
|
||||
("intltool" ,intltool)))
|
||||
(propagated-inputs
|
||||
`(("gtk+-2" ,gtk+-2) ; required by libxfce4ui-1.pc
|
||||
("gtk+-3" ,gtk+) ; required by libxfce4ui-2.pc
|
||||
;; libxfce4kbd-private-2.pc refers to all these.
|
||||
`(("gtk+" ,gtk+-2)
|
||||
("libxfce4util" ,libxfce4util)
|
||||
("xfconf" ,xfconf)))
|
||||
(inputs `(("libsm" ,libsm)
|
||||
|
@ -267,6 +269,8 @@ management D-Bus specification.")
|
|||
"1c4p3ckghvsad1sj5v8wmar5mh9cbhail9mmhad2f9pwwb10z4ih"))
|
||||
(patches (list (search-patch "xfce4-panel-plugins.patch")))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags '("--enable-gtk3")))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("intltool" ,intltool)))
|
||||
|
@ -349,6 +353,37 @@ handle text and images, and has a feature to execute actions on specific text by
|
|||
matching them against regular expressions.")
|
||||
(license (list gpl2+))))
|
||||
|
||||
(define-public xfce4-pulseaudio-plugin
|
||||
(package
|
||||
(name "xfce4-pulseaudio-plugin")
|
||||
(version "0.2.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://archive.xfce.org/src/panel-plugins/"
|
||||
name "/" (version-major+minor version) "/"
|
||||
name "-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0crvb2gyxbnlf46712arg3m2vqx81dixqhqdwss0bngpijy3ca78"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("exo" ,exo)
|
||||
("libnotify" ,libnotify)
|
||||
("libxfce4ui" ,libxfce4ui)
|
||||
("pulseaudio" ,pulseaudio)
|
||||
("xfce4-panel" ,xfce4-panel)))
|
||||
(home-page "http://git.xfce.org/panel-plugins/xfce4-pulseaudio-plugin/")
|
||||
(synopsis "PulseAudio panel plugin for Xfce")
|
||||
(description
|
||||
"Xfce PulseAudio plugin is a plugin for the Xfce panel which provides a
|
||||
convenient way to adjust the audio volume of the PulseAudio sound system and
|
||||
to an auto mixer tool like pavucontrol. It can optionally handle multimedia
|
||||
keys for controlling the audio volume.")
|
||||
(license gpl2+)))
|
||||
|
||||
(define-public xfce4-appfinder
|
||||
(package
|
||||
(name "xfce4-appfinder")
|
||||
|
@ -417,7 +452,9 @@ allows you to shutdown the computer from Xfce.")
|
|||
"/src/" name "-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"108za1cmjslwzkdl76x9kwxkq8z734kg9nz8rxk057f10pqwxgh4"))))
|
||||
"108za1cmjslwzkdl76x9kwxkq8z734kg9nz8rxk057f10pqwxgh4"))
|
||||
(patches
|
||||
(list (search-patch "xfce4-settings-defaults.patch")))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
|
@ -631,15 +668,17 @@ on your desktop.")
|
|||
("thunar-volman" ,thunar-volman)
|
||||
("tumlber" ,tumbler)
|
||||
("xfce4-appfinder" ,xfce4-appfinder)
|
||||
("xfce4-battery-plugin" ,xfce4-battery-plugin)
|
||||
("xfce4-clipman-plugin" ,xfce4-clipman-plugin)
|
||||
("xfce4-panel" ,xfce4-panel)
|
||||
("xfce4-session" ,xfce4-session)
|
||||
("xfce4-settings" ,xfce4-settings)
|
||||
("xfce4-terminal" ,xfce4-terminal)
|
||||
("xfconf" ,xfconf)
|
||||
("xfdesktop" ,xfdesktop)
|
||||
("xfwm4" ,xfwm4)))
|
||||
("xfwm4" ,xfwm4)
|
||||
;; Panel plugins.
|
||||
("xfce4-battery-plugin" ,xfce4-battery-plugin)
|
||||
("xfce4-clipman-plugin" ,xfce4-clipman-plugin)
|
||||
("xfce4-pulseaudio-plugin" ,xfce4-pulseaudio-plugin)))
|
||||
(home-page "http://www.xfce.org/")
|
||||
(synopsis "Desktop environment (meta-package)")
|
||||
(description
|
||||
|
|
|
@ -467,3 +467,25 @@ Canonical XML (part of Libxml2) and Exclusive Canonical XML (part of
|
|||
Libxml2).")
|
||||
(license (license:x11-style "file://COPYING"
|
||||
"See 'COPYING' in the distribution."))))
|
||||
|
||||
(define-public minixml
|
||||
(package
|
||||
(name "minixml")
|
||||
(version "2.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.msweet.org/files/project3/mxml-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"14pzhlfidj5v1qbxy7a59yn4jz9pnjrs2zwalz228jsq7ijm9vfd"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ;no "check" target
|
||||
(home-page "http://www.minixml.org/")
|
||||
(synopsis "Small XML parsing library")
|
||||
(description
|
||||
"Mini-XML is a small C library to read and write XML files and strings in
|
||||
UTF-8 and UTF-16 encoding.")
|
||||
;; LGPL 2.0+ with additional exceptions for static linking
|
||||
(license license:lgpl2.0+)))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
|
||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -884,6 +885,9 @@ This is the GNU operating system, welcome!\n\n")))
|
|||
;; The LVM2 rules are needed as soon as LVM2 or the device-mapper is
|
||||
;; used, so enable them by default. The FUSE and ALSA rules are
|
||||
;; less critical, but handy.
|
||||
;;
|
||||
;; XXX Keep this in sync with the 'udev-service' call in
|
||||
;; %desktop-services.
|
||||
(udev-service #:rules (list lvm2 fuse alsa-utils crda)))))
|
||||
|
||||
;;; base.scm ends here
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
|
||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -24,12 +25,18 @@
|
|||
#:use-module (gnu services xorg)
|
||||
#:use-module (gnu services networking)
|
||||
#:use-module (gnu system shadow)
|
||||
#:use-module (gnu system linux) ; unix-pam-service
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages avahi)
|
||||
#:use-module (gnu packages wicd)
|
||||
#:use-module (gnu packages polkit)
|
||||
#:use-module ((gnu packages linux)
|
||||
#:select (lvm2 fuse alsa-utils crda))
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (ice-9 match)
|
||||
|
@ -39,6 +46,9 @@
|
|||
geoclue-application
|
||||
%standard-geoclue-applications
|
||||
geoclue-service
|
||||
polkit-service
|
||||
elogind-configuration
|
||||
elogind-service
|
||||
%desktop-services))
|
||||
|
||||
;;; Commentary:
|
||||
|
@ -372,6 +382,199 @@ site} for more information."
|
|||
(shell
|
||||
"/run/current-system/profile/sbin/nologin"))))))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Polkit privilege management service.
|
||||
;;;
|
||||
|
||||
(define* (polkit-service #:key (polkit polkit))
|
||||
"Return a service that runs the @command{polkit} privilege management
|
||||
service. By querying the @command{polkit} service, a privileged system
|
||||
component can know when it should grant additional capabilities to ordinary
|
||||
users. For example, an ordinary user can be granted the capability to suspend
|
||||
the system if the user is logged in locally."
|
||||
(with-monad %store-monad
|
||||
(return
|
||||
(service
|
||||
(documentation "Run the polkit privilege management service.")
|
||||
(provision '(polkit-daemon))
|
||||
(requirement '(dbus-system))
|
||||
|
||||
(start #~(make-forkexec-constructor
|
||||
(list (string-append #$polkit "/lib/polkit-1/polkitd"))))
|
||||
(stop #~(make-kill-destructor))
|
||||
|
||||
(user-groups (list (user-group
|
||||
(name "polkitd")
|
||||
(system? #t))))
|
||||
(user-accounts (list (user-account
|
||||
(name "polkitd")
|
||||
(group "polkitd")
|
||||
(system? #t)
|
||||
(comment "Polkit daemon user")
|
||||
(home-directory "/var/empty")
|
||||
(shell
|
||||
"/run/current-system/profile/sbin/nologin"))))
|
||||
|
||||
(pam-services (list (unix-pam-service "polkit-1")))))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Elogind login and seat management service.
|
||||
;;;
|
||||
|
||||
(define-record-type* <elogind-configuration> elogind-configuration
|
||||
make-elogind-configuration
|
||||
elogind-configuration
|
||||
(kill-user-processes? elogind-kill-user-processes?
|
||||
(default #f))
|
||||
(kill-only-users elogind-kill-only-users
|
||||
(default '()))
|
||||
(kill-exclude-users elogind-kill-exclude-users
|
||||
(default '("root")))
|
||||
(inhibit-delay-max-seconds elogind-inhibit-delay-max-seconds
|
||||
(default 5))
|
||||
(handle-power-key elogind-handle-power-key
|
||||
(default 'poweroff))
|
||||
(handle-suspend-key elogind-handle-suspend-key
|
||||
(default 'suspend))
|
||||
(handle-hibernate-key elogind-handle-hibernate-key
|
||||
;; (default 'hibernate)
|
||||
;; XXX Ignore it for now, since we don't
|
||||
;; yet handle resume-from-hibernation in
|
||||
;; our initrd.
|
||||
(default 'ignore))
|
||||
(handle-lid-switch elogind-handle-lid-switch
|
||||
(default 'suspend))
|
||||
(handle-lid-switch-docked elogind-handle-lid-switch-docked
|
||||
(default 'ignore))
|
||||
(power-key-ignore-inhibited? elogind-power-key-ignore-inhibited?
|
||||
(default #f))
|
||||
(suspend-key-ignore-inhibited? elogind-suspend-key-ignore-inhibited?
|
||||
(default #f))
|
||||
(hibernate-key-ignore-inhibited? elogind-hibernate-key-ignore-inhibited?
|
||||
(default #f))
|
||||
(lid-switch-ignore-inhibited? elogind-lid-switch-ignore-inhibited?
|
||||
(default #t))
|
||||
(holdoff-timeout-seconds elogind-holdoff-timeout-seconds
|
||||
(default 30))
|
||||
(idle-action elogind-idle-action
|
||||
(default 'ignore))
|
||||
(idle-action-seconds elogind-idle-action-seconds
|
||||
(default (* 30 60)))
|
||||
(runtime-directory-size-percent elogind-runtime-directory-size-percent
|
||||
(default 10))
|
||||
(runtime-directory-size elogind-runtime-directory-size
|
||||
(default #f))
|
||||
(remove-ipc? elogind-remove-ipc?
|
||||
(default #t))
|
||||
|
||||
(suspend-state elogind-suspend-state
|
||||
(default '("mem" "standby" "freeze")))
|
||||
(suspend-mode elogind-suspend-mode
|
||||
(default '()))
|
||||
(hibernate-state elogind-hibernate-state
|
||||
(default '("disk")))
|
||||
(hibernate-mode elogind-hibernate-mode
|
||||
(default '("platform" "shutdown")))
|
||||
(hybrid-sleep-state elogind-hybrid-sleep-state
|
||||
(default '("disk")))
|
||||
(hybrid-sleep-mode elogind-hybrid-sleep-mode
|
||||
(default
|
||||
'("suspend" "platform" "shutdown"))))
|
||||
|
||||
(define (elogind-configuration-file config)
|
||||
(define (yesno x)
|
||||
(match x
|
||||
(#t "yes")
|
||||
(#f "no")
|
||||
(_ (error "expected #t or #f, instead got:" x))))
|
||||
(define char-set:user-name
|
||||
(string->char-set "abcdefghijklmnopqrstuvwxyz0123456789_-"))
|
||||
(define (valid-list? l pred)
|
||||
(and-map (lambda (x) (string-every pred x)) l))
|
||||
(define (user-name-list users)
|
||||
(unless (valid-list? users char-set:user-name)
|
||||
(error "invalid user list" users))
|
||||
(string-join users " "))
|
||||
(define (enum val allowed)
|
||||
(unless (memq val allowed)
|
||||
(error "invalid value" val allowed))
|
||||
(symbol->string val))
|
||||
(define (non-negative-integer x)
|
||||
(unless (exact-integer? x) (error "not an integer" x))
|
||||
(when (negative? x) (error "negative number not allowed" x))
|
||||
(number->string x))
|
||||
(define handle-actions
|
||||
'(ignore poweroff reboot halt kexec suspend hibernate hybrid-sleep lock))
|
||||
(define (handle-action x)
|
||||
(enum x handle-actions))
|
||||
(define (sleep-list tokens)
|
||||
(unless (valid-list? tokens char-set:user-name)
|
||||
(error "invalid sleep list" tokens))
|
||||
(string-join tokens " "))
|
||||
(define-syntax ini-file-clause
|
||||
(syntax-rules ()
|
||||
((_ config (prop (parser getter)))
|
||||
(string-append prop "=" (parser (getter config)) "\n"))
|
||||
((_ config str)
|
||||
(string-append str "\n"))))
|
||||
(define-syntax-rule (ini-file config file clause ...)
|
||||
(text-file file (string-append (ini-file-clause config clause) ...)))
|
||||
(ini-file
|
||||
config "logind.conf"
|
||||
"[Login]"
|
||||
("KillUserProcesses" (yesno elogind-kill-user-processes?))
|
||||
("KillOnlyUsers" (user-name-list elogind-kill-only-users))
|
||||
("KillExcludeUsers" (user-name-list elogind-kill-exclude-users))
|
||||
("InhibitDelayMaxSecs" (non-negative-integer elogind-inhibit-delay-max-seconds))
|
||||
("HandlePowerKey" (handle-action elogind-handle-power-key))
|
||||
("HandleSuspendKey" (handle-action elogind-handle-suspend-key))
|
||||
("HandleHibernateKey" (handle-action elogind-handle-hibernate-key))
|
||||
("HandleLidSwitch" (handle-action elogind-handle-lid-switch))
|
||||
("HandleLidSwitchDocked" (handle-action elogind-handle-lid-switch-docked))
|
||||
("PowerKeyIgnoreInhibited" (yesno elogind-power-key-ignore-inhibited?))
|
||||
("SuspendKeyIgnoreInhibited" (yesno elogind-suspend-key-ignore-inhibited?))
|
||||
("HibernateKeyIgnoreInhibited" (yesno elogind-hibernate-key-ignore-inhibited?))
|
||||
("LidSwitchIgnoreInhibited" (yesno elogind-lid-switch-ignore-inhibited?))
|
||||
("HoldoffTimeoutSecs" (non-negative-integer elogind-holdoff-timeout-seconds))
|
||||
("IdleAction" (handle-action elogind-idle-action))
|
||||
("IdleActionSeconds" (non-negative-integer elogind-idle-action-seconds))
|
||||
("RuntimeDirectorySize"
|
||||
(identity
|
||||
(lambda (config)
|
||||
(match (elogind-runtime-directory-size-percent config)
|
||||
(#f (non-negative-integer (elogind-runtime-directory-size config)))
|
||||
(percent (string-append (non-negative-integer percent) "%"))))))
|
||||
("RemoveIpc" (yesno elogind-remove-ipc?))
|
||||
"[Sleep]"
|
||||
("SuspendState" (sleep-list elogind-suspend-state))
|
||||
("SuspendMode" (sleep-list elogind-suspend-mode))
|
||||
("HibernateState" (sleep-list elogind-hibernate-state))
|
||||
("HibernateMode" (sleep-list elogind-hibernate-mode))
|
||||
("HybridSleepState" (sleep-list elogind-hybrid-sleep-state))
|
||||
("HybridSleepMode" (sleep-list elogind-hybrid-sleep-mode))))
|
||||
|
||||
(define* (elogind-service #:key (elogind elogind)
|
||||
(config (elogind-configuration)))
|
||||
"Return a service that runs the @command{elogind} login and seat management
|
||||
service. The @command{elogind} service integrates with PAM to allow other
|
||||
system components to know the set of logged-in users as well as their session
|
||||
types (graphical, console, remote, etc.). It can also clean up after users
|
||||
when they log out."
|
||||
(mlet %store-monad ((config-file (elogind-configuration-file config)))
|
||||
(return
|
||||
(service
|
||||
(documentation "Run the elogind login and seat management service.")
|
||||
(provision '(elogind))
|
||||
(requirement '(dbus-system))
|
||||
|
||||
(start #~(make-forkexec-constructor
|
||||
(list (string-append #$elogind "/libexec/elogind/elogind"))
|
||||
#:environment-variables
|
||||
(list (string-append "ELOGIND_CONF_FILE=" #$config-file))))
|
||||
(stop #~(make-kill-destructor))))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; The default set of desktop services.
|
||||
|
@ -383,23 +586,38 @@ site} for more information."
|
|||
(avahi-service)
|
||||
(wicd-service)
|
||||
(upower-service)
|
||||
;; FIXME: The colord and geoclue services could all be bus-activated
|
||||
;; by default, so they don't run at program startup. However, user
|
||||
;; creation and /var/lib.colord creation happen at service activation
|
||||
;; time, so we currently add them to the set of default services.
|
||||
;; FIXME: The colord, geoclue, and polkit services could all be
|
||||
;; bus-activated by default, so they don't run at program startup.
|
||||
;; However, user creation and /var/lib/colord creation happen at
|
||||
;; service activation time, so we currently add them to the set of
|
||||
;; default services.
|
||||
(colord-service)
|
||||
(geoclue-service)
|
||||
(dbus-service (list avahi wicd upower colord geoclue))
|
||||
(polkit-service)
|
||||
(elogind-service)
|
||||
(dbus-service (list avahi wicd upower colord geoclue polkit elogind))
|
||||
|
||||
(ntp-service)
|
||||
|
||||
(map (lambda (mservice)
|
||||
;; Provide an nscd ready to use nss-mdns.
|
||||
(mlet %store-monad ((service mservice))
|
||||
(if (memq 'nscd (service-provision service))
|
||||
(cond
|
||||
;; Provide an nscd ready to use nss-mdns.
|
||||
((memq 'nscd (service-provision service))
|
||||
(nscd-service (nscd-configuration)
|
||||
#:name-services (list nss-mdns))
|
||||
mservice)))
|
||||
#:name-services (list nss-mdns)))
|
||||
|
||||
;; Add more rules to udev-service.
|
||||
;;
|
||||
;; XXX Keep this in sync with the 'udev-service' call in
|
||||
;; %base-services. Here we intend only to add 'upower',
|
||||
;; 'colord', and 'elogind'.
|
||||
((memq 'udev (service-provision service))
|
||||
(udev-service #:rules
|
||||
(list lvm2 fuse alsa-utils crda
|
||||
upower colord elogind)))
|
||||
|
||||
(else mservice))))
|
||||
%base-services)))
|
||||
|
||||
;;; desktop.scm ends here
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
%devtmpfs-file-system
|
||||
%immutable-store
|
||||
%control-groups
|
||||
%elogind-file-systems
|
||||
|
||||
%base-file-systems
|
||||
%container-file-systems
|
||||
|
@ -258,6 +259,26 @@ UUID representation."
|
|||
'("cpuset" "cpu" "cpuacct" "memory" "devices" "freezer"
|
||||
"blkio" "perf_event" "hugetlb")))))
|
||||
|
||||
(define %elogind-file-systems
|
||||
;; We don't use systemd, but these file systems are needed for elogind,
|
||||
;; which was extracted from systemd.
|
||||
(list (file-system
|
||||
(device "none")
|
||||
(mount-point "/run/systemd")
|
||||
(type "tmpfs")
|
||||
(check? #f)
|
||||
(flags '(no-suid no-dev no-exec))
|
||||
(options "mode=0755")
|
||||
(create-mount-point? #t))
|
||||
(file-system
|
||||
(device "none")
|
||||
(mount-point "/run/user")
|
||||
(type "tmpfs")
|
||||
(check? #f)
|
||||
(flags '(no-suid no-dev no-exec))
|
||||
(options "mode=0755")
|
||||
(create-mount-point? #t))))
|
||||
|
||||
(define %base-file-systems
|
||||
;; List of basic file systems to be mounted. Note that /proc and /sys are
|
||||
;; currently mounted by the initrd.
|
||||
|
@ -265,6 +286,7 @@ UUID representation."
|
|||
%pseudo-terminal-file-system
|
||||
%shared-memory-file-system
|
||||
%immutable-store)
|
||||
%elogind-file-systems
|
||||
%control-groups))
|
||||
|
||||
;; File systems for Linux containers differ from %base-file-systems in that
|
||||
|
|
|
@ -349,7 +349,7 @@ Use Alt-F2 for documentation.
|
|||
parted ddrescue
|
||||
grub ;mostly so xrefs to its manual work
|
||||
cryptsetup
|
||||
wireless-tools iw wpa-supplicant-light iproute
|
||||
wireless-tools iw wpa-supplicant-minimal iproute
|
||||
;; XXX: We used to have GNU fdisk here, but as of version
|
||||
;; 2.0.0a, that pulls Guile 1.8, which takes unreasonable
|
||||
;; space; furthermore util-linux's fdisk is already
|
||||
|
|
|
@ -83,6 +83,8 @@
|
|||
(letrec-syntax ((utf8-locale (syntax-rules ()
|
||||
((_ name*)
|
||||
(locale-definition
|
||||
;; Note: We choose "utf8", which is the
|
||||
;; "normalized codeset".
|
||||
(name (string-append name* ".utf8"))
|
||||
(source name*)
|
||||
(charset "UTF-8")))))
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue