summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.mailmap1
-rw-r--r--Makefile.am13
-rw-r--r--build-aux/cuirass/gnu-system.scm47
-rw-r--r--build-aux/hydra/evaluate.scm13
-rw-r--r--build-aux/hydra/gnu-system.scm19
-rw-r--r--doc/guix.texi155
-rw-r--r--gnu/local.mk11
-rw-r--r--gnu/packages/accessibility.scm45
-rw-r--r--gnu/packages/android.scm38
-rw-r--r--gnu/packages/aspell.scm2
-rw-r--r--gnu/packages/audio.scm66
-rw-r--r--gnu/packages/autotools.scm5
-rw-r--r--gnu/packages/bdw-gc.scm12
-rw-r--r--gnu/packages/calendar.scm7
-rw-r--r--gnu/packages/check.scm24
-rw-r--r--gnu/packages/ci.scm17
-rw-r--r--gnu/packages/code.scm6
-rw-r--r--gnu/packages/compression.scm2
-rw-r--r--gnu/packages/cran.scm17
-rw-r--r--gnu/packages/crypto.scm4
-rw-r--r--gnu/packages/databases.scm70
-rw-r--r--gnu/packages/dav.scm5
-rw-r--r--gnu/packages/dns.scm10
-rw-r--r--gnu/packages/dunst.scm17
-rw-r--r--gnu/packages/electronics.scm2
-rw-r--r--gnu/packages/emacs.scm199
-rw-r--r--gnu/packages/embedded.scm119
-rw-r--r--gnu/packages/engineering.scm154
-rw-r--r--gnu/packages/finance.scm62
-rw-r--r--gnu/packages/flashing-tools.scm67
-rw-r--r--gnu/packages/fonts.scm27
-rw-r--r--gnu/packages/fpga.scm2
-rw-r--r--gnu/packages/ftp.scm4
-rw-r--r--gnu/packages/games.scm4
-rw-r--r--gnu/packages/gnome.scm76
-rw-r--r--gnu/packages/gnunet.scm6
-rw-r--r--gnu/packages/gnuzilla.scm28
-rw-r--r--gnu/packages/graphviz.scm2
-rw-r--r--gnu/packages/guile.scm2
-rw-r--r--gnu/packages/imagemagick.scm7
-rw-r--r--gnu/packages/java.scm564
-rw-r--r--gnu/packages/libreoffice.scm4
-rw-r--r--gnu/packages/libusb.scm2
-rw-r--r--gnu/packages/linux.scm12
-rw-r--r--gnu/packages/lirc.scm14
-rw-r--r--gnu/packages/lisp.scm32
-rw-r--r--gnu/packages/mail.scm10
-rw-r--r--gnu/packages/maths.scm2
-rw-r--r--gnu/packages/messaging.scm132
-rw-r--r--gnu/packages/mpi.scm1
-rw-r--r--gnu/packages/music.scm12
-rw-r--r--gnu/packages/networking.scm4
-rw-r--r--gnu/packages/ocaml.scm351
-rw-r--r--gnu/packages/patches/clisp-remove-failing-test.patch43
-rw-r--r--gnu/packages/patches/cube-nocheck.patch16
-rw-r--r--gnu/packages/patches/graphicsmagick-CVE-2017-14649.patch210
-rw-r--r--gnu/packages/patches/ocaml-graph-honor-source-date-epoch.patch34
-rw-r--r--gnu/packages/patches/openocd-nrf52.patch64
-rw-r--r--gnu/packages/patches/python-nose-timer-drop-ordereddict.patch44
-rw-r--r--gnu/packages/patches/qemu-CVE-2017-13711.patch89
-rw-r--r--gnu/packages/patches/qemu-CVE-2017-14167.patch69
-rw-r--r--gnu/packages/patches/xorg-server-CVE-2017-10971.patch153
-rw-r--r--gnu/packages/patches/xorg-server-CVE-2017-10972.patch35
-rw-r--r--gnu/packages/php.scm4
-rw-r--r--gnu/packages/profiling.scm399
-rw-r--r--gnu/packages/pulseaudio.scm31
-rw-r--r--gnu/packages/python.scm194
-rw-r--r--gnu/packages/qt.scm16
-rw-r--r--gnu/packages/ruby.scm229
-rw-r--r--gnu/packages/ssh.scm4
-rw-r--r--gnu/packages/statistics.scm20
-rw-r--r--gnu/packages/tcl.scm3
-rw-r--r--gnu/packages/terminals.scm9
-rw-r--r--gnu/packages/tls.scm18
-rw-r--r--gnu/packages/tor.scm4
-rw-r--r--gnu/packages/uml.scm2
-rw-r--r--gnu/packages/video.scm4
-rw-r--r--gnu/packages/virtualization.scm6
-rw-r--r--gnu/packages/vpn.scm7
-rw-r--r--gnu/packages/web.scm34
-rw-r--r--gnu/packages/wxwidgets.scm2
-rw-r--r--gnu/packages/xdisorg.scm35
-rw-r--r--gnu/packages/xorg.scm10
-rw-r--r--gnu/services/version-control.scm119
-rw-r--r--gnu/services/web.scm6
-rw-r--r--gnu/system/vm.scm22
-rw-r--r--gnu/tests/version-control.scm176
-rw-r--r--guix/build-system/ant.scm6
-rw-r--r--guix/build/ant-build-system.scm38
-rw-r--r--guix/import/print.scm164
-rw-r--r--guix/import/utils.scm90
-rw-r--r--guix/scripts/import.scm2
-rw-r--r--guix/scripts/import/json.scm102
-rw-r--r--tests/import-utils.scm40
-rw-r--r--tests/print.scm64
95 files changed, 4373 insertions, 751 deletions
diff --git a/.mailmap b/.mailmap
index 8ff87ed24d..49c266bf72 100644
--- a/.mailmap
+++ b/.mailmap
@@ -65,6 +65,7 @@ Sou Bunnbu (宋文武) <iyzsong@gmail.com>
Sou Bunnbu (宋文武) <iyzsong@gmail.com> <iyzsong@member.fsf.org>
Stefan Reichör <stefan@xsteve.at>
Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
+Theodoros Foradis <theodoros.for@openmailbox.org> <theodoros@foradis.org>
Thomas Danckaert <thomas.danckaert@gmail.com> <post@thomasdanckaert.be>
Tobias Geerinckx-Rice <me@tobias.gr> <tobias.geerinckx.rice@gmail.com>
Tomáš Čech <sleep_walker@gnu.org> <sleep_walker@suse.cz>
diff --git a/Makefile.am b/Makefile.am
index a178d53cb5..d054f78791 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -7,6 +7,7 @@
# Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
# Copyright © 2017 Leo Famulari <leo@famulari.name>
# Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+# Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
#
# This file is part of GNU Guix.
#
@@ -143,6 +144,7 @@ MODULES = \
guix/build/make-bootstrap.scm \
guix/search-paths.scm \
guix/packages.scm \
+ guix/import/print.scm \
guix/import/utils.scm \
guix/import/gnu.scm \
guix/import/snix.scm \
@@ -173,6 +175,7 @@ MODULES = \
guix/scripts/import/gnu.scm \
guix/scripts/import/nix.scm \
guix/scripts/import/hackage.scm \
+ guix/scripts/import/json.scm \
guix/scripts/import/elpa.scm \
guix/scripts/import/texlive.scm \
guix/scripts/environment.scm \
@@ -275,6 +278,7 @@ SCM_TESTS = \
tests/hash.scm \
tests/pk-crypto.scm \
tests/pki.scm \
+ tests/print.scm \
tests/sets.scm \
tests/modules.scm \
tests/gnu-maintenance.scm \
@@ -708,6 +712,15 @@ hydra-jobs.scm: $(GOBJECTS)
"$(top_srcdir)/build-aux/hydra/gnu-system.scm" > "$@.tmp"
$(AM_V_at)mv "$@.tmp" "$@"
+# Compute the Cuirass jobs and write them in the target file.
+cuirass-jobs.scm: $(GOBJECTS)
+ $(AM_V_at)$(MKDIR_P) "`dirname "$@"`"
+ $(AM_V_GEN)$(top_builddir)/pre-inst-env "$(GUILE)" \
+ "$(top_srcdir)/build-aux/hydra/evaluate.scm" \
+ "$(top_srcdir)/build-aux/cuirass/gnu-system.scm" \
+ cuirass > "$@.tmp"
+ $(AM_V_at)mv "$@.tmp" "$@"
+
.PHONY: gen-ChangeLog gen-AUTHORS gen-tarball-version
.PHONY: assert-no-store-file-names assert-binaries-available
.PHONY: assert-final-inputs-self-contained
diff --git a/build-aux/cuirass/gnu-system.scm b/build-aux/cuirass/gnu-system.scm
new file mode 100644
index 0000000000..c88267b9d8
--- /dev/null
+++ b/build-aux/cuirass/gnu-system.scm
@@ -0,0 +1,47 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+;;;
+;;; This file defines build jobs for the Cuirass continuation integration
+;;; tool.
+;;;
+
+(include-from-path "build-aux/hydra/gnu-system.scm")
+
+(use-modules ((guix licenses)
+ #:select (license? license-name license-uri license-comment)))
+
+(define (cuirass-jobs store arguments)
+ "Return Cuirass jobs."
+ (map hydra-job->cuirass-job (hydra-jobs store arguments)))
+
+(define (hydra-job->cuirass-job hydra-job)
+ (let ((name (car hydra-job))
+ (job ((cdr hydra-job))))
+ (lambda _ (acons #:job-name (symbol->string name)
+ (map symbol-alist-entry->keyword-alist-entry job)))))
+
+(define (symbol-alist-entry->keyword-alist-entry entry)
+ (cons (symbol->keyword (car entry)) (entry->sexp-entry (cdr entry))))
+
+(define (entry->sexp-entry o)
+ (match o
+ ((? license?) `((name . (license-name o))
+ (uri . ,(license-uri o))
+ (comment . ,(license-comment o))))
+ (_ o)))
diff --git a/build-aux/hydra/evaluate.scm b/build-aux/hydra/evaluate.scm
index cc6a4b9492..604022abcf 100644
--- a/build-aux/hydra/evaluate.scm
+++ b/build-aux/hydra/evaluate.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -70,7 +71,7 @@ Otherwise return THING."
;; Without further ado...
(match (command-line)
- ((command file)
+ ((command file cuirass? ...)
;; Load FILE, a Scheme file that defines Hydra jobs.
(let ((port (current-output-port)))
(save-module-excursion
@@ -96,7 +97,11 @@ Otherwise return THING."
;; Call the entry point of FILE and print the resulting job sexp.
(pretty-print
- (match ((module-ref %user-module 'hydra-jobs) store '())
+ (match ((module-ref %user-module
+ (if (equal? cuirass? "cuirass")
+ 'cuirass-jobs
+ 'hydra-jobs))
+ store '())
(((names . thunks) ...)
(map (lambda (job thunk)
(format (current-error-port) "evaluating '~a'... " job)
@@ -107,8 +112,8 @@ Otherwise return THING."
names thunks)))
port))))
((command _ ...)
- (format (current-error-port) "Usage: ~a FILE
-Evaluate the Hydra jobs defined in FILE.~%"
+ (format (current-error-port) "Usage: ~a FILE [cuirass]
+Evaluate the Hydra or Cuirass jobs defined in FILE.~%"
command)
(exit 1)))
diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm
index 73bd566f7c..146d929f9b 100644
--- a/build-aux/hydra/gnu-system.scm
+++ b/build-aux/hydra/gnu-system.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -270,6 +271,8 @@ valid."
(define subset
(match (assoc-ref arguments 'subset)
("core" 'core) ; only build core packages
+ ("hello" 'hello) ; only build hello
+ (((? string?) (? string?) ...) 'list) ; only build selected list of packages
(_ 'all))) ; build everything
(define (cross-jobs system)
@@ -340,6 +343,22 @@ valid."
package system))
%core-packages)
(cross-jobs system)))
+ ((hello)
+ ;; Build hello package only.
+ (if (string=? system (%current-system))
+ (let ((hello (specification->package "hello")))
+ (list (package-job store (job-name hello) hello system)))
+ '()))
+ ((list)
+ ;; Build selected list of packages only.
+ (if (string=? system (%current-system))
+ (let* ((names (assoc-ref arguments 'subset))
+ (packages (map specification->package names)))
+ (map (lambda (package)
+ (package-job store (job-name package)
+ package system))
+ packages))
+ '()))
(else
(error "unknown subset" subset))))
%hydra-supported-systems)))
diff --git a/doc/guix.texi b/doc/guix.texi
index fff3fbd5fd..f0a59a6b4b 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -3479,6 +3479,14 @@ build file @file{build.xml} with tasks to build the specified jar
archive. In this case the parameter @code{#:source-dir} can be used to
specify the source sub-directory, defaulting to ``src''.
+The @code{#:main-class} parameter can be used with the minimal ant
+buildfile to specify the main class of the resulting jar. This makes the
+jar file executable. The @code{#:test-include} parameter can be used to
+specify the list of junit tests to run. It defaults to
+@code{(list "**/*Test.java")}. The @code{#:test-exclude} can be used to
+disable some tests. It defaults to @code{(list "**/Abstract*.java")},
+because abstract classes cannot be run as tests.
+
The parameter @code{#:build-target} can be used to specify the Ant task
that should be run during the @code{build} phase. By default the
``jar'' task will be run.
@@ -5899,6 +5907,56 @@ CTAN while fetching the sources from the directory
guix import texlive --archive=generic ifxetex
@end example
+@item json
+@cindex JSON, import
+Import package metadata from a local JSON file@footnote{This
+functionality requires Guile-JSON to be installed.
+@xref{Requirements}.}. Consider the following example package
+definition in JSON format:
+
+@example
+@{
+ "name": "hello",
+ "version": "2.10",
+ "source": "mirror://gnu/hello/hello-2.10.tar.gz",
+ "build-system": "gnu",
+ "home-page": "https://www.gnu.org/software/hello/",
+ "synopsis": "Hello, GNU world: An example GNU package",
+ "description": "GNU Hello prints a greeting.",
+ "license": "GPL-3.0+",
+ "native-inputs": ["gcc@@6"]
+@}
+@end example
+
+The field names are the same as for the @code{<package>} record
+(@xref{Defining Packages}). References to other packages are provided
+as JSON lists of quoted package specification strings such as
+@code{guile} or @code{guile@@2.0}.
+
+The importer also supports a more explicit source definition using the
+common fields for @code{<origin>} records:
+
+@example
+@{
+ @dots{}
+ "source": @{
+ "method": "url-fetch",
+ "uri": "mirror://gnu/hello/hello-2.10.tar.gz",
+ "sha256": @{
+ "base32": "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"
+ @}
+ @}
+ @dots{}
+@}
+@end example
+
+The command below reads metadata from the JSON file @code{hello.json}
+and outputs a package expression:
+
+@example
+guix import json hello.json
+@end example
+
@item nix
Import metadata from a local copy of the source of the
@uref{http://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This
@@ -9964,7 +10022,7 @@ with the default settings, for commonly encountered log files.
(operating-system
;; @dots{}
- (services (cons* (mcron-service)
+ (services (cons* (service mcron-service-type)
(service rottlog-service-type)
%base-services)))
@end lisp
@@ -14213,7 +14271,8 @@ blocks, as in this example:
(https-port #f)
(ssl-certificate #f)
(ssl-certificate-key #f)
- (root "/srv/http/extra-website"))))
+ (root "/srv/http/extra-website")
+ (try-files (list "$uri" "$uri/index.html")))))
@end example
@end deffn
@@ -14344,6 +14403,10 @@ server block.
Index files to look for when clients ask for a directory. If it cannot be found,
Nginx will send the list of files in the directory.
+@item @code{try-files} (default: @code{'()})
+A list of files whose existence is checked in the specified order.
+@code{nginx} will use the first file it finds to process the request.
+
@item @code{ssl-certificate} (default: @code{"/etc/nginx/cert.pem"})
Where to find the certificate for secure connections. Set it to @code{#f} if
you don't have a certificate or you don't want to use HTTPS.
@@ -15367,15 +15430,8 @@ packages, as prescribed in the @file{gnu-system.scm} example spec:
(let ((spec #~((#:name . "guix")
(#:url . "git://git.savannah.gnu.org/guix.git")
(#:load-path . ".")
-
- ;; Here we must provide an absolute file name.
- ;; We take jobs from one of the examples provided
- ;; by Cuirass.
- (#:file . #$(file-append
- cuirass
- "/tests/gnu-system.scm"))
-
- (#:proc . hydra-jobs)
+ (#:file . "build-aux/cuirass/gnu-system.scm")
+ (#:proc . cuirass-jobs)
(#:arguments (subset . "hello"))
(#:branch . "master"))))
(service cuirass-service-type
@@ -16952,6 +17008,71 @@ Extra options will be passed to @code{git daemon}, please run
@end table
@end deftp
+@subsubheading Cgit Service
+
+@cindex Cgit service
+@cindex Git, web interface
+@uref{https://git.zx2c4.com/cgit/, Cgit} is a web frontend for Git
+repositories written in C.
+
+The following example will configure the service with default values.
+By default, Cgit can be accessed on port 80 (@code{http://localhost:80}).
+
+@example
+(service nginx-service-type)
+(service fcgiwrap-service-type)
+(service cgit-service-type)
+@end example
+
+@deftp {Data Type} cgit-configuration
+Data type representing the configuration of Cgit.
+This type has the following parameters:
+
+@table @asis
+@item @code{config-file} (default: @code{(cgit-configuration-file)})
+The configuration file to use for Cgit. This can be set to a
+@dfn{cgit-configuration-file} record value, or any gexp
+(@pxref{G-Expressions}).
+
+For example, to instead use a local file, the @code{local-file} function
+can be used:
+
+@example
+(service cgit-service-type
+ (cgit-configuration
+ (config-file (local-file "./my-cgitrc.conf"))))
+@end example
+
+@item @code{package} (default: @code{cgit})
+The Cgit package to use.
+
+@end table
+@end deftp
+
+@deftp {Data Type} cgit-configuration-file
+Data type representing the configuration options for Cgit.
+This type has the following parameters:
+
+@table @asis
+@item @code{css} (default: @code{"/share/cgit/cgit.css"})
+URL which specifies the css document to include in all Cgit pages.
+
+@item @code{logo} (default: @code{"/share/cgit/cgit.png"})
+URL which specifies the source of an image which will be used as a logo
+on all Cgit pages.
+
+@item @code{virtual-root} (default: @code{"/"})
+URL which, if specified, will be used as root for all Cgit links.
+
+@item @code{repository-directory} (default: @code{"/srv/git"})
+Name of the directory to scan for repositories.
+
+@item @code{robots} (default: @code{(list "noindex" "nofollow")})
+Text used as content for the ``robots'' meta-tag.
+
+@end table
+@end deftp
+
@node Setuid Programs
@subsection Setuid Programs
@@ -19099,6 +19220,18 @@ Translation Project} so that as many users as possible can read them in
their native language. User interfaces search them and display them in
the language specified by the current locale.
+To allow @command{xgettext} to extract them as translatable strings,
+synopses and descriptions @emph{must be literal strings}. This means
+that you cannot use @code{string-append} or @code{format} to construct
+these strings:
+
+@lisp
+(package
+ ;; @dots{}
+ (synopsis "This is translatable")
+ (description (string-append "This is " "*not*" " translatable.")))
+@end lisp
+
Translation is a lot of work so, as a packager, please pay even more
attention to your synopses and descriptions as every change may entail
additional work for translators. In order to help them, it is possible
diff --git a/gnu/local.mk b/gnu/local.mk
index 0afda9ff25..392ca8287f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -326,6 +326,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/plotutils.scm \
%D%/packages/polkit.scm \
%D%/packages/popt.scm \
+ %D%/packages/profiling.scm \
%D%/packages/pth.scm \
%D%/packages/pulseaudio.scm \
%D%/packages/pumpio.scm \
@@ -501,6 +502,7 @@ GNU_SYSTEM_MODULES = \
%D%/tests/networking.scm \
%D%/tests/rsync.scm \
%D%/tests/ssh.scm \
+ %D%/tests/version-control.scm \
%D%/tests/virtualization.scm \
%D%/tests/web.scm
@@ -557,6 +559,7 @@ dist_patch_DATA = \
%D%/packages/patches/chmlib-inttypes.patch \
%D%/packages/patches/clang-libc-search-path.patch \
%D%/packages/patches/clang-3.8-libc-search-path.patch \
+ %D%/packages/patches/clisp-remove-failing-test.patch \
%D%/packages/patches/clucene-pkgconfig.patch \
%D%/packages/patches/clx-remove-demo.patch \
%D%/packages/patches/cmake-fix-tests.patch \
@@ -574,6 +577,7 @@ dist_patch_DATA = \
%D%/packages/patches/crda-optional-gcrypt.patch \
%D%/packages/patches/crossmap-allow-system-pysam.patch \
%D%/packages/patches/clucene-contribs-lib.patch \
+ %D%/packages/patches/cube-nocheck.patch \
%D%/packages/patches/cursynth-wave-rand.patch \
%D%/packages/patches/cvs-2017-12836.patch \
%D%/packages/patches/cyrus-sasl-CVE-2013-4122.patch \
@@ -683,6 +687,7 @@ dist_patch_DATA = \
%D%/packages/patches/graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch \
%D%/packages/patches/graphicsmagick-CVE-2017-14042.patch \
%D%/packages/patches/graphicsmagick-CVE-2017-14165.patch \
+ %D%/packages/patches/graphicsmagick-CVE-2017-14649.patch \
%D%/packages/patches/graphite2-ffloat-store.patch \
%D%/packages/patches/grep-gnulib-lock.patch \
%D%/packages/patches/grep-timing-sensitive-test.patch \
@@ -889,6 +894,7 @@ dist_patch_DATA = \
%D%/packages/patches/ocaml-CVE-2015-8869.patch \
%D%/packages/patches/ocaml-Add-a-.file-directive.patch \
%D%/packages/patches/ocaml-findlib-make-install.patch \
+ %D%/packages/patches/ocaml-graph-honor-source-date-epoch.patch \
%D%/packages/patches/omake-fix-non-determinism.patch \
%D%/packages/patches/ola-readdir-r.patch \
%D%/packages/patches/openscenegraph-ffmpeg3.patch \
@@ -974,6 +980,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-genshi-isstring-helper.patch \
%D%/packages/patches/python-genshi-stripping-of-unsafe-script-tags.patch \
%D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
+ %D%/packages/patches/python-nose-timer-drop-ordereddict.patch \
%D%/packages/patches/python-parse-too-many-fields.patch \
%D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \
%D%/packages/patches/python-statsmodels-fix-tests.patch \
@@ -988,8 +995,6 @@ dist_patch_DATA = \
%D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
%D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
%D%/packages/patches/python2-subprocess32-disable-input-test.patch \
- %D%/packages/patches/qemu-CVE-2017-13711.patch \
- %D%/packages/patches/qemu-CVE-2017-14167.patch \
%D%/packages/patches/qt4-ldflags.patch \
%D%/packages/patches/qtscript-disable-tests.patch \
%D%/packages/patches/quagga-reproducible-build.patch \
@@ -1114,8 +1119,6 @@ dist_patch_DATA = \
%D%/packages/patches/xinetd-fix-fd-leak.patch \
%D%/packages/patches/xinetd-CVE-2013-4342.patch \
%D%/packages/patches/xmodmap-asprintf.patch \
- %D%/packages/patches/xorg-server-CVE-2017-10971.patch \
- %D%/packages/patches/xorg-server-CVE-2017-10972.patch \
%D%/packages/patches/libyaml-CVE-2014-9130.patch \
%D%/packages/patches/zathura-plugindir-environment-variable.patch \
%D%/packages/patches/zziplib-CVE-2017-5974.patch \
diff --git a/gnu/packages/accessibility.scm b/gnu/packages/accessibility.scm
index 0795808768..78cb64a2d7 100644
--- a/gnu/packages/accessibility.scm
+++ b/gnu/packages/accessibility.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 ng0 <ng0@no-reply.pragmatique.xyz>
+;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,6 +21,8 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#:use-module (gnu packages)
#:use-module (gnu packages xml)
@@ -29,7 +32,8 @@
#:use-module (gnu packages xorg)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
- #:use-module (gnu packages pkg-config))
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages libusb))
(define-public florence
(package
@@ -76,3 +80,42 @@ available to help to click.")
;; The documentation is under FDL1.2, but we do not install the
;; documentation.
(license license:gpl2+)))
+
+(define-public footswitch
+ (let ((commit "7cb0a9333a150c27c7e4746ee827765d244e567a"))
+ (package
+ (name "footswitch")
+ (version (git-version "0.1" "1" commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rgerganov/footswitch")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0mg1vr4a9vls5y435w7wdnr1vb5059gy60lvrdfjgzhd2wwf47iw"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("hidapi" ,hidapi)))
+ (arguments
+ `(#:tests? #f ; no tests
+ #:make-flags (list "CC=gcc")
+ #:phases (modify-phases %standard-phases
+ (delete 'configure)
+ ;; Install target in the Makefile does not work for Guix
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out")
+ "/bin")))
+ (mkdir-p bin)
+ (install-file "footswitch" bin)
+ #t))))))
+ (home-page "https://github.com/rgerganov/footswitch")
+ (synopsis "Command line utility for PCsensor foot switch")
+ (description
+ "Command line utility for programming foot switches sold by PCsensor.
+It works for both single pedal devices and three pedal devices. All supported
+devices have vendorId:productId = 0c45:7403 or 0c45:7404.")
+ (license license:expat))))
diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index be3f50add2..d9be335be0 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -25,6 +26,7 @@
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
+ #:use-module (guix build-system trivial)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages gnupg)
@@ -305,6 +307,42 @@ of device actions, such as installing and debugging apps, and it provides access
to a Unix shell that can run commands on the connected device or emulator.")
(license license:asl2.0)))
+(define-public android-udev-rules
+ (package
+ (name "android-udev-rules")
+ (version "20170910")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/M0Rf30/android-udev-rules")
+ (commit version)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32 "0vic40n3si0dxag3dyc3hi3pn7cjpm5q378x8v2ys19n3iz9fp1g"))))
+ (build-system trivial-build-system)
+ (native-inputs `(("source" ,source)))
+ (arguments
+ '(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((source (assoc-ref %build-inputs "source")))
+ (install-file (string-append source "/51-android.rules")
+ (string-append %output "/lib/udev/rules.d"))))))
+ (home-page "https://github.com/M0Rf30/android-udev-rules")
+ (synopsis "udev rules for Android devices")
+ (description "Provides a set of udev rules to allow using Android devices
+with tools such as @command{adb} and @command{fastboot} without root
+privileges. This package is intended to be added as a rule to the
+@code{udev-service-type} in your @code{operating-system} configuration.
+Additionally, an @code{adbusers} group must be defined and your user added to
+it.
+
+@emph{Simply installing this package will not have any effect.} It is meant
+to be passed to the @code{udev} service.")
+ (license license:gpl3+)))
+
(define-public git-repo
(package
(name "git-repo")
diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm
index 3469c7a3ec..c97d32260b 100644
--- a/gnu/packages/aspell.scm
+++ b/gnu/packages/aspell.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Christopher Andersson <christopher@8bits.nu>
-;;; Copyright © 2016 Theodoros Foradis <theodoros.for@openmailbox.org>
+;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index e06c62a0e8..909cf26468 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -36,6 +36,7 @@
#:use-module (guix build-system trivial)
#:use-module (guix build-system cmake)
#:use-module (guix build-system python)
+ #:use-module (guix build-system glib-or-gtk)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
@@ -79,6 +80,8 @@
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
+ #:use-module (gnu packages maths)
+ #:use-module (gnu packages multiprecision)
#:use-module (srfi srfi-1))
(define-public alsa-modular-synth
@@ -1125,7 +1128,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
(define-public guitarix
(package
(name "guitarix")
- (version "0.35.5")
+ (version "0.35.6")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1133,7 +1136,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
version ".tar.xz"))
(sha256
(base32
- "00pfb6qa3jfa6qaql7isnb8srfdfmk362ygslh7y0qkm36qasmh4"))))
+ "0ffvfnvhj6vz73zsrpi88hs69ys4zskm847zf825dl2r39n9nn41"))))
(build-system waf-build-system)
(arguments
`(#:tests? #f ; no "check" target
@@ -2913,3 +2916,62 @@ mixers.")
(define-public python2-pyalsaaudio
(package-with-python2 python-pyalsaaudio))
+
+(define-public snd
+ (package
+ (name "snd")
+ (version "17.7")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
+ "snd-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1vm0dy5qlycqkima7y5ajzvazyjybifa803fabjcpncjz08c26vp"))))
+ (build-system glib-or-gtk-build-system)
+ (arguments
+ '(#:tests? #f ; no tests
+ #:out-of-source? #f ; for the 'install-doc' phase
+ #:configure-flags
+ (let* ((out (assoc-ref %outputs "out"))
+ (docdir (string-append out "/share/doc/snd")))
+ (list "--with-alsa" "--with-jack" "--with-gmp"
+ (string-append "--with-doc-dir=" docdir)))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (docdir (string-append out "/share/doc/snd")))
+ (mkdir-p docdir)
+ (for-each
+ (lambda (f)
+ (install-file f docdir))
+ (find-files "." "\\.html$|COPYING"))
+ (copy-recursively "pix" (string-append docdir "/pix"))
+ #t))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("fftw" ,fftw)
+ ("flac" ,flac)
+ ("gmp" ,gmp)
+ ("gsl" ,gsl)
+ ("gtk+" ,gtk+)
+ ("jack" ,jack-1)
+ ("libsamplerate" ,libsamplerate)
+ ("mpc" ,mpc)
+ ("mpfr" ,mpfr)
+ ("mpg123" ,mpg123)
+ ("speex" ,speex)
+ ("timidity++" ,timidity++)
+ ("vorbis-tools" ,vorbis-tools)
+ ("wavpack" ,wavpack)))
+ (synopsis "Sound editor")
+ (home-page "https://ccrma.stanford.edu/software/snd/")
+ (description
+ "Snd is a sound editor modelled loosely after Emacs. It can be
+customized and extended using either the s7 Scheme implementation (included in
+the Snd sources), Ruby, or Forth.")
+ (license (license:non-copyleft "file://COPYING"))))
diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm
index 30a9aac824..79ef31fc1b 100644
--- a/gnu/packages/autotools.scm
+++ b/gnu/packages/autotools.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2015, 2017 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2017 ng0 <ng0@libertad.pw>
+;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -194,7 +195,7 @@ exec ~a --no-auto-compile \"$0\" \"$@\"
(define-public autoconf-archive
(package
(name "autoconf-archive")
- (version "2017.03.21")
+ (version "2017.09.28")
(source
(origin
(method url-fetch)
@@ -202,7 +203,7 @@ exec ~a --no-auto-compile \"$0\" \"$@\"
version ".tar.xz"))
(sha256
(base32
- "0rfpapadka2023qhy8294ca5awxpb8d4904js6kv7piby5ax8siq"))))
+ "00gsh9hkrgg291my98plkrwlcpxkfrpq64pglf18kciqbf2bb7sw"))))
(build-system gnu-build-system)
(home-page "https://www.gnu.org/software/autoconf-archive/")
(synopsis "Collection of freely reusable Autoconf macros")
diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm
index 790a238579..ca47227826 100644
--- a/gnu/packages/bdw-gc.scm
+++ b/gnu/packages/bdw-gc.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
@@ -78,6 +78,16 @@ C or C++ programs, though that is not its primary goal.")
(license (x11-style (string-append home-page "license.txt")))))
+(define-public libgc/back-pointers
+ (package
+ (inherit libgc)
+ (name "libgc-back-pointers")
+ (arguments
+ `(#:make-flags
+ (list "CPPFLAGS=-DKEEP_BACK_PTRS=1")
+ ,@(package-arguments libgc)))
+ (synopsis "The BDW garbage collector, with back-pointer tracking")))
+
(define-public libatomic-ops
(package
(name "libatomic-ops")
diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm
index e7d21d2ce7..9a3aab33ab 100644
--- a/gnu/packages/calendar.scm
+++ b/gnu/packages/calendar.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
;;; Copyright © 2016 Stefan Reichoer <stefan@xsteve.at>
;;;
@@ -55,9 +55,8 @@
(arguments
'(#:tests? #f ; test suite appears broken
#:configure-flags
- (list (string-append "-DCMAKE_INSTALL_RPATH="
- (assoc-ref %outputs "out") "/lib:"
- (assoc-ref %outputs "out") "/lib64"))
+ (list (string-append "-DCMAKE_INSTALL_LIBDIR="
+ (assoc-ref %outputs "out") "/lib"))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-paths
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 4d9090397f..9fbed0ee39 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 ng0 <ng0@infotropique.org>
+;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -293,3 +294,26 @@ generation.")
C++ but is used in C and C++ projects and frequently used in embedded systems
but it works for any C/C++ project.")
(license bsd-3)))
+
+(define-public python-parameterized
+ (package
+ (name "python-parameterized")
+ (version "0.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "parameterized" version))
+ (sha256
+ (base32
+ "1qj1939shm48d9ql6fm1nrdy4p7sdyj8clz1szh5swwpf1qqxxfa"))))
+ (build-system python-build-system)
+ (arguments '(#:tests? #f)) ; there are no tests
+ (home-page "https://github.com/wolever/parameterized")
+ (synopsis "Parameterized testing with any Python test framework")
+ (description
+ "Parameterized is a Python library that aims to fix parameterized testing
+for every Python test framework. It supports nose, py.test, and unittest.")
+ (license bsd-2)))
+
+(define-public python2-parameterized
+ (package-with-python2 python-parameterized))
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index a6057a76e2..2a22f222d3 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -187,8 +187,8 @@ their dependencies.")
(license l:gpl3+))))
(define-public cuirass
- (let ((commit "2a4d493e28100b8eca7d23300dd872c9f99e1f16")
- (revision "9"))
+ (let ((commit "9cfea9fe2e3ca6a3d1b832a6ec217426ec973c93")
+ (revision "10"))
(package
(name "cuirass")
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
@@ -200,7 +200,7 @@ their dependencies.")
(file-name (string-append name "-" version))
(sha256
(base32
- "0hi7x25ya8wydrfj9jd9zb351mw8pgxxxwgxxdn5kds7qvhxr26v"))))
+ "177klidmsw12kjk9dzawc0bqcwqlplgx45m87qpgjfx3cnk28i2b"))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build utils)
@@ -268,6 +268,17 @@ their dependencies.")
("automake" ,automake)
("pkg-config" ,pkg-config)
("texinfo" ,texinfo)))
+ (native-search-paths
+ ;; For HTTPS access, Cuirass itself honors these variables, with the
+ ;; same semantics as Git and OpenSSL (respectively).
+ (list (search-path-specification
+ (variable "GIT_SSL_CAINFO")
+ (file-type 'regular)
+ (separator #f) ;single entry
+ (files '("etc/ssl/certs/ca-certificates.crt")))
+ (search-path-specification
+ (variable "SSL_CERT_DIR")
+ (files '("etc/ssl/certs")))))
(synopsis "Continuous integration system")
(description
"Cuirass is a continuous integration tool using GNU Guix. It is
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 6e04739f62..859dfd0ca7 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -58,7 +58,11 @@
;; Needed to have cflow-mode.el installed.
(native-inputs `(("emacs" ,emacs-minimal)))
-
+ (arguments
+ '(#:configure-flags (list (string-append "CPPFLAGS="
+ "-D" "CFLOW_PREPROC=\\\""
+ (assoc-ref %build-inputs "gcc")
+ "/bin/cpp\\\""))))
(home-page "https://www.gnu.org/software/cflow/")
(synopsis "Create a graph of control flow within a program")
(description
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index fb1b489ded..35c2fae7e5 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -16,7 +16,7 @@
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
-;;; Copyright © 2017 Theodoros Foradis <theodoros.for@openmailbox.org>
+;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;;
;;; This file is part of GNU Guix.
;;;
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 409894e5d6..e00a8a4ba2 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -92,13 +92,13 @@ error stream.")
(define-public r-rcpp
(package
(name "r-rcpp")
- (version "0.12.12")
+ (version "0.12.13")
(source
(origin
(method url-fetch)
(uri (cran-uri "Rcpp" version))
(sha256
- (base32 "1byyqvlgb2p46p1gv243k73rk69fa8pa4l5m5asmckag2pkb2glz"))))
+ (base32 "1bm84yc48475plgsnnbvzi6nzkixpnfw8ry86ax63f9g524asw55"))))
(build-system r-build-system)
(home-page "http://www.rcpp.org")
(synopsis "Seamless R and C++ integration")
@@ -964,14 +964,14 @@ contexts.")
(define-public r-lava
(package
(name "r-lava")
- (version "1.5")
+ (version "1.5.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "lava" version))
(sha256
(base32
- "0x6s7x111x87a4rh5nbk7vw6j4iq40i1c21w0j795h28rgyc7zc2"))))
+ "1vcm04h9i39gmf2prl5d4j4il4gs6skzr6y2fvl1vn4hklna87f4"))))
(build-system r-build-system)
(propagated-inputs
`(("r-numderiv" ,r-numderiv)
@@ -1078,21 +1078,24 @@ calendar objects.")
(define-public r-ddalpha
(package
(name "r-ddalpha")
- (version "1.2.1")
+ (version "1.3.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "ddalpha" version))
(sha256
(base32
- "0nsd515x6bap1qpfyx141hyldmpmyasnhv0f8s9dj6zcklp89af4"))))
+ "0pczw9543y7f92m7gyk7rxcjn8vsjaldc5vl0r56ywip9i374zbh"))))
(build-system r-build-system)
(propagated-inputs
`(("r-bh" ,r-bh)
("r-class" ,r-class)
("r-mass" ,r-mass)
("r-rcpp" ,r-rcpp)
- ("r-robustbase" ,r-robustbase)))
+ ("r-robustbase" ,r-robustbase)
+ ("r-sfsmisc" ,r-sfsmisc)))
+ (native-inputs
+ `(("gfortran" ,gfortran)))
(home-page "http://cran.r-project.org/web/packages/ddalpha")
(synopsis "Depth-Based classification and calculation of data depth")
(description
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 9c657cd1f6..0f017888b2 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -58,7 +58,7 @@
(define-public libsodium
(package
(name "libsodium")
- (version "1.0.14")
+ (version "1.0.15")
(source (origin
(method url-fetch)
(uri (list (string-append
@@ -69,7 +69,7 @@
"releases/old/libsodium-" version ".tar.gz")))
(sha256
(base32
- "1rvylybhxyn6ap3hrcingsl737zrqg12l7r91ns93j7xjz889z1w"))))
+ "1x3qw7lsz44vcxpcn1dvwig410phg6gmv31jwj94arrgka3rwspv"))))
(build-system gnu-build-system)
(synopsis "Portable NaCl-based crypto library")
(description
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 5f01006872..2afc94c965 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -9,7 +9,7 @@
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
-;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
+;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
@@ -68,6 +68,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages rdf)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages ruby)
#:use-module (gnu packages tcl)
#:use-module (gnu packages tls)
#:use-module (gnu packages xml)
@@ -77,6 +78,7 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
+ #:use-module (guix build-system ruby)
#:use-module (guix build-system cmake)
#:use-module (guix utils)
#:use-module (srfi srfi-26)
@@ -254,6 +256,45 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
;; HAVE_CXX_STDHEADERS being defined in db_cxx.h.
"--enable-cxx"))))))))))
+(define-public es-dump-restore
+ (package
+ (name "es-dump-restore")
+ (version "2.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "es_dump_restore" version))
+ (sha256
+ (base32
+ "020yk7f1hw48clmf5501z3xv9shsdchyymcv0y2cci2c1xvr1mim"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f ;; No testsuite.
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap-bin-es_dump_restore
+ (lambda* (#:key outputs #:allow-other-keys)
+ (wrap-program (string-append (assoc-ref outputs "out")
+ "/bin/es_dump_restore")
+ `("GEM_PATH" ":" prefix (,(string-append
+ (getenv "GEM_PATH")
+ ":"
+ (getenv "GEM_HOME")))))
+ #t)))))
+ (propagated-inputs
+ `(("ruby-httpclient" ,ruby-httpclient)
+ ("ruby-multi-json" ,ruby-multi-json)
+ ("ruby-progress_bar" ,ruby-progress_bar)
+ ("ruby-rubyzip" ,ruby-rubyzip)
+ ("ruby-thor" ,ruby-thor)))
+ (synopsis "Utility for dumping and restoring ElasticSearch indexes")
+ (description
+ "This package provides a utility for dumping the contents of an
+ElasticSearch index to a compressed file and restoring the dumpfile back to an
+ElasticSearch server")
+ (home-page "https://github.com/patientslikeme/es_dump_restore")
+ (license license:expat)))
+
(define-public leveldb
(package
(name "leveldb")
@@ -1674,3 +1715,30 @@ implementation for Python.")
(define-public python2-orator
(package-with-python2 (strip-python2-variant python-orator)))
+
+(define-public virtuoso-ose
+ (package
+ (name "virtuoso-ose")
+ (version "7.2.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/openlink/virtuoso-opensource/releases/"
+ "download/v" version "/virtuoso-opensource-" version ".tar.gz"))
+ (sha256
+ (base32 "12dqam1gc1v93l0bj0vlpvjqppki6y1hqrlznywxnw0rrz9pb002"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f)) ; Tests require a network connection.
+ (inputs
+ `(("openssl" ,openssl)
+ ("net-tools" ,net-tools)))
+ (home-page "http://vos.openlinksw.com/owiki/wiki/VOS/")
+ (synopsis "Multi-model database system")
+ (description "Virtuoso is a scalable cross-platform server that combines
+relational, graph, and document data management with web application server
+and web services platform functionality.")
+ ;; configure: error: ... can only be build on 64bit platforms
+ (supported-systems '("x86_64-linux" "mips64el-linux" "aarch64-linux"))
+ (license license:gpl2)))
diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm
index 6c466977d2..5a780b9148 100644
--- a/gnu/packages/dav.scm
+++ b/gnu/packages/dav.scm
@@ -55,13 +55,13 @@ clients.")
(define-public vdirsyncer
(package
(name "vdirsyncer")
- (version "0.16.2")
+ (version "0.16.3")
(source (origin
(method url-fetch)
(uri (pypi-uri name version))
(sha256
(base32
- "19xqzxcgmpm2z56l2d4a1n4sqmhrnzfwx3d9avfzgldwyhlrz0da"))))
+ "0dpwbfi97ksijqng191659m8k0v215y8ld95w8gb126m4m96qpzw"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@@ -89,6 +89,7 @@ clients.")
("python-pytest" ,python-pytest)
("python-pytest-localserver" ,python-pytest-localserver)
("python-pytest-subtesthack" ,python-pytest-subtesthack)
+ ("python-urllib3" ,python-urllib3)
("python-wsgi-intercept" ,python-wsgi-intercept)
("radicale" ,radicale)))
(propagated-inputs
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 4096a0a827..657e7eb2a4 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -59,7 +59,7 @@
(define-public dnsmasq
(package
(name "dnsmasq")
- (version "2.76")
+ (version "2.78")
(source (origin
(method url-fetch)
(uri (string-append
@@ -67,7 +67,7 @@
version ".tar.xz"))
(sha256
(base32
- "15lzih6671gh9knzpl8mxchiml7z5lfqzr7jm2r0rjhrxs6nk4jb"))))
+ "0ar5h5v3kas2qx2wgy5iqin15gc4jhqrqs067xacgc3lii1rz549"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -483,14 +483,14 @@ Extensions} (DNSSEC).")
(define-public knot
(package
(name "knot")
- (version "2.5.4")
+ (version "2.6.0")
(source (origin
(method url-fetch)
(uri (string-append "https://secure.nic.cz/files/knot-dns/"
name "-" version ".tar.xz"))
(sha256
(base32
- "1w14m9pmc8vl9mcgikvwbflwcxwz52l77jq98wvxyxab13lpdpiz"))
+ "1zc3ybhcxgbysyy68kbmndh6xzy4jnr5iikyrf9s2sxzs1hlkq38"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/dunst.scm b/gnu/packages/dunst.scm
index d5e177f0ce..68637ea6cd 100644
--- a/gnu/packages/dunst.scm
+++ b/gnu/packages/dunst.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2015, 2017 Alex Kost <alezost@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -32,15 +32,16 @@
(define-public dunst
(package
(name "dunst")
- (version "1.1.0")
+ (version "1.2.0")
(source (origin
(method url-fetch)
(uri (string-append
- "http://knopwob.org/public/dunst-release/dunst-"
- version ".tar.bz2"))
+ "https://github.com/dunst-project/dunst/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0w3hilzwanwsp4q6dxbdj6l0mvpg4fq02wf8isll8kmbx9kz2ay7"))))
+ "1bf5fmmj79wlwi8wzir3rd8czyrxfx16w8q7c957123yz1g5ph53"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no check target
@@ -55,15 +56,15 @@
(inputs
`(("dbus" ,dbus)
("glib" ,glib)
+ ("gtk" ,gtk+-2)
("cairo" ,cairo)
("pango" ,pango)
("libx11" ,libx11)
- ("libxext" ,libxext)
- ("libxft" ,libxft)
("libxscrnsaver" ,libxscrnsaver)
("libxinerama" ,libxinerama)
+ ("libxrandr" ,libxrandr)
("libxdg-basedir" ,libxdg-basedir)))
- (home-page "http://knopwob.org/dunst")
+ (home-page "https://dunst-project.org/")
(synopsis "Customizable and lightweight notification daemon")
(description
"Dunst is a highly configurable and minimalistic notification daemon.
diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm
index 91209376cd..60dfa509aa 100644
--- a/gnu/packages/electronics.scm
+++ b/gnu/packages/electronics.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017 Theodoros Foradis <theodoros.for@openmailbox.org>
+;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;;
;;; This file is part of GNU Guix.
;;;
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 1c55c8b6d0..d0bbbd74aa 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -1278,10 +1278,32 @@ Maps directly inside Emacs.")
single buffer.")
(license license:gpl3+)))
+(define-public emacs-tablist
+ (package
+ (name "emacs-tablist")
+ (version "0.70")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/politza/tablist/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "177d6s7ym1mwz1nhnl09r14z3n093g9a2szm97xsaig0c204xz9c"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/politza/tablist")
+ (synopsis "Extension for @code{tabulated-list-mode}")
+ (description "Tablist is the Emacs package that provides several
+additional features to @code{tabulated-list-mode}: it adds marks,
+filters, new key bindings and faces. It can be enabled by
+@code{tablist-mode} or @code{tablist-minor-mode} commands.")
+ (license license:gpl3+)))
+
(define-public emacs-pdf-tools
(package
(name "emacs-pdf-tools")
- (version "0.70")
+ (version "0.80")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1290,7 +1312,7 @@ single buffer.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1m0api6wiawswyk46bdsyk6r5rg3b86a4paar6nassm6x6c6vr77"))))
+ "06imydn3a92vr57azpn1zhqc14kxyyslmyi9ldsyphan9b724gb6"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; there are no tests
@@ -1339,6 +1361,7 @@ single buffer.")
("glib" ,glib)
("libpng" ,libpng)
("zlib" ,zlib)))
+ (propagated-inputs `(("tablist" ,emacs-tablist)))
(synopsis "Emacs support library for PDF files")
(description
"PDF Tools is, among other things, a replacement of DocView for PDF
@@ -2100,6 +2123,29 @@ read from small to large monitors by using colors, a prefix feature, and smart
truncation.")
(license license:gpl2+)))
+(define-public emacs-sr-speedbar
+ (package
+ (name "emacs-sr-speedbar")
+ (version "20140914.2339")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/emacsorphanage/sr-speedbar/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "15xwwc6kgvmk4wdhx1j8w6m6ivxvc94028ppgdpa2m51a8c9vjm9"))))
+ (build-system emacs-build-system)
+ (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
+ (synopsis "Same frame Emacs @code{speedbar}")
+ (description
+ "This Emacs package allows you to show @code{M-x speedbar} in the
+same frame (in an extra window). You can customize the initial width of
+the speedbar window.")
+ (license license:gpl3+)))
+
(define-public emacs-shell-switcher
(package
(name "emacs-shell-switcher")
@@ -2417,7 +2463,7 @@ in @code{html-mode}.")
(define-public emacs-slime
(package
(name "emacs-slime")
- (version "2.19")
+ (version "2.20")
(source
(origin
(file-name (string-append name "-" version ".tar.gz"))
@@ -2427,7 +2473,7 @@ in @code{html-mode}.")
version ".tar.gz"))
(sha256
(base32
- "1jhaq5cn89k45nzyl0jd12gmjxnh1bq9jlfwrxba342agxsscb0p"))))
+ "086lq5y4pvj9wihy0si02xxvyzpzz8mcg3hz1cvy9zxlyjwzr1gk"))))
(build-system emacs-build-system)
(native-inputs
`(("texinfo" ,texinfo)))
@@ -2525,6 +2571,27 @@ insertion mode. When enabled all keys are implicitly prefixed with
@samp{C-} (among other helpful shortcuts).")
(license license:gpl3+))))
+(define-public emacs-jinja2-mode
+ (package
+ (name "emacs-jinja2-mode")
+ (version "0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/paradoxxxzero/jinja2-mode/"
+ "archive/v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0cgxjab1kla2zc2fj7bzib6i7snp08zshandmp9kqcm85l262xpn"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/paradoxxxzero/jinja2-mode")
+ (synopsis "Major mode for jinja2")
+ (description
+ "Emacs major mode for jinja2 with: syntax highlighting,
+sgml/html integration, and indentation (working with sgml).")
+ (license license:gpl3+)))
+
(define-public emacs-rfcview
(package
(name "emacs-rfcview")
@@ -3488,7 +3555,7 @@ names, e.g. #0000ff is displayed in white with a blue background.")
(define-public emacs-visual-fill-column
(package
(name "emacs-visual-fill-column")
- (version "1.7")
+ (version "1.11")
(source (origin
(method url-fetch)
(uri (string-append "https://codeload.github.com/joostkremers/"
@@ -3496,7 +3563,7 @@ names, e.g. #0000ff is displayed in white with a blue background.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "12vn7kdq2mpz9hgibbn1vhpf23lcm7c26k3fkz8nidhygwl5x5lq"))))
+ "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
(build-system emacs-build-system)
(home-page "https://github.com/joostkremers/visual-fill-column")
(synopsis "Fill-column for visual-line-mode")
@@ -3509,6 +3576,31 @@ wrapping lines at the window edge, which is the standard behaviour of
window edge.")
(license license:gpl3+)))
+(define-public emacs-writeroom
+ (package
+ (name "emacs-writeroom")
+ (version "3.7")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/joostkremers/writeroom-mode/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0yqgp5h3kvvpgva4azakb2wnjl7gsyh45glf75crspv3xyq57f2r"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
+ (home-page "https://github.com/joostkremers/writeroom-mode")
+ (synopsis "Distraction-free writing for Emacs")
+ (description
+ "This package defines a minor mode for distraction-free writing. Some of
+the default effects include entering fullscreen, deleting other windows of the
+current frame, disabling the mode line, and adding margins to the buffer that
+restrict the text width to 80 characters.")
+ (license license:bsd-3)))
+
(define-public emacs-ido-completing-read+
(package
(name "emacs-ido-completing-read+")
@@ -3940,7 +4032,7 @@ Flx has support for ido (interactively do things) through flx-ido.")
(define-public emacs-cyberpunk-theme
(package
(name "emacs-cyberpunk-theme")
- (version "1.18")
+ (version "1.19")
(source
(origin
(method url-fetch)
@@ -3948,7 +4040,7 @@ Flx has support for ido (interactively do things) through flx-ido.")
"archive/" version ".tar.gz"))
(sha256
(base32
- "0pxzbw0qjxgkhhs3gn3k9qy41kl1a4pfzbw83dk24l4b3nxd24wg"))
+ "05l5fxw1mn5py6mfhxrzyqjq0d8m5m1akfi46vrgh13r414jffvv"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system emacs-build-system)
(home-page "https://github.com/n3mo/cyberpunk-theme.el")
@@ -4801,6 +4893,97 @@ the same - CDLaTeX focuses on speediness for inserting LaTeX
constructs.")
(license license:gpl3+)))
+(define-public emacs-cnfonts
+ (package
+ (name "emacs-cnfonts")
+ (version "0.9.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/tumashu/cnfonts/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1l6cgcvc6md1zq97ccczankpyi0k4vjx6apflny6kjq3p33lyhf4"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/tumashu/cnfonts")
+ (synopsis "Emacs Chinese fonts setup tool")
+ (description "cnfonts is a Chinese fonts setup tool, allowing for easy
+configuration of Chinese fonts.")
+ (license license:gpl2+)))
+
+(define-public emacs-pos-tip
+ (package
+ (name "emacs-pos-tip")
+ (version "0.4.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/pitkali/pos-tip/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "12jqfy26vjk7lq0aa8yn8zqj8c85fkvx7y9prj0pcn4wqiz2ad2r"))))
+ (build-system emacs-build-system)
+ ;; The following functions and variables needed by emacs-pos-tip are
+ ;; not included in emacs-minimal:
+ ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
+ (arguments `(#:emacs ,emacs))
+ (home-page "https://github.com/pitkali/pos-tip")
+ (synopsis "Show tooltip at point")
+ (description "The standard library tooltip.el provides a function for
+displaying a tooltip at the mouse position. However, locating a tooltip at an
+arbitrary buffer position in a window is not easy. Pos-tip provides such a
+function to be used by other frontend programs.")
+ (license license:gpl2+)))
+
+(define-public emacs-pyim-basedict
+ (package
+ (name "emacs-pyim-basedict")
+ (version "0.3.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/tumashu/pyim-basedict/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0nfgxviavkgrpyfsw60xsws4fk51fcmgl8fp6zf4ibqjjbp53n3n"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/tumashu/pyim-basedict")
+ (synopsis "Input method dictionary of pyim")
+ (description "Pyim-basedict is the default pinyin input method dictionary,
+containing words from the rime project.")
+ (license license:gpl2+)))
+
+(define-public emacs-pyim
+ (package
+ (name "emacs-pyim")
+ (version "1.6.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/tumashu/pyim/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0hfg8q9hcjifvnlghw2g94dfxfirms2psq2ghqb28fhkf0lks13r"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-async" ,emacs-async)
+ ("emacs-pyim-basedict" ,emacs-pyim-basedict)
+ ("emacs-popup" ,emacs-popup)
+ ("emacs-pos-tip" ,emacs-pos-tip)))
+ (home-page "https://github.com/tumashu/pyim")
+ (synopsis "Chinese input method")
+ (description "Chinese input method which supports quanpin, shuangpin, wubi
+and cangjie.")
+ (license license:gpl2+)))
+
(define-public emacs-xelb
(package
(name "emacs-xelb")
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 2a298dca9d..91c600353a 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016 Theodoros Foradis <theodoros.for@openmailbox.org>
+;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;;
;;; This file is part of GNU Guix.
@@ -290,8 +290,8 @@ languages are C and C++.")
(define-public libjaylink
;; No release tarballs available.
- (let ((commit "faa2a433fdd3de211728f3da5921133214af9dd3")
- (revision "1"))
+ (let ((commit "699b7001d34a79c8e7064503dde1bede786fd7f0")
+ (revision "2"))
(package
(name "libjaylink")
(version (string-append "0.1.0-" revision "."
@@ -304,7 +304,7 @@ languages are C and C++.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "02crr56csz8whq3q4mrmdzzgwp5b0qvxm0fb18drclc3zj44yxl2"))))
+ "034872d44myycnzn67v5b8ixrgmg8sk32aqalvm5x7108w2byww1"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
@@ -355,59 +355,66 @@ language.")
(license license:bsd-2)))
(define-public openocd
- ;; FIXME: Use tarball release after nrf52 patch is merged.
- (let ((commit "674141e8a7a6413cb803d90c2a20150260015f81")
- (revision "1"))
- (package
- (name "openocd")
- (version (string-append "0.9.0-" revision "."
- (string-take commit 7)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.code.sf.net/p/openocd/code.git")
- (commit commit)))
- (sha256
- (base32
- "1i86jp0wawq78d73z8hp7q1pn7lmlvhjjr19f7299h4w40a5jf8j"))
- (file-name (string-append name "-" version "-checkout"))
- (patches
- (search-patches "openocd-nrf52.patch"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("pkg-config" ,pkg-config)))
- (inputs
- `(("hidapi" ,hidapi)
- ("jimtcl" ,jimtcl)
- ("libftdi" ,libftdi)
- ("libjaylink" ,libjaylink)
- ("libusb-compat" ,libusb-compat)))
- (arguments
- '(#:configure-flags
- (append (list "--disable-werror"
- "--disable-internal-jimtcl"
- "--disable-internal-libjaylink")
- (map (lambda (programmer)
- (string-append "--enable-" programmer))
- '("amtjtagaccel" "armjtagew" "buspirate" "ftdi"
- "gw16012" "jlink" "oocd_trace" "opendous" "osbdm"
- "parport" "aice" "cmsis-dap" "dummy" "jtag_vpi"
- "remote-bitbang" "rlink" "stlink" "ti-icdi" "ulink"
- "usbprog" "vsllink" "usb-blaster-2" "usb_blaster"
- "presto" "openjtag")))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'autoreconf
- (lambda _
- (zero? (system* "autoreconf" "-vfi")))))))
- (home-page "http://openocd.org")
- (synopsis "On-Chip Debugger")
- (description "OpenOCD provides on-chip programming and debugging support
+ (package
+ (name "openocd")
+ (version "0.10.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/openocd/openocd/"
+ version "/openocd-" version ".tar.gz"))
+ (sha256
+ (base32
+ "09p57y3c2spqx4vjjlz1ljm1lcd0j9q8g76ywxqgn3yc34wv18zd"))
+ ;; FIXME: Remove after nrf52 patch is merged.
+ (patches
+ (search-patches "openocd-nrf52.patch"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("hidapi" ,hidapi)
+ ("jimtcl" ,jimtcl)
+ ("libftdi" ,libftdi)
+ ("libjaylink" ,libjaylink)
+ ("libusb-compat" ,libusb-compat)))
+ (arguments
+ '(#:configure-flags
+ (append (list "--disable-werror"
+ "--enable-sysfsgpio"
+ "--disable-internal-jimtcl"
+ "--disable-internal-libjaylink")
+ (map (lambda (programmer)
+ (string-append "--enable-" programmer))
+ '("amtjtagaccel" "armjtagew" "buspirate" "ftdi"
+ "gw16012" "jlink" "opendous" "osbdm"
+ "parport" "aice" "cmsis-dap" "dummy" "jtag_vpi"
+ "remote-bitbang" "rlink" "stlink" "ti-icdi" "ulink"
+ "usbprog" "vsllink" "usb-blaster-2" "usb_blaster"
+ "presto" "openjtag")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'autoreconf
+ (lambda _
+ (zero? (system* "autoreconf" "-vfi"))))
+ (add-after 'autoreconf 'change-udev-group
+ (lambda _
+ (substitute* "contrib/60-openocd.rules"
+ (("plugdev") "dialout"))
+ #t))
+ (add-after 'install 'install-udev-rules
+ (lambda* (#:key outputs #:allow-other-keys)
+ (install-file "contrib/60-openocd.rules"
+ (string-append
+ (assoc-ref outputs "out")
+ "/lib/udev/rules.d/")))))))
+ (home-page "http://openocd.org")
+ (synopsis "On-Chip Debugger")
+ (description "OpenOCD provides on-chip programming and debugging support
with a layered architecture of JTAG interface and TAP support.")
- (license license:gpl2+))))
+ (license license:gpl2+)))
;; The commits for all propeller tools are the latest versions as published
;; here: https://github.com/dbetz/propeller-gcc
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index af1ea3328a..543a166da4 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros.for@openmailbox.org>
+;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;;
;;; This file is part of GNU Guix.
@@ -61,6 +61,7 @@
#:use-module (gnu packages m4)
#:use-module (gnu packages maths)
#:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages mpi)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@@ -1127,3 +1128,154 @@ hexadecimal editor able to open disk files, but later support for analyzing
binaries, disassembling code, debugging programs, attaching to remote gdb
servers, ...")
(license license:lgpl3)))
+
+(define-public asco
+ (package
+ (name "asco")
+ (version "0.4.10")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/asco/asco/" version "/ASCO-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "119rbc2dc8xzwxvykgji0v0nrzvymjmlizr1bc2mihspj686kxsl"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; no tests
+ #:make-flags '("all" "asco-mpi")
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'build 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((coreutils (assoc-ref inputs "coreutils-minimal")))
+ (substitute* '("errfunc.c" "asco.c")
+ (("cp ")
+ (string-append coreutils "/bin/cp "))
+ (("nice")
+ (string-append coreutils "/bin/nice")))
+ (substitute* "Makefile"
+ (("<FULL_PATH_TO_MPICH>/bin/mpicc") (which "mpicc")))
+ #t)))
+ (replace 'install ; no install target
+ (lambda* (#:key outputs #:allow-other-keys)
+ (for-each (lambda (file)
+ (install-file file (string-append
+ (assoc-ref outputs "out")
+ "/bin")))
+ '("asco" "asco-mpi" "asco-test"
+ "tools/alter/alter" "tools/log/log"))
+ #t)))))
+ (native-inputs
+ `(("mpi" ,openmpi)))
+ (inputs
+ `(("coreutils-minimal" ,coreutils-minimal)))
+ (home-page "http://asco.sourceforge.net/")
+ (synopsis "SPICE circuit optimizer")
+ (description
+ "ASCO brings circuit optimization capabilities to existing SPICE simulators using a
+high-performance parallel differential evolution (DE) optimization algorithm.")
+ (license license:gpl2+)))
+
+(define-public libngspice
+ ;; Note: The ngspice's build system does not allow us to build both the
+ ;; library and the executables in one go. Thus, we have two packages.
+ ;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27344#236>.
+ (package
+ (name "libngspice")
+ (version "26")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/ngspice/ng-spice-rework/"
+ version "/ngspice-" version ".tar.gz"))
+ (sha256
+ (base32
+ "02019ndcl057nq9z41nxycqba7wxlb081ibvfj9jv010nz431qji"))
+ (modules '((guix build utils)))
+ ;; We remove the non-free cider and build without it.
+ (snippet
+ '(begin
+ (delete-file-recursively "src/ciderlib")
+ (delete-file "src/ciderinit")
+ (substitute* "configure"
+ (("src/ciderlib/Makefile") "")
+ (("src/ciderlib/input/Makefile") "")
+ (("src/ciderlib/support/Makefile") "")
+ (("src/ciderlib/oned/Makefile") "")
+ (("src/ciderlib/twod/Makefile") ""))))))
+ (build-system gnu-build-system)
+ (arguments
+ `(;; No tests for libngspice exist.
+ ;; The transient tests for ngspice fail.
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-timestamps
+ (lambda _
+ (substitute* "configure"
+ (("`date`") "Do 1. Jan 00:00:00 UTC 1970"))
+ #t))
+ (add-after 'unpack 'delete-program-manuals
+ (lambda _
+ (substitute* "man/man1/Makefile.in"
+ (("^man_MANS = ngspice\\.1 ngnutmeg\\.1 ngsconvert\\.1 ngmultidec\\.1")
+ "man_MANS = "))
+ #t))
+ (add-after 'install 'delete-script-files
+ (lambda* (#:key outputs #:allow-other-keys)
+ (delete-file-recursively
+ (string-append (assoc-ref outputs "out")
+ "/share/ngspice/scripts")))))
+ #:configure-flags
+ (list "--enable-openmp"
+ "--enable-xspice"
+ "--with-ngshared"
+ "--with-readline=yes")))
+ (native-inputs
+ `(("bison" ,bison)
+ ("flex" ,flex)))
+ (inputs
+ `(("libxaw" ,libxaw)
+ ("mpi" ,openmpi)
+ ("readline" ,readline)))
+ (home-page "http://ngspice.sourceforge.net/")
+ (synopsis "Mixed-level/mixed-signal circuit simulator")
+ (description
+ "Ngspice is a mixed-level/mixed-signal circuit simulator. It includes
+@code{Spice3f5}, a circuit simulator, and @code{Xspice}, an extension that
+provides code modeling support and simulation of digital components through
+an embedded event driven algorithm.")
+ (license (list license:lgpl2.0+ ; code in frontend/numparam
+ (license:non-copyleft "file:///COPYING") ; spice3 bsd-style
+ license:public-domain)))) ; xspice
+
+(define-public ngspice
+ ;; The ngspice executables (see libngpsice above.)
+ (package (inherit libngspice)
+ (name "ngspice")
+ (arguments
+ (substitute-keyword-arguments (package-arguments libngspice)
+ ((#:configure-flags flags)
+ `(delete "--with-ngshared" ,flags))
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'delete-include-files
+ (lambda _
+ (substitute* "src/Makefile.in"
+ (("^SUBDIRS = misc maths frontend spicelib include/ngspice")
+ "SUBDIRS = misc maths frontend spicelib"))
+ #t))
+ (add-after 'install 'delete-cmpp-dlmain
+ (lambda* (#:key outputs #:allow-other-keys)
+ (for-each (lambda (file)
+ (delete-file
+ (string-append (assoc-ref outputs "out")
+ file)))
+ '("/bin/cmpp" "/share/ngspice/dlmain.c"))
+ #t))
+ (delete 'delete-program-manuals)
+ (delete 'delete-script-files)))))
+ (inputs
+ `(("libngspice" ,libngspice)
+ ("readline" ,readline)))))
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 9e346a6625..f82accb038 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -22,37 +22,37 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages finance)
- #:use-module ((guix licenses) #:prefix license:)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix build-system gnu)
- #:use-module (guix build-system cmake)
- #:use-module (guix build-system python)
- #:use-module (gnu packages base)
- #:use-module (gnu packages boost)
- #:use-module (gnu packages check)
- #:use-module (gnu packages databases)
- #:use-module (gnu packages documentation)
- #:use-module (gnu packages dns)
- #:use-module (gnu packages emacs)
- #:use-module (gnu packages graphviz)
- #:use-module (gnu packages groff)
- #:use-module (gnu packages libedit)
- #:use-module (gnu packages libevent)
- #:use-module (gnu packages libunwind)
- #:use-module (gnu packages linux)
- #:use-module (gnu packages multiprecision)
- #:use-module (gnu packages pkg-config)
- #:use-module (gnu packages protobuf)
- #:use-module (gnu packages python)
- #:use-module (gnu packages qt)
- #:use-module (gnu packages texinfo)
- #:use-module (gnu packages textutils)
- #:use-module (gnu packages tls)
- #:use-module (gnu packages upnp)
- #:use-module (gnu packages web)
- #:use-module (gnu packages xml)
- #:use-module (gnu packages gnuzilla))
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system python)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages boost)
+ #:use-module (gnu packages check)
+ #:use-module (gnu packages databases)
+ #:use-module (gnu packages documentation)
+ #:use-module (gnu packages dns)
+ #:use-module (gnu packages emacs)
+ #:use-module (gnu packages graphviz)
+ #:use-module (gnu packages groff)
+ #:use-module (gnu packages libedit)
+ #:use-module (gnu packages libevent)
+ #:use-module (gnu packages libunwind)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages protobuf)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages texinfo)
+ #:use-module (gnu packages textutils)
+ #:use-module (gnu packages tls)
+ #:use-module (gnu packages upnp)
+ #:use-module (gnu packages web)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages gnuzilla))
(define-public bitcoin-core
(package
diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm
index e76865798d..ef43310d77 100644
--- a/gnu/packages/flashing-tools.scm
+++ b/gnu/packages/flashing-tools.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de>
+;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,19 +23,22 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages flashing-tools)
- #:use-module (guix licenses)
+ #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (gnu packages)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (gnu packages bison)
+ #:use-module (gnu packages compression)
#:use-module (gnu packages flex)
#:use-module (gnu packages elf)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages libusb)
#:use-module (gnu packages libftdi)
#:use-module (gnu packages pciutils)
+ #:use-module (gnu packages qt)
#:use-module (gnu packages autotools)
#:use-module (gnu packages admin))
@@ -80,7 +84,7 @@ verifying and erasing flash chips. It is designed to flash
BIOS/EFI/coreboot/firmware/optionROM images on mainboards,
network/graphics/storage controller cards, and various other
programmer devices.")
- (license gpl2)))
+ (license license:gpl2)))
(define-public 0xffff
(package
@@ -111,7 +115,7 @@ programmer devices.")
for FIASCO images. It supports generating, unpacking, editing and
flashing of FIASCO images for Maemo devices. Use it with care. It can
brick your device.")
- (license gpl3+)))
+ (license license:gpl3+)))
(define-public avrdude
(package
@@ -139,7 +143,7 @@ brick your device.")
"AVRDUDE is a utility to download/upload/manipulate the ROM and
EEPROM contents of AVR microcontrollers using the in-system programming
technique (ISP).")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public dfu-programmer
(package
@@ -165,7 +169,7 @@ technique (ISP).")
"Dfu-programmer is a multi-platform command-line programmer for
Atmel (8051, AVR, XMEGA & AVR32) chips with a USB bootloader supporting
ISP.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public dfu-util
(package
@@ -192,7 +196,7 @@ ranges from small devices like micro-controller boards up to mobile phones.
With dfu-util you are able to download firmware to your device or upload
firmware from it.")
(home-page "http://dfu-util.sourceforge.net/")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public teensy-loader-cli
;; The repo does not tag versions nor does it use releases, but a commit
@@ -243,7 +247,7 @@ 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))))
+ (license license:gpl3))))
(define-public rkflashtool
(let ((commit "094bd6410cb016e487e2ccb1050c59eeac2e6dd1")
@@ -277,4 +281,51 @@ non-root users.")
(description "Allows flashing of Rockchip based embedded linux devices.
The list of currently supported devices is: RK2818, RK2918, RK2928, RK3026,
RK3036, RK3066, RK312X, RK3168, RK3188, RK3288, RK3368.")
- (license bsd-2))))
+ (license license:bsd-2))))
+
+(define-public heimdall
+ (package
+ (name "heimdall")
+ (version "1.4.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/Benjamin-Dobell/Heimdall"
+ "/archive/v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1y7gwg3lipyp2zcysm2vid1qg5nwin9bxbvgzs28lz2rya4fz6sq"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release")
+ #:tests? #f; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-invocations
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* '("heimdall-frontend/source/aboutform.cpp"
+ "heimdall-frontend/source/mainwindow.cpp")
+ (("start[(]\"heimdall\"")
+ (string-append "start(\"" (assoc-ref outputs "out")
+ "/bin/heimdall\"")))
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
+ (lib (string-append (assoc-ref outputs "out") "/lib")))
+ (install-file "bin/heimdall" bin)
+ (install-file "bin/heimdall-frontend" bin)
+ (install-file "libpit/libpit.a" lib)
+ #t))))))
+ (inputs
+ `(("libusb" ,libusb)
+ ("qtbase" ,qtbase)
+ ("zlib" ,zlib)))
+ (home-page "http://glassechidna.com.au/heimdall/")
+ (synopsis "Flash firmware onto Samsung mobile devices")
+ (description "@command{heimdall} is a tool suite used to flash firmware (aka
+ROMs) onto Samsung mobile devices. Heimdall connects to a mobile device over
+USB and interacts with low-level software running on the device, known as Loke.
+Loke and Heimdall communicate via the custom Samsung-developed protocol typically
+referred to as the \"Odin 3 protocol\".")
+ (license license:expat)))
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 97d399a4c8..b65d3a9e94 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -20,6 +20,7 @@
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -514,6 +515,32 @@ fonts.")
;; exceptions.
(license license:gpl3)))
+(define-public font-rachana
+ (package
+ (name "font-rachana")
+ (version "7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://gitlab.com/smc/rachana/repository/archive.tar.gz?ref=Version"
+ version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0jc091gshna6p1dd6lf507jxkgk6rsja835fc9dm71mcplq53bm1"))))
+ (build-system font-build-system)
+ (home-page "https://smc.org.in")
+ (synopsis "Malayalam font")
+ (description
+ "Rachana is a Malayalam font designed by Hussain K H. The project was
+part of Rachana Aksharavedi for the original script of Malayalam in computing.
+Rachana has about 1,200+ glyphs for Malayalam and contains glyphs required for
+printing old Malayalam books without compromising the writing style.")
+ ;; This font is licensed under SIL 1.1 or GPLv3+ with font embedding
+ ;; exceptions.
+ (license (list license:silofl1.1 license:gpl3+))))
+
(define-public font-tex-gyre
(package
(name "font-tex-gyre")
diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm
index 2208775772..f3dc805e36 100644
--- a/gnu/packages/fpga.scm
+++ b/gnu/packages/fpga.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
-;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros.for@openmailbox.org>
+;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros@foradis.org>
;;;
;;; This file is part of GNU Guix.
;;;
diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm
index ba9e130f57..f3f2b5ea71 100644
--- a/gnu/packages/ftp.scm
+++ b/gnu/packages/ftp.scm
@@ -173,7 +173,7 @@ as required.")
(define-public libfilezilla
(package
(name "libfilezilla")
- (version "0.10.1")
+ (version "0.11.0")
(source
(origin
(method url-fetch)
@@ -181,7 +181,7 @@ as required.")
name "/" name "-" version ".tar.bz2"))
(sha256
(base32
- "1yi9db0hpxh3giyjhkbz7ajmf95qw27xdvh3xvw208zri5k575x0"))))
+ "1l4yhw269dyarqb2spqhycxzzyfn8pj4qh9vfycdw1c93hj6fx6c"))))
(build-system gnu-build-system)
(native-inputs
`(("cppunit" ,cppunit)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index aef6f01215..7729c5b3bd 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -3045,7 +3045,7 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.")
(define-public mgba
(package
(name "mgba")
- (version "0.6.0")
+ (version "0.6.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/mgba-emu/mgba/archive/"
@@ -3053,7 +3053,7 @@ Super Game Boy, BS-X Satellaview, and Sufami Turbo.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "01zy2w5pihlkrmbm51icgyff6iqyqa5ha6qrm4aj8ibzznz03kyq"))
+ "0xmq1q1j71hnpd49wm91cqq8w5zdhb921cm17jchp4qjmaqgwy3w"))
(modules '((guix build utils)))
(snippet
;; Make sure we don't use the bundled software.
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index d5f9f1f092..b7410176ee 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2050,7 +2050,7 @@ editors, IDEs, etc.")
(package
(inherit vte)
(name "vte-ng")
- (version "0.48.3.a")
+ (version "0.50.0.a")
(native-inputs
`(("gtk-doc" ,gtk-doc)
("gperf" ,gperf)
@@ -2065,7 +2065,7 @@ editors, IDEs, etc.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1wdkf090zclqy11hxdjgy8f6fgzajl0xzzirajikhbaiill7f8zh"))))
+ "0h5ifg6xpix074k445bmnd39mc75llrfkrsr9vw98dxa4rffxrgf"))))
(arguments
`(#:configure-flags '("CXXFLAGS=-Wformat=0")
#:phases (modify-phases %standard-phases
@@ -6062,7 +6062,7 @@ desktop. It supports world clock, stop watch, alarms, and count down timer.")
(define-public gnome-calendar
(package
(name "gnome-calendar")
- (version "3.24.3")
+ (version "3.26.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -6070,22 +6070,78 @@ desktop. It supports world clock, stop watch, alarms, and count down timer.")
name "-" version ".tar.xz"))
(sha256
(base32
- "1v7k1wcl5yg9bd4l0rz0z03h32d35zgfp4qzz21widjcyis41jry"))))
- (build-system glib-or-gtk-build-system)
+ "0p4xg9sfhcyy2lj9sdg8pk6dmggbi80f038dycr24v0ccy3nk6f2"))))
+ (build-system meson-build-system)
+ (arguments
+ '(#:glib-or-gtk? #t
+ ;; gnome-calendar has to be installed before the tests can be run
+ ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
+ #:tests? #f))
(native-inputs
- `(("intltool" ,intltool)
+ `(("gettext" ,gettext-minimal)
+ ("glib-bin" ,glib "bin") ; For glib-compile-schemas
+ ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
("pkg-config" ,pkg-config)))
(inputs
- `(("bdb" ,bdb)
- ("desktop-file-utils" ,desktop-file-utils)
- ("evolution-data-server" ,evolution-data-server)
+ `(("evolution-data-server" ,evolution-data-server)
("gnome-online-accounts" ,gnome-online-accounts)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
(home-page "https://wiki.gnome.org/Apps/Calendar")
(synopsis "GNOME's calendar application")
(description
"GNOME Calendar is a simple calendar application designed to fit the GNOME
-desktop. It supports multiple calendars, monthly view and yearly view.")
+desktop. It supports multiple calendars, month, week and year view.")
+ (license license:gpl3+)))
+
+(define-public gnome-todo
+ (package
+ (name "gnome-todo")
+ (version "3.26.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "13if2lg4r65v3z7h5y57qv4iqz9ihjaml8bzvvihha7dffyr1lz4"))))
+ (build-system meson-build-system)
+ (arguments
+ '(#:glib-or-gtk? #t
+ #:phases (modify-phases %standard-phases
+ (add-after
+ 'install 'wrap-gnome-todo
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
+ (python-path (getenv "PYTHONPATH")))
+ (wrap-program (string-append out "/bin/gnome-todo")
+ ;; XXX: gi plugins are broken.
+ ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
+ ;; For plugins.
+ `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+ `("PYTHONPATH" ":" prefix (,python-path))))
+ #t)))))
+ (native-inputs
+ `(("gettext" ,gettext-minimal)
+ ("gobject-introspection" ,gobject-introspection)
+ ("glib:bin" ,glib "bin") ; For glib-compile-resources
+ ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("rest" ,rest) ; For Todoist plugin
+ ("json-glib" ,json-glib) ; For Todoist plugin
+ ("libical" ,libical)
+ ("libpeas" ,libpeas)
+ ("python-pygobject" ,python-pygobject)
+ ("evolution-data-server" ,evolution-data-server)
+ ("gnome-online-accounts" ,gnome-online-accounts)
+ ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
+ (home-page "https://wiki.gnome.org/Apps/Todo")
+ (synopsis "GNOME's ToDo Application")
+ (description
+ "GNOME To Do is a simplistic personal task manager designed to perfectly
+fit the GNOME desktop.")
(license license:gpl3+)))
(define-public gnome-dictionary
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index 82702e4e84..9a2713e66a 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -155,7 +155,7 @@ tool to extract metadata from a file and print the results.")
(build-system gnu-build-system)
(inputs
`(("curl" ,curl)
- ("gnutls" ,gnutls)
+ ("gnutls" ,gnutls/dane)
("libgcrypt" ,libgcrypt)
("openssl" ,openssl)
("zlib" ,zlib)))
@@ -197,7 +197,7 @@ and support for SSL3 and TLS.")
(build-system gnu-build-system)
(outputs '("out"
"doc")) ; 1.5 MiB of man3 pages
- (inputs `(("gnutls" ,gnutls)
+ (inputs `(("gnutls" ,gnutls/dane)
("libidn" ,libidn)
("zlib" ,zlib)))
(native-inputs
@@ -271,7 +271,7 @@ supports HTTP, HTTPS and GnuTLS.")
("gnurl" ,gnurl)
("gstreamer" ,gstreamer)
("gst-plugins-base" ,gst-plugins-base)
- ("gnutls" ,gnutls)
+ ("gnutls" ,gnutls/dane)
("libextractor" ,libextractor)
("libgcrypt" ,libgcrypt)
("libidn" ,libidn)
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index fd7a8a9e4d..da74a8dd95 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -416,16 +416,32 @@ standards.")
(mozilla-patch "icecat-bug-546387.patch" "d13e3fefb76e" "1b760r0bg2ydbl585wlmajljh1nlisrwxvjws5b28a3sgjy01i6k")
(mozilla-patch "icecat-bug-1350152.patch" "f822bda79c28" "1wf56169ca874shr6r7qx40s17h2gwj7ngmpyylrpmd1c6hipvsj")
(mozilla-patch "icecat-bug-1388166.patch" "fbb0bdb191d5" "1y8wpj38vw1dd6f375s9i0mrk9bd8z8gz5g70p4qynfllpkn072d")
- (mozilla-patch "icecat-bug-1380824.patch" "fbddb5cdd3c7" "0k5nyl2z1y2rx9fwqyfj64678yv6v3pnmshgk552pbzqmaf8i1hq")
- (mozilla-patch "icecat-bug-1390550.patch" "76c25987a275" "095b9vwsiza9ikbnnppfcld16h75x5bxjfxc73913y04n0i42ifh")
- (mozilla-patch "icecat-bug-1387918.patch" "32eec29a85a5" "057simakqg56jvas1wkskg5kszn96m74nca26x08d5w7rzmbv1q2")
+ (mozilla-patch "icecat-CVE-2017-7810-pt1.patch" "fbddb5cdd3c7" "0k5nyl2z1y2rx9fwqyfj64678yv6v3pnmshgk552pbzqmaf8i1hq")
+ (mozilla-patch "icecat-CVE-2017-7810-pt2.patch" "76c25987a275" "095b9vwsiza9ikbnnppfcld16h75x5bxjfxc73913y04n0i42ifh")
+ (mozilla-patch "icecat-CVE-2017-7810-pt3.patch" "32eec29a85a5" "057simakqg56jvas1wkskg5kszn96m74nca26x08d5w7rzmbv1q2")
(mozilla-patch "icecat-bug-1373222.patch" "ecef71fa933f" "0vsymgy5j702lamvh2riahni7rdj9ba3bd6i4a2m22d638rwp1i2")
- (mozilla-patch "icecat-bug-1376036.patch" "68a444daf85b" "1faaadaajidzb9i00710zxdyv370hlrdg1l5rw2ymfmzbjj4jqyd")
+ (mozilla-patch "icecat-CVE-2017-7814.patch" "68a444daf85b" "1faaadaajidzb9i00710zxdyv370hlrdg1l5rw2ymfmzbjj4jqyd")
(mozilla-patch "icecat-bug-1376825.patch" "eeeec9cafc4e" "188qf6zi9kyxb33330yia6wmrd5mdyqn5hr1cl38zy7m3akv8srh")
(mozilla-patch "icecat-bug-1385272.patch" "d68fa12fbffc" "13gh97vz9n2b7303jcvr1072iy8bghy9chvbmxzvw82prvkscavw")
(mozilla-patch "icecat-bug-1390002.patch" "c24e6fc9f689" "0aswhy5fz2f6wzd5j5gg3nqvz707ip344089h2z2chcp146vxmf4")
- (mozilla-patch "icecat-bug-1371657.patch" "ae110cf77596" "0gdrkfq9wy9cfcdgbj14ci86xgh2prkbz69pfy97r9igd8059syw")
- (mozilla-patch "icecat-bug-1386787.patch" "b8417112486d" "1hya6lccz7vm51v4f6ww072794cwzmfn9xhxmvrnqbiyspxx5fz4")))
+ (mozilla-patch "icecat-CVE-2017-7810-pt4.patch" "ae110cf77596" "0gdrkfq9wy9cfcdgbj14ci86xgh2prkbz69pfy97r9igd8059syw")
+ (mozilla-patch "icecat-CVE-2017-7810-pt5.patch" "b8417112486d" "1hya6lccz7vm51v4f6ww072794cwzmfn9xhxmvrnqbiyspxx5fz4")
+ (mozilla-patch "icecat-bug-1386905.patch" "badbf4308211" "0fj1pyjqfdsbrlfykwmkzav2nvdj1f4grwq3cal9f7ay6wjnfs9b")
+ (mozilla-patch "icecat-CVE-2017-7810-pt6.patch" "d78675515c78" "03w5hqy40xkckbaf5bm9kdbdqvp9ffvpk9mlrc9lja6b7qa4pjhg")
+ (mozilla-patch "icecat-bug-1382303.patch" "f01155fe4d54" "0hnz1kvmvspg6453kydsklbvrjgzn8x3djvrym3f2xl2yinaf90d")
+ (mozilla-patch "icecat-bug-1393467.patch" "4eec2a60622c" "1h006mwcsagq7mz7haymwgr7fn4zj14n5lxbjcmhdqrxdvma2hjj")
+ (mozilla-patch "icecat-bug-1384801.patch" "9556e792f905" "0i74r807189s8i78483caiifw68cn7fs543i4cys6k3gn12dhhjy")
+ (mozilla-patch "icecat-CVE-2017-7823.patch" "bd284765b5bc" "1c4hss87kc4qwx30magbqczm9h7zmwirjfc8zimqbrnwv9bbsfh3")
+ (mozilla-patch "icecat-CVE-2017-7805.patch" "113da8d46aa4" "1vy0lw659mwixmb57mgybga152rdwqd5zj1g7nfw1zgp15pfwr75")
+ (mozilla-patch "icecat-bug-1376399.patch" "58a574502ca9" "1zmg91pg0s5nwngc32a4fywidvxyaayvx1h052fsv0i4cfm16l9v")
+ (mozilla-patch "icecat-bug-1396570.patch" "24db61862c54" "0af1jjfma042xvn0xhgims1yvb2b51nhn4m0pcfwg3fn0llmka03")
+ (mozilla-patch "icecat-CVE-2017-7819.patch" "1a02f11c6efe" "18a9qvdvrqw34qw3lljg6gkn358jl23lyimhmbc964023rhs36sz")
+ (mozilla-patch "icecat-CVE-2017-7810-pt7.patch" "002686d9536f" "065g0d759wfiaj69b1sqg7l08p2knc0q9m9hvkgwwsf0r78xcbjj")
+ (mozilla-patch "icecat-CVE-2017-7810-pt8.patch" "eaadb31758d8" "0b3k3la6ykac5mbp9gyqqgjbmj19vx9sl1b0wp387qar0p12nyaz")
+ (mozilla-patch "icecat-bug-1368269.patch" "0cff5e66e0f4" "0jb0wqi7c0ih4441s1908j6gv18v4inh7k2w47h3c9nhz4rgyrw7")
+ (mozilla-patch "icecat-CVE-2017-7793.patch" "6ff3c82962f0" "0bw82034kdmrpznigbavzzsiybzrw8giyf8v0z2cxf6mwl72bf9k")
+ (mozilla-patch "icecat-bug-1400399.patch" "d6f78b1349b7" "0i3gwr2al3xl65yfa3nimvy8dp0jzpx21f6bjw18xwn7zkkh9j54")
+ (mozilla-patch "icecat-bug-1400721.patch" "285cde398833" "0a1i32zl30wfyw7zkqj595s94n6wdlg5c495m0910pd05pjg3qam")))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm
index 6724ba6d7d..8131871db4 100644
--- a/gnu/packages/graphviz.scm
+++ b/gnu/packages/graphviz.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016 Theodoros Foradis <theodoros.for@openmailbox.org>
+;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
;;;
;;; This file is part of GNU Guix.
;;;
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 4f024258cb..b0afa2ece5 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -13,7 +13,7 @@
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2017 David Thompson <davet@gnu.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
-;;; Copyright © 2017 Theodoros Foradis <theodoros.for@openmailbox.org>
+;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;;
;;; This file is part of GNU Guix.
;;;
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index 7599f87311..5840ad665a 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -46,14 +46,14 @@
;; The 7 release series has an incompatible API, while the 6 series is still
;; maintained. Don't update to 7 until we've made sure that the ImageMagick
;; users are ready for the 7-series API.
- (version "6.9.9-15")
+ (version "6.9.9-17")
(source (origin
(method url-fetch)
(uri (string-append "mirror://imagemagick/ImageMagick-"
version ".tar.xz"))
(sha256
(base32
- "0bxgdc1qiyvag6a2iiqcbwp4ak0m1mzi9qhs51fbrvv6syy12m6c"))))
+ "0y39jcd6358dph51ch5w43sqk9lv079jhgg3l7g5mks6m25f49gz"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch")
@@ -185,7 +185,8 @@ script.")
"graphicsmagick-CVE-2017-13775.patch"
"graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch"
"graphicsmagick-CVE-2017-14042.patch"
- "graphicsmagick-CVE-2017-14165.patch"))))
+ "graphicsmagick-CVE-2017-14165.patch"
+ "graphicsmagick-CVE-2017-14649.patch"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 806f13ab89..4418b67ea8 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -4716,3 +4716,567 @@ complex transformations and code analysis tools.")
#t)))))
(native-inputs
`(("java-junit" ,java-junit)))))
+
+(define-public java-microemulator-cldc
+ (package
+ (name "java-microemulator-cldc")
+ (version "2.0.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/barteo/microemu/archive/"
+ "microemulator_"
+ (string-map (lambda (c) (if (char=? c #\.) #\_ c))
+ version)
+ ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1x1apmz38gkppxnwnygwmi12j54v4p258v8ddzn6dldkk7vak1ll"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "microemulator-cldc.jar"
+ #:source-dir "microemu-cldc/src/main/java"
+ #:tests? #f)); Requires even older software
+ (home-page "https://github.com/barteo/microemu")
+ (synopsis "J2ME CLDC emulator")
+ (description "Microemulator is a Java 2 Micro Edition (J2ME) CLDC/MIDP
+Emulator. It allows to demonstrate MIDlet based applications in web browser
+applet and can be run as a standalone java application.")
+ (license (list license:asl2.0
+ ;; or altenatively:
+ license:lgpl2.1+))))
+
+(define-public java-datanucleus-javax-persistence
+ (package
+ (name "java-datanucleus-javax-persistence")
+ (version "2.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/datanucleus/"
+ "javax.persistence/archive/javax.persistence-"
+ version "-release.tar.gz"))
+ (sha256
+ (base32
+ "11jx0fjwgc2hhbqqgdd6m1pf2fplf9vslppygax0y1z5csnqjhpx"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "java-datanucleus-javax-persistence.jar"
+ #:jdk ,icedtea-8
+ #:source-dir "src/main/java"
+ #:tests? #f)); no tests
+ (home-page "https://github.com/datanucleus/javax.persistence")
+ (synopsis "JPA API")
+ (description "This package contains a clean definition of JPA API intended
+for use with DataNucleus JPA since the JCP haven't provided an official JPA API
+jar. See @url{http://java.net/projects/jpa-spec/downloads} for the specification
+used to generate this API.")
+ (license (list license:edl1.0 license:epl1.0))))
+
+(define-public java-osgi-cmpn
+ (package
+ (name "java-osgi-cmpn")
+ (version "6.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/"
+ "org/osgi/osgi.cmpn/" version "/osgi.cmpn-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "1lmb6xyrmkqdhv1kayf0514rlwq6ypvs4m44ibrck3snp8241wys"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "osgi-cmpn.jar"
+ #:tests? #f)); no tests
+ (inputs
+ `(("annotation" ,java-osgi-annotation)
+ ("core" ,java-osgi-core)
+ ("java-datanucleus-javax-persistence" ,java-datanucleus-javax-persistence)
+ ("microemulator" ,java-microemulator-cldc)
+ ("servlet" ,java-classpathx-servletapi)))
+ (home-page "http://www.osgi.org")
+ (synopsis "Compendium specification module of OSGi framework")
+ (description
+ "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language. This package contains
+the compendium specification module, providing interfaces and classes for use
+in compiling bundles.")
+ (license license:asl2.0)))
+
+(define-public java-osgi-service-component-annotations
+ (package
+ (name "java-osgi-service-component-annotations")
+ (version "1.3.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+ "org.osgi.service.component.annotations/"
+ version "/org.osgi.service.component.annotations-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "15rq9cmp4fpn74q44m4j35qsqmjf5lx3hcrk6pzvbhc08igic2f0"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "osgi-service-component-annotations.jar"
+ #:tests? #f)); no tests
+ (inputs
+ `(("annotation" ,java-osgi-annotation)))
+ (home-page "http://www.osgi.org")
+ (synopsis "Support annotations for osgi-service-component")
+ (description
+ "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language. This package contains
+the support annotations for osgi-service-component.")
+ (license license:asl2.0)))
+
+(define-public java-osgi-dto
+ (package
+ (name "java-osgi-dto")
+ (version "1.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+ "org.osgi.dto/" version "/org.osgi.dto-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "0f4bqjzadn0hwk6sd3h5gvbyfp3yci1s6r0v770cc15p0pg627yr"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "osgi-dto.jar"
+ #:tests? #f)); no tests
+ (inputs
+ `(("annotation" ,java-osgi-annotation)))
+ (home-page "http://www.osgi.org")
+ (synopsis "Data Transfer Objects")
+ (description
+ "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language. This package contains
+the Data Transfer Objects. It is easily serializable having only public fields
+of primitive types and their wrapper classes, Strings, and DTOs. List, Set,
+Map and array aggregates may also be used. The aggregates must only hold
+objects of the listed types or aggregates.")
+ (license license:asl2.0)))
+
+(define-public java-osgi-resource
+ (package
+ (name "java-osgi-resource")
+ (version "1.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+ "org.osgi.resource/"
+ version "/org.osgi.resource-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "0hi0fsc5v99q22bd7lrkvpz1y0ds4w9arjldpwsrcpqvz2js7q2d"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "osgi-resource.jar"
+ #:tests? #f)); no tests
+ (inputs
+ `(("annotation" ,java-osgi-annotation)
+ ("dto" ,java-osgi-dto)))
+ (home-page "http://www.osgi.org")
+ (synopsis "OSGI Resource")
+ (description
+ "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language. This package contains
+the definition of common types in osgi packages.")
+ (license license:asl2.0)))
+
+(define-public java-osgi-namespace-contract
+ (package
+ (name "java-osgi-namespace-contract")
+ (version "1.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+ "org.osgi.namespace.contract/"
+ version "/org.osgi.namespace.contract-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "1iz4f2i0fvqrlq90ki9nfzcfpvy2av434ri25bglywqssx8mmp36"))))
+ (build-system ant-build-system)
+ (inputs
+ `(("resource" ,java-osgi-resource)
+ ("annotation" ,java-osgi-annotation)))
+ (arguments
+ `(#:jar-name "osgi-namespace-contract.jar"
+ #:tests? #f)); no tests
+ (home-page "http://www.osgi.org")
+ (synopsis "Contract Capability and Requirement Namespace")
+ (description
+ "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language. This package contains
+the names for the attributes and directives for a namespace with contracts.")
+ (license license:asl2.0)))
+
+(define-public java-osgi-namespace-extender
+ (package
+ (name "java-osgi-namespace-extender")
+ (version "1.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+ "org.osgi.namespace.extender/"
+ version "/org.osgi.namespace.extender-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "0jgqiak2i05qv6j3gd33xlaifzzc0ylxxk376v2x0apfg3vvixmz"))))
+ (build-system ant-build-system)
+ (inputs
+ `(("resource" ,java-osgi-resource)
+ ("annotation" ,java-osgi-annotation)))
+ (arguments
+ `(#:jar-name "osgi-namespace-extendent.jar"
+ #:tests? #f)); no tests
+ (home-page "http://www.osgi.org")
+ (synopsis "Extender Capability and Requirement Namespace")
+ (description
+ "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language. This package contains
+the names for the attributes and directives for an extender namespace.")
+ (license license:asl2.0)))
+
+(define-public java-osgi-namespace-service
+ (package
+ (name "java-osgi-namespace-service")
+ (version "1.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+ "org.osgi.namespace.service/"
+ version "/org.osgi.namespace.service-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "0qmw8n2449nkmm56d1znz9zhazb6ya3vsimd5bf5jg23zzhgl8c8"))))
+ (build-system ant-build-system)
+ (inputs
+ `(("resource" ,java-osgi-resource)
+ ("annotation" ,java-osgi-annotation)))
+ (arguments
+ `(#:jar-name "osgi-namespace-service.jar"
+ #:tests? #f)); no tests
+ (home-page "http://www.osgi.org")
+ (synopsis "Service Capability and Requirement Namespace")
+ (description
+ "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language. This package contains
+the names for the attributes and directives for a service namespace.")
+ (license license:asl2.0)))
+
+(define-public java-osgi-util-function
+ (package
+ (name "java-osgi-util-function")
+ (version "1.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+ "org.osgi.util.function/"
+ version "/org.osgi.util.function-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "04l7j3hwmmj28w23m7paca0afzncs42j2mdr3liqq8kvp548sc6x"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "osgi-util-function.jar"
+ #:tests? #f)); no tests
+ (inputs
+ `(("annotation" ,java-osgi-annotation)))
+ (home-page "http://www.osgi.org")
+ (synopsis "OSGI Util Function")
+ (description
+ "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language. This package contains
+an interface for a function that accepts a single argument and produces a result.")
+ (license license:asl2.0)))
+
+(define-public java-osgi-util-promise
+ (package
+ (name "java-osgi-util-promise")
+ (version "1.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+ "org.osgi.util.promise/"
+ version "/org.osgi.util.promise-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "0y34dwiflg1c4ahvkswpf9z02xph2sr9fm04ia5493x3lshpw22c"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "osgi-util-promise.jar"
+ #:tests? #f)); no tests
+ (inputs
+ `(("annotation" ,java-osgi-annotation)
+ ("function" ,java-osgi-util-function)))
+ (home-page "http://www.osgi.org")
+ (synopsis "Promise of a value")
+ (description
+ "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language. This package contains
+an interface and utilitary classes for promises. A Promise represents a future
+value. It handles the interactions for asynchronous processing.")
+ (license license:asl2.0)))
+
+(define-public java-osgi-service-metatype-annotations
+ (package
+ (name "java-osgi-service-metatype-annotations")
+ (version "1.3.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+ "org.osgi.service.metatype.annotations/"
+ version "/org.osgi.service.metatype.annotations-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "12rwm3349wk80vm88rcdgs4435m4jxkpkj5mrx326skkz2c6hyw6"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "osgi-service-metatype-annotations.jar"
+ #:tests? #f)); no tests
+ (inputs
+ `(("annotation" ,java-osgi-annotation)))
+ (home-page "http://www.osgi.org")
+ (synopsis "Support annotations for metatype")
+ (description
+ "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language. This package contains
+the support annotations for metatype.")
+ (license license:asl2.0)))
+
+(define-public java-osgi-service-repository
+ (package
+ (name "java-osgi-service-repository")
+ (version "1.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+ "org.osgi.service.repository/"
+ version "/org.osgi.service.repository-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "1k41mhg7b58pd8nsghr2qwcjrxdnf1p9spsw9v11k4257g6rl06n"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "osgi-service-repository.jar"
+ #:tests? #f)); no tests
+ (inputs
+ `(("annotation" ,java-osgi-annotation)
+ ("promise" ,java-osgi-util-promise)
+ ("resource" ,java-osgi-resource)))
+ (home-page "http://www.osgi.org")
+ (synopsis "OSGI service repository")
+ (description
+ "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language. This package contains
+a repository service that contains resources.")
+ (license license:asl2.0)))
+
+(define-public java-osgi-framework
+ (package
+ (name "java-osgi-framework")
+ (version "1.8.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+ "org.osgi.framework/" version "/org.osgi.framework-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "1lwp2zfad3rybcc6q9bwz8xsgkc92ypzy5p6x54387f1qj65m73s"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "osgi-framework.jar"
+ #:tests? #f)); no tests
+ (inputs
+ `(("annotation" ,java-osgi-annotation)
+ ("resource" ,java-osgi-resource)
+ ("dto" ,java-osgi-dto)))
+ (home-page "http://www.osgi.org")
+ (synopsis "OSGi framework")
+ (description
+ "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language.")
+ (license license:asl2.0)))
+
+(define-public java-osgi-service-log
+ (package
+ (name "java-osgi-service-log")
+ (version "1.3.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+ "org.osgi.service.log/"
+ version "/org.osgi.service.log-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "1029j30dzcwializzca0j3fkhwwz08kmmsha5agw1iccscimj6r0"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "osgi-service-log.jar"
+ #:tests? #f)); no tests
+ (inputs
+ `(("java-osgi-framework" ,java-osgi-framework)))
+ (home-page "http://www.osgi.org")
+ (synopsis "Provides methods for bundles to write messages to the log")
+ (description
+ "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language. This package contains
+the log service.")
+ (license license:asl2.0)))
+
+(define-public java-osgi-service-jdbc
+ (package
+ (name "java-osgi-service-jdbc")
+ (version "1.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+ "org.osgi.service.jdbc/"
+ version "/org.osgi.service.jdbc-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "11iln5v7bk469cgb9ddkrz9sa95b3733gqgaqw9xf5g6wq652yjz"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "osgi-service-jdbc.jar"
+ #:tests? #f)); no tests
+ (home-page "http://www.osgi.org")
+ (synopsis "Factory for JDBC connection factories")
+ (description
+ "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language. This package contains
+a factory for JDBC connection factories. There are 3 preferred connection
+factories for getting JDBC connections:
+
+@itemize
+@item @code{javax.sql.DataSource};
+@item @code{javax.sql.ConnectionPoolDataSource};
+@item @code{javax.sql.XADataSource}.
+@end itemize")
+ (license license:asl2.0)))
+
+(define-public java-osgi-service-resolver
+ (package
+ (name "java-osgi-service-resolver")
+ (version "1.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+ "org.osgi.service.resolver/"
+ version "/org.osgi.service.resolver-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "1dzqn1ryfi2rq4zwsgp44bmj2wlfydjg1qbxw2b0z4xdjjy55vxd"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "osgi-service-resolver.jar"
+ #:tests? #f)); no tests
+ (inputs
+ `(("annotation" ,java-osgi-annotation)
+ ("resource" ,java-osgi-resource)))
+ (home-page "http://www.osgi.org")
+ (synopsis "OSGI Resolver service")
+ (description
+ "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language. This package contains
+a resolver service that resolves the specified resources in the context supplied
+by the caller.")
+ (license license:asl2.0)))
+
+(define-public java-osgi-util-tracker
+ (package
+ (name "java-osgi-util-tracker")
+ (version "1.5.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+ "org.osgi.util.tracker/"
+ version "/org.osgi.util.tracker-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "0c4fh9vxwzsx59r8dygda0gq2gx3z5vfhc3jsphlqwf5w0h403lz"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "osgi-util-tracker.jar"
+ #:tests? #f)); no tests
+ (inputs
+ `(("framework" ,java-osgi-framework)
+ ("annotation" ,java-osgi-annotation)))
+ (home-page "http://www.osgi.org")
+ (synopsis "Bundle tracking")
+ (description
+ "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language. This package contains
+bundle tracking utility classes.")
+ (license license:asl2.0)))
+
+(define-public java-osgi-service-cm
+ (package
+ (name "java-osgi-service-cm")
+ (version "1.5.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+ "org.osgi.service.cm/"
+ version "/org.osgi.service.cm-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "1z8kap48y3xi0ggj8v6czglfnpnd94mmismgi2wbqhj1nl5fzbp6"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "osgi-service-cm.jar"
+ #:tests? #f)); no tests
+ (inputs
+ `(("framework" ,java-osgi-framework)
+ ("annotation" ,java-osgi-annotation)))
+ (home-page "http://www.osgi.org")
+ (synopsis "OSGI Configuration Management")
+ (description
+ "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language. This package contains
+utility classes for the configuration of services.")
+ (license license:asl2.0)))
+
+(define-public java-osgi-service-packageadmin
+ (package
+ (name "java-osgi-service-packageadmin")
+ (version "1.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://central.maven.org/maven2/org/osgi/"
+ "org.osgi.service.packageadmin/"
+ version "/org.osgi.service.packageadmin-"
+ version "-sources.jar"))
+ (sha256
+ (base32
+ "041mpxzi7g36wmcily6y4ccn3jx15akpdy8gmhyb7m98x7qfvn52"))))
+ (build-system ant-build-system)
+ (arguments
+ `(#:jar-name "osgi-service-packageadmin.jar"
+ #:tests? #f)); no tests
+ (inputs
+ `(("framework" ,java-osgi-framework)))
+ (home-page "http://www.osgi.org")
+ (synopsis "OSGI Package Administration")
+ (description
+ "OSGi, for Open Services Gateway initiative framework, is a module system
+and service platform for the Java programming language. This package contains
+the packageadmin service.")
+ (license license:asl2.0)))
diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm
index 0b1e729592..77c9ae108f 100644
--- a/gnu/packages/libreoffice.scm
+++ b/gnu/packages/libreoffice.scm
@@ -867,7 +867,7 @@ and to return information on pronunciations, meanings and synonyms.")
(define-public libreoffice
(package
(name "libreoffice")
- (version "5.3.5.2")
+ (version "5.3.6.1")
(source
(origin
(method url-fetch)
@@ -876,7 +876,7 @@ and to return information on pronunciations, meanings and synonyms.")
"http://download.documentfoundation.org/libreoffice/src/"
(version-prefix version 3) "/libreoffice-" version ".tar.xz"))
(sha256 (base32
- "1sknmb9bhm8mxyfycqbwng1jqs4avyp1ffcla7dhlpwqs1aqxvx5"))))
+ "023a7hr7v5cf0ipga4ijhyl58ncgbjrp500qq5fwf65j8g2c3apz"))))
(build-system gnu-build-system)
(native-inputs
`(;; autoreconf is run by the LibreOffice build system, since after
diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm
index f1d75220a9..875d50a4ff 100644
--- a/gnu/packages/libusb.scm
+++ b/gnu/packages/libusb.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016 Theodoros Foradis <theodoros.for@openmailbox.org>
+;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;;
;;; This file is part of GNU Guix.
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 46434b35c8..585b41a376 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -367,8 +367,8 @@ It has been modified to remove all non-free binary blobs.")
(define %intel-compatible-systems '("x86_64-linux" "i686-linux"))
-(define %linux-libre-version "4.13.3")
-(define %linux-libre-hash "011mjm7kz8sf45zj17qldww34q8wh1sv6j0zqrmrlrj39i0xq1a2")
+(define %linux-libre-version "4.13.4")
+(define %linux-libre-hash "028dww9c6x22mvd0jd87bmibqiz5lrsyynrbzka18gh39sk0v8j7")
(define-public linux-libre
(make-linux-libre %linux-libre-version
@@ -377,14 +377,14 @@ It has been modified to remove all non-free binary blobs.")
#:configuration-file kernel-config))
(define-public linux-libre-4.9
- (make-linux-libre "4.9.51"
- "168pyrddkfsmwgk4npnlp2hsxmqv6zpwsspyv2ngr9bdnzh45pvj"
+ (make-linux-libre "4.9.52"
+ "0zl1z13r4gg6r2sbx8mrif2cnjkjlfrswiap7wzb22jyfnlyj5nb"
%intel-compatible-systems
#:configuration-file kernel-config))
(define-public linux-libre-4.4
- (make-linux-libre "4.4.88"
- "0ds5jxh8p7f8yk55i1xbvz0xmgp4nc7g1xka23c4mcbal2v9v5b2"
+ (make-linux-libre "4.4.89"
+ "1bw1cma8hxcj6wi8znc4nvw1p6dlc1lgciqak6n6ijn53xdd242h"
%intel-compatible-systems
#:configuration-file kernel-config))
diff --git a/gnu/packages/lirc.scm b/gnu/packages/lirc.scm
index cd9e06d394..860822ce49 100644
--- a/gnu/packages/lirc.scm
+++ b/gnu/packages/lirc.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2015, 2016, 2017 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -34,18 +35,23 @@
(define-public lirc
(package
(name "lirc")
- (version "0.9.4")
+ (version "0.10.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/lirc/LIRC/" version
"/lirc-" version ".tar.bz2"))
(sha256
(base32
- "1l2xzhnm4hrla51ik09hcafki0y8wnww7svfm7j63zbl2rssc66x"))
+ "1whlyifvvc7w04ahq07nnk1h18wc8j7c6wnvlb6mszravxh3qxcb"))
(patches (search-patches "lirc-localstatedir.patch"))))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags '("--localstatedir=/var")
+ '(#:configure-flags
+ '("--localstatedir=/var"
+ ;; "configure" script fails to enable "devinput" driver as it
+ ;; checks for "/dev/input" directory (which is not available),
+ ;; so enable it explicitly.
+ "--enable-devinput")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-kernel-sniffing
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 59e095cd89..e5b8ad3563 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -33,6 +33,7 @@
#:use-module (gnu packages m4)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix hg-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system asdf)
@@ -42,6 +43,7 @@
#:use-module (gnu packages fontutils)
#:use-module (gnu packages maths)
#:use-module (gnu packages multiprecision)
+ #:use-module (gnu packages ncurses)
#:use-module (gnu packages bdw-gc)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libffcall)
@@ -228,21 +230,31 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.")
(define-public clisp
(package
(name "clisp")
- (version "2.49")
+ (version "2.49-60")
(source
(origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/clisp/release/" version
- "/clisp-" version ".tar.gz"))
+ (method hg-fetch)
+ (uri (hg-reference
+ (url "http://hg.code.sf.net/p/clisp/clisp")
+ (changeset "clisp_2_49_60-2017-06-25")))
+ (file-name (string-append name "-" version "-checkout"))
(sha256
- (base32 "0rp82nqp5362isl9i34rwgg04cidz7izljd9d85pqcw1qr964bxx"))))
+ (base32 "0qjv3z274rbdmb941hy03hl63f4z7bmci234f8dyz4skgfr82d3i"))
+ (patches (search-patches "clisp-remove-failing-test.patch"))))
(build-system gnu-build-system)
(inputs `(("libffcall" ,libffcall)
- ("readline" ,readline-6.2)
+ ("ncurses" ,ncurses)
+ ("readline" ,readline)
("libsigsegv" ,libsigsegv)))
(arguments
'(;; XXX The custom configure script does not cope well when passed
;; --build=<triplet>.
+ #:configure-flags '("CFLAGS=-falign-functions=4"
+ "--enable-portability"
+ "--with-dynamic-ffi"
+ "--with-dynamic-modules"
+ "--with-module=bindings/glibc"
+ "--with-module=rawsock")
#:build #f
#:phases
(modify-phases %standard-phases
@@ -262,11 +274,9 @@ supporting ASDF, Sockets, Gray streams, MOP, and other useful components.")
(lambda _
(substitute* "src/constobj.d"
(("__DATE__ __TIME__") "\"1\""))
- #t))
- (add-before 'build 'chdir-to-source
- (lambda _
- ;; We are supposed to call make under the src sub-directory.
- (chdir "src")
+ (substitute* "src/genclisph.d"
+ (("__DATE__") "\"1\"")
+ (("__TIME__") "\"1\""))
#t)))
;; Makefiles seem to have race conditions.
#:parallel-build? #f))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 72e1bb179c..7beb0d72a0 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -225,14 +225,14 @@ aliasing facilities to work just as they would on normal mail.")
(define-public mutt
(package
(name "mutt")
- (version "1.8.3")
+ (version "1.9.1")
(source (origin
(method url-fetch)
(uri (string-append "https://bitbucket.org/mutt/mutt/downloads/"
"mutt-" version ".tar.gz"))
(sha256
(base32
- "0hpd896mw630sd6ps60hpka8cg691nvr627n8kmabv7zcxnp90cv"))
+ "1c8vv4anl555a03pbnwf8wnf0d8pcnd4p35y3q8f5ikkcflq76vl"))
(patches (search-patches "mutt-store-references.patch"))))
(build-system gnu-build-system)
(inputs
@@ -1244,15 +1244,17 @@ hashing schemes plugin for @code{Dovecot}.")
(define-public isync
(package
(name "isync")
- (version "1.2.1")
+ (version "1.3.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/isync/isync/"
version "/isync-" version ".tar.gz"))
(sha256 (base32
- "1bij6nm06ghkg98n2pdyacam2fyg5y8f7ajw0d5653m0r4ldw5p7"))))
+ "173wd7x8y5sp94slzwlnb7zhgs32r57zl9xspl2rf4g3fqwmhpwd"))))
(build-system gnu-build-system)
+ (native-inputs
+ `(("perl" ,perl)))
(inputs
`(("bdb" ,bdb)
("openssl" ,openssl)))
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 488c42b28d..24b62b8f06 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -18,7 +18,7 @@
;;; Copyright © 2017 Paul Garlick <pgarlick@tourbillion-technology.com>
;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
-;;; Copyright © 2017 Theodoros Foradis <theodoros.for@openmailbox.org>
+;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;;
;;; This file is part of GNU Guix.
;;;
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index f984f8ffbb..7e093bc111 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -5,13 +5,13 @@
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017 <contact.ng0@cryptolab.net>
+;;; Copyright © 2016, 2017 <ng0@infotropique.org>
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2016, 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2017 Theodoros Foradis <theodoros.for@openmailbox.org>
+;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -90,6 +90,7 @@
#:use-module (gnu packages guile)
#:use-module (gnu packages less)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages photo)
#:use-module (gnu packages texinfo))
(define-public libotr
@@ -532,6 +533,60 @@ transformation; audio and video conferences; file transfer; TLS, GPG and
end-to-end encryption support; XML console.")
(license license:gpl3)))
+(define-public dino
+ ;; The only release tarball is for version 0.0, but it is very old and fails
+ ;; to build.
+ (let ((commit "54a25fd926070a977138cec94908c55806e22f4a")
+ (revision "1"))
+ (package
+ (name "dino")
+ (version (string-append "0.0-" revision "." (string-take commit 9)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dino/dino.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1m100wzr5xqaj3r4vprxj0961833wqk0p7z94nmjsf2f0s67v5r3"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; there are no tests
+ #:parallel-build? #f ; not supported
+ #:configure-flags
+ ;; FIXME: we disable the omemo plugin because it needs
+ ;; libsignal-protocol, for which we don't have a package yet.
+ '("-DDISABLED_PLUGINS=omemo")
+ #:modules ((guix build cmake-build-system)
+ ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+ (guix build utils))
+ #:imported-modules (,@%gnu-build-system-modules
+ (guix build cmake-build-system)
+ (guix build glib-or-gtk-build-system))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'glib-or-gtk-wrap
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
+ (inputs
+ `(("libgee" ,libgee)
+ ("libsoup" ,libsoup)
+ ("sqlite" ,sqlite)
+ ("gpgme" ,gpgme)
+ ("gtk+" ,gtk+)
+ ("glib-networking" ,glib-networking)
+ ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("glib" ,glib "bin")
+ ("vala" ,vala)
+ ("gettext" ,gettext-minimal)))
+ (home-page "https://dino.im")
+ (synopsis "Graphical Jabber (XMPP) client")
+ (description "Dino is a Jabber (XMPP) client which aims to fit well into
+a graphical desktop environment like GNOME.")
+ (license license:gpl3+))))
+
(define-public prosody
(package
(name "prosody")
@@ -746,14 +801,14 @@ instant messenger with audio and video chat capabilities.")
(define-public qtox
(package
(name "qtox")
- (version "1.11.0")
+ (version "1.12.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/qTox/qTox/archive/v"
version ".tar.gz"))
(sha256
(base32
- "1m1ca1ybgj4yfm6a61yyj21f5jpip8dsbliwkfypswhmv5y52f5y"))
+ "0ycgvcfn8hchc775dcn1wpdqff8chvzz1svx9g99wa5vcns9pflg"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system)
(arguments
@@ -775,6 +830,8 @@ instant messenger with audio and video chat capabilities.")
("libvpx" ,libvpx)
("libxscrnsaver" ,libxscrnsaver)
("libx11" ,libx11)
+ ("libexif" ,libexif)
+ ("sqlite" ,sqlite)
("openal" ,openal)
("qrencode" ,qrencode)
("qtbase" ,qtbase)
@@ -793,7 +850,7 @@ connect with friends and family without anyone else listening in.")
(define-public pybitmessage
(package
(name "pybitmessage")
- (version "0.6.1")
+ (version "0.6.2")
(source
(origin
(method url-fetch)
@@ -802,39 +859,28 @@ connect with friends and family without anyone else listening in.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1ffj7raxpp277kphj98190fxrwfx16vmbspk7k3azg3bh5f5idnf"))))
- (inputs
- `(("python" ,python-2)
- ("python:tk" ,python-2 "tk")
- ("openssl" ,openssl)
- ("sqlite" ,sqlite)
- ("qt" ,qt-4)
+ "1in2mhaxkp2sx8pgvifq9dk1z8b2x3imf1anr0z926vwxwjrf85w"))))
+ (propagated-inputs
+ ;; TODO:
+ ;; Package "pyopencl", required in addition to numpy for OpenCL support.
+ ;; Package "gst123", required in addition to alsa-utils and
+ ;; mpg123 for sound support.
+ `(("python2-msgpack" ,python2-msgpack)
+ ("python2-pythondialog" ,python2-pythondialog)
("python2-pyqt-4" ,python2-pyqt-4)
("python2-sip" ,python2-sip)
("python2-pysqlite" ,python2-pysqlite)
("python2-pyopenssl" ,python2-pyopenssl)))
(native-inputs
- `(("pkg-config" ,pkg-config)))
- (build-system gnu-build-system)
+ `(("openssl" ,openssl)))
+ (build-system python-build-system)
(arguments
- `(#:imported-modules ((guix build python-build-system)
- ,@%gnu-build-system-modules)
- #:make-flags (list (string-append "PREFIX="
- (assoc-ref %outputs "out")))
- #:tests? #f ; no test target
+ `(#:modules ((guix build python-build-system)
+ (guix build utils))
+ #:tests? #f ;no test target
+ #:python ,python-2
#:phases
(modify-phases %standard-phases
- (add-before 'build 'fix-makefile
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "Makefile"
- (("mkdir -p \\$\\{DESTDIR\\}/usr") "")
- (("/usr/local") "")
- (("/usr") "")
- (("#!/bin/sh") (string-append "#!" (which "sh")))
- (("python2") (which "python"))
- (("/opt/openssl-compat-bitcoin/lib/")
- (string-append (assoc-ref inputs "openssl") "/lib/")))
- #t))
(add-after 'unpack 'fix-unmatched-python-shebangs
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/bitmessagemain.py"
@@ -868,18 +914,24 @@ connect with friends and family without anyone else listening in.")
(string-append (assoc-ref inputs "openssl")
"/lib/libssl.so")))
#t))
- ;; XXX: Make does not build and install bitmsghash, do it
+ (add-after 'unpack 'noninteractive-build
+ ;; This applies upstream commit 4c597d3f7cf9f83a763472aa165a1a4292019f20
+ (lambda _
+ (substitute* "setup.py"
+ (("except NameError")
+ "except EOFError, NameError"))
+ #t))
+ ;; XXX: python setup.py does not build and install bitmsghash,
+ ;; without it PyBitmessage tries to compile it at first run
+ ;; in the store, which due to obvious reasons fails. Do it
;; and place it in /lib.
- (add-before 'build 'build-and-install-bitmsghash
+ (add-after 'unpack 'build-and-install-bitmsghash
(lambda* (#:key outputs #:allow-other-keys)
- (chdir "src/bitmsghash")
- (system* "make")
- (chdir "../..")
- (install-file "src/bitmsghash/bitmsghash.so"
- (string-append (assoc-ref outputs "out") "/lib"))
- #t))
- (add-after 'install 'wrap
- (@@ (guix build python-build-system) wrap)))))
+ (with-directory-excursion "src/bitmsghash"
+ (system* "make")
+ (install-file "bitmsghash.so"
+ (string-append (assoc-ref outputs "out") "/lib")))
+ #t)))))
(license license:expat)
(description
"Distributed and trustless peer-to-peer communications protocol
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 517f912417..98b21219f5 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -131,6 +131,7 @@ bind processes, and much more.")
(native-inputs
`(("pkg-config" ,pkg-config)
("perl" ,perl)))
+ (outputs '("out" "debug"))
(arguments
`(#:configure-flags `("--enable-mpi-ext=affinity" ;cr doesn't work
"--enable-memchecker"
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index d895715c2b..69d69a6185 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -1088,7 +1088,7 @@ users to select LV2 plugins and run them with jalv.")
(define-public synthv1
(package
(name "synthv1")
- (version "0.8.3")
+ (version "0.8.4")
(source (origin
(method url-fetch)
(uri
@@ -1096,7 +1096,7 @@ users to select LV2 plugins and run them with jalv.")
"/synthv1-" version ".tar.gz"))
(sha256
(base32
- "1yqh7jx431q01f15b3h4dh038yvmc4jcsr3vn2175kqgwfj9jqcg"))))
+ "0awk2zx0xa6vl6ah24zz0k2mwsx50hh5g1rh32mp790fp4x7l5s8"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; There are no tests.
@@ -1122,7 +1122,7 @@ oscillators and stereo effects.")
(define-public drumkv1
(package
(name "drumkv1")
- (version "0.8.3")
+ (version "0.8.4")
(source (origin
(method url-fetch)
(uri
@@ -1130,7 +1130,7 @@ oscillators and stereo effects.")
"/drumkv1-" version ".tar.gz"))
(sha256
(base32
- "0rvdvc81j4b4n64i7jmk58khry28al8p73g71srdv1kw7j65f2zv"))))
+ "0qqpklzy4wgw9jy0v2810j06712q90bwc69fp7da82536ba058a9"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; There are no tests.
@@ -1157,7 +1157,7 @@ effects.")
(define-public samplv1
(package
(name "samplv1")
- (version "0.8.3")
+ (version "0.8.4")
(source (origin
(method url-fetch)
(uri
@@ -1165,7 +1165,7 @@ effects.")
"/samplv1-" version ".tar.gz"))
(sha256
(base32
- "1lbxrn24fg1z659zbaakzq6z8gbax6z16di9v9bhhslk8w2mndik"))))
+ "107p2xsj066q2bil0xcgqrrn7lawp02wzf7qmlajcbnd79jhsi6i"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; There are no tests.
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 2730f0c02e..418d11ad07 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -483,7 +483,7 @@ which can be used to encrypt a password with @code{crypt(3)}.")
(define-public wireshark
(package
(name "wireshark")
- (version "2.4.0")
+ (version "2.4.1")
(source
(origin
(method url-fetch)
@@ -491,7 +491,7 @@ which can be used to encrypt a password with @code{crypt(3)}.")
version ".tar.xz"))
(sha256
(base32
- "011vvrj76z1azkpvyy2j40b1x1z56ymld508zfc4xw3gh8dv82w9"))))
+ "1k8zj44pkb2ny2x46f100y7cxddm1kh0zh7f6qggm78gn7wvrp82"))))
(build-system gnu-build-system)
(inputs `(("c-ares" ,c-ares)
("glib" ,glib)
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 700c5698ed..aa2f006674 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -41,12 +41,14 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libevent)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages m4)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
@@ -3197,6 +3199,355 @@ writing to these structures, and they are accessed via the Bigarray module.")
(description "Hex is a minimal library providing hexadecimal converters.")
(license license:isc)))
+(define-public ocaml-ezjsonm
+ (package
+ (name "ocaml-ezjsonm")
+ (version "0.4.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/mirage/ezjsonm/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1kag0z2xlk4rw73a240dmkxh9rj6psxxcxkm7d7z0rrj6hzjajgq"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system ocaml-build-system)
+ (native-inputs
+ `(("alcotest" ,ocaml-alcotest)))
+ (propagated-inputs
+ `(("hex" ,ocaml-hex)
+ ("jsonm" ,ocaml-jsonm)
+ ("lwt" ,ocaml-lwt)
+ ("sexplib" ,ocaml-sexplib)))
+ (arguments
+ `(#:configure-flags (list "--enable-lwt")))
+ (home-page "https://github.com/mirage/ezjsonm/")
+ (synopsis "Read and write JSON data")
+ (description "Ezjsonm provides more convenient (but far less flexible) input
+and output functions that go to and from [string] values than jsonm. This avoids
+the need to write signal code, which is useful for quick scripts that manipulate
+JSON.")
+ (license license:isc)))
+
+(define-public ocaml-uri
+ (package
+ (name "ocaml-uri")
+ (version "1.9.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/mirage/ocaml-uri/archive/v"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "02bzrag79prx261rxf9mlak749pwf4flpfl8p012x1xznv9m0clc"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system ocaml-build-system)
+ (native-inputs
+ `(("ounit" ,ocaml-ounit)))
+ (propagated-inputs
+ `(("ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+ ("re" ,ocaml-re)
+ ("ppx-deriving" ,ocaml-ppx-deriving)
+ ("sexplib" ,ocaml-sexplib)
+ ("stringext" ,ocaml-stringext)))
+ (home-page "https://github.com/mirage/ocaml-uri")
+ (synopsis "RFC3986 URI/URL parsing library")
+ (description "OCaml-uri is a library for parsing URI/URL in the RFC3986 format.")
+ (license license:isc)))
+
+(define-public ocaml-easy-format
+ (package
+ (name "ocaml-easy-format")
+ (version "1.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/mjambon/easy-format/"
+ "archive/v" version ".tar.gz"))
+ (sha256
+ (base32
+ "1zcz682y9figa84k7lgdjcab5qbzk3yy14ygfqp2dhhrvjygm252"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system ocaml-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (home-page "https://github.com/mjambon/easy-format")
+ (synopsis "Interface to the Format module")
+ (description "Easy-format is a high-level and functional interface to the
+Format module of the OCaml standard library.")
+ (license license:bsd-3)))
+
+(define-public optcomp
+ (package
+ (name "optcomp")
+ (version "1.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/diml/optcomp/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0hhhb2gisah1h22zlg5iszbgqxdd7x85cwd57bd4mfkx9l7dh8jh"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system ocaml-build-system)
+ (arguments
+ `(#:use-make? #t
+ #:make-flags
+ (list (string-append "BUILDFLAGS=\"-cflags -I,"
+ (assoc-ref %build-inputs "camlp4")
+ "/lib/ocaml/site-lib/camlp4/Camlp4Parsers\""))))
+ (native-inputs `(("camlp4" ,camlp4)))
+ (propagated-inputs `(("camlp4" ,camlp4)))
+ (home-page "https://github.com/diml/optcomp")
+ (synopsis "Optional compilation for OCaml")
+ (description "Optcomp provides an optional compilation facility with
+cpp-like directives.")
+ (license license:bsd-3)))
+
+(define-public ocaml-piqilib
+ (package
+ (name "ocaml-piqilib")
+ (version "0.6.13")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/alavrik/piqi/archive/v"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1whqr2bb3gds2zmrzqnv8vqka9928w4lx6mi6g244kmbwb2h8d8l"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system ocaml-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'fix-ocamlpath
+ (lambda _
+ (substitute* '("Makefile" "make/Makefile.ocaml")
+ (("OCAMLPATH := ") "OCAMLPATH := $(OCAMLPATH):"))
+ #t))
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "make/OCamlMakefile"
+ (("/bin/sh") (which "bash")))
+ (zero? (system* "./configure" "--prefix" out "--ocaml-libdir"
+ (string-append out "/lib/ocaml/site-lib"))))))
+ (add-after 'build 'build-ocaml
+ (lambda* (#:key outputs #:allow-other-keys)
+ (zero? (system* "make" "ocaml"))))
+ (add-after 'install 'install-ocaml
+ (lambda* (#:key outputs #:allow-other-keys)
+ (zero? (system* "make" "ocaml-install"))))
+ (add-after 'install-ocaml 'link-stubs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (stubs (string-append out "/lib/ocaml/site-lib/stubslibs"))
+ (lib (string-append out "/lib/ocaml/site-lib/piqilib")))
+ (mkdir-p stubs)
+ (symlink (string-append lib "/dllpiqilib_stubs.so")
+ (string-append stubs "/dllpiqilib_stubs.so"))
+ #t))))))
+ (native-inputs
+ `(("which" ,which)
+ ("camlp4" ,camlp4)))
+ (propagated-inputs
+ `(("xmlm" ,ocaml-xmlm)
+ ("ulex" ,ocaml-ulex)
+ ("optcomp" ,optcomp)
+ ("easy-format" ,ocaml-easy-format)
+ ("base64" ,ocaml-base64)))
+ (home-page "http://piqi.org")
+ (synopsis "Data serialization and conversion library")
+ (description "Piqilib is the common library used by the piqi command-line
+tool and piqi-ocaml.")
+ (license license:asl2.0)))
+
+(define-public ocaml-uuidm
+ (package
+ (name "ocaml-uuidm")
+ (version "0.9.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://erratique.ch/software/uuidm/"
+ "releases/uuidm-" version ".tbz"))
+ (sha256
+ (base32
+ "0hz4fdx0x16k0pw9995vkz5d1hmzz6b16wck9li399rcbfnv5jlc"))))
+ (build-system ocaml-build-system)
+ (arguments
+ `(#:build-flags
+ (list "build" "--tests" "true" "--with-cmdliner" "true")
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (native-inputs
+ `(("opam" ,opam)))
+ (propagated-inputs
+ `(("cmdliner" ,ocaml-cmdliner)
+ ("topkg" ,ocaml-topkg)))
+ (home-page "http://erratique.ch/software/uuidm")
+ (synopsis "Universally unique identifiers for OCaml")
+ (description "Uuidm is an OCaml module implementing 128 bits universally
+unique identifiers (UUIDs) version 3, 5 (named based with MD5, SHA-1 hashing)
+and 4 (random based) according to RFC 4122.")
+ (license license:isc)))
+
+(define-public ocaml-graph
+ (package
+ (name "ocaml-graph")
+ (version "1.8.7")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://ocamlgraph.lri.fr/download/"
+ "ocamlgraph-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1845r537swjil2fcj7lgbibc2zybfwqqasrd2s7bncajs83cl1nz"))
+ (patches (search-patches "ocaml-graph-honor-source-date-epoch.patch"))))
+ (build-system ocaml-build-system)
+ (arguments
+ `(#:install-target "install-findlib"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'set-shell
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "CONFIG_SHELL" (string-append (assoc-ref inputs "bash")
+ "/bin/sh")))))))
+ (inputs `(("lablgtk" ,lablgtk)))
+ (home-page "http://ocamlgraph.lri.fr/")
+ (synopsis "Graph library for OCaml")
+ (description "OCamlgraph is a generic graph library for OCaml.")
+ (license license:lgpl2.1)))
+
+(define-public ocaml-piqi
+ (package
+ (name "ocaml-piqi")
+ (version "0.7.5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/alavrik/piqi-ocaml/"
+ "archive/v" version ".tar.gz"))
+ (sha256
+ (base32
+ "0ngz6y8i98i5v2ma8nk6mc83pdsmf2z0ks7m3xi6clfg3zqbddrv"))))
+ (build-system ocaml-build-system)
+ (arguments
+ `(#:make-flags
+ (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))
+ (string-append "SHELL=" (assoc-ref %build-inputs "bash")
+ "/bin/sh"))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (native-inputs
+ `(("which" ,which)
+ ("protobuf" ,protobuf))) ; for tests
+ (propagated-inputs
+ `(("piqilib" ,ocaml-piqilib)))
+ (home-page "https://github.com/alavrik/piqi-ocaml")
+ (synopsis "Protocol serialization system for OCaml")
+ (description "Piqi is a multi-format data serialization system for OCaml.
+It provides a uniform interface for serializing OCaml data structures to JSON,
+XML and Protocol Buffers formats.")
+ (license license:asl2.0)))
+
+(define-public bap
+ (package
+ (name "bap")
+ (version "1.1.0")
+ (home-page "https://github.com/BinaryAnalysisPlatform/bap")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append home-page "/archive/v" version ".tar.gz"))
+ (sha256
+ (base32
+ "1ms95m4j1qrmy7zqmsn2izh7gq68lnmssl7chyhk977kd3sxj66m"))
+ (file-name (string-append name "-" version ".tar.gz"))))
+ (build-system ocaml-build-system)
+ (native-inputs
+ `(("oasis" ,ocaml-oasis)
+ ("clang" ,clang)
+ ("ounit" ,ocaml-ounit)))
+ (propagated-inputs
+ `(("core-kernel" ,ocaml-core-kernel)
+ ("ppx-driver" ,ocaml-ppx-driver)
+ ("uri" ,ocaml-uri)
+ ("llvm" ,llvm)
+ ("gmp" ,gmp)
+ ("clang-runtime" ,clang-runtime)
+ ("fileutils" ,ocaml-fileutils)
+ ("cmdliner" ,ocaml-cmdliner)
+ ("zarith" ,ocaml-zarith)
+ ("uuidm" ,ocaml-uuidm)
+ ("camlzip" ,camlzip)
+ ("frontc" ,ocaml-frontc)
+ ("ezjsonm" ,ocaml-ezjsonm)
+ ("ocurl" ,ocaml-ocurl)
+ ("piqi" ,ocaml-piqi)
+ ("ocamlgraph" ,ocaml-graph)
+ ("bitstring" ,ocaml-bitstring)
+ ("ppx-jane" ,ocaml-ppx-jane)
+ ("re" ,ocaml-re)))
+ (inputs `(("llvm" ,llvm)))
+ (arguments
+ `(#:use-make? #t
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (zero? (system* "./configure" "--prefix"
+ (assoc-ref outputs "out")
+ "--libdir"
+ (string-append
+ (assoc-ref outputs "out")
+ "/lib/ocaml/site-lib")
+ "--with-llvm-version=3.8"
+ "--with-llvm-config=llvm-config"
+ "--enable-everything"))))
+ (add-after 'install 'link-stubs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (stubs (string-append out "/lib/ocaml/site-lib/stubslibs"))
+ (lib (string-append out "/lib/ocaml/site-lib/bap-plugin-llvm")))
+ (mkdir-p stubs)
+ (symlink (string-append lib "/dllllvm_plugin_stubs.so")
+ (string-append stubs "/dllllvm_plugin_stubs.so"))))))))
+ (synopsis "Binary Analysis Platform")
+ (description "Binary Analysis Platform is a framework for writing program
+analysis tools, that target binary files. The framework consists of a plethora
+of libraries, plugins, and frontends. The libraries provide code reusability,
+the plugins facilitate extensibility, and the frontends serve as entry points.")
+ (license license:expat)))
+
+(define-public ocaml-camomile
+ (package
+ (name "ocaml-camomile")
+ (version "0.8.5")
+ (home-page "https://github.com/yoriyuki/Camomile")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append home-page "/releases/download/rel-" version
+ "/camomile-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "003ikpvpaliy5hblhckfmln34zqz0mk3y2m1fqvbjngh3h2np045"))))
+ (build-system ocaml-build-system)
+ (native-inputs `(("camlp4" ,camlp4)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'fix-bin/sh
+ (lambda _
+ (setenv "CONFIG_SHELL" (which "bash")))))))
+ (synopsis "Comprehensive Unicode library")
+ (description "Camomile is a Unicode library for OCaml. Camomile provides
+Unicode character type, UTF-8, UTF-16, UTF-32 strings, conversion to/from about
+200 encodings, collation and locale-sensitive case mappings, and more. The
+library is currently designed for Unicode Standard 3.2.")
+ ;; with an exception for linked libraries to use a different license
+ (license license:lgpl2.0+)))
+
(define-public coq-flocq
(package
(name "coq-flocq")
diff --git a/gnu/packages/patches/clisp-remove-failing-test.patch b/gnu/packages/patches/clisp-remove-failing-test.patch
new file mode 100644
index 0000000000..e44ce80f74
--- /dev/null
+++ b/gnu/packages/patches/clisp-remove-failing-test.patch
@@ -0,0 +1,43 @@
+This test doesn't ever complete or timeout
+
+---
+ tests/socket.tst | 24 ------------------------
+ 1 file changed, 24 deletions(-)
+
+diff --git a/tests/socket.tst b/tests/socket.tst
+index 93c6310..1d976ff 100644
+--- a/tests/socket.tst
++++ b/tests/socket.tst
+@@ -551,30 +551,6 @@ T
+ interfaces))
+ ("0.0.0.0" "127.0.0.1" "0.0.0.0" "127.0.0.1")
+
+-(multiple-value-bind (run args) (cmd-args)
+- (let ((se (socket:socket-server)))
+- (ext:run-program run :arguments (append args (list "-q" "-q" "-x" (format nil "(close (socket:socket-connect ~D))" (socket:socket-server-port se))))
+- :wait nil :input nil :output nil)
+- (unwind-protect
+- (with-open-stream (so (socket:socket-accept se))
+- (list
+- (socket:socket-status so)
+- (write-line "foo" so)
+- (socket:socket-status so)
+- #+macos (handler-case (read-char so)
+- (end-of-file (c)
+- (princ 'read-char) (princ-error c) t))
+- #-macos (check-os-error (read-char so) (:ECONNRESET 104))
+- (null (member (socket:socket-status so) '(:EOF :APPEND)))
+- #+macos (string= (write-line "bar" so) "bar")
+- #-macos (check-os-error (write-line "bar" so) (:EPIPE 32))
+- (null (member (socket:socket-status so) '(:EOF :APPEND)))
+- (handler-case (read-char so)
+- (end-of-file (c)
+- (princ 'read-char) (princ-error c) 'end-of-file))))
+- (socket:socket-server-close se))))
+-(:OUTPUT "foo" :OUTPUT T NIL T NIL END-OF-FILE)
+-
+ ;; https://sourceforge.net/p/clisp/feature-requests/46/
+ (check-os-error (socket:socket-connect 0)
+ #-(or win32 macos) (:ECONNREFUSED 111)
+--
+
diff --git a/gnu/packages/patches/cube-nocheck.patch b/gnu/packages/patches/cube-nocheck.patch
new file mode 100644
index 0000000000..576044e622
--- /dev/null
+++ b/gnu/packages/patches/cube-nocheck.patch
@@ -0,0 +1,16 @@
+Unconditionally disable network check for new versions (from Fedora).
+
+diff -u /home/dlove/rpmbuild/BUILD/cube-4.3.4/src/GUI-qt/display/VersionCheckWidget.cpp\~ /home/dlove/rpmbuild/BUILD/cube-4.3.4/src/GUI-qt/display/VersionCheckWidget.cpp
+--- cube-4.3.4/src/GUI-qt/display/VersionCheckWidget.cpp~ 2016-04-03 00:05:37.942066948 +0100
++++ cube-4.3.4/src/GUI-qt/display/VersionCheckWidget.cpp 2016-05-06 17:16:31.648143908 +0100
+@@ -52,7 +52,8 @@
+ url = QUrl( UPDATE_CHECK_URL );
+ download = NULL;
+ update_Available = false;
+- bool no_http = env_str2bool( getenv( "CUBE_DISABLE_HTTP_DOCS" ) );
++ // bool no_http = env_str2bool( getenv( "CUBE_DISABLE_HTTP_DOCS" ) );
++ bool no_http = true;
+ if ( !no_http )
+ {
+ updateDescription = tr( "Check for update is not performed yet." );
+
diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-14649.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-14649.patch
new file mode 100644
index 0000000000..8e1166ba7a
--- /dev/null
+++ b/gnu/packages/patches/graphicsmagick-CVE-2017-14649.patch
@@ -0,0 +1,210 @@
+http://hg.code.sf.net/p/graphicsmagick/code/rev/358608a46f0a
+http://www.openwall.com/lists/oss-security/2017/09/22/2
+
+Some changes were made to make the patch apply.
+
+Notably, the DestroyJNG() function in the upstream diff has been replaced by
+its equivalent, a series of calls to MagickFreeMemory(), DestroyImageInfo(),
+and DestroyImage(). See
+http://hg.code.sf.net/p/graphicsmagick/code/rev/d445af60a8d5.
+
+# HG changeset patch
+# User Glenn Randers-Pehrson <glennrp+bmo@gmail.com>
+# Date 1504014487 14400
+# Node ID 358608a46f0a9c55e9bb8b37d09bf1ac9bc87f06
+# Parent 38c362f0ae5e7a914c3fe822284c6953f8e6eee2
+Fix Issue 439
+
+diff -ru a/coders/png.c b/coders/png.c
+--- a/coders/png.c 1969-12-31 19:00:00.000000000 -0500
++++ b/coders/png.c 2017-09-30 08:20:16.218944991 -0400
+@@ -1176,15 +1176,15 @@
+ /* allocate space */
+ if (length == 0)
+ {
+- (void) ThrowException2(&image->exception,CoderWarning,
+- "invalid profile length",(char *) NULL);
++ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
++ "invalid profile length");
+ return (MagickFail);
+ }
+ info=MagickAllocateMemory(unsigned char *,length);
+ if (info == (unsigned char *) NULL)
+ {
+- (void) ThrowException2(&image->exception,CoderWarning,
+- "unable to copy profile",(char *) NULL);
++ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
++ "Unable to copy profile");
+ return (MagickFail);
+ }
+ /* copy profile, skipping white space and column 1 "=" signs */
+@@ -1197,8 +1197,8 @@
+ if (*sp == '\0')
+ {
+ MagickFreeMemory(info);
+- (void) ThrowException2(&image->exception,CoderWarning,
+- "ran out of profile data",(char *) NULL);
++ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
++ "ran out of profile data");
+ return (MagickFail);
+ }
+ sp++;
+@@ -1234,8 +1234,9 @@
+ if(SetImageProfile(image,profile_name,info,length) == MagickFail)
+ {
+ MagickFreeMemory(info);
+- (void) ThrowException(&image->exception,ResourceLimitError,
+- MemoryAllocationFailed,"unable to copy profile");
++ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
++ "unable to copy profile");
++ return MagickFail;
+ }
+ MagickFreeMemory(info);
+ return MagickTrue;
+@@ -3285,7 +3286,6 @@
+ if (status == MagickFalse)
+ {
+ DestroyJNGInfo(color_image_info,alpha_image_info);
+- DestroyImage(alpha_image);
+ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
+ " could not allocate alpha_image blob");
+ return ((Image *)NULL);
+@@ -3534,7 +3534,7 @@
+ CloseBlob(color_image);
+ if (logging)
+ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
+- " Reading jng_image from color_blob.");
++ " Reading jng_image from color_blob.");
+
+ FormatString(color_image_info->filename,"%.1024s",color_image->filename);
+
+@@ -3558,13 +3558,18 @@
+
+ if (logging)
+ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
+- " Copying jng_image pixels to main image.");
++ " Copying jng_image pixels to main image.");
+ image->rows=jng_height;
+ image->columns=jng_width;
+ length=image->columns*sizeof(PixelPacket);
++ if ((jng_height == 0 || jng_width == 0) && logging)
++ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
++ " jng_width=%lu jng_height=%lu",
++ (unsigned long)jng_width,(unsigned long)jng_height);
+ for (y=0; y < (long) image->rows; y++)
+ {
+- s=AcquireImagePixels(jng_image,0,y,image->columns,1,&image->exception);
++ s=AcquireImagePixels(jng_image,0,y,image->columns,1,
++ &image->exception);
+ q=SetImagePixels(image,0,y,image->columns,1);
+ (void) memcpy(q,s,length);
+ if (!SyncImagePixels(image))
+@@ -3589,45 +3594,79 @@
+ CloseBlob(alpha_image);
+ if (logging)
+ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
+- " Reading opacity from alpha_blob.");
++ " Reading opacity from alpha_blob.");
+
+ FormatString(alpha_image_info->filename,"%.1024s",
+ alpha_image->filename);
+
+ jng_image=ReadImage(alpha_image_info,exception);
+
+- for (y=0; y < (long) image->rows; y++)
++ if (jng_image == (Image *)NULL)
+ {
+- s=AcquireImagePixels(jng_image,0,y,image->columns,1,
+- &image->exception);
+- if (image->matte)
+- {
+- q=SetImagePixels(image,0,y,image->columns,1);
+- for (x=(long) image->columns; x > 0; x--,q++,s++)
+- q->opacity=(Quantum) MaxRGB-s->red;
+- }
+- else
++ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
++ " jng_image is NULL.");
++ if (color_image_info)
++ DestroyImageInfo(color_image_info);
++ if (alpha_image_info)
++ DestroyImageInfo(alpha_image_info);
++ if (color_image)
++ DestroyImage(color_image);
++ if (alpha_image)
++ DestroyImage(alpha_image);
++ }
++ else
++ {
++
++ if (logging)
+ {
+- q=SetImagePixels(image,0,y,image->columns,1);
+- for (x=(long) image->columns; x > 0; x--,q++,s++)
+- {
+- q->opacity=(Quantum) MaxRGB-s->red;
+- if (q->opacity != OpaqueOpacity)
+- image->matte=MagickTrue;
+- }
++ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
++ " Read jng_image.");
++ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
++ " jng_image->width=%lu, jng_image->height=%lu",
++ (unsigned long)jng_width,(unsigned long)jng_height);
++ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
++ " image->rows=%lu, image->columns=%lu",
++ (unsigned long)image->rows,
++ (unsigned long)image->columns);
+ }
+- if (!SyncImagePixels(image))
+- break;
+- }
+- (void) LiberateUniqueFileResource(alpha_image->filename);
+- DestroyImage(alpha_image);
+- alpha_image = (Image *)NULL;
+- DestroyImageInfo(alpha_image_info);
+- alpha_image_info = (ImageInfo *)NULL;
+- (void) LogMagickEvent(CoderEvent,GetMagickModule(),
+- " Destroy the JNG image");
+- DestroyImage(jng_image);
+- jng_image = (Image *)NULL;
++
++ for (y=0; y < (long) image->rows; y++)
++ {
++ s=AcquireImagePixels(jng_image,0,y,image->columns,1,
++ &image->exception);
++ if (image->matte)
++ {
++ q=SetImagePixels(image,0,y,image->columns,1);
++ for (x=(long) image->columns; x > 0; x--,q++,s++)
++ q->opacity=(Quantum) MaxRGB-s->red;
++ }
++ else
++ {
++ q=SetImagePixels(image,0,y,image->columns,1);
++ for (x=(long) image->columns; x > 0; x--,q++,s++)
++ {
++ q->opacity=(Quantum) MaxRGB-s->red;
++ if (q->opacity != OpaqueOpacity)
++ image->matte=MagickTrue;
++ }
++ }
++ if (!SyncImagePixels(image))
++ break;
++ }
++ (void) LiberateUniqueFileResource(alpha_image->filename);
++ if (color_image_info)
++ DestroyImageInfo(color_image_info);
++ if (alpha_image_info)
++ DestroyImageInfo(alpha_image_info);
++ if (color_image)
++ DestroyImage(color_image);
++ if (alpha_image)
++ DestroyImage(alpha_image);
++ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
++ " Destroy the JNG image");
++ DestroyImage(jng_image);
++ jng_image = (Image *)NULL;
++ }
+ }
+ }
diff --git a/gnu/packages/patches/ocaml-graph-honor-source-date-epoch.patch b/gnu/packages/patches/ocaml-graph-honor-source-date-epoch.patch
new file mode 100644
index 0000000000..9f8713e3d3
--- /dev/null
+++ b/gnu/packages/patches/ocaml-graph-honor-source-date-epoch.patch
@@ -0,0 +1,34 @@
+From 354ef78aac0b887fae3c10b28eb2b0d83f66bdfe Mon Sep 17 00:00:00 2001
+From: Julien Lepiller <julien@lepiller.eu>
+Date: Mon, 2 Jan 2017 17:05:24 +0100
+Subject: [PATCH] Honor SOURCE_DATE_EPOCH
+
+---
+ Makefile.in | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index a32b4b8..ef4c174 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -113,11 +113,16 @@ graph.cmx: $(CMI) $(CMX)
+ $(OCAMLOPT) $(INCLUDES) -pack -o $@ $^
+
+ VERSION=1.8.7
++ifdef SOURCE_DATE_EPOCH
++BUILD_DATE=$(shell date -u -d "@$(SOURCE_DATE_EPOCH)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" 2>/dev/null || date)
++else
++BUILD_DATE=$(shell date)
++endif
+
+ src/version.ml: Makefile
+ rm -f $@
+ echo "let version = \""$(VERSION)"\"" > $@
+- echo "let date = \""`date`"\"" >> $@
++ echo "let date = \""$(BUILD_DATE)"\"" >> $@
+
+ # gtk2 graph editor
+ ###################
+--
+2.11.0
+
diff --git a/gnu/packages/patches/openocd-nrf52.patch b/gnu/packages/patches/openocd-nrf52.patch
index 792575df78..0ec4348cb4 100644
--- a/gnu/packages/patches/openocd-nrf52.patch
+++ b/gnu/packages/patches/openocd-nrf52.patch
@@ -21,19 +21,19 @@ Signed-off-by: Michael Dietz <mjdietzx@gmail.com>
---
diff --git a/src/flash/nor/Makefile.am b/src/flash/nor/Makefile.am
-index c167e8f..b6a2be3 100644
+index 727e4f2..839667c 100644
--- a/src/flash/nor/Makefile.am
+++ b/src/flash/nor/Makefile.am
-@@ -37,6 +37,7 @@ NOR_DRIVERS = \
- niietcm4.c \
- non_cfi.c \
- nrf51.c \
-+ nrf52.c \
- numicro.c \
- ocl.c \
- pic32mx.c \
+@@ -36,6 +36,7 @@ NOR_DRIVERS = \
+ %D%/niietcm4.c \
+ %D%/non_cfi.c \
+ %D%/nrf51.c \
++ %D%/nrf52.c \
+ %D%/numicro.c \
+ %D%/ocl.c \
+ %D%/pic32mx.c \
diff --git a/src/flash/nor/drivers.c b/src/flash/nor/drivers.c
-index 56a5cb2..3e071bd 100644
+index 56a5cb2..071273e 100644
--- a/src/flash/nor/drivers.c
+++ b/src/flash/nor/drivers.c
@@ -48,6 +48,7 @@ extern struct flash_driver mdr_flash;
@@ -48,7 +48,7 @@ index 56a5cb2..3e071bd 100644
&mrvlqspi_flash,
&niietcm4_flash,
&nrf51_flash,
-+ &nrf52_flash,
++ &nrf52_flash,
&numicro_flash,
&ocl_flash,
&pic32mx_flash,
@@ -792,47 +792,31 @@ index 0000000..7f2bd35
+ .protect_check = nrf52_protect_check,
+};
diff --git a/tcl/target/nrf52.cfg b/tcl/target/nrf52.cfg
-index c1cbf1a..a2567ff 100644
+index c1cbf1a..41a22ff 100644
--- a/tcl/target/nrf52.cfg
+++ b/tcl/target/nrf52.cfg
-@@ -5,15 +5,22 @@
- source [find target/swj-dp.tcl]
+@@ -10,6 +10,13 @@ if { [info exists CHIPNAME] } {
+ set _CHIPNAME nrf52
+ }
- if { [info exists CHIPNAME] } {
-- set _CHIPNAME $CHIPNAME
-+ set _CHIPNAME $CHIPNAME
- } else {
-- set _CHIPNAME nrf52
-+ set _CHIPNAME nrf52
-+}
-+
+# Work-area is a space in RAM used for flash programming, by default use 16kB.
+if { [info exists WORKAREASIZE] } {
-+ set _WORKAREASIZE $WORKAREASIZE
++ set _WORKAREASIZE $WORKAREASIZE
+} else {
-+ set _WORKAREASIZE 0x4000
- }
-
++ set _WORKAREASIZE 0x4000
++}
++
if { [info exists CPUTAPID] } {
-- set _CPUTAPID $CPUTAPID
-+ set _CPUTAPID $CPUTAPID
+ set _CPUTAPID $CPUTAPID
} else {
-- set _CPUTAPID 0x2ba01477
-+ set _CPUTAPID 0x2ba01477
- }
-
- swj_newdap $_CHIPNAME cpu -expected-id $_CPUTAPID
-@@ -21,8 +28,15 @@ swj_newdap $_CHIPNAME cpu -expected-id $_CPUTAPID
- set _TARGETNAME $_CHIPNAME.cpu
+@@ -22,7 +29,15 @@ set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME cortex_m -chain-position $_TARGETNAME
--adapter_khz 10000
+ adapter_khz 10000
+$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0
--if { ![using_hla] } {
-- cortex_m reset_config sysresetreq
-+if {![using_hla]} {
-+ cortex_m reset_config sysresetreq
+ if { ![using_hla] } {
+ cortex_m reset_config sysresetreq
}
+
+flash bank $_CHIPNAME.flash nrf52 0x00000000 0 1 1 $_TARGETNAME
diff --git a/gnu/packages/patches/python-nose-timer-drop-ordereddict.patch b/gnu/packages/patches/python-nose-timer-drop-ordereddict.patch
new file mode 100644
index 0000000000..e1e71a332a
--- /dev/null
+++ b/gnu/packages/patches/python-nose-timer-drop-ordereddict.patch
@@ -0,0 +1,44 @@
+From 700076019b5aff72aac7651cc830aaef21ee9a47 Mon Sep 17 00:00:00 2001
+From: jakirkham <jakirkham@gmail.com>
+Date: Fri, 7 Jul 2017 05:57:56 -0400
+Subject: [PATCH] Drop ordereddict requirement (#84)
+
+* Drop ordereddict requirement
+
+As Python 2.7 is the minimum Python supported, every version of Python
+should have `ordereddict` preincluded in the standard library one way or
+another. So we can drop this dependency and just handle the differences
+between Python 2 and Python 3.
+---
+ nosetimer/plugin.py | 5 +----
+ setup.py | 1 -
+ 2 files changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/nosetimer/plugin.py b/nosetimer/plugin.py
+index ef28e11..d093a51 100644
+--- a/nosetimer/plugin.py
++++ b/nosetimer/plugin.py
+@@ -12,10 +12,7 @@
+ except ImportError:
+ import queue as Queue
+
+-try:
+- from collections import OrderedDict
+-except ImportError:
+- from ordereddict import OrderedDict
++from collections import OrderedDict
+
+
+ # define constants
+diff --git a/setup.py b/setup.py
+index 6a55b82..d249325 100755
+--- a/setup.py
++++ b/setup.py
+@@ -27,7 +27,6 @@
+ install_requires=[
+ 'nose',
+ 'termcolor',
+- 'ordereddict',
+ ],
+ license='MIT',
+ entry_points={
diff --git a/gnu/packages/patches/qemu-CVE-2017-13711.patch b/gnu/packages/patches/qemu-CVE-2017-13711.patch
deleted file mode 100644
index 4070115419..0000000000
--- a/gnu/packages/patches/qemu-CVE-2017-13711.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-Fix CVE-2017-13711:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-13711
-
-Patch copied from upstream source repository:
-
-https://git.qemu.org/?p=qemu.git;a=commitdiff;h=1201d308519f1e915866d7583d5136d03cc1d384
-
-From 1201d308519f1e915866d7583d5136d03cc1d384 Mon Sep 17 00:00:00 2001
-From: Samuel Thibault <samuel.thibault@ens-lyon.org>
-Date: Fri, 25 Aug 2017 01:35:53 +0200
-Subject: [PATCH] slirp: fix clearing ifq_so from pending packets
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The if_fastq and if_batchq contain not only packets, but queues of packets
-for the same socket. When sofree frees a socket, it thus has to clear ifq_so
-from all the packets from the queues, not only the first.
-
-Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
-Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
-Cc: qemu-stable@nongnu.org
-Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
----
- slirp/socket.c | 39 +++++++++++++++++++++++----------------
- 1 file changed, 23 insertions(+), 16 deletions(-)
-
-diff --git a/slirp/socket.c b/slirp/socket.c
-index ecec0295a9..cb7b5b608d 100644
---- a/slirp/socket.c
-+++ b/slirp/socket.c
-@@ -59,6 +59,27 @@ socreate(Slirp *slirp)
- return(so);
- }
-
-+/*
-+ * Remove references to so from the given message queue.
-+ */
-+static void
-+soqfree(struct socket *so, struct quehead *qh)
-+{
-+ struct mbuf *ifq;
-+
-+ for (ifq = (struct mbuf *) qh->qh_link;
-+ (struct quehead *) ifq != qh;
-+ ifq = ifq->ifq_next) {
-+ if (ifq->ifq_so == so) {
-+ struct mbuf *ifm;
-+ ifq->ifq_so = NULL;
-+ for (ifm = ifq->ifs_next; ifm != ifq; ifm = ifm->ifs_next) {
-+ ifm->ifq_so = NULL;
-+ }
-+ }
-+ }
-+}
-+
- /*
- * remque and free a socket, clobber cache
- */
-@@ -66,23 +87,9 @@ void
- sofree(struct socket *so)
- {
- Slirp *slirp = so->slirp;
-- struct mbuf *ifm;
-
-- for (ifm = (struct mbuf *) slirp->if_fastq.qh_link;
-- (struct quehead *) ifm != &slirp->if_fastq;
-- ifm = ifm->ifq_next) {
-- if (ifm->ifq_so == so) {
-- ifm->ifq_so = NULL;
-- }
-- }
--
-- for (ifm = (struct mbuf *) slirp->if_batchq.qh_link;
-- (struct quehead *) ifm != &slirp->if_batchq;
-- ifm = ifm->ifq_next) {
-- if (ifm->ifq_so == so) {
-- ifm->ifq_so = NULL;
-- }
-- }
-+ soqfree(so, &slirp->if_fastq);
-+ soqfree(so, &slirp->if_batchq);
-
- if (so->so_emu==EMU_RSH && so->extra) {
- sofree(so->extra);
---
-2.14.1
-
diff --git a/gnu/packages/patches/qemu-CVE-2017-14167.patch b/gnu/packages/patches/qemu-CVE-2017-14167.patch
deleted file mode 100644
index a6007ac082..0000000000
--- a/gnu/packages/patches/qemu-CVE-2017-14167.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-Fix CVE-2017-14167:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-14167
-http://seclists.org/oss-sec/2017/q3/407
-
-Patch copied from upstream development mailing list:
-
-https://lists.nongnu.org/archive/html/qemu-devel/2017-09/msg01483.html
-
-From: Prasad J Pandit <address@hidden>
-
-While loading kernel via multiboot-v1 image, (flags & 0x00010000)
-indicates that multiboot header contains valid addresses to load
-the kernel image. These addresses are used to compute kernel
-size and kernel text offset in the OS image. Validate these
-address values to avoid an OOB access issue.
-
-This is CVE-2017-14167.
-
-Reported-by: Thomas Garnier <address@hidden>
-Signed-off-by: Prasad J Pandit <address@hidden>
----
- hw/i386/multiboot.c | 19 +++++++++++++++++++
- 1 file changed, 19 insertions(+)
-
-Update: add CVE-ID to the commit message.
-
-diff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c
-index 6001f4caa2..c7b70c91d5 100644
---- a/hw/i386/multiboot.c
-+++ b/hw/i386/multiboot.c
-@@ -221,15 +221,34 @@ int load_multiboot(FWCfgState *fw_cfg,
- uint32_t mh_header_addr = ldl_p(header+i+12);
- uint32_t mh_load_end_addr = ldl_p(header+i+20);
- uint32_t mh_bss_end_addr = ldl_p(header+i+24);
-+
- mh_load_addr = ldl_p(header+i+16);
-+ if (mh_header_addr < mh_load_addr) {
-+ fprintf(stderr, "invalid mh_load_addr address\n");
-+ exit(1);
-+ }
-+
- uint32_t mb_kernel_text_offset = i - (mh_header_addr - mh_load_addr);
- uint32_t mb_load_size = 0;
- mh_entry_addr = ldl_p(header+i+28);
-
- if (mh_load_end_addr) {
-+ if (mh_bss_end_addr < mh_load_addr) {
-+ fprintf(stderr, "invalid mh_bss_end_addr address\n");
-+ exit(1);
-+ }
- mb_kernel_size = mh_bss_end_addr - mh_load_addr;
-+
-+ if (mh_load_end_addr < mh_load_addr) {
-+ fprintf(stderr, "invalid mh_load_end_addr address\n");
-+ exit(1);
-+ }
- mb_load_size = mh_load_end_addr - mh_load_addr;
- } else {
-+ if (kernel_file_size < mb_kernel_text_offset) {
-+ fprintf(stderr, "invalid kernel_file_size\n");
-+ exit(1);
-+ }
- mb_kernel_size = kernel_file_size - mb_kernel_text_offset;
- mb_load_size = mb_kernel_size;
- }
---
-2.13.5
-
diff --git a/gnu/packages/patches/xorg-server-CVE-2017-10971.patch b/gnu/packages/patches/xorg-server-CVE-2017-10971.patch
deleted file mode 100644
index 2696033e58..0000000000
--- a/gnu/packages/patches/xorg-server-CVE-2017-10971.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-From 215f894965df5fb0bb45b107d84524e700d2073c Mon Sep 17 00:00:00 2001
-From: Michal Srb <msrb@suse.com>
-Date: Wed, 24 May 2017 15:54:40 +0300
-Subject: dix: Disallow GenericEvent in SendEvent request.
-
-The SendEvent request holds xEvent which is exactly 32 bytes long, no more,
-no less. Both ProcSendEvent and SProcSendEvent verify that the received data
-exactly match the request size. However nothing stops the client from passing
-in event with xEvent::type = GenericEvent and any value of
-xGenericEvent::length.
-
-In the case of ProcSendEvent, the event will be eventually passed to
-WriteEventsToClient which will see that it is Generic event and copy the
-arbitrary length from the receive buffer (and possibly past it) and send it to
-the other client. This allows clients to copy unitialized heap memory out of X
-server or to crash it.
-
-In case of SProcSendEvent, it will attempt to swap the incoming event by
-calling a swapping function from the EventSwapVector array. The swapped event
-is written to target buffer, which in this case is local xEvent variable. The
-xEvent variable is 32 bytes long, but the swapping functions for GenericEvents
-expect that the target buffer has size matching the size of the source
-GenericEvent. This allows clients to cause stack buffer overflows.
-
-Signed-off-by: Michal Srb <msrb@suse.com>
-Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-
-diff --git a/dix/events.c b/dix/events.c
-index 3e3a01e..d3a33ea 100644
---- a/dix/events.c
-+++ b/dix/events.c
-@@ -5366,6 +5366,12 @@ ProcSendEvent(ClientPtr client)
- client->errorValue = stuff->event.u.u.type;
- return BadValue;
- }
-+ /* Generic events can have variable size, but SendEvent request holds
-+ exactly 32B of event data. */
-+ if (stuff->event.u.u.type == GenericEvent) {
-+ client->errorValue = stuff->event.u.u.type;
-+ return BadValue;
-+ }
- if (stuff->event.u.u.type == ClientMessage &&
- stuff->event.u.u.detail != 8 &&
- stuff->event.u.u.detail != 16 && stuff->event.u.u.detail != 32) {
-diff --git a/dix/swapreq.c b/dix/swapreq.c
-index 719e9b8..6785059 100644
---- a/dix/swapreq.c
-+++ b/dix/swapreq.c
-@@ -292,6 +292,13 @@ SProcSendEvent(ClientPtr client)
- swapl(&stuff->destination);
- swapl(&stuff->eventMask);
-
-+ /* Generic events can have variable size, but SendEvent request holds
-+ exactly 32B of event data. */
-+ if (stuff->event.u.u.type == GenericEvent) {
-+ client->errorValue = stuff->event.u.u.type;
-+ return BadValue;
-+ }
-+
- /* Swap event */
- proc = EventSwapVector[stuff->event.u.u.type & 0177];
- if (!proc || proc == NotImplemented) /* no swapping proc; invalid event type? */
---
-cgit v0.10.2
-
-From 8caed4df36b1f802b4992edcfd282cbeeec35d9d Mon Sep 17 00:00:00 2001
-From: Michal Srb <msrb@suse.com>
-Date: Wed, 24 May 2017 15:54:41 +0300
-Subject: Xi: Verify all events in ProcXSendExtensionEvent.
-
-The requirement is that events have type in range
-EXTENSION_EVENT_BASE..lastEvent, but it was tested
-only for first event of all.
-
-Signed-off-by: Michal Srb <msrb@suse.com>
-Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-
-diff --git a/Xi/sendexev.c b/Xi/sendexev.c
-index 1cf118a..5e63bfc 100644
---- a/Xi/sendexev.c
-+++ b/Xi/sendexev.c
-@@ -117,7 +117,7 @@ SProcXSendExtensionEvent(ClientPtr client)
- int
- ProcXSendExtensionEvent(ClientPtr client)
- {
-- int ret;
-+ int ret, i;
- DeviceIntPtr dev;
- xEvent *first;
- XEventClass *list;
-@@ -141,10 +141,12 @@ ProcXSendExtensionEvent(ClientPtr client)
- /* The client's event type must be one defined by an extension. */
-
- first = ((xEvent *) &stuff[1]);
-- if (!((EXTENSION_EVENT_BASE <= first->u.u.type) &&
-- (first->u.u.type < lastEvent))) {
-- client->errorValue = first->u.u.type;
-- return BadValue;
-+ for (i = 0; i < stuff->num_events; i++) {
-+ if (!((EXTENSION_EVENT_BASE <= first[i].u.u.type) &&
-+ (first[i].u.u.type < lastEvent))) {
-+ client->errorValue = first[i].u.u.type;
-+ return BadValue;
-+ }
- }
-
- list = (XEventClass *) (first + stuff->num_events);
---
-cgit v0.10.2
-
-From ba336b24052122b136486961c82deac76bbde455 Mon Sep 17 00:00:00 2001
-From: Michal Srb <msrb@suse.com>
-Date: Wed, 24 May 2017 15:54:42 +0300
-Subject: Xi: Do not try to swap GenericEvent.
-
-The SProcXSendExtensionEvent must not attempt to swap GenericEvent because
-it is assuming that the event has fixed size and gives the swapping function
-xEvent-sized buffer.
-
-A GenericEvent would be later rejected by ProcXSendExtensionEvent anyway.
-
-Signed-off-by: Michal Srb <msrb@suse.com>
-Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-
-diff --git a/Xi/sendexev.c b/Xi/sendexev.c
-index 5e63bfc..5c2e0fc 100644
---- a/Xi/sendexev.c
-+++ b/Xi/sendexev.c
-@@ -95,9 +95,17 @@ SProcXSendExtensionEvent(ClientPtr client)
-
- eventP = (xEvent *) &stuff[1];
- for (i = 0; i < stuff->num_events; i++, eventP++) {
-+ if (eventP->u.u.type == GenericEvent) {
-+ client->errorValue = eventP->u.u.type;
-+ return BadValue;
-+ }
-+
- proc = EventSwapVector[eventP->u.u.type & 0177];
-- if (proc == NotImplemented) /* no swapping proc; invalid event type? */
-+ /* no swapping proc; invalid event type? */
-+ if (proc == NotImplemented) {
-+ client->errorValue = eventP->u.u.type;
- return BadValue;
-+ }
- (*proc) (eventP, &eventT);
- *eventP = eventT;
- }
---
-cgit v0.10.2
-
diff --git a/gnu/packages/patches/xorg-server-CVE-2017-10972.patch b/gnu/packages/patches/xorg-server-CVE-2017-10972.patch
deleted file mode 100644
index f24e9c0ae6..0000000000
--- a/gnu/packages/patches/xorg-server-CVE-2017-10972.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 05442de962d3dc624f79fc1a00eca3ffc5489ced Mon Sep 17 00:00:00 2001
-From: Michal Srb <msrb@suse.com>
-Date: Wed, 24 May 2017 15:54:39 +0300
-Subject: Xi: Zero target buffer in SProcXSendExtensionEvent.
-
-Make sure that the xEvent eventT is initialized with zeros, the same way as
-in SProcSendEvent.
-
-Some event swapping functions do not overwrite all 32 bytes of xEvent
-structure, for example XSecurityAuthorizationRevoked. Two cooperating
-clients, one swapped and the other not, can send
-XSecurityAuthorizationRevoked event to each other to retrieve old stack data
-from X server. This can be potentialy misused to go around ASLR or
-stack-protector.
-
-Signed-off-by: Michal Srb <msrb@suse.com>
-Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-
-diff --git a/Xi/sendexev.c b/Xi/sendexev.c
-index 11d8202..1cf118a 100644
---- a/Xi/sendexev.c
-+++ b/Xi/sendexev.c
-@@ -78,7 +78,7 @@ SProcXSendExtensionEvent(ClientPtr client)
- {
- CARD32 *p;
- int i;
-- xEvent eventT;
-+ xEvent eventT = { .u.u.type = 0 };
- xEvent *eventP;
- EventSwapPtr proc;
-
---
-cgit v0.10.2
-
diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm
index 3e4b51d81a..1f3c7b556d 100644
--- a/gnu/packages/php.scm
+++ b/gnu/packages/php.scm
@@ -52,7 +52,7 @@
(define-public php
(package
(name "php")
- (version "7.1.9")
+ (version "7.1.10")
(home-page "https://secure.php.net/")
(source (origin
(method url-fetch)
@@ -60,7 +60,7 @@
name "-" version ".tar.xz"))
(sha256
(base32
- "130y50nawipd12nbs10661vzk8gvy7zsqcsxvj29mwaivm4a777c"))
+ "02y52ml1svksx6fclg47vim2hnsva3531db7msrhpb9f39vzm3ib"))
(modules '((guix build utils)))
(snippet
'(with-directory-excursion "ext"
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
new file mode 100644
index 0000000000..4fdf260c67
--- /dev/null
+++ b/gnu/packages/profiling.scm
@@ -0,0 +1,399 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Dave Love <fx@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages profiling)
+ #:use-module (guix packages)
+ #:use-module ((guix licenses) #:prefix license:) ; avoid zlib, expat clashes
+ #:use-module (guix download)
+ #:use-module (guix utils)
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages base) ;for "which"
+ #:use-module (gnu packages bison)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages documentation)
+ #:use-module (gnu packages fabric-management)
+ #:use-module (gnu packages flex)
+ #:use-module (gnu packages gawk)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages libunwind)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages mpi)
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages qt))
+
+;; Fixme: Separate out lib and fix resulting cycle errors; separate libpfm
+;; output(?); build libmsr and add that component.
+(define-public papi
+ (package
+ (name "papi")
+ (version "5.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://icl.utk.edu/projects/papi/downloads/papi-"
+ version ".tar.gz"))
+ (sha256 (base32 "1m62s8fkjjgq04ayf18jcxc33rqfd7nrkdw1gr54q5pn4cijrp29"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("ncurses" ,ncurses)
+ ("lm-sensors" ,lm-sensors "lib")
+ ("rdma-core" ,rdma-core)
+ ("infiniband-diags" ,infiniband-diags "lib")
+ ("net-tools" ,net-tools)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("gfortran" ,gfortran)))
+ (arguments
+ '(#:tests? #f ; no check target
+ #:configure-flags
+ ;; These are roughly per Fedora, but elide mx (assumed to be dead, even
+ ;; Open-MX) and add and powercap -- I don't know the pros/cons of
+ ;; infiniband and infiniband_mad, but you can't use them together, and
+ ;; the umad version needs at least one patch.
+ ;; Implicit enabled components: perf_event perf_event_uncore
+ `("--with-perf-events" "--with-shared-lib=yes" "--with-shlib"
+ "--with-static-lib=no"
+ "--with-components=appio coretemp example lustre micpower net rapl \
+stealtime lmsensors infiniband powercap"
+ ;; So utils get rpath set correctly:
+ ,(string-append "LDFLAGS=-Xlinker -rpath -Xlinker "
+ (assoc-ref %outputs "out") "/lib"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'autoconf
+ (lambda _
+ (chdir "src")
+ (zero? (system* "autoconf"))))
+ ;; Amalgamating with the following clause gives double substitution.
+ (add-before 'patch-source-shebangs 'patch-components
+ (lambda _
+ (with-directory-excursion "src/components"
+ (substitute* '("lmsensors/configure" "infiniband_umad/configure")
+ (("/bin/sh") (which "sh"))))
+ #t))
+ (add-after 'configure 'components
+ (lambda* (#:key inputs #:allow-other-keys)
+ (with-directory-excursion "components"
+ (and
+ (with-directory-excursion "infiniband_umad"
+ (zero? (system* "./configure")))
+ (with-directory-excursion "lmsensors"
+ (let ((base (assoc-ref inputs "lm-sensors")))
+ (zero?
+ (system*
+ "./configure"
+ (string-append "--with-sensors_incdir=" base
+ "/include/sensors")
+ (string-append "--with-sensors_libdir=" base "/lib")))))))))
+ (add-after 'install 'extra-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((doc (string-append (assoc-ref outputs "out")
+ "/share/doc")))
+ (mkdir-p doc)
+ (chdir "..") ; we went into src above
+ (for-each (lambda (file)
+ (install-file file doc))
+ '("README" "RELEASENOTES.txt" "LICENSE.txt"))
+ #t))))))
+ (home-page "http://icl.cs.utk.edu/papi/")
+ (synopsis "Performance Application Programming Interface")
+ (description
+ "PAPI provides the tool designer and application engineer with a consistent
+interface and methodology for use of the performance counter hardware found in
+most major microprocessors. PAPI enables software engineers to see, in near
+real time, the relation between software performance and processor events.
+
+In addition, PAPI provides access to a collection of components that expose
+performance measurement opportunites across the hardware and software stack.")
+ ;; See Debian papi copyright file.
+ (license (list license:bsd-3
+ license:lgpl2.1+ ;src/components/infiniband/pscanf.h
+ ;; not used in output
+ license:gpl2+ ;src/components/appio/tests/iozone/gengnuplot.sh
+ ;src/libpfm-3.y/*/multiplex*
+ ;; "BSD-like": src/libpfm-3.y/*, src/libpfm4/*
+ ;; lgpl2.1+: src/perfctr-2.*/*
+ ))))
+
+;; NB. there's a potential name clash with libotf.
+(define-public otf2
+ (package
+ (name "otf2")
+ (version "2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.vi-hps.org/upload/packages/otf2/otf2-"
+ version ".tar.gz"))
+ (sha256 (base32 "1lyaqhdfaqm1kd23yk71g71vkscw83s7m57j017y768h8sh8xlwa"))))
+ (native-inputs `(("python" ,python)))
+ (outputs '("doc" ; 18MB
+ "lib"
+ "out"))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags '("--enable-shared" "--disable-static")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'licence
+ (lambda* (#:key outputs #:allow-other-keys)
+ (for-each (lambda (output)
+ (let ((doc (string-append (assoc-ref outputs output)
+ "/share/doc/otf2")))
+ (install-file "COPYING" doc)))
+ '("lib" "doc"))
+ #t)))))
+ (home-page "http://www.vi-hps.org/projects/score-p/")
+ (synopsis "Open Trace Format 2 library")
+ (description "The Open Trace Format 2 (OTF2) is a scalable, memory
+efficient event trace data format plus support library.")
+ (license license:bsd-3)))
+
+(define-public opari2
+ (package
+ (name "opari2")
+ (version "2.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (let* ((parts (string-split version #\.) )
+ (major (car parts))
+ (minor (cadr parts)))
+ (string-append "http://www.vi-hps.org/upload/packages/opari2/opari2-"
+ version ".tar.gz")))
+ (sha256 (base32 "1ph8l5c646bm9l5vcn8rrbjvkyi7y8yvn2ny95r6kmlzs766g3q8"))))
+ (build-system gnu-build-system)
+ (inputs `(("gfortran" ,gfortran)))
+ (native-inputs `(("gawk" ,gawk) ;for tests
+ ("which" ,which)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'licence
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((doc (string-append (assoc-ref outputs "out")
+ "/share/doc/opari2")))
+ (install-file "COPYING" doc)
+ #t))))))
+ (home-page "http://www.vi-hps.org/projects/score-p")
+ (synopsis "OpenMP runtime performance measurement instrumenter")
+ (description "OPARI2 is a source-to-source instrumentation tool for OpenMP
+and hybrid codes. It surrounds OpenMP directives and runtime library calls
+with calls to the POMP2 measurement interface.")
+ (license license:bsd-3)))
+
+(define-public cube
+ (package
+ (name "cube")
+ (version "4.3.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://apps.fz-juelich.de/scalasca/releases/cube/4.3/dist/cube-"
+ version ".tar.gz"))
+ (sha256 (base32 "04irflia4rfw02093w9nx7rr98r640y4q8hisjywvd4b7r3nzhhx"))
+ (patches (search-patches "cube-nocheck.patch"))))
+ (inputs `(("dbus" ,dbus)
+ ("zlib" ,zlib)))
+ (native-inputs `(("perl" ,perl)
+ ("qtbase" ,qtbase) ; native because of qmake
+ ("which" ,which)))
+
+ ;; FIXME: The doc is 14MB, but adding a doc output results in a cycle.
+ (outputs '("out" ;"doc"
+ "lib"))
+
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ `("--enable-shared" "--disable-static" "--disable-silent-rules"
+ ,(string-append "LDFLAGS=-L" (assoc-ref %outputs "lib") "/lib"))
+ #:parallel-tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'configure 'rpath
+ ;; Account for moving GUI stuff
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((wl (string-append "-Wl,-rpath=" (assoc-ref outputs "out")
+ "/lib")))
+ (substitute* "build-backend/Makefile"
+ (("^cube_LDFLAGS =") (string-append "cube_LDFLAGS = " wl))
+ (("^libheatmap_plugin_la_LDFLAGS =")
+ (string-append "libheatmap_plugin_la_LDFLAGS = " wl))
+ (("^libbarplot_plugin_la_LDFLAGS =")
+ (string-append "libbarplot_plugin_la_LDFLAGS = " wl)))
+ #t)))
+ (add-before 'install 'includes-cube
+ ;; It tries to install here before include exists.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((inc (string-append (assoc-ref outputs "lib") "/include")))
+ (mkdir-p (string-append inc "/cube"))
+ (mkdir-p (string-append inc "/cubew"))
+ #t)))
+ (add-after 'install 'licence
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((doc (string-append (assoc-ref outputs "lib")
+ "/share/doc/cube")))
+ (install-file "COPYING" doc)
+ #t)))
+ ;; XXX: Commented due to cycle (see comment above.)
+ ;; (add-after 'install 'doc
+ ;; (lambda _
+ ;; (let ((share (string-append (assoc-ref %outputs "doc")
+ ;; "/share")))
+ ;; (mkdir-p share)
+ ;; (rename-file (string-append %output "/share/doc")
+ ;; (string-append share "/doc")))))
+ (add-after 'install 'gui-stuff
+ ;; Get the Qt horror dependencies out of the lib closure
+ (lambda _
+ (let ((outlib (string-append (assoc-ref %outputs "out") "/lib"))
+ (lib (string-append (assoc-ref %outputs "lib") "/lib")))
+ (mkdir-p outlib)
+ (rename-file (string-append lib "/cube-plugins")
+ (string-append outlib "/cube-plugins"))
+ (for-each (lambda (file)
+ (rename-file
+ file (string-append outlib "/" (basename file))))
+ (append (find-files lib "libgraphwidgetcommon-plugin\\..*")
+ (find-files lib "libcube4gui\\.so.*")))
+ #t)))
+ (add-after 'install 'move-include
+ ;; Most of the headers end up under %output for some reason,
+ ;; despite --includedir in configure.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((outinc (string-append (assoc-ref outputs "out")
+ "/include"))
+ (libinc (string-append (assoc-ref outputs "lib")
+ "/include")))
+ (for-each (lambda (file)
+ (let ((from (string-append outinc "/" file)))
+ (copy-recursively from libinc)
+ (delete-file-recursively from)))
+ '("cube" "cubew"))
+ #t)))
+
+ ;; XXX: This doesn't work because cube-config, which is needed for
+ ;; building stuff, sources cube-config-frontend. We don't want that
+ ;; in the lib output because it pulls in >1GB via QT.
+ ;;
+ ;; (add-after 'install 'cube-config
+ ;; (lambda _
+ ;; (let* ((lib (assoc-ref %outputs "lib"))
+ ;; (libbin (string-append lib "/bin")))
+ ;; (mkdir-p libbin)
+ ;; (system (string-append "mv " (assoc-ref %outputs "out")
+ ;; "/bin/cube-config* " libbin))
+ ;; (substitute* (list (string-append libbin "/cube-config"))
+ ;; (("^prefix=.*") (string-append "prefix=" lib))
+ ;; (("^exec_prefix=\"\\$\\{prefix\\}\"")
+ ;; (string-append "exec_prefix=" lib))))))
+ (add-after 'install 'cube-config
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((lib (assoc-ref outputs "lib"))
+ (libbin (string-append lib "/bin")))
+ (mkdir-p libbin)
+ (install-file (string-append %output "/bin/cube-config") libbin)
+ (install-file (string-append %output "/bin/cube-config-backend")
+ libbin)
+ (substitute* (list (string-append libbin "/cube-config"))
+ (("^source .*frontend.*$") "")
+ (((assoc-ref outputs "out")) lib))
+ #t))))))
+ (home-page "http://www.scalasca.org/software/cube-4.x/download.html")
+ (synopsis "Performance report explorer for parallel programs")
+ (description
+ "CUBE (CUBE Uniform Behavioral Encoding) is a tool to display a variety
+of performance metrics for parallel programs including MPI and OpenMP
+applications. CUBE allows interactive exploration of a multidimensional
+performance space in a scalable fashion. Scalability is achieved in two ways:
+hierarchical decomposition of individual dimensions and aggregation across
+different dimensions. All performance metrics are uniformly accommodated in
+the same display and thus provide the ability to easily compare the effects of
+different kinds of performance behavior.")
+ (license license:bsd-3)))
+
+(define (make-scorep mpi)
+ (package
+ (name (string-append "scorep-" (package-name mpi)))
+ (version "3.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.vi-hps.org/upload/packages/scorep/scorep-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0h45357djna4dn9jyxx0n36fhhms3jrf22988m9agz1aw2jfivs9"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Remove bundled software.
+ '(for-each delete-file-recursively
+ '("vendor/opari2" "vendor/cube")))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("mpi" ,mpi)
+ ("papi" ,papi)
+ ("opari2" ,opari2)
+ ("libunwind" ,libunwind)
+ ("otf2" ,otf2)
+ ("cubelib" ,cube "lib") ;for lib, include
+ ("openmpi" ,openmpi)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("gfortran" ,gfortran)
+ ("flex" ,flex)
+ ("cube" ,cube) ;for cube-config
+ ("bison" ,bison)
+ ("python" ,python)
+ ("doxygen" ,doxygen)
+ ("which" ,which)))
+ (arguments
+ `(#:configure-flags
+ (list "--enable-shared" "--disable-static"
+ (string-append "--with-opari2="
+ (assoc-ref %build-inputs "opari2"))
+ (string-append "--with-cube="
+ (assoc-ref %build-inputs "cube")))
+ #:parallel-tests? #f
+ #:make-flags '("V=1")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'licence
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((doc (string-append (assoc-ref outputs "out")
+ "/share/doc/scorep")))
+ (install-file "COPYING" doc)
+ #t))))))
+ (home-page "http://www.vi-hps.org/projects/score-p/")
+ (synopsis "Performance measurement infrastructure for parallel code")
+ (description
+ "The Score-P (Scalable Performance Measurement Infrastructure for
+Parallel Codes) measurement infrastructure is a scalable and easy-to-use tool
+suite for profiling, event trace recording, and online analysis of
+high-performance computing (HPC) applications.")
+ (license license:cpl1.0)))
+
+(define-public scorep-openmpi (make-scorep openmpi))
diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm
index c280c58e1a..21753cf3fa 100644
--- a/gnu/packages/pulseaudio.scm
+++ b/gnu/packages/pulseaudio.scm
@@ -27,6 +27,7 @@
#:use-module (guix download)
#:use-module ((guix licenses) #:prefix l:)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
@@ -259,3 +260,33 @@ easily control the volume of all clients, sinks, etc.")
command-line interface. In addition, it is possible to use named sources and
sinks.")
(license l:expat)))
+
+(define-public pulsemixer
+ (package
+ (name "pulsemixer")
+ (version "1.3.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/GeorgeFilipkin/"
+ "pulsemixer/archive/" version ".tar.gz"))
+ (sha256
+ (base32
+ "03c94313fhxd5sbkl2ajzb2gmmm4hpv7m5rkbxmahwg9s8ih824r"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((pulse (assoc-ref inputs "pulseaudio")))
+ (substitute* "pulsemixer"
+ (("libpulse.so.0")
+ (string-append pulse "/lib/libpulse.so.0")))
+ #t))))))
+ (inputs
+ `(("pulseaudio" ,pulseaudio)))
+ (home-page "https://github.com/GeorgeFilipkin/pulsemixer/")
+ (synopsis "Command-line and curses mixer for PulseAudio")
+ (description "Pulsemixer is a PulseAudio mixer with command-line and
+curses-style interfaces.")
+ (license l:expat)))
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index bbb855b055..b13880e50e 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -3717,22 +3717,21 @@ between language specification and implementation aspects.")
(define-public python-numpy
(package
(name "python-numpy")
- (version "1.12.0")
+ (version "1.13.1")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://github.com/numpy/numpy/archive/v" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (uri (pypi-uri "numpy" version ".zip"))
(sha256
(base32
- "025d4j4aakcp8w5i5diqh812cbbjgac7jszx1j56ivrbi1i8vv7d"))))
+ "1fsgkhh1vdkhmlz8vmdgxnj9n9yaanckxxzz9s0b4p08fqvjic69"))))
(build-system python-build-system)
(inputs
`(("openblas" ,openblas)
("lapack" ,lapack)))
(native-inputs
- `(("python-cython" ,python-cython)
+ `(("unzip" ,unzip)
+ ("python-cython" ,python-cython)
("python-nose" ,python-nose)
("gfortran" ,gfortran)))
(arguments
@@ -3758,6 +3757,11 @@ include_dirs = ~a/include
(assoc-ref inputs "openblas")
(assoc-ref inputs "lapack")
(assoc-ref inputs "lapack"))))
+ ;; Make /gnu/store/...-bash-.../bin/sh the default shell, instead of
+ ;; /bin/sh.
+ (substitute* "numpy/distutils/exec_command.py"
+ (("(os.environ.get\\('SHELL', ')(/bin/sh'\\))" match match-start match-end)
+ (string-append match-start (assoc-ref inputs "bash") match-end)))
;; Use "gcc" executable, not "cc".
(substitute* "numpy/distutils/system_info.py"
(("c = distutils\\.ccompiler\\.new_compiler\\(\\)")
@@ -4135,14 +4139,14 @@ that client code uses to construct the grammar directly in Python code.")
(define-public python-numexpr
(package
(name "python-numexpr")
- (version "2.6.1")
+ (version "2.6.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "numexpr" version))
(sha256
(base32
- "01lsja72m32z0i5p8rwxbfyzk4mplh72k2a140nwh8vv4wpyfbnv"))))
+ "1kpnbb5d5n927113zccfibn16z7gidjipyac6kbbhzs0lnizkgph"))))
(build-system python-build-system)
(arguments `(#:tests? #f)) ; no tests included
(propagated-inputs
@@ -4902,17 +4906,17 @@ SQLAlchemy Database Toolkit for Python.")
(define-public python-autopep8
(package
(name "python-autopep8")
- (version "1.2.4")
+ (version "1.3.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "autopep8" version))
(sha256
(base32
- "18parm383lfn42a00wklv3qf20p4v277f1x3cn58x019dqk1xqrq"))))
+ "1p9pa1ffg4iy96l918808jggg9a69iaka5awmj8xid36yc5mk0ky"))))
(build-system python-build-system)
(propagated-inputs
- `(("python-pep8" ,python-pep8)))
+ `(("python-pycodestyle" ,python-pycodestyle)))
(home-page "https://github.com/hhatto/autopep8")
(synopsis "Format Python code according to the PEP 8 style guide")
(description
@@ -5780,13 +5784,13 @@ tools for mocking system commands and recording calls to those.")
(define-public python-ipython
(package
(name "python-ipython")
- (version "5.2.2")
+ (version "5.3.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ipython" version ".tar.gz"))
(sha256
- (base32 "1qhjwa9cyz1np7rhv3p4ip13lkgbqsad62l24xkwiq1ic2gwiqbf"))))
+ (base32 "079wyjir4a9qx6kvx096b1asm63djbidk65z3ykcbnlngmg62pmz"))))
(build-system python-build-system)
(outputs '("out" "doc"))
(propagated-inputs
@@ -9238,16 +9242,13 @@ for atomic file system operations.")
(define-public python-requests-toolbelt
(package
(name "python-requests-toolbelt")
- (version "0.6.2")
+ (version "0.8.0")
(source (origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/"
- "e1/a4/a94c037bc72ad70441aff1403d3243510d2542ddca7759faaeffeb11aefe/"
- "requests-toolbelt-" version ".tar.gz"))
+ (uri (pypi-uri "requests-toolbelt" version))
(sha256
(base32
- "15q9nrgp85nqlr4kdz1zvj8z2npafi2sr12y7fqgxbkq28j1aci6"))))
+ "1dc7l42i4080r8i4m9fj51jx367lqkai170vrv7wd93gdj9k39gn"))))
(build-system python-build-system)
(native-inputs
`(("python-betamax" ,python-betamax)
@@ -9261,6 +9262,9 @@ with python-requests.")
(home-page "https://github.com/sigmavirus24/requests-toolbelt")
(license license:asl2.0)))
+(define-public python2-requests-toolbelt
+ (package-with-python2 python-requests-toolbelt))
+
(define-public python-click-threading
(package
(name "python-click-threading")
@@ -9835,10 +9839,11 @@ concurrent.futures package from Python 3.2")
("python-mock" ,python-mock)
("python-tornado" ,python-tornado)))
(propagated-inputs
- `(;; extra packages for https security
+ `(;; These 5 inputs are used to build urrlib3[secure]
("python-certifi" ,python-certifi)
- ("python-ndg-httpsclient" ,python-ndg-httpsclient)
- ("python-pyasn1" ,python-pyasn1)
+ ("python-cryptography" ,python-cryptography) ;
+ ("python-idna" ,python-idna)
+ ("python-ipaddress" ,python-ipaddress)
("python-pyopenssl" ,python-pyopenssl)))
(home-page "https://urllib3.readthedocs.org/")
(synopsis "HTTP library with thread-safe connection pooling")
@@ -9921,14 +9926,14 @@ Pytest but stripped of Pytest specific details.")
(define-public python-tox
(package
(name "python-tox")
- (version "2.8.0")
+ (version "2.8.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "tox" version))
(sha256
(base32
- "00lrql2cfzhb712v70inac6mrgdv8s8fmvz7qpggkk623hkm2pgc"))))
+ "1drp6mwm8wdypjym15ia8lwjxbhcksb9vzxg4ay5dh4ji57by2ny"))))
(build-system python-build-system)
(arguments
;; FIXME: Tests require pytest-timeout, which itself requires
@@ -10015,14 +10020,14 @@ interface to the Amazon Web Services (AWS) API.")
(define-public awscli
(package
(name "awscli")
- (version "1.11.151")
+ (version "1.11.164")
(source
(origin
(method url-fetch)
(uri (pypi-uri name version))
(sha256
(base32
- "0h6rirbfy0f9cxm7ikll0kr720dircfmxf2vslmhn4n325831wsp"))))
+ "05r8cw7i7ff6barpmyxxk3i52gzb1xyxwj8isynmiyqlmk3c9r8w"))))
(build-system python-build-system)
(propagated-inputs
`(("python-colorama" ,python-colorama)
@@ -16297,3 +16302,140 @@ Templates.")
(define-public python2-uritemplate
(package-with-python2 python-uritemplate))
+
+(define-public python-pydiff
+ (package
+ (name "python-pydiff")
+ (version "0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pydiff" version))
+ (sha256
+ (base32
+ "1als83h9w0gab24ipyna6khm390qmpnpkc5jksmdbs2xc8hp2z44"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/myint/pydiff")
+ (synopsis "Library to diff two Python files at the bytecode level")
+ (description
+ "@code{pydiff} makes it easy to look for actual code changes while
+ignoring formatting changes.")
+ (license license:expat)))
+
+(define-public python2-pydiff
+ (package-with-python2 python-pydiff))
+
+(define-public python-nose-timer
+ (package
+ (name "python-nose-timer")
+ (version "0.7.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "nose-timer" version))
+ (patches
+ (search-patches
+ ;; This patch will not be needed in the next version.
+ ;; It is taken from the master branch.
+ "python-nose-timer-drop-ordereddict.patch"))
+ (sha256
+ (base32
+ "1s32ymsnby8lz2qk55ifj9zi50dqcg6swnj5cz2rmwxg2jsslsxp"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-nose" ,python-nose)
+ ("python-termcolor" ,python-termcolor)))
+ (home-page "https://github.com/mahmoudimus/nose-timer")
+ (synopsis "Timer plugin for nosetests")
+ (description "Shows how much time was needed to run individual tests.")
+ (license license:expat)))
+
+(define-public python2-nose-timer
+ (package-with-python2 python-nose-timer))
+
+(define-public python-tqdm
+ (package
+ (name "python-tqdm")
+ (version "4.15.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tqdm" version))
+ (sha256
+ (base32
+ "0lwrmby8qz23gvqwkpivfrv4q8nfh90cz9ml6slwvwmcxxsdrhbf"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-flake8" ,python-flake8)
+ ("python-nose" ,python-nose)
+ ("python-nose-timer" ,python-nose-timer)
+ ("python-coverage" ,python-coverage)
+ ("python-virtualenv" ,python-virtualenv)))
+ (home-page "https://github.com/tqdm/tqdm")
+ (synopsis "Fast, extensible progress meter")
+ (description
+ "Make loops show a progress bar on the console by just wrapping any
+iterable with @code{|tqdm(iterable)|}. Offers many options to define
+design and layout.")
+ (license (list license:mpl2.0 license:expat))))
+
+(define-public python2-tqdm
+ (package-with-python2 python-tqdm))
+
+(define-public python-pkginfo
+ (package
+ (name "python-pkginfo")
+ (version "1.4.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pkginfo" version))
+ (sha256
+ (base32
+ "17pqjfpq3c6xzdmk8pski6jcjgjv78q00zjf2bgzb668pzm6l6mv"))))
+ (build-system python-build-system)
+ (arguments
+ ;; The tests are broken upstream.
+ '(#:tests? #f))
+ (home-page
+ "https://code.launchpad.net/~tseaver/pkginfo/trunk")
+ (synopsis
+ "Query metadatdata from sdists, bdists, and installed packages")
+ (description
+ "API to query the distutils metadata written in @file{PKG-INFO} inside a
+source distriubtion (an sdist) or a binary distribution (e.g., created by
+running bdist_egg). It can also query the EGG-INFO directory of an installed
+distribution, and the *.egg-info stored in a \"development checkout\" (e.g,
+created by running @code{python setup.py develop}).")
+ (license license:expat)))
+
+(define-public python2-pkginfo
+ (package-with-python2 python-pkginfo))
+
+(define-public python-twine
+ (package
+ (name "python-twine")
+ (version "1.9.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "twine" version))
+ (sha256
+ (base32
+ "1ay1b6kdq6k4bfbjsvf6ymj41wrgpvinhxndb09355pwhxwmp96a"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-tqdm" ,python-tqdm)
+ ("python-pkginfo", python-pkginfo)
+ ("python-requests" ,python-requests)
+ ("python-requests-toolbelt" ,python-requests-toolbelt)))
+ (home-page "https://github.com/pypa/twine")
+ (synopsis "Collection of utilities for interacting with PyPI")
+ (description
+ "@code{twine} currently supports registering projects and uploading
+distributions. It authenticates the user over HTTPS, allows them to pre-sign
+their files and supports any packaging format (including wheels).")
+ (license license:asl2.0)))
+
+(define-public python2-twine
+ (package-with-python2 python-twine))
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 3e3588a505..bc275ebb09 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -46,6 +46,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages gperf)
+ #:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
@@ -776,7 +777,15 @@ developers using C++ or QML, a CSS & JavaScript like language.")
(("spectrum") "#"))))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
- ((#:tests? _ #f) #f))) ; TODO: Enable the tests
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (zero? (system* "qmake" "QT_BUILD_PARTS = libs tools tests"
+ (string-append "QMAKE_LFLAGS_RPATH=-Wl,-rpath," out "/lib -Wl,-rpath,")
+ (string-append "PREFIX=" out))))))))
+ ((#:tests? _ #f) #f))) ; TODO: Enable the tests
(native-inputs
`(("perl" ,perl)
("pkg-config" ,pkg-config)
@@ -786,7 +795,10 @@ developers using C++ or QML, a CSS & JavaScript like language.")
`(("alsa-lib" ,alsa-lib)
("mesa" ,mesa)
("pulseaudio" ,pulseaudio)
- ("qtbase" ,qtbase)))))
+ ("qtbase" ,qtbase)
+ ;; Gstreamer is needed for the mediaplayer plugin
+ ("gstreamer" ,gstreamer)
+ ("gst-plugins-base" ,gst-plugins-base)))))
(define-public qtwayland
(package (inherit qtsvg)
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index ab8e572175..83a8901b7a 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -200,6 +200,32 @@ a focus on simplicity and productivity.")
(string-append "/lib/ruby/gems/" (version-major+minor ruby-version)
".0/gems"))
+(define-public ruby-highline
+ (package
+ (name "ruby-highline")
+ (version "1.7.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "highline" version))
+ (sha256
+ (base32
+ "1nf5lgdn6ni2lpfdn4gk3gi47fmnca2bdirabbjbz1fk9w4p8lkr"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:tests? #f)) ;; TODO: NameError: uninitialized constant SPEC
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-code-statistics" ,ruby-code-statistics)))
+ (synopsis
+ "HighLine helps you build command-line interfaces")
+ (description
+ "HighLine provides a high-level IO library that provides validation,
+type conversion, and more for command-line interfaces. HighLine also includes
+a menu system for providing multiple options to the user.")
+ (home-page "https://github.com/JEG2/highline")
+ (license (list license:gpl2 license:ruby))))
+
(define-public ruby-hoe
(package
(name "ruby-hoe")
@@ -644,6 +670,34 @@ complexity.")
(home-page "https://github.com/ThoughtWorksStudios/saikuro_treemap")
(license license:expat)))
+(define-public ruby-options
+ (package
+ (name "ruby-options")
+ (version "2.3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "options" version))
+ (sha256
+ (base32
+ "1s650nwnabx66w584m1cyw82icyym6hv5kzfsbp38cinkr5klh9j"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f ;; TODO: NameError: uninitialized constant Config
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'set-LIB
+ (lambda _
+ ;; This is used in the Rakefile, and setting it avoids an issue
+ ;; with running the tests.
+ (setenv "LIB" "options"))))))
+ (synopsis "Ruby library to parse options from *args cleanly")
+ (description
+ "The @code{options} library helps with parsing keyword options in Ruby
+functions.")
+ (home-page "https://github.com/ahoward/options")
+ (license license:ruby)))
+
(define-public ruby-orderedhash
(package
(name "ruby-orderedhash")
@@ -931,6 +985,41 @@ Ruby Gems.")
(home-page "https://github.com/postmodern/rubygems-tasks")
(license license:expat)))
+(define-public ruby-rubyzip
+ (package
+ (name "ruby-rubyzip")
+ (version "1.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rubyzip" version))
+ (sha256
+ (base32
+ "06js4gznzgh8ac2ldvmjcmg9v1vg9llm357yckkpylaj6z456zqz"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'patch-tests
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "test/gentestfiles.rb"
+ (("/usr/bin/zip")
+ (string-append
+ (assoc-ref inputs "zip") "/bin/zip")))
+ (substitute* "test/input_stream_test.rb"
+ (("/usr/bin/env ruby") (which "ruby")))
+ #t)))))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-simplecov" ,ruby-simplecov)
+ ("zip" ,zip)
+ ("unzip" ,unzip)))
+ (synopsis "Ruby module is for reading and writing zip files")
+ (description
+ "The rubyzip module provides ways to read from and create zip files.")
+ (home-page "http://github.com/rubyzip/rubyzip")
+ (license license:bsd-2)))
+
(define-public ruby-ffi
(package
(name "ruby-ffi")
@@ -1849,6 +1938,28 @@ net/http library.")
(home-page "https://github.com/nicksieger/multipart-post")
(license license:expat)))
+(define-public ruby-multi-json
+ (package
+ (name "ruby-multi-json")
+ (version "1.12.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "multi_json" version))
+ (sha256
+ (base32
+ "1raim9ddjh672m32psaa9niw67ywzjbxbdb8iijx3wv9k5b0pk2x"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:tests? #f)) ;; No testsuite included in the gem.
+ (synopsis "Common interface to multiple JSON libraries for Ruby")
+ (description
+ "This package provides a common interface to multiple JSON libraries,
+including Oj, Yajl, the JSON gem (with C-extensions), the pure-Ruby JSON gem,
+NSJSONSerialization, gson.rb, JrJackson, and OkJson.")
+ (home-page "http://github.com/intridea/multi_json")
+ (license license:expat)))
+
(define-public ruby-arel
(package
(name "ruby-arel")
@@ -1980,17 +2091,19 @@ both CSS3 selector and XPath 1.0 support.")
(define-public ruby-method-source
(package
(name "ruby-method-source")
- (version "0.8.2")
+ (version "0.9.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "method_source" version))
(sha256
(base32
- "1g5i4w0dmlhzd18dijlqw5gk27bv6dj2kziqzrzb7mpgxgsd1sf2"))))
+ "0xqj21j3vfq4ldia6i2akhn2qd84m0iqcnsl49kfpq3xk6x0dzgn"))))
(build-system ruby-build-system)
+ (arguments
+ `(#:test-target "spec"))
(native-inputs
- `(("ruby-bacon" ,ruby-bacon)
+ `(("ruby-rspec" ,ruby-rspec)
("git" ,git)))
(synopsis "Retrieve the source code for Ruby methods")
(description "Method_source retrieves the source code for Ruby methods.
@@ -2019,24 +2132,54 @@ for select languages.")
(home-page "http://coderay.rubychan.de")
(license license:expat)))
+(define-public ruby-progress_bar
+ (package
+ (name "ruby-progress_bar")
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "progress_bar" version))
+ (sha256
+ (base32
+ "1qc40mr6p1z9a3vlpnsg1zfgk1qswviql2a31y63wpv3vr6b5f48"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(#:test-target "spec"))
+ (propagated-inputs
+ `(("ruby-highline" ,ruby-highline)
+ ("ruby-options" ,ruby-options)))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rspec" ,ruby-rspec)
+ ("ruby-timecop" ,ruby-timecop)))
+ (synopsis
+ "Ruby library for displaying progress bars")
+ (description
+ "ProgressBar is a simple library for displaying progress bars. The
+maximum value is configurable, and additional information can be displayed
+like the percentage completion, estimated time remaining, elapsed time and
+rate.")
+ (home-page "https://github.com/paul/progress_bar")
+ (license license:wtfpl2)))
+
(define-public ruby-pry
(package
(name "ruby-pry")
- (version "0.10.4")
+ (version "0.11.1")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "pry" version))
(sha256
(base32
- "05xbzyin63aj2prrv8fbq2d5df2mid93m81hz5bvf2v4hnzs42ar"))))
+ "0ci461a55sn50rlrmcl97ycf79681glp443a2gzp23rnm7y70fkj"))))
(build-system ruby-build-system)
(arguments
'(#:tests? #f)) ; no tests
(propagated-inputs
`(("ruby-coderay" ,ruby-coderay)
- ("ruby-method-source" ,ruby-method-source)
- ("ruby-slop" ,ruby-slop-3)))
+ ("ruby-method-source" ,ruby-method-source)))
(synopsis "Ruby REPL")
(description "Pry is an IRB alternative and runtime developer console for
Ruby. It features syntax highlighting, a plugin architecture, runtime
@@ -3563,6 +3706,57 @@ It has built-in support for the legacy @code{cookies.txt} and
(home-page "https://github.com/sparklemotion/http-cookie")
(license license:expat)))
+(define-public ruby-httpclient
+ (package
+ (name "ruby-httpclient")
+ (version "2.8.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "httpclient" version))
+ (sha256
+ (base32
+ "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(;; TODO: Some tests currently fail
+ ;; ------
+ ;; 211 tests, 729 assertions, 13 failures, 4 errors, 0 pendings,
+ ;; 2 omissions, 0 notifications
+ ;; 91.866% passed
+ ;; ------
+ ;; 6.49 tests/s, 22.41 assertions/s
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (if tests?
+ (zero?
+ (system* "ruby"
+ "-Ilib"
+ "test/runner.rb"))
+ #t)))
+ (add-after 'install 'wrap-bin-httpclient
+ (lambda* (#:key outputs #:allow-other-keys)
+ (wrap-program (string-append (assoc-ref outputs "out")
+ "/bin/httpclient")
+ `("GEM_HOME" ":" prefix (,(getenv "GEM_HOME"))))
+ #t)))))
+ (native-inputs
+ `(("ruby-rack" ,ruby-rack)))
+ (synopsis
+ "Make HTTP requests with support for HTTPS, Cookies, authentication and more")
+ (description
+ "The @code{httpclient} ruby library provides functionality related to
+HTTP. Compared to the @code{net/http} library, @{httpclient} also provides
+Cookie, multithreading and authentication (digest, NTLM) support.
+
+Also provided is a @command{httpclient} command, which can perform HTTP
+requests either using arguments or with an interactive prompt.")
+ (home-page "https://github.com/nahi/httpclient")
+ (license license:ruby)))
+
(define-public ruby-ansi
(package
(name "ruby-ansi")
@@ -4257,3 +4451,24 @@ really opens up the email messages you are parsing, if you know what you
are doing, you can fiddle with every last bit of your email directly.")
(home-page "https://github.com/mikel/mail")
(license license:expat)))
+
+(define-public ruby-code-statistics
+ (package
+ (name "ruby-code-statistics")
+ (version "0.2.13")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "code_statistics" version))
+ (sha256
+ (base32
+ "07rdpsbwbmh4vp8nxyh308cj7am2pbrfhv9v5xr2d5gq8hnnsm93"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:tests? #f)) ; Not all test code is included in gem.
+ (synopsis "Port of the rails 'rake stats' method")
+ (description
+ "This gem is a port of the rails 'rake stats' method so it can be made
+more robust and work for non rails projects.")
+ (home-page "http://github.com/danmayer/code_statistics")
+ (license license:expat)))
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 55689a6c6d..1dac85d74a 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -128,14 +128,14 @@ a server that supports the SSH-2 protocol.")
(define-public openssh
(package
(name "openssh")
- (version "7.5p1")
+ (version "7.6p1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://openbsd/OpenSSH/portable/"
name "-" version ".tar.gz"))
(sha256
(base32
- "1w7rb5gbrikxdkp8w7zxnci4549gk4bw1lml01s59w5rzb2y6ilq"))))
+ "08qpsb8mrzcx8wgvz9insiyvq7sbg26yj5nvl2m5n57yvppcl8x3"))))
(build-system gnu-build-system)
(native-inputs `(("groff" ,groff)))
(inputs `(("openssl" ,openssl)
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index a00dddc728..f0ad6cffb7 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -106,7 +106,7 @@ be output in text, PostScript, PDF or HTML.")
(define-public r-minimal
(package
(name "r-minimal")
- (version "3.4.1")
+ (version "3.4.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cran/src/base/R-"
@@ -114,7 +114,7 @@ be output in text, PostScript, PDF or HTML.")
version ".tar.gz"))
(sha256
(base32
- "0y7wlfk3cn1dxn2mpnxwvsk31s0599crbsyah8srm5pa2mfi7c82"))))
+ "0r0cv2kc3x5z9xycpnxx6fbvv22psw2m342jhpslbxkc8g1307lp"))))
(build-system gnu-build-system)
(arguments
`(#:disallowed-references (,tzdata-2017a)
@@ -1993,14 +1993,14 @@ limited to R.")
(define-public r-backports
(package
(name "r-backports")
- (version "1.1.0")
+ (version "1.1.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "backports" version))
(sha256
(base32
- "1kcz6j82by28cjk5wi2j6dfqdin1kib4y7d2r4h3zabcxmk6jly5"))))
+ "15w8psmv203wzijrk4hvwaw3i4byh2m5s09yrkqwhfckhaj82kj9"))))
(build-system r-build-system)
(home-page "http://cran.r-project.org/web/packages/backports")
(synopsis "Reimplementations of functions introduced since R 3.0.0")
@@ -2016,14 +2016,14 @@ R version.")
(define-public r-checkmate
(package
(name "r-checkmate")
- (version "1.8.3")
+ (version "1.8.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "checkmate" version))
(sha256
(base32
- "04rxabzamhv6ybynx627sxk02qvq8znkv0y10vmq67xx6pxhqvla"))))
+ "1xpq73myr39i33mwihvy494sam77hb3z15yr172a31d8wn1qi53g"))))
(build-system r-build-system)
(propagated-inputs
`(("r-backports" ,r-backports)))
@@ -2966,14 +2966,14 @@ parallel.")
(define-public r-doparallel
(package
(name "r-doparallel")
- (version "1.0.10")
+ (version "1.0.11")
(source
(origin
(method url-fetch)
(uri (cran-uri "doParallel" version))
(sha256
(base32
- "1mddx25l25pw9d0csnx2q203dbg5hbrhkr1f08kw0p02a1lln0kh"))))
+ "0sppgxk3d8mfsrb3cjdyn0mv0s4i7pcy8g8c3cjzbr6k8vmx5jsc"))))
(properties `((upstream-name . "doParallel")))
(build-system r-build-system)
(propagated-inputs
@@ -5061,14 +5061,14 @@ algorithms.")
(define-public r-lme4
(package
(name "r-lme4")
- (version "1.1-13")
+ (version "1.1-14")
(source
(origin
(method url-fetch)
(uri (cran-uri "lme4" version))
(sha256
(base32
- "13j4a721rx0272pdxrz6nabjv56xb6srklq5w4z1abc82lyvda2z"))))
+ "1vars93604q7kyz6y1f8f886l05jkgj8bs78033l2czypvzki5la"))))
(build-system r-build-system)
(native-inputs
`(("r-rcpp" ,r-rcpp)
diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm
index 4dca0b0c39..8439841b43 100644
--- a/gnu/packages/tcl.scm
+++ b/gnu/packages/tcl.scm
@@ -308,9 +308,10 @@ modules for Tk, all written in high-level Tcl. Examples of provided widgets:
(build-system gnu-build-system)
(native-inputs
`(("tcl" ,tcl)
- ("tcllib" ,tcllib)
("libxml2" ,libxml2)
("libxslt" ,libxslt)))
+ (propagated-inputs
+ `(("tcllib" ,tcllib))) ; uri
(native-search-paths
(list (search-path-specification
(variable "TCLLIBPATH")
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index a9682b685c..2fa5f7e4cd 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Mckinley Olsen <mck.olsen@gmail.com>
;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 David Craven <david@craven.ch>
@@ -28,6 +28,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build utils)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system python)
#:use-module (guix download)
#:use-module (guix git-download)
@@ -63,7 +64,7 @@
(sha256
(base32
"1cc4qbg1m3i04lj5p6i6xbd0zvy1320pxdgmjhz5p3j95ibsbfki"))))
- (build-system gnu-build-system)
+ (build-system glib-or-gtk-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(add-before 'patch-source-shebangs 'autogen
@@ -77,9 +78,7 @@
("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config)))
(inputs
- `(("glib" ,glib "bin")
- ("gtk+" ,gtk+)
- ("libconfuse" ,libconfuse)
+ `(("libconfuse" ,libconfuse)
("vte" ,vte)))
(synopsis "GTK+-based drop-down terminal")
(description "Tilda is a terminal emulator similar to normal terminals like
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 3251c102b0..bb005f3682 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -6,7 +6,7 @@
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
+;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
@@ -37,6 +37,7 @@
#:use-module (guix build-system cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages)
+ #:use-module (gnu packages dns)
#:use-module (gnu packages guile)
#:use-module (gnu packages libbsd)
#:use-module (gnu packages libffi)
@@ -112,7 +113,7 @@ in intelligent transportation networks.")
(define-public p11-kit
(package
(name "p11-kit")
- (version "0.23.8")
+ (version "0.23.9")
(source
(origin
(method url-fetch)
@@ -120,7 +121,7 @@ in intelligent transportation networks.")
"download/" version "/p11-kit-" version ".tar.gz"))
(sha256
(base32
- "0gqk1d09yyin75lvlywpbf3kxlnrcwbq8ridgapvqqjbzvjk98ab"))))
+ "0qyvnkb5hfi94wv3bn67y20hcbbvynvjwxpk7k9sh1si6ff69hg1"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -229,6 +230,17 @@ required structures.")
(inputs `(("guile" ,guile-2.0)
,@(alist-delete "guile" (package-inputs gnutls))))))
+(define-public gnutls/dane
+ ;; GnuTLS with build libgnutls-dane, implementing DNS-based
+ ;; Authentication of Named Entities. This is required for GNS functionality
+ ;; by GNUnet and gnURL. This is done in an extra package definition
+ ;; to have the choice between GnuTLS with Dane and without Dane.
+ (package
+ (inherit gnutls)
+ (name "gnutls-dane")
+ (inputs `(("unbound" ,unbound)
+ ,@(package-inputs gnutls)))))
+
(define-public openssl
(package
(name "openssl")
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index fee9753673..1dc3e37c39 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -44,14 +44,14 @@
(define-public tor
(package
(name "tor")
- (version "0.3.0.11")
+ (version "0.3.1.7")
(source (origin
(method url-fetch)
(uri (string-append "https://dist.torproject.org/tor-"
version ".tar.gz"))
(sha256
(base32
- "1hjhxkkrx04ydiddhwb3z2xb0vkcwmn1x8jsdcp6kd6i1qa0fp1a"))))
+ "13y0v4zfla0vziy9kkahmhrwylv32ianjikcr46mwbxvji4dvx8x"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list "--enable-gcc-hardening"
diff --git a/gnu/packages/uml.scm b/gnu/packages/uml.scm
index 8f6e1d8a5e..d598ac04c7 100644
--- a/gnu/packages/uml.scm
+++ b/gnu/packages/uml.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016 Theodoros Foradis <theodoros.for@openmailbox.org>
+;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
;;;
;;; This file is part of GNU Guix.
;;;
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 07c9133105..981ebf5636 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1115,7 +1115,7 @@ access to mpv's powerful playback capabilities.")
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2017.09.24")
+ (version "2017.10.01")
(source (origin
(method url-fetch)
(uri (string-append "https://yt-dl.org/downloads/"
@@ -1123,7 +1123,7 @@ access to mpv's powerful playback capabilities.")
version ".tar.gz"))
(sha256
(base32
- "0j2m75j0d1n83i7jzpkcj7ir0bkskj024j9b0yi88zipcg740wbx"))))
+ "047zinsczn6c96fzkarlb29y7sjwyh84nxlpfpa6mi4rn090wkqb"))))
(build-system python-build-system)
(arguments
;; The problem here is that the directory for the man page and completion
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 344ffc786b..a8e54d6840 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -72,16 +72,14 @@
(define-public qemu
(package
(name "qemu")
- (version "2.10.0")
+ (version "2.10.1")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qemu.org/qemu-"
version ".tar.xz"))
- (patches (search-patches "qemu-CVE-2017-13711.patch"
- "qemu-CVE-2017-14167.patch"))
(sha256
(base32
- "0dgk7zcni41nf1jp84y0m6dk2nb4frnh571m8hkiv0m4hz4imn2m"))))
+ "1ahwl7r18iw2ds0q3c51nlivqsan9hcgnc8bbf9pv366iy81mm8x"))))
(build-system gnu-build-system)
(arguments
'(;; Running tests in parallel can occasionally lead to failures, like:
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 61ebf0d5fa..40ee9d139c 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -153,7 +153,7 @@ and probably others.")
(define-public openvpn
(package
(name "openvpn")
- (version "2.4.3")
+ (version "2.4.4")
(source (origin
(method url-fetch)
(uri (string-append
@@ -161,14 +161,15 @@ and probably others.")
version ".tar.xz"))
(sha256
(base32
- "1yrnvvnap2ghqas10l8jfg3njx57b8swh3n9wyp556qqgz4mzq8m"))))
+ "102an395nv8l7qfx3syydzhmd9xfbycd6gvwy0h2kjz8w67ipkcn"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--enable-iproute2=yes")))
(native-inputs
`(("iproute2" ,iproute)))
(inputs
- `(("lzo" ,lzo)
+ `(("lz4" ,lz4)
+ ("lzo" ,lzo)
("openssl" ,openssl)
("linux-pam" ,linux-pam)))
(home-page "https://openvpn.net/")
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index c008d8f323..994cab7bf7 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -13,7 +13,7 @@
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2016, 2017 ng0 <ng0@no-reply.pragmatique.xyz>
+;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
@@ -5235,3 +5235,35 @@ file links.")
;; https://github.com/wummel/linkchecker/issues/729
l:isc ; third_party/dnspython
l:asl2.0)))) ; third_party/miniboa
+
+(define-public cadaver
+ (package
+ (name "cadaver")
+ (version "0.23.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.webdav.org/cadaver/"
+ name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1jizq69ifrjbjvz5y79wh1ny94gsdby4gdxwjad4bfih6a5fck7x"))))
+ (build-system gnu-build-system)
+ ;; TODO: Unbundle libneon and make build succeed with new neon.
+ (arguments
+ `(#:configure-flags (list "--with-ssl=openssl")
+ #:tests? #f)) ;No tests included
+ (native-inputs
+ `(("gettext" ,gnu-gettext)
+ ("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (inputs
+ `(("expat" ,expat)
+ ("openssl" ,openssl)))
+ (home-page "http://www.webdav.org/cadaver")
+ (synopsis "Command-line WebDAV client")
+ (description
+ "Cadaver is a command-line WebDAV client for Unix. It supports
+file upload, download, on-screen display, namespace operations (move/copy),
+collection creation and deletion, and locking operations.")
+ (license l:gpl2)))
diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm
index 30a963728a..4804e345c2 100644
--- a/gnu/packages/wxwidgets.scm
+++ b/gnu/packages/wxwidgets.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2016 Theodoros Foradis <theodoros.for@openmailbox.org>
+;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 5cf7596c00..ed682263c4 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -573,6 +573,41 @@ xedit, for example. The human factors crowd would agree it should make
things less distracting.")
(license license:public-domain)))
+(define-public xautomation
+ (package
+ (name "xautomation")
+ (version "1.09")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.hoopajoo.net/static/projects/"
+ "xautomation-" version ".tar.gz"))
+
+ (sha256
+ (base32
+ "03azv5wpg65h40ip2kk1kdh58vix4vy1r9bihgsq59jx2rhjr3zf"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libpng" ,libpng)
+ ("libx11" ,libx11)
+ ("libxi" ,libxi)
+ ("libxtst" ,libxtst)))
+ (native-inputs
+ `(("inputproto" ,inputproto)
+ ("xextproto" ,xextproto)
+ ("xproto" ,xproto)))
+ (synopsis "Tools to automate tasks in X such as detecting on screen images")
+ (description
+ "Xautomation can control X from the command line for scripts, and
+do visual scraping to find things on the screen. The control interface
+allows mouse movement, clicking, button up/down, key up/down, etc, and
+uses the XTest extension so you don't have the annoying problems that
+xse has when apps ignore sent events. The visgrep program can find
+images inside of images and reports the coordinates, allowing progams
+to find buttons, etc, on the screen to click on.")
+ (home-page "https://www.hoopajoo.net/projects/xautomation.html")
+ (license license:gpl2+)))
+
(define-public xlockmore
(package
(name "xlockmore")
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 9255622ca2..3fd7de3442 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -5066,7 +5066,7 @@ over Xlib, including:
(define-public xorg-server
(package
(name "xorg-server")
- (version "1.19.3")
+ (version "1.19.4")
(source
(origin
(method url-fetch)
@@ -5075,9 +5075,9 @@ over Xlib, including:
name "-" version ".tar.bz2"))
(sha256
(base32
- "162s1v901djr57gxmmk4airk8hiwcz79dqyz72972x1lw1k82yk7"))
+ "1a690fzv5l5ks45g9zhlzdskdq8q73mcbpb9a3wz3shxm778lxda"))
(patches
- (cons
+ (list
;; See:
;; https://lists.fedoraproject.org/archives/list/devel@lists.
;; fedoraproject.org/message/JU655YB7AM4OOEQ4MOMCRHJTYJ76VFOK/
@@ -5089,9 +5089,7 @@ over Xlib, including:
(sha256
(base32
"0mm70y058r8s9y9jiv7q2myv0ycnaw3iqzm7d274410s0ik38w7q"))
- (file-name "xorg-server-use-intel-only-on-pre-gen4.diff"))
- (search-patches "xorg-server-CVE-2017-10971.patch"
- "xorg-server-CVE-2017-10972.patch")))))
+ (file-name "xorg-server-use-intel-only-on-pre-gen4.diff"))))))
(build-system gnu-build-system)
(propagated-inputs
`(("dri2proto" ,dri2proto)
diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm
index 107bc8e77a..e39f4411fd 100644
--- a/gnu/services/version-control.scm
+++ b/gnu/services/version-control.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@member.fsf.org>
+;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,18 +22,40 @@
#:use-module (gnu services)
#:use-module (gnu services base)
#:use-module (gnu services shepherd)
+ #:use-module (gnu services web)
#:use-module (gnu system shadow)
#:use-module (gnu packages version-control)
#:use-module (gnu packages admin)
#:use-module (guix records)
#:use-module (guix gexp)
+ #:use-module (guix store)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
#:export (git-daemon-service
git-daemon-service-type
git-daemon-configuration
- git-daemon-configuration?))
+ git-daemon-configuration?
+
+ <cgit-configuration-file>
+ cgit-configuration-file
+ cgit-configuration-file?
+ cgit-configuration-file-css
+ cgit-configuration-file-logo
+ cgit-configuration-file-robots
+ cgit-configuration-file-virtual-root
+ cgit-configuration-file-repository-directory
+
+ <cgit-configuration>
+ cgit-configuration
+ cgit-configuration?
+ cgit-configuration-config-file
+ cgit-configuration-package
+
+ %cgit-configuration-nginx
+ cgit-configuration-nginx-config
+
+ cgit-service-type))
;;; Commentary:
;;;
@@ -139,3 +162,97 @@ The optional @var{config} argument should be a
@code{<git-daemon-configuration>} object, by default it allows read-only
access to exported repositories under @file{/srv/git}."
(service git-daemon-service-type config))
+
+
+;;;
+;;; Cgit
+;;;
+
+(define-record-type* <cgit-configuration-file>
+ cgit-configuration-file
+ make-cgit-configuration-file
+ cgit-configuration-file?
+ (css cgit-configuration-file-css ; string
+ (default "/share/cgit/cgit.css"))
+ (logo cgit-configuration-file-logo ; string
+ (default "/share/cgit/cgit.png"))
+ (robots cgit-configuration-file-robots ; list
+ (default '("noindex" "nofollow")))
+ (virtual-root cgit-configuration-file-virtual-root ; string
+ (default "/"))
+ (repository-directory cgit-configuration-file-repository-directory ; string
+ (default "/srv/git")))
+
+(define (cgit-configuration-robots-string robots)
+ (string-join robots ", "))
+
+(define-gexp-compiler (cgit-configuration-file-compiler
+ (file <cgit-configuration-file>) system target)
+ (match file
+ (($ <cgit-configuration-file> css logo
+ robots virtual-root repository-directory)
+ (apply text-file* "cgitrc"
+ (letrec-syntax ((option (syntax-rules ()
+ ((_ key value)
+ (if value
+ `(,key "=" ,value "\n")
+ '()))))
+ (key/value (syntax-rules ()
+ ((_ (key value) rest ...)
+ (append (option key value)
+ (key/value rest ...)))
+ ((_)
+ '()))))
+ (key/value ("css" css)
+ ("logo" logo)
+ ("robots" (cgit-configuration-robots-string robots))
+ ("virtual-root" virtual-root)
+ ("scan-path" repository-directory)))))))
+
+(define %cgit-configuration-nginx
+ (list
+ (nginx-server-configuration
+ (root cgit)
+ (locations
+ (list
+ (nginx-location-configuration
+ (uri "@cgit")
+ (body '("fastcgi_param SCRIPT_FILENAME $document_root/lib/cgit/cgit.cgi;"
+ "fastcgi_param PATH_INFO $uri;"
+ "fastcgi_param QUERY_STRING $args;"
+ "fastcgi_param HTTP_HOST $server_name;"
+ "fastcgi_pass 127.0.0.1:9000;")))))
+ (try-files (list "$uri" "@cgit"))
+ (https-port #f)
+ (ssl-certificate #f)
+ (ssl-certificate-key #f))))
+
+(define-record-type* <cgit-configuration>
+ cgit-configuration make-cgit-configuration
+ cgit-configuration?
+ (config-file cgit-configuration-config-file
+ (default (cgit-configuration-file)))
+ (package cgit-configuration-package
+ (default cgit))
+ (nginx cgit-configuration-nginx
+ (default %cgit-configuration-nginx)))
+
+(define (cgit-activation config)
+ ;; Cgit compiled with default configuration path
+ #~(begin
+ (use-modules (guix build utils))
+ (mkdir-p "/var/cache/cgit")
+ (copy-file #$(cgit-configuration-config-file config) "/etc/cgitrc")))
+
+(define (cgit-configuration-nginx-config config)
+ (cgit-configuration-nginx config))
+
+(define cgit-service-type
+ (service-type
+ (name 'cgit)
+ (extensions
+ (list (service-extension activation-service-type
+ cgit-activation)
+ (service-extension nginx-service-type
+ cgit-configuration-nginx-config)))
+ (default-value (cgit-configuration))))
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index 4aa6fd501c..9d713003c3 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -99,6 +99,8 @@
(default '()))
(index nginx-server-configuration-index
(default (list "index.html")))
+ (try-files nginx-server-configuration-try-files
+ (default '()))
(ssl-certificate nginx-server-configuration-ssl-certificate
(default "/etc/nginx/cert.pem"))
(ssl-certificate-key nginx-server-configuration-ssl-certificate-key
@@ -179,6 +181,7 @@ of index files."
(nginx-server-configuration-ssl-certificate-key server))
(root (nginx-server-configuration-root server))
(index (nginx-server-configuration-index server))
+ (try-files (nginx-server-configuration-try-files server))
(server-tokens? (nginx-server-configuration-server-tokens? server))
(locations (nginx-server-configuration-locations server)))
(define-syntax-parameter <> (syntax-rules ()))
@@ -207,6 +210,9 @@ of index files."
(and/l ssl-certificate-key " ssl_certificate_key " <> ";\n")
" root " root ";\n"
" index " (config-index-strings index) ";\n"
+ (if (not (nil? try-files))
+ (and/l (config-index-strings try-files) " try_files " <> ";\n")
+ "")
" server_tokens " (if server-tokens? "on" "off") ";\n"
"\n"
(map emit-nginx-location-config locations)
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 78143e4f7a..273a895bef 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -304,9 +304,12 @@ the image."
#:register-closures? #$register-closures?
#:system-directory #$os-drv))
(root-size #$(if (eq? 'guess disk-image-size)
- #~(estimated-partition-size
- (map (cut string-append "/xchg/" <>)
- graphs))
+ #~(max
+ ;; Minimum 20 MiB root size
+ (* 20 (expt 2 20))
+ (estimated-partition-size
+ (map (cut string-append "/xchg/" <>)
+ graphs)))
(- disk-image-size
(* 50 (expt 2 20)))))
(partitions (list (partition
@@ -706,6 +709,8 @@ it is mostly useful when FULL-BOOT? is true."
(default #f))
(memory-size virtual-machine-memory-size ;integer (MiB)
(default 256))
+ (disk-image-size virtual-machine-disk-image-size ;integer (bytes)
+ (default 'guess))
(port-forwardings virtual-machine-port-forwardings ;list of integer pairs
(default '())))
@@ -734,12 +739,15 @@ FORWARDINGS is a list of host-port/guest-port pairs."
system target)
;; XXX: SYSTEM and TARGET are ignored.
(match vm
- (($ <virtual-machine> os qemu graphic? memory-size ())
+ (($ <virtual-machine> os qemu graphic? memory-size disk-image-size ())
(system-qemu-image/shared-store-script os
#:qemu qemu
#:graphic? graphic?
- #:memory-size memory-size))
- (($ <virtual-machine> os qemu graphic? memory-size forwardings)
+ #:memory-size memory-size
+ #:disk-image-size
+ disk-image-size))
+ (($ <virtual-machine> os qemu graphic? memory-size disk-image-size
+ forwardings)
(let ((options
`("-net" ,(string-append
"user,"
@@ -748,6 +756,8 @@ FORWARDINGS is a list of host-port/guest-port pairs."
#:qemu qemu
#:graphic? graphic?
#:memory-size memory-size
+ #:disk-image-size
+ disk-image-size
#:options options)))))
;;; vm.scm ends here
diff --git a/gnu/tests/version-control.scm b/gnu/tests/version-control.scm
new file mode 100644
index 0000000000..5a3937cfed
--- /dev/null
+++ b/gnu/tests/version-control.scm
@@ -0,0 +1,176 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu tests version-control)
+ #:use-module (gnu tests)
+ #:use-module (gnu system)
+ #:use-module (gnu system file-systems)
+ #:use-module (gnu system shadow)
+ #:use-module (gnu system vm)
+ #:use-module (gnu services)
+ #:use-module (gnu services version-control)
+ #:use-module (gnu services web)
+ #:use-module (gnu services networking)
+ #:use-module (gnu packages version-control)
+ #:use-module (guix gexp)
+ #:use-module (guix store)
+ #:export (%test-cgit))
+
+(define %make-git-repository
+ ;; Create Git repository in /srv/git/test.
+ #~(begin
+ (mkdir-p "/srv/git/test")
+ (system* (string-append #$git "/bin/git") "-C" "/srv/git/test"
+ "init" "--bare")))
+
+(define %cgit-configuration-nginx
+ (list
+ (nginx-server-configuration
+ (root cgit)
+ (locations
+ (list
+ (nginx-location-configuration
+ (uri "@cgit")
+ (body '("fastcgi_param SCRIPT_FILENAME $document_root/lib/cgit/cgit.cgi;"
+ "fastcgi_param PATH_INFO $uri;"
+ "fastcgi_param QUERY_STRING $args;"
+ "fastcgi_param HTTP_HOST $server_name;"
+ "fastcgi_pass 127.0.0.1:9000;")))))
+ (try-files (list "$uri" "@cgit"))
+ (http-port 19418)
+ (https-port #f)
+ (ssl-certificate #f)
+ (ssl-certificate-key #f))))
+
+(define %cgit-os
+ ;; Operating system under test.
+ (let ((base-os
+ (simple-operating-system
+ (dhcp-client-service)
+ (service nginx-service-type)
+ (service fcgiwrap-service-type)
+ (service cgit-service-type
+ (cgit-configuration
+ (nginx %cgit-configuration-nginx)))
+ (simple-service 'make-git-repository activation-service-type
+ %make-git-repository))))
+ (operating-system
+ (inherit base-os)
+ (packages (cons* git
+ (operating-system-packages base-os))))))
+
+(define* (run-cgit-test #:optional (http-port 19418))
+ "Run tests in %CGIT-OS, which has nginx running and listening on
+HTTP-PORT."
+ (define os
+ (marionette-operating-system
+ %cgit-os
+ #:imported-modules '((gnu services herd)
+ (guix combinators))))
+
+ (define vm
+ (virtual-machine
+ (operating-system os)
+ (port-forwardings `((8080 . ,http-port)))))
+
+ (define test
+ (with-imported-modules '((gnu build marionette))
+ #~(begin
+ (use-modules (srfi srfi-11) (srfi srfi-64)
+ (gnu build marionette)
+ (web uri)
+ (web client)
+ (web response))
+
+ (define marionette
+ (make-marionette (list #$vm)))
+
+ (mkdir #$output)
+ (chdir #$output)
+
+ (test-begin "cgit")
+
+ ;; Wait for nginx to be up and running.
+ (test-eq "service running"
+ 'running!
+ (marionette-eval
+ '(begin
+ (use-modules (gnu services herd))
+ (start-service 'nginx)
+ 'running!)
+ marionette))
+
+ ;; Wait for fcgiwrap to be up and running.
+ (test-eq "service running"
+ 'running!
+ (marionette-eval
+ '(begin
+ (use-modules (gnu services herd))
+ (start-service 'fcgiwrap)
+ 'running!)
+ marionette))
+
+ ;; Make sure the PID file is created.
+ (test-assert "PID file"
+ (marionette-eval
+ '(file-exists? "/var/run/nginx/pid")
+ marionette))
+
+ ;; Make sure the configuration file is created.
+ (test-assert "configuration file"
+ (marionette-eval
+ '(file-exists? "/etc/cgitrc")
+ marionette))
+
+ ;; Make sure Git test repository is created.
+ (test-assert "Git test repository"
+ (marionette-eval
+ '(file-exists? "/srv/git/test")
+ marionette))
+
+ ;; Make sure we can access pages that correspond to our repository.
+ (letrec-syntax ((test-url
+ (syntax-rules ()
+ ((_ path code)
+ (test-equal (string-append "GET " path)
+ code
+ (let-values (((response body)
+ (http-get (string-append
+ "http://localhost:8080"
+ path))))
+ (response-code response))))
+ ((_ path)
+ (test-url path 200)))))
+ (test-url "/")
+ (test-url "/test")
+ (test-url "/test/log")
+ (test-url "/test/tree")
+ (test-url "/test/does-not-exist" 404)
+ (test-url "/does-not-exist" 404))
+
+ (test-end)
+ (exit (= (test-runner-fail-count (test-runner-current)) 0)))))
+
+ (gexp->derivation "cgit-test" test))
+
+(define %test-cgit
+ (system-test
+ (name "cgit")
+ (description "Connect to a running Cgit server.")
+ (value (run-cgit-test))))
diff --git a/guix/build-system/ant.scm b/guix/build-system/ant.scm
index e0870a605c..b5626bd42d 100644
--- a/guix/build-system/ant.scm
+++ b/guix/build-system/ant.scm
@@ -99,6 +99,9 @@
(make-flags ''())
(build-target "jar")
(jar-name #f)
+ (main-class #f)
+ (test-include (list "**/*Test.java"))
+ (test-exclude (list "**/Abstract*.java"))
(source-dir "src")
(test-dir "src/test")
(phases '(@ (guix build ant-build-system)
@@ -130,6 +133,9 @@
#:test-target ,test-target
#:build-target ,build-target
#:jar-name ,jar-name
+ #:main-class ,main-class
+ #:test-include (list ,@test-include)
+ #:test-exclude (list ,@test-exclude)
#:source-dir ,source-dir
#:test-dir ,test-dir
#:phases ,phases
diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm
index 4042630a10..a440daf054 100644
--- a/guix/build/ant-build-system.scm
+++ b/guix/build/ant-build-system.scm
@@ -36,7 +36,9 @@
;; Code:
(define* (default-build.xml jar-name prefix #:optional
- (source-dir ".") (test-dir "./test"))
+ (source-dir ".") (test-dir "./test") (main-class #f)
+ (test-include '("**/*Test.java"))
+ (test-exclude '("**/Abstract*Test.java")))
"Create a simple build.xml with standard targets for Ant."
(call-with-output-file "build.xml"
(lambda (port)
@@ -44,6 +46,10 @@
`(project (@ (basedir "."))
(property (@ (name "classes.dir")
(value "${basedir}/build/classes")))
+ (property (@ (name "manifest.dir")
+ (value "${basedir}/build/manifest")))
+ (property (@ (name "manifest.file")
+ (value "${manifest.dir}/MANIFEST.MF")))
(property (@ (name "jar.dir")
(value "${basedir}/build/jar")))
(property (@ (name "dist.dir")
@@ -60,6 +66,17 @@
(path (@ (id "classpath"))
(pathelement (@ (location "${env.CLASSPATH}"))))
+ (target (@ (name "manifest"))
+ (mkdir (@ (dir "${manifest.dir}")))
+ (echo (@ (file "${manifest.file}")
+ (message ,(string-append
+ (if main-class
+ (string-append
+ "Main-Class: " main-class
+ "${line.separator}")
+ "")
+ "")))))
+
(target (@ (name "compile"))
(mkdir (@ (dir "${classes.dir}")))
(javac (@ (includeantruntime "false")
@@ -94,13 +111,19 @@
(batchtest (@ (fork "yes")
(todir "${test.home}/test-reports"))
(fileset (@ (dir "${test.home}/java"))
- (include (@ (name "**/*Test.java" )))))))
+ ,@(map (lambda (file)
+ `(include (@ (name ,file))))
+ test-include)
+ ,@(map (lambda (file)
+ `(exclude (@ (name ,file))))
+ test-exclude)))))
(target (@ (name "jar")
- (depends "compile"))
+ (depends "compile, manifest"))
(mkdir (@ (dir "${jar.dir}")))
(exec (@ (executable "jar"))
- (arg (@ (line ,(string-append "-cf ${jar.dir}/" jar-name
+ (arg (@ (line ,(string-append "-cmf ${manifest.file} "
+ "${jar.dir}/" jar-name
" -C ${classes.dir} ."))))))
(target (@ (name "install"))
@@ -133,12 +156,15 @@ to the default GNU unpack strategy."
(define* (configure #:key inputs outputs (jar-name #f)
(source-dir "src")
- (test-dir "src/test") #:allow-other-keys)
+ (test-dir "src/test")
+ (main-class #f)
+ (test-include '("**/*Test.java"))
+ (test-exclude '("**/Abstract*.java")) #:allow-other-keys)
(when jar-name
(default-build.xml jar-name
(string-append (assoc-ref outputs "out")
"/share/java")
- source-dir test-dir))
+ source-dir test-dir main-class test-include test-exclude))
(setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
(setenv "CLASSPATH" (generate-classpath inputs)))
diff --git a/guix/import/print.scm b/guix/import/print.scm
new file mode 100644
index 0000000000..0bec32c8dc
--- /dev/null
+++ b/guix/import/print.scm
@@ -0,0 +1,164 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 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 import print)
+ #:use-module (guix base32)
+ #:use-module (guix utils)
+ #:use-module (guix licenses)
+ #:use-module (guix packages)
+ #:use-module (guix search-paths)
+ #:use-module (guix build-system)
+ #:use-module (gnu packages)
+ #:use-module (srfi srfi-1)
+ #:use-module (guix import utils)
+ #:use-module (ice-9 control)
+ #:use-module (ice-9 match)
+ #:export (package->code))
+
+;; FIXME: the quasiquoted arguments field may contain embedded package
+;; objects, e.g. in #:disallowed-references; they will just be printed with
+;; their usual #<package ...> representation, not as variable names.
+(define (package->code package)
+ "Return an S-expression representing the source code that produces PACKAGE
+when evaluated."
+ ;; The module in which the package PKG is defined
+ (define (package-module-name pkg)
+ (map string->symbol
+ (string-split (string-drop-right
+ (location-file (package-location pkg)) 4)
+ #\/)))
+
+ ;; Return the first candidate variable name that is bound to VAL.
+ (define (variable-name val mod)
+ (match (let/ec return
+ (module-for-each (lambda (sym var)
+ (if (eq? val (variable-ref var))
+ (return sym)
+ #f))
+ (resolve-interface mod)))
+ ((? symbol? sym) sym)
+ (_ #f)))
+
+ ;; Print either license variable name or the code for a license object
+ (define (license->code lic)
+ (let ((var (variable-name lic '(guix licenses))))
+ (or var
+ `(license
+ (name ,(license-name lic))
+ (uri ,(license-uri lic))
+ (comment ,(license-comment lic))))))
+
+ (define (search-path-specification->code spec)
+ `(search-path-specification
+ (variable ,(search-path-specification-variable spec))
+ (files (list ,@(search-path-specification-files spec)))
+ (separator ,(search-path-specification-separator spec))
+ (file-type (quote ,(search-path-specification-file-type spec)))
+ (file-pattern ,(search-path-specification-file-pattern spec))))
+
+ (define (source->code source version)
+ (let ((uri (origin-uri source))
+ (method (origin-method source))
+ (sha256 (origin-sha256 source))
+ (file-name (origin-file-name source))
+ (patches (origin-patches source)))
+ `(origin
+ (method ,(procedure-name method))
+ (uri (string-append ,@(factorize-uri uri version)))
+ (sha256
+ (base32
+ ,(format #f "~a" (bytevector->nix-base32-string sha256))))
+ ;; FIXME: in order to be able to throw away the directory prefix,
+ ;; we just assume that the patch files can be found with
+ ;; "search-patches".
+ ,@(if (null? patches) '()
+ `((patches (search-patches ,@(map basename patches))))))))
+
+ (define (package-lists->code lsts)
+ (list 'quasiquote
+ (map (match-lambda
+ ((label pkg . out)
+ (let ((mod (package-module-name pkg)))
+ (list label
+ ;; FIXME: using '@ certainly isn't pretty, but it
+ ;; avoids having to import the individual package
+ ;; modules.
+ (list 'unquote
+ (list '@ mod (variable-name pkg mod)))))))
+ lsts)))
+
+ (let ((name (package-name package))
+ (version (package-version package))
+ (source (package-source package))
+ (build-system (package-build-system package))
+ (arguments (package-arguments package))
+ (inputs (package-inputs package))
+ (propagated-inputs (package-propagated-inputs package))
+ (native-inputs (package-native-inputs package))
+ (outputs (package-outputs package))
+ (native-search-paths (package-native-search-paths package))
+ (search-paths (package-search-paths package))
+ (replacement (package-replacement package))
+ (synopsis (package-synopsis package))
+ (description (package-description package))
+ (license (package-license package))
+ (home-page (package-home-page package))
+ (supported-systems (package-supported-systems package))
+ (properties (package-properties package)))
+ `(package
+ (name ,name)
+ (version ,version)
+ (source ,(source->code source version))
+ ,@(match properties
+ (() '())
+ (_ `((properties ,properties))))
+ ,@(if replacement
+ `((replacement ,replacement))
+ '())
+ (build-system ,(symbol-append (build-system-name build-system)
+ '-build-system))
+ ,@(match arguments
+ (() '())
+ (args `((arguments ,(list 'quasiquote args)))))
+ ,@(match outputs
+ (("out") '())
+ (outs `((outputs (list ,@outs)))))
+ ,@(match native-inputs
+ (() '())
+ (pkgs `((native-inputs ,(package-lists->code pkgs)))))
+ ,@(match inputs
+ (() '())
+ (pkgs `((inputs ,(package-lists->code pkgs)))))
+ ,@(match propagated-inputs
+ (() '())
+ (pkgs `((propagated-inputs ,(package-lists->code pkgs)))))
+ ,@(if (lset= string=? supported-systems %supported-systems)
+ '()
+ `((supported-systems (list ,@supported-systems))))
+ ,@(match (map search-path-specification->code native-search-paths)
+ (() '())
+ (paths `((native-search-paths (list ,@paths)))))
+ ,@(match (map search-path-specification->code search-paths)
+ (() '())
+ (paths `((search-paths (list ,@paths)))))
+ (home-page ,home-page)
+ (synopsis ,synopsis)
+ (description ,description)
+ (license ,(if (list? license)
+ `(list ,@(map license->code license))
+ (license->code license))))))
diff --git a/guix/import/utils.scm b/guix/import/utils.scm
index be1980d08f..1e2f0c809d 100644
--- a/guix/import/utils.scm
+++ b/guix/import/utils.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2016 David Craven <david@craven.ch>
+;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -25,9 +26,17 @@
#:use-module (guix http-client)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
+ #:use-module (guix packages)
+ #:use-module (guix discovery)
+ #:use-module (guix build-system)
+ #:use-module (guix gexp)
+ #:use-module (guix store)
+ #:use-module (guix download)
+ #:use-module (gnu packages)
#:use-module (ice-9 match)
#:use-module (ice-9 regex)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-11)
#:export (factorize-uri
hash-table->alist
@@ -45,7 +54,9 @@
license->symbol
snake-case
- beautify-description))
+ beautify-description
+
+ alist->package))
(define (factorize-uri uri version)
"Factorize URI, a package tarball URI as a string, such that any occurrences
@@ -241,3 +252,80 @@ package definition."
(('package ('name (? string? name)) _ ...)
`(define-public ,(string->symbol name)
,guix-package))))
+
+(define (build-system-modules)
+ (all-modules (map (lambda (entry)
+ `(,entry . "guix/build-system"))
+ %load-path)))
+
+(define (lookup-build-system-by-name name)
+ "Return a <build-system> value for the symbol NAME, representing the name of
+the build system."
+ (fold-module-public-variables (lambda (obj result)
+ (if (and (build-system? obj)
+ (eq? name (build-system-name obj)))
+ obj result))
+ #f
+ (build-system-modules)))
+
+(define (specs->package-lists specs)
+ "Convert each string in the SPECS list to a list of a package label and a
+package value."
+ (map (lambda (spec)
+ (let-values (((pkg out) (specification->package+output spec)))
+ (match out
+ (("out") (list (package-name pkg) pkg))
+ (_ (list (package-name pkg) pkg out)))))
+ specs))
+
+(define (source-spec->object source)
+ "Generate an <origin> object from a SOURCE specification. The SOURCE can
+either be a simple URL string, #F, or an alist containing entries for each of
+the expected fields of an <origin> object."
+ (match source
+ ((? string? source-url)
+ (let ((tarball (with-store store (download-to-store store source-url))))
+ (origin
+ (method url-fetch)
+ (uri source-url)
+ (sha256 (base32 (guix-hash-url tarball))))))
+ (#f #f)
+ (orig (let ((sha (match (assoc-ref orig "sha256")
+ ((("base32" . value))
+ (base32 value))
+ (_ #f))))
+ (origin
+ (method (match (assoc-ref orig "method")
+ ("url-fetch" (@ (guix download) url-fetch))
+ ("git-fetch" (@ (guix git-download) git-fetch))
+ ("svn-fetch" (@ (guix svn-download) svn-fetch))
+ ("hg-fetch" (@ (guix hg-download) hg-fetch))
+ (_ #f)))
+ (uri (assoc-ref orig "uri"))
+ (sha256 sha))))))
+
+(define (alist->package meta)
+ (package
+ (name (assoc-ref meta "name"))
+ (version (assoc-ref meta "version"))
+ (source (source-spec->object (assoc-ref meta "source")))
+ (build-system
+ (lookup-build-system-by-name
+ (string->symbol (assoc-ref meta "build-system"))))
+ (native-inputs
+ (specs->package-lists (or (assoc-ref meta "native-inputs") '())))
+ (inputs
+ (specs->package-lists (or (assoc-ref meta "inputs") '())))
+ (propagated-inputs
+ (specs->package-lists (or (assoc-ref meta "propagated-inputs") '())))
+ (home-page
+ (assoc-ref meta "home-page"))
+ (synopsis
+ (assoc-ref meta "synopsis"))
+ (description
+ (assoc-ref meta "description"))
+ (license
+ (let ((l (assoc-ref meta "license")))
+ (or (module-ref (resolve-interface '(guix licenses) #:prefix 'license:)
+ (spdx-string->license l))
+ (license:fsdg-compatible l))))))
diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm
index 9bba074e8c..67bc7a7553 100644
--- a/guix/scripts/import.scm
+++ b/guix/scripts/import.scm
@@ -74,7 +74,7 @@ rather than \\n."
;;;
(define importers '("gnu" "nix" "pypi" "cpan" "hackage" "stackage" "elpa" "gem"
- "cran" "crate" "texlive"))
+ "cran" "crate" "texlive" "json"))
(define (resolve-importer name)
(let ((module (resolve-interface
diff --git a/guix/scripts/import/json.scm b/guix/scripts/import/json.scm
new file mode 100644
index 0000000000..8771e7b0eb
--- /dev/null
+++ b/guix/scripts/import/json.scm
@@ -0,0 +1,102 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2015, 2017 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 scripts import json)
+ #:use-module (json)
+ #:use-module (guix ui)
+ #:use-module (guix utils)
+ #:use-module (guix scripts)
+ #:use-module (guix import utils)
+ #:use-module (guix import print)
+ #:use-module (guix scripts import)
+ #:use-module (guix packages)
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-9 gnu)
+ #:use-module (srfi srfi-11)
+ #:use-module (srfi srfi-37)
+ #:use-module (srfi srfi-41)
+ #:use-module (ice-9 match)
+ #:use-module (ice-9 rdelim)
+ #:use-module (ice-9 format)
+ #:export (guix-import-json))
+
+
+;;;
+;;; Command-line options.
+;;;
+
+(define %default-options
+ '())
+
+(define (show-help)
+ (display (G_ "Usage: guix import json PACKAGE-FILE
+Import and convert the JSON package definition in PACKAGE-FILE.\n"))
+ (display (G_ "
+ -h, --help display this help and exit"))
+ (display (G_ "
+ -V, --version display version information and exit"))
+ (newline)
+ (show-bug-report-information))
+
+(define %options
+ ;; Specification of the command-line options.
+ (cons* (option '(#\h "help") #f #f
+ (lambda args
+ (show-help)
+ (exit 0)))
+ (option '(#\V "version") #f #f
+ (lambda args
+ (show-version-and-exit "guix import json")))
+ %standard-import-options))
+
+
+;;;
+;;; Entry point.
+;;;
+
+(define (guix-import-json . args)
+ (define (parse-options)
+ ;; Return the alist of option values.
+ (args-fold* args %options
+ (lambda (opt name arg result)
+ (leave (G_ "~A: unrecognized option~%") name))
+ (lambda (arg result)
+ (alist-cons 'argument arg result))
+ %default-options))
+
+ (let* ((opts (parse-options))
+ (args (filter-map (match-lambda
+ (('argument . value)
+ value)
+ (_ #f))
+ (reverse opts))))
+ (match args
+ ((file-name)
+ (catch 'json-invalid
+ (lambda ()
+ (let ((json (json-string->scm
+ (with-input-from-file file-name read-string))))
+ ;; TODO: also print define-module boilerplate
+ (package->code (alist->package (hash-table->alist json)))))
+ (lambda _
+ (leave (G_ "invalid JSON in file '~a'~%") file-name))))
+ (()
+ (leave (G_ "too few arguments~%")))
+ ((many ...)
+ (leave (G_ "too many arguments~%"))))))
diff --git a/tests/import-utils.scm b/tests/import-utils.scm
index 8d44b9e0e2..3d8d2c698d 100644
--- a/tests/import-utils.scm
+++ b/tests/import-utils.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -21,6 +21,8 @@
#:use-module (guix tests)
#:use-module (guix import utils)
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix build-system)
#:use-module (srfi srfi-64))
(test-begin "import-utils")
@@ -38,4 +40,40 @@
'license:lgpl2.0
(license->symbol license:lgpl2.0))
+(test-assert "alist->package with simple source"
+ (let* ((meta '(("name" . "hello")
+ ("version" . "2.10")
+ ("source" . "mirror://gnu/hello/hello-2.10.tar.gz")
+ ("build-system" . "gnu")
+ ("home-page" . "https://gnu.org")
+ ("synopsis" . "Say hi")
+ ("description" . "This package says hi.")
+ ("license" . "GPL-3.0+")))
+ (pkg (alist->package meta)))
+ (and (package? pkg)
+ (license:license? (package-license pkg))
+ (build-system? (package-build-system pkg))
+ (origin? (package-source pkg)))))
+
+(test-assert "alist->package with explicit source"
+ (let* ((meta '(("name" . "hello")
+ ("version" . "2.10")
+ ("source" . (("method" . "url-fetch")
+ ("uri" . "mirror://gnu/hello/hello-2.10.tar.gz")
+ ("sha256" .
+ (("base32" .
+ "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i")))))
+ ("build-system" . "gnu")
+ ("home-page" . "https://gnu.org")
+ ("synopsis" . "Say hi")
+ ("description" . "This package says hi.")
+ ("license" . "GPL-3.0+")))
+ (pkg (alist->package meta)))
+ (and (package? pkg)
+ (license:license? (package-license pkg))
+ (build-system? (package-build-system pkg))
+ (origin? (package-source pkg))
+ (equal? (origin-sha256 (package-source pkg))
+ (base32 "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i")))))
+
(test-end "import-utils")
diff --git a/tests/print.scm b/tests/print.scm
new file mode 100644
index 0000000000..305807c1d1
--- /dev/null
+++ b/tests/print.scm
@@ -0,0 +1,64 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 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 (test-print)
+ #:use-module (guix import print)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix download)
+ #:use-module (guix packages)
+ #:use-module (guix licenses)
+ #:use-module (srfi srfi-64))
+
+(test-begin "print")
+
+(define pkg
+ (package
+ (name "test")
+ (version "1.2.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "file:///tmp/test-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
+ (build-system gnu-build-system)
+ (home-page "http://gnu.org")
+ (synopsis "Dummy")
+ (description "This is a dummy package.")
+ (license gpl3+)))
+
+(test-equal "simple package"
+ (package->code pkg)
+ '(package
+ (name "test")
+ (version "1.2.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "file:///tmp/test-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
+ (build-system gnu-build-system)
+ (home-page "http://gnu.org")
+ (synopsis "Dummy")
+ (description "This is a dummy package.")
+ (license gpl3+)))
+
+(test-end "print")