Merge branch 'master' into core-updates
This commit is contained in:
commit
c0eeccbc24
|
@ -43,6 +43,7 @@ MODULES = \
|
||||||
guix/sets.scm \
|
guix/sets.scm \
|
||||||
guix/download.scm \
|
guix/download.scm \
|
||||||
guix/git-download.scm \
|
guix/git-download.scm \
|
||||||
|
guix/hg-download.scm \
|
||||||
guix/monads.scm \
|
guix/monads.scm \
|
||||||
guix/monad-repl.scm \
|
guix/monad-repl.scm \
|
||||||
guix/gexp.scm \
|
guix/gexp.scm \
|
||||||
|
@ -82,6 +83,7 @@ MODULES = \
|
||||||
guix/build/cmake-build-system.scm \
|
guix/build/cmake-build-system.scm \
|
||||||
guix/build/emacs-build-system.scm \
|
guix/build/emacs-build-system.scm \
|
||||||
guix/build/git.scm \
|
guix/build/git.scm \
|
||||||
|
guix/build/hg.scm \
|
||||||
guix/build/glib-or-gtk-build-system.scm \
|
guix/build/glib-or-gtk-build-system.scm \
|
||||||
guix/build/gnu-build-system.scm \
|
guix/build/gnu-build-system.scm \
|
||||||
guix/build/gnu-dist.scm \
|
guix/build/gnu-dist.scm \
|
||||||
|
|
|
@ -2503,8 +2503,12 @@ The name of the package, as a string.
|
||||||
The version of the package, as a string.
|
The version of the package, as a string.
|
||||||
|
|
||||||
@item @code{source}
|
@item @code{source}
|
||||||
An origin object telling how the source code for the package should be
|
An object telling how the source code for the package should be
|
||||||
acquired (@pxref{origin Reference}).
|
acquired. Most of the time, this is an @code{origin} object, which
|
||||||
|
denotes a file fetched from the Internet (@pxref{origin Reference}). It
|
||||||
|
can also be any other ``file-like'' object such as a @code{local-file},
|
||||||
|
which denotes a file from the local file system (@pxref{G-Expressions,
|
||||||
|
@code{local-file}}).
|
||||||
|
|
||||||
@item @code{build-system}
|
@item @code{build-system}
|
||||||
The build system that should be used to build the package (@pxref{Build
|
The build system that should be used to build the package (@pxref{Build
|
||||||
|
@ -2557,7 +2561,7 @@ one @i{via} its @code{Requires} field.
|
||||||
|
|
||||||
Another example where @code{propagated-inputs} is useful is for languages
|
Another example where @code{propagated-inputs} is useful is for languages
|
||||||
that lack a facility to record the run-time search path akin to the
|
that lack a facility to record the run-time search path akin to the
|
||||||
@code{RUNPATH}of ELF files; this includes Guile, Python, Perl, GHC, and
|
@code{RUNPATH} of ELF files; this includes Guile, Python, Perl, GHC, and
|
||||||
more. To ensure that libraries written in those languages can find
|
more. To ensure that libraries written in those languages can find
|
||||||
library code they depend on at run time, run-time dependencies must be
|
library code they depend on at run time, run-time dependencies must be
|
||||||
listed in @code{propagated-inputs} rather than @code{inputs}.
|
listed in @code{propagated-inputs} rather than @code{inputs}.
|
||||||
|
@ -3498,7 +3502,7 @@ resulting text file refers to; it defaults to the empty list.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
@deffn {Monadic Procedure} interned-file @var{file} [@var{name}] @
|
@deffn {Monadic Procedure} interned-file @var{file} [@var{name}] @
|
||||||
[#:recursive? #t]
|
[#:recursive? #t] [#:select? (const #t)]
|
||||||
Return the name of @var{file} once interned in the store. Use
|
Return the name of @var{file} once interned in the store. Use
|
||||||
@var{name} as its store name, or the basename of @var{file} if
|
@var{name} as its store name, or the basename of @var{file} if
|
||||||
@var{name} is omitted.
|
@var{name} is omitted.
|
||||||
|
@ -3507,6 +3511,11 @@ When @var{recursive?} is true, the contents of @var{file} are added
|
||||||
recursively; if @var{file} designates a flat file and @var{recursive?}
|
recursively; if @var{file} designates a flat file and @var{recursive?}
|
||||||
is true, its contents are added, and its permission bits are kept.
|
is true, its contents are added, and its permission bits are kept.
|
||||||
|
|
||||||
|
When @var{recursive?} is true, call @code{(@var{select?} @var{file}
|
||||||
|
@var{stat})} for each directory entry, where @var{file} is the entry's
|
||||||
|
absolute file name and @var{stat} is the result of @code{lstat}; exclude
|
||||||
|
entries for which @var{select?} does not return true.
|
||||||
|
|
||||||
The example below adds a file to the store, under two different names:
|
The example below adds a file to the store, under two different names:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
|
@ -3795,7 +3804,7 @@ does not have any effect on what the G-expression does.
|
||||||
content is directly passed as a string.
|
content is directly passed as a string.
|
||||||
|
|
||||||
@deffn {Scheme Procedure} local-file @var{file} [@var{name}] @
|
@deffn {Scheme Procedure} local-file @var{file} [@var{name}] @
|
||||||
[#:recursive? #f]
|
[#:recursive? #f] [#:select? (const #t)]
|
||||||
Return an object representing local file @var{file} to add to the store; this
|
Return an object representing local file @var{file} to add to the store; this
|
||||||
object can be used in a gexp. If @var{file} is a relative file name, it is looked
|
object can be used in a gexp. If @var{file} is a relative file name, it is looked
|
||||||
up relative to the source file where this form appears. @var{file} will be added to
|
up relative to the source file where this form appears. @var{file} will be added to
|
||||||
|
@ -3805,6 +3814,11 @@ When @var{recursive?} is true, the contents of @var{file} are added recursively;
|
||||||
designates a flat file and @var{recursive?} is true, its contents are added, and its
|
designates a flat file and @var{recursive?} is true, its contents are added, and its
|
||||||
permission bits are kept.
|
permission bits are kept.
|
||||||
|
|
||||||
|
When @var{recursive?} is true, call @code{(@var{select?} @var{file}
|
||||||
|
@var{stat})} for each directory entry, where @var{file} is the entry's
|
||||||
|
absolute file name and @var{stat} is the result of @code{lstat}; exclude
|
||||||
|
entries for which @var{select?} does not return true.
|
||||||
|
|
||||||
This is the declarative counterpart of the @code{interned-file} monadic
|
This is the declarative counterpart of the @code{interned-file} monadic
|
||||||
procedure (@pxref{The Store Monad, @code{interned-file}}).
|
procedure (@pxref{The Store Monad, @code{interned-file}}).
|
||||||
@end deffn
|
@end deffn
|
||||||
|
@ -3898,7 +3912,7 @@ like this:
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
In this example, the resulting @file{/gnu/store/@dots{}-profile.sh} file
|
In this example, the resulting @file{/gnu/store/@dots{}-profile.sh} file
|
||||||
will references @var{coreutils}, @var{grep}, and @var{sed}, thereby
|
will reference @var{coreutils}, @var{grep}, and @var{sed}, thereby
|
||||||
preventing them from being garbage-collected during its lifetime.
|
preventing them from being garbage-collected during its lifetime.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
|
@ -3999,7 +4013,7 @@ for among the GNU distribution modules (@pxref{Package Modules}).
|
||||||
|
|
||||||
Alternatively, the @code{--expression} option may be used to specify a
|
Alternatively, the @code{--expression} option may be used to specify a
|
||||||
Scheme expression that evaluates to a package; this is useful when
|
Scheme expression that evaluates to a package; this is useful when
|
||||||
disambiguation among several same-named packages or package variants is
|
disambiguating among several same-named packages or package variants is
|
||||||
needed.
|
needed.
|
||||||
|
|
||||||
There may be zero or more @var{options}. The available options are
|
There may be zero or more @var{options}. The available options are
|
||||||
|
@ -4031,7 +4045,7 @@ the command-line tools.
|
||||||
|
|
||||||
@item --keep-failed
|
@item --keep-failed
|
||||||
@itemx -K
|
@itemx -K
|
||||||
Keep the build tree of failed builds. Thus, if a build fail, its build
|
Keep the build tree of failed builds. Thus, if a build fails, its build
|
||||||
tree is kept under @file{/tmp}, in a directory whose name is shown at
|
tree is kept under @file{/tmp}, in a directory whose name is shown at
|
||||||
the end of the build log. This is useful when debugging build issues.
|
the end of the build log. This is useful when debugging build issues.
|
||||||
|
|
||||||
|
@ -4545,7 +4559,9 @@ Import metadata from the @uref{https://pypi.python.org/, Python Package
|
||||||
Index}@footnote{This functionality requires Guile-JSON to be installed.
|
Index}@footnote{This functionality requires Guile-JSON to be installed.
|
||||||
@xref{Requirements}.}. Information is taken from the JSON-formatted
|
@xref{Requirements}.}. Information is taken from the JSON-formatted
|
||||||
description available at @code{pypi.python.org} and usually includes all
|
description available at @code{pypi.python.org} and usually includes all
|
||||||
the relevant information, including package dependencies.
|
the relevant information, including package dependencies. For maximum
|
||||||
|
efficiency, it is recommended to install the @command{unzip} utility, so
|
||||||
|
that the importer can unzip Python wheels and gather data from them.
|
||||||
|
|
||||||
The command below imports metadata for the @code{itsdangerous} Python
|
The command below imports metadata for the @code{itsdangerous} Python
|
||||||
package:
|
package:
|
||||||
|
@ -7985,7 +8001,7 @@ web site} for more information.
|
||||||
@node Database Services
|
@node Database Services
|
||||||
@subsubsection Database Services
|
@subsubsection Database Services
|
||||||
|
|
||||||
The @code{(gnu services databases)} module provides the following service.
|
The @code{(gnu services databases)} module provides the following services.
|
||||||
|
|
||||||
@deffn {Scheme Procedure} postgresql-service [#:postgresql postgresql] @
|
@deffn {Scheme Procedure} postgresql-service [#:postgresql postgresql] @
|
||||||
[#:config-file] [#:data-directory ``/var/lib/postgresql/data'']
|
[#:config-file] [#:data-directory ``/var/lib/postgresql/data'']
|
||||||
|
@ -7997,6 +8013,27 @@ The PostgreSQL daemon loads its runtime configuration from
|
||||||
@var{data-directory}.
|
@var{data-directory}.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
|
@deffn {Scheme Procedure} mysql-service [#:config (mysql-configuration)]
|
||||||
|
Return a service that runs @command{mysqld}, the MySQL or MariaDB
|
||||||
|
database server.
|
||||||
|
|
||||||
|
The optional @var{config} argument specifies the configuration for
|
||||||
|
@command{mysqld}, which should be a @code{<mysql-configuraiton>} object.
|
||||||
|
@end deffn
|
||||||
|
|
||||||
|
@deftp {Data Type} mysql-configuration
|
||||||
|
Data type representing the configuration of @var{mysql-service}.
|
||||||
|
|
||||||
|
@table @asis
|
||||||
|
@item @code{mysql} (default: @var{mariadb})
|
||||||
|
Package object of the MySQL database server, can be either @var{mariadb}
|
||||||
|
or @var{mysql}.
|
||||||
|
|
||||||
|
For MySQL, a temorary root password will be displayed at activation time.
|
||||||
|
For MariaDB, the root password is empty.
|
||||||
|
@end table
|
||||||
|
@end deftp
|
||||||
|
|
||||||
@node Mail Services
|
@node Mail Services
|
||||||
@subsubsection Mail Services
|
@subsubsection Mail Services
|
||||||
|
|
||||||
|
@ -9428,6 +9465,11 @@ Data type representing the configuration of dicod.
|
||||||
@item @code{dico} (default: @var{dico})
|
@item @code{dico} (default: @var{dico})
|
||||||
Package object of the GNU Dico dictionary server.
|
Package object of the GNU Dico dictionary server.
|
||||||
|
|
||||||
|
@item @code{interfaces} (default: @var{'("localhost")})
|
||||||
|
This is the list of IP addresses and ports and possibly socket file
|
||||||
|
names to listen to (@pxref{Server Settings, @code{listen} directive,,
|
||||||
|
dico, GNU Dico Manual}).
|
||||||
|
|
||||||
@item @code{databases} (default: @var{(list %dicod-database:gcide)})
|
@item @code{databases} (default: @var{(list %dicod-database:gcide)})
|
||||||
List of @code{<dicod-database>} objects denoting dictionaries to be served.
|
List of @code{<dicod-database>} objects denoting dictionaries to be served.
|
||||||
@end table
|
@end table
|
||||||
|
@ -11135,9 +11177,15 @@ something like ``Manipulate nucleotide sequence alignments'', which
|
||||||
hopefully gives the user a better idea of whether this is what they are
|
hopefully gives the user a better idea of whether this is what they are
|
||||||
looking for.
|
looking for.
|
||||||
|
|
||||||
@cindex Texinfo markup, in package descriptions
|
|
||||||
Descriptions should take between five and ten lines. Use full
|
Descriptions should take between five and ten lines. Use full
|
||||||
sentences, and avoid using acronyms without first introducing them.
|
sentences, and avoid using acronyms without first introducing them.
|
||||||
|
Please avoid marketing phrases such as ``world-leading'',
|
||||||
|
``industrial-strength'', and ``next-generation'', and avoid superlatives
|
||||||
|
like ``the most advanced''---they are not helpful to users looking for a
|
||||||
|
package and may even sound suspicious. Instead, try to be factual,
|
||||||
|
mentioning use cases and features.
|
||||||
|
|
||||||
|
@cindex Texinfo markup, in package descriptions
|
||||||
Descriptions can include Texinfo markup, which is useful to introduce
|
Descriptions can include Texinfo markup, which is useful to introduce
|
||||||
ornaments such as @code{@@code} or @code{@@dfn}, bullet lists, or
|
ornaments such as @code{@@code} or @code{@@dfn}, bullet lists, or
|
||||||
hyperlinks (@pxref{Overview,,, texinfo, GNU Texinfo}). However you
|
hyperlinks (@pxref{Overview,,, texinfo, GNU Texinfo}). However you
|
||||||
|
|
|
@ -132,6 +132,7 @@ GNU_SYSTEM_MODULES = \
|
||||||
%D%/packages/gcc.scm \
|
%D%/packages/gcc.scm \
|
||||||
%D%/packages/gd.scm \
|
%D%/packages/gd.scm \
|
||||||
%D%/packages/gdb.scm \
|
%D%/packages/gdb.scm \
|
||||||
|
%D%/packages/geo.scm \
|
||||||
%D%/packages/geeqie.scm \
|
%D%/packages/geeqie.scm \
|
||||||
%D%/packages/gettext.scm \
|
%D%/packages/gettext.scm \
|
||||||
%D%/packages/ghostscript.scm \
|
%D%/packages/ghostscript.scm \
|
||||||
|
@ -154,7 +155,6 @@ GNU_SYSTEM_MODULES = \
|
||||||
%D%/packages/graphviz.scm \
|
%D%/packages/graphviz.scm \
|
||||||
%D%/packages/groff.scm \
|
%D%/packages/groff.scm \
|
||||||
%D%/packages/grub.scm \
|
%D%/packages/grub.scm \
|
||||||
%D%/packages/grue-hunter.scm \
|
|
||||||
%D%/packages/gsasl.scm \
|
%D%/packages/gsasl.scm \
|
||||||
%D%/packages/gstreamer.scm \
|
%D%/packages/gstreamer.scm \
|
||||||
%D%/packages/gtk.scm \
|
%D%/packages/gtk.scm \
|
||||||
|
@ -212,6 +212,7 @@ GNU_SYSTEM_MODULES = \
|
||||||
%D%/packages/lisp.scm \
|
%D%/packages/lisp.scm \
|
||||||
%D%/packages/llvm.scm \
|
%D%/packages/llvm.scm \
|
||||||
%D%/packages/lout.scm \
|
%D%/packages/lout.scm \
|
||||||
|
%D%/packages/logging.scm \
|
||||||
%D%/packages/lsh.scm \
|
%D%/packages/lsh.scm \
|
||||||
%D%/packages/lsof.scm \
|
%D%/packages/lsof.scm \
|
||||||
%D%/packages/lua.scm \
|
%D%/packages/lua.scm \
|
||||||
|
@ -439,6 +440,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/avahi-localstatedir.patch \
|
%D%/packages/patches/avahi-localstatedir.patch \
|
||||||
%D%/packages/patches/avidemux-install-to-lib.patch \
|
%D%/packages/patches/avidemux-install-to-lib.patch \
|
||||||
%D%/packages/patches/avrdude-fix-libusb.patch \
|
%D%/packages/patches/avrdude-fix-libusb.patch \
|
||||||
|
%D%/packages/patches/awesome-reproducible-png.patch \
|
||||||
%D%/packages/patches/bash-completion-directories.patch \
|
%D%/packages/patches/bash-completion-directories.patch \
|
||||||
%D%/packages/patches/bigloo-gc-shebangs.patch \
|
%D%/packages/patches/bigloo-gc-shebangs.patch \
|
||||||
%D%/packages/patches/binutils-ld-new-dtags.patch \
|
%D%/packages/patches/binutils-ld-new-dtags.patch \
|
||||||
|
@ -673,6 +675,8 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/openssh-CVE-2015-8325.patch \
|
%D%/packages/patches/openssh-CVE-2015-8325.patch \
|
||||||
%D%/packages/patches/openssl-runpath.patch \
|
%D%/packages/patches/openssl-runpath.patch \
|
||||||
%D%/packages/patches/openssl-c-rehash-in.patch \
|
%D%/packages/patches/openssl-c-rehash-in.patch \
|
||||||
|
%D%/packages/patches/openssl-CVE-2016-2177.patch \
|
||||||
|
%D%/packages/patches/openssl-CVE-2016-2178.patch \
|
||||||
%D%/packages/patches/orpheus-cast-errors-and-includes.patch \
|
%D%/packages/patches/orpheus-cast-errors-and-includes.patch \
|
||||||
%D%/packages/patches/ots-no-include-missing-file.patch \
|
%D%/packages/patches/ots-no-include-missing-file.patch \
|
||||||
%D%/packages/patches/patchelf-page-size.patch \
|
%D%/packages/patches/patchelf-page-size.patch \
|
||||||
|
@ -761,6 +765,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/tcl-mkindex-deterministic.patch \
|
%D%/packages/patches/tcl-mkindex-deterministic.patch \
|
||||||
%D%/packages/patches/tclxml-3.2-install.patch \
|
%D%/packages/patches/tclxml-3.2-install.patch \
|
||||||
%D%/packages/patches/tcsh-fix-autotest.patch \
|
%D%/packages/patches/tcsh-fix-autotest.patch \
|
||||||
|
%D%/packages/patches/teensy-loader-cli-help.patch \
|
||||||
%D%/packages/patches/texi2html-document-encoding.patch \
|
%D%/packages/patches/texi2html-document-encoding.patch \
|
||||||
%D%/packages/patches/texi2html-i18n.patch \
|
%D%/packages/patches/texi2html-i18n.patch \
|
||||||
%D%/packages/patches/tidy-CVE-2015-5522+5523.patch \
|
%D%/packages/patches/tidy-CVE-2015-5522+5523.patch \
|
||||||
|
|
|
@ -202,7 +202,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
|
||||||
(define-public giac-xcas
|
(define-public giac-xcas
|
||||||
(package
|
(package
|
||||||
(name "giac-xcas")
|
(name "giac-xcas")
|
||||||
(version "1.2.2-41")
|
(version "1.2.2-59")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
;; "~parisse/giac" is not used because the maintainer regularly
|
;; "~parisse/giac" is not used because the maintainer regularly
|
||||||
|
@ -214,7 +214,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
|
||||||
"source/giac_" version ".tar.gz"))
|
"source/giac_" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"061a0p5l1qlb9iqk7n7yznhv2f3hvll1hrzjbhn81bf31f2wj6sq"))))
|
"02s774v2zg2ya43rm8s7bcwzrmp4wlmn8h2rlg4816zpfrjkrdn4"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||||
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
|
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
|
||||||
;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
|
||||||
|
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -100,7 +101,8 @@
|
||||||
("jack" ,jack-1)
|
("jack" ,jack-1)
|
||||||
("ladspa" ,ladspa)
|
("ladspa" ,ladspa)
|
||||||
("liblo" ,liblo)
|
("liblo" ,liblo)
|
||||||
("qt" ,qt)))
|
("qtbase" ,qtbase)
|
||||||
|
("qttools" ,qttools)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)))
|
`(("pkg-config" ,pkg-config)))
|
||||||
(home-page "http://alsamodular.sourceforge.net/")
|
(home-page "http://alsamodular.sourceforge.net/")
|
||||||
|
|
|
@ -3926,6 +3926,34 @@ clusters.")
|
||||||
(home-page "https://sourceforge.net/projects/pardre/")
|
(home-page "https://sourceforge.net/projects/pardre/")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public ruby-bio-kseq
|
||||||
|
(package
|
||||||
|
(name "ruby-bio-kseq")
|
||||||
|
(version "0.0.2")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (rubygems-uri "bio-kseq" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1xyaha46khb5jc6wzkbf7040jagac49jbimn0vcrzid0j8jdikrz"))))
|
||||||
|
(build-system ruby-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:test-target "spec"))
|
||||||
|
(native-inputs
|
||||||
|
`(("bundler" ,bundler)
|
||||||
|
("ruby-rspec" ,ruby-rspec)
|
||||||
|
("ruby-rake-compiler" ,ruby-rake-compiler)))
|
||||||
|
(inputs
|
||||||
|
`(("zlib" ,zlib)))
|
||||||
|
(synopsis "Ruby bindings for the kseq.h FASTA/Q parser")
|
||||||
|
(description
|
||||||
|
"@code{Bio::Kseq} provides ruby bindings to the @code{kseq.h} FASTA and
|
||||||
|
FASTQ parsing code. It provides a fast iterator over sequences and their
|
||||||
|
quality scores.")
|
||||||
|
(home-page "https://github.com/gusevfe/bio-kseq")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
(define-public bio-locus
|
(define-public bio-locus
|
||||||
(package
|
(package
|
||||||
(name "bio-locus")
|
(name "bio-locus")
|
||||||
|
@ -4991,6 +5019,38 @@ by UCSC (hg19, February 2009) and stored in Biostrings objects.")
|
||||||
provided by UCSC (mm9, July 2007) and stored in Biostrings objects.")
|
provided by UCSC (mm9, July 2007) and stored in Biostrings objects.")
|
||||||
(license license:artistic2.0)))
|
(license license:artistic2.0)))
|
||||||
|
|
||||||
|
(define-public r-bsgenome-mmusculus-ucsc-mm10
|
||||||
|
(package
|
||||||
|
(name "r-bsgenome-mmusculus-ucsc-mm10")
|
||||||
|
(version "1.4.0")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
;; We cannot use bioconductor-uri here because this tarball is
|
||||||
|
;; located under "data/annotation/" instead of "bioc/".
|
||||||
|
(uri (string-append "http://www.bioconductor.org/packages/"
|
||||||
|
"release/data/annotation/src/contrib/"
|
||||||
|
"BSgenome.Mmusculus.UCSC.mm10_"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"12s0nm2na9brjad4rn9l7d3db2aj8qa1xvz0y1k7gk08wayb6bkf"))))
|
||||||
|
(properties
|
||||||
|
`((upstream-name . "BSgenome.Mmusculus.UCSC.mm10")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
;; As this package provides little more than a very large data file it
|
||||||
|
;; doesn't make sense to build substitutes.
|
||||||
|
(arguments `(#:substitutable? #f))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-bsgenome" ,r-bsgenome)))
|
||||||
|
(home-page
|
||||||
|
"http://www.bioconductor.org/packages/BSgenome.Mmusculus.UCSC.mm10/")
|
||||||
|
(synopsis "Full genome sequences for Mouse")
|
||||||
|
(description
|
||||||
|
"This package provides full genome sequences for Mus
|
||||||
|
musculus (Mouse) as provided by UCSC (mm10, December 2011) and stored
|
||||||
|
in Biostrings objects.")
|
||||||
|
(license license:artistic2.0)))
|
||||||
|
|
||||||
(define-public r-bsgenome-celegans-ucsc-ce6
|
(define-public r-bsgenome-celegans-ucsc-ce6
|
||||||
(package
|
(package
|
||||||
(name "r-bsgenome-celegans-ucsc-ce6")
|
(name "r-bsgenome-celegans-ucsc-ce6")
|
||||||
|
@ -5127,68 +5187,71 @@ libraries for systems that do not have these available via other means.")
|
||||||
(license license:artistic2.0)))
|
(license license:artistic2.0)))
|
||||||
|
|
||||||
(define-public piranha
|
(define-public piranha
|
||||||
(package
|
;; There is no release tarball for the latest version. The latest commit is
|
||||||
(name "piranha")
|
;; older than one year at the time of this writing.
|
||||||
(version "1.1.3")
|
(let ((revision "1")
|
||||||
(source (origin
|
(commit "0466d364b71117d01e4471b74c514436cc281233"))
|
||||||
(method url-fetch)
|
(package
|
||||||
(uri (string-append "https://github.com/smithlabcode/piranha"
|
(name "piranha")
|
||||||
"/archive/svn/tags/piranha-"
|
(version (string-append "1.2.1-" revision "." (string-take commit 9)))
|
||||||
version ".tar.gz"))
|
(source (origin
|
||||||
(sha256
|
(method git-fetch)
|
||||||
(base32
|
(uri (git-reference
|
||||||
"1lczxff01n4139w7xwqamlb36g9hgrcy93gh03nqszhwb8ivsrqd"))))
|
(url "https://github.com/smithlabcode/piranha.git")
|
||||||
(build-system gnu-build-system)
|
(commit commit)))
|
||||||
(arguments
|
(sha256
|
||||||
`(#:test-target "test"
|
(base32
|
||||||
#:phases
|
"117dc0zf20c61jam69sk4abl57ah6yi6i7qra7d7y5zrbgk12q5n"))))
|
||||||
(modify-phases %standard-phases
|
(build-system gnu-build-system)
|
||||||
(add-after 'unpack 'copy-smithlab-cpp
|
(arguments
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
`(#:test-target "test"
|
||||||
(mkdir "src/smithlab_cpp")
|
#:phases
|
||||||
(for-each (lambda (file)
|
(modify-phases %standard-phases
|
||||||
(install-file file "./src/smithlab_cpp/"))
|
(add-after 'unpack 'copy-smithlab-cpp
|
||||||
(find-files (assoc-ref inputs "smithlab-cpp")))
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
#t))
|
|
||||||
(add-after 'install 'install-to-store
|
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
|
||||||
(let* ((out (assoc-ref outputs "out"))
|
|
||||||
(bin (string-append out "/bin")))
|
|
||||||
(mkdir-p bin)
|
|
||||||
(for-each (lambda (file)
|
(for-each (lambda (file)
|
||||||
(install-file file bin))
|
(install-file file "./src/smithlab_cpp/"))
|
||||||
(find-files "bin" ".*")))
|
(find-files (assoc-ref inputs "smithlab-cpp")))
|
||||||
#t)))
|
#t))
|
||||||
#:configure-flags
|
(add-after 'install 'install-to-store
|
||||||
(list (string-append "--with-bam_tools_headers="
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(assoc-ref %build-inputs "bamtools") "/include/bamtools")
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
(string-append "--with-bam_tools_library="
|
(bin (string-append out "/bin")))
|
||||||
(assoc-ref %build-inputs "bamtools") "/lib/bamtools"))))
|
(mkdir-p bin)
|
||||||
(inputs
|
(for-each (lambda (file)
|
||||||
`(("bamtools" ,bamtools)
|
(install-file file bin))
|
||||||
("samtools" ,samtools-0.1)
|
(find-files "bin" ".*")))
|
||||||
("gsl" ,gsl)
|
#t)))
|
||||||
("smithlab-cpp"
|
#:configure-flags
|
||||||
,(let ((commit "3723e2db438c51501d0423429ff396c3035ba46a"))
|
(list (string-append "--with-bam_tools_headers="
|
||||||
(origin
|
(assoc-ref %build-inputs "bamtools") "/include/bamtools")
|
||||||
(method git-fetch)
|
(string-append "--with-bam_tools_library="
|
||||||
(uri (git-reference
|
(assoc-ref %build-inputs "bamtools") "/lib/bamtools"))))
|
||||||
(url "https://github.com/smithlabcode/smithlab_cpp.git")
|
(inputs
|
||||||
(commit commit)))
|
`(("bamtools" ,bamtools)
|
||||||
(file-name (string-append "smithlab_cpp-" commit "-checkout"))
|
("samtools" ,samtools-0.1)
|
||||||
(sha256
|
("gsl" ,gsl)
|
||||||
(base32
|
("smithlab-cpp"
|
||||||
"0l4gvbwslw5ngziskja41c00x1r06l3yidv7y0xw9djibhykzy0g")))))))
|
,(let ((commit "3723e2db438c51501d0423429ff396c3035ba46a"))
|
||||||
(native-inputs
|
(origin
|
||||||
`(("python" ,python-2)))
|
(method git-fetch)
|
||||||
(home-page "https://github.com/smithlabcode/piranha")
|
(uri (git-reference
|
||||||
(synopsis "Peak-caller for CLIP-seq and RIP-seq data")
|
(url "https://github.com/smithlabcode/smithlab_cpp.git")
|
||||||
(description
|
(commit commit)))
|
||||||
"Piranha is a peak-caller for genomic data produced by CLIP-seq and
|
(file-name (string-append "smithlab_cpp-" commit "-checkout"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0l4gvbwslw5ngziskja41c00x1r06l3yidv7y0xw9djibhykzy0g")))))))
|
||||||
|
(native-inputs
|
||||||
|
`(("python" ,python-2)))
|
||||||
|
(home-page "https://github.com/smithlabcode/piranha")
|
||||||
|
(synopsis "Peak-caller for CLIP-seq and RIP-seq data")
|
||||||
|
(description
|
||||||
|
"Piranha is a peak-caller for genomic data produced by CLIP-seq and
|
||||||
RIP-seq experiments. It takes input in BED or BAM format and identifies
|
RIP-seq experiments. It takes input in BED or BAM format and identifies
|
||||||
regions of statistically significant read enrichment. Additional covariates
|
regions of statistically significant read enrichment. Additional covariates
|
||||||
may optionally be provided to further inform the peak-calling process.")
|
may optionally be provided to further inform the peak-calling process.")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+))))
|
||||||
|
|
||||||
(define-public pepr
|
(define-public pepr
|
||||||
(package
|
(package
|
||||||
|
|
|
@ -264,7 +264,7 @@ Language.")
|
||||||
(define-public mariadb
|
(define-public mariadb
|
||||||
(package
|
(package
|
||||||
(name "mariadb")
|
(name "mariadb")
|
||||||
(version "10.1.12")
|
(version "10.1.14")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://downloads.mariadb.org/f/"
|
(uri (string-append "https://downloads.mariadb.org/f/"
|
||||||
|
@ -272,7 +272,7 @@ Language.")
|
||||||
name "-" version ".tar.gz"))
|
name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1rzlc2ns84x540asbkgdp9562haxhlszfpdqh64i9pz4q1m4cpvr"))))
|
"04ysdbvj2qapfpaj7s5d2j3m8k9l0yb5k0c2yaini8jrl1s1krqq"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:configure-flags
|
'(#:configure-flags
|
||||||
|
@ -558,7 +558,7 @@ extremely small.")
|
||||||
(define-public perl-dbi
|
(define-public perl-dbi
|
||||||
(package
|
(package
|
||||||
(name "perl-dbi")
|
(name "perl-dbi")
|
||||||
(version "1.631")
|
(version "1.636")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -566,11 +566,11 @@ extremely small.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"04fmrnchhwi7jx4niaiv93vmi343hdm3xj04w9zr2m9hhqh782np"))))
|
"0v37vnr5p0bx396cj0lb5kb69jbryq2mspp602hbgd04gklxqzcg"))))
|
||||||
(build-system perl-build-system)
|
(build-system perl-build-system)
|
||||||
(synopsis "Database independent interface for Perl")
|
(synopsis "Database independent interface for Perl")
|
||||||
(description "This package provides an database interface for Perl.")
|
(description "This package provides an database interface for Perl.")
|
||||||
(home-page "http://search.cpan.org/~timb/DBI-1.631/DBI.pm")
|
(home-page "http://search.cpan.org/dist/DBI")
|
||||||
(license (package-license perl))))
|
(license (package-license perl))))
|
||||||
|
|
||||||
(define-public perl-dbix-class
|
(define-public perl-dbix-class
|
||||||
|
|
|
@ -83,7 +83,7 @@
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)
|
`(("pkg-config" ,pkg-config)
|
||||||
("qt" ,qt) ; for qmake
|
("qtbase" ,qtbase) ; for qmake
|
||||||
;; xdg-utils is supposed to be used for desktop integration, but it
|
;; xdg-utils is supposed to be used for desktop integration, but it
|
||||||
;; also creates lots of messages
|
;; also creates lots of messages
|
||||||
;; mkdir: cannot create directory '/homeless-shelter': Permission denied
|
;; mkdir: cannot create directory '/homeless-shelter': Permission denied
|
||||||
|
@ -121,7 +121,7 @@
|
||||||
("python2-pillow" ,python2-pillow)
|
("python2-pillow" ,python2-pillow)
|
||||||
("python2-pyqt" ,python2-pyqt)
|
("python2-pyqt" ,python2-pyqt)
|
||||||
("python2-sip" ,python2-sip)
|
("python2-sip" ,python2-sip)
|
||||||
("qt" ,qt)
|
("qtbase" ,qtbase)
|
||||||
("sqlite" ,sqlite)))
|
("sqlite" ,sqlite)))
|
||||||
(arguments
|
(arguments
|
||||||
`(#:python ,python-2
|
`(#:python ,python-2
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
;;; Copyright © 2016 David Thompson <davet@gnu.org>
|
;;; Copyright © 2016 David Thompson <davet@gnu.org>
|
||||||
;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
|
;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
|
||||||
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
|
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
|
||||||
|
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -2104,3 +2105,45 @@ There are plenty of differences between CIDER and SLIME, but the core ideas
|
||||||
are pretty much the same (and SLIME served as the principle inspiration for
|
are pretty much the same (and SLIME served as the principle inspiration for
|
||||||
CIDER).")
|
CIDER).")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public emacs-lua-mode
|
||||||
|
(package
|
||||||
|
(name "emacs-lua-mode")
|
||||||
|
(version "20151025")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"https://github.com/immerrr/lua-mode/archive/v"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0sbhfny5ib65cnx6xcy6h9bbw27mw034s8m9cca00bhxqaqi6p4v"))))
|
||||||
|
(build-system emacs-build-system)
|
||||||
|
(home-page "http://github.com/immerrr/lua-mode/")
|
||||||
|
(synopsis "Major mode for lua")
|
||||||
|
(description
|
||||||
|
"This Emacs package provides a mode for @uref{https://www.lua.org/,
|
||||||
|
Lua programing language}.")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
||||||
|
(define-public emacs-ebuild-mode
|
||||||
|
(package
|
||||||
|
(name "emacs-ebuild-mode")
|
||||||
|
(version "1.30")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"https://dev.gentoo.org/~ulm/emacs/ebuild-mode"
|
||||||
|
"-" version ".tar.xz"))
|
||||||
|
(file-name (string-append name "-" version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0vp7lq1kvmh1b2bms2x1kf2k76dy9m02d7cirkxpiglwaxa0h9vz"))))
|
||||||
|
(build-system emacs-build-system)
|
||||||
|
(home-page "https://devmanual.gentoo.org")
|
||||||
|
(synopsis "Major modes for Gentoo package files")
|
||||||
|
(description
|
||||||
|
"This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
|
||||||
|
news items, openrc and runscripts.")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
|
@ -232,6 +232,7 @@ optimizer; and it can produce photorealistic and design review images.")
|
||||||
(modules '((guix build utils)
|
(modules '((guix build utils)
|
||||||
(guix build download)
|
(guix build download)
|
||||||
(guix ftp-client)))
|
(guix ftp-client)))
|
||||||
|
(imported-modules modules)
|
||||||
(patches (search-patches "fastcap-mulSetup.patch"
|
(patches (search-patches "fastcap-mulSetup.patch"
|
||||||
"fastcap-mulGlobal.patch"))))
|
"fastcap-mulGlobal.patch"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
|
|
|
@ -273,7 +273,7 @@ Libraries with some extra bells and whistles.")
|
||||||
(define-public enlightenment
|
(define-public enlightenment
|
||||||
(package
|
(package
|
||||||
(name "enlightenment")
|
(name "enlightenment")
|
||||||
(version "0.20.8")
|
(version "0.20.9")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri
|
(uri
|
||||||
|
@ -281,7 +281,7 @@ Libraries with some extra bells and whistles.")
|
||||||
name "/" name "-" version ".tar.xz"))
|
name "/" name "-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"17fi3frq4a73i0x7v7244g9m0fbjfamw0cfb4zhqs2rp1z8nq1iy"))))
|
"1gniy7i3mg3q9cgqf004lvnv397yncdr2b7w1gzj69bvv7a2lyfv"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags '("--enable-mount-eeze")))
|
`(#:configure-flags '("--enable-mount-eeze")))
|
||||||
|
@ -300,7 +300,7 @@ Libraries with some extra bells and whistles.")
|
||||||
;; both these inputs are present in pkgconfig file in Require section
|
;; both these inputs are present in pkgconfig file in Require section
|
||||||
`(("efl" ,efl) ; enlightenment.pc
|
`(("efl" ,efl) ; enlightenment.pc
|
||||||
("elementary" ,elementary))) ; enlightenment.pc
|
("elementary" ,elementary))) ; enlightenment.pc
|
||||||
(home-page "http://www.enlightenment.org")
|
(home-page "https://www.enlightenment.org")
|
||||||
(synopsis "Lightweight desktop environment")
|
(synopsis "Lightweight desktop environment")
|
||||||
(description
|
(description
|
||||||
"Enlightenment is resource friendly desktop environment with integrated
|
"Enlightenment is resource friendly desktop environment with integrated
|
||||||
|
@ -324,13 +324,18 @@ embedded systems.")
|
||||||
(arguments
|
(arguments
|
||||||
'(#:phases
|
'(#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
|
(replace 'build
|
||||||
|
(lambda _
|
||||||
|
(zero?
|
||||||
|
(system* "env" "ENABLE_CYTHON=1" "python" "setup.py" "build"))))
|
||||||
(add-before 'build 'set-flags
|
(add-before 'build 'set-flags
|
||||||
(lambda _
|
(lambda _
|
||||||
(setenv "CFLAGS"
|
(setenv "CFLAGS"
|
||||||
(string-append "-I" (assoc-ref %build-inputs "python-dbus")
|
(string-append "-I" (assoc-ref %build-inputs "python-dbus")
|
||||||
"/include/dbus-1.0")))))))
|
"/include/dbus-1.0")))))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)))
|
`(("pkg-config" ,pkg-config)
|
||||||
|
("python-cython" ,python-cython)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("efl" ,efl)
|
`(("efl" ,efl)
|
||||||
("elementary" ,elementary)
|
("elementary" ,elementary)
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#:use-module (gnu packages emacs)
|
#:use-module (gnu packages emacs)
|
||||||
#:use-module (gnu packages groff)
|
#:use-module (gnu packages groff)
|
||||||
#:use-module (gnu packages libedit)
|
#:use-module (gnu packages libedit)
|
||||||
|
#:use-module (gnu packages libevent)
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
#:use-module (gnu packages multiprecision)
|
#:use-module (gnu packages multiprecision)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
|
@ -45,16 +46,15 @@
|
||||||
(define-public bitcoin-core
|
(define-public bitcoin-core
|
||||||
(package
|
(package
|
||||||
(name "bitcoin-core")
|
(name "bitcoin-core")
|
||||||
(version "0.11.2")
|
(version "0.12.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri
|
(uri
|
||||||
(string-append "https://bitcoin.org/bin/bitcoin-core-"
|
(string-append "https://bitcoin.org/bin/bitcoin-core-"
|
||||||
version "/bitcoin-"
|
version "/bitcoin-" version ".tar.gz"))
|
||||||
version ".tar.gz"))
|
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1lwh0vhw1gf3h6zrhynvad9y9qbpmhc8cw1zvj11yzsz5rjbvlm4"))))
|
"16g1cnasy24275kxrs0cg48nbx1dk54xvxm1pdsvk7y30mn3pz08"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)
|
`(("pkg-config" ,pkg-config)
|
||||||
|
@ -63,6 +63,7 @@
|
||||||
(inputs
|
(inputs
|
||||||
`(("bdb" ,bdb)
|
`(("bdb" ,bdb)
|
||||||
("boost" ,boost)
|
("boost" ,boost)
|
||||||
|
("libevent" ,libevent)
|
||||||
("miniupnpc" ,miniupnpc)
|
("miniupnpc" ,miniupnpc)
|
||||||
("openssl" ,openssl)
|
("openssl" ,openssl)
|
||||||
("protobuf" ,protobuf)
|
("protobuf" ,protobuf)
|
||||||
|
|
|
@ -160,3 +160,54 @@ With dfu-util you are able to download firmware to your device or upload
|
||||||
firmware from it.")
|
firmware from it.")
|
||||||
(home-page "http://dfu-util.sourceforge.net/")
|
(home-page "http://dfu-util.sourceforge.net/")
|
||||||
(license gpl2+)))
|
(license gpl2+)))
|
||||||
|
|
||||||
|
(define-public teensy-loader-cli
|
||||||
|
;; The repo does not tag versions nor does it use releases, but a commit
|
||||||
|
;; message says "Importing 2.1", while the sourcce still says "2.0". So pin
|
||||||
|
;; to a fixed commit.
|
||||||
|
(let ((commit "f289b7a2e5627464044249f0e5742830e052e360"))
|
||||||
|
(package
|
||||||
|
(name "teensy-loader-cli")
|
||||||
|
(version (string-append "2.1-1." (string-take commit 7)))
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://github.com/PaulStoffregen/"
|
||||||
|
"teensy_loader_cli/archive/" commit ".tar.gz"))
|
||||||
|
(sha256 (base32 "17wqc2q4fa473cy7f5m2yiyb9nq0qw7xal2kzrxzaikgm9rabsw8"))
|
||||||
|
(file-name (string-append "teensy-loader-cli-" version ".tar.gz" ))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
`(begin
|
||||||
|
;; Remove example flash files and teensy rebooter flash binaries.
|
||||||
|
(for-each delete-file (find-files "." "\\.(elf|hex)$"))
|
||||||
|
;; Fix the version
|
||||||
|
(substitute* "teensy_loader_cli.c"
|
||||||
|
(("Teensy Loader, Command Line, Version 2.0\\\\n")
|
||||||
|
(string-append "Teensy Loader, Command Line, " ,version "\\n")))
|
||||||
|
#t))
|
||||||
|
(patches (search-patches "teensy-loader-cli-help.patch"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:tests? #f ;; Makefile has no test target
|
||||||
|
#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(delete 'configure)
|
||||||
|
(replace 'install
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(bin (string-append out "/bin")))
|
||||||
|
(install-file "teensy_loader_cli" bin)
|
||||||
|
#t))))))
|
||||||
|
(inputs
|
||||||
|
`(("libusb-compat" ,libusb-compat)))
|
||||||
|
(synopsis "Command line firmware uploader for Teensy development boards")
|
||||||
|
(description
|
||||||
|
"The Teensy loader program communicates with your Teensy board when the
|
||||||
|
HalfKay bootloader is running, so you can upload new programs and run them.
|
||||||
|
|
||||||
|
You need to add the udev rules to make the Teensy update available for
|
||||||
|
non-root users.")
|
||||||
|
(home-page "https://www.pjrc.com/teensy/loader_cli.html")
|
||||||
|
(license gpl3))))
|
||||||
|
|
|
@ -253,14 +253,14 @@ Python.")
|
||||||
(define-public wayland
|
(define-public wayland
|
||||||
(package
|
(package
|
||||||
(name "wayland")
|
(name "wayland")
|
||||||
(version "1.10.0")
|
(version "1.11.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://wayland.freedesktop.org/releases/"
|
(uri (string-append "https://wayland.freedesktop.org/releases/"
|
||||||
name "-" version ".tar.xz"))
|
name "-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1p307ly1yyqjnzn9dbv78yffql2qszn84qk74lwanl3gma8fgxjb"))))
|
"1c0d5ivy9n44hykvw2ggrvqrnn7naw3wg11vbvgwzgi8g5gr4h4m"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments `(#:parallel-tests? #f))
|
(arguments `(#:parallel-tests? #f))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
|
;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
|
||||||
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
||||||
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
|
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
|
||||||
|
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -2338,3 +2339,60 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.")
|
||||||
;; - icarus/icarus.cpp
|
;; - icarus/icarus.cpp
|
||||||
;; - higan/emulator/emulator.hpp
|
;; - higan/emulator/emulator.hpp
|
||||||
(license license:gpl3)))
|
(license license:gpl3)))
|
||||||
|
|
||||||
|
(define-public grue-hunter
|
||||||
|
(package
|
||||||
|
(name "grue-hunter")
|
||||||
|
(version "1.0")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://jxself.org/" name ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1hjcpy5439qs3v2zykis7hsi0i17zjs62gks3zd8mnfw9ni4i2h3"))))
|
||||||
|
(build-system trivial-build-system) ; no Makefile.PL
|
||||||
|
(arguments `(#:modules ((guix build utils))
|
||||||
|
#:builder
|
||||||
|
(begin
|
||||||
|
(use-modules (guix build utils))
|
||||||
|
(use-modules (srfi srfi-1))
|
||||||
|
|
||||||
|
(let* ((tarball (assoc-ref %build-inputs "tarball"))
|
||||||
|
(perl (string-append (assoc-ref %build-inputs
|
||||||
|
"perl")
|
||||||
|
"/bin"))
|
||||||
|
(gunzip (string-append (assoc-ref %build-inputs
|
||||||
|
"gzip")
|
||||||
|
"/bin/gunzip"))
|
||||||
|
(tar (string-append (assoc-ref %build-inputs
|
||||||
|
"tar")
|
||||||
|
"/bin/tar"))
|
||||||
|
(out (assoc-ref %outputs "out"))
|
||||||
|
(bin (string-append out "/bin"))
|
||||||
|
(doc (string-append out "/share/doc")))
|
||||||
|
(begin
|
||||||
|
(mkdir out)
|
||||||
|
(copy-file tarball "grue-hunter.tar.gz")
|
||||||
|
(zero? (system* gunzip "grue-hunter.tar.gz"))
|
||||||
|
(zero? (system* tar "xvf" "grue-hunter.tar"))
|
||||||
|
|
||||||
|
(mkdir-p bin)
|
||||||
|
(copy-file "grue-hunter/gh.pl"
|
||||||
|
(string-append bin "/grue-hunter"))
|
||||||
|
(patch-shebang (string-append bin "/grue-hunter")
|
||||||
|
(list perl))
|
||||||
|
|
||||||
|
(mkdir-p doc)
|
||||||
|
(copy-file "grue-hunter/AGPLv3.txt"
|
||||||
|
(string-append doc "/grue-hunter")))))))
|
||||||
|
(inputs `(("perl" ,perl)
|
||||||
|
("tar" ,tar)
|
||||||
|
("gzip" ,gzip)
|
||||||
|
("tarball" ,source)))
|
||||||
|
(home-page "http://jxself.org/grue-hunter.shtml")
|
||||||
|
(synopsis "Text adventure game")
|
||||||
|
(description
|
||||||
|
"Grue Hunter is a text adventure game written in Perl. You must make
|
||||||
|
your way through an underground cave system in search of the Grue. Can you
|
||||||
|
capture it and get out alive?")
|
||||||
|
(license license:agpl3+)))
|
||||||
|
|
|
@ -0,0 +1,94 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||||
|
;;;
|
||||||
|
;;; 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 geo)
|
||||||
|
#:use-module (guix build-system glib-or-gtk)
|
||||||
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix licenses)
|
||||||
|
#:use-module (guix packages)
|
||||||
|
#:use-module (guix utils)
|
||||||
|
#:use-module (gnu packages glib)
|
||||||
|
#:use-module (gnu packages gnome)
|
||||||
|
#:use-module (gnu packages gtk)
|
||||||
|
#:use-module (gnu packages pkg-config)
|
||||||
|
#:use-module (gnu packages webkit)
|
||||||
|
#:use-module (gnu packages xml))
|
||||||
|
|
||||||
|
;;; FIXME GNOME Maps only runs within GNOME. On i3, it fails with this error:
|
||||||
|
;;; (org.gnome.Maps:8568): GLib-GIO-ERROR **: Settings schema
|
||||||
|
;;; 'org.gnome.desktop.interface' is not installed
|
||||||
|
(define-public gnome-maps
|
||||||
|
(package
|
||||||
|
(name "gnome-maps")
|
||||||
|
(version "3.18.2")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||||
|
(version-major+minor version) "/"
|
||||||
|
name "-" version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0y4jmh5hwskh2mnladh9hxp9k8as7crm8wwwiifvxsjjj9az2gv9"))))
|
||||||
|
(build-system glib-or-gtk-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:configure-flags ; Ensure that geoclue is referred to by output.
|
||||||
|
(list (string-append "LDFLAGS=-L"
|
||||||
|
(assoc-ref %build-inputs "geoclue") "/lib")
|
||||||
|
(string-append "CFLAGS=-I"
|
||||||
|
(assoc-ref %build-inputs "geoclue") "/include"))
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after
|
||||||
|
'install 'wrap
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let ((out (assoc-ref outputs "out"))
|
||||||
|
(gi-typelib-path (getenv "GI_TYPELIB_PATH"))
|
||||||
|
(goa-path (string-append
|
||||||
|
(assoc-ref inputs "gnome-online-accounts")
|
||||||
|
"/lib")))
|
||||||
|
(wrap-program (string-append out "/bin/gnome-maps")
|
||||||
|
`("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
|
||||||
|
|
||||||
|
;; There seems to be no way to embed the path of libgoa-1.0.so.0.
|
||||||
|
`("LD_LIBRARY_PATH" ":" prefix (,goa-path)))
|
||||||
|
#t))))))
|
||||||
|
(native-inputs
|
||||||
|
`(("gobject-introspection" ,gobject-introspection)
|
||||||
|
("intltool" ,intltool)
|
||||||
|
("pkg-config" ,pkg-config)))
|
||||||
|
(inputs
|
||||||
|
`(("folks" ,folks)
|
||||||
|
("libchamplain" ,libchamplain)
|
||||||
|
("libgee" ,libgee)
|
||||||
|
("libxml2" ,libxml2)
|
||||||
|
("geoclue" ,geoclue)
|
||||||
|
("geocode-glib" ,geocode-glib)
|
||||||
|
("gfbgraph" ,gfbgraph)
|
||||||
|
("gjs" ,gjs)
|
||||||
|
("glib" ,glib)
|
||||||
|
("gnome-online-accounts" ,gnome-online-accounts)
|
||||||
|
("rest" ,rest)
|
||||||
|
("webkitgtk" ,webkitgtk)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("gtk+3" ,gtk+)))
|
||||||
|
(synopsis "Graphical map viewer and wayfinding program")
|
||||||
|
(description "GNOME Maps is a graphical map viewer. It uses map data from
|
||||||
|
the OpenStreetMap project. It can provide directions for walking, bicycling,
|
||||||
|
and driving.")
|
||||||
|
(home-page "https://wiki.gnome.org/Apps/Maps")
|
||||||
|
(license gpl2+)))
|
|
@ -33,6 +33,7 @@
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages flex)
|
#:use-module (gnu packages flex)
|
||||||
#:use-module (gnu packages gettext)
|
#:use-module (gnu packages gettext)
|
||||||
|
#:use-module (gnu packages gnome)
|
||||||
#:use-module (gnu packages gtk)
|
#:use-module (gnu packages gtk)
|
||||||
#:use-module (gnu packages libffi)
|
#:use-module (gnu packages libffi)
|
||||||
#:use-module (gnu packages pcre)
|
#:use-module (gnu packages pcre)
|
||||||
|
@ -635,11 +636,14 @@ useful for C++.")
|
||||||
(base32
|
(base32
|
||||||
"0z261fwrszxb28ccg3hsg9rizig4s84zvwmx6y31a4pyv7bvs5w3")))))))
|
"0z261fwrszxb28ccg3hsg9rizig4s84zvwmx6y31a4pyv7bvs5w3")))))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:configure-flags '("--enable-vala-bindings")))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("glib" ,glib "bin") ; uses glib-mkenums
|
`(("glib" ,glib "bin") ; uses glib-mkenums
|
||||||
("gobject-introspection" ,gobject-introspection)
|
("gobject-introspection" ,gobject-introspection)
|
||||||
("pkg-config" ,pkg-config)
|
("pkg-config" ,pkg-config)
|
||||||
("python" ,python-2)
|
("python" ,python-2)
|
||||||
|
("vala" ,vala)
|
||||||
("xsltproc" ,libxslt)))
|
("xsltproc" ,libxslt)))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
;; There are all in the Requires.private field of telepathy-glib.pc.
|
;; There are all in the Requires.private field of telepathy-glib.pc.
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
||||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||||
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
|
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
|
||||||
|
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -1728,7 +1729,9 @@ passwords in the GNOME keyring.")
|
||||||
(setenv "CC" "gcc")
|
(setenv "CC" "gcc")
|
||||||
;; For missing '/etc/machine-id'.
|
;; For missing '/etc/machine-id'.
|
||||||
(setenv "DBUS_FATAL_WARNINGS" "0")
|
(setenv "DBUS_FATAL_WARNINGS" "0")
|
||||||
#t)))))
|
#t)))
|
||||||
|
;; Build the Vala API generator
|
||||||
|
#:configure-flags '("--enable-vapigen")))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)
|
`(("pkg-config" ,pkg-config)
|
||||||
("flex" ,flex)
|
("flex" ,flex)
|
||||||
|
@ -2948,7 +2951,11 @@ GL based interactive canvas library.")
|
||||||
(base32
|
(base32
|
||||||
"1arzd1hsgq14rbiwa1ih2g250x6ljna2s2kiqfrw155c612s9cxk"))))
|
"1arzd1hsgq14rbiwa1ih2g250x6ljna2s2kiqfrw155c612s9cxk"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
(arguments '(#:configure-flags '("--enable-vala")))
|
||||||
|
(native-inputs
|
||||||
|
`(("gobject-introspection" ,gobject-introspection)
|
||||||
|
("pkg-config" ,pkg-config)
|
||||||
|
("vala" ,vala)))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("libsoup" ,libsoup)
|
`(("libsoup" ,libsoup)
|
||||||
("sqlite" ,sqlite)
|
("sqlite" ,sqlite)
|
||||||
|
@ -4249,6 +4256,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
|
||||||
(list "--disable-uoa" ; disable Ubuntu Online Accounts support
|
(list "--disable-uoa" ; disable Ubuntu Online Accounts support
|
||||||
"--disable-google" ; disable Google Contacts support
|
"--disable-google" ; disable Google Contacts support
|
||||||
"--disable-google-auth" ; disable Google authentication
|
"--disable-google-auth" ; disable Google authentication
|
||||||
|
"--enable-vala-bindings"
|
||||||
(string-append "--with-nspr-includes=" nspr "/include/nspr")
|
(string-append "--with-nspr-includes=" nspr "/include/nspr")
|
||||||
(string-append "--with-nss-includes=" nss "/include/nss")
|
(string-append "--with-nss-includes=" nss "/include/nss")
|
||||||
(string-append "--with-nss-libs=" nss "/lib/nss")))
|
(string-append "--with-nss-libs=" nss "/lib/nss")))
|
||||||
|
@ -4265,6 +4273,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
|
||||||
("gperf" ,gperf)
|
("gperf" ,gperf)
|
||||||
("intltool" ,intltool)
|
("intltool" ,intltool)
|
||||||
("pkg-config" ,pkg-config)
|
("pkg-config" ,pkg-config)
|
||||||
|
("vala" ,vala)
|
||||||
("python" ,python)))
|
("python" ,python)))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
;; These are all in the Requires field of .pc files.
|
;; These are all in the Requires field of .pc files.
|
||||||
|
@ -5183,6 +5192,33 @@ alternative user interface themes, changes in window management behavior,
|
||||||
GNOME Shell appearance and extension, etc.")
|
GNOME Shell appearance and extension, etc.")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public gnome-shell-extensions
|
||||||
|
(package
|
||||||
|
(name "gnome-shell-extensions")
|
||||||
|
(version "3.20.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||||
|
(version-major+minor version) "/"
|
||||||
|
name "-" version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"18rr55krnqx1nzrzlj6kfzh4n67f3crakmwh28rr95y7cg0jwhxw"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:configure-flags '("--enable-extensions=all")))
|
||||||
|
(native-inputs
|
||||||
|
`(("intltool" ,intltool)
|
||||||
|
("pkg-config" ,pkg-config)))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("glib" ,glib)
|
||||||
|
("glib" ,glib "bin")))
|
||||||
|
(synopsis "Extensions for GNOME Shell")
|
||||||
|
(description "GNOME Shell extensions modify and extend GNOME Shell
|
||||||
|
functionality and behavior.")
|
||||||
|
(home-page "https://extensions.gnome.org/")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
||||||
(define-public arc-theme
|
(define-public arc-theme
|
||||||
(package
|
(package
|
||||||
(name "arc-theme")
|
(name "arc-theme")
|
||||||
|
@ -5282,3 +5318,71 @@ style of the Arc GTK theme. Icons missing from the Arc theme are provided by
|
||||||
the Moka icon theme.")
|
the Moka icon theme.")
|
||||||
(home-page "https://github.com/horst3180/arc-icon-theme")
|
(home-page "https://github.com/horst3180/arc-icon-theme")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public folks
|
||||||
|
(package
|
||||||
|
(name "folks")
|
||||||
|
(version "0.11.2")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"mirror://gnome/sources/" name "/"
|
||||||
|
(version-major+minor version) "/"
|
||||||
|
name "-" version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1f51albxgfqxbax57i3pcgv2fx7i419xaapzdvldas6gw100ma1m"))))
|
||||||
|
(build-system glib-or-gtk-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("bdb" ,bdb)
|
||||||
|
("dbus-glib" ,dbus-glib)
|
||||||
|
("evolution-data-server" ,evolution-data-server)
|
||||||
|
("glib" ,glib)
|
||||||
|
("libgee" ,libgee)
|
||||||
|
("telepathy-glib" ,telepathy-glib)))
|
||||||
|
(native-inputs
|
||||||
|
`(("gobject-introspection" ,gobject-introspection)
|
||||||
|
("intltool" ,intltool)
|
||||||
|
("pkg-config" ,pkg-config)
|
||||||
|
("vala" ,vala)))
|
||||||
|
(synopsis "Library to aggregate data about people")
|
||||||
|
(description "Libfolks is a library that aggregates information about people
|
||||||
|
from multiple sources (e.g., Telepathy connection managers for IM contacts,
|
||||||
|
Evolution Data Server for local contacts, libsocialweb for web service contacts,
|
||||||
|
etc.) to create metacontacts. It's written in Vala, which generates C code when
|
||||||
|
compiled.")
|
||||||
|
(home-page "https://wiki.gnome.org/Projects/Folks")
|
||||||
|
(license license:lgpl2.1+)))
|
||||||
|
|
||||||
|
(define-public gfbgraph
|
||||||
|
(package
|
||||||
|
(name "gfbgraph")
|
||||||
|
(version "0.2.3")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"mirror://gnome/sources/" name "/"
|
||||||
|
(version-major+minor version) "/"
|
||||||
|
name "-" version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
|
||||||
|
(build-system glib-or-gtk-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:tests? #f ; Tests appear to require the network.
|
||||||
|
;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
|
||||||
|
#:configure-flags '("--disable-gtk-doc"
|
||||||
|
"--disable-static"
|
||||||
|
"--enable-introspection")))
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)
|
||||||
|
("gobject-introspection" ,gobject-introspection)))
|
||||||
|
(inputs
|
||||||
|
`(("json-glib" ,json-glib)
|
||||||
|
("gnome-online-accounts" ,gnome-online-accounts)
|
||||||
|
("rest" ,rest)))
|
||||||
|
(synopsis "GLib/GObject wrapper for the Facebook API")
|
||||||
|
(description "This library allows you to use the Facebook API from
|
||||||
|
GLib/GObject code.")
|
||||||
|
(home-page "https://wiki.gnome.org/Projects/GFBGraph")
|
||||||
|
(license license:lgpl2.1+)))
|
||||||
|
|
|
@ -209,14 +209,14 @@ compatible to GNU Pth.")
|
||||||
(define-public gnupg
|
(define-public gnupg
|
||||||
(package
|
(package
|
||||||
(name "gnupg")
|
(name "gnupg")
|
||||||
(version "2.1.12")
|
(version "2.1.13")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
|
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
|
||||||
".tar.bz2"))
|
".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"01n5py45x0r97l4dzmd803jpbpbcxr1591k3k4s8m9804jfr4d5c"))))
|
"0xcn46vcb5x5qx0bc803vpzhzhnn6wfhp7x71w9n1ahx4ak877ag"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)))
|
`(("pkg-config" ,pkg-config)))
|
||||||
|
@ -612,7 +612,7 @@ passphrase when @code{gpg} or @code{gpg2} is run and needs it.")))
|
||||||
(inherit pinentry-tty)
|
(inherit pinentry-tty)
|
||||||
(name "pinentry-qt")
|
(name "pinentry-qt")
|
||||||
(inputs
|
(inputs
|
||||||
`(("qt" ,qt)
|
`(("qtbase" ,qtbase)
|
||||||
,@(package-inputs pinentry-tty)))
|
,@(package-inputs pinentry-tty)))
|
||||||
(description
|
(description
|
||||||
"Pinentry provides a console and a Qt GUI that allows users to enter a
|
"Pinentry provides a console and a Qt GUI that allows users to enter a
|
||||||
|
|
|
@ -63,7 +63,8 @@
|
||||||
(inputs
|
(inputs
|
||||||
`(("expat" ,expat)
|
`(("expat" ,expat)
|
||||||
("zlib" ,zlib)
|
("zlib" ,zlib)
|
||||||
("qt" ,qt)))
|
("qtbase" ,qtbase)
|
||||||
|
("qttools" ,qttools)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("which" ,which)
|
`(("which" ,which)
|
||||||
("libxml2" ,libxml2))) ;'xmllint' needed for the KML tests
|
("libxml2" ,libxml2))) ;'xmllint' needed for the KML tests
|
||||||
|
|
|
@ -1,84 +0,0 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
|
||||||
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
|
|
||||||
;;;
|
|
||||||
;;; This file is part of GNU Guix.
|
|
||||||
;;;
|
|
||||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
|
||||||
;;; under the terms of the GNU General Public License as published by
|
|
||||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
|
||||||
;;; your option) any later version.
|
|
||||||
;;;
|
|
||||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
|
||||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
;;; GNU General Public License for more details.
|
|
||||||
;;;
|
|
||||||
;;; You should have received a copy of the GNU General Public License
|
|
||||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
(define-module (gnu packages grue-hunter)
|
|
||||||
#:use-module (guix licenses)
|
|
||||||
#:use-module (guix packages)
|
|
||||||
#:use-module (guix download)
|
|
||||||
#:use-module (guix build-system trivial)
|
|
||||||
#:use-module (gnu packages base)
|
|
||||||
#:use-module (gnu packages compression)
|
|
||||||
#:use-module (gnu packages perl))
|
|
||||||
|
|
||||||
(define-public grue-hunter
|
|
||||||
(package
|
|
||||||
(name "grue-hunter")
|
|
||||||
(version "1.0")
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append "https://jxself.org/" name ".tar.gz"))
|
|
||||||
(sha256
|
|
||||||
(base32
|
|
||||||
"1hjcpy5439qs3v2zykis7hsi0i17zjs62gks3zd8mnfw9ni4i2h3"))))
|
|
||||||
(build-system trivial-build-system) ; no Makefile.PL
|
|
||||||
(arguments `(#:modules ((guix build utils))
|
|
||||||
#:builder
|
|
||||||
(begin
|
|
||||||
(use-modules (guix build utils))
|
|
||||||
(use-modules (srfi srfi-1))
|
|
||||||
|
|
||||||
(let* ((tarball (assoc-ref %build-inputs "tarball"))
|
|
||||||
(perl (string-append (assoc-ref %build-inputs
|
|
||||||
"perl")
|
|
||||||
"/bin"))
|
|
||||||
(gunzip (string-append (assoc-ref %build-inputs
|
|
||||||
"gzip")
|
|
||||||
"/bin/gunzip"))
|
|
||||||
(tar (string-append (assoc-ref %build-inputs
|
|
||||||
"tar")
|
|
||||||
"/bin/tar"))
|
|
||||||
(out (assoc-ref %outputs "out"))
|
|
||||||
(bin (string-append out "/bin"))
|
|
||||||
(doc (string-append out "/share/doc")))
|
|
||||||
(begin
|
|
||||||
(mkdir out)
|
|
||||||
(copy-file tarball "grue-hunter.tar.gz")
|
|
||||||
(zero? (system* gunzip "grue-hunter.tar.gz"))
|
|
||||||
(zero? (system* tar "xvf" "grue-hunter.tar"))
|
|
||||||
|
|
||||||
(mkdir-p bin)
|
|
||||||
(copy-file "grue-hunter/gh.pl"
|
|
||||||
(string-append bin "/grue-hunter"))
|
|
||||||
(patch-shebang (string-append bin "/grue-hunter")
|
|
||||||
(list perl))
|
|
||||||
|
|
||||||
(mkdir-p doc)
|
|
||||||
(copy-file "grue-hunter/AGPLv3.txt"
|
|
||||||
(string-append doc "/grue-hunter")))))))
|
|
||||||
(inputs `(("perl" ,perl)
|
|
||||||
("tar" ,tar)
|
|
||||||
("gzip" ,gzip)
|
|
||||||
("tarball" ,source)))
|
|
||||||
(home-page "http://jxself.org/grue-hunter.shtml")
|
|
||||||
(synopsis "Text adventure game")
|
|
||||||
(description
|
|
||||||
"Grue Hunter is a text adventure game written in Perl. You must make
|
|
||||||
your way through an underground cave system in search of the Grue. Can you
|
|
||||||
capture it and get out alive?")
|
|
||||||
(license agpl3+)))
|
|
|
@ -73,10 +73,10 @@
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
"https://github.com/JuliaLang/julia/releases/download/v"
|
"https://github.com/JuliaLang/julia/releases/download/v"
|
||||||
version "/julia-" version "-full.tar.gz"))
|
version "/julia-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1nbi78fav5f4zj5332iwm4mfk0qhd5qh61z881q69rvp7b163wyb"))))
|
"09gc6yf3v4in0qwhrbgjrjgvblp941di0mli4zax22mvf4dzc7s4"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:test-target "test"
|
`(#:test-target "test"
|
||||||
|
@ -92,6 +92,19 @@
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
(delete 'configure)
|
(delete 'configure)
|
||||||
|
(add-after 'unpack 'prepare-deps
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(copy-file (assoc-ref inputs "rmath-julia")
|
||||||
|
"deps/Rmath-julia-0.1.tar.gz")
|
||||||
|
(copy-file (assoc-ref inputs "dsfmt")
|
||||||
|
"deps/dsfmt-2.2.3.tar.gz")
|
||||||
|
(copy-file (assoc-ref inputs "objconv")
|
||||||
|
"deps/objconv.zip")
|
||||||
|
(copy-file (assoc-ref inputs "suitesparse")
|
||||||
|
"deps/SuiteSparse-4.4.2.tar.gz")
|
||||||
|
(copy-file (assoc-ref inputs "virtualenv")
|
||||||
|
"deps/virtualenv-1.11.6.tar.gz")
|
||||||
|
#t))
|
||||||
(add-after 'unpack 'hardcode-soname-map
|
(add-after 'unpack 'hardcode-soname-map
|
||||||
;; ./src/ccall.cpp creates a map from library names to paths using the
|
;; ./src/ccall.cpp creates a map from library names to paths using the
|
||||||
;; output of "/sbin/ldconfig -p". Since ldconfig is not used in Guix,
|
;; output of "/sbin/ldconfig -p". Since ldconfig is not used in Guix,
|
||||||
|
@ -249,7 +262,50 @@
|
||||||
("mpfr" ,mpfr)
|
("mpfr" ,mpfr)
|
||||||
("wget" ,wget)
|
("wget" ,wget)
|
||||||
("which" ,which)
|
("which" ,which)
|
||||||
("gmp" ,gmp)))
|
("gmp" ,gmp)
|
||||||
|
;; FIXME: The following inputs are downloaded from upstream to allow us
|
||||||
|
;; to use the lightweight Julia release tarball. Ideally, these inputs
|
||||||
|
;; would eventually be replaced with proper Guix packages.
|
||||||
|
("rmath-julia"
|
||||||
|
,(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri "https://api.github.com/repos/JuliaLang/Rmath-julia/tarball/v0.1")
|
||||||
|
(file-name "rmath-julia-0.1.tar.gz")
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0ai5dhjc43zcvangz123ryxmlbm51s21rg13bllwyn98w67arhb4"))))
|
||||||
|
("suitesparse"
|
||||||
|
,(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri "http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.4.2.tar.gz")
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1dg0qsv07n71nbn9cgcvn73933rgy1jnxw5bfqkwfq3bidk44cqc"))))
|
||||||
|
("objconv"
|
||||||
|
,(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri "http://www.agner.org/optimize/objconv.zip")
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1fi7qa2sd9vb35dvkgripjf0fayzg2qmff215f8agfqfiwd1g8qs"))))
|
||||||
|
("dsfmt"
|
||||||
|
,(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/"
|
||||||
|
"SFMT/dSFMT-src-2.2.3.tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"03kaqbjbi6viz0n33dk5jlf6ayxqlsq4804n7kwkndiga9s4hd42"))))
|
||||||
|
("virtualenv"
|
||||||
|
,(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://pypi.python.org/packages/24/cc/"
|
||||||
|
"a3cdf0a49ffcaef483b7e2511476aa520cf7260c199a6928fda6c43ba916/"
|
||||||
|
"virtualenv-1.11.6.tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1xq4prmg25n9cz5zcvbqx68lmc3kl39by582vd8pzs9f3qalqyiy"))))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("perl" ,perl)
|
`(("perl" ,perl)
|
||||||
("patchelf" ,patchelf)
|
("patchelf" ,patchelf)
|
||||||
|
|
|
@ -110,7 +110,7 @@ lower level classes for interaction with the X Windowing System.")
|
||||||
`(("pkg-config" ,pkg-config)))
|
`(("pkg-config" ,pkg-config)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||||
("qt" ,qt)))
|
("qtbase" ,qtbase)))
|
||||||
(home-page "https://community.kde.org/Frameworks")
|
(home-page "https://community.kde.org/Frameworks")
|
||||||
(synopsis "Oxygen provides the standard icon theme for the KDE desktop.")
|
(synopsis "Oxygen provides the standard icon theme for the KDE desktop.")
|
||||||
(description "Oxygen icon theme for the KDE desktop")
|
(description "Oxygen icon theme for the KDE desktop")
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||||
|
;;;
|
||||||
|
;;; This file is part of GNU Guix.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||||
|
;;; under the terms of the GNU General Public License as published by
|
||||||
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||||
|
;;; your option) any later version.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||||
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;;; GNU General Public License for more details.
|
||||||
|
;;;
|
||||||
|
;;; You should have received a copy of the GNU General Public License
|
||||||
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
(define-module (gnu packages logging)
|
||||||
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
|
#:use-module (guix packages)
|
||||||
|
#:use-module (guix utils)
|
||||||
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix build-system gnu)
|
||||||
|
#:use-module (gnu packages))
|
||||||
|
|
||||||
|
(define-public log4cpp
|
||||||
|
(package
|
||||||
|
(name "log4cpp")
|
||||||
|
(version "1.1.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://sourceforge/log4cpp/log4cpp-"
|
||||||
|
(version-major+minor version) ".x%20%28new%29"
|
||||||
|
"/log4cpp-" (version-major+minor version)
|
||||||
|
"/log4cpp-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1l5yz5rfzzv6g3ynrj14mxfsk08cp5h1ssr7d74hjs0accrg7arm"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(synopsis "Log library for C++")
|
||||||
|
(description
|
||||||
|
"Log4cpp is library of C++ classes for flexible logging to files, syslog,
|
||||||
|
IDSA and other destinations. It is modeled after the Log4j Java library,
|
||||||
|
staying as close to their API as is reasonable.")
|
||||||
|
(home-page "http://log4cpp.sourceforge.net/")
|
||||||
|
(license license:lgpl2.1+)))
|
|
@ -17,7 +17,7 @@
|
||||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
(define-module (gnu packages lsh)
|
(define-module (gnu packages lsh)
|
||||||
#:use-module (guix licenses)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
#:use-module (gnu packages m4)
|
#:use-module (gnu packages m4)
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
#:use-module (gnu packages nettle)
|
#:use-module (gnu packages nettle)
|
||||||
#:use-module ((gnu packages compression) #:prefix guix:)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages multiprecision)
|
#:use-module (gnu packages multiprecision)
|
||||||
#:use-module (gnu packages readline)
|
#:use-module (gnu packages readline)
|
||||||
#:use-module (gnu packages gperf)
|
#:use-module (gnu packages gperf)
|
||||||
|
@ -55,7 +55,7 @@ replaces the \"select() loop\" and allows the registration of event handlers
|
||||||
for file and network I/O, timers and signals. Since processes use these
|
for file and network I/O, timers and signals. Since processes use these
|
||||||
mechanisms for almost all external communication, liboop can be used as the
|
mechanisms for almost all external communication, liboop can be used as the
|
||||||
basis for almost any application.")
|
basis for almost any application.")
|
||||||
(license lgpl2.1+)))
|
(license license:lgpl2.1+)))
|
||||||
|
|
||||||
(define-public lsh
|
(define-public lsh
|
||||||
(package
|
(package
|
||||||
|
@ -100,7 +100,7 @@ basis for almost any application.")
|
||||||
("readline" ,readline-6.2)
|
("readline" ,readline-6.2)
|
||||||
|
|
||||||
("liboop" ,liboop)
|
("liboop" ,liboop)
|
||||||
("zlib" ,guix:zlib)
|
("zlib" ,zlib)
|
||||||
("gmp" ,gmp)
|
("gmp" ,gmp)
|
||||||
|
|
||||||
;; The server (lshd) invokes xauth when X11 forwarding is requested.
|
;; The server (lshd) invokes xauth when X11 forwarding is requested.
|
||||||
|
@ -156,4 +156,4 @@ used to create a secure line of communication between two computers,
|
||||||
providing shell access to the server system from the client. It provides
|
providing shell access to the server system from the client. It provides
|
||||||
both the server daemon and the client application, as well as tools for
|
both the server daemon and the client application, as well as tools for
|
||||||
manipulating key files.")
|
manipulating key files.")
|
||||||
(license gpl2+)))
|
(license license:gpl2+)))
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||||
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
|
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
|
||||||
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
|
||||||
|
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -37,8 +38,8 @@
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri
|
(uri
|
||||||
(string-append "https://downloads.lxqt.org/libqtxdg/" version "/"
|
(string-append "https://github.com/lxde/libqtxdg/releases/"
|
||||||
name "-" version ".tar.xz"))
|
"download/" version "/" name "-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1ncqs0lcll5nx69hxfg33m3jfkryjqrjhr2kdci0b8pyaqdv1jc8"))))
|
"1ncqs0lcll5nx69hxfg33m3jfkryjqrjhr2kdci0b8pyaqdv1jc8"))))
|
||||||
|
@ -49,7 +50,7 @@
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)))
|
`(("pkg-config" ,pkg-config)))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("qt" ,qt))) ; according to Qt5Xdg.pc
|
`(("qtbase" ,qtbase))) ; according to Qt5Xdg.pc
|
||||||
(home-page "https://github.com/lxde/libqtxdg")
|
(home-page "https://github.com/lxde/libqtxdg")
|
||||||
(synopsis "Qt implementation of freedesktop.org xdg specifications")
|
(synopsis "Qt implementation of freedesktop.org xdg specifications")
|
||||||
(description "Libqtxdg implements the freedesktop.org xdg specifications
|
(description "Libqtxdg implements the freedesktop.org xdg specifications
|
||||||
|
@ -64,11 +65,12 @@ in Qt.")
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri
|
(uri
|
||||||
(string-append "https://downloads.lxqt.org/lxqt/" version "/"
|
(string-append "https://github.com/lxde/" name
|
||||||
name "-" version ".tar.xz"))
|
"/archive/" version ".tar.gz"))
|
||||||
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0ljdzqavvy82qwwwnhg2bgbshl2ns0k2lcswxlx1cfc8rcdr9w5l"))
|
"0mbl3qc0yfgfsndqrw8vg8k5irsy0pg2wrad8nwv0aphphd4n7rg"))
|
||||||
(patches (search-patches "liblxqt-include.patch"))))
|
(patches (search-patches "liblxqt-include.patch"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
|
@ -76,7 +78,10 @@ in Qt.")
|
||||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("kwindowsystem" ,kwindowsystem)
|
`(("kwindowsystem" ,kwindowsystem)
|
||||||
("libqtxdg" ,libqtxdg)))
|
("libqtxdg" ,libqtxdg)
|
||||||
|
("qtbase" ,qtbase)
|
||||||
|
("qttools" ,qttools)
|
||||||
|
("qtx11extras" ,qtx11extras)))
|
||||||
(home-page "http://lxqt.org/")
|
(home-page "http://lxqt.org/")
|
||||||
(synopsis "Core utility library for all LXQt components")
|
(synopsis "Core utility library for all LXQt components")
|
||||||
(description "liblxqt provides the basic libraries shared by the
|
(description "liblxqt provides the basic libraries shared by the
|
||||||
|
@ -92,11 +97,12 @@ components of the LXQt desktop environment.")
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri
|
(uri
|
||||||
(string-append "https://downloads.lxqt.org/lxqt/" version "/"
|
(string-append "https://github.com/lxde/" name
|
||||||
name "-" version ".tar.xz"))
|
"/archive/" version ".tar.gz"))
|
||||||
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0kbkwmrdjhfbq60wf2yfbsjmci8xlw13ilxxa7yxq68n1aqjqmvf"))))
|
"1vd3zarvl44l3y6wn7kgxcd2f1bygsmk5bcfqwa3568cq3b57aw0"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f ; no check target
|
`(#:tests? #f ; no check target
|
||||||
|
@ -127,7 +133,10 @@ components of the LXQt desktop environment.")
|
||||||
(inputs
|
(inputs
|
||||||
`(("kwindowsystem" ,kwindowsystem)
|
`(("kwindowsystem" ,kwindowsystem)
|
||||||
("liblxqt" ,liblxqt)
|
("liblxqt" ,liblxqt)
|
||||||
("libqtxdg" ,libqtxdg)))
|
("libqtxdg" ,libqtxdg)
|
||||||
|
("qtbase" ,qtbase)
|
||||||
|
("qttools" ,qttools)
|
||||||
|
("qtx11extras" ,qtx11extras)))
|
||||||
(home-page "http://lxqt.org/")
|
(home-page "http://lxqt.org/")
|
||||||
(synopsis "Common files for LXQt")
|
(synopsis "Common files for LXQt")
|
||||||
(description "lxqt-common provides the desktop integration files
|
(description "lxqt-common provides the desktop integration files
|
||||||
|
@ -143,18 +152,21 @@ desktop environment.")
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri
|
(uri
|
||||||
(string-append "https://downloads.lxqt.org/lxqt/" version "/"
|
(string-append "https://github.com/lxde/" name
|
||||||
name "-" version ".tar.xz"))
|
"/archive/" version ".tar.gz"))
|
||||||
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"01hxand1gqbcaw14lh7z6w5zssgfaffcjncv752c2c7272wzyhy5"))))
|
"1sdwcfrfqkg7ibrsncs1skdap9n8wm4rg6n9d0fgdz2q4d45h75a"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(native-inputs
|
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||||
`(("pkg-config" ,pkg-config)))
|
|
||||||
(inputs
|
(inputs
|
||||||
`(("kwindowsystem" ,kwindowsystem)
|
`(("kwindowsystem" ,kwindowsystem)
|
||||||
("liblxqt" ,liblxqt)
|
("liblxqt" ,liblxqt)
|
||||||
("libqtxdg" ,libqtxdg)))
|
("libqtxdg" ,libqtxdg)
|
||||||
|
("qtbase" ,qtbase)
|
||||||
|
("qttools" ,qttools)
|
||||||
|
("qtx11extras" ,qtx11extras)))
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f ; no check target
|
`(#:tests? #f ; no check target
|
||||||
#:phases
|
#:phases
|
||||||
|
|
|
@ -292,7 +292,7 @@ and corrections. It is based on a Bayesian filter.")
|
||||||
(define-public offlineimap
|
(define-public offlineimap
|
||||||
(package
|
(package
|
||||||
(name "offlineimap")
|
(name "offlineimap")
|
||||||
(version "6.7.0")
|
(version "6.7.0.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://github.com/OfflineIMAP/offlineimap/"
|
(uri (string-append "https://github.com/OfflineIMAP/offlineimap/"
|
||||||
|
@ -300,7 +300,7 @@ and corrections. It is based on a Bayesian filter.")
|
||||||
(file-name (string-append name "-" version ".tar.gz"))
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0462mal2fxvavxhwjk1a6vsnspx07yniifa687dwg46aplqznin4"))))
|
"1ys26v2w3vws08acjs7w5irjgahdxyad00pmj7fhcx91hbvizs80"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(native-inputs `(("python" ,python-2)))
|
(native-inputs `(("python" ,python-2)))
|
||||||
(inputs `(("python2-pysqlite" ,python2-pysqlite)))
|
(inputs `(("python2-pysqlite" ,python2-pysqlite)))
|
||||||
|
|
|
@ -667,7 +667,7 @@ your own lessons.")
|
||||||
(inputs
|
(inputs
|
||||||
`(("boost" ,boost)
|
`(("boost" ,boost)
|
||||||
("alsa-lib" ,alsa-lib)
|
("alsa-lib" ,alsa-lib)
|
||||||
("qt" ,qt)
|
("qtbase" ,qtbase)
|
||||||
("withershins" ,withershins)
|
("withershins" ,withershins)
|
||||||
("libiberty" ,libiberty) ;for withershins
|
("libiberty" ,libiberty) ;for withershins
|
||||||
("binutils" ,binutils) ;for -lbfd and -liberty (for withershins)
|
("binutils" ,binutils) ;for -lbfd and -liberty (for withershins)
|
||||||
|
@ -706,7 +706,8 @@ Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.")
|
||||||
("lv2" ,lv2)
|
("lv2" ,lv2)
|
||||||
("alsa-lib" ,alsa-lib)
|
("alsa-lib" ,alsa-lib)
|
||||||
("liblo" ,liblo)
|
("liblo" ,liblo)
|
||||||
("qt" ,qt)))
|
("qtbase" ,qtbase)
|
||||||
|
("qttools" ,qttools)))
|
||||||
(home-page "http://synthv1.sourceforge.net")
|
(home-page "http://synthv1.sourceforge.net")
|
||||||
(synopsis "Polyphonic subtractive synthesizer")
|
(synopsis "Polyphonic subtractive synthesizer")
|
||||||
(description
|
(description
|
||||||
|
@ -1085,7 +1086,8 @@ browser.")
|
||||||
"/manpages/docbook.xsl")))
|
"/manpages/docbook.xsl")))
|
||||||
#t)))))
|
#t)))))
|
||||||
(inputs
|
(inputs
|
||||||
`(("qt" ,qt)
|
`(("qtbase" ,qtbase)
|
||||||
|
("qtsvg" ,qtsvg)
|
||||||
("alsa-lib" ,alsa-lib)
|
("alsa-lib" ,alsa-lib)
|
||||||
("fluidsynth" ,fluidsynth)))
|
("fluidsynth" ,fluidsynth)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
|
@ -1132,7 +1134,10 @@ backends, including ALSA, OSS, Network and FluidSynth.")
|
||||||
#t)))))
|
#t)))))
|
||||||
(inputs
|
(inputs
|
||||||
`(("drumstick" ,drumstick)
|
`(("drumstick" ,drumstick)
|
||||||
("qt" ,qt)))
|
("qtbase" ,qtbase)
|
||||||
|
("qtsvg" ,qtsvg)
|
||||||
|
("qttools" ,qttools)
|
||||||
|
("qtx11extras" ,qtx11extras)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("libxslt" ,libxslt) ;for xsltproc
|
`(("libxslt" ,libxslt) ;for xsltproc
|
||||||
("docbook-xsl" ,docbook-xsl)
|
("docbook-xsl" ,docbook-xsl)
|
||||||
|
|
|
@ -97,7 +97,7 @@ computers over a network.")
|
||||||
(define-public openntpd
|
(define-public openntpd
|
||||||
(package
|
(package
|
||||||
(name "openntpd")
|
(name "openntpd")
|
||||||
(version "5.9p1")
|
(version "6.0p1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
;; XXX Use mirror://openbsd
|
;; XXX Use mirror://openbsd
|
||||||
|
@ -106,7 +106,7 @@ computers over a network.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1cwp6vxv7nj039kgbf0mgfm06f8zc4axawdc7ijl2r2ddl2h8310"))))
|
"1s3plmxmybwpfrimq6sc54wxnn6ca7rb2g5k2bdjm4c88w4q1axi"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(home-page "http://www.openntpd.org/")
|
(home-page "http://www.openntpd.org/")
|
||||||
(synopsis "NTP client and server by the OpenBSD Project")
|
(synopsis "NTP client and server by the OpenBSD Project")
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2013, 2014 Eric Bavier <bavier@member.fsf.org>
|
;;; Copyright © 2013, 2014 Eric Bavier <bavier@member.fsf.org>
|
||||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
|
;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
|
||||||
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
|
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
|
||||||
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
(define-public parallel
|
(define-public parallel
|
||||||
(package
|
(package
|
||||||
(name "parallel")
|
(name "parallel")
|
||||||
(version "20160222")
|
(version "20160522")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
version ".tar.bz2"))
|
version ".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1sjmvinwr9j2a0jdk9y9nf2x4hhzcbl529slkwpz0vva0cwybywd"))))
|
"03r07ksxw5xx946x9s26ivifgldr8bc9bz6da4wfrd0dx4546xyy"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs `(("perl" ,perl)))
|
(inputs `(("perl" ,perl)))
|
||||||
(home-page "http://www.gnu.org/software/parallel/")
|
(home-page "http://www.gnu.org/software/parallel/")
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
Do not introduce timestamps in PNG files (for icons).
|
||||||
|
See <https://wiki.debian.org/ReproducibleBuilds/TimestampsInPNG>.
|
||||||
|
|
||||||
|
--- awesome-3.4.15/CMakeLists.txt 2013-02-11 14:50:21.000000000 +0100
|
||||||
|
+++ awesome-3.4.15/CMakeLists.txt 2016-06-16 13:59:30.528125439 +0200
|
||||||
|
@@ -295,7 +295,7 @@ macro(a_icon_convert match replacement i
|
||||||
|
set(ALL_ICONS ${ALL_ICONS} ${output})
|
||||||
|
|
||||||
|
add_custom_command(
|
||||||
|
- COMMAND ${CONVERT_EXECUTABLE} ${input} ${ARGN} ${output}
|
||||||
|
+ COMMAND ${CONVERT_EXECUTABLE} +set date:create +set date:modify -define png:exclude-chunk=time ${input} ${ARGN} ${output}
|
||||||
|
OUTPUT ${output}
|
||||||
|
DEPENDS ${input}
|
||||||
|
VERBATIM)
|
|
@ -0,0 +1,286 @@
|
||||||
|
Fix CVE-2016-2177.
|
||||||
|
|
||||||
|
<https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2177>
|
||||||
|
|
||||||
|
Source:
|
||||||
|
<https://git.openssl.org/?p=openssl.git;a=commit;h=a004e72b95835136d3f1ea90517f706c24c03da7>
|
||||||
|
|
||||||
|
From a004e72b95835136d3f1ea90517f706c24c03da7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Matt Caswell <matt@openssl.org>
|
||||||
|
Date: Thu, 5 May 2016 11:10:26 +0100
|
||||||
|
Subject: [PATCH] Avoid some undefined pointer arithmetic
|
||||||
|
|
||||||
|
A common idiom in the codebase is:
|
||||||
|
|
||||||
|
if (p + len > limit)
|
||||||
|
{
|
||||||
|
return; /* Too long */
|
||||||
|
}
|
||||||
|
|
||||||
|
Where "p" points to some malloc'd data of SIZE bytes and
|
||||||
|
limit == p + SIZE
|
||||||
|
|
||||||
|
"len" here could be from some externally supplied data (e.g. from a TLS
|
||||||
|
message).
|
||||||
|
|
||||||
|
The rules of C pointer arithmetic are such that "p + len" is only well
|
||||||
|
defined where len <= SIZE. Therefore the above idiom is actually
|
||||||
|
undefined behaviour.
|
||||||
|
|
||||||
|
For example this could cause problems if some malloc implementation
|
||||||
|
provides an address for "p" such that "p + len" actually overflows for
|
||||||
|
values of len that are too big and therefore p + len < limit!
|
||||||
|
|
||||||
|
Issue reported by Guido Vranken.
|
||||||
|
|
||||||
|
CVE-2016-2177
|
||||||
|
|
||||||
|
Reviewed-by: Rich Salz <rsalz@openssl.org>
|
||||||
|
---
|
||||||
|
ssl/s3_srvr.c | 14 +++++++-------
|
||||||
|
ssl/ssl_sess.c | 2 +-
|
||||||
|
ssl/t1_lib.c | 56 ++++++++++++++++++++++++++++++--------------------------
|
||||||
|
3 files changed, 38 insertions(+), 34 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/ssl/s3_srvr.c b/ssl/s3_srvr.c
|
||||||
|
index ab28702..ab7f690 100644
|
||||||
|
--- a/ssl/s3_srvr.c
|
||||||
|
+++ b/ssl/s3_srvr.c
|
||||||
|
@@ -980,7 +980,7 @@ int ssl3_get_client_hello(SSL *s)
|
||||||
|
|
||||||
|
session_length = *(p + SSL3_RANDOM_SIZE);
|
||||||
|
|
||||||
|
- if (p + SSL3_RANDOM_SIZE + session_length + 1 >= d + n) {
|
||||||
|
+ if (SSL3_RANDOM_SIZE + session_length + 1 >= (d + n) - p) {
|
||||||
|
al = SSL_AD_DECODE_ERROR;
|
||||||
|
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
|
||||||
|
goto f_err;
|
||||||
|
@@ -998,7 +998,7 @@ int ssl3_get_client_hello(SSL *s)
|
||||||
|
/* get the session-id */
|
||||||
|
j = *(p++);
|
||||||
|
|
||||||
|
- if (p + j > d + n) {
|
||||||
|
+ if ((d + n) - p < j) {
|
||||||
|
al = SSL_AD_DECODE_ERROR;
|
||||||
|
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
|
||||||
|
goto f_err;
|
||||||
|
@@ -1054,14 +1054,14 @@ int ssl3_get_client_hello(SSL *s)
|
||||||
|
|
||||||
|
if (SSL_IS_DTLS(s)) {
|
||||||
|
/* cookie stuff */
|
||||||
|
- if (p + 1 > d + n) {
|
||||||
|
+ if ((d + n) - p < 1) {
|
||||||
|
al = SSL_AD_DECODE_ERROR;
|
||||||
|
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
|
||||||
|
goto f_err;
|
||||||
|
}
|
||||||
|
cookie_len = *(p++);
|
||||||
|
|
||||||
|
- if (p + cookie_len > d + n) {
|
||||||
|
+ if ((d + n ) - p < cookie_len) {
|
||||||
|
al = SSL_AD_DECODE_ERROR;
|
||||||
|
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
|
||||||
|
goto f_err;
|
||||||
|
@@ -1131,7 +1131,7 @@ int ssl3_get_client_hello(SSL *s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (p + 2 > d + n) {
|
||||||
|
+ if ((d + n ) - p < 2) {
|
||||||
|
al = SSL_AD_DECODE_ERROR;
|
||||||
|
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
|
||||||
|
goto f_err;
|
||||||
|
@@ -1145,7 +1145,7 @@ int ssl3_get_client_hello(SSL *s)
|
||||||
|
}
|
||||||
|
|
||||||
|
/* i bytes of cipher data + 1 byte for compression length later */
|
||||||
|
- if ((p + i + 1) > (d + n)) {
|
||||||
|
+ if ((d + n) - p < i + 1) {
|
||||||
|
/* not enough data */
|
||||||
|
al = SSL_AD_DECODE_ERROR;
|
||||||
|
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_MISMATCH);
|
||||||
|
@@ -1211,7 +1211,7 @@ int ssl3_get_client_hello(SSL *s)
|
||||||
|
|
||||||
|
/* compression */
|
||||||
|
i = *(p++);
|
||||||
|
- if ((p + i) > (d + n)) {
|
||||||
|
+ if ((d + n) - p < i) {
|
||||||
|
/* not enough data */
|
||||||
|
al = SSL_AD_DECODE_ERROR;
|
||||||
|
SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_MISMATCH);
|
||||||
|
diff --git a/ssl/ssl_sess.c b/ssl/ssl_sess.c
|
||||||
|
index b182998..54ee783 100644
|
||||||
|
--- a/ssl/ssl_sess.c
|
||||||
|
+++ b/ssl/ssl_sess.c
|
||||||
|
@@ -573,7 +573,7 @@ int ssl_get_prev_session(SSL *s, unsigned char *session_id, int len,
|
||||||
|
int r;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
- if (session_id + len > limit) {
|
||||||
|
+ if (limit - session_id < len) {
|
||||||
|
fatal = 1;
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c
|
||||||
|
index fb64607..cdac011 100644
|
||||||
|
--- a/ssl/t1_lib.c
|
||||||
|
+++ b/ssl/t1_lib.c
|
||||||
|
@@ -1867,11 +1867,11 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
|
||||||
|
0x02, 0x03, /* SHA-1/ECDSA */
|
||||||
|
};
|
||||||
|
|
||||||
|
- if (data >= (limit - 2))
|
||||||
|
+ if (limit - data <= 2)
|
||||||
|
return;
|
||||||
|
data += 2;
|
||||||
|
|
||||||
|
- if (data > (limit - 4))
|
||||||
|
+ if (limit - data < 4)
|
||||||
|
return;
|
||||||
|
n2s(data, type);
|
||||||
|
n2s(data, size);
|
||||||
|
@@ -1879,7 +1879,7 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
|
||||||
|
if (type != TLSEXT_TYPE_server_name)
|
||||||
|
return;
|
||||||
|
|
||||||
|
- if (data + size > limit)
|
||||||
|
+ if (limit - data < size)
|
||||||
|
return;
|
||||||
|
data += size;
|
||||||
|
|
||||||
|
@@ -1887,7 +1887,7 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
|
||||||
|
const size_t len1 = sizeof(kSafariExtensionsBlock);
|
||||||
|
const size_t len2 = sizeof(kSafariTLS12ExtensionsBlock);
|
||||||
|
|
||||||
|
- if (data + len1 + len2 != limit)
|
||||||
|
+ if (limit - data != (int)(len1 + len2))
|
||||||
|
return;
|
||||||
|
if (memcmp(data, kSafariExtensionsBlock, len1) != 0)
|
||||||
|
return;
|
||||||
|
@@ -1896,7 +1896,7 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
|
||||||
|
} else {
|
||||||
|
const size_t len = sizeof(kSafariExtensionsBlock);
|
||||||
|
|
||||||
|
- if (data + len != limit)
|
||||||
|
+ if (limit - data != (int)(len))
|
||||||
|
return;
|
||||||
|
if (memcmp(data, kSafariExtensionsBlock, len) != 0)
|
||||||
|
return;
|
||||||
|
@@ -2053,19 +2053,19 @@ static int ssl_scan_clienthello_tlsext(SSL *s, unsigned char **p,
|
||||||
|
if (data == limit)
|
||||||
|
goto ri_check;
|
||||||
|
|
||||||
|
- if (data > (limit - 2))
|
||||||
|
+ if (limit - data < 2)
|
||||||
|
goto err;
|
||||||
|
|
||||||
|
n2s(data, len);
|
||||||
|
|
||||||
|
- if (data + len != limit)
|
||||||
|
+ if (limit - data != len)
|
||||||
|
goto err;
|
||||||
|
|
||||||
|
- while (data <= (limit - 4)) {
|
||||||
|
+ while (limit - data >= 4) {
|
||||||
|
n2s(data, type);
|
||||||
|
n2s(data, size);
|
||||||
|
|
||||||
|
- if (data + size > (limit))
|
||||||
|
+ if (limit - data < size)
|
||||||
|
goto err;
|
||||||
|
# if 0
|
||||||
|
fprintf(stderr, "Received extension type %d size %d\n", type, size);
|
||||||
|
@@ -2472,18 +2472,18 @@ static int ssl_scan_clienthello_custom_tlsext(SSL *s,
|
||||||
|
if (s->hit || s->cert->srv_ext.meths_count == 0)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
- if (data >= limit - 2)
|
||||||
|
+ if (limit - data <= 2)
|
||||||
|
return 1;
|
||||||
|
n2s(data, len);
|
||||||
|
|
||||||
|
- if (data > limit - len)
|
||||||
|
+ if (limit - data < len)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
- while (data <= limit - 4) {
|
||||||
|
+ while (limit - data >= 4) {
|
||||||
|
n2s(data, type);
|
||||||
|
n2s(data, size);
|
||||||
|
|
||||||
|
- if (data + size > limit)
|
||||||
|
+ if (limit - data < size)
|
||||||
|
return 1;
|
||||||
|
if (custom_ext_parse(s, 1 /* server */ , type, data, size, al) <= 0)
|
||||||
|
return 0;
|
||||||
|
@@ -2569,20 +2569,20 @@ static int ssl_scan_serverhello_tlsext(SSL *s, unsigned char **p,
|
||||||
|
SSL_TLSEXT_HB_DONT_SEND_REQUESTS);
|
||||||
|
# endif
|
||||||
|
|
||||||
|
- if (data >= (d + n - 2))
|
||||||
|
+ if ((d + n) - data <= 2)
|
||||||
|
goto ri_check;
|
||||||
|
|
||||||
|
n2s(data, length);
|
||||||
|
- if (data + length != d + n) {
|
||||||
|
+ if ((d + n) - data != length) {
|
||||||
|
*al = SSL_AD_DECODE_ERROR;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
- while (data <= (d + n - 4)) {
|
||||||
|
+ while ((d + n) - data >= 4) {
|
||||||
|
n2s(data, type);
|
||||||
|
n2s(data, size);
|
||||||
|
|
||||||
|
- if (data + size > (d + n))
|
||||||
|
+ if ((d + n) - data < size)
|
||||||
|
goto ri_check;
|
||||||
|
|
||||||
|
if (s->tlsext_debug_cb)
|
||||||
|
@@ -3307,29 +3307,33 @@ int tls1_process_ticket(SSL *s, unsigned char *session_id, int len,
|
||||||
|
/* Skip past DTLS cookie */
|
||||||
|
if (SSL_IS_DTLS(s)) {
|
||||||
|
i = *(p++);
|
||||||
|
- p += i;
|
||||||
|
- if (p >= limit)
|
||||||
|
+
|
||||||
|
+ if (limit - p <= i)
|
||||||
|
return -1;
|
||||||
|
+
|
||||||
|
+ p += i;
|
||||||
|
}
|
||||||
|
/* Skip past cipher list */
|
||||||
|
n2s(p, i);
|
||||||
|
- p += i;
|
||||||
|
- if (p >= limit)
|
||||||
|
+ if (limit - p <= i)
|
||||||
|
return -1;
|
||||||
|
+ p += i;
|
||||||
|
+
|
||||||
|
/* Skip past compression algorithm list */
|
||||||
|
i = *(p++);
|
||||||
|
- p += i;
|
||||||
|
- if (p > limit)
|
||||||
|
+ if (limit - p < i)
|
||||||
|
return -1;
|
||||||
|
+ p += i;
|
||||||
|
+
|
||||||
|
/* Now at start of extensions */
|
||||||
|
- if ((p + 2) >= limit)
|
||||||
|
+ if (limit - p <= 2)
|
||||||
|
return 0;
|
||||||
|
n2s(p, i);
|
||||||
|
- while ((p + 4) <= limit) {
|
||||||
|
+ while (limit - p >= 4) {
|
||||||
|
unsigned short type, size;
|
||||||
|
n2s(p, type);
|
||||||
|
n2s(p, size);
|
||||||
|
- if (p + size > limit)
|
||||||
|
+ if (limit - p < size)
|
||||||
|
return 0;
|
||||||
|
if (type == TLSEXT_TYPE_session_ticket) {
|
||||||
|
int r;
|
||||||
|
--
|
||||||
|
2.8.4
|
||||||
|
|
|
@ -0,0 +1,112 @@
|
||||||
|
Fix CVE-2016-2178.
|
||||||
|
|
||||||
|
<https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2178>
|
||||||
|
|
||||||
|
Source:
|
||||||
|
<https://git.openssl.org/?p=openssl.git;a=commit;h=621eaf49a289bfac26d4cbcdb7396e796784c534>
|
||||||
|
<https://git.openssl.org/?p=openssl.git;a=commit;h=b7d0f2834e139a20560d64c73e2565e93715ce2b>
|
||||||
|
|
||||||
|
From 621eaf49a289bfac26d4cbcdb7396e796784c534 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cesar Pereida <cesar.pereida@aalto.fi>
|
||||||
|
Date: Mon, 23 May 2016 12:45:25 +0300
|
||||||
|
Subject: [PATCH 1/2] Fix DSA, preserve BN_FLG_CONSTTIME
|
||||||
|
|
||||||
|
Operations in the DSA signing algorithm should run in constant time in
|
||||||
|
order to avoid side channel attacks. A flaw in the OpenSSL DSA
|
||||||
|
implementation means that a non-constant time codepath is followed for
|
||||||
|
certain operations. This has been demonstrated through a cache-timing
|
||||||
|
attack to be sufficient for an attacker to recover the private DSA key.
|
||||||
|
|
||||||
|
CVE-2016-2178
|
||||||
|
|
||||||
|
Reviewed-by: Richard Levitte <levitte@openssl.org>
|
||||||
|
Reviewed-by: Matt Caswell <matt@openssl.org>
|
||||||
|
---
|
||||||
|
crypto/dsa/dsa_ossl.c | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/crypto/dsa/dsa_ossl.c b/crypto/dsa/dsa_ossl.c
|
||||||
|
index efc4f1b..b29eb4b 100644
|
||||||
|
--- a/crypto/dsa/dsa_ossl.c
|
||||||
|
+++ b/crypto/dsa/dsa_ossl.c
|
||||||
|
@@ -248,9 +248,6 @@ static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp,
|
||||||
|
if (!BN_rand_range(&k, dsa->q))
|
||||||
|
goto err;
|
||||||
|
while (BN_is_zero(&k)) ;
|
||||||
|
- if ((dsa->flags & DSA_FLAG_NO_EXP_CONSTTIME) == 0) {
|
||||||
|
- BN_set_flags(&k, BN_FLG_CONSTTIME);
|
||||||
|
- }
|
||||||
|
|
||||||
|
if (dsa->flags & DSA_FLAG_CACHE_MONT_P) {
|
||||||
|
if (!BN_MONT_CTX_set_locked(&dsa->method_mont_p,
|
||||||
|
@@ -279,9 +276,12 @@ static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp,
|
||||||
|
}
|
||||||
|
|
||||||
|
K = &kq;
|
||||||
|
+
|
||||||
|
+ BN_set_flags(K, BN_FLG_CONSTTIME);
|
||||||
|
} else {
|
||||||
|
K = &k;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
DSA_BN_MOD_EXP(goto err, dsa, r, dsa->g, K, dsa->p, ctx,
|
||||||
|
dsa->method_mont_p);
|
||||||
|
if (!BN_mod(r, r, dsa->q, ctx))
|
||||||
|
--
|
||||||
|
2.8.4
|
||||||
|
|
||||||
|
From b7d0f2834e139a20560d64c73e2565e93715ce2b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Matt Caswell <matt@openssl.org>
|
||||||
|
Date: Tue, 7 Jun 2016 09:12:51 +0100
|
||||||
|
Subject: [PATCH 2/2] More fix DSA, preserve BN_FLG_CONSTTIME
|
||||||
|
|
||||||
|
The previous "fix" still left "k" exposed to constant time problems in
|
||||||
|
the later BN_mod_inverse() call. Ensure both k and kq have the
|
||||||
|
BN_FLG_CONSTTIME flag set at the earliest opportunity after creation.
|
||||||
|
|
||||||
|
CVE-2016-2178
|
||||||
|
|
||||||
|
Reviewed-by: Rich Salz <rsalz@openssl.org>
|
||||||
|
---
|
||||||
|
crypto/dsa/dsa_ossl.c | 11 ++++++++---
|
||||||
|
1 file changed, 8 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/crypto/dsa/dsa_ossl.c b/crypto/dsa/dsa_ossl.c
|
||||||
|
index b29eb4b..58013a4 100644
|
||||||
|
--- a/crypto/dsa/dsa_ossl.c
|
||||||
|
+++ b/crypto/dsa/dsa_ossl.c
|
||||||
|
@@ -247,7 +247,12 @@ static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp,
|
||||||
|
do
|
||||||
|
if (!BN_rand_range(&k, dsa->q))
|
||||||
|
goto err;
|
||||||
|
- while (BN_is_zero(&k)) ;
|
||||||
|
+ while (BN_is_zero(&k));
|
||||||
|
+
|
||||||
|
+ if ((dsa->flags & DSA_FLAG_NO_EXP_CONSTTIME) == 0) {
|
||||||
|
+ BN_set_flags(&k, BN_FLG_CONSTTIME);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
|
||||||
|
if (dsa->flags & DSA_FLAG_CACHE_MONT_P) {
|
||||||
|
if (!BN_MONT_CTX_set_locked(&dsa->method_mont_p,
|
||||||
|
@@ -261,6 +266,8 @@ static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp,
|
||||||
|
if (!BN_copy(&kq, &k))
|
||||||
|
goto err;
|
||||||
|
|
||||||
|
+ BN_set_flags(&kq, BN_FLG_CONSTTIME);
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* We do not want timing information to leak the length of k, so we
|
||||||
|
* compute g^k using an equivalent exponent of fixed length. (This
|
||||||
|
@@ -276,8 +283,6 @@ static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp,
|
||||||
|
}
|
||||||
|
|
||||||
|
K = &kq;
|
||||||
|
-
|
||||||
|
- BN_set_flags(K, BN_FLG_CONSTTIME);
|
||||||
|
} else {
|
||||||
|
K = &k;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.8.4
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
Add support for '-h' (help).
|
||||||
|
|
||||||
|
https://github.com/PaulStoffregen/teensy_loader_cli/pull/26
|
||||||
|
|
||||||
|
---
|
||||||
|
teensy_loader_cli.c | 4 +++-
|
||||||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/teensy_loader_cli.c b/teensy_loader_cli.c
|
||||||
|
index d4a6cc5..0a06209 100644
|
||||||
|
--- a/teensy_loader_cli.c
|
||||||
|
+++ b/teensy_loader_cli.c
|
||||||
|
@@ -37,7 +37,8 @@ void usage(const char *err)
|
||||||
|
{
|
||||||
|
if(err != NULL) fprintf(stderr, "%s\n\n", err);
|
||||||
|
fprintf(stderr,
|
||||||
|
- "Usage: teensy_loader_cli --mcu=<MCU> [-w] [-h] [-n] [-b] [-v] <file.hex>\n"
|
||||||
|
+ "Usage: teensy_loader_cli --mcu=<MCU> [-h] [-w] [-n] [-b] [-v] <file.hex>\n"
|
||||||
|
+ "\t-h : Print this help message\n"
|
||||||
|
"\t-w : Wait for device to appear\n"
|
||||||
|
"\t-r : Use hard reboot if device not online\n"
|
||||||
|
"\t-s : Use soft reboot if device not online (Teensy3.x only)\n"
|
||||||
|
@@ -1081,6 +1082,7 @@ void parse_flag(char *arg)
|
||||||
|
int i;
|
||||||
|
for(i=1; arg[i]; i++) {
|
||||||
|
switch(arg[i]) {
|
||||||
|
+ case 'h': usage(NULL); break;
|
||||||
|
case 'w': wait_for_device_to_appear = 1; break;
|
||||||
|
case 'r': hard_reboot_device = 1; break;
|
||||||
|
case 's': soft_reboot_device = 1; break;
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
|
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
|
||||||
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
|
;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
|
||||||
|
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -2056,22 +2057,21 @@ in your modules in a \"Java-esque\" manner.")
|
||||||
(define-public perl-exporter-lite
|
(define-public perl-exporter-lite
|
||||||
(package
|
(package
|
||||||
(name "perl-exporter-lite")
|
(name "perl-exporter-lite")
|
||||||
(version "0.06")
|
(version "0.08")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/"
|
(uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/"
|
||||||
"Exporter-Lite-" version ".tar.gz"))
|
"Exporter-Lite-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0k4gkvid4fr8yvwj0axdx5111mzfw2iipls3qllxr364fqhmclpj"))))
|
"1hns15imih8z2h6zv3m1wwmv9fiysacsb52y94v6zf2cmw4kjny0"))))
|
||||||
(build-system perl-build-system)
|
(build-system perl-build-system)
|
||||||
(synopsis "Lightweight exporting of functions and variables")
|
(synopsis "Lightweight exporting of functions and variables")
|
||||||
(description
|
(description
|
||||||
"Exporter::Lite is an alternative to Exporter, intended to provide a
|
"Exporter::Lite is an alternative to Exporter, intended to provide a
|
||||||
lightweight subset of the most commonly-used functionality. It supports
|
lightweight subset of the most commonly-used functionality. It supports
|
||||||
import(), @@EXPORT and @@EXPORT_OK and not a whole lot else.")
|
import(), @@EXPORT and @@EXPORT_OK and not a whole lot else.")
|
||||||
(home-page (string-append "http://search.cpan.org/~neilb/"
|
(home-page "http://search.cpan.org/dist/Exporter-Lite")
|
||||||
"Exporter-Lite-" version))
|
|
||||||
(license (package-license perl))))
|
(license (package-license perl))))
|
||||||
|
|
||||||
(define-public perl-exporter-tiny
|
(define-public perl-exporter-tiny
|
||||||
|
@ -4974,14 +4974,14 @@ called as methods, which usually isn't want you want.")
|
||||||
(define-public perl-test-deep
|
(define-public perl-test-deep
|
||||||
(package
|
(package
|
||||||
(name "perl-test-deep")
|
(name "perl-test-deep")
|
||||||
(version "0.114")
|
(version "1.120")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
|
(uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
|
||||||
"Test-Deep-" version ".tar.gz"))
|
"Test-Deep-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"09yr47vw7vj27sdik312x08938higcij8ybyq8k67mlccx8cpqf0"))))
|
"1kdy06r0yg7zwarqglc9163vbfb0sfc4s6ld4pw5q7i9f7mghzi0"))))
|
||||||
(build-system perl-build-system)
|
(build-system perl-build-system)
|
||||||
(inputs `(("perl-test-tester" ,perl-test-tester)
|
(inputs `(("perl-test-tester" ,perl-test-tester)
|
||||||
("perl-test-nowarnings" ,perl-test-nowarnings)))
|
("perl-test-nowarnings" ,perl-test-nowarnings)))
|
||||||
|
@ -4991,8 +4991,7 @@ called as methods, which usually isn't want you want.")
|
||||||
that the values match, that arrays and hashes have the same elements and that
|
that the values match, that arrays and hashes have the same elements and that
|
||||||
references are blessed into the correct class. It also handles circular data
|
references are blessed into the correct class. It also handles circular data
|
||||||
structures without getting caught in an infinite loop.")
|
structures without getting caught in an infinite loop.")
|
||||||
(home-page (string-append "http://search.cpan.org/~rjbs/"
|
(home-page "http://search.cpan.org/dist/Test-Deep")
|
||||||
"Test-Deep-" version))
|
|
||||||
(license gpl1+))) ; or "Artistic License"
|
(license gpl1+))) ; or "Artistic License"
|
||||||
|
|
||||||
(define-public perl-test-differences
|
(define-public perl-test-differences
|
||||||
|
@ -5394,14 +5393,14 @@ makes fork(2) safe to use in test cases.")
|
||||||
(define-public perl-test-simple
|
(define-public perl-test-simple
|
||||||
(package
|
(package
|
||||||
(name "perl-test-simple")
|
(name "perl-test-simple")
|
||||||
(version "1.001014")
|
(version "1.302026")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/"
|
(uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/"
|
||||||
"Test-Simple-" version ".tar.gz"))
|
"Test-Simple-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0szi95shwwdvc4nqykzgx05g2m1001mjhvqqhjg5wypbi771992m"))))
|
"1mq1sykv48rgjamw4wxa290mnyjm0dw9w9lpzncnac9gfx18vm72"))))
|
||||||
(build-system perl-build-system)
|
(build-system perl-build-system)
|
||||||
(synopsis "Basic utilities for writing tests")
|
(synopsis "Basic utilities for writing tests")
|
||||||
(description
|
(description
|
||||||
|
|
|
@ -162,7 +162,7 @@ MTP, and much more.")
|
||||||
(define-public perl-image-exiftool
|
(define-public perl-image-exiftool
|
||||||
(package
|
(package
|
||||||
(name "perl-image-exiftool")
|
(name "perl-image-exiftool")
|
||||||
(version "9.70")
|
(version "10.20")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -170,7 +170,7 @@ MTP, and much more.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"074yxjgy50iacnjakdvac37wvrzrqmabkn0nzk0n70y3hssli7d5"))))
|
"0akdnxvb23ibcwa63ncibaj5m5k56cb34x8gy90z9lqcjl0f4sph"))))
|
||||||
(build-system perl-build-system)
|
(build-system perl-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:phases (alist-cons-after
|
'(#:phases (alist-cons-after
|
||||||
|
@ -184,8 +184,7 @@ MTP, and much more.")
|
||||||
(wrap-program (string-append out "/bin/exiftool")
|
(wrap-program (string-append out "/bin/exiftool")
|
||||||
`("PERL5LIB" prefix (,lib)))))
|
`("PERL5LIB" prefix (,lib)))))
|
||||||
%standard-phases)))
|
%standard-phases)))
|
||||||
(home-page
|
(home-page "http://search.cpan.org/dist/Image-ExifTool")
|
||||||
"http://search.cpan.org/~exiftool/Image-ExifTool-9.70/lib/Image/ExifTool.pod")
|
|
||||||
(synopsis "Program and Perl library to manipulate EXIF tags")
|
(synopsis "Program and Perl library to manipulate EXIF tags")
|
||||||
(description
|
(description
|
||||||
"This package provides the 'exiftool' command and the 'Image::ExifTool'
|
"This package provides the 'exiftool' command and the 'Image::ExifTool'
|
||||||
|
|
|
@ -173,14 +173,14 @@ colors, styles, options and details.")
|
||||||
(define-public asymptote
|
(define-public asymptote
|
||||||
(package
|
(package
|
||||||
(name "asymptote")
|
(name "asymptote")
|
||||||
(version "2.37")
|
(version "2.38")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://sourceforge/asymptote/"
|
(uri (string-append "mirror://sourceforge/asymptote/"
|
||||||
version "/asymptote-" version ".src.tgz"))
|
version "/asymptote-" version ".src.tgz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"16nh02m52mk9a53i8wc6l9vg710gnzr3lfbypcbvamghvaj0458i"))))
|
"1dxwvq0xighqckkjkjva8s0igxfgy1j25z81pbwvlz6jzsrxpip9"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
;; Note: The 'asy' binary retains a reference to docdir for use with its
|
;; Note: The 'asy' binary retains a reference to docdir for use with its
|
||||||
;; "help" command in interactive mode, so adding a "doc" output is not
|
;; "help" command in interactive mode, so adding a "doc" output is not
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2013, 2014, 2016 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2013, 2014, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -119,3 +119,31 @@ meaningful to that file. Any application that links in that file will get the
|
||||||
flags, and the gflags library will automatically handle that flag
|
flags, and the gflags library will automatically handle that flag
|
||||||
appropriately.")
|
appropriately.")
|
||||||
(license bsd-3)))
|
(license bsd-3)))
|
||||||
|
|
||||||
|
(define-public gengetopt
|
||||||
|
(package
|
||||||
|
(name "gengetopt")
|
||||||
|
(version "2.22.6")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://gnu/gengetopt/gengetopt-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1xq1kcfs6hri101ss4dhym0jn96z4v6jdvx288mfywadc245mc1h"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:parallel-build? #f)) ; not supported
|
||||||
|
(synopsis "Create parsers for command line options")
|
||||||
|
(description
|
||||||
|
"GNU Gengetopt is a program to generate a C/C++ function for parsing
|
||||||
|
command-line options using the getopt_long function found in GNU
|
||||||
|
libc, removing some of the tedium of this task for large programs
|
||||||
|
that accept many options. The options parsed by the generated
|
||||||
|
function may be in both short (e.g., \"-h\") and long (\"--help\")
|
||||||
|
formats, as specified by the GNU coding standards. Additionally, the
|
||||||
|
output of the standard options \"--help\" and \"--version\" is generated
|
||||||
|
automatically.")
|
||||||
|
(home-page "http://www.gnu.org/software/gengetopt/gengetopt.html")
|
||||||
|
(license gpl3+)))
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
%standard-phases)))
|
%standard-phases)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("aspell" ,aspell)
|
`(("aspell" ,aspell)
|
||||||
("qt" ,qt)
|
("qtbase" ,qtbase)
|
||||||
("qjson" ,qjson)
|
("qjson" ,qjson)
|
||||||
("tidy" ,tidy)))
|
("tidy" ,tidy)))
|
||||||
(synopsis "Qt-based pump.io client")
|
(synopsis "Qt-based pump.io client")
|
||||||
|
|
|
@ -5735,6 +5735,63 @@ printing of sub-tables by specifying a row range.")
|
||||||
(define-public python2-prettytable
|
(define-public python2-prettytable
|
||||||
(package-with-python2 python-prettytable))
|
(package-with-python2 python-prettytable))
|
||||||
|
|
||||||
|
(define-public python-tables
|
||||||
|
(package
|
||||||
|
(name "python-tables")
|
||||||
|
(version "3.2.2")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "tables" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"117s6w7s3yxafpmf3zz3svana7xfrsviw01va1xp7h8ylx8v6r1m"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
`(;; FIXME: python-build-system does not pass configure-flags to "build"
|
||||||
|
;; or "check", so we must override the build and check phases.
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'use-gcc
|
||||||
|
(lambda _
|
||||||
|
(substitute* "setup.py"
|
||||||
|
(("compiler = new_compiler\\(\\)" line)
|
||||||
|
(string-append line
|
||||||
|
"\ncompiler.set_executables(compiler='gcc',"
|
||||||
|
"compiler_so='gcc',"
|
||||||
|
"linker_exe='gcc',"
|
||||||
|
"linker_so='gcc -shared')")))
|
||||||
|
#t))
|
||||||
|
(replace 'build
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(zero? (system* "python" "setup.py" "build"
|
||||||
|
(string-append "--hdf5="
|
||||||
|
(assoc-ref inputs "hdf5"))))))
|
||||||
|
(replace 'check
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(zero? (system* "python" "setup.py" "check"
|
||||||
|
(string-append "--hdf5="
|
||||||
|
(assoc-ref inputs "hdf5")))))))))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-numexpr" ,python-numexpr)
|
||||||
|
("python-numpy" ,python-numpy)))
|
||||||
|
(native-inputs
|
||||||
|
`(("python-setuptools" ,python-setuptools)
|
||||||
|
("python-cython" ,python-cython)
|
||||||
|
("pkg-config" ,pkg-config)))
|
||||||
|
(inputs
|
||||||
|
`(("hdf5" ,hdf5)
|
||||||
|
("bzip2" ,bzip2)
|
||||||
|
("zlib" ,zlib)))
|
||||||
|
(home-page "http://www.pytables.org/")
|
||||||
|
(synopsis "Hierarchical datasets for Python")
|
||||||
|
(description "PyTables is a package for managing hierarchical datasets and
|
||||||
|
designed to efficently cope with extremely large amounts of data.")
|
||||||
|
(license bsd-3)))
|
||||||
|
|
||||||
|
(define-public python2-tables
|
||||||
|
(package-with-python2 python-tables))
|
||||||
|
|
||||||
(define-public python-pyasn1
|
(define-public python-pyasn1
|
||||||
(package
|
(package
|
||||||
(name "python-pyasn1")
|
(name "python-pyasn1")
|
||||||
|
@ -8728,6 +8785,43 @@ LDFLAGS and parse the output to build extensions with setup.py.")
|
||||||
(define-public python2-pkgconfig
|
(define-public python2-pkgconfig
|
||||||
(package-with-python2 python-pkgconfig))
|
(package-with-python2 python-pkgconfig))
|
||||||
|
|
||||||
|
(define-public python-bz2file
|
||||||
|
(package
|
||||||
|
(name "python-bz2file")
|
||||||
|
(version "0.98")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "bz2file" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"126s53fkpx04f33a829yqqk8fj4png3qwg4m66cvlmhmwc8zihb4"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
;; python setup.py test does not work as of 0.98
|
||||||
|
;; but there is only the one test file
|
||||||
|
(replace 'check
|
||||||
|
(lambda _ (zero? (system* "python" "test_bz2file.py")))))))
|
||||||
|
(home-page "https://github.com/nvawda/bz2file")
|
||||||
|
(synopsis "Read and write bzip2-compressed files")
|
||||||
|
(description
|
||||||
|
"Bz2file is a Python library for reading and writing bzip2-compressed
|
||||||
|
files. It contains a drop-in replacement for the I/O interface in the
|
||||||
|
standard library's @code{bz2} module, including features from the latest
|
||||||
|
development version of CPython that are not available in older releases.")
|
||||||
|
(license asl2.0)
|
||||||
|
(properties `((python2-variant . ,(delay python2-bz2file))))))
|
||||||
|
|
||||||
|
(define-public python2-bz2file
|
||||||
|
(let ((base (package-with-python2
|
||||||
|
(strip-python2-variant python-bz2file))))
|
||||||
|
(package
|
||||||
|
(inherit base)
|
||||||
|
(native-inputs
|
||||||
|
`(("python2-setuptools" ,python2-setuptools))))))
|
||||||
|
|
||||||
(define-public python-cysignals
|
(define-public python-cysignals
|
||||||
(package
|
(package
|
||||||
(name "python-cysignals")
|
(name "python-cysignals")
|
||||||
|
@ -9122,7 +9216,10 @@ programming errors.")
|
||||||
(version "2.4.0")
|
(version "2.4.0")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "pykafka" version))
|
(uri (string-append
|
||||||
|
"https://pypi.python.org/packages/8b/3e/"
|
||||||
|
"384eeff406b06315738b62483fd2126c6e4f544167116b17cc04ea7d2a59/"
|
||||||
|
"pykafka-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1id6sr159p6aa13bxcqyr9gln8sqg1l0ddzns5iws8kk5q1p5cfv"))))
|
"1id6sr159p6aa13bxcqyr9gln8sqg1l0ddzns5iws8kk5q1p5cfv"))))
|
||||||
|
@ -9145,3 +9242,33 @@ are optionally backed by a C extension built on librdkafka.")
|
||||||
|
|
||||||
(define-public python2-pykafka
|
(define-public python2-pykafka
|
||||||
(package-with-python2 python-pykafka))
|
(package-with-python2 python-pykafka))
|
||||||
|
|
||||||
|
(define-public python-wcwidth
|
||||||
|
(package
|
||||||
|
(name "python-wcwidth")
|
||||||
|
(version "0.1.6")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"https://pypi.python.org/packages/"
|
||||||
|
"c2/d1/7689293086a8d5320025080cde0e3155b94ae0a7496fb89a3fbaa92c354a/"
|
||||||
|
"wcwidth-" version ".tar.gz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"02wjrpf001gjdjsaxxbzcwfg19crlk2dbddayrfc2v06f53yrcyw"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(home-page "https://github.com/jquast/wcwidth")
|
||||||
|
(synopsis "Measure number of terminal column cells of wide-character codes.")
|
||||||
|
(description "Wcwidth measures the number of terminal column cells of
|
||||||
|
wide-character codes. It is useful for those implementing a terminal emulator,
|
||||||
|
or programs that carefully produce output to be interpreted by one. It is a
|
||||||
|
Python implementation of the @code{wcwidth} and @code{wcswidth} C functions
|
||||||
|
specified in POSIX.1-2001 and POSIX.1-2008.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python2-wcwidth
|
||||||
|
(package
|
||||||
|
(inherit (package-with-python2
|
||||||
|
(strip-python2-variant python-wcwidth)))
|
||||||
|
(native-inputs `(("python2-setuptools" ,python2-setuptools)))))
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
#:use-module (gnu packages databases)
|
#:use-module (gnu packages databases)
|
||||||
#:use-module (gnu packages fontutils)
|
#:use-module (gnu packages fontutils)
|
||||||
#:use-module (gnu packages flex)
|
#:use-module (gnu packages flex)
|
||||||
|
#:use-module (gnu packages freedesktop)
|
||||||
#:use-module (gnu packages gl)
|
#:use-module (gnu packages gl)
|
||||||
#:use-module (gnu packages glib)
|
#:use-module (gnu packages glib)
|
||||||
#:use-module (gnu packages gnuzilla)
|
#:use-module (gnu packages gnuzilla)
|
||||||
|
@ -431,6 +432,306 @@ developers using C++ or QML, a CSS & JavaScript like language.")
|
||||||
developers using C++ or QML, a CSS & JavaScript like language.")
|
developers using C++ or QML, a CSS & JavaScript like language.")
|
||||||
(license (list lgpl2.1 lgpl3))))
|
(license (list lgpl2.1 lgpl3))))
|
||||||
|
|
||||||
|
(define-public qtsvg
|
||||||
|
(package (inherit qtbase)
|
||||||
|
(name "qtsvg")
|
||||||
|
(version "5.6.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://download.qt.io/official_releases/qt/"
|
||||||
|
(version-major+minor version) "/" version
|
||||||
|
"/submodules/" name "-opensource-src-"
|
||||||
|
version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"08ca5g46g75acy27jfnvnalmcias5hxmjp7491v3y4k9y7a4ybpi"))))
|
||||||
|
(propagated-inputs `())
|
||||||
|
(native-inputs `(("perl" ,perl)))
|
||||||
|
(inputs
|
||||||
|
`(("mesa" ,mesa)
|
||||||
|
("qtbase" ,qtbase)
|
||||||
|
("zlib" ,zlib)))
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(replace 'configure
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let ((out (assoc-ref outputs "out")))
|
||||||
|
(zero? (system* "qmake" (string-append "PREFIX=" out))))))
|
||||||
|
(add-before 'install 'fix-Makefiles
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let ((out (assoc-ref outputs "out"))
|
||||||
|
(qtbase (assoc-ref inputs "qtbase")))
|
||||||
|
(substitute* (find-files "." "Makefile")
|
||||||
|
(((string-append "INSTALL_ROOT)" qtbase))
|
||||||
|
(string-append "INSTALL_ROOT)" out)))))))))))
|
||||||
|
|
||||||
|
(define-public qtimageformats
|
||||||
|
(package (inherit qtsvg)
|
||||||
|
(name "qtimageformats")
|
||||||
|
(version "5.6.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://download.qt.io/official_releases/qt/"
|
||||||
|
(version-major+minor version) "/" version
|
||||||
|
"/submodules/" name "-opensource-src-"
|
||||||
|
version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"020v1148433zx4g87z2r8fgff32n0laajxqqsja1l3yzz7jbrwvl"))))
|
||||||
|
(native-inputs `())
|
||||||
|
(inputs
|
||||||
|
`(("libmng" ,libmng)
|
||||||
|
("libtiff" ,libtiff)
|
||||||
|
("libwebp" ,libwebp)
|
||||||
|
("mesa" ,mesa)
|
||||||
|
("qtbase" ,qtbase)
|
||||||
|
("zlib" ,zlib)))))
|
||||||
|
|
||||||
|
(define-public qtx11extras
|
||||||
|
(package (inherit qtsvg)
|
||||||
|
(name "qtx11extras")
|
||||||
|
(version "5.6.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://download.qt.io/official_releases/qt/"
|
||||||
|
(version-major+minor version) "/" version
|
||||||
|
"/submodules/" name "-opensource-src-"
|
||||||
|
version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0l736qiz8adrnh267xz63hv4sph6nhy90h836qfnnmv3p78ipsz8"))))
|
||||||
|
(native-inputs `(("perl" ,perl)))
|
||||||
|
(inputs
|
||||||
|
`(("mesa" ,mesa)
|
||||||
|
("qtbase" ,qtbase)))))
|
||||||
|
|
||||||
|
(define-public qtxmlpatterns
|
||||||
|
(package (inherit qtsvg)
|
||||||
|
(name "qtxmlpatterns")
|
||||||
|
(version "5.6.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://download.qt.io/official_releases/qt/"
|
||||||
|
(version-major+minor version) "/" version
|
||||||
|
"/submodules/" name "-opensource-src-"
|
||||||
|
version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0q412jv3xbg7v05b8pbahifwx17gzlp96s90akh6zwhpm8i6xx34"))))
|
||||||
|
(native-inputs `(("perl" ,perl)))
|
||||||
|
(inputs `(("qtbase" ,qtbase)))))
|
||||||
|
|
||||||
|
(define-public qtdeclarative
|
||||||
|
(package (inherit qtsvg)
|
||||||
|
(name "qtdeclarative")
|
||||||
|
(version "5.6.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://download.qt.io/official_releases/qt/"
|
||||||
|
(version-major+minor version) "/" version
|
||||||
|
"/submodules/" name "-opensource-src-"
|
||||||
|
version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1d2217kxk85kpi7ls08b41hqzy26hvch8m4cgzq6km5sqi5zvz0j"))))
|
||||||
|
(native-inputs
|
||||||
|
`(("perl" ,perl)
|
||||||
|
("pkg-config" ,pkg-config)
|
||||||
|
("python" ,python-2)
|
||||||
|
("qtsvg" ,qtsvg)
|
||||||
|
("qtxmlpatterns" ,qtxmlpatterns)))
|
||||||
|
(inputs
|
||||||
|
`(("mesa" ,mesa)
|
||||||
|
("qtbase" ,qtbase)))))
|
||||||
|
|
||||||
|
(define-public qtconnectivity
|
||||||
|
(package (inherit qtsvg)
|
||||||
|
(name "qtconnectivity")
|
||||||
|
(version "5.6.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://download.qt.io/official_releases/qt/"
|
||||||
|
(version-major+minor version) "/" version
|
||||||
|
"/submodules/" name "-opensource-src-"
|
||||||
|
version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"06fr9321f52kf0nda9zjjfzp5694hbnx0y0v315iw28mnpvandas"))))
|
||||||
|
(native-inputs
|
||||||
|
`(("perl" ,perl)
|
||||||
|
("pkg-config" ,pkg-config)
|
||||||
|
("qtdeclarative" ,qtdeclarative)))
|
||||||
|
(inputs
|
||||||
|
`(("bluez" ,bluez)
|
||||||
|
("qtbase" ,qtbase)))))
|
||||||
|
|
||||||
|
(define-public qtwebsockets
|
||||||
|
(package (inherit qtsvg)
|
||||||
|
(name "qtwebsockets")
|
||||||
|
(version "5.6.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://download.qt.io/official_releases/qt/"
|
||||||
|
(version-major+minor version) "/" version
|
||||||
|
"/submodules/" name "-opensource-src-"
|
||||||
|
version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0fkj52i4yi6gmq4jfjgdij08cspxspac6mbpf0fknnllimmkl7jm"))))
|
||||||
|
(native-inputs
|
||||||
|
`(("perl" ,perl)
|
||||||
|
("qtdeclarative" ,qtdeclarative)))
|
||||||
|
(inputs `(("qtbase" ,qtbase)))))
|
||||||
|
|
||||||
|
(define-public qtsensors
|
||||||
|
(package (inherit qtsvg)
|
||||||
|
(name "qtsensors")
|
||||||
|
(version "5.6.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://download.qt.io/official_releases/qt/"
|
||||||
|
(version-major+minor version) "/" version
|
||||||
|
"/submodules/" name "-opensource-src-"
|
||||||
|
version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0bll7ll6s5g8w89knyrc0famjwqyfzwpn512m1f96bf6xwacs967"))))
|
||||||
|
(native-inputs
|
||||||
|
`(("perl" ,perl)
|
||||||
|
("qtdeclarative" ,qtdeclarative)))
|
||||||
|
(inputs `(("qtbase" ,qtbase)))))
|
||||||
|
|
||||||
|
(define-public qtmultimedia
|
||||||
|
(package (inherit qtsvg)
|
||||||
|
(name "qtmultimedia")
|
||||||
|
(version "5.6.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://download.qt.io/official_releases/qt/"
|
||||||
|
(version-major+minor version) "/" version
|
||||||
|
"/submodules/" name "-opensource-src-"
|
||||||
|
version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"058523c2qra3d8fq46ygcndnkrbwlh316zy28s2cr5pjr5gmnjyj"))))
|
||||||
|
(native-inputs
|
||||||
|
`(("perl" ,perl)
|
||||||
|
("pkg-config" ,pkg-config)
|
||||||
|
("python" ,python-2)
|
||||||
|
("qtdeclarative" ,qtdeclarative)))
|
||||||
|
(inputs
|
||||||
|
`(("alsa-lib" ,alsa-lib)
|
||||||
|
("mesa" ,mesa)
|
||||||
|
("pulseaudio" ,pulseaudio)
|
||||||
|
("qtbase" ,qtbase)))))
|
||||||
|
|
||||||
|
(define-public qtwayland
|
||||||
|
(package (inherit qtsvg)
|
||||||
|
(name "qtwayland")
|
||||||
|
(version "5.6.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://download.qt.io/official_releases/qt/"
|
||||||
|
(version-major+minor version) "/" version
|
||||||
|
"/submodules/" name "-opensource-src-"
|
||||||
|
version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1jgghjfrg0wwyfzfwgwhagwxz9k936ylv3w2l9bwlpql8rgm8d11"))))
|
||||||
|
(native-inputs
|
||||||
|
`(("glib" ,glib)
|
||||||
|
("perl" ,perl)
|
||||||
|
("pkg-config" ,pkg-config)
|
||||||
|
("qtdeclarative" ,qtdeclarative)))
|
||||||
|
(inputs
|
||||||
|
`(("fontconfig" ,fontconfig)
|
||||||
|
("freetype" ,freetype)
|
||||||
|
("libx11" ,libx11)
|
||||||
|
("libxcomposite" ,libxcomposite)
|
||||||
|
("libxext" ,libxext)
|
||||||
|
("libxkbcommon" ,libxkbcommon)
|
||||||
|
("libxrender" ,libxrender)
|
||||||
|
("mesa" ,mesa)
|
||||||
|
("mtdev" ,mtdev)
|
||||||
|
("qtbase" ,qtbase)
|
||||||
|
("wayland" ,wayland)))))
|
||||||
|
|
||||||
|
(define-public qtserialport
|
||||||
|
(package (inherit qtsvg)
|
||||||
|
(name "qtserialport")
|
||||||
|
(version "5.6.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://download.qt.io/official_releases/qt/"
|
||||||
|
(version-major+minor version) "/" version
|
||||||
|
"/submodules/" name "-opensource-src-"
|
||||||
|
version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1hp63cgqhps6y1k041lzhcb2b0rcpcmszabnn293q5ilbvla4x0b"))))
|
||||||
|
(native-inputs `(("perl" ,perl)))
|
||||||
|
(inputs `(("qtbase" ,qtbase)))))
|
||||||
|
|
||||||
|
(define-public qtwebchannel
|
||||||
|
(package (inherit qtsvg)
|
||||||
|
(name "qtwebchannel")
|
||||||
|
(version "5.6.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://download.qt.io/official_releases/qt/"
|
||||||
|
(version-major+minor version) "/" version
|
||||||
|
"/submodules/" name "-opensource-src-"
|
||||||
|
version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"01q80917a1048hdhaii4v50dqs84h16lc9w3v99r9xvspk8vab7q"))))
|
||||||
|
(native-inputs
|
||||||
|
`(("perl" ,perl)
|
||||||
|
("qtdeclarative" ,qtdeclarative)
|
||||||
|
("qtwebsockets" ,qtwebsockets)))
|
||||||
|
(inputs `(("qtbase" ,qtbase)))))
|
||||||
|
|
||||||
|
(define-public qtlocation
|
||||||
|
(package (inherit qtsvg)
|
||||||
|
(name "qtlocation")
|
||||||
|
(version "5.6.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://download.qt.io/official_releases/qt/"
|
||||||
|
(version-major+minor version) "/" version
|
||||||
|
"/submodules/" name "-opensource-src-"
|
||||||
|
version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0qahs7a2n3l4h0bl8bnwci9mzy1vra3zncnzr40csic9ys67ddfk"))))
|
||||||
|
(native-inputs
|
||||||
|
`(("perl" ,perl)
|
||||||
|
("qtdeclarative" ,qtdeclarative)
|
||||||
|
;("qtquickcontrols" ,qtquickcontrols)
|
||||||
|
("qtserialport" ,qtserialport)))
|
||||||
|
(inputs `(("qtbase" ,qtbase)))))
|
||||||
|
|
||||||
|
(define-public qttools
|
||||||
|
(package (inherit qtsvg)
|
||||||
|
(name "qttools")
|
||||||
|
(version "5.6.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://download.qt.io/official_releases/qt/"
|
||||||
|
(version-major+minor version) "/" version
|
||||||
|
"/submodules/" name "-opensource-src-"
|
||||||
|
version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0wbzq60d7lkvlb7b5lqcw87qgy6kyjz1npjavz8f4grdxsaqi8vp"))))
|
||||||
|
(native-inputs
|
||||||
|
`(("perl" ,perl)
|
||||||
|
("qtdeclarative" ,qtdeclarative)))
|
||||||
|
(inputs
|
||||||
|
`(("mesa" ,mesa)
|
||||||
|
("qtbase" ,qtbase)))))
|
||||||
|
|
||||||
(define-public qjson
|
(define-public qjson
|
||||||
(package
|
(package
|
||||||
(name "qjson")
|
(name "qjson")
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||||
|
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -59,7 +60,9 @@
|
||||||
("libxml2" ,libxml2)
|
("libxml2" ,libxml2)
|
||||||
("python" ,python-2)
|
("python" ,python-2)
|
||||||
("freetype" ,freetype)
|
("freetype" ,freetype)
|
||||||
("qt" ,qt)
|
("qtbase" ,qtbase)
|
||||||
|
("qtdeclarative" ,qtdeclarative)
|
||||||
|
("qttools" ,qttools)
|
||||||
("zlib" ,zlib)))
|
("zlib" ,zlib)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("util-linux" ,util-linux)
|
`(("util-linux" ,util-linux)
|
||||||
|
|
|
@ -195,7 +195,9 @@ required structures.")
|
||||||
(base32
|
(base32
|
||||||
"06996ds1rk8xhnyb5y273a7xkcxhggp4bq1g02rab55d7bjhfh0x"))
|
"06996ds1rk8xhnyb5y273a7xkcxhggp4bq1g02rab55d7bjhfh0x"))
|
||||||
(patches (search-patches "openssl-runpath.patch"
|
(patches (search-patches "openssl-runpath.patch"
|
||||||
"openssl-c-rehash-in.patch"))))
|
"openssl-c-rehash-in.patch"
|
||||||
|
"openssl-CVE-2016-2177.patch"
|
||||||
|
"openssl-CVE-2016-2178.patch"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(outputs '("out"
|
(outputs '("out"
|
||||||
"doc" ;1.5MiB of man3 pages
|
"doc" ;1.5MiB of man3 pages
|
||||||
|
@ -322,7 +324,7 @@ required structures.")
|
||||||
(define-public libressl
|
(define-public libressl
|
||||||
(package
|
(package
|
||||||
(name "libressl")
|
(name "libressl")
|
||||||
(version "2.3.5")
|
(version "2.3.6")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -331,7 +333,7 @@ required structures.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0fvmifz61zfq6byy4dh1qqdg9fpbdsyldjwx5hlcgg6ywxf2f9gl"))))
|
"1yipsp1ici207nbminbf1knh252kzvqg036v0xpx0fw1wrwlg2im"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-search-paths
|
(native-search-paths
|
||||||
;; FIXME: These two variables must designate a single file or directory
|
;; FIXME: These two variables must designate a single file or directory
|
||||||
|
|
|
@ -869,17 +869,17 @@ projects while introducing many more.")
|
||||||
(define-public youtube-dl
|
(define-public youtube-dl
|
||||||
(package
|
(package
|
||||||
(name "youtube-dl")
|
(name "youtube-dl")
|
||||||
(version "2016.05.01")
|
(version "2016.06.14")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "http://youtube-dl.org/downloads/"
|
(uri (string-append "https://youtube-dl.org/downloads/"
|
||||||
version "/youtube-dl-"
|
version "/youtube-dl-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1w04afmwq5pjvp3nl2k59q0cigqrj9n8fwkydcfldwpq83l15j5d"))))
|
"0fmvpqipc1xwagvk7ih4slmv1xz1rb6s8wpndhypwvrq4pnnm9ns"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(home-page "http://youtube-dl.org")
|
(home-page "https://youtube-dl.org")
|
||||||
(arguments
|
(arguments
|
||||||
;; The problem here is that the directory for the man page and completion
|
;; The problem here is that the directory for the man page and completion
|
||||||
;; files is relative, and for some reason, setup.py uses the
|
;; files is relative, and for some reason, setup.py uses the
|
||||||
|
@ -1058,7 +1058,7 @@ for use with HTML5 video.")
|
||||||
(define-public avidemux
|
(define-public avidemux
|
||||||
(package
|
(package
|
||||||
(name "avidemux")
|
(name "avidemux")
|
||||||
(version "2.6.10")
|
(version "2.6.12")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -1066,7 +1066,7 @@ for use with HTML5 video.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1vas43bwb15q2wv3dpp7fgp8dc6szinmwl7i0ziq2vv5l2128v0p"))
|
"0nz52yih8sff53inndkh2dba759xjzsh4b8xjww419lcpk0qp6kn"))
|
||||||
(patches (search-patches "avidemux-install-to-lib.patch"))))
|
(patches (search-patches "avidemux-install-to-lib.patch"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
|
@ -1080,13 +1080,16 @@ for use with HTML5 video.")
|
||||||
("glu" ,glu)
|
("glu" ,glu)
|
||||||
("jack" ,jack-1)
|
("jack" ,jack-1)
|
||||||
("lame" ,lame)
|
("lame" ,lame)
|
||||||
|
("libva" ,libva)
|
||||||
|
("libvdpau" ,libvdpau)
|
||||||
("libvorbis" ,libvorbis)
|
("libvorbis" ,libvorbis)
|
||||||
("libvpx" ,libvpx)
|
("libvpx" ,libvpx)
|
||||||
("libxv" ,libxv)
|
("libxv" ,libxv)
|
||||||
("perl" ,perl)
|
("perl" ,perl)
|
||||||
("pulseaudio" ,pulseaudio)
|
("pulseaudio" ,pulseaudio)
|
||||||
("python" ,python-wrapper)
|
("python" ,python-wrapper)
|
||||||
("qt" ,qt)
|
("qtbase" ,qtbase)
|
||||||
|
("qttools" ,qttools)
|
||||||
("sdl" ,sdl)
|
("sdl" ,sdl)
|
||||||
("sqlite" ,sqlite)
|
("sqlite" ,sqlite)
|
||||||
("yasm" ,yasm)
|
("yasm" ,yasm)
|
||||||
|
@ -1096,41 +1099,41 @@ for use with HTML5 video.")
|
||||||
#:phases
|
#:phases
|
||||||
;; Make sure files inside the included ffmpeg tarball are
|
;; Make sure files inside the included ffmpeg tarball are
|
||||||
;; patch-shebanged.
|
;; patch-shebanged.
|
||||||
(alist-cons-before
|
(modify-phases %standard-phases
|
||||||
'patch-source-shebangs 'unpack-ffmpeg
|
(add-before 'patch-source-shebangs 'unpack-ffmpeg
|
||||||
(lambda _
|
|
||||||
(with-directory-excursion "avidemux_core/ffmpeg_package"
|
|
||||||
(system* "tar" "xf" "ffmpeg-2.6.1.tar.bz2")
|
|
||||||
(delete-file "ffmpeg-2.6.1.tar.bz2")))
|
|
||||||
(alist-cons-after
|
|
||||||
'patch-source-shebangs 'repack-ffmpeg
|
|
||||||
(lambda _
|
(lambda _
|
||||||
(with-directory-excursion "avidemux_core/ffmpeg_package"
|
(with-directory-excursion "avidemux_core/ffmpeg_package"
|
||||||
(substitute* "ffmpeg-2.6.1/configure"
|
(system* "tar" "xf" "ffmpeg-2.7.6.tar.bz2")
|
||||||
|
(delete-file "ffmpeg-2.7.6.tar.bz2"))))
|
||||||
|
(add-after 'patch-source-shebangs 'repack-ffmpeg
|
||||||
|
(lambda _
|
||||||
|
(with-directory-excursion "avidemux_core/ffmpeg_package"
|
||||||
|
(substitute* "ffmpeg-2.7.6/configure"
|
||||||
(("#! /bin/sh") (string-append "#!" (which "bash"))))
|
(("#! /bin/sh") (string-append "#!" (which "bash"))))
|
||||||
(system* "tar" "cjf" "ffmpeg-2.6.1.tar.bz2" "ffmpeg-2.6.1"
|
(system* "tar" "cjf" "ffmpeg-2.7.6.tar.bz2" "ffmpeg-2.7.6"
|
||||||
;; avoid non-determinism in the archive
|
;; avoid non-determinism in the archive
|
||||||
"--sort=name" "--mtime=@0"
|
"--sort=name" "--mtime=@0"
|
||||||
"--owner=root:0" "--group=root:0")
|
"--owner=root:0" "--group=root:0")
|
||||||
(delete-file-recursively "ffmpeg-2.6.1")))
|
(delete-file-recursively "ffmpeg-2.7.6"))))
|
||||||
(alist-replace 'configure
|
(replace 'configure
|
||||||
(lambda _
|
(lambda _
|
||||||
;; Copy-paste settings from the cmake build system.
|
;; Copy-paste settings from the cmake build system.
|
||||||
(setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
|
(setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
|
||||||
(setenv "CMAKE_INCLUDE_PATH" (getenv "C_INCLUDE_PATH")))
|
(setenv "CMAKE_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))))
|
||||||
(alist-replace 'build
|
(replace 'build
|
||||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
(let*
|
(let*
|
||||||
((out (assoc-ref outputs "out"))
|
((out (assoc-ref outputs "out"))
|
||||||
(lib (string-append out "/lib"))
|
(lib (string-append out "/lib"))
|
||||||
(top (getcwd))
|
(top (getcwd))
|
||||||
(sdl (assoc-ref inputs "sdl"))
|
(sdl (assoc-ref inputs "sdl"))
|
||||||
(build_component
|
(build_component
|
||||||
(lambda* (component srcdir #:optional (args '()))
|
(lambda* (component srcdir #:optional (args '()))
|
||||||
(let ((builddir (string-append "build_" component)))
|
(let ((builddir (string-append "build_" component)))
|
||||||
(mkdir builddir)
|
(mkdir builddir)
|
||||||
(with-directory-excursion builddir
|
(with-directory-excursion builddir
|
||||||
(zero? (and
|
(zero?
|
||||||
|
(and
|
||||||
(apply system* "cmake"
|
(apply system* "cmake"
|
||||||
"-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE"
|
"-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE"
|
||||||
(string-append "-DCMAKE_INSTALL_PREFIX=" out)
|
(string-append "-DCMAKE_INSTALL_PREFIX=" out)
|
||||||
|
@ -1143,26 +1146,25 @@ for use with HTML5 video.")
|
||||||
(string-append "../" srcdir)
|
(string-append "../" srcdir)
|
||||||
"-DENABLE_QT5=True"
|
"-DENABLE_QT5=True"
|
||||||
args)
|
args)
|
||||||
(system* "make" "-j"
|
(system* "make" "-j"
|
||||||
(number->string (parallel-job-count)))
|
(number->string (parallel-job-count)))
|
||||||
(system* "make" "install"))))))))
|
(system* "make" "install"))))))))
|
||||||
(mkdir out)
|
(mkdir out)
|
||||||
(and (build_component "core" "avidemux_core")
|
(and (build_component "core" "avidemux_core")
|
||||||
(build_component "cli" "avidemux/cli")
|
(build_component "cli" "avidemux/cli")
|
||||||
(build_component "qt4" "avidemux/qt4")
|
(build_component "qt4" "avidemux/qt4")
|
||||||
(build_component "plugins_common" "avidemux_plugins"
|
(build_component "plugins_common" "avidemux_plugins"
|
||||||
'("-DPLUGIN_UI=COMMON"))
|
'("-DPLUGIN_UI=COMMON"))
|
||||||
(build_component "plugins_cli" "avidemux_plugins"
|
(build_component "plugins_cli" "avidemux_plugins"
|
||||||
'("-DPLUGIN_UI=CLI"))
|
'("-DPLUGIN_UI=CLI"))
|
||||||
(build_component "plugins_qt4" "avidemux_plugins"
|
(build_component "plugins_qt4" "avidemux_plugins"
|
||||||
'("-DPLUGIN_UI=QT4"))
|
'("-DPLUGIN_UI=QT4"))
|
||||||
(build_component "plugins_settings" "avidemux_plugins"
|
(build_component "plugins_settings" "avidemux_plugins"
|
||||||
'("-DPLUGIN_UI=SETTINGS")))
|
'("-DPLUGIN_UI=SETTINGS")))
|
||||||
;; Remove .exe and .dll file.
|
;; Remove .exe and .dll file.
|
||||||
(delete-file-recursively
|
(delete-file-recursively
|
||||||
(string-append out "/share/ADM6_addons"))))
|
(string-append out "/share/ADM6_addons")))))
|
||||||
(alist-delete 'install
|
(delete 'install))))
|
||||||
%standard-phases)))))))
|
|
||||||
(home-page "http://fixounet.free.fr/avidemux/")
|
(home-page "http://fixounet.free.fr/avidemux/")
|
||||||
(synopsis "Video editor")
|
(synopsis "Video editor")
|
||||||
(description "Avidemux is a video editor designed for simple cutting,
|
(description "Avidemux is a video editor designed for simple cutting,
|
||||||
|
@ -1328,14 +1330,14 @@ tools, XML authoring components, and an extensible plug-in based API.")
|
||||||
(define-public v4l-utils
|
(define-public v4l-utils
|
||||||
(package
|
(package
|
||||||
(name "v4l-utils")
|
(name "v4l-utils")
|
||||||
(version "1.10.0")
|
(version "1.10.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://linuxtv.org/downloads/v4l-utils"
|
(uri (string-append "https://linuxtv.org/downloads/v4l-utils"
|
||||||
"/v4l-utils-" version ".tar.bz2"))
|
"/v4l-utils-" version ".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0srkwh3r6f0bkb4kp0d7i0mlmp8babs3qc22cdy1sw4awmzd5skq"))))
|
"1h1nhg5cmmzlbipak526nk4bm6d0yb217mll75f3rpg7kz1cqiv1"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:configure-flags
|
'(#:configure-flags
|
||||||
|
@ -1349,7 +1351,7 @@ tools, XML authoring components, and an extensible plug-in based API.")
|
||||||
("glu" ,glu)
|
("glu" ,glu)
|
||||||
("libjpeg" ,libjpeg)
|
("libjpeg" ,libjpeg)
|
||||||
("libx11" ,libx11)
|
("libx11" ,libx11)
|
||||||
("qt" ,qt)
|
("qtbase" ,qtbase)
|
||||||
("eudev" ,eudev)))
|
("eudev" ,eudev)))
|
||||||
(synopsis "Realtime video capture utilities for Linux")
|
(synopsis "Realtime video capture utilities for Linux")
|
||||||
(description "The v4l-utils provide a series of libraries and utilities to
|
(description "The v4l-utils provide a series of libraries and utilities to
|
||||||
|
@ -1385,7 +1387,8 @@ be used for realtime video capture via Linux-specific APIs.")
|
||||||
("libxcomposite" ,libxcomposite)
|
("libxcomposite" ,libxcomposite)
|
||||||
("mesa" ,mesa)
|
("mesa" ,mesa)
|
||||||
("pulseaudio" ,pulseaudio)
|
("pulseaudio" ,pulseaudio)
|
||||||
("qt" ,qt)
|
("qtbase" ,qtbase)
|
||||||
|
("qtx11extras" ,qtx11extras)
|
||||||
("v4l-utils" ,v4l-utils)
|
("v4l-utils" ,v4l-utils)
|
||||||
("zlib" ,zlib)))
|
("zlib" ,zlib)))
|
||||||
(synopsis "Live streaming software")
|
(synopsis "Live streaming software")
|
||||||
|
|
|
@ -194,7 +194,7 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.")
|
||||||
(define-public starman
|
(define-public starman
|
||||||
(package
|
(package
|
||||||
(name "starman")
|
(name "starman")
|
||||||
(version "0.4011")
|
(version "0.4014")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -202,7 +202,7 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.")
|
||||||
"Starman-" version ".tar.gz"))
|
"Starman-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1337zhi6v1sg4gd9rs3giybc7g1ysw8ak2da0vy098k4dacxyb57"))))
|
"1sbb5rb3vs82rlh1fjkgkcmj5pj62b4y9si4ihh45sl9m8c2qxx5"))))
|
||||||
(build-system perl-build-system)
|
(build-system perl-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("perl-libwww" ,perl-libwww)
|
`(("perl-libwww" ,perl-libwww)
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
(define-public wget
|
(define-public wget
|
||||||
(package
|
(package
|
||||||
(name "wget")
|
(name "wget")
|
||||||
(version "1.17.1")
|
(version "1.18")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
version ".tar.xz"))
|
version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1jcpvl5sxb2ag8yahpy370c5jlfb097a21k2mhsidh4wxdhrnmgy"))))
|
"1hcwx8ww3sxzdskkx3l7q70a7wd6569yrnjkw9pw013cf9smpddm"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("gnutls" ,gnutls)
|
`(("gnutls" ,gnutls)
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
|
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
|
||||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016 Al McElrath <hello@yrns.org>
|
;;; Copyright © 2016 Al McElrath <hello@yrns.org>
|
||||||
|
;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au>
|
||||||
|
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -28,6 +30,7 @@
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
|
#:use-module (guix build-system cmake)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix build-system haskell)
|
#:use-module (guix build-system haskell)
|
||||||
#:use-module (gnu packages haskell)
|
#:use-module (gnu packages haskell)
|
||||||
|
@ -49,6 +52,11 @@
|
||||||
#:use-module (gnu packages maths)
|
#:use-module (gnu packages maths)
|
||||||
#:use-module (gnu packages web)
|
#:use-module (gnu packages web)
|
||||||
#:use-module (gnu packages fontutils)
|
#:use-module (gnu packages fontutils)
|
||||||
|
#:use-module (gnu packages freedesktop)
|
||||||
|
#:use-module (gnu packages glib)
|
||||||
|
#:use-module (gnu packages gperf)
|
||||||
|
#:use-module (gnu packages imagemagick)
|
||||||
|
#:use-module (gnu packages lua)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (guix git-download))
|
#:use-module (guix git-download))
|
||||||
|
|
||||||
|
@ -370,3 +378,91 @@ and easy to handle yet full of features to make an easy and fast desktop
|
||||||
experience.")
|
experience.")
|
||||||
(home-page "http://fluxbox.org/")
|
(home-page "http://fluxbox.org/")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public awesome
|
||||||
|
(package
|
||||||
|
(name "awesome")
|
||||||
|
(version "3.4.15")
|
||||||
|
(source
|
||||||
|
(origin (method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"https://awesome.naquadah.org/download/awesome-"
|
||||||
|
version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1m910lr7wkw2dgzmirfvz7dasfswhhccdf65l21iiciv24c3w1bb"))
|
||||||
|
(modules '((guix build utils)
|
||||||
|
(srfi srfi-19)))
|
||||||
|
(imported-modules '((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
;; Remove non-reproducible timestamp and use the date of the
|
||||||
|
;; source file instead.
|
||||||
|
'(substitute* "common/version.c"
|
||||||
|
(("__DATE__ \" \" __TIME__")
|
||||||
|
(date->string
|
||||||
|
(time-utc->date
|
||||||
|
(make-time time-utc 0
|
||||||
|
(stat:mtime (stat "awesome.c"))))
|
||||||
|
"\"~c\""))))
|
||||||
|
(patches (search-patches "awesome-reproducible-png.patch"))))
|
||||||
|
(build-system cmake-build-system)
|
||||||
|
(native-inputs `(("asciidoc" ,asciidoc)
|
||||||
|
("docbook-xsl" ,docbook-xsl)
|
||||||
|
("doxygen" ,doxygen)
|
||||||
|
("gperf" ,gperf)
|
||||||
|
("imagemagick" ,imagemagick)
|
||||||
|
("libxml2" ,libxml2) ;for XML_CATALOG_FILES
|
||||||
|
("pkg-config" ,pkg-config)
|
||||||
|
("xmlto" ,xmlto)))
|
||||||
|
(inputs `(("cairo" ,cairo)
|
||||||
|
("dbus" ,dbus)
|
||||||
|
("gdk-pixbuf" ,gdk-pixbuf)
|
||||||
|
("glib" ,glib)
|
||||||
|
("imlib2" ,imlib2)
|
||||||
|
("libev" ,libev)
|
||||||
|
("libxcb" ,libxcb)
|
||||||
|
("libxcursor" ,libxcursor)
|
||||||
|
("libxdg-basedir" ,libxdg-basedir)
|
||||||
|
("lua" ,lua-5.1)
|
||||||
|
("pango" ,pango)
|
||||||
|
("startup-notification" ,startup-notification)
|
||||||
|
("xcb-util" ,xcb-util)
|
||||||
|
("xcb-util-cursor" ,xcb-util-cursor)
|
||||||
|
("xcb-util-image" ,xcb-util-image)
|
||||||
|
("xcb-util-keysyms" ,xcb-util-keysyms)
|
||||||
|
("xcb-util-renderutil" ,xcb-util-renderutil)
|
||||||
|
("xcb-util-wm" ,xcb-util-wm)))
|
||||||
|
(arguments
|
||||||
|
`(;; Let compression happen in our 'compress-documentation' phase so that
|
||||||
|
;; '--no-name' is used, which removes timestamps from gzip output.
|
||||||
|
#:configure-flags '("-DCOMPRESS_MANPAGES=off")
|
||||||
|
|
||||||
|
#:phases (modify-phases %standard-phases
|
||||||
|
(add-before 'build 'xmlto-skip-validation
|
||||||
|
(lambda _
|
||||||
|
;; We can't download the necessary schema, so so skip
|
||||||
|
;; validation and assume they're valid.
|
||||||
|
(substitute* "../build/CMakeFiles/man.dir/build.make"
|
||||||
|
(("/xmlto")
|
||||||
|
(string-append "/xmlto --skip-validation")))
|
||||||
|
#t))
|
||||||
|
(replace 'check
|
||||||
|
(lambda _
|
||||||
|
;; There aren't any tests, so just make sure the binary
|
||||||
|
;; gets built and can be run successfully.
|
||||||
|
(zero? (system* "../build/awesome" "-v")))))))
|
||||||
|
(synopsis "Highly configurable window manager")
|
||||||
|
(description
|
||||||
|
"awesome is a window manager for X. It manages windows in different
|
||||||
|
layouts, like floating or tiled. Any layout can be applied dynamically,
|
||||||
|
optimizing the environment for the application in use and the task currently
|
||||||
|
being performed.
|
||||||
|
|
||||||
|
In a tiled layout, windows are managed in a master and stacking area. In a
|
||||||
|
floating layout windows can be resized and moved freely. Dialog windows are
|
||||||
|
always managed as floating, regardless of the layout currently applied.
|
||||||
|
|
||||||
|
Windows are grouped by tags in awesome. Each window can be tagged with one or
|
||||||
|
more tags. Selecting certain tags displays all windows with these tags.")
|
||||||
|
(license license:gpl2+)
|
||||||
|
(home-page "https://awesome.naquadah.org/")))
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
|
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
|
||||||
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
|
;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
|
||||||
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2015 Raimon Grau <raimonster@gmail.com>
|
;;; Copyright © 2015 Raimon Grau <raimonster@gmail.com>
|
||||||
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
|
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
|
||||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||||
|
@ -207,7 +207,7 @@ module.")
|
||||||
(define-public perl-xml-libxml
|
(define-public perl-xml-libxml
|
||||||
(package
|
(package
|
||||||
(name "perl-xml-libxml")
|
(name "perl-xml-libxml")
|
||||||
(version "2.0118")
|
(version "2.0125")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -215,7 +215,7 @@ module.")
|
||||||
"XML-LibXML-" version ".tar.gz"))
|
"XML-LibXML-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"170c8dbk4p6jw9is0cria73021yp3hpmhb19p9j0zg2yxwkawr6c"))))
|
"1mvbv1pwpdqni9ia9b6brg8brnnvfxr8j5x872qsngc92gipyh01"))))
|
||||||
(build-system perl-build-system)
|
(build-system perl-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
|
`(("perl-xml-namespacesupport" ,perl-xml-namespacesupport)
|
||||||
|
@ -225,7 +225,7 @@ module.")
|
||||||
(home-page "http://search.cpan.org/dist/XML-LibXML")
|
(home-page "http://search.cpan.org/dist/XML-LibXML")
|
||||||
(synopsis "Perl interface to libxml2")
|
(synopsis "Perl interface to libxml2")
|
||||||
(description "This module implements a Perl interface to the libxml2
|
(description "This module implements a Perl interface to the libxml2
|
||||||
library which provides interfaces for parsing and manipulating XML files. This
|
library which provides interfaces for parsing and manipulating XML files. This
|
||||||
module allows Perl programmers to make use of the highly capable validating
|
module allows Perl programmers to make use of the highly capable validating
|
||||||
XML parser and the high performance DOM implementation.")
|
XML parser and the high performance DOM implementation.")
|
||||||
(license (package-license perl))))
|
(license (package-license perl))))
|
||||||
|
@ -332,7 +332,7 @@ callback.")
|
||||||
(define-public perl-xml-simple
|
(define-public perl-xml-simple
|
||||||
(package
|
(package
|
||||||
(name "perl-xml-simple")
|
(name "perl-xml-simple")
|
||||||
(version "2.20")
|
(version "2.22")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -340,17 +340,18 @@ callback.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0jj3jiray1l4pi9wkjcpxjc3v431whdwx5aqnhgdm4i7h3817zsw"))))
|
"0jgbk30jizafpl7078jhw1di1yh08gf8d85dsvjllr595vr0widr"))))
|
||||||
(build-system perl-build-system)
|
(build-system perl-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("perl-xml-parser" ,perl-xml-parser)))
|
`(("perl-xml-parser" ,perl-xml-parser)
|
||||||
|
("perl-xml-sax" ,perl-xml-sax)))
|
||||||
(license (package-license perl))
|
(license (package-license perl))
|
||||||
(synopsis "Perl module for easy reading/writing of XML files")
|
(synopsis "Perl module for easy reading/writing of XML files")
|
||||||
(description
|
(description
|
||||||
"The XML::Simple module provides a simple API layer on top of an
|
"The XML::Simple module provides a simple API layer on top of an
|
||||||
underlying XML parsing module (either XML::Parser or one of the SAX2
|
underlying XML parsing module (either XML::Parser or one of the SAX2
|
||||||
parser modules).")
|
parser modules).")
|
||||||
(home-page "http://search.cpan.org/~grantm/XML-Simple-2.20/lib/XML/Simple.pm")))
|
(home-page "http://search.cpan.org/dist/XML-Simple")))
|
||||||
|
|
||||||
(define-public perl-xml-regexp
|
(define-public perl-xml-regexp
|
||||||
(package
|
(package
|
||||||
|
|
|
@ -27,7 +27,9 @@
|
||||||
#:use-module (guix records)
|
#:use-module (guix records)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:export (postgresql-service))
|
#:export (postgresql-service
|
||||||
|
mysql-service
|
||||||
|
mysql-configuration))
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
;;;
|
;;;
|
||||||
|
@ -143,3 +145,118 @@ and stores the database cluster in @var{data-directory}."
|
||||||
(postgresql postgresql)
|
(postgresql postgresql)
|
||||||
(config-file config-file)
|
(config-file config-file)
|
||||||
(data-directory data-directory))))
|
(data-directory data-directory))))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; MySQL.
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define-record-type* <mysql-configuration>
|
||||||
|
mysql-configuration make-mysql-configuration
|
||||||
|
mysql-configuration?
|
||||||
|
(mysql mysql-configuration-mysql (default mariadb)))
|
||||||
|
|
||||||
|
(define %mysql-accounts
|
||||||
|
(list (user-group
|
||||||
|
(name "mysql")
|
||||||
|
(system? #t))
|
||||||
|
(user-account
|
||||||
|
(name "mysql")
|
||||||
|
(group "mysql")
|
||||||
|
(system? #t)
|
||||||
|
(home-directory "/var/empty")
|
||||||
|
(shell #~(string-append #$shadow "/sbin/nologin")))))
|
||||||
|
|
||||||
|
(define mysql-configuration-file
|
||||||
|
(match-lambda
|
||||||
|
(($ <mysql-configuration> mysql)
|
||||||
|
(plain-file "my.cnf" "[mysqld]
|
||||||
|
datadir=/var/lib/mysql
|
||||||
|
socket=/run/mysqld/mysqld.sock
|
||||||
|
"))))
|
||||||
|
|
||||||
|
(define (%mysql-activation config)
|
||||||
|
"Return an activation gexp for the MySQL or MariaDB database server."
|
||||||
|
(let ((mysql (mysql-configuration-mysql config))
|
||||||
|
(my.cnf (mysql-configuration-file config)))
|
||||||
|
#~(begin
|
||||||
|
(use-modules (ice-9 popen)
|
||||||
|
(guix build utils))
|
||||||
|
(let* ((mysqld (string-append #$mysql "/bin/mysqld"))
|
||||||
|
(user (getpwnam "mysql"))
|
||||||
|
(uid (passwd:uid user))
|
||||||
|
(gid (passwd:gid user))
|
||||||
|
(datadir "/var/lib/mysql")
|
||||||
|
(rundir "/run/mysqld"))
|
||||||
|
(mkdir-p datadir)
|
||||||
|
(chown datadir uid gid)
|
||||||
|
(mkdir-p rundir)
|
||||||
|
(chown rundir uid gid)
|
||||||
|
;; Initialize the database when it doesn't exist.
|
||||||
|
(when (not (file-exists? (string-append datadir "/mysql")))
|
||||||
|
(if (string-prefix? "mysql-" (strip-store-file-name #$mysql))
|
||||||
|
;; For MySQL.
|
||||||
|
(system* mysqld
|
||||||
|
(string-append "--defaults-file=" #$my.cnf)
|
||||||
|
"--initialize"
|
||||||
|
"--user=mysql")
|
||||||
|
;; For MariaDB.
|
||||||
|
;; XXX: The 'mysql_install_db' script doesn't work directly
|
||||||
|
;; due to missing 'mkdir' in PATH.
|
||||||
|
(let ((p (open-pipe* OPEN_WRITE mysqld
|
||||||
|
(string-append
|
||||||
|
"--defaults-file=" #$my.cnf)
|
||||||
|
"--bootstrap"
|
||||||
|
"--user=mysql")))
|
||||||
|
;; Create the system database, as does by 'mysql_install_db'.
|
||||||
|
(display "create database mysql;\n" p)
|
||||||
|
(display "use mysql;\n" p)
|
||||||
|
(for-each
|
||||||
|
(lambda (sql)
|
||||||
|
(call-with-input-file
|
||||||
|
(string-append #$mysql "/share/mysql/" sql)
|
||||||
|
(lambda (in) (dump-port in p))))
|
||||||
|
'("mysql_system_tables.sql"
|
||||||
|
"mysql_performance_tables.sql"
|
||||||
|
"mysql_system_tables_data.sql"
|
||||||
|
"fill_help_tables.sql"))
|
||||||
|
;; Remove the anonymous user and disable root access from
|
||||||
|
;; remote machines, as does by 'mysql_secure_installation'.
|
||||||
|
(display "
|
||||||
|
DELETE FROM user WHERE User='';
|
||||||
|
DELETE FROM user WHERE User='root' AND
|
||||||
|
Host NOT IN ('localhost', '127.0.0.1', '::1');
|
||||||
|
FLUSH PRIVILEGES;
|
||||||
|
" p)
|
||||||
|
(close-pipe p))))))))
|
||||||
|
|
||||||
|
(define (mysql-shepherd-service config)
|
||||||
|
(list (shepherd-service
|
||||||
|
(provision '(mysql))
|
||||||
|
(documentation "Run the MySQL server.")
|
||||||
|
(start (let ((mysql (mysql-configuration-mysql config))
|
||||||
|
(my.cnf (mysql-configuration-file config)))
|
||||||
|
#~(make-forkexec-constructor
|
||||||
|
(list (string-append #$mysql "/bin/mysqld")
|
||||||
|
(string-append "--defaults-file=" #$my.cnf))
|
||||||
|
#:user "mysql" #:group "mysql")))
|
||||||
|
(stop #~(make-kill-destructor)))))
|
||||||
|
|
||||||
|
(define mysql-service-type
|
||||||
|
(service-type
|
||||||
|
(name 'mysql)
|
||||||
|
(extensions
|
||||||
|
(list (service-extension account-service-type
|
||||||
|
(const %mysql-accounts))
|
||||||
|
(service-extension activation-service-type
|
||||||
|
%mysql-activation)
|
||||||
|
(service-extension shepherd-root-service-type
|
||||||
|
mysql-shepherd-service)))))
|
||||||
|
|
||||||
|
(define* (mysql-service #:key (config (mysql-configuration)))
|
||||||
|
"Return a service that runs @command{mysqld}, the MySQL or MariaDB
|
||||||
|
database server.
|
||||||
|
|
||||||
|
The optional @var{config} argument specifies the configuration for
|
||||||
|
@command{mysqld}, which should be a @code{<mysql-configuration>} object."
|
||||||
|
(service mysql-service-type config))
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
|
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
|
||||||
|
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -42,6 +43,8 @@
|
||||||
dicod-configuration make-dicod-configuration
|
dicod-configuration make-dicod-configuration
|
||||||
dicod-configuration?
|
dicod-configuration?
|
||||||
(dico dicod-configuration-dico (default dico))
|
(dico dicod-configuration-dico (default dico))
|
||||||
|
(interfaces dicod-configuration-interfaces ;list of strings
|
||||||
|
(default '("localhost")))
|
||||||
(databases dicod-configuration-databases
|
(databases dicod-configuration-databases
|
||||||
;; list of <dicod-database>
|
;; list of <dicod-database>
|
||||||
(default (list %dicod-database:gcide))))
|
(default (list %dicod-database:gcide))))
|
||||||
|
@ -72,20 +75,25 @@
|
||||||
(shell #~(string-append #$shadow "/sbin/nologin")))))
|
(shell #~(string-append #$shadow "/sbin/nologin")))))
|
||||||
|
|
||||||
(define (dicod-configuration-file config)
|
(define (dicod-configuration-file config)
|
||||||
(define dicod-configuration->text
|
(define database->text
|
||||||
(match-lambda
|
(match-lambda
|
||||||
(($ <dicod-configuration> dico databases)
|
(($ <dicod-database> name module options)
|
||||||
(append-map (match-lambda
|
`("
|
||||||
(($ <dicod-database> name module options)
|
|
||||||
`("
|
|
||||||
load-module " ,module ";
|
load-module " ,module ";
|
||||||
database {
|
database {
|
||||||
name \"" ,name "\";
|
name \"" ,name "\";
|
||||||
handler \"" ,module
|
handler \"" ,module
|
||||||
(string-join (list ,@options) " " 'prefix) "\";
|
(string-join (list ,@options) " " 'prefix) "\";
|
||||||
}\n")))
|
}\n"))))
|
||||||
databases))))
|
|
||||||
(apply mixed-text-file "dicod.conf" (dicod-configuration->text config)))
|
(define configuration->text
|
||||||
|
(match-lambda
|
||||||
|
(($ <dicod-configuration> dico (interfaces ...) databases)
|
||||||
|
(append `("listen ("
|
||||||
|
,(string-join interfaces ", ") ");\n")
|
||||||
|
(append-map database->text databases)))))
|
||||||
|
|
||||||
|
(apply mixed-text-file "dicod.conf" (configuration->text config)))
|
||||||
|
|
||||||
(define %dicod-activation
|
(define %dicod-activation
|
||||||
#~(begin
|
#~(begin
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||||
|
;;;
|
||||||
|
;;; This file is part of GNU Guix.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||||
|
;;; under the terms of the GNU General Public License as published by
|
||||||
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||||
|
;;; your option) any later version.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||||
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;;; GNU General Public License for more details.
|
||||||
|
;;;
|
||||||
|
;;; You should have received a copy of the GNU General Public License
|
||||||
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
(define-module (guix build hg)
|
||||||
|
#:use-module (guix build utils)
|
||||||
|
#:export (hg-fetch))
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
;;;
|
||||||
|
;;; This is the build-side support code of (guix hg-download). It allows a
|
||||||
|
;;; Mercurial repository to be cloned and checked out at a specific changeset
|
||||||
|
;;; identifier.
|
||||||
|
;;;
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(define* (hg-fetch url changeset directory
|
||||||
|
#:key (hg-command "hg"))
|
||||||
|
"Fetch CHANGESET from URL into DIRECTORY. CHANGESET must be a valid
|
||||||
|
Mercurial changeset identifier. Return #t on success, #f otherwise."
|
||||||
|
|
||||||
|
(and (zero? (system* hg-command
|
||||||
|
"clone" url
|
||||||
|
"--rev" changeset
|
||||||
|
;; Disable TLS certificate verification. The hash of
|
||||||
|
;; the checkout is known in advance anyway.
|
||||||
|
"--insecure"
|
||||||
|
directory))
|
||||||
|
(with-directory-excursion directory
|
||||||
|
(begin
|
||||||
|
;; The contents of '.hg' vary as a function of the current
|
||||||
|
;; status of the Mercurial repo. Since we want a fixed
|
||||||
|
;; output, this directory needs to be taken out.
|
||||||
|
(delete-file-recursively ".hg")
|
||||||
|
#t))))
|
||||||
|
|
||||||
|
;;; hg.scm ends here
|
|
@ -64,6 +64,7 @@
|
||||||
|
|
||||||
processes
|
processes
|
||||||
mkdtemp!
|
mkdtemp!
|
||||||
|
fdatasync
|
||||||
pivot-root
|
pivot-root
|
||||||
fcntl-flock
|
fcntl-flock
|
||||||
|
|
||||||
|
@ -493,8 +494,7 @@ user-land process."
|
||||||
<))
|
<))
|
||||||
|
|
||||||
(define mkdtemp!
|
(define mkdtemp!
|
||||||
(let* ((ptr (dynamic-func "mkdtemp" (dynamic-link)))
|
(let ((proc (syscall->procedure '* "mkdtemp" '(*))))
|
||||||
(proc (pointer->procedure '* ptr '(*))))
|
|
||||||
(lambda (tmpl)
|
(lambda (tmpl)
|
||||||
"Create a new unique directory in the file system using the template
|
"Create a new unique directory in the file system using the template
|
||||||
string TMPL and return its file name. TMPL must end with 'XXXXXX'."
|
string TMPL and return its file name. TMPL must end with 'XXXXXX'."
|
||||||
|
@ -506,6 +506,20 @@ string TMPL and return its file name. TMPL must end with 'XXXXXX'."
|
||||||
(list err)))
|
(list err)))
|
||||||
(pointer->string result)))))
|
(pointer->string result)))))
|
||||||
|
|
||||||
|
(define fdatasync
|
||||||
|
(let ((proc (syscall->procedure int "fdatasync" (list int))))
|
||||||
|
(lambda (port)
|
||||||
|
"Flush buffered output of PORT, an output file port, and then call
|
||||||
|
fdatasync(2) on the underlying file descriptor."
|
||||||
|
(force-output port)
|
||||||
|
(let* ((fd (fileno port))
|
||||||
|
(ret (proc fd))
|
||||||
|
(err (errno)))
|
||||||
|
(unless (zero? ret)
|
||||||
|
(throw 'system-error "fdatasync" "~S: ~A"
|
||||||
|
(list fd (strerror err))
|
||||||
|
(list err)))))))
|
||||||
|
|
||||||
|
|
||||||
(define-record-type <file-system>
|
(define-record-type <file-system>
|
||||||
(file-system type block-size blocks blocks-free
|
(file-system type block-size blocks blocks-free
|
||||||
|
@ -611,8 +625,7 @@ are shared between the parent and child processes."
|
||||||
;; Some systems may be using an old (pre-2.14) version of glibc where there
|
;; Some systems may be using an old (pre-2.14) version of glibc where there
|
||||||
;; is no 'setns' function available.
|
;; is no 'setns' function available.
|
||||||
(false-if-exception
|
(false-if-exception
|
||||||
(let* ((ptr (dynamic-func "setns" (dynamic-link)))
|
(let ((proc (syscall->procedure int "setns" (list int int))))
|
||||||
(proc (pointer->procedure int ptr (list int int))))
|
|
||||||
(lambda (fdes nstype)
|
(lambda (fdes nstype)
|
||||||
"Reassociate the current process with the namespace specified by FDES, a
|
"Reassociate the current process with the namespace specified by FDES, a
|
||||||
file descriptor obtained by opening a /proc/PID/ns/* file. NSTYPE specifies
|
file descriptor obtained by opening a /proc/PID/ns/* file. NSTYPE specifies
|
||||||
|
@ -818,9 +831,7 @@ bytevector BV at INDEX."
|
||||||
|
|
||||||
(define %ioctl
|
(define %ioctl
|
||||||
;; The most terrible interface, live from Scheme.
|
;; The most terrible interface, live from Scheme.
|
||||||
(pointer->procedure int
|
(syscall->procedure int "ioctl" (list int unsigned-long '*)))
|
||||||
(dynamic-func "ioctl" (dynamic-link))
|
|
||||||
(list int unsigned-long '*)))
|
|
||||||
|
|
||||||
(define (bytevector->string-list bv stride len)
|
(define (bytevector->string-list bv stride len)
|
||||||
"Return the null-terminated strings found in BV every STRIDE bytes. Read at
|
"Return the null-terminated strings found in BV every STRIDE bytes. Read at
|
||||||
|
@ -1060,8 +1071,7 @@ return the list of resulting <interface> objects."
|
||||||
(loop ptr (cons ifaddr result)))))))
|
(loop ptr (cons ifaddr result)))))))
|
||||||
|
|
||||||
(define network-interfaces
|
(define network-interfaces
|
||||||
(let* ((ptr (dynamic-func "getifaddrs" (dynamic-link)))
|
(let ((proc (syscall->procedure int "getifaddrs" (list '*))))
|
||||||
(proc (pointer->procedure int ptr (list '*))))
|
|
||||||
(lambda ()
|
(lambda ()
|
||||||
"Return a list of <interface> objects, each denoting a configured
|
"Return a list of <interface> objects, each denoting a configured
|
||||||
network interface. This is implemented using the 'getifaddrs' libc function."
|
network interface. This is implemented using the 'getifaddrs' libc function."
|
||||||
|
@ -1078,8 +1088,7 @@ network interface. This is implemented using the 'getifaddrs' libc function."
|
||||||
(list err)))))))
|
(list err)))))))
|
||||||
|
|
||||||
(define free-ifaddrs
|
(define free-ifaddrs
|
||||||
(let ((ptr (dynamic-func "freeifaddrs" (dynamic-link))))
|
(syscall->procedure void "freeifaddrs" '(*)))
|
||||||
(pointer->procedure void ptr '(*))))
|
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
|
|
|
@ -189,31 +189,21 @@ cross-compiling.)"
|
||||||
;; absolute file name. We keep it in a promise to compute it lazily and avoid
|
;; absolute file name. We keep it in a promise to compute it lazily and avoid
|
||||||
;; repeated 'stat' calls.
|
;; repeated 'stat' calls.
|
||||||
(define-record-type <local-file>
|
(define-record-type <local-file>
|
||||||
(%%local-file file absolute name recursive?)
|
(%%local-file file absolute name recursive? select?)
|
||||||
local-file?
|
local-file?
|
||||||
(file local-file-file) ;string
|
(file local-file-file) ;string
|
||||||
(absolute %local-file-absolute-file-name) ;promise string
|
(absolute %local-file-absolute-file-name) ;promise string
|
||||||
(name local-file-name) ;string
|
(name local-file-name) ;string
|
||||||
(recursive? local-file-recursive?)) ;Boolean
|
(recursive? local-file-recursive?) ;Boolean
|
||||||
|
(select? local-file-select?)) ;string stat -> Boolean
|
||||||
|
|
||||||
|
(define (true file stat) #t)
|
||||||
|
|
||||||
(define* (%local-file file promise #:optional (name (basename file))
|
(define* (%local-file file promise #:optional (name (basename file))
|
||||||
#:key recursive?)
|
#:key recursive? (select? true))
|
||||||
;; This intermediate procedure is part of our ABI, but the underlying
|
;; This intermediate procedure is part of our ABI, but the underlying
|
||||||
;; %%LOCAL-FILE is not.
|
;; %%LOCAL-FILE is not.
|
||||||
(%%local-file file promise name recursive?))
|
(%%local-file file promise name recursive? select?))
|
||||||
|
|
||||||
(define (extract-directory properties)
|
|
||||||
"Extract the directory name from source location PROPERTIES."
|
|
||||||
(match (assq 'filename properties)
|
|
||||||
(('filename . (? string? file-name))
|
|
||||||
(dirname file-name))
|
|
||||||
(_
|
|
||||||
#f)))
|
|
||||||
|
|
||||||
(define-syntax-rule (current-source-directory)
|
|
||||||
"Expand to the directory of the current source file or #f if it could not
|
|
||||||
be determined."
|
|
||||||
(extract-directory (current-source-location)))
|
|
||||||
|
|
||||||
(define (absolute-file-name file directory)
|
(define (absolute-file-name file directory)
|
||||||
"Return the canonical absolute file name for FILE, which lives in the
|
"Return the canonical absolute file name for FILE, which lives in the
|
||||||
|
@ -235,6 +225,10 @@ When RECURSIVE? is true, the contents of FILE are added recursively; if FILE
|
||||||
designates a flat file and RECURSIVE? is true, its contents are added, and its
|
designates a flat file and RECURSIVE? is true, its contents are added, and its
|
||||||
permission bits are kept.
|
permission bits are kept.
|
||||||
|
|
||||||
|
When RECURSIVE? is true, call (SELECT? FILE STAT) for each directory entry,
|
||||||
|
where FILE is the entry's absolute file name and STAT is the result of
|
||||||
|
'lstat'; exclude entries for which SELECT? does not return true.
|
||||||
|
|
||||||
This is the declarative counterpart of the 'interned-file' monadic procedure."
|
This is the declarative counterpart of the 'interned-file' monadic procedure."
|
||||||
(%local-file file
|
(%local-file file
|
||||||
(delay (absolute-file-name file (current-source-directory)))
|
(delay (absolute-file-name file (current-source-directory)))
|
||||||
|
@ -248,12 +242,13 @@ This is the declarative counterpart of the 'interned-file' monadic procedure."
|
||||||
(define-gexp-compiler (local-file-compiler (file local-file?) system target)
|
(define-gexp-compiler (local-file-compiler (file local-file?) system target)
|
||||||
;; "Compile" FILE by adding it to the store.
|
;; "Compile" FILE by adding it to the store.
|
||||||
(match file
|
(match file
|
||||||
(($ <local-file> file (= force absolute) name recursive?)
|
(($ <local-file> file (= force absolute) name recursive? select?)
|
||||||
;; Canonicalize FILE so that if it's a symlink, it is resolved. Failing
|
;; Canonicalize FILE so that if it's a symlink, it is resolved. Failing
|
||||||
;; to do that, when RECURSIVE? is #t, we could end up creating a dangling
|
;; to do that, when RECURSIVE? is #t, we could end up creating a dangling
|
||||||
;; symlink in the store, and when RECURSIVE? is #f 'add-to-store' would
|
;; symlink in the store, and when RECURSIVE? is #f 'add-to-store' would
|
||||||
;; just throw an error, both of which are inconvenient.
|
;; just throw an error, both of which are inconvenient.
|
||||||
(interned-file absolute name #:recursive? recursive?))))
|
(interned-file absolute name
|
||||||
|
#:recursive? recursive? #:select? select?))))
|
||||||
|
|
||||||
(define-record-type <plain-file>
|
(define-record-type <plain-file>
|
||||||
(%plain-file name content references)
|
(%plain-file name content references)
|
||||||
|
|
|
@ -0,0 +1,84 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||||
|
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||||
|
;;;
|
||||||
|
;;; This file is part of GNU Guix.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||||
|
;;; under the terms of the GNU General Public License as published by
|
||||||
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||||
|
;;; your option) any later version.
|
||||||
|
;;;
|
||||||
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||||
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
;;; GNU General Public License for more details.
|
||||||
|
;;;
|
||||||
|
;;; You should have received a copy of the GNU General Public License
|
||||||
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
(define-module (guix hg-download)
|
||||||
|
#:use-module (guix gexp)
|
||||||
|
#:use-module (guix store)
|
||||||
|
#:use-module (guix monads)
|
||||||
|
#:use-module (guix records)
|
||||||
|
#:use-module (guix packages)
|
||||||
|
#:autoload (guix build-system gnu) (standard-packages)
|
||||||
|
#:use-module (ice-9 match)
|
||||||
|
#:export (hg-reference
|
||||||
|
hg-reference?
|
||||||
|
hg-reference-url
|
||||||
|
hg-reference-changeset
|
||||||
|
hg-reference-recursive?
|
||||||
|
|
||||||
|
hg-fetch))
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
;;;
|
||||||
|
;;; An <origin> method that fetches a specific changeset from a Mercurial
|
||||||
|
;;; repository. The repository URL and changeset ID are specified with a
|
||||||
|
;;; <hg-reference> object.
|
||||||
|
;;;
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(define-record-type* <hg-reference>
|
||||||
|
hg-reference make-hg-reference
|
||||||
|
hg-reference?
|
||||||
|
(url hg-reference-url)
|
||||||
|
(changeset hg-reference-changeset))
|
||||||
|
|
||||||
|
(define (hg-package)
|
||||||
|
"Return the default Mercurial package."
|
||||||
|
(let ((distro (resolve-interface '(gnu packages version-control))))
|
||||||
|
(module-ref distro 'mercurial)))
|
||||||
|
|
||||||
|
(define* (hg-fetch ref hash-algo hash
|
||||||
|
#:optional name
|
||||||
|
#:key (system (%current-system)) (guile (default-guile))
|
||||||
|
(hg (hg-package)))
|
||||||
|
"Return a fixed-output derivation that fetches REF, a <hg-reference>
|
||||||
|
object. The output is expected to have recursive hash HASH of type
|
||||||
|
HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
|
||||||
|
(define build
|
||||||
|
#~(begin
|
||||||
|
(use-modules (guix build hg)
|
||||||
|
(guix build utils)
|
||||||
|
(ice-9 match))
|
||||||
|
|
||||||
|
(hg-fetch '#$(hg-reference-url ref)
|
||||||
|
'#$(hg-reference-changeset ref)
|
||||||
|
#$output
|
||||||
|
#:hg-command (string-append #+hg "/bin/hg"))))
|
||||||
|
|
||||||
|
(mlet %store-monad ((guile (package->derivation guile system)))
|
||||||
|
(gexp->derivation (or name "hg-checkout") build
|
||||||
|
#:system system
|
||||||
|
#:local-build? #t ;don't offload repo cloning
|
||||||
|
#:hash-algo hash-algo
|
||||||
|
#:hash hash
|
||||||
|
#:recursive? #t
|
||||||
|
#:modules '((guix build hg)
|
||||||
|
(guix build utils))
|
||||||
|
#:guile-for-build guile)))
|
||||||
|
|
||||||
|
;;; hg-download.scm ends here
|
|
@ -71,6 +71,16 @@ or #f on failure."
|
||||||
(raise (condition (&missing-source-error
|
(raise (condition (&missing-source-error
|
||||||
(package pypi-package)))))))
|
(package pypi-package)))))))
|
||||||
|
|
||||||
|
(define (latest-wheel-release pypi-package)
|
||||||
|
"Return the url of the wheel for the latest release of pypi-package,
|
||||||
|
or #f if there isn't any."
|
||||||
|
(let ((releases (assoc-ref* pypi-package "releases"
|
||||||
|
(assoc-ref* pypi-package "info" "version"))))
|
||||||
|
(or (find (lambda (release)
|
||||||
|
(string=? "bdist_wheel" (assoc-ref release "packagetype")))
|
||||||
|
releases)
|
||||||
|
#f)))
|
||||||
|
|
||||||
(define (python->package-name name)
|
(define (python->package-name name)
|
||||||
"Given the NAME of a package on PyPI, return a Guix-compliant name for the
|
"Given the NAME of a package on PyPI, return a Guix-compliant name for the
|
||||||
package."
|
package."
|
||||||
|
@ -88,6 +98,11 @@ package on PyPI."
|
||||||
;; '/' + package name + '/' + ...
|
;; '/' + package name + '/' + ...
|
||||||
(substring source-url 42 (string-rindex source-url #\/))))
|
(substring source-url 42 (string-rindex source-url #\/))))
|
||||||
|
|
||||||
|
(define (wheel-url->extracted-directory wheel-url)
|
||||||
|
(match (string-split (basename wheel-url) #\-)
|
||||||
|
((name version _ ...)
|
||||||
|
(string-append name "-" version ".dist-info"))))
|
||||||
|
|
||||||
(define (maybe-inputs package-inputs)
|
(define (maybe-inputs package-inputs)
|
||||||
"Given a list of PACKAGE-INPUTS, tries to generate the 'inputs' field of a
|
"Given a list of PACKAGE-INPUTS, tries to generate the 'inputs' field of a
|
||||||
package definition."
|
package definition."
|
||||||
|
@ -97,10 +112,10 @@ package definition."
|
||||||
((package-inputs ...)
|
((package-inputs ...)
|
||||||
`((inputs (,'quasiquote ,package-inputs))))))
|
`((inputs (,'quasiquote ,package-inputs))))))
|
||||||
|
|
||||||
(define (guess-requirements source-url tarball)
|
(define (guess-requirements source-url wheel-url tarball)
|
||||||
"Given SOURCE-URL and a TARBALL of the package, return a list of the required
|
"Given SOURCE-URL, WHEEL-URL and a TARBALL of the package, return a list of
|
||||||
packages specified in the requirements.txt file. TARBALL will be extracted in
|
the required packages specified in the requirements.txt file. TARBALL will be
|
||||||
the current directory, and will be deleted."
|
extracted in the current directory, and will be deleted."
|
||||||
|
|
||||||
(define (tarball-directory url)
|
(define (tarball-directory url)
|
||||||
;; Given the URL of the package's tarball, return the name of the directory
|
;; Given the URL of the package's tarball, return the name of the directory
|
||||||
|
@ -147,26 +162,69 @@ cannot determine package dependencies"))
|
||||||
(loop (cons (python->package-name (clean-requirement line))
|
(loop (cons (python->package-name (clean-requirement line))
|
||||||
result))))))))))
|
result))))))))))
|
||||||
|
|
||||||
(let ((dirname (tarball-directory source-url)))
|
(define (read-wheel-metadata wheel-archive)
|
||||||
(if (string? dirname)
|
;; Given WHEEL-ARCHIVE, a ZIP Python wheel archive, return the package's
|
||||||
(let* ((req-file (string-append dirname "/requirements.txt"))
|
;; requirements.
|
||||||
(exit-code (system* "tar" "xf" tarball req-file)))
|
(let* ((dirname (wheel-url->extracted-directory wheel-url))
|
||||||
;; TODO: support more formats.
|
(json-file (string-append dirname "/metadata.json")))
|
||||||
(if (zero? exit-code)
|
(and (zero? (system* "unzip" "-q" wheel-archive json-file))
|
||||||
(dynamic-wind
|
(dynamic-wind
|
||||||
(const #t)
|
(const #t)
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(read-requirements req-file))
|
(call-with-input-file json-file
|
||||||
(lambda ()
|
(lambda (port)
|
||||||
(delete-file req-file)
|
(let* ((metadata (json->scm port))
|
||||||
(rmdir dirname)))
|
(run_requires (hash-ref metadata "run_requires"))
|
||||||
(begin
|
(requirements (hash-ref (list-ref run_requires 0)
|
||||||
(warning (_ "'tar xf' failed with exit code ~a\n")
|
"requires")))
|
||||||
exit-code)
|
(map (lambda (r)
|
||||||
'())))
|
(python->package-name (clean-requirement r)))
|
||||||
'())))
|
requirements)))))
|
||||||
|
(lambda ()
|
||||||
|
(delete-file json-file)
|
||||||
|
(rmdir dirname))))))
|
||||||
|
|
||||||
(define (compute-inputs source-url tarball)
|
(define (guess-requirements-from-wheel)
|
||||||
|
;; Return the package's requirements using the wheel, or #f if an error
|
||||||
|
;; occurs.
|
||||||
|
(call-with-temporary-output-file
|
||||||
|
(lambda (temp port)
|
||||||
|
(if wheel-url
|
||||||
|
(and (url-fetch wheel-url temp)
|
||||||
|
(read-wheel-metadata temp))
|
||||||
|
#f))))
|
||||||
|
|
||||||
|
|
||||||
|
(define (guess-requirements-from-source)
|
||||||
|
;; Return the package's requirements by guessing them from the source.
|
||||||
|
(let ((dirname (tarball-directory source-url)))
|
||||||
|
(if (string? dirname)
|
||||||
|
(let* ((req-file (string-append dirname "/requirements.txt"))
|
||||||
|
(exit-code (system* "tar" "xf" tarball req-file)))
|
||||||
|
;; TODO: support more formats.
|
||||||
|
(if (zero? exit-code)
|
||||||
|
(dynamic-wind
|
||||||
|
(const #t)
|
||||||
|
(lambda ()
|
||||||
|
(read-requirements req-file))
|
||||||
|
(lambda ()
|
||||||
|
(delete-file req-file)
|
||||||
|
(rmdir dirname)))
|
||||||
|
(begin
|
||||||
|
(warning (_ "'tar xf' failed with exit code ~a\n")
|
||||||
|
exit-code)
|
||||||
|
'())))
|
||||||
|
'())))
|
||||||
|
|
||||||
|
;; First, try to compute the requirements using the wheel, since that is the
|
||||||
|
;; most reliable option. If a wheel is not provided for this package, try
|
||||||
|
;; getting them by reading the "requirements.txt" file from the source. Note
|
||||||
|
;; that "requirements.txt" is not mandatory, so this is likely to fail.
|
||||||
|
(or (guess-requirements-from-wheel)
|
||||||
|
(guess-requirements-from-source)))
|
||||||
|
|
||||||
|
|
||||||
|
(define (compute-inputs source-url wheel-url tarball)
|
||||||
"Given the SOURCE-URL of an already downloaded TARBALL, return a list of
|
"Given the SOURCE-URL of an already downloaded TARBALL, return a list of
|
||||||
name/variable pairs describing the required inputs of this package."
|
name/variable pairs describing the required inputs of this package."
|
||||||
(sort
|
(sort
|
||||||
|
@ -175,13 +233,13 @@ name/variable pairs describing the required inputs of this package."
|
||||||
(append '("python-setuptools")
|
(append '("python-setuptools")
|
||||||
;; Argparse has been part of Python since 2.7.
|
;; Argparse has been part of Python since 2.7.
|
||||||
(remove (cut string=? "python-argparse" <>)
|
(remove (cut string=? "python-argparse" <>)
|
||||||
(guess-requirements source-url tarball))))
|
(guess-requirements source-url wheel-url tarball))))
|
||||||
(lambda args
|
(lambda args
|
||||||
(match args
|
(match args
|
||||||
(((a _ ...) (b _ ...))
|
(((a _ ...) (b _ ...))
|
||||||
(string-ci<? a b))))))
|
(string-ci<? a b))))))
|
||||||
|
|
||||||
(define (make-pypi-sexp name version source-url home-page synopsis
|
(define (make-pypi-sexp name version source-url wheel-url home-page synopsis
|
||||||
description license)
|
description license)
|
||||||
"Return the `package' s-expression for a python package with the given NAME,
|
"Return the `package' s-expression for a python package with the given NAME,
|
||||||
VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE."
|
VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE."
|
||||||
|
@ -206,7 +264,7 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE."
|
||||||
(base32
|
(base32
|
||||||
,(guix-hash-url temp)))))
|
,(guix-hash-url temp)))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
,@(maybe-inputs (compute-inputs source-url temp))
|
,@(maybe-inputs (compute-inputs source-url wheel-url temp))
|
||||||
(home-page ,home-page)
|
(home-page ,home-page)
|
||||||
(synopsis ,synopsis)
|
(synopsis ,synopsis)
|
||||||
(description ,description)
|
(description ,description)
|
||||||
|
@ -225,11 +283,12 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE."
|
||||||
(let ((name (assoc-ref* package "info" "name"))
|
(let ((name (assoc-ref* package "info" "name"))
|
||||||
(version (assoc-ref* package "info" "version"))
|
(version (assoc-ref* package "info" "version"))
|
||||||
(release (assoc-ref (latest-source-release package) "url"))
|
(release (assoc-ref (latest-source-release package) "url"))
|
||||||
|
(wheel (assoc-ref (latest-wheel-release package) "url"))
|
||||||
(synopsis (assoc-ref* package "info" "summary"))
|
(synopsis (assoc-ref* package "info" "summary"))
|
||||||
(description (assoc-ref* package "info" "summary"))
|
(description (assoc-ref* package "info" "summary"))
|
||||||
(home-page (assoc-ref* package "info" "home_page"))
|
(home-page (assoc-ref* package "info" "home_page"))
|
||||||
(license (string->license (assoc-ref* package "info" "license"))))
|
(license (string->license (assoc-ref* package "info" "license"))))
|
||||||
(make-pypi-sexp name version release home-page synopsis
|
(make-pypi-sexp name version release wheel home-page synopsis
|
||||||
description license))))))
|
description license))))))
|
||||||
|
|
||||||
(define (pypi-package? package)
|
(define (pypi-package? package)
|
||||||
|
|
|
@ -406,6 +406,7 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET."
|
||||||
|
|
||||||
(define decompression-type
|
(define decompression-type
|
||||||
(cond ((string-suffix? "gz" source-file-name) "gzip")
|
(cond ((string-suffix? "gz" source-file-name) "gzip")
|
||||||
|
((string-suffix? "Z" source-file-name) "gzip")
|
||||||
((string-suffix? "bz2" source-file-name) "bzip2")
|
((string-suffix? "bz2" source-file-name) "bzip2")
|
||||||
((string-suffix? "lz" source-file-name) "lzip")
|
((string-suffix? "lz" source-file-name) "lzip")
|
||||||
((string-suffix? "zip" source-file-name) "unzip")
|
((string-suffix? "zip" source-file-name) "unzip")
|
||||||
|
@ -543,7 +544,8 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET."
|
||||||
"--files-from=.file_list")))))))))
|
"--files-from=.file_list")))))))))
|
||||||
|
|
||||||
(let ((name (tarxz-name original-file-name))
|
(let ((name (tarxz-name original-file-name))
|
||||||
(modules (delete-duplicates (cons '(guix build utils) modules))))
|
(modules (delete-duplicates (cons '(guix build utils)
|
||||||
|
imported-modules))))
|
||||||
(gexp->derivation name build
|
(gexp->derivation name build
|
||||||
#:graft? #f
|
#:graft? #f
|
||||||
#:system system
|
#:system system
|
||||||
|
@ -791,7 +793,7 @@ information in exceptions."
|
||||||
;; store path, it needs to be added anyway, so it can be used as a
|
;; store path, it needs to be added anyway, so it can be used as a
|
||||||
;; source.
|
;; source.
|
||||||
(list name (intern file)))
|
(list name (intern file)))
|
||||||
(((? string? name) (? origin? source))
|
(((? string? name) (? struct? source))
|
||||||
(list name (package-source-derivation store source system)))
|
(list name (package-source-derivation store source system)))
|
||||||
(x
|
(x
|
||||||
(raise (condition (&package-input-error
|
(raise (condition (&package-input-error
|
||||||
|
@ -1128,12 +1130,10 @@ cross-compilation target triplet."
|
||||||
(package->cross-derivation package target system)
|
(package->cross-derivation package target system)
|
||||||
(package->derivation package system)))
|
(package->derivation package system)))
|
||||||
|
|
||||||
(define* (origin->derivation source
|
(define* (origin->derivation origin
|
||||||
#:optional (system (%current-system)))
|
#:optional (system (%current-system)))
|
||||||
"When SOURCE is an <origin> object, return its derivation for SYSTEM. When
|
"Return the derivation corresponding to ORIGIN."
|
||||||
SOURCE is a file name, return either the interned file name (if SOURCE is
|
(match origin
|
||||||
outside of the store) or SOURCE itself (if SOURCE is already a store item.)"
|
|
||||||
(match source
|
|
||||||
(($ <origin> uri method sha256 name (= force ()) #f)
|
(($ <origin> uri method sha256 name (= force ()) #f)
|
||||||
;; No patches, no snippet: this is a fixed-output derivation.
|
;; No patches, no snippet: this is a fixed-output derivation.
|
||||||
(method uri 'sha256 sha256 name #:system system))
|
(method uri 'sha256 sha256 name #:system system))
|
||||||
|
@ -1153,19 +1153,25 @@ outside of the store) or SOURCE itself (if SOURCE is already a store item.)"
|
||||||
#:flags flags
|
#:flags flags
|
||||||
#:system system
|
#:system system
|
||||||
#:modules modules
|
#:modules modules
|
||||||
#:imported-modules modules
|
#:imported-modules imported-modules
|
||||||
#:guile-for-build guile)))
|
#:guile-for-build guile)))))
|
||||||
((and (? string?) (? direct-store-path?) file)
|
|
||||||
(with-monad %store-monad
|
|
||||||
(return file)))
|
|
||||||
((? string? file)
|
|
||||||
(interned-file file (basename file)
|
|
||||||
#:recursive? #t))))
|
|
||||||
|
|
||||||
(define-gexp-compiler (origin-compiler (origin origin?) system target)
|
(define-gexp-compiler (origin-compiler (origin origin?) system target)
|
||||||
;; Compile ORIGIN to a derivation for SYSTEM. This is used when referring
|
;; Compile ORIGIN to a derivation for SYSTEM. This is used when referring
|
||||||
;; to an origin from within a gexp.
|
;; to an origin from within a gexp.
|
||||||
(origin->derivation origin system))
|
(origin->derivation origin system))
|
||||||
|
|
||||||
(define package-source-derivation
|
(define package-source-derivation ;somewhat deprecated
|
||||||
(store-lower origin->derivation))
|
(let ((lower (store-lower lower-object)))
|
||||||
|
(lambda* (store source #:optional (system (%current-system)))
|
||||||
|
"Return the derivation or file corresponding to SOURCE, which can be an
|
||||||
|
a file name or any object handled by 'lower-object', such as an <origin>.
|
||||||
|
When SOURCE is a file name, return either the interned file name (if SOURCE is
|
||||||
|
outside of the store) or SOURCE itself (if SOURCE is already a store item.)"
|
||||||
|
(match source
|
||||||
|
((and (? string?) (? direct-store-path?) file)
|
||||||
|
file)
|
||||||
|
((? string? file)
|
||||||
|
(add-to-store store (basename file) #t "sha256" file))
|
||||||
|
(_
|
||||||
|
(lower store source system))))))
|
||||||
|
|
|
@ -263,14 +263,12 @@
|
||||||
(path-info deriver hash refs registration-time nar-size)))
|
(path-info deriver hash refs registration-time nar-size)))
|
||||||
|
|
||||||
(define-syntax write-arg
|
(define-syntax write-arg
|
||||||
(syntax-rules (integer boolean file string string-list string-pairs
|
(syntax-rules (integer boolean string string-list string-pairs
|
||||||
store-path store-path-list base16)
|
store-path store-path-list base16)
|
||||||
((_ integer arg p)
|
((_ integer arg p)
|
||||||
(write-int arg p))
|
(write-int arg p))
|
||||||
((_ boolean arg p)
|
((_ boolean arg p)
|
||||||
(write-int (if arg 1 0) p))
|
(write-int (if arg 1 0) p))
|
||||||
((_ file arg p)
|
|
||||||
(write-file arg p))
|
|
||||||
((_ string arg p)
|
((_ string arg p)
|
||||||
(write-string arg p))
|
(write-string arg p))
|
||||||
((_ string-list arg p)
|
((_ string-list arg p)
|
||||||
|
@ -653,30 +651,51 @@ path."
|
||||||
(hash-set! cache args path)
|
(hash-set! cache args path)
|
||||||
path))))))
|
path))))))
|
||||||
|
|
||||||
|
(define true
|
||||||
|
;; Define it once and for all since we use it as a default value for
|
||||||
|
;; 'add-to-store' and want to make sure two default values are 'eq?' for the
|
||||||
|
;; purposes or memoization.
|
||||||
|
(lambda (file stat)
|
||||||
|
#t))
|
||||||
|
|
||||||
(define add-to-store
|
(define add-to-store
|
||||||
;; A memoizing version of `add-to-store'. This is important because
|
;; A memoizing version of `add-to-store'. This is important because
|
||||||
;; `add-to-store' leads to huge data transfers to the server, and
|
;; `add-to-store' leads to huge data transfers to the server, and
|
||||||
;; because it's often called many times with the very same argument.
|
;; because it's often called many times with the very same argument.
|
||||||
(let ((add-to-store (operation (add-to-store (string basename)
|
(let ((add-to-store
|
||||||
(boolean fixed?) ; obsolete, must be #t
|
(lambda* (server basename recursive? hash-algo file-name
|
||||||
(boolean recursive?)
|
#:key (select? true))
|
||||||
(string hash-algo)
|
;; We don't use the 'operation' macro so we can pass SELECT? to
|
||||||
(file file-name))
|
;; 'write-file'.
|
||||||
#f
|
(let ((port (nix-server-socket server)))
|
||||||
store-path)))
|
(write-int (operation-id add-to-store) port)
|
||||||
(lambda (server basename recursive? hash-algo file-name)
|
(write-string basename port)
|
||||||
|
(write-int 1 port) ;obsolete, must be #t
|
||||||
|
(write-int (if recursive? 1 0) port)
|
||||||
|
(write-string hash-algo port)
|
||||||
|
(write-file file-name port #:select? select?)
|
||||||
|
(let loop ((done? (process-stderr server)))
|
||||||
|
(or done? (loop (process-stderr server))))
|
||||||
|
(read-store-path port)))))
|
||||||
|
(lambda* (server basename recursive? hash-algo file-name
|
||||||
|
#:key (select? true))
|
||||||
"Add the contents of FILE-NAME under BASENAME to the store. When
|
"Add the contents of FILE-NAME under BASENAME to the store. When
|
||||||
RECURSIVE? is false, FILE-NAME must designate a regular file--not a directory
|
RECURSIVE? is false, FILE-NAME must designate a regular file--not a directory
|
||||||
nor a symlink. When RECURSIVE? is true and FILE-NAME designates a directory,
|
nor a symlink. When RECURSIVE? is true and FILE-NAME designates a directory,
|
||||||
the contents of FILE-NAME are added recursively; if FILE-NAME designates a
|
the contents of FILE-NAME are added recursively; if FILE-NAME designates a
|
||||||
flat file and RECURSIVE? is true, its contents are added, and its permission
|
flat file and RECURSIVE? is true, its contents are added, and its permission
|
||||||
bits are kept. HASH-ALGO must be a string such as \"sha256\"."
|
bits are kept. HASH-ALGO must be a string such as \"sha256\".
|
||||||
|
|
||||||
|
When RECURSIVE? is true, call (SELECT? FILE STAT) for each directory entry,
|
||||||
|
where FILE is the entry's absolute file name and STAT is the result of
|
||||||
|
'lstat'; exclude entries for which SELECT? does not return true."
|
||||||
(let* ((st (false-if-exception (lstat file-name)))
|
(let* ((st (false-if-exception (lstat file-name)))
|
||||||
(args `(,st ,basename ,recursive? ,hash-algo))
|
(args `(,st ,basename ,recursive? ,hash-algo ,select?))
|
||||||
(cache (nix-server-add-to-store-cache server)))
|
(cache (nix-server-add-to-store-cache server)))
|
||||||
(or (and st (hash-ref cache args))
|
(or (and st (hash-ref cache args))
|
||||||
(let ((path (add-to-store server basename #t recursive?
|
(let ((path (add-to-store server basename recursive?
|
||||||
hash-algo file-name)))
|
hash-algo file-name
|
||||||
|
#:select? select?)))
|
||||||
(hash-set! cache args path)
|
(hash-set! cache args path)
|
||||||
path))))))
|
path))))))
|
||||||
|
|
||||||
|
@ -1111,16 +1130,21 @@ resulting text file refers to; it defaults to the empty list."
|
||||||
store)))
|
store)))
|
||||||
|
|
||||||
(define* (interned-file file #:optional name
|
(define* (interned-file file #:optional name
|
||||||
#:key (recursive? #t))
|
#:key (recursive? #t) (select? true))
|
||||||
"Return the name of FILE once interned in the store. Use NAME as its store
|
"Return the name of FILE once interned in the store. Use NAME as its store
|
||||||
name, or the basename of FILE if NAME is omitted.
|
name, or the basename of FILE if NAME is omitted.
|
||||||
|
|
||||||
When RECURSIVE? is true, the contents of FILE are added recursively; if FILE
|
When RECURSIVE? is true, the contents of FILE are added recursively; if FILE
|
||||||
designates a flat file and RECURSIVE? is true, its contents are added, and its
|
designates a flat file and RECURSIVE? is true, its contents are added, and its
|
||||||
permission bits are kept."
|
permission bits are kept.
|
||||||
|
|
||||||
|
When RECURSIVE? is true, call (SELECT? FILE STAT) for each directory entry,
|
||||||
|
where FILE is the entry's absolute file name and STAT is the result of
|
||||||
|
'lstat'; exclude entries for which SELECT? does not return true."
|
||||||
(lambda (store)
|
(lambda (store)
|
||||||
(values (add-to-store store (or name (basename file))
|
(values (add-to-store store (or name (basename file))
|
||||||
recursive? "sha256" file)
|
recursive? "sha256" file
|
||||||
|
#:select? select?)
|
||||||
store)))
|
store)))
|
||||||
|
|
||||||
(define build
|
(define build
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
#:use-module ((rnrs bytevectors) #:select (bytevector-u8-set!))
|
#:use-module ((rnrs bytevectors) #:select (bytevector-u8-set!))
|
||||||
#:use-module (guix combinators)
|
#:use-module (guix combinators)
|
||||||
#:use-module ((guix build utils) #:select (dump-port))
|
#:use-module ((guix build utils) #:select (dump-port))
|
||||||
#:use-module ((guix build syscalls) #:select (mkdtemp!))
|
#:use-module ((guix build syscalls) #:select (mkdtemp! fdatasync))
|
||||||
#:use-module (ice-9 vlist)
|
#:use-module (ice-9 vlist)
|
||||||
#:use-module (ice-9 format)
|
#:use-module (ice-9 format)
|
||||||
#:autoload (ice-9 popen) (open-pipe*)
|
#:autoload (ice-9 popen) (open-pipe*)
|
||||||
|
@ -53,6 +53,8 @@
|
||||||
substitute-keyword-arguments
|
substitute-keyword-arguments
|
||||||
ensure-keyword-arguments
|
ensure-keyword-arguments
|
||||||
|
|
||||||
|
current-source-directory
|
||||||
|
|
||||||
<location>
|
<location>
|
||||||
location
|
location
|
||||||
location?
|
location?
|
||||||
|
@ -625,11 +627,13 @@ output port, and PROC's result is returned."
|
||||||
(with-throw-handler #t
|
(with-throw-handler #t
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(let ((result (proc out)))
|
(let ((result (proc out)))
|
||||||
(close out)
|
(fdatasync out)
|
||||||
|
(close-port out)
|
||||||
(rename-file template file)
|
(rename-file template file)
|
||||||
result))
|
result))
|
||||||
(lambda (key . args)
|
(lambda (key . args)
|
||||||
(false-if-exception (delete-file template))))))
|
(false-if-exception (delete-file template))
|
||||||
|
(close-port out)))))
|
||||||
|
|
||||||
(define (cache-directory)
|
(define (cache-directory)
|
||||||
"Return the cache directory for Guix, by default ~/.cache/guix."
|
"Return the cache directory for Guix, by default ~/.cache/guix."
|
||||||
|
@ -698,6 +702,23 @@ output port, and PROC's result is returned."
|
||||||
;;; Source location.
|
;;; Source location.
|
||||||
;;;
|
;;;
|
||||||
|
|
||||||
|
(define-syntax current-source-directory
|
||||||
|
(lambda (s)
|
||||||
|
"Return the absolute name of the current directory, or #f if it could not
|
||||||
|
be determined."
|
||||||
|
(syntax-case s ()
|
||||||
|
((_)
|
||||||
|
(match (assq 'filename (syntax-source s))
|
||||||
|
(('filename . (? string? file-name))
|
||||||
|
;; If %FILE-PORT-NAME-CANONICALIZATION is 'relative, then FILE-NAME
|
||||||
|
;; can be relative. In that case, we try to find out the absolute
|
||||||
|
;; file name by looking at %LOAD-PATH.
|
||||||
|
(if (string-prefix? "/" file-name)
|
||||||
|
(dirname file-name)
|
||||||
|
(and=> (search-path %load-path file-name) dirname)))
|
||||||
|
(_
|
||||||
|
#f))))))
|
||||||
|
|
||||||
;; A source location.
|
;; A source location.
|
||||||
(define-record-type <location>
|
(define-record-type <location>
|
||||||
(make-location file line column)
|
(make-location file line column)
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
#:use-module (guix derivations)
|
#:use-module (guix derivations)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix tests)
|
#:use-module (guix tests)
|
||||||
|
#:use-module ((guix build utils) #:select (with-directory-excursion))
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages bootstrap)
|
#:use-module (gnu packages bootstrap)
|
||||||
|
@ -33,7 +34,8 @@
|
||||||
#:use-module (rnrs io ports)
|
#:use-module (rnrs io ports)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 regex)
|
#:use-module (ice-9 regex)
|
||||||
#:use-module (ice-9 popen))
|
#:use-module (ice-9 popen)
|
||||||
|
#:use-module (ice-9 ftw))
|
||||||
|
|
||||||
;; Test the (guix gexp) module.
|
;; Test the (guix gexp) module.
|
||||||
|
|
||||||
|
@ -132,6 +134,29 @@
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(false-if-exception (delete-file link))))))
|
(false-if-exception (delete-file link))))))
|
||||||
|
|
||||||
|
(test-equal "local-file, relative file name"
|
||||||
|
(canonicalize-path (search-path %load-path "guix/base32.scm"))
|
||||||
|
(let ((directory (dirname (search-path %load-path
|
||||||
|
"guix/build-system/gnu.scm"))))
|
||||||
|
(with-directory-excursion directory
|
||||||
|
(let ((file (local-file "../guix/base32.scm")))
|
||||||
|
(local-file-absolute-file-name file)))))
|
||||||
|
|
||||||
|
(test-assertm "local-file, #:select?"
|
||||||
|
(mlet* %store-monad ((select? -> (lambda (file stat)
|
||||||
|
(member (basename file)
|
||||||
|
'("guix.scm" "tests"
|
||||||
|
"gexp.scm"))))
|
||||||
|
(file -> (local-file ".." "directory"
|
||||||
|
#:recursive? #t
|
||||||
|
#:select? select?))
|
||||||
|
(dir (lower-object file)))
|
||||||
|
(return (and (store-path? dir)
|
||||||
|
(equal? (scandir dir)
|
||||||
|
'("." ".." "guix.scm" "tests"))
|
||||||
|
(equal? (scandir (string-append dir "/tests"))
|
||||||
|
'("." ".." "gexp.scm"))))))
|
||||||
|
|
||||||
(test-assert "one plain file"
|
(test-assert "one plain file"
|
||||||
(let* ((file (plain-file "hi" "Hello, world!"))
|
(let* ((file (plain-file "hi" "Hello, world!"))
|
||||||
(exp (gexp (display (ungexp file))))
|
(exp (gexp (display (ungexp file))))
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#:use-module (guix store)
|
#:use-module (guix store)
|
||||||
#:use-module (guix monads)
|
#:use-module (guix monads)
|
||||||
#:use-module (guix grafts)
|
#:use-module (guix grafts)
|
||||||
|
#:use-module ((guix gexp) #:select (local-file local-file-file))
|
||||||
#:use-module ((guix utils)
|
#:use-module ((guix utils)
|
||||||
;; Rename the 'location' binding to allow proper syntax
|
;; Rename the 'location' binding to allow proper syntax
|
||||||
;; matching when setting the 'location' field of a package.
|
;; matching when setting the 'location' field of a package.
|
||||||
|
@ -295,6 +296,20 @@
|
||||||
(and (direct-store-path? source)
|
(and (direct-store-path? source)
|
||||||
(string-suffix? "utils.scm" source))))
|
(string-suffix? "utils.scm" source))))
|
||||||
|
|
||||||
|
(test-assert "package-source-derivation, local-file"
|
||||||
|
(let* ((file (local-file "../guix/base32.scm"))
|
||||||
|
(package (package (inherit (dummy-package "p"))
|
||||||
|
(source file)))
|
||||||
|
(source (package-source-derivation %store
|
||||||
|
(package-source package))))
|
||||||
|
(and (store-path? source)
|
||||||
|
(string-suffix? "base32.scm" source)
|
||||||
|
(valid-path? %store source)
|
||||||
|
(equal? (call-with-input-file source get-bytevector-all)
|
||||||
|
(call-with-input-file
|
||||||
|
(search-path %load-path "guix/base32.scm")
|
||||||
|
get-bytevector-all)))))
|
||||||
|
|
||||||
(unless (network-reachable?) (test-skip 1))
|
(unless (network-reachable?) (test-skip 1))
|
||||||
(test-equal "package-source-derivation, snippet"
|
(test-equal "package-source-derivation, snippet"
|
||||||
"OK"
|
"OK"
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#:use-module (guix base32)
|
#:use-module (guix base32)
|
||||||
#:use-module (guix hash)
|
#:use-module (guix hash)
|
||||||
#:use-module (guix tests)
|
#:use-module (guix tests)
|
||||||
#:use-module ((guix build utils) #:select (delete-file-recursively))
|
#:use-module ((guix build utils) #:select (delete-file-recursively which))
|
||||||
#:use-module (srfi srfi-64)
|
#:use-module (srfi srfi-64)
|
||||||
#:use-module (ice-9 match))
|
#:use-module (ice-9 match))
|
||||||
|
|
||||||
|
@ -42,6 +42,9 @@
|
||||||
}, {
|
}, {
|
||||||
\"url\": \"https://example.com/foo-1.0.0.tar.gz\",
|
\"url\": \"https://example.com/foo-1.0.0.tar.gz\",
|
||||||
\"packagetype\": \"sdist\",
|
\"packagetype\": \"sdist\",
|
||||||
|
}, {
|
||||||
|
\"url\": \"https://example.com/foo-1.0.0-py2.py3-none-any.whl\",
|
||||||
|
\"packagetype\": \"bdist_wheel\",
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -56,6 +59,18 @@
|
||||||
bar
|
bar
|
||||||
baz > 13.37")
|
baz > 13.37")
|
||||||
|
|
||||||
|
(define test-metadata
|
||||||
|
"{
|
||||||
|
\"run_requires\": [
|
||||||
|
{
|
||||||
|
\"requires\": [
|
||||||
|
\"bar\",
|
||||||
|
\"baz (>13.37)\"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}")
|
||||||
|
|
||||||
(test-begin "pypi")
|
(test-begin "pypi")
|
||||||
|
|
||||||
(test-assert "pypi->guix-package"
|
(test-assert "pypi->guix-package"
|
||||||
|
@ -77,6 +92,67 @@ baz > 13.37")
|
||||||
(delete-file-recursively "foo-1.0.0")
|
(delete-file-recursively "foo-1.0.0")
|
||||||
(set! test-source-hash
|
(set! test-source-hash
|
||||||
(call-with-input-file file-name port-sha256))))
|
(call-with-input-file file-name port-sha256))))
|
||||||
|
("https://example.com/foo-1.0.0-py2.py3-none-any.whl" #f)
|
||||||
|
(_ (error "Unexpected URL: " url)))))
|
||||||
|
(match (pypi->guix-package "foo")
|
||||||
|
(('package
|
||||||
|
('name "python-foo")
|
||||||
|
('version "1.0.0")
|
||||||
|
('source ('origin
|
||||||
|
('method 'url-fetch)
|
||||||
|
('uri (string-append "https://example.com/foo-"
|
||||||
|
version ".tar.gz"))
|
||||||
|
('sha256
|
||||||
|
('base32
|
||||||
|
(? string? hash)))))
|
||||||
|
('build-system 'python-build-system)
|
||||||
|
('inputs
|
||||||
|
('quasiquote
|
||||||
|
(("python-bar" ('unquote 'python-bar))
|
||||||
|
("python-baz" ('unquote 'python-baz))
|
||||||
|
("python-setuptools" ('unquote 'python-setuptools)))))
|
||||||
|
('home-page "http://example.com")
|
||||||
|
('synopsis "summary")
|
||||||
|
('description "summary")
|
||||||
|
('license 'lgpl2.0))
|
||||||
|
(string=? (bytevector->nix-base32-string
|
||||||
|
test-source-hash)
|
||||||
|
hash))
|
||||||
|
(x
|
||||||
|
(pk 'fail x #f)))))
|
||||||
|
|
||||||
|
(test-skip (if (which "zip") 0 1))
|
||||||
|
(test-assert "pypi->guix-package, wheels"
|
||||||
|
;; Replace network resources with sample data.
|
||||||
|
(mock ((guix import utils) url-fetch
|
||||||
|
(lambda (url file-name)
|
||||||
|
(match url
|
||||||
|
("https://pypi.python.org/pypi/foo/json"
|
||||||
|
(with-output-to-file file-name
|
||||||
|
(lambda ()
|
||||||
|
(display test-json))))
|
||||||
|
("https://example.com/foo-1.0.0.tar.gz"
|
||||||
|
(begin
|
||||||
|
(mkdir "foo-1.0.0")
|
||||||
|
(with-output-to-file "foo-1.0.0/requirements.txt"
|
||||||
|
(lambda ()
|
||||||
|
(display test-requirements)))
|
||||||
|
(system* "tar" "czvf" file-name "foo-1.0.0/")
|
||||||
|
(delete-file-recursively "foo-1.0.0")
|
||||||
|
(set! test-source-hash
|
||||||
|
(call-with-input-file file-name port-sha256))))
|
||||||
|
("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
|
||||||
|
(begin
|
||||||
|
(mkdir "foo-1.0.0.dist-info")
|
||||||
|
(with-output-to-file "foo-1.0.0.dist-info/metadata.json"
|
||||||
|
(lambda ()
|
||||||
|
(display test-metadata)))
|
||||||
|
(let ((zip-file (string-append file-name ".zip")))
|
||||||
|
;; zip always adds a "zip" extension to the file it creates,
|
||||||
|
;; so we need to rename it.
|
||||||
|
(system* "zip" zip-file "foo-1.0.0.dist-info/metadata.json")
|
||||||
|
(rename-file zip-file file-name))
|
||||||
|
(delete-file-recursively "foo-1.0.0.dist-info")))
|
||||||
(_ (error "Unexpected URL: " url)))))
|
(_ (error "Unexpected URL: " url)))))
|
||||||
(match (pypi->guix-package "foo")
|
(match (pypi->guix-package "foo")
|
||||||
(('package
|
(('package
|
||||||
|
|
Loading…
Reference in New Issue