diff options
author | Marius Bakke <mbakke@fastmail.com> | 2017-10-05 00:45:38 +0200 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2017-10-05 00:45:38 +0200 |
commit | 7716ccd59c0c17f9399d73abec05001b775d100b (patch) | |
tree | 17a3f8cc7201f9deed0b3de8d5d597b892aaede3 | |
parent | 86edcc53382c66be06165c62a3934d60ae7aabd8 (diff) | |
parent | a35532f52df3ba3bc360346938aa90806cad493e (diff) | |
download | guix-7716ccd59c0c17f9399d73abec05001b775d100b.tar.gz |
Merge branch 'master' into staging
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") |