diff options
Diffstat (limited to 'gnu')
196 files changed, 17926 insertions, 2496 deletions
diff --git a/gnu/build/linux-container.scm b/gnu/build/linux-container.scm index e911494058..eb5dbf94a3 100644 --- a/gnu/build/linux-container.scm +++ b/gnu/build/linux-container.scm @@ -19,16 +19,36 @@ (define-module (gnu build linux-container) #:use-module (ice-9 format) #:use-module (ice-9 match) + #:use-module (ice-9 rdelim) #:use-module (srfi srfi-98) #:use-module (guix utils) #:use-module (guix build utils) #:use-module (guix build syscalls) #:use-module ((gnu build file-systems) #:select (mount-file-system)) - #:export (%namespaces + #:export (user-namespace-supported? + unprivileged-user-namespace-supported? + setgroups-supported? + %namespaces run-container call-with-container container-excursion)) +(define (user-namespace-supported?) + "Return #t if user namespaces are supported on this system." + (file-exists? "/proc/self/ns/user")) + +(define (unprivileged-user-namespace-supported?) + "Return #t if user namespaces can be created by unprivileged users." + (let ((userns-file "/proc/sys/kernel/unprivileged_userns_clone")) + (if (file-exists? userns-file) + (string=? "1" (call-with-input-file userns-file read-string)) + #t))) + +(define (setgroups-supported?) + "Return #t if the setgroups proc file, introduced in Linux-libre 3.19, +exists." + (file-exists? "/proc/self/setgroups")) + (define %namespaces '(mnt pid ipc uts user net)) @@ -165,7 +185,7 @@ host user identifiers to map into the user namespace." "Return the number suitable for the 'flags' argument of 'clone' that corresponds to the symbols in NAMESPACES." ;; Use the same flags as fork(3) in addition to the namespace flags. - (apply logior SIGCHLD CLONE_CHILD_CLEARTID CLONE_CHILD_SETTID + (apply logior SIGCHLD (map (match-lambda ('mnt CLONE_NEWNS) ('uts CLONE_NEWUTS) diff --git a/gnu/packages/aarddict.scm b/gnu/packages/aarddict.scm deleted file mode 100644 index 76c7aa4f33..0000000000 --- a/gnu/packages/aarddict.scm +++ /dev/null @@ -1,70 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> -;;; -;;; 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 aarddict) - #:use-module ((guix licenses) #:select (gpl3)) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system python) - #:use-module (gnu packages python) - #:use-module (gnu packages qt)) - -(define-public aarddict - (package - (name "aarddict") - (version "0.9.3") - (source - (origin - (method url-fetch) - (uri (string-append "https://github.com/aarddict/desktop/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "12h7m0z7nd7rg8avpi9syd265k0rhh4vbdh464nq0jzdg8m9p28c")))) - (build-system python-build-system) - (inputs - `(("python2-pyicu" ,python2-pyicu) - ("python2-pyqt-4" ,python2-pyqt-4) - ("python2-setuptools" ,python2-setuptools) - ("python2-simplejson" ,python2-simplejson) - ("python2-sip" ,python2-sip))) - (arguments - `(#:python ,python-2 ; incompatible with Python 3 - #:phases - (alist-cons-before - 'build 'configure - ;; Force data into the output instead of the python package. - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* "setup.py" - (("sys.prefix") (string-append "'" out "'"))))) - %standard-phases))) - (home-page "http://aarddict.org/index.html") - (synopsis - "Dictionary program and offline Wikipedia reader") - (description - "Aard Dictionary is a free, fast, easy to use word lookup program that -looks up words fast even with huge dictionaries like English Wikipedia; -looks up words in multiple dictionaries in multiple languages without -switching; -works great as offline Wikipedia reader; -is keyboard navigation friendly; -has efficient, highly compressed dictionary data storage format with -ability to verify data integrity built-in.") - (license gpl3))) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 455f7ee2a4..5b9f5d1650 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -485,14 +485,14 @@ tools: server, client, and relay agent.") (define-public libpcap (package (name "libpcap") - (version "1.5.3") + (version "1.7.4") (source (origin (method url-fetch) (uri (string-append "http://www.tcpdump.org/release/libpcap-" version ".tar.gz")) (sha256 (base32 - "14wyjywrdi1ikaj6yc9c72m6m2r64z94lb0gm7k1a3q6q5cj3scs")))) + "1c28ykkizd7jqgzrfkg7ivqjlqs9p6lygp26bsw2i0z8hwhi3lvs")))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) ("flex" ,flex))) (arguments '(#:configure-flags '("--with-pcap=linux") @@ -510,14 +510,14 @@ network statistics collection, security monitoring, network debugging, etc.") (define-public tcpdump (package (name "tcpdump") - (version "4.5.1") + (version "4.7.4") (source (origin (method url-fetch) (uri (string-append "http://www.tcpdump.org/release/tcpdump-" version ".tar.gz")) (sha256 (base32 - "15hb7zkzd66nag102qbv100hcnf7frglbkylmr8adwr8f5jkkaql")))) + "1byr8w6grk08fsq0444jmcz9ar89lq9nf4mjq2cny0w9k8k21rbb")))) (build-system gnu-build-system) (inputs `(("libpcap" ,libpcap) ("openssl" ,openssl))) @@ -647,7 +647,7 @@ system administrator.") (define-public sudo (package (name "sudo") - (version "1.8.10p3") + (version "1.8.15") (source (origin (method url-fetch) (uri @@ -657,22 +657,35 @@ system administrator.") version ".tar.gz"))) (sha256 (base32 - "002l6h27pnhb77b65frhazbhknsxvrsnkpi43j7i0qw1lrgi7nkf")))) + "0263gi6i19fyzzc488n0qw3m518i39f6a7qmrfvahk9j10bkh5j3")))) (build-system gnu-build-system) (arguments - `(#:configure-flags '("--with-logpath=/var/log/sudo.log" - "--with-rundir=/run/sudo" - "--with-vardir=/var/db/sudo" - "--with-iologdir=/var/log/sudo-io") + `(#:configure-flags + (list "--with-logpath=/var/log/sudo.log" + "--with-rundir=/run/sudo" + "--with-vardir=/var/db/sudo" + "--with-iologdir=/var/log/sudo-io" + + ;; 'visudo.c' expects _PATH_MV to be defined, but glibc doesn't + ;; provide it. + (string-append "CPPFLAGS=-D_PATH_MV='\"" + (assoc-ref %build-inputs "coreutils") + "/bin/mv\"'")) + + ;; Avoid non-determinism; see <http://bugs.gnu.org/21918>. + #:parallel-build? #f + #:phases (alist-cons-before 'configure 'pre-configure (lambda _ - (substitute* "configure" - ;; Refer to the right executables. - (("/usr/bin/mv") (which "mv")) - (("/usr/bin/sh") (which "sh"))) + (substitute* "src/sudo_usage.h.in" + ;; Do not capture 'configure' arguments since we would + ;; unduly retain references, and also because the + ;; CPPFLAGS above would close the string literal + ;; prematurely. + (("@CONFIGURE_ARGS@") "\"\"")) (substitute* (find-files "." "Makefile\\.in") - (("-O [[:graph:]]+ -G [[:graph:]]+") + (("-o [[:graph:]]+ -g [[:graph:]]+") ;; Allow installation as non-root. "") (("^install: (.*)install-sudoers(.*)" _ before after) @@ -716,7 +729,12 @@ commands and their arguments.") ".tar.gz")) (sha256 (base32 - "05mkp5bx1c3z7h5biddsv0p49gkrq9ksany3anp4wdiv92p5prfc")))) + "05mkp5bx1c3z7h5biddsv0p49gkrq9ksany3anp4wdiv92p5prfc")) + (patches + (map search-patch '("wpa-supplicant-CVE-2015-5310.patch" + "wpa-supplicant-CVE-2015-5314.patch" + "wpa-supplicant-CVE-2015-5315.patch" + "wpa-supplicant-CVE-2015-5316.patch"))))) (build-system gnu-build-system) (arguments '(#:phases (alist-replace diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm index 02254c8547..3ef5d28fbb 100644 --- a/gnu/packages/aidc.scm +++ b/gnu/packages/aidc.scm @@ -33,9 +33,10 @@ (source (origin (method url-fetch) (uri (string-append "mirror://gnu/barcode/barcode-" - version ".tar.xz")) - (sha256 (base32 - "1indapql5fjz0bysyc88cmc54y8phqrbi7c76p71fgjp45jcyzp8")))) + version ".tar.xz")) + (sha256 + (base32 + "1indapql5fjz0bysyc88cmc54y8phqrbi7c76p71fgjp45jcyzp8")))) (build-system gnu-build-system) (synopsis "Convert text strings to printed bars in various standards") (description "GNU Barcode is a flexible tool to produce printed barcodes @@ -53,7 +54,7 @@ formats.") (method url-fetch) (uri (string-append "http://fukuchi.org/works/qrencode/qrencode-" version - ".tar.bz2")) + ".tar.bz2")) (sha256 (base32 "163sb580p570p27imc6jhkfdw15kzp8vy1jq92nip1rwa63i9myz")))) (build-system gnu-build-system) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 2f52f5545c..25e1af1750 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -26,6 +26,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages readline) #:use-module (gnu packages flex) + #:use-module (gnu packages xorg) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) @@ -114,7 +115,7 @@ solve the shortest vector problem.") (define-public pari-gp (package (name "pari-gp") - (version "2.7.4") + (version "2.7.5") (source (origin (method url-fetch) (uri (string-append @@ -122,9 +123,10 @@ solve the shortest vector problem.") version ".tar.gz")) (sha256 (base32 - "0k1qqagfl6zn7gvwmsqffj6g9yrzqvszwh2mblhmxpjlw1pigfh8")))) + "0c8l83a0gjq73r9hndsrzkypwxvnnm4pxkkzbg6jm95m80nzwh11")))) (build-system gnu-build-system) (inputs `(("gmp" ,gmp) + ("libx11" ,libx11) ("perl" ,perl) ("readline" ,readline))) (arguments @@ -155,7 +157,7 @@ PARI is also available as a C library to allow for faster computations.") (define-public gp2c (package (name "gp2c") - (version "0.0.9pl3") + (version "0.0.9pl4") (source (origin (method url-fetch) (uri (string-append @@ -163,7 +165,7 @@ PARI is also available as a C library to allow for faster computations.") version ".tar.gz")) (sha256 (base32 - "0wbghihwlcx3w4j1la3bjf5gcrkk6lp9syw6iimqndq1f73ijlq3")))) + "079qq4yyxpc53a2kn08gg9pcfgdyffbl14c2hqsic11q8pnsr08z")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) (inputs `(("pari-gp" ,pari-gp))) @@ -381,14 +383,15 @@ cosine/ sine transforms or DCT/DST).") (define-public eigen (package (name "eigen") - (version "3.2.6") + (version "3.2.7") (source (origin (method url-fetch) (uri (string-append "https://bitbucket.org/eigen/eigen/get/" version ".tar.bz2")) (sha256 (base32 - "0gil5ksmgcg6v3nw0v613mvpzz4n33xhawqs8l7fj7rnlpwm4cwa")) + "0gigbjjdlw2q0gvcnyiwc6in314a647rkidk6977bwiwn88im3p5")) + (file-name (string-append name "-" version ".tar.bz2")) (modules '((guix build utils))) (snippet ;; There are 3 test failures in the "unsupported" directory, @@ -396,29 +399,28 @@ cosine/ sine transforms or DCT/DST).") ;; anyway, so just skip them. '(substitute* "CMakeLists.txt" (("add_subdirectory\\(unsupported\\)") - "# Do not build the tests for unsupported features.\n"))))) + "# Do not build the tests for unsupported features.\n") + ;; Work around + ;; <http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1114>. + (("\"include/eigen3\"") + "\"${CMAKE_INSTALL_PREFIX}/include/eigen3\""))))) (build-system cmake-build-system) (arguments '(;; Turn off debugging symbols to save space. #:build-type "Release" - ;; Use 'make check', as per - ;; <http://eigen.tuxfamily.org/index.php?title=Tests>. - #:test-target "check" + #:phases (modify-phases %standard-phases + (replace 'check + (lambda _ + (let* ((cores (parallel-job-count)) + (dash-j (format #f "-j~a" cores))) + ;; First build the tests, in parallel. See + ;; <http://eigen.tuxfamily.org/index.php?title=Tests>. + (and (zero? (system* "make" "buildtests" dash-j)) - #:phases (alist-cons-before - 'check 'build-tests - (lambda _ - ;; First build the tests, in parallel. - ;; See <http://eigen.tuxfamily.org/index.php?title=Tests>. - (let* ((cores (parallel-job-count)) - (dash-j (format #f "-j~a" cores))) - ;; These variables are supposed to be honored. - (setenv "EIGEN_MAKE_ARGS" dash-j) - (setenv "EIGEN_CTEST_ARGS" dash-j) - - (zero? (system* "make" "buildtests" dash-j)))) - %standard-phases))) + ;; Then run 'CTest' with -V so we get more + ;; details upon failure. + (zero? (system* "ctest" "-V" dash-j))))))))) (home-page "http://eigen.tuxfamily.org") (synopsis "C++ template library for linear algebra") (description diff --git a/gnu/packages/animation.scm b/gnu/packages/animation.scm new file mode 100644 index 0000000000..789bb6e6f2 --- /dev/null +++ b/gnu/packages/animation.scm @@ -0,0 +1,178 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages animation) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages boost) + #:use-module (gnu packages compression) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages graphics) + #:use-module (gnu packages gtk) + #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages video)) + +(define-public etl + (package + (name "etl") + (version "0.04.19") + (source (origin + (method url-fetch) + ;; Keep this synchronized with the synfig release version. + (uri (string-append "mirror://sourceforge/synfig/releases/" + "1.0.2/source/ETL-" version ".tar.gz")) + (sha256 + (base32 + "070c70slizrklq1gbgja8m49xfmq65wlcd6hz6418cpx0wd4r55s")))) + (build-system gnu-build-system) + (home-page "http://www.synfig.org") + (synopsis "Extended C++ template library") + (description + "ETL is a class and template library designed to add new datatypes and +functions which combine well with the existing types and functions from the +C++ @dfn{Standard Template Library} (STL).") + (license license:gpl3+))) + +(define-public synfig + (package + (name "synfig") + (version "1.0.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/synfig/releases/" + version "/source/synfig-" version + ".tar.gz")) + (sha256 + (base32 + "1d3z2r78j3rkff47q3wl0ami69y3l4nyi5r9zclymb8ar7mgkk9l")) + (patches (list (search-patch "synfig-build-fix.patch"))))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + ;; The Boost library path is taken from the value of BOOST_LDFLAGS. + (list (string-append "BOOST_LDFLAGS=-L" + (assoc-ref %build-inputs "boost") + "/lib")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'adapt-to-libxml++-changes + (lambda _ + (substitute* "configure" + (("libxml\\+\\+-2\\.6") "libxml++-3.0")) + (substitute* (append (find-files "src/modules/" "\\.cpp$") + (find-files "src/synfig/" "\\.(cpp|h)$")) + (("add_child\\(") "add_child_element(") + (("get_child_text\\(") "get_first_child_text(") + (("set_child_text\\(") "set_first_child_text(") + (("remove_child\\(") "remove_node(")) + (substitute* "src/modules/mod_svg/svg_parser.cpp" + (("xmlpp::Node::NodeList") "xmlpp::Node::const_NodeList")) + #t)) + (add-before 'configure 'set-flags + (lambda _ + ;; Compile with C++11, required by libsigc++. + (setenv "CXXFLAGS" "-D__STDC_CONSTANT_MACROS -std=gnu++11") + #t))))) + (inputs + `(("boost" ,boost) + ("ffmpeg" ,ffmpeg) + ("libdv" ,libdv) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libmng" ,libmng) + ("zlib" ,zlib))) + ;; synfig.pc lists the following as required: Magick++ freetype2 + ;; fontconfig OpenEXR ETL glibmm-2.4 giomm-2.4 libxml++-3.0 sigc++-2.0 + ;; cairo pango pangocairo mlt++ + (propagated-inputs + `(("cairo" ,cairo) + ("etl" ,etl) + ("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("glibmm" ,glibmm) + ("imagemagick" ,imagemagick) + ("libxml++" ,libxml++) + ("libsigc++" ,libsigc++) + ("mlt" ,mlt) + ("openexr" ,openexr) + ("pango" ,pango))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://www.synfig.org") + (synopsis "Vector-based 2D animation renderer") + (description + "Synfig is a vector-based 2D animation package. It is designed to be +capable of producing feature-film quality animation. It eliminates the need +for tweening, preventing the need to hand-draw each frame.") + (license license:gpl3+))) + +(define-public synfigstudio + (package + (name "synfigstudio") + (version "1.0.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/synfig/releases/" + version "/source/synfigstudio-" version + ".tar.gz")) + (sha256 + (base32 + "1xa74dlgkpjn0gzdcs0x25z7wg0806v2wygvvi73f7sn1fm88ig4")) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* "src/synfigapp/pluginmanager.cpp" + (("xmlpp::Node\\* n =") "const xmlpp::Node* n =") + (("xmlpp::Node::NodeList") "xmlpp::Node::const_NodeList")) + ;; Some files are ISO-8859-1 encoded. + (with-fluids ((%default-port-encoding #f)) + (substitute* (find-files "src/" "\\.(cpp|h)$") + (("#include <sigc\\+\\+/retype\\.h>") + "#include <sigc++/adaptors/retype.h>") + (("#include <sigc\\+\\+/hide\\.h>") + "#include <sigc++/adaptors/hide.h>") + (("#include <sigc\\+\\+/object\\.h>") + "#include <sigc++/trackable.h>"))) + #t)))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "CXXFLAGS=-std=gnu++11"))) + (inputs + `(("gtkmm" ,gtkmm) + ("libsigc++" ,libsigc++) + ("synfig" ,synfig))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool))) + (home-page "http://www.synfig.org") + (synopsis "Vector-based 2D animation package (GUI)") + (description + "Synfig is a vector-based 2D animation package. It is designed to +be capable of producing feature-film quality animation. It eliminates the +need for tweening, preventing the need to hand-draw each frame. This package +contains the graphical user interface for synfig.") + (license license:gpl3+))) diff --git a/gnu/packages/aria2.scm b/gnu/packages/aria2.scm new file mode 100644 index 0000000000..707a3ce0e4 --- /dev/null +++ b/gnu/packages/aria2.scm @@ -0,0 +1,49 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> +;;; +;;; 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 aria2) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (guix build-system gnu) + #:use-module (gnu packages pkg-config)) + +(define-public c-ares + (package + (name "c-ares") + (version "1.10.0") + (source (origin + (method url-fetch) + (uri (string-append + "http://c-ares.haxx.se/download/" name "-" version + ".tar.gz")) + (sha256 + (base32 + "1nyka87yf2jfd0y6sspll0yxwb8zi7kyvajrdbjmh4axc5s1cw1x")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://c-ares.haxx.se/") + (synopsis "C library for asynchronous DNS requests") + (description + "C-ares is a C library that performs DNS requests and name resolution +asynchronously. It is intended for applications which need to perform DNS +queries without blocking, or need to perform multiple DNS queries in parallel. +The primary examples of such applications are servers which communicate with +multiple clients and programs with graphical user interfaces.") + (license (license:x11-style "http://c-ares.haxx.se/license.html")))) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index a35ef278ee..6a8347af05 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -42,6 +42,8 @@ #:use-module (gnu packages databases) #:use-module (gnu packages file) #:use-module (gnu packages flex) + #:use-module (gnu packages fltk) + #:use-module (gnu packages fontutils) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) @@ -58,6 +60,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages rdf) #:use-module (gnu packages readline) + #:use-module (gnu packages webkit) #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) @@ -128,7 +131,7 @@ Filter) modules follow the convention of 1V / Octave.") (native-inputs `(("pkg-config" ,pkg-config))) (home-page "http://aubio.org/") - (synopsis "A library for audio labelling") + (synopsis "Library for audio labelling") (description "aubio is a tool designed for the extraction of annotations from audio signals. Its features include segmenting a sound file before each of its @@ -152,13 +155,11 @@ streams from live audio.") libdir "/vamp" "\"]")))) #t)) -(define-public ardour-3 +(define-public ardour (package (name "ardour") - (version "3.5.403") + (version "4.4") (source (origin - ;; The project only provides tarballs upon individual request - ;; (or after payment) so we take the code from git. (method git-fetch) (uri (git-reference (url "git://git.ardour.org/ardour/ardour.git") @@ -171,14 +172,15 @@ streams from live audio.") "libs/ardour/revision.cc" (lambda (port) (format port "#include \"ardour/revision.h\" -namespace ARDOUR { const char* revision = \"3.5-403-gec2cb31\" ; }")))) +namespace ARDOUR { const char* revision = \"4.4-210-ga4daf93\" ; }")))) (sha256 (base32 - "01b0wxh0wlxjfz5j8gcwwqhxc6q2kn4njz2fcmzv9fr3xaya5dbp")) + "1gnrcnq2ksnh7fsa301v1c4p5dqrbqpjylf02rg3za3ab58wxi7l")) (file-name (string-append name "-" version)))) (build-system waf-build-system) (arguments - `(#:phases + `(#:configure-flags '("--cxx11") ; required by gtkmm + #:phases (modify-phases %standard-phases (add-after 'unpack 'set-rpath-in-LDFLAGS @@ -230,35 +232,6 @@ record, edit, mix and master audio and MIDI projects. It is targeted at audio engineers, musicians, soundtrack editors and composers.") (license license:gpl2+))) -(define-public ardour - (package (inherit ardour-3) - (name "ardour") - (version "4.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "git://git.ardour.org/ardour/ardour.git") - (commit version))) - (snippet - ;; Ardour expects this file to exist at build time. It can be - ;; created from a git checkout with: - ;; ./waf create_stored_revision - '(call-with-output-file - "libs/ardour/revision.cc" - (lambda (port) - (format port "#include \"ardour/revision.h\" -namespace ARDOUR { const char* revision = \"4.2\" ; }")))) - (sha256 - (base32 - "1j8zw0bvh16qwyy8qrqynpak9nghl9j3qhjjcdl7wh9raafjqc00")) - (file-name (string-append name "-" version)))) - (arguments - (substitute-keyword-arguments (package-arguments ardour-3) - ((#:phases phases) - `(modify-phases ,phases - (replace 'set-rpath-in-LDFLAGS - ,(ardour-rpath-phase (version-prefix version 1))))))))) - (define-public azr3 (package (name "azr3") @@ -301,9 +274,8 @@ plugins are provided.") (version "0.0.60") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/calf/calf/" - version "/calf-" version ".tar.gz")) + (uri (string-append "http://calf-studio-gear.org/files/calf-" + version ".tar.gz")) (sha256 (base32 "019fwg00jv217a5r767z7szh7vdrarybac0pr2sk26xp81kibrx9")))) @@ -350,6 +322,12 @@ tools (analyzer, mono/stereo tools, crossovers).") (base32 "0a1sni6lr7qpwywpggbkp0ia3h9bwwgf9i87gsag8ra2h30v82hd")))) (build-system cmake-build-system) + (arguments + ;; Work around this error on x86_64 with libc 2.22+: + ;; libmvec.so.1: error adding symbols: DSO missing from command line + (if (string-prefix? "x86_64" (or (%current-target-system) (%current-system))) + '(#:configure-flags '("-DCMAKE_EXE_LINKER_FLAGS=-lmvec")) + '())) (inputs `(("alsa-lib" ,alsa-lib) ("boost" ,boost) @@ -558,7 +536,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.") (define-public guitarix (package (name "guitarix") - (version "0.33.0") + (version "0.34.0") (source (origin (method url-fetch) (uri (string-append @@ -566,7 +544,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.") version ".tar.bz2")) (sha256 (base32 - "1w6dg2n0alfjsx1iy6s53783invygwxk11p1i65cc3nq3zlidcgx")))) + "0pamaq8iybsaglq6y1m1rlmz4wgbs2r6m24bj7x4fwg4grjvzjl8")))) (build-system waf-build-system) (arguments `(#:tests? #f ; no "check" target @@ -574,7 +552,8 @@ patches that can be used with softsynths such as Timidity and WildMidi.") #:configure-flags (list ;; Add the output lib directory to the RUNPATH. - (string-append "--ldflags=-Wl,-rpath=" %output "/lib")))) + (string-append "--ldflags=-Wl,-rpath=" %output "/lib") + "--cxxflags=-std=c++11"))) (inputs `(("libsndfile" ,libsndfile) ("boost" ,boost) @@ -586,6 +565,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.") ("jack" ,jack-1) ("gtkmm" ,gtkmm-2) ("gtk+" ,gtk+-2) + ("webkitgtk/gtk+-2" ,webkitgtk/gtk+-2) ("fftwf" ,fftwf) ("lrdf" ,lrdf) ("zita-resampler" ,zita-resampler) @@ -611,6 +591,56 @@ from a simple noise gate to modulation effects like flanger, phaser or auto-wah.") (license license:gpl2+))) +(define-public rakarrack + (package + (name "rakarrack") + (version "0.6.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/rakarrack/rakarrack/" + "rakarrack-" version "/rakarrack-" + version ".tar.bz2")) + (sha256 + (base32 + "1rpf63pdn54c4yg13k7cb1w1c7zsvl97c4qxcpz41c8l91xd55kn")) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* '("src/process.C" + "src/global.h") + (("#include <Fl/") "#include <FL/")) + #t)))) + (build-system gnu-build-system) + (inputs + `(("alsa-utils" ,alsa-utils) + ("fltk" ,fltk) + ("libx11" ,libx11) + ("libxext" ,libxext) + ("libxfixes" ,libxfixes) + ("libxft" ,libxft) + ("libxrender" ,libxrender) + ("libxpm" ,libxpm) + ("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("jack" ,jack-1) + ("alsa-lib" ,alsa-lib) + ("libsndfile" ,libsndfile) + ("libsamplerate" ,libsamplerate) + ("zlib" ,zlib))) + (home-page "http://rakarrack.sourceforge.net/") + (synopsis "Audio effects processor") + (description + "Rakarrack is a richly featured multi-effects processor emulating a +guitar effects pedalboard. Effects include compressor, expander, noise gate, +equalizers, exciter, flangers, chorus, various delay and reverb effects, +distortion modules and many more. Most of the effects engine is built from +modules found in the excellent software synthesizer ZynAddSubFX. Presets and +user interface are optimized for guitar, but Rakarrack processes signals in +stereo while it does not apply internal band-limiting filtering, and thus is +well suited to all musical instruments and vocals.") + ;; The code is explicitly licensed under the GPL version 2 only. + (license license:gpl2))) + (define-public ir (package (name "ir") @@ -707,7 +737,8 @@ synchronous execution of all clients, and low latency operation.") "03b0iiyk3ng3vh5s8gaqwn565vik7910p56mlbk512bw3dhbdwc8")))) (build-system waf-build-system) (arguments - `(#:tests? #f ; no check target + `(#:python ,python-2 + #:tests? #f ; no check target #:configure-flags '("--dbus" "--alsa") #:phases @@ -720,13 +751,22 @@ synchronous execution of all clients, and low latency operation.") ((".*CFLAGS.*-Wall.*" m) (string-append m " conf.env.append_unique('LINKFLAGS'," - "'-Wl,-rpath=" %output "/lib')\n")))))))) + "'-Wl,-rpath=" %output "/lib')\n"))))) + (add-after 'install 'wrap-python-scripts + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Make sure 'jack_control' runs with the correct PYTHONPATH. + (let* ((out (assoc-ref outputs "out")) + (path (getenv "PYTHONPATH"))) + (wrap-program (string-append out "/bin/jack_control") + `("PYTHONPATH" ":" prefix (,path)))) + #t))))) (inputs `(("alsa-lib" ,alsa-lib) ("dbus" ,dbus) ("expat" ,expat) ("libsamplerate" ,libsamplerate) ("opus" ,opus) + ("python2-dbus" ,python2-dbus) ("readline" ,readline))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -745,7 +785,16 @@ synchronous execution of all clients, and low latency operation.") (base32 "1f1hcq74n3ziw8bk97mn5a1vgw028dxikv3fchaxd430pbbhqgl9")))) (build-system waf-build-system) - (arguments `(#:tests? #f)) ; no check target + (arguments + `(#:tests? #f ; no check target + #:phases + (modify-phases %standard-phases + (add-before + 'configure 'set-flags + (lambda _ + ;; Compile with C++11, required by gtkmm. + (setenv "CXXFLAGS" "-std=c++11") + #t))))) (inputs `(("lv2" ,lv2) ("lilv" ,lilv) diff --git a/gnu/packages/autogen.scm b/gnu/packages/autogen.scm index 615839f463..238c66fe33 100644 --- a/gnu/packages/autogen.scm +++ b/gnu/packages/autogen.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013,2014 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,16 +31,15 @@ (define-public autogen (package (name "autogen") - (version "5.18.6") + (version "5.18.7") (source (origin (method url-fetch) - (uri (string-append "mirror://gnu/autogen/rel" - version "/autogen-" - version ".tar.xz")) + (uri (string-append "mirror://gnu/autogen" + "/autogen-" version ".tar.xz")) (sha256 (base32 - "0sfmmy19k9z0j3f738fyk6ljf6b66410cvd5zzyplxi2683j10qs")))) + "01d4m8ckww12sy50vgyxlnz83z9dxqpyqp153cscncc9w6jq19d7")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl) ;for doc generator mdoc ("pkg-config" ,pkg-config))) diff --git a/gnu/packages/avahi.scm b/gnu/packages/avahi.scm index b6eef1a6ad..2d480192af 100644 --- a/gnu/packages/avahi.scm +++ b/gnu/packages/avahi.scm @@ -23,7 +23,7 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (gnu packages) - #:use-module (gnu packages gdbm) + #:use-module (gnu packages databases) #:use-module (gnu packages libdaemon) #:use-module (gnu packages pkg-config) #:use-module (gnu packages glib) diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index d7ca1b1ace..d59816b6b8 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> +;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,12 +18,14 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages avr) - #:use-module (guix licenses) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) #:use-module (guix packages) #:use-module (guix build-system gnu) #:use-module (gnu packages) - #:use-module (gnu packages cross-base)) + #:use-module (gnu packages cross-base) + #:use-module (gnu packages vim) + #:use-module (gnu packages zip)) (define-public avr-libc (package @@ -48,4 +51,41 @@ (description "AVR Libc is a project whose goal is to provide a high quality C library for use with GCC on Atmel AVR microcontrollers.") - (license (non-copyleft "http://www.nongnu.org/avr-libc/LICENSE.txt")))) + (license (license:non-copyleft "http://www.nongnu.org/avr-libc/LICENSE.txt")))) + +(define-public microscheme + (package + (name "microscheme") + (version "0.9.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ryansuchocki/" + "microscheme/archive/v" version ".zip")) + (sha256 + (base32 + "0cmp1c6ilcib4w9ysqghav310g8jsq9gdfpfa9sd23wgl7mlncxf")) + (file-name (string-append name "-" version ".zip")))) + (build-system gnu-build-system) + (arguments + `(#:parallel-build? #f ; fails to build otherwise + #:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (delete 'configure)) + #:make-flags + (list (string-append "PREFIX=" (assoc-ref %outputs "out"))))) + (native-inputs + `(("unzip" ,unzip) + ("vim" ,vim))) ; for xxd + (home-page "http://microscheme.org/") + (synopsis "Scheme subset for Atmel microcontrollers") + (description + "Microscheme, or @code{(ms)} for short, is a functional programming +language for the Arduino, and for Atmel 8-bit AVR microcontrollers in general. +Microscheme is a subset of Scheme, in the sense that every valid @code{(ms)} +program is also a valid Scheme program (with the exception of Arduino +hardware-specific primitives). The @code{(ms)} compiler performs function +inlining, and features an aggressive tree-shaker, eliminating unused top-level +definitions. Microscheme has a robust @dfn{Foreign Function Interface} (FFI) +meaning that C code may be invoked directly from (ms) programs.") + (license license:expat))) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 287438e035..aa8ccbce69 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -30,9 +30,12 @@ #:use-module (gnu packages acl) #:use-module (gnu packages base) #:use-module (gnu packages compression) + #:use-module (gnu packages databases) #:use-module (gnu packages dejagnu) #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) + #:use-module (gnu packages gperf) + #:use-module (gnu packages guile) #:use-module (gnu packages linux) #:use-module (gnu packages mcrypt) #:use-module (gnu packages nettle) @@ -148,6 +151,7 @@ backups (called chunks) to allow easy burning to CD/DVD.") (search-patch "libarchive-CVE-2013-0211.patch") (search-patch "libarchive-bsdtar-test.patch"))))) (build-system gnu-build-system) + ;; TODO: Add -L/path/to/nettle in libarchive.pc. (inputs `(("zlib" ,zlib) ("nettle" ,nettle) @@ -353,3 +357,44 @@ deduplication technique used makes Attic suitable for daily backups since only changes are stored.") (home-page "https://attic-backup.org/") (license license:bsd-3))) + +(define-public libchop + (package + (name "libchop") + (version "0.5.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://savannah/libchop/libchop-" + version ".tar.gz")) + (sha256 + (base32 + "0fpdyxww41ba52d98blvnf543xvirq1v9xz1i3x1gm9lzlzpmc2g")) + (patches + (list (search-patch "diffutils-gets-undeclared.patch"))))) + (build-system gnu-build-system) + (native-inputs + `(("guile" ,guile-2.0) + ("gperf" ,gperf) + ("pkg-config" ,pkg-config))) + (inputs + `(("guile" ,guile-2.0) + ("util-linux" ,util-linux) + ("gnutls" ,gnutls) + ("tdb" ,tdb) + ("bdb" ,bdb) + ("gdbm" ,gdbm) + ("libgcrypt" ,libgcrypt) + ("lzo" ,lzo) + ("bzip2" ,bzip2) + ("zlib" ,zlib))) + (home-page "http://nongnu.org/libchop/") + (synopsis "Tools & library for data backup and distributed storage") + (description + "Libchop is a set of utilities and library for data backup and +distributed storage. Its main application is @command{chop-backup}, an +encrypted backup program that supports data integrity checks, versioning, +distribution among several sites, selective sharing of stored data, adaptive +compression, and more. The library itself implements storage techniques such +as content-addressable storage, content hash keys, Merkle trees, similarity +detection, and lossless compression.") + (license license:gpl3+))) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 179d535f20..fb3cbb4bc2 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -632,6 +632,21 @@ with the Linux kernel.") (license lgpl2.0+) (home-page "http://www.gnu.org/software/libc/"))) +(define-public glibc-2.21 + ;; The old libc, which we use mostly to build locale data in the old format + ;; (which the new libc can cope with.) + (package + (inherit glibc) + (version "2.21") + (source (origin + (inherit (package-source glibc)) + (uri (string-append "mirror://gnu/glibc/glibc-" + version ".tar.xz")) + (sha256 + (base32 + "1f135546j34s9bfkydmx2nhh9vwxlx60jldi80zmsnln6wj3dsxf")) + (patches (list (search-patch "glibc-ldd-x86_64.patch"))))))) + (define-public glibc-locales (package (inherit glibc) diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index b2f23a8442..a2d76b9673 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -193,7 +193,7 @@ number/base32-hash tuples, directly usable in the 'patch-series' form." ;; Bash is reportedly not parallel-safe. See, for instance, ;; <http://patches.openembedded.org/patch/32745/> and - ;; <http://git.buildroot.net/buildroot/commit/?h=79e2d802ae7e376a413c02097790493e1f65c3a4>. + ;; <http://git.buildroot.net/buildroot/commit/?h=79e2d802a>. #:parallel-build? #f #:parallel-tests? #f @@ -296,8 +296,10 @@ without modification.") (completions (string-append out "/share/bash-completion" "/completions")) - (already (find-files (string-append util-linux - "/etc/bash_completion.d")))) + (already (find-files + (string-append + util-linux + "/etc/bash_completion.d")))) (with-directory-excursion completions (for-each (lambda (file) (when (file-exists? file) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 51e3df6d81..7c573e1626 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -44,6 +44,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages machine-learning) #:use-module (gnu packages maths) + #:use-module (gnu packages mpi) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -347,15 +348,14 @@ provide a coordinated and extensible framework to do computational biology.") (define-public python-biopython (package (name "python-biopython") - (version "1.65") + (version "1.66") (source (origin (method url-fetch) - (uri (string-append - "http://biopython.org/DIST/biopython-" - version ".tar.gz")) + ;; use PyPi rather than biopython.org to ease updating + (uri (pypi-uri "biopython" version)) (sha256 (base32 - "13m8s9jkrw40zvdp1rl709n6lmgdh4f52aann7gzr6sfp0fwhg26")))) + "1gdv92593klimg22icf5j9by7xiq86jnwzkpz4abaa05ylkdf6hp")))) (build-system python-build-system) (inputs `(("python-numpy" ,python-numpy))) @@ -524,6 +524,89 @@ confidence to have in an alignment.") license:lgpl2.0+ license:asl2.0)))) +(define-public bless + (package + (name "bless") + (version "1p02") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/bless-ec/bless.v" + version ".tgz")) + (sha256 + (base32 + "0rm0gw2s18dqwzzpl3c2x1z05ni2v0xz5dmfk3d33j6g4cgrlrdd")) + (modules '((guix build utils))) + (snippet + `(begin + ;; Remove bundled boost, pigz, zlib, and .git directory + ;; FIXME: also remove bundled sources for google-sparsehash, + ;; murmurhash3, kmc once packaged. + (delete-file-recursively "boost") + (delete-file-recursively "pigz") + (delete-file-recursively "zlib") + (delete-file-recursively ".git") + #t)))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ;no "check" target + #:make-flags + (list (string-append "ZLIB=" + (assoc-ref %build-inputs "zlib") + "/lib/libz.a") + (string-append "LDFLAGS=" + (string-join '("-lboost_filesystem" + "-lboost_system" + "-lboost_iostreams" + "-lz" + "-fopenmp" + "-std=c++11")))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'do-not-build-bundled-pigz + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "Makefile" + (("cd pigz/pigz-2.3.3; make") "")) + #t)) + (add-after 'unpack 'patch-paths-to-executables + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "parse_args.cpp" + (("kmc_binary = .*") + (string-append "kmc_binary = \"" + (assoc-ref outputs "out") + "/bin/kmc\";")) + (("pigz_binary = .*") + (string-append "pigz_binary = \"" + (assoc-ref inputs "pigz") + "/bin/pigz\";"))) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))) + (for-each (lambda (file) + (install-file file bin)) + '("bless" "kmc/bin/kmc")) + #t))) + (delete 'configure)))) + (native-inputs + `(("perl" ,perl))) + (inputs + `(("openmpi" ,openmpi) + ("boost" ,boost) + ("pigz" ,pigz) + ("zlib" ,zlib))) + (supported-systems '("x86_64-linux")) + (home-page "http://sourceforge.net/p/bless-ec/wiki/Home/") + (synopsis "Bloom-filter-based error correction tool for NGS reads") + (description + "@dfn{Bloom-filter-based error correction solution for high-throughput +sequencing reads} (BLESS) uses a single minimum-sized bloom filter is a +correction tool for genomic reads produced by @dfn{Next-generation +sequencing} (NGS). BLESS produces accurate correction results with much less +memory compared with previous solutions and is also able to tolerate a higher +false-positive rate. BLESS can extend reads like DNA assemblers to correct +errors at the end of reads.") + (license license:gpl3+))) + (define-public bowtie (package (name "bowtie") @@ -805,15 +888,16 @@ time.") (define-public crossmap (package (name "crossmap") - (version "0.1.6") + (version "0.2.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/crossmap/CrossMap-" version ".tar.gz")) (sha256 (base32 - "163hi5gjgij6cndxlvbkp5jjwr0k4wbm9im6d2210278q7k9kpnp")) - ;; patch has been sent upstream already + "07y179f63d7qnzdvkqcziwk9bs3k4zhp81q392fp1hwszjdvy22f")) + ;; This patch has been sent upstream already and is available + ;; for download from Sourceforge, but it has not been merged. (patches (list (search-patch "crossmap-allow-system-pysam.patch"))) (modules '((guix build utils))) @@ -1028,7 +1112,7 @@ data and settings.") ("perl" ,perl))) (native-inputs `(("unzip" ,unzip))) - (home-page "http://www.ncbi.nlm.nih.gov/books/NBK179288") + (home-page "http://www.ncbi.nlm.nih.gov/books/NBK179288/") (synopsis "Tools for accessing the NCBI's set of databases") (description "Entrez Direct (EDirect) is a method for accessing the National Center @@ -1089,6 +1173,51 @@ analysis (from RNA-Seq), transcription factor binding quantification in ChIP-Seq, and analysis of metagenomic data.") (license license:artistic2.0))) +(define-public express-beta-diversity + (package + (name "express-beta-diversity") + (version "1.0.7") + (source (origin + (method url-fetch) + (uri + (string-append + "https://github.com/dparks1134/ExpressBetaDiversity/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1djvdlmqvjf6h0zq7w36y8cl5cli6rgj86x65znl48agnwmzxfxr")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'enter-source (lambda _ (chdir "source") #t)) + (replace 'check + (lambda _ (zero? (system* "../bin/ExpressBetaDiversity" + "-u")))) + (add-after 'check 'exit-source (lambda _ (chdir "..") #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") + "/bin"))) + (mkdir-p bin) + (copy-file "scripts/convertToEBD.py" + (string-append bin "/convertToEBD.py")) + (copy-file "bin/ExpressBetaDiversity" + (string-append bin "/ExpressBetaDiversity")) + #t)))))) + (inputs + `(("python" ,python-2))) + (home-page "http://kiwi.cs.dal.ca/Software/ExpressBetaDiversity") + (synopsis "Taxon- and phylogenetic-based beta diversity measures") + (description + "Express Beta Diversity (EBD) calculates ecological beta diversity +(dissimilarity) measures between biological communities. EBD implements a +variety of diversity measures including those that make use of phylogenetic +similarity of community members.") + (license license:gpl3+))) + (define-public fasttree (package (name "fasttree") @@ -1328,6 +1457,9 @@ estimates transcript expression.") `(("perl" ,perl) ("python" ,python) ("zlib" ,zlib))) + ;; Non-portable SSE instructions are used so building fails on platforms + ;; other than x86_64. + (supported-systems '("x86_64-linux")) (home-page "http://ccb.jhu.edu/software/hisat/index.shtml") (synopsis "Hierarchical indexing for spliced alignment of transcripts") (description @@ -1382,9 +1514,11 @@ HMMs).") "1i85ppf2j2lj12m0x690qq5nn17xxk23pbbx2c83r8ayb5wngzwv")))) (build-system python-build-system) (arguments `(#:python ,python-2)) ; only Python 2 is supported - (inputs - `(("python-numpy" ,python2-numpy) - ("python-setuptools" ,python2-setuptools))) + ;; Numpy needs to be propagated when htseq is used as a Python library. + (propagated-inputs + `(("python-numpy" ,python2-numpy))) + (native-inputs + `(("python-setuptools" ,python2-setuptools))) (home-page "http://www-huber.embl.de/users/anders/HTSeq/") (synopsis "Analysing high-throughput sequencing data with Python") (description @@ -1838,19 +1972,25 @@ the phenotype as it models the data.") (license license:asl2.0))) (define-public pbtranscript-tofu - (let ((commit "c7bbd5472")) + (let ((commit "8f5467fe6")) (package (name "pbtranscript-tofu") - (version (string-append "0.4.1." commit)) + (version (string-append "2.2.3." commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/PacificBiosciences/cDNA_primer.git") (commit commit))) - (file-name (string-append name "-" version ".tar.gz")) + (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "148xkzi689c49g6fdhckp6mnmj2qhjdf1j4wifm6ja7ij95d7fxx")))) + "1lgnpi35ihay42qx0b6yl3kkgra723i413j33kvs0kvs61h82w0f")) + (modules '((guix build utils))) + (snippet + '(begin + ;; remove bundled Cython sources + (delete-file "pbtranscript-tofu/pbtranscript/Cython-0.20.1.tar.gz") + #t)))) (build-system python-build-system) (arguments `(#:python ,python-2 @@ -1860,34 +2000,29 @@ the phenotype as it models the data.") #:configure-flags '("--single-version-externally-managed" "--record=pbtranscript-tofu.txt") #:phases - (alist-cons-after - 'unpack 'enter-directory-and-clean-up - (lambda _ - (chdir "pbtranscript-tofu/pbtranscript/") - ;; Delete clutter - (delete-file-recursively "dist/") - (delete-file-recursively "build/") - (delete-file-recursively "setuptools_cython-0.2.1-py2.6.egg/") - (delete-file-recursively "pbtools.pbtranscript.egg-info") - (delete-file "Cython-0.20.1.tar.gz") - (delete-file "setuptools_cython-0.2.1-py2.7.egg") - (delete-file "setuptools_cython-0.2.1.tar.gz") - (delete-file "setup.cfg") - (for-each delete-file - (find-files "." "\\.so$")) - ;; files should be writable for install phase - (for-each (lambda (f) (chmod f #o755)) - (find-files "." "\\.py$"))) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'unpack 'enter-directory + (lambda _ + (chdir "pbtranscript-tofu/pbtranscript/") + #t)) + ;; With setuptools version 18.0 and later this setup.py hack causes + ;; a build error, so we disable it. + (add-after 'enter-directory 'patch-setuppy + (lambda _ + (substitute* "setup.py" + (("if 'setuptools.extension' in sys.modules:") + "if False:")) + #t))))) (inputs - `(("python-cython" ,python2-cython) - ("python-numpy" ,python2-numpy) + `(("python-numpy" ,python2-numpy) ("python-bx-python" ,python2-bx-python) ("python-networkx" ,python2-networkx) ("python-scipy" ,python2-scipy) - ("python-pbcore" ,python2-pbcore))) + ("python-pbcore" ,python2-pbcore) + ("python-h5py" ,python2-h5py))) (native-inputs - `(("python-nose" ,python2-nose) + `(("python-cython" ,python2-cython) + ("python-nose" ,python2-nose) ("python-setuptools" ,python2-setuptools))) (home-page "https://github.com/PacificBiosciences/cDNA_primer") (synopsis "Analyze transcriptome data generated with the Iso-Seq protocol") @@ -2149,10 +2284,57 @@ viewer.") (string-append bin "/samtools"))))) (delete 'patch-tests))))))) +(define-public mosaik + (let ((commit "5c25216d")) + (package + (name "mosaik") + (version "2.2.30") + (source (origin + ;; There are no release tarballs nor tags. + (method git-fetch) + (uri (git-reference + (url "https://github.com/wanpinglee/MOSAIK.git") + (commit commit))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "17gj3s07cm77r41z92awh0bim7w7q7fbn0sf5nkqmcm1vw052qgw")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests + #:make-flags (list "CC=gcc") + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda _ (chdir "src") #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") + "/bin"))) + (mkdir-p bin) + (copy-recursively "../bin" bin) + #t)))))) + (inputs + `(("perl" ,perl) + ("zlib" ,zlib))) + (supported-systems '("x86_64-linux")) + (home-page "https://code.google.com/p/mosaik-aligner/") + (synopsis "Map nucleotide sequence reads to reference genomes") + (description + "MOSAIK is a program for mapping second and third-generation sequencing +reads to a reference genome. MOSAIK can align reads generated by all the +major sequencing technologies, including Illumina, Applied Biosystems SOLiD, +Roche 454, Ion Torrent and Pacific BioSciences SMRT.") + ;; MOSAIK is released under the GPLv2+ with the exception of third-party + ;; code released into the public domain: + ;; 1. fastlz by Ariya Hidayat - http://www.fastlz.org/ + ;; 2. MD5 implementation - RSA Data Security, RFC 1321 + (license (list license:gpl2+ license:public-domain))))) + (define-public ngs-sdk (package (name "ngs-sdk") - (version "1.1.1") + (version "1.2.2") (source (origin (method url-fetch) @@ -2162,7 +2344,7 @@ viewer.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1x58gpm574n0xmk2a98gmikbgycq78ia0bvnb42k5ck34fmd5v8y")))) + "0rvq61zfw2h9jcz6a33b9xrl20r7s5a9rldvv6rs2qy42khpmf5j")))) (build-system gnu-build-system) (arguments `(#:parallel-build? #f ; not supported @@ -2206,26 +2388,8 @@ simultaneously.") (srfi srfi-26)) ,@(package-arguments ngs-sdk)) ((#:phases phases) - `(alist-cons-after - 'enter-dir 'fix-java-symlink-installation - (lambda _ - ;; Only replace the version suffix, not the version number in - ;; the directory name. Reported here: - ;; https://github.com/ncbi/ngs/pull/4 - (substitute* "Makefile.java" - (((string-append "\\$\\(subst " - "(\\$\\(VERSION[^\\)]*\\))," - "(\\$\\([^\\)]+\\))," - "(\\$\\([^\\)]+\\)|\\$\\@)" - "\\)") - _ pattern replacement target) - (string-append "$(patsubst " - "%" pattern "," - "%" replacement "," - target ")")))) - (alist-replace - 'enter-dir (lambda _ (chdir "ngs-java") #t) - ,phases)))))) + `(modify-phases ,phases + (replace 'enter-dir (lambda _ (chdir "ngs-java") #t))))))) (inputs `(("jdk" ,icedtea6 "jdk") ("ngs-sdk" ,ngs-sdk))) @@ -2234,7 +2398,7 @@ simultaneously.") (define-public ncbi-vdb (package (name "ncbi-vdb") - (version "2.4.5-5") + (version "2.5.4") (source (origin (method url-fetch) @@ -2244,7 +2408,7 @@ simultaneously.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1cj8nk6if8sqagv20vx36v566fdvhcaadf0x1ycnbgql6chbs6vy")))) + "1rcnyc4xkdfcjww2i0s0qrbapys0cxbjcx2sy3qkpslf9f400fgj")))) (build-system gnu-build-system) (arguments `(#:parallel-build? #f ; not supported @@ -2254,20 +2418,6 @@ simultaneously.") 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - ;; Only replace the version suffix, not the version number in the - ;; directory name; fixed in commit 4dbba5c6a809 (no release yet). - (substitute* "setup/konfigure.perl" - (((string-append "\\$\\(subst " - "(\\$\\(VERSION[^\\)]*\\))," - "(\\$\\([^\\)]+\\))," - "(\\$\\([^\\)]+\\)|\\$\\@)" - "\\)") - _ pattern replacement target) - (string-append "$(patsubst " - "%" pattern "," - "%" replacement "," - target ")"))) - ;; Override include path for libmagic (substitute* "setup/package.prl" (("name => 'magic', Include => '/usr/include'") @@ -2383,49 +2533,95 @@ subsequent visualization, annotation and storage of results.") ;; LGPLv2.1+ (license (list license:gpl2 license:lgpl2.1+)))) +(define-public smithlab-cpp + (let ((revision "1") + (commit "728a097")) + (package + (name "smithlab-cpp") + (version (string-append "0." revision "." commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/smithlabcode/smithlab_cpp.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0d476lmj312xk77kr9fzrv7z1bv96yfyx0w7y62ycmnfbx32ll74")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26)) + #:tests? #f ;no "check" target + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'use-samtools-headers + (lambda _ + (substitute* '("SAM.cpp" + "SAM.hpp") + (("sam.h") "samtools/sam.h")) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (include (string-append out "/include/smithlab-cpp"))) + (mkdir-p lib) + (mkdir-p include) + (for-each (cut install-file <> lib) + (find-files "." "\\.o$")) + (for-each (cut install-file <> include) + (find-files "." "\\.hpp$"))) + #t)) + (delete 'configure)))) + (inputs + `(("samtools" ,samtools-0.1) + ("zlib" ,zlib))) + (home-page "https://github.com/smithlabcode/smithlab_cpp") + (synopsis "C++ helper library for functions used in Smith lab projects") + (description + "Smithlab CPP is a C++ library that includes functions used in many of +the Smith lab bioinformatics projects, such as a wrapper around Samtools data +structures, classes for genomic regions, mapped sequencing reads, etc.") + (license license:gpl3+)))) + (define-public preseq (package (name "preseq") - (version "1.0.2") + (version "2.0") (source (origin (method url-fetch) - (uri - (string-append "http://smithlabresearch.org/downloads/preseq-" - version ".tar.bz2")) + (uri (string-append "https://github.com/smithlabcode/" + "preseq/archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "0r7sw07p6nv8ygvc17gd78lisbw5336v3vhs86b5wv8mw3pwqksc")) - (patches (list (search-patch "preseq-1.0.2-install-to-PREFIX.patch") - (search-patch "preseq-1.0.2-link-with-libbam.patch"))) + (base32 "08r684l50pnxjpvmhzjgqq56yv9rfw90k8vx0nsrnrzk8mf9hsdq")) (modules '((guix build utils))) (snippet ;; Remove bundled samtools. - '(delete-file-recursively "preseq-master/samtools")))) + '(delete-file-recursively "samtools")))) (build-system gnu-build-system) (arguments `(#:tests? #f ;no "check" target #:phases (modify-phases %standard-phases - (add-after - 'unpack 'enter-dir - (lambda _ - (chdir "preseq-master") - #t)) - (add-after - 'enter-dir 'use-samtools-headers - (lambda _ - (substitute* '("smithlab_cpp/SAM.cpp" - "smithlab_cpp/SAM.hpp") - (("sam.h") "samtools/sam.h")) - #t)) (delete 'configure)) - #:make-flags (list (string-append "PREFIX=" - (assoc-ref %outputs "out")) - (string-append "LIBBAM=" - (assoc-ref %build-inputs "samtools") - "/lib/libbam.a")))) + #:make-flags + (list (string-append "PREFIX=" + (assoc-ref %outputs "out")) + (string-append "LIBBAM=" + (assoc-ref %build-inputs "samtools") + "/lib/libbam.a") + (string-append "SMITHLAB_CPP=" + (assoc-ref %build-inputs "smithlab-cpp") + "/lib") + "PROGS=preseq" + "INCLUDEDIRS=$(SMITHLAB_CPP)/../include/smithlab-cpp $(SAMTOOLS_DIR)"))) (inputs `(("gsl" ,gsl) ("samtools" ,samtools-0.1) + ("smithlab-cpp" ,smithlab-cpp) ("zlib" ,zlib))) (home-page "http://smithlabresearch.org/software/preseq/") (synopsis "Program for analyzing library complexity") @@ -2442,7 +2638,7 @@ complexity samples.") (define-public sra-tools (package (name "sra-tools") - (version "2.4.5-5") + (version "2.5.4") (source (origin (method url-fetch) @@ -2452,7 +2648,7 @@ complexity samples.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "11nrnvz7a012f4iryf0wiwrid0h111grsfxbxa9j51h3f2xbvgns")))) + "1rxxc8a34g70jcaa2j8sys2x93amlbc24k7az39wldhkzgi96825")))) (build-system gnu-build-system) (arguments `(#:parallel-build? #f ; not supported @@ -2595,6 +2791,43 @@ BioPython in a convenient way. Instead of having a big mess of scripts, there is one that takes arguments.") (license license:gpl3))) +(define-public snap-aligner + (package + (name "snap-aligner") + (version "1.0beta.18") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/amplab/snap/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1vnsjwv007k1fl1q7d681kbwn6bc66cgw6h16hym6gvyy71qv2ly")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'check (lambda _ (zero? (system* "./unit_tests")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (mkdir-p bin) + (install-file "snap-aligner" bin) + (install-file "SNAPCommand" bin) + #t)))))) + (native-inputs + `(("zlib" ,zlib))) + (home-page "http://snap.cs.berkeley.edu/") + (synopsis "Short read DNA sequence aligner") + (description + "SNAP is a fast and accurate aligner for short DNA reads. It is +optimized for modern read lengths of 100 bases or higher, and takes advantage +of these reads to align data quickly through a hash-based indexing scheme.") + (license license:asl2.0))) + (define-public star (package (name "star") @@ -2657,7 +2890,24 @@ sequences.") (build-system gnu-build-system) (arguments `(#:tests? #f ;no "check" target - #:make-flags '("-f" "Makefile.Linux") + ;; The CC and CCFLAGS variables are set to contain a lot of x86_64 + ;; optimizations by default, so we override these flags such that x86_64 + ;; flags are only added when the build target is an x86_64 system. + #:make-flags + (list (let ((system ,(or (%current-target-system) + (%current-system))) + (flags '("-ggdb" "-fomit-frame-pointer" + "-ffast-math" "-funroll-loops" + "-fmessage-length=0" + "-O9" "-Wall" "-DMAKE_FOR_EXON" + "-DMAKE_STANDALONE" + "-DSUBREAD_VERSION=\\\"${SUBREAD_VERSION}\\\"")) + (flags64 '("-mmmx" "-msse" "-msse2" "-msse3"))) + (if (string-prefix? "x86_64" system) + (string-append "CCFLAGS=" (string-join (append flags flags64))) + (string-append "CCFLAGS=" (string-join flags)))) + "-f" "Makefile.Linux" + "CC=gcc ${CCFLAGS}") #:phases (alist-cons-after 'unpack 'enter-dir diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm index 13630b39dc..e2d6cf8f9e 100644 --- a/gnu/packages/busybox.scm +++ b/gnu/packages/busybox.scm @@ -40,12 +40,12 @@ "12v7nri79v8gns3inmz4k24q7pcnwi00hybs0wddfkcy1afh42xf")))) (build-system gnu-build-system) (arguments - `(#:phases + `(#:phases (alist-replace - 'configure + 'configure (lambda _ (zero? (system* "make" "defconfig"))) (alist-replace - 'check + 'check (lambda _ (substitute* '("testsuite/du/du-s-works" "testsuite/du/du-works") @@ -70,7 +70,7 @@ ;; So mark it with SKIP_KNOWN_BUGS like the others. ;; Presumably it wasn't known at the time of release ... ;; (It is strange that they release software which they know to have bugs) - (("testing \"grep -w \\^str doesn't match str not at the beginning\"") + (("testing \"grep -w \\^str doesn't match str not at the beginning\"") "test x\"$SKIP_KNOWN_BUGS\" = x\"\" && testing \"grep -w ^str doesn't match str not at the beginning\"")) ;; This test cannot possibly pass. @@ -79,7 +79,7 @@ (delete-file "testsuite/which/which-uses-default-path") (rmdir "testsuite/which") - (zero? (system* "make" + (zero? (system* "make" ;; "V=1" "SKIP_KNOWN_BUGS=1" "SKIP_INTERNET_TESTS=1" diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 62a6040280..fec1fc9632 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -2,6 +2,8 @@ ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> +;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -124,14 +126,14 @@ libcdio.") (define-public xorriso (package (name "xorriso") - (version "1.4.0") + (version "1.4.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/xorriso/xorriso-" version ".tar.gz")) (sha256 (base32 - "0mhfxn2idkrw1i65a5y4gnb1fig85zpnszb9ax7w4a2v062y1l8b")))) + "1cq4a0904lnz6nygbgarnlq49cz4qnfdyvz90s3nfk5as7gbwhr8")))) (build-system gnu-build-system) (inputs `(("acl" ,acl) @@ -156,7 +158,8 @@ files.") (version "10.2") (source (origin (method url-fetch) - (uri (string-append "http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-" + (uri (string-append "http://downloads.xiph.org/releases/" + "cdparanoia/cdparanoia-III-" version ".src.tgz")) (sha256 (base32 @@ -231,6 +234,25 @@ depend on the file system of the medium. The maximum error correction capacity is user-selectable.") (license gpl2+))) +(define-public libcue + (package + (name "libcue") + (version "1.4.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/libcue/libcue-" + version ".tar.bz2")) + (sha256 + (base32 + "17kjd7rjz1bvfn44n3n2bjb7a1ywd0yc0g4sqp5ihf9b5bn7cwlb")))) + (build-system gnu-build-system) + (home-page "http://libcue.sourceforge.net/") + (synopsis "C library to parse cue sheets") + (description "Libcue is a C library to parse so-called @dfn{cue sheets} +which contain meta-data for CD/DVD tracks. It provides an API to manipulate +the data.") + (license gpl2+))) + (define-public cd-discid (package (name "cd-discid") diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index 128f0370dd..2efce6fd87 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -36,15 +36,15 @@ (define-public cmake (package (name "cmake") - (version "3.3.1") + (version "3.3.2") (source (origin (method url-fetch) - (uri (string-append - "http://www.cmake.org/files/v" - (version-major+minor version) - "/cmake-" version ".tar.gz")) + (uri (string-append "https://www.cmake.org/files/v" + (version-major+minor version) + "/cmake-" version ".tar.gz")) (sha256 - (base32 "1mp32dqywk4dfw7zmpgp31axszv7h74yk69g273z21q7d8n04rfd")) + (base32 + "08pwy9ip9cgwgynhn5vrjw8drw29gijy1rmziq22n65zds6ifnp7")) (patches (list (search-patch "cmake-fix-tests.patch"))))) (build-system gnu-build-system) (arguments @@ -66,7 +66,8 @@ "Source/cmExecProgramCommand.cxx" "Utilities/cmbzip2/Makefile-libbz2_so" "Utilities/Release/release_cmake.cmake" - "Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c" + "Utilities/cmlibarchive/libarchive/\ +archive_write_set_format_shar.c" "Tests/CMakeLists.txt" "Tests/RunCMake/File_Generate/RunCMakeTest.cmake") (("/bin/sh") (which "sh")))) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index b561d4cf6d..41d9b0d8d7 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Leo Famulari <leo@famulari.name> ;;; Copyright © 2015 Jeff Mickey <j@codemac.net> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,7 @@ (define-module (gnu packages compression) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -225,14 +227,46 @@ decompression.") "See LICENSE in the distribution.")) (home-page "http://www.bzip.org/")))) +(define-public pbzip2 + (package + (name "pbzip2") + (version "1.1.12") + (source (origin + (method url-fetch) + (uri (string-append "https://launchpad.net/pbzip2/" + (version-major+minor version) "/" version + "/+download/" name "-" version ".tar.gz")) + (sha256 + (base32 + "1vk6065dv3a47p86vmp8hv3n1ygd9hraz0gq89gvzlx7lmcb6fsp")))) + (build-system gnu-build-system) + (inputs + `(("bzip2", bzip2))) + (arguments + `(#:tests? #f ; no tests + #:phases (modify-phases %standard-phases + (delete 'configure)) + #:make-flags (list (string-append "PREFIX=" %output)))) + (home-page "http://compression.ca/pbzip2/") + (synopsis "Parallel bzip2 implementation") + (description + "Pbzip2 is a parallel implementation of the bzip2 block-sorting file +compressor that uses pthreads and achieves near-linear speedup on SMP machines. +The output of this version is fully compatible with bzip2 v1.0.2 (i.e. anything +compressed with pbzip2 can be decompressed with bzip2).") + (license (license:non-copyleft "file://COPYING" + "See COPYING in the distribution.")))) + (define-public xz (package (name "xz") (version "5.2.2") (source (origin (method url-fetch) - (uri (string-append "http://tukaani.org/xz/xz-" version - ".tar.gz")) + (uri (list (string-append "http://tukaani.org/xz/xz-" version + ".tar.gz") + (string-append "http://multiprecision.org/guix/xz-" + version ".tar.gz"))) (sha256 (base32 "18h2k4jndhzjs8ln3a54qdnfv59y6spxiwh9gpaqniph6iflvpvk")))) diff --git a/gnu/packages/conkeror.scm b/gnu/packages/conkeror.scm index 51bb1a260a..cfeb22e8c3 100644 --- a/gnu/packages/conkeror.scm +++ b/gnu/packages/conkeror.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com> -;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,46 +28,42 @@ (define-public conkeror (package (name "conkeror") - (version "1.0pre1") + (version "1.0pre1.20150730") (source (origin (method url-fetch) (uri (string-append "http://repo.or.cz/w/conkeror.git/snapshot/" - "8a26fff5896a3360549e2adfbf06b1d57e909266" - ".tar.gz")) ; tag: debian-1.0--pre-1+git140616-1 + "a1f7e879b129df5cf14ea4ce80a9c1407380ed58" + ".tar.gz")) ; tag: debian-1.0--pre-1+git150730-1 (sha256 (base32 - "1cgjzi7g3g22zcx6bpfnid4i12sb45w6icmxdzjn8d3c0m8qsyp1")))) + "1q45hc30733gz3ca2ixvw0rzzcbi7rlay7gx7kvzjv17a030nyk0")))) (build-system gnu-build-system) (inputs `(("icecat" ,icecat))) (arguments `(#:tests? #f ;no tests - #:make-flags '("CC=gcc") + #:make-flags `("CC=gcc" + ,(string-append "PREFIX=" (assoc-ref %outputs "out"))) #:phases - (alist-delete - 'configure - (alist-replace - 'install - (lambda _ - (begin - (use-modules (guix build utils)) - (let* ((datadir (string-append %output "/share/conkeror")) - (bindir (string-append %output "/bin")) - (launcher (string-append bindir "/conkeror")) - (spawn (string-append bindir "/conkeror-spawn-helper"))) - (copy-recursively "." datadir) - (mkdir-p bindir) - (copy-file "conkeror-spawn-helper" spawn) - (call-with-output-file launcher - (lambda (p) - (format p "#!~a/bin/bash + (modify-phases %standard-phases + (delete 'configure) + (add-after + 'install 'install-app-launcher + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; This overwrites the installed launcher, which execs xulrunner, + ;; with one that execs 'icecat --app' + (let* ((out (assoc-ref outputs "out")) + (datadir (string-append out "/share/conkeror")) + (launcher (string-append out "/bin/conkeror"))) + (call-with-output-file launcher + (lambda (p) + (format p "#!~a/bin/bash exec ~a/bin/icecat --app ~a \"$@\"~%" - (assoc-ref %build-inputs "bash") ;implicit input - (assoc-ref %build-inputs "icecat") - (string-append datadir - "/application.ini")))) - (chmod launcher #o555)))) - %standard-phases)))) + (assoc-ref inputs "bash") ;implicit input + (assoc-ref inputs "icecat") + (string-append datadir + "/application.ini")))) + (chmod launcher #o555))))))) (synopsis "Keyboard focused web browser with Emacs look and feel") (description "Conkeror is a highly-programmable web browser based on Mozilla XULRunner which is the base of all Mozilla products including Firefox. @@ -80,7 +76,7 @@ services (Search, Gmail, Maps, Reader, etc.), Del.icio.us, Reddit, Last.fm and YouTube. For easier editing of form fields, it can spawn external editors.") (home-page "http://conkeror.org") ;; Conkeror is triple licensed. - (license (list license:gpl2 - license:lgpl2.1 - ;; MPL 1.1 -- this license is not GPL compatible - )))) + (license (list + ;; MPL 1.1 -- this license is not GPL compatible + license:gpl2 + license:lgpl2.1)))) diff --git a/gnu/packages/cook.scm b/gnu/packages/cook.scm index 4eb3096153..d0dd80dc40 100644 --- a/gnu/packages/cook.scm +++ b/gnu/packages/cook.scm @@ -35,17 +35,17 @@ (method url-fetch) (uri (string-append "http://miller.emu.id.au/pmiller/software/cook/cook-" version - ".tar.gz")) + ".tar.gz")) (sha256 (base32 "104saqnqql1l7zr2pm3f718fdky3ds8j07c6xvwrs1rfkhrw58yw")))) (build-system gnu-build-system) (arguments `(#:parallel-build? #f ; There are some nasty racy rules in the Makefile. - #:phases + #:phases (alist-cons-before 'configure 'pre-conf - (lambda _ + (lambda _ (substitute* (append '("common/env.c") (find-files "test" "\\.sh")) (("/bin/sh") (which "sh"))) @@ -57,7 +57,7 @@ ;; which plays havoc with this test, for which correct timestamps ;; are very important. Adding the U flag undoes the effect of ;; --enable-deterministic-archives and allows this test to work - ;; again. + ;; again. (substitute* "test/00/t0077a.sh" (("ar qc") "ar qcU")) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index d3dbd28aac..d4742ca0e4 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 David Thompson <davet@gnu.org> +;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index f7c9f083b7..16140f0f9c 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Tomáš ÄŒech <sleep_walker@suse.cz> ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> @@ -39,14 +39,14 @@ (define-public curl (package (name "curl") - (version "7.44.0") + (version "7.45.0") (source (origin (method url-fetch) (uri (string-append "http://curl.haxx.se/download/curl-" version ".tar.lzma")) (sha256 (base32 - "0gjnaav9vmwwwza451na1643br7i0kxgd4002pwqh3xk5ywvdap7")))) + "0bamqik0mi2rmai016iakwrwmsz0s5xad1ghkbwsd3zkv08rgkcn")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;1.2 MiB of man3 pages @@ -95,8 +95,8 @@ ;; test 1510...[HTTP GET connection cache limit (CURLOPT_MAXCONNECTS)] ;; ;; 1510: output (log/stderr1510) FAILED: - ;; --- log/check-expected 2015-06-27 07:45:53.166720834 +0000 - ;; +++ log/check-generated 2015-06-27 07:45:53.166720834 +0000 + ;; --- log/check-expected 2015-06-27 07:45:53.166720834 +0000 + ;; +++ log/check-generated 2015-06-27 07:45:53.166720834 +0000 ;; @@ -1,5 +1,5 @@ ;; * Connection #0 to host server1.example.com left intact[LF] ;; * Connection #1 to host server2.example.com left intact[LF] diff --git a/gnu/packages/cyrus-sasl.scm b/gnu/packages/cyrus-sasl.scm index cd0f1bb401..8f3e1a1b70 100644 --- a/gnu/packages/cyrus-sasl.scm +++ b/gnu/packages/cyrus-sasl.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; ;;; This file is part of GNU Guix. @@ -19,7 +19,7 @@ (define-module (gnu packages cyrus-sasl) #:use-module (gnu packages) - #:use-module (gnu packages gdbm) + #:use-module (gnu packages databases) #:use-module (gnu packages mit-krb5) #:use-module (gnu packages tls) #:use-module ((guix licenses) #:prefix license:) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 7e669d633e..f45e3a5f1b 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -55,6 +55,28 @@ #:use-module (srfi srfi-26) #:use-module (ice-9 match)) +(define-public gdbm + (package + (name "gdbm") + (version "1.11") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gdbm/gdbm-" + version ".tar.gz")) + (sha256 + (base32 + "1hz3jgh3pd4qzp6jy0l8pd8x01g9abw7csnrlnj1a2sxy122z4cd")))) + (arguments `(#:configure-flags '("--enable-libgdbm-compat"))) + (build-system gnu-build-system) + (home-page "http://www.gnu.org/software/gdbm/") + (synopsis + "Hash library of database functions compatible with traditional dbm") + (description + "GDBM is a library for manipulating hashed databases. It is used to +store key/value pairs in a file in a manner similar to the Unix dbm library +and provides interfaces to the traditional file format.") + (license gpl3+))) + (define-public bdb (package (name "bdb") @@ -602,6 +624,30 @@ columns, primary keys, unique constraints and relationships.") (description "") (license (package-license perl)))) +(define-public perl-dbd-mysql + (package + (name "perl-dbd-mysql") + (version "4.033") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/C/CA/CAPTTOFU/" + "DBD-mysql-" version ".tar.gz")) + (sha256 + (base32 + "0769xakykps0cx368g4vaips4w3bjk383rianiavq7sq6g6bp66c")))) + (build-system perl-build-system) + ;; Tests require running MySQL server + (arguments `(#:tests? #f)) + (propagated-inputs + `(("perl-dbi" ,perl-dbi) + ("mysql" ,mysql))) + (home-page "http://search.cpan.org/dist/DBD-mysql") + (synopsis "DBI MySQL interface") + (description "This package provides a MySQL driver for the Perl5 +@dfn{Database Interface} (DBI).") + (license (package-license perl)))) + (define-public perl-dbd-sqlite (package (name "perl-dbd-sqlite") diff --git a/gnu/packages/datastructures.scm b/gnu/packages/datastructures.scm new file mode 100644 index 0000000000..361490000a --- /dev/null +++ b/gnu/packages/datastructures.scm @@ -0,0 +1,49 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages datastructures) + #:use-module (gnu packages) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public sparsehash + (package + (name "sparsehash") + (version "2.0.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/sparsehash/sparsehash/" + "archive/sparsehash-" version ".tar.gz")) + (sha256 + (base32 + "133szz0ldwch0kd91l0sa57qsnl020njn622szd9cxrjqyjqds85")))) + (build-system gnu-build-system) + (synopsis "Memory-efficient hashtable implementations") + (description + "This library contains several hash-map implementations, similar in API +to SGI's @code{hash_map} class, but with different performance +characteristics. @code{sparse_hash_map} uses very little space overhead, 1-2 +bits per entry. @code{dense_hash_map} is very fast, particulary on lookup. +@code{sparse_hash_set} and @code{dense_hash_set} are the set versions of these +routines. All these implementation use a hashtable with internal quadratic +probing. This method is space-efficient -- there is no pointer overhead -- +and time-efficient for good hash functions.") + (home-page "https://github.com/sparsehash/sparsehash") + (license license:bsd-3))) diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index b098832681..dc94f97657 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -141,6 +141,24 @@ intended for use by people who discover and report bugs in compilers and other tools that process C/C++ code.") (license ncsa))) +(define qemu-2.3.0 + (package + (inherit qemu-minimal) + (version "2.3.0") + (source (origin + (method url-fetch) + (uri (string-append + "http://wiki.qemu-project.org/download/qemu-" + version ".tar.bz2")) + (sha256 + (base32 + "120m53c3p28qxmfzllicjzr8syjv6v4d9rsyrgkp7gnmcgvvgfmn")))) + (arguments + ;; XXX: Disable tests because of GTester's rejection of duplicate test + ;; names, which wasn't addressed in this version of QEMU. + `(#:tests? #f + ,@(package-arguments qemu-minimal))))) + (define-public american-fuzzy-lop (let ((machine (match (or (%current-target-system) (%current-system)) @@ -164,11 +182,11 @@ tools that process C/C++ code.") (inputs `(("custom-qemu" ;; The afl-qemu tool builds qemu 2.3.0 with a few patches applied. - ,(package (inherit qemu-headless) + ,(package (inherit qemu-2.3.0) (name "afl-qemu") (inputs `(("afl-src" ,source) - ,@(package-inputs qemu-headless))) + ,@(package-inputs qemu-2.3.0))) ;; afl only supports using a single afl-qemu-trace executable, so ;; we only build qemu for the native target. (arguments @@ -176,7 +194,7 @@ tools that process C/C++ code.") (list (string-append "--target-list=" ,machine "-linux-user")) #:modules ((srfi srfi-1) ,@%gnu-build-system-modules) - ,@(substitute-keyword-arguments (package-arguments qemu-headless) + ,@(substitute-keyword-arguments (package-arguments qemu-2.3.0) ((#:phases qemu-phases) `(modify-phases ,qemu-phases (add-after diff --git a/gnu/packages/dico.scm b/gnu/packages/dico.scm new file mode 100644 index 0000000000..317eeeebea --- /dev/null +++ b/gnu/packages/dico.scm @@ -0,0 +1,80 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages dico) + #:use-module (guix packages) + #:use-module ((guix licenses) #:select (gpl3+)) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages readline) + #:use-module (gnu packages m4) + #:use-module (gnu packages guile) + #:use-module (gnu packages python) + #:use-module (gnu packages pcre) + #:use-module (gnu packages gsasl) + #:use-module (gnu packages autotools) + #:use-module (gnu packages compression) + #:use-module (gnu packages wordnet)) + +(define-public dico + (package + (name "dico") + (version "2.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/dico/dico-" + version ".tar.xz")) + (sha256 + (base32 + "04pjks075x20d19l623mj50bw64g8i41s63z4kzzqcbg9qg96x64")) + (patches (map search-patch + '("cpio-gets-undeclared.patch" + "dico-libtool-deterministic.patch"))))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags (list (string-append "--with-guile-site-dir=" %output + "/share/guile/site/2.0")) + #:make-flags '("V=1") + #:phases (modify-phases %standard-phases + (add-before 'check 'silence-guile + (lambda _ + ;; Guile is too talkative, which disturbs the test + ;; infrastructure. Gag it. + (setenv "GUILE_AUTO_COMPILE" "0") + (setenv "GUILE_WARN_DEPRECATED" "no") + #t))))) + (inputs + `(("m4" ,m4) ;used at run time + ("pcre" ,pcre) + ;; ("python" ,python-2) + ("guile" ,guile-2.0) + ("gsasl" ,gsasl) + ("readline" ,readline-6.2) + ("zlib" ,zlib) + ;; ("wordnet" ,wordnet) ;FIXME: link failure + ("libltdl" ,libltdl))) + (home-page "http://www.gnu.org/software/dico/") + (synopsis "Implementation of DICT server (RFC 2229)") + (description + "GNU Dico implements a flexible dictionary server and client according to +RFC 2229 (DICT Server). It is able to access any database available, +regardless of format, thanks to its modular structure. New modules may be +written in C, Guile or Python. Dico also includes a command-line client, +which may be used to query remote dictionary databases.") + (license gpl3+))) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 98b13ae110..9d3e2f9e32 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org> +;;; Copyright © 2015 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. @@ -22,9 +23,10 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) - #:use-module (gnu packages check) #:use-module (gnu packages gettext) #:use-module (gnu packages linux) + #:use-module (gnu packages perl) + #:use-module (gnu packages python) #:use-module (gnu packages readline) #:use-module (gnu packages guile) #:use-module ((gnu packages compression) @@ -33,39 +35,35 @@ (define-public parted (package (name "parted") - (version "3.1") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/parted/parted-" - version ".tar.xz")) - (sha256 - (base32 - "05fa4m1bky9d13hqv91jlnngzlyn7y4rnnyq6d86w0dg3vww372y")))) + (version "3.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/parted/parted-" + version ".tar.xz")) + (sha256 + (base32 + "1r3qpg3bhz37mgvp9chsaa3k0csby3vayfvz8ggsqz194af5i2w5")))) (build-system gnu-build-system) - (arguments `(#:configure-flags '("--disable-device-mapper") - #:phases (alist-cons-before - 'configure 'fix-mkswap - (lambda* (#:key inputs #:allow-other-keys) - (let ((util-linux (assoc-ref inputs - "util-linux"))) - (substitute* - "tests/t9050-partition-table-types.sh" - (("mkswap") - (string-append util-linux "/sbin/mkswap"))))) - %standard-phases))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after + 'unpack 'fix-locales-and-python + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "tests/t0251-gpt-unicode.sh" + (("C.UTF-8") "en_US.utf8")) ;not in Glibc locales + (substitute* "tests/msdos-overlap" + (("/usr/bin/python") (which "python")))))))) (inputs - ;; XXX: add 'lvm2'. - `(("check" ,check) - - ;; With Readline 6.3, parted/ui.c fails to build because it uses the - ;; now undefined 'CPPFunction' type. - ("readline" ,readline-6.2) - + `(("lvm2" ,lvm2) + ("readline" ,readline) ("util-linux" ,util-linux))) (native-inputs - `(("gettext" ,gnu-gettext))) - (home-page "http://www.gnu.org/software/parted/") + `(("gettext" ,gnu-gettext) + ;; For the tests. + ("perl" ,perl) + ("python" ,python-2))) + (home-page "https://www.gnu.org/software/parted/") (synopsis "Disk partition editor") (description "GNU Parted is a package for creating and manipulating disk partition @@ -124,7 +122,7 @@ to recover data more efficiently by only reading the necessary blocks.") (define-public dosfstools (package (name "dosfstools") - (version "3.0.27") + (version "3.0.28") (source (origin (method url-fetch) @@ -133,7 +131,7 @@ to recover data more efficiently by only reading the necessary blocks.") name "-" version ".tar.xz")) (sha256 (base32 - "1a2qs5g2zqbk1gzaaf4v3fw3yny6jgbzddpgcamkp3fjifn8wxl5")))) + "1qkya6lald91c8nsf29jwnk0k5v42wlj24gacfdp3wpc8hq935gf")))) (build-system gnu-build-system) (arguments `(#:make-flags (list (string-append "PREFIX=" %output) diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm index 3ec0377f57..9f5fbf1d96 100644 --- a/gnu/packages/docbook.scm +++ b/gnu/packages/docbook.scm @@ -134,8 +134,9 @@ by no means limited to these applications.) This package provides XML DTDs.") (string-append xsl "/" name-version)) (substitute* (string-append xsl "/" name-version "/catalog.xml") - (("rewritePrefix=\"./") - (string-append "rewritePrefix=\"file://" xsl "/" name-version "/"))))) + (("rewritePrefix=\"./") + (string-append "rewritePrefix=\"file://" xsl "/" + name-version "/"))))) #:modules ((guix build utils)))) (native-inputs `(("bzip2" ,bzip2) ("tar" ,tar))) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 9751125113..947c7e282c 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -227,13 +227,14 @@ metadata.") (define-public paredit (package (name "paredit") - (version "23") + (version "24") (source (origin - (method url-fetch) - (uri (string-append "http://mumble.net/~campbell/emacs/paredit-" - version ".el")) - (sha256 - (base32 "1np882jzvxckljx3cjz4absyzmc5hw65cs21sjmbic82163m9lf8")))) + (method url-fetch) + (uri (string-append "http://mumble.net/~campbell/emacs/paredit-" + version ".el")) + (sha256 + (base32 + "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka")))) (build-system trivial-build-system) (inputs `(("emacs" ,emacs-no-x))) (arguments @@ -317,7 +318,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.") (define-public magit (package (name "magit") - (version "2.2.2") + (version "2.3.1") (source (origin (method url-fetch) (uri (string-append @@ -325,7 +326,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.") version "/" name "-" version ".tar.gz")) (sha256 (base32 - "1imkj4prprnivhbpdn1mdpiryxkckzy5hbnqaahv7gixwac1irh8")))) + "1wnx034adkwhbsydd10il2099hpzz351kp39sri8s1yd43f795gf")))) (build-system gnu-build-system) (native-inputs `(("texinfo" ,texinfo) ("emacs" ,emacs-no-x))) @@ -373,7 +374,7 @@ operations.") (define-public magit-svn (package (name "magit-svn") - (version "2.1.0") + (version "2.1.1") (source (origin (method url-fetch) (uri (string-append @@ -382,7 +383,7 @@ operations.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "09sz93g7x7g9q75jsw8bdh7yr4jr1igfb4fpg5i302a7l2ahxfr8")))) + "04y88j7q9h8xjbx5dbick6n5nr1522sn9i1znp0qwk3vjb4b5mzz")))) (build-system trivial-build-system) (native-inputs `(("emacs" ,emacs-no-x) ("tar" ,tar) @@ -574,13 +575,14 @@ provides an optional IDE-like error list.") (define-public emacs-w3m (package (name "emacs-w3m") - (version "1.4.483+0.20120614") + (version "1.4.538+0.20141022") (source (origin (method url-fetch) (uri (string-append "mirror://debian/pool/main/w/w3m-el/w3m-el_" version ".orig.tar.gz")) (sha256 - (base32 "0ms181gjavnfk79hhv5xl9llik4c6kj0w3c04kgyif8lcy2sxljx")))) + (base32 + "0zfxmq86pwk64yv0426gnjrvhjrgrjqn08sdcdhmmjmfpmqvm79y")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf))) (inputs `(("w3m" ,w3m) @@ -597,43 +599,46 @@ provides an optional IDE-like error list.") (list (string-append "--with-lispdir=" out "/share/emacs/site-lisp") (string-append "--with-icondir=" - out "/share/images/emacs-w3m"))) + out "/share/images/emacs-w3m") + ;; Leave .el files uncompressed, otherwise GC can't + ;; identify run-time dependencies. See + ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html> + "--without-compress-install")) #:tests? #f ; no check target #:phases - (alist-cons-after - 'unpack 'autoconf - (lambda _ - (zero? (system* "autoconf"))) - (alist-cons-before - 'build 'patch-exec-paths - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (w3m (assoc-ref inputs "w3m")) - (imagemagick (assoc-ref inputs "imagemagick")) - (coreutils (assoc-ref inputs "coreutils"))) - (emacs-substitute-variables "w3m.el" - ("w3m-command" (string-append w3m "/bin/w3m")) - ("w3m-touch-command" (string-append coreutils "/bin/touch")) - ("w3m-image-viewer" (string-append imagemagick "/bin/display")) - ("w3m-icon-directory" (string-append out - "/share/images/emacs-w3m"))) - (emacs-substitute-variables "w3m-image.el" - ("w3m-imagick-convert-program" (string-append imagemagick - "/bin/convert")) - ("w3m-imagick-identify-program" (string-append imagemagick - "/bin/identify"))) - #t)) - (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (and (zero? (system* "make" "install" "install-icons")) - (with-directory-excursion - (string-append (assoc-ref outputs "out") - "/share/emacs/site-lisp") - (for-each delete-file '("ChangeLog" "ChangeLog.1")) - (symlink "w3m-load.el" "w3m-autoloads.el") - #t))) - %standard-phases))))) + (modify-phases %standard-phases + (add-after 'unpack 'autoconf + (lambda _ + (zero? (system* "autoconf")))) + (add-before 'build 'patch-exec-paths + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (w3m (assoc-ref inputs "w3m")) + (imagemagick (assoc-ref inputs "imagemagick")) + (coreutils (assoc-ref inputs "coreutils"))) + (emacs-substitute-variables "w3m.el" + ("w3m-command" (string-append w3m "/bin/w3m")) + ("w3m-touch-command" + (string-append coreutils "/bin/touch")) + ("w3m-image-viewer" + (string-append imagemagick "/bin/display")) + ("w3m-icon-directory" + (string-append out "/share/images/emacs-w3m"))) + (emacs-substitute-variables "w3m-image.el" + ("w3m-imagick-convert-program" + (string-append imagemagick "/bin/convert")) + ("w3m-imagick-identify-program" + (string-append imagemagick "/bin/identify"))) + #t))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (and (zero? (system* "make" "install" "install-icons")) + (with-directory-excursion + (string-append (assoc-ref outputs "out") + "/share/emacs/site-lisp") + (for-each delete-file '("ChangeLog" "ChangeLog.1")) + (symlink "w3m-load.el" "w3m-autoloads.el") + #t))))))) (home-page "http://emacs-w3m.namazu.org/") (synopsis "Simple Web browser for Emacs based on w3m") (description @@ -912,7 +917,7 @@ single buffer.") (define-public emacs-pdf-tools (package (name "emacs-pdf-tools") - (version "0.60") + (version "0.70") (source (origin (method url-fetch) (uri (string-append @@ -921,7 +926,7 @@ single buffer.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1y8k5n2jbyaxby0j6f4m9xbm0ddpmbkrfj6rp6ll5sb97lcg3vrx")))) + "1m0api6wiawswyk46bdsyk6r5rg3b86a4paar6nassm6x6c6vr77")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; there are no tests @@ -981,7 +986,7 @@ and stored in memory.") (define-public emacs-dash (package (name "emacs-dash") - (version "2.11.0") + (version "2.12.1") (source (origin (method url-fetch) (uri (string-append @@ -990,7 +995,7 @@ and stored in memory.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1piwcwilkxcbjxx832mhb7q3pz1fgwp203r581bpqcw6kd5x726q")))) + "082jl7mp4x063bpj5ad2pc5125k0d6p7rb89gcj7ny3lma9h2ij1")))) (build-system emacs-build-system) (arguments `(#:phases @@ -1024,7 +1029,7 @@ and stored in memory.") (lambda _ (zero? (system* "./run-tests.sh"))))))) (home-page "https://github.com/magnars/s.el") - (synopsis "Emacs string manipulation library.") + (synopsis "Emacs string manipulation library") (description "This package provides an Emacs library for manipulating strings.") (license license:gpl3+))) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 1c378f63a7..554399b049 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -140,7 +140,7 @@ plans and designs.") (home-page "http://geda-project.org/") (synopsis "Schematic capture, netlister, symbols, symbol checker, and utils") (description - "gaf stands for “gschem and friendsâ€. It is a subset of the entire tool + "Gaf stands for “gschem and friendsâ€. It is a subset of the entire tool suite grouped together under the gEDA name. gEDA/gaf is a collection of tools which currently includes: gschem, a schematic capture program; gnetlist, a netlist generation program; gsymcheck, a syntax checker for schematic symbols; diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 0a91995a0a..6224a2a527 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Tomáš ÄŒech <sleep_walker@suse.cz> ;;; Copyright © 2015 Daniel Pimentel <d4n1@member.fsf.org> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -51,7 +52,7 @@ (define-public efl (package (name "efl") - (version "1.15.2") + (version "1.16.0") (source (origin (method url-fetch) (uri (string-append @@ -59,7 +60,7 @@ version ".tar.xz")) (sha256 (base32 - "1962wqx7gdnpzvnkbighyn4hj5vw8l4c1d7xl5zilqjlyhcqywyx")))) + "08w3hrjyz1yjqjq77px86fljxxi5xz5yfy79qwssypafjvcvpzky")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -134,7 +135,7 @@ removable devices or support for multimedia.") (define-public elementary (package (name "elementary") - (version "1.15.2") + (version "1.16.0") (source (origin (method url-fetch) (uri @@ -142,7 +143,7 @@ removable devices or support for multimedia.") "elementary/elementary-" version ".tar.xz")) (sha256 (base32 - "0gqg98bglnl2jggdzxzrh9r7bv32i4sahspms0bihq8b45rk0g2j")))) + "1546b7pdpw6nx1hjxy674zr8dgpzwl7lq3hvnv4axkpd4zwkqgs8")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -159,7 +160,7 @@ full capabilities of EFL.") (define-public evas-generic-loaders (package (name "evas-generic-loaders") - (version "1.15.0") + (version "1.16.0") (source (origin (method url-fetch) (uri @@ -169,7 +170,7 @@ full capabilities of EFL.") version ".tar.xz")) (sha256 (base32 - "0zzx06j20x580xqnnsxp7gb7rv279zcgvdxfbhs905af9m6rwlqy")))) + "1il3i3rii6ddpj7cw2mdqnb0q2wmhwnvs6qi9janna1n5hhrqyfm")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -191,7 +192,7 @@ files in Evas (EFL canvas library).") (define-public emotion-generic-players (package (name "emotion-generic-players") - (version "1.15.0") + (version "1.16.0") (source (origin (method url-fetch) (uri @@ -200,7 +201,7 @@ files in Evas (EFL canvas library).") "-" version ".tar.xz")) (sha256 (base32 - "0pszwmcygxnv1sfx0m79md2jmi4sng8mdb1xcr6h2z5c8685wvcz")))) + "163ay26c6dx49m1am7vsxxn0gy877zhayxq0yxn9zkbq2srzvjym")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -270,16 +271,18 @@ Libraries with some extra bells and whistles.") (define-public enlightenment (package (name "enlightenment") - (version "0.19.12") + (version "0.20.0") (source (origin (method url-fetch) (uri (string-append "https://download.enlightenment.org/rel/apps/" name "/" name "-" version ".tar.xz")) (sha256 - (base32 - "098bdx9qmv1yqqwfydrzs7fvbnhsf3vaib9pmqsyg4ihgqrkrwjm")))) + (base32 + "0mwiim0nv640v3af7qxc5ajfk702qkl5c1cnqlhz6rqzr5yjapxv")))) (build-system gnu-build-system) + (arguments + `(#:configure-flags '("--enable-mount-eeze"))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index 97f2975e51..271fb49dd7 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -38,6 +38,7 @@ (sha256 (base32 "16jbj8avg5jkgvq5lxm0hdxxn4c3zn7fx8b4nxllvr024apk9w23")) + (file-name (string-append name "-" version "-checkout")) (patches (list (search-patch "ath9k-htc-firmware-objcopy.patch"))))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/fish.scm b/gnu/packages/fish.scm index 94e418a8b1..6392efe308 100644 --- a/gnu/packages/fish.scm +++ b/gnu/packages/fish.scm @@ -20,6 +20,7 @@ #:use-module (guix licenses) #:use-module (gnu packages doxygen) #:use-module (gnu packages ncurses) + #:use-module (gnu packages python) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) @@ -45,7 +46,8 @@ (native-inputs `(("doxygen" ,doxygen))) (inputs - `(("ncurses" ,ncurses))) + `(("ncurses" ,ncurses) + ("python" ,python-wrapper))) ;for fish_config and manpage completions (arguments '(#:tests? #f ; no check target #:configure-flags '("--sysconfdir=/etc"))) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 4ce8addceb..cfdcac8f7f 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -390,17 +390,17 @@ for long (8 and more hours per day) work with computers.") (define-public font-adobe-source-han-sans (package (name "font-adobe-source-han-sans") - (version "1.001R") + (version "1.004") (source (origin (method url-fetch) (uri (string-append "https://github.com/adobe-fonts/source-han-sans/archive/" - version ".tar.gz")) - (file-name (string-append "source-han-sans-" version ".tar.gz")) + version "R.tar.gz")) + (file-name (string-append "source-han-sans-" version "R.tar.gz")) (sha256 (base32 - "0cwz3d8jancl0a7vbjxhnh1vgwsjba62lahfjya9yrjkp1ndxlap")))) - (outputs '("out" ; OpenType/CFF Collection (OTC), 119 MiB. + "1ssx0fw90sy6mj8fv8fv4dgzszpqwbmwpjnlx16g4pvaqzdmybbz")))) + (outputs '("out" ; OpenType/CFF Collection (OTC), 121 MiB. "cn" "jp" "kr" "tw")) ; Region-specific Subset OpenType/CFF. (build-system trivial-build-system) (arguments @@ -421,12 +421,13 @@ for long (8 and more hours per day) work with computers.") "/share/fonts/opentype"))))) (setenv "PATH" PATH) (system* tar "xvf" (assoc-ref %build-inputs "source")) - (chdir (string-append "source-han-sans-" ,version)) + (chdir (string-append "source-han-sans-" ,version "R")) (install-opentype-fonts "OTC" "out") (install-opentype-fonts "SubsetOTF/CN" "cn") (install-opentype-fonts "SubsetOTF/JP" "jp") (install-opentype-fonts "SubsetOTF/KR" "kr") - (install-opentype-fonts "SubsetOTF/TW" "tw"))))) + (install-opentype-fonts "SubsetOTF/TW" "tw") + (for-each delete-file (find-files %output "\\.zip$")))))) (native-inputs `(("gzip" ,gzip) ("tar" ,tar))) @@ -439,7 +440,7 @@ And in several OpenType/CFF-based deployment configurations to accommodate various system requirements or limitations. As the name suggests, Pan-CJK fonts are intended to support the characters necessary to render or display text in Simplified Chinese, Traditional Chinese, Japanese, and Korean.") - (license license:asl2.0))) + (license license:silofl1.1))) (define-public font-wqy-zenhei (package diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 3db8f9f11d..f31b905156 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -203,7 +203,7 @@ applications should be.") (define-public graphite2 (package (name "graphite2") - (version "1.3.1") + (version "1.3.3") (source (origin (method url-fetch) @@ -212,7 +212,7 @@ applications should be.") version ".tgz")) (sha256 (base32 - "0xvhmlyyxg2qmbwyl8k2f9w7mrbjyl59823pnjd8xmxpyl6976d5")))) + "1n22vvi4jl83m4sqhvd7v31bhyhyd8j6c3yjgh4zjfyrvid16jrg")))) (build-system cmake-build-system) (native-inputs `(("python" ,python-2) ; because of "import imap" in tests diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 0f836d3c01..3db7ff7835 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -157,7 +157,10 @@ the freedesktop.org XDG Base Directory specification.") (assoc-ref %build-inputs "libcap")) (string-append "--with-udevrulesdir=" (assoc-ref %outputs "out") - "/lib/udev/rules.d")) + "/lib/udev/rules.d") + ;; XXX: fail with: + ;; src/shared/clean-ipc.c:315: undefined reference to `mq_unlink' + "LDFLAGS=-lrt") #:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent"))) (native-inputs `(("intltool" ,intltool) @@ -236,14 +239,14 @@ Python.") (define-public wayland (package (name "wayland") - (version "1.8.1") + (version "1.9.0") (source (origin (method url-fetch) (uri (string-append "http://wayland.freedesktop.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "1j3gfzn8i0xhk3j34mwb2srrscjxfyi279jhyq80mz943j6r6z7i")))) + "1yhy62vkbq8j8c9zaa6yzvn75cd99kfa8n2zfdwl80x019r711ww")))) (build-system gnu-build-system) (native-inputs `(("doxygen" ,doxygen) @@ -340,12 +343,19 @@ Analysis and Reporting Technology) functionality.") `(("acl" ,acl) ("libatasmart" ,libatasmart) ("libgudev" ,libgudev) - ("polkit" ,polkit))) + ("polkit" ,polkit) + ("util-linux" ,util-linux))) + (outputs '("out" + "doc")) ;5 MiB of gtk-doc HTML (arguments `(#:tests? #f ; requiring system message dbus #:configure-flags (list "--disable-man" "--localstatedir=/var" + "--enable-fhs-media" ;mount devices in /media, not /run/media + (string-append "--with-html-dir=" + (assoc-ref %outputs "doc") + "/share/doc/udisks/html") (string-append "--with-udevdir=" %output "/lib/udev")) #:phases (modify-phases %standard-phases @@ -357,7 +367,18 @@ Analysis and Reporting Technology) functionality.") (("girdir = .*") "girdir = $(datadir)/gir-1.0\n") (("typelibsdir = .*") - "typelibsdir = $(libdir)/girepository-1.0\n"))))))) + "typelibsdir = $(libdir)/girepository-1.0\n")))) + (add-after 'install 'set-mount-file-name + (lambda* (#:key outputs inputs #:allow-other-keys) + ;; Tell 'udisksd' where to find the 'mount' command. + (let ((out (assoc-ref outputs "out")) + (utils (assoc-ref inputs "util-linux"))) + (wrap-program (string-append out "/libexec/udisks2/udisksd") + `("PATH" ":" prefix + (,(string-append utils "/bin") ;for 'mount' + "/run/current-system/profile/bin" + "/run/current-system/profile/sbin"))) + #t)))))) (home-page "http://www.freedesktop.org/wiki/Software/udisks/") (synopsis "Disk manager service") (description diff --git a/gnu/packages/freeipmi.scm b/gnu/packages/freeipmi.scm index badecc60ba..6cbad6b1b6 100644 --- a/gnu/packages/freeipmi.scm +++ b/gnu/packages/freeipmi.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,14 +28,14 @@ (define-public freeipmi (package (name "freeipmi") - (version "1.4.10") + (version "1.5.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/freeipmi/freeipmi-" version ".tar.gz")) (sha256 (base32 - "1l98l8g8lha85q1d288wr7dyx00x36smh9g5wza15n4wm35c9wqs")))) + "0lhjxlha4j5rx11d81y1rgp9j18rlpxsjc0flsmj6bm60awmm627")))) (build-system gnu-build-system) (inputs `(("readline" ,readline) ("libgcrypt" ,libgcrypt))) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index fcebf2b548..1e3854aab1 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -48,7 +48,9 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages sdl) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages xiph)) + #:use-module (gnu packages xiph) + #:use-module (gnu packages lua) + #:use-module (gnu packages mp3)) (define-public bullet (package @@ -260,3 +262,35 @@ files can be accessed in the same way as you access files directly on a disk, and it makes it easy to ship a new archive that will override a previous archive on a per-file basis.") (license license:zlib))) + +(define-public love + (package + (name "love") + (version "0.9.2") + (source (origin + (method url-fetch) + (uri (string-append "https://bitbucket.org/rude/love/downloads/" + "love-" version "-linux-src.tar.gz")) + (sha256 + (base32 + "0wn1npr5gal5b1idh4a5fwc3f5c36lsbjd4r4d699rqlviid15d9")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("devil" ,devil) + ("freetype" ,freetype) + ("libmodplug" ,libmodplug) + ("libvorbis" ,libvorbis) + ("luajit" ,luajit) + ("mesa" ,mesa) + ("mpg123" ,mpg123) + ("openal" ,openal) + ("physfs" ,physfs) + ("sdl2" ,sdl2) + ("zlib" ,zlib))) + (synopsis "2D game framework for Lua") + (description "LÖVE is a framework for making 2D games in the Lua +programming language.") + (home-page "https://love2d.org/") + (license license:zlib))) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 3023794218..f7a7636a86 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1,17 +1,19 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 John Darrington <jmd@gnu.org> -;;; Copyright © 2014 David Thompson <dthompson2@worcester.edu> +;;; Copyright © 2014, 2015 David Thompson <dthompson2@worcester.edu> ;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com> ;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net> ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015 Sou Bunnbu <iyzsong@gmail.com> -;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> ;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Alex Kost <alezost@gmail.com> +;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> +;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,7 +36,11 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix svn-download) #:use-module (gnu packages) + #:use-module (gnu packages algebra) + #:use-module (gnu packages autotools) + #:use-module (gnu packages backup) #:use-module (gnu packages base) #:use-module (gnu packages admin) #:use-module (gnu packages audio) @@ -49,6 +55,7 @@ #:use-module (gnu packages guile) #:use-module (gnu packages libcanberra) #:use-module (gnu packages libunwind) + #:use-module (gnu packages haskell) #:use-module (gnu packages mp3) #:use-module (gnu packages image) #:use-module (gnu packages ncurses) @@ -78,6 +85,7 @@ #:use-module (gnu packages fribidi) #:use-module (guix build-system trivial) #:use-module (guix build-system gnu) + #:use-module (guix build-system haskell) #:use-module (guix build-system cmake) #:use-module (guix build-system trivial)) @@ -151,8 +159,8 @@ scriptable with Guile.") (source (origin (method url-fetch) - (uri (string-append "http://abbaye-for-linux.googlecode.com/files/abbaye-for-linux-src-" - version ".tar.gz")) + (uri (string-append "http://abbaye-for-linux.googlecode.com/files/" + "abbaye-for-linux-src-" version ".tar.gz")) (sha256 (base32 "1wgvckgqa2084rbskxif58wbb83xbas8s1i8s7d57xbj08ryq8rk")))) @@ -1048,6 +1056,48 @@ experience and advance levels, and are carried over from one scenario to the next campaign.") (license license:gpl2+))) +(define-public dosbox + (package + (name "dosbox") + (version "0.74.svn3947") + (source (origin + (method svn-fetch) + (uri (svn-reference + (url "http://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk/") + (revision 3947))) + (file-name (string-append name "-" version "-checkout")) + ;; Use SVN head, since the last release (2010) is incompatible + ;; with GCC 4.8+ (see + ;; <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=624976>). + (sha256 + (base32 + "1p918j6090d1nkvgq7ifvmn506zrdmyi32y7p3ms40d5ssqjg8fj")))) + (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after + 'unpack 'autogen.sh + (lambda _ + (zero? (system* "sh" "autogen.sh"))))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake))) + (inputs + `(("sdl" ,sdl) + ("libpng" ,libpng) + ("zlib" ,zlib) + ("alsa-lib" ,alsa-lib) + ("glu" ,glu) + ("mesa" ,mesa))) + (home-page "http://www.dosbox.com") + (synopsis "X86 emulator with CGA/EGA/VGA/etc. graphics and sound") + (description "DOSBox is a DOS-emulator that uses the SDL library. DOSBox +also emulates CPU:286/386 realmode/protected mode, Directory +FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, a +SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with +older games.") + (license license:gpl2+))) + (define-public gamine (package (name "gamine") @@ -1094,10 +1144,43 @@ on the screen and keyboard to display letters.") ;; Most files under gpl2+ or gpl3+, but eat.wav under gpl3 (license license:gpl3))) +(define-public raincat + (package + (name "raincat") + (version "1.1.1.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/Raincat/Raincat-" + version + ".tar.gz")) + (sha256 + (base32 + "1aalh68h6799mv4vyg30zpskl5jkn6x2j1jza7p4lrflyifxzar8")))) + (build-system haskell-build-system) + (inputs + `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions) + ("ghc-mtl" ,ghc-mtl) + ("ghc-random" ,ghc-random) + ("ghc-glut" ,ghc-glut) + ("ghc-opengl" ,ghc-opengl) + ("ghc-sdl" ,ghc-sdl) + ("ghc-sdl-image" ,ghc-sdl-image) + ("ghc-sdl-mixer" ,ghc-sdl-mixer))) + (home-page "http://raincat.bysusanlin.com/") + (synopsis "Puzzle game with a cat in lead role") + (description "Project Raincat is a game developed by Carnegie Mellon +students through GCS during the Fall 2008 semester. Raincat features game +play inspired from classics Lemmings and The Incredible Machine. The project +proved to be an excellent learning experience for the programmers. Everything +is programmed in Haskell.") + (license license:bsd-3))) + (define-public manaplus (package (name "manaplus") - (version "1.5.9.26") + (version "1.5.12.5") (source (origin (method url-fetch) (uri (string-append @@ -1105,7 +1188,7 @@ on the screen and keyboard to display letters.") version "/manaplus-" version ".tar.xz")) (sha256 (base32 - "070ms1cv7q88284pqh66lfhacckgv7m9s8z9009k2laypibx7vs6")))) + "0kmd743q40v82221wj8b09n30lqiwl7096v3m7ki3ynsgszkm326")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -1132,3 +1215,641 @@ world}, @uref{http://evolonline.org, Evol Online} and ;; "data/themes/{golden-delicious,jewelry}/*" are under CC-BY-SA. ;; The rest is under GPL2+. (license (list license:gpl2+ license:zlib license:cc-by-sa4.0)))) + +(define-public mupen64plus-core + (package + (name "mupen64plus-core") + (version "2.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-core/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0dg2hksm5qni2hcha93k7n4fqr92888p946f7phb0ndschzfh9kk")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("freetype" ,freetype) + ("glu" ,glu) + ("libpng" ,libpng) + ("mesa" ,mesa) + ("sdl2" ,sdl2) + ("zlib" ,zlib))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix")))) + #:make-flags (let ((out (assoc-ref %outputs "out"))) + (list "all" (string-append "PREFIX=" out))) + ;; There are no tests. + #:tests? #f)) + ;; As per the Makefile (in projects/unix/Makefile): + (supported-systems '("i686-linux" "x86_64-linux")) + (home-page "http://www.mupen64plus.org/") + (synopsis "Nintendo 64 emulator core library") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +core library.") + (license license:gpl2+))) + +(define-public mupen64plus-audio-sdl + (package + (name "mupen64plus-audio-sdl") + (version "2.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-audio-sdl/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0ss6w92n2rpfnazhg9lbq0nvs3fqx93nliz3k3wjxdlx4dpi7h3a")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("mupen64plus-core" ,mupen64plus-core) + ("sdl2" ,sdl2))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix")))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus SDL input plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +SDL audio plugin.") + (license license:gpl2+))) + +(define-public mupen64plus-input-sdl + (package + (name "mupen64plus-input-sdl") + (version "2.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-input-sdl/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "11sj5dbalp2nrlmki34vy7wy28vc175pnnkdk65p8599hnyq37ri")))) + (build-system gnu-build-system) + (native-inputs + `(("which" ,which))) + (inputs + `(("mupen64plus-core" ,mupen64plus-core) + ("sdl2" ,sdl2))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix")))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus SDL input plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +SDL input plugin.") + (license license:gpl2+))) + +(define-public mupen64plus-rsp-hle + (package + (name "mupen64plus-rsp-hle") + (version "2.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-rsp-hle/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "15h7mgz6xd2zjzm6l3f96sbs8kwr3xvbwzgikhnka79m6c69hsxv")))) + (build-system gnu-build-system) + (inputs + `(("mupen64plus-core" ,mupen64plus-core))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix")))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus SDL input plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +high-level emulation (HLE) RSP processor plugin.") + (license license:gpl2+))) + +(define-public mupen64plus-rsp-z64 + (package + (name "mupen64plus-rsp-z64") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-rsp-z64/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "10jz1w2dhx5slhyk4m8mdqlpsd6cshchslr1fckb2ayzb1ls3ghi")))) + (build-system gnu-build-system) + (inputs + `(("mupen64plus-core" ,mupen64plus-core))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix")))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus SDL input plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +Z64 RSP processor plugin.") + (license license:gpl2+))) + +(define-public mupen64plus-video-arachnoid + (package + (name "mupen64plus-video-arachnoid") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-video-arachnoid/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0jjwf144rihznm4lnqbhgigxw664v3v32wy94adaa6imk8z6gslh")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("mesa" ,mesa) + ("mupen64plus-core" ,mupen64plus-core))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix")))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus Rice Video plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +Arachnoid video plugin.") + (license license:gpl2+))) + +(define-public mupen64plus-video-glide64 + (package + (name "mupen64plus-video-glide64") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-video-glide64/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1rm55dbf6xgsq1blbzs6swa2ajv0qkn38acbljj346abnk6s3dla")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("mesa" ,mesa) + ("mupen64plus-core" ,mupen64plus-core) + ("sdl2" ,sdl2))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix"))) + ;; XXX Should be unnecessary with the next release. + (add-before + 'build 'use-sdl2 + (lambda _ + (substitute* "Makefile" + (("SDL_CONFIG = (.*)sdl-config" all prefix) + (string-append "SDL_CONFIG = " prefix "sdl2-config")))))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus Rice Video plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +Glide64 video plugin.") + (license license:gpl2+))) + +(define-public mupen64plus-video-glide64mk2 + (package + (name "mupen64plus-video-glide64mk2") + (version "2.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-video-glide64mk2/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1ihl4q293d6svba26b4mhapjcdg12p90gibz79b4mx423jlcxxj9")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("boost" ,boost) + ("libpng" ,libpng) + ("mesa" ,mesa) + ("mupen64plus-core" ,mupen64plus-core) + ("sdl2" ,sdl2) + ("zlib" ,zlib))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix")))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus Rice Video plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +Glide64MK2 video plugin.") + (license license:gpl2+))) + +(define-public mupen64plus-video-rice + (package + (name "mupen64plus-video-rice") + (version "2.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-video-rice/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0rd2scjmh285w61aj3mgx71whg5rqrjbry3cdgicczrnyvf8wdvk")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("libpng" ,libpng) + ("mesa" ,mesa) + ("mupen64plus-core" ,mupen64plus-core) + ("sdl2" ,sdl2))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix")))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus Rice Video plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +Rice Video plugin.") + (license license:gpl2+))) + +(define-public mupen64plus-video-z64 + (package + (name "mupen64plus-video-z64") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-video-z64/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1x7wsjs5gx2iwx20p4cjcbf696zsjlh31qxmghwv0ifrq8x58s1b")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("glew" ,glew) + ("mupen64plus-core" ,mupen64plus-core) + ("sdl2" ,sdl2))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix"))) + ;; XXX Should be unnecessary with the next release. + (add-before + 'build 'use-sdl2 + (lambda _ + (substitute* "Makefile" + (("SDL_CONFIG = (.*)sdl-config" all prefix) + (string-append "SDL_CONFIG = " prefix "sdl2-config")))))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus Z64 video plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +Z64 video plugin.") + (license license:gpl2+))) + +(define-public mupen64plus-ui-console + (package + (name "mupen64plus-ui-console") + (version "2.5") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mupen64plus/mupen64plus-ui-console/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "04qkpd8ic7xsgnqz7spl00wxdygf79m7d1k8rabbygjk5lg6p8z2")) + (patches + (list (search-patch "mupen64plus-ui-console-notice.patch"))))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("sdl2" ,sdl2))) + ;; Mupen64Plus supports a single data directory and a single plugin + ;; directory in its configuration, yet we need data and plugin files from + ;; a variety of packages. The best way to deal with this is to install + ;; all packages from which data and plugin files are needed into one's + ;; profile, and point the configuration there. Hence, propagate the most + ;; important packages here to save the user from the bother. The patch + ;; mupen64plus-ui-console-notice also gives users instructions on what + ;; they need to do in order to point the configuration to their profile. + (propagated-inputs + `(("mupen64plus-core" ,mupen64plus-core) + ("mupen64plus-audio-sdl" ,mupen64plus-audio-sdl) + ("mupen64plus-input-sdl" ,mupen64plus-input-sdl) + ("mupen64plus-rsp-hle" ,mupen64plus-rsp-hle) + ("mupen64plus-video-glide64" ,mupen64plus-video-glide64) + ("mupen64plus-video-glide64mk2" ,mupen64plus-video-glide64mk2) + ("mupen64plus-video-rice" ,mupen64plus-video-rice))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The mupen64plus build system has no configure phase. + (delete 'configure) + ;; Makefile is in a subdirectory. + (add-before + 'build 'cd-to-project-dir + (lambda _ + (chdir "projects/unix")))) + #:make-flags + (let ((out (assoc-ref %outputs "out")) + (m64p (assoc-ref %build-inputs "mupen64plus-core"))) + (list "all" + (string-append "PREFIX=" out) + (string-append "APIDIR=" m64p "/include/mupen64plus") + ;; Trailing slash matters here. + (string-append "COREDIR=" m64p "/lib/"))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://www.mupen64plus.org/") + (synopsis "Mupen64Plus SDL input plugin") + (description + "Mupen64Plus is a cross-platform plugin-based Nintendo 64 (N64) emulator +which is capable of accurately playing many games. This package contains the +command line user interface. Installing this package is the easiest way +towards a working Mupen64Plus for casual users.") + (license license:gpl2+))) + +(define-public nestopia-ue + (package + (name "nestopia-ue") + (version "1.46.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/rdanbrook/nestopia/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "07h49xwvg61dx20rk5p4r3ax2ar5y0ppvm60cqwqljyi9rdfbh7p")) + (modules '((guix build utils))) + (snippet + '(begin + ;; We don't need libretro for the GNU/Linux build. + (delete-file-recursively "libretro") + ;; Use system zlib. + (delete-file-recursively "source/zlib") + (substitute* "source/core/NstZlib.cpp" + (("#include \"../zlib/zlib.h\"") "#include <zlib.h>")))))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("ao" ,ao) + ("glu" ,glu) + ("gtk+" ,gtk+) + ("libarchive" ,libarchive) + ("mesa" ,mesa) + ("sdl2" ,sdl2) + ("zlib" ,zlib))) + (arguments + '(#:phases + (modify-phases %standard-phases + ;; The Nestopia build system consists solely of a Makefile. + (delete 'configure) + ;; XXX Should be unnecessary with the next release. + (add-before + 'build 'patch-makefile + (lambda _ + (substitute* "Makefile" + (("@mkdir \\$@") "@mkdir -p $@") + (("CC =") "CC ?=") + (("CXX =") "CXX ?=") + (("PREFIX =") "PREFIX ?=") + (("^install:\n$") "install:\n\tmkdir -p $(BINDIR)\n")))) + (add-before + 'build 'remove-xdg-desktop-menu-call + (lambda _ + (substitute* "Makefile" + (("xdg-desktop-menu install .*") ""))))) + #:make-flags (let ((out (assoc-ref %outputs "out"))) + (list "CC=gcc" "CXX=g++" (string-append "PREFIX=" out))) + ;; There are no tests. + #:tests? #f)) + (home-page "http://0ldsk00l.ca/nestopia/") + (synopsis "Nintendo Entertainment System (NES/Famicom) emulator") + (description + "Nestopia UE (Undead Edition) is a fork of the Nintendo Entertainment +System (NES/Famicom) emulator Nestopia, with enhancements from members of the +emulation community. It provides highly accurate emulation.") + (license license:gpl2+))) + +(define-public emulation-station + (package + (name "emulation-station") + (version "2.0.1") + (source (origin + (method git-fetch) ; no tarball available + (uri (git-reference + (url "https://github.com/Aloshi/EmulationStation.git") + (commit "646bede"))) ; no version tag + (sha256 + (base32 + "0cm0sq2wri2l9cvab1l0g02za59q7klj0h3p028vr96n6njj4w9v")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f)) ; no tests + (inputs + `(("alsa-lib" ,alsa-lib) + ("boost" ,boost) + ("curl" ,curl) + ("eigin" ,eigen) + ("freeimage" ,freeimage) + ("freetype" ,freetype) + ("mesa" ,mesa) + ("sdl2" ,sdl2))) + (synopsis "Video game console emulator front-end") + (description "EmulationStation provides a graphical front-end to a large +number of video game console emulators. It features an interface that is +usable with any game controller that has at least 4 buttons, theming support, +and a game metadata scraper.") + (home-page "http://www.emulationstation.org") + (license license:expat))) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index d7ffc5c40f..178ea20420 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2014 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2014, 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; ;;; This file is part of GNU Guix. @@ -27,6 +27,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages multiprecision) #:use-module (gnu packages texinfo) + #:use-module (gnu packages dejagnu) #:use-module (gnu packages doxygen) #:use-module (gnu packages xml) #:use-module (gnu packages docbook) @@ -436,6 +437,9 @@ using compilers other than GCC." (define-public gfortran (custom-gcc gcc "gfortran" '("fortran"))) +(define-public gfortran-5 + (custom-gcc gcc-5 "gfortran" '("fortran"))) + (define-public gccgo-4.8 (custom-gcc gcc-4.8 "gccgo" '("go") ;; Suppress the separate "lib" output, because otherwise the @@ -461,6 +465,9 @@ using compilers other than GCC." ("javac.in" ,javac.in) ("ecj-bootstrap" ,ecj-bootstrap) ,@(package-inputs gcc))) + (native-inputs + `(("dejagnu" ,dejagnu) + ,@(package-native-inputs gcc))) ;; Suppress the separate "lib" output, because otherwise the ;; "lib" and "out" outputs would refer to each other, creating ;; a cyclic dependency. <http://debbugs.gnu.org/18101> @@ -472,7 +479,9 @@ using compilers other than GCC." (ice-9 regex) (srfi srfi-1) (srfi srfi-26)) - ,@(package-arguments gcc)) + #:test-target "check-target-libjava" + ,@(package-arguments gcc)) + ((#:tests? _) #t) ((#:configure-flags flags) `(let ((ecj (assoc-ref %build-inputs "ecj-bootstrap"))) `("--enable-java-home" diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm index f17b398048..81d6a8950d 100644 --- a/gnu/packages/gdb.scm +++ b/gnu/packages/gdb.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,14 +37,14 @@ (define-public gdb (package (name "gdb") - (version "7.10") + (version "7.10.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gdb/gdb-" version ".tar.xz")) (sha256 (base32 - "1a08c9svaihqmz2mm44il1gwa810gmwkckns8b0y0v3qz52amgby")))) + "1mfnjcwnwm5cg4rc9pncs9v356a0bz6ymjyac56mbj6784yjzir5")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; FIXME "make check" fails on single-processor systems. diff --git a/gnu/packages/gdbm.scm b/gnu/packages/gdbm.scm deleted file mode 100644 index 62d02001c8..0000000000 --- a/gnu/packages/gdbm.scm +++ /dev/null @@ -1,46 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org> -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. - -(define-module (gnu packages gdbm) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public gdbm - (package - (name "gdbm") - (version "1.11") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gdbm/gdbm-" - version ".tar.gz")) - (sha256 - (base32 - "1hz3jgh3pd4qzp6jy0l8pd8x01g9abw7csnrlnj1a2sxy122z4cd")))) - (arguments `(#:configure-flags '("--enable-libgdbm-compat"))) - (build-system gnu-build-system) - (home-page "http://www.gnu.org/software/gdbm/") - (synopsis - "Hash library of database functions compatible with traditional dbm") - (description - "GDBM is a library for manipulating hashed databases. It is used to -store key/value pairs in a file in a manner similar to the Unix dbm library -and provides interfaces to the traditional file format.") - (license gpl3+))) diff --git a/gnu/packages/geeqie.scm b/gnu/packages/geeqie.scm index a192c4b009..9cc8f74255 100644 --- a/gnu/packages/geeqie.scm +++ b/gnu/packages/geeqie.scm @@ -53,7 +53,8 @@ and XMP metadata of images in various formats.") ;; Files under `xmpsdk' are a copy of Adobe's XMP SDK, licensed under the ;; 3-clause BSD license: <http://www.adobe.com/devnet/xmp/sdk/eula.html>. - ;; The core is GPLv2+: <https://launchpad.net/ubuntu/precise/+source/exiv2/+copyright>. + ;; The core is GPLv2+: + ;; <https://launchpad.net/ubuntu/precise/+source/exiv2/+copyright>. (license l:gpl2+))) (define-public geeqie diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index 35c55dc2f9..ebf66d478e 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -68,7 +68,7 @@ provided as well as the framework to add new color models and data types.") (version "0.2.0") (source (origin (method url-fetch) - (uri (list (string-append "http://download.gimp.org/pub/gegl/" + (uri (list (string-append "http://download.gimp.org/pub/gegl/" (string-take version 3) "/" name "-" version ".tar.bz2"))) (sha256 diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index e8003f88a3..33312ba127 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -26,6 +26,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) #:use-module (guix packages) #:use-module (guix utils) #:use-module (gnu packages autotools) @@ -48,14 +49,15 @@ (name "glu") (version "9.0.0") (source (origin - (method url-fetch) - (uri (string-append "ftp://ftp.freedesktop.org/pub/mesa/glu/glu-" - version ".tar.gz")) - (sha256 - (base32 "0r72yyhj09x3krn3kn629jqbwyq50ji8w5ri2pn6zwrk35m4g1s3")))) + (method url-fetch) + (uri (string-append "ftp://ftp.freedesktop.org/pub/mesa/glu/glu-" + version ".tar.gz")) + (sha256 + (base32 + "0r72yyhj09x3krn3kn629jqbwyq50ji8w5ri2pn6zwrk35m4g1s3")))) (build-system gnu-build-system) (propagated-inputs - `(("mesa" ,mesa))) ; according to glu.pc + `(("mesa" ,mesa))) ; according to glu.pc (home-page "http://www.opengl.org/archives/resources/faq/technical/glu.htm") (synopsis "Mesa OpenGL Utility library") (description @@ -74,21 +76,24 @@ as ASCII text.") (define-public freeglut (package (name "freeglut") - (version "2.8.1") + (version "3.0.0") (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/project/freeglut/freeglut/" - version "/freeglut-" version ".tar.gz")) - (sha256 - (base32 "16lrxxxd9ps9l69y3zsw6iy0drwjsp6m26d1937xj71alqk6dr6x")))) - (build-system gnu-build-system) + (method url-fetch) + (uri (string-append + "mirror://sourceforge/project/freeglut/freeglut/" + version "/freeglut-" version ".tar.gz")) + (sha256 + (base32 + "18knkyczzwbmyg8hr4zh8a1i5ga01np2jzd1rwmsh7mh2n2vwhra")))) + (build-system cmake-build-system) + (arguments '(#:tests? #f)) ; no test target (inputs `(("mesa" ,mesa) - ("libx11" ,libx11) - ("libxi" ,libxi) - ("libxrandr" ,libxrandr) - ("libxxf86vm" ,libxxf86vm) - ("inputproto" ,inputproto) - ("xinput" ,xinput))) + ("libx11" ,libx11) + ("libxi" ,libxi) + ("libxrandr" ,libxrandr) + ("libxxf86vm" ,libxxf86vm) + ("inputproto" ,inputproto) + ("xinput" ,xinput))) (propagated-inputs ;; Headers from Mesa and GLU are needed. `(("glu" ,glu) @@ -114,17 +119,19 @@ the X-Consortium license.") (name "ftgl") (version "2.1.3-rc5") (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/project/ftgl/FTGL%20Source/2.1.3~rc5/ftgl-" - version ".tar.gz")) - (sha256 - (base32 "0nsn4s6vnv5xcgxcw6q031amvh2zfj2smy1r5mbnjj2548hxcn2l")))) + (method url-fetch) + (uri (string-append + "mirror://sourceforge/project/ftgl/FTGL%20Source/2.1.3~rc5/" + "ftgl-" version ".tar.gz")) + (sha256 + (base32 + "0nsn4s6vnv5xcgxcw6q031amvh2zfj2smy1r5mbnjj2548hxcn2l")))) (build-system gnu-build-system) ;; The pkg-config file lists "freetype2" as Requires.private. (propagated-inputs `(("freetype" ,freetype))) (inputs `(("libx11" ,libx11) - ("mesa" ,mesa) - ("glu" ,glu))) + ("mesa" ,mesa) + ("glu" ,glu))) (home-page "http://ftgl.sourceforge.net") (synopsis "Font rendering library for OpenGL applications") (description @@ -185,7 +192,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "10.5.4") + (version "11.0.3") (source (origin (method url-fetch) @@ -193,7 +200,7 @@ also known as DXTn or DXTC) for Mesa.") version "/mesa-" version ".tar.xz")) (sha256 (base32 - "00v89jna7m6r2w1yrnx09isc97r2bd1hkn4jib445n1078zp47mm")))) + "1mikw0biw0wxq0fn3cp18bm6kjrkd66fy84774yc5b91rvp94adb")))) (build-system gnu-build-system) (propagated-inputs `(("glproto" ,glproto) @@ -257,12 +264,10 @@ also known as DXTn or DXTC) for Mesa.") "src/mesa/main/texcompress_s3tc.c") (("\"libtxc_dxtn\\.so") (string-append "\"" s2tc "/lib/libtxc_dxtn.so"))) - (substitute* "src/gallium/targets/egl-static/egl_st.c" - (("\"libglapi\"") - (string-append "\"" out "/lib/libglapi\""))) (substitute* "src/loader/loader.c" - (("dlopen\\(\"libudev\\.so") - (string-append "dlopen(\"" udev "/lib/libudev.so"))) + (("udev_handle = dlopen\\(name") + (string-append "udev_handle = dlopen(\"" + udev "/lib/libudev.so\""))) (substitute* "src/glx/dri_common.c" (("dlopen\\(\"libGL\\.so") (string-append "dlopen(\"" out "/lib/libGL.so"))) @@ -327,7 +332,12 @@ emulation to complete hardware acceleration for modern GPUs.") (native-inputs `(("pkg-config" ,pkg-config))) (arguments - '(#:phases + '(;; XXX: fails to build against latest mesa: + ;; eglut.c: error: 'EGL_SCREEN_BIT_MESA' undeclared + ;; + ;; <https://bugs.freedesktop.org/show_bug.cgi?id=91643> + #:configure-flags '("--disable-egl") + #:phases (modify-phases %standard-phases (replace 'install diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 46a568631a..c5eea22845 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -57,36 +57,44 @@ (define dbus (package (name "dbus") - (version "1.8.16") + (version "1.10.0") (source (origin - (method url-fetch) - (uri - (string-append "http://dbus.freedesktop.org/releases/dbus/dbus-" - version ".tar.gz")) - (sha256 - (base32 - "01rba8mp8kqvmy6ibdmi806kjr3m14swnskqk02gyhykxxl54ybz")) - (patches (list (search-patch "dbus-localstatedir.patch"))))) + ;; TODO: Apply patch from DBUS/ACTIVATION below. + (method url-fetch) + (uri (string-append + "http://dbus.freedesktop.org/releases/dbus/dbus-" + version ".tar.gz")) + (sha256 + (base32 + "0jwj7wlrhq5y0fwfh8k2d9rgdpfax06lj8698g6iqbwrzd2rgyqx")))) (build-system gnu-build-system) (arguments - '(#:configure-flags (list ;; Install the system bus socket under /var. - "--localstatedir=/var" - - ;; XXX: Fix the following to allow system-wide - ;; config. - ;; "--sysconfdir=/etc" - - "--with-session-socket-dir=/tmp") - #:phases (alist-cons-after - 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - ;; 'dbus-launch' bails out if the 'session.d' directory - ;; below is missing, so create it along with its companion. - (let ((out (assoc-ref outputs "out"))) - (mkdir (string-append out "/etc/dbus-1/session.d")) - (mkdir (string-append out "/etc/dbus-1/system.d")) - #t)) - %standard-phases))) + '(#:configure-flags + (list + ;; Install the system bus socket under /var. + "--localstatedir=/var" + + ;; Install the session bus socket under /tmp. + "--with-session-socket-dir=/tmp" + + ;; Use /etc/dbus-1 for system-wide config. + ;; Look for configuration file under + ;; /etc/dbus-1. This is notably required by + ;; 'dbus-daemon-launch-helper', which looks for + ;; the 'system.conf' file in that place, + ;; regardless of what '--config-file' was + ;; passed to 'dbus-daemon' on the command line; + ;; see <https://bugs.freedesktop.org/show_bug.cgi?id=92458>. + "--sysconfdir=/etc") + #:phases + (modify-phases %standard-phases + (replace 'install + (lambda _ + ;; Don't try to create /var and /etc. + (system* "make" + "localstatedir=/tmp/dummy" + "sysconfdir=/tmp/dummy" + "install")))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs @@ -116,10 +124,21 @@ or through unencrypted TCP/IP suitable for use behind a firewall with shared NFS home directories.") (license license:gpl2+))) ; or Academic Free License 2.1 +(define-public dbus/activation + ;; D-Bus with a patch to fix service activation. + ;; TODO: Merge with DBUS above. + (package + (inherit dbus) + (version (string-append (package-version dbus) ".a")) + (source (origin + (inherit (package-source dbus)) + (patches + (list (search-patch "dbus-helper-search-path.patch"))))))) + (define glib (package (name "glib") - (version "2.44.1") + (version "2.46.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" @@ -127,7 +146,7 @@ shared NFS home directories.") name "-" version ".tar.xz")) (sha256 (base32 - "01yabrfp64i11mrks3p1gcks99lw0zm7f5vhkc53sl4amyndw4c8")) + "1yzxr1ip3l0m9ydk5nq32piq70c9f17p5f0jyvlsghzbaawh67ss")) (patches (list (search-patch "glib-tests-homedir.patch") (search-patch "glib-tests-desktop.patch") (search-patch "glib-tests-prlimit.patch") @@ -169,7 +188,8 @@ shared NFS home directories.") ;; Disable a test that requires dbus. (substitute* "gio/tests/gdbus-serialization.c" - (("g_test_add_func \\(\"/gdbus/message-serialize/double-array\", test_double_array\\);" all) + (("g_test_add_func \ +\\(\"/gdbus/message-serialize/double-array\", test_double_array\\);" all) (string-append "/* " all " */")))) %standard-phases) @@ -207,14 +227,18 @@ dynamic loading, and an object system.") (define gobject-introspection (package (name "gobject-introspection") - (version "1.44.0") + (version "1.46.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" "gobject-introspection/" (version-major+minor version) "/gobject-introspection-" version ".tar.xz")) (sha256 - (base32 "1b972qg2yb51sdavfvb6kc19akwc15c1bwnbg81vadxamql2q33g")) + (base32 "0cs27r18fga44ypp8icy62fwx6nh70r1bvhi4lzfn4w85cybsn36")) + (modules '((guix build utils))) + (snippet + '(substitute* "tools/g-ir-tool-template.in" + (("#!/usr/bin/env @PYTHON@") "#!@PYTHON@"))) (patches (list (search-patch "gobject-introspection-cc.patch") (search-patch @@ -258,7 +282,7 @@ bindings to call into the C library.") (define intltool (package (name "intltool") - (version "0.50.2") + (version "0.51.0") (source (origin (method url-fetch) (uri (string-append "https://launchpad.net/intltool/trunk/" @@ -266,7 +290,7 @@ bindings to call into the C library.") version ".tar.gz")) (sha256 (base32 - "01j4yd7i84n9nk4ccs6yifg84pp68nr9by57jdbhj7dpdxf5rwk7")))) + "1karx4sb7bnm2j67q0q74hspkfn6lqprpy5r99vkn5bb36a4viv7")))) (build-system gnu-build-system) (inputs `(("file" ,file))) @@ -382,7 +406,7 @@ by GDBus included in Glib.") (define libsigc++ (package (name "libsigc++") - (version "2.4.1") + (version "2.6.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsigc++/" @@ -390,7 +414,7 @@ by GDBus included in Glib.") name "-" version ".tar.xz")) (sha256 (base32 - "1v0rvkzglzmf67y9nkcppwjwi68j1cy5yhldvcq7xrv8594l612l")))) + "06xyvxaaxh3nbpjg86gcq5zcc2qnpx354wcfrqlhbndkq5kj2vqq")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("m4" ,m4))) @@ -409,7 +433,7 @@ has an ease of use unmatched by other C++ callback libraries.") (define glibmm (package (name "glibmm") - (version "2.44.0") + (version "2.46.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/glibmm/" @@ -417,7 +441,7 @@ has an ease of use unmatched by other C++ callback libraries.") "/glibmm-" version ".tar.xz")) (sha256 (base32 - "1a1fczy7hcpn24fglyn4i79f4yjc8s50is70q03mb294bm1c02hv")))) + "1an4v1yk06svlmcyp1psk2a3bsn29s1a4gdx0ai2w788q6bfaiwn")))) (build-system gnu-build-system) (arguments `(#:phases (alist-cons-before @@ -491,7 +515,7 @@ useful for C++.") (define-public python-pygobject (package (name "python-pygobject") - (version "3.16.1") + (version "3.18.0") (source (origin (method url-fetch) @@ -500,7 +524,7 @@ useful for C++.") "/pygobject-" version ".tar.xz")) (sha256 (base32 - "1hqyma73w0lnjcgx68kawhnq84aq92xlkdqphrlc2ppia38dm5kx")))) + "1jbd2m39vcjh5h3m33l0317ziq8dxfzi40r6hrfcs4rp5l8s2fqw")))) (build-system gnu-build-system) (native-inputs `(("which" ,which) @@ -551,18 +575,30 @@ useful for C++.") "telepathy-glib-" version ".tar.gz")) (sha256 (base32 - "1symyzbjmxvksn2ifdkk50lafjm2llf2sbmky062gq2pz3cg23cy")))) + "1symyzbjmxvksn2ifdkk50lafjm2llf2sbmky062gq2pz3cg23cy")) + (patches + (list + ;; Don't use the same test name for multiple tests. + ;; <https://bugs.freedesktop.org/show_bug.cgi?id=92245> + (origin + (method url-fetch) + (uri "https://bugs.freedesktop.org/attachment.cgi?id=118608") + (file-name (string-append "telepathy-glib-duplicate-tests.patch")) + (sha256 + (base32 + "0z261fwrszxb28ccg3hsg9rizig4s84zvwmx6y31a4pyv7bvs5w3"))))))) (build-system gnu-build-system) (native-inputs `(("glib" ,glib "bin") ; uses glib-mkenums + ("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config) - ("python" ,python-2))) - (inputs + ("python" ,python-2) + ("xsltproc" ,libxslt))) + (propagated-inputs + ;; There are all in the Requires.private field of telepathy-glib.pc. `(("dbus" ,dbus) ("dbus-glib" ,dbus-glib) - ("glib" ,glib) - ("gobject-introspection" ,gobject-introspection) - ("libxslt" ,libxslt))) + ("glib" ,glib))) (home-page "http://telepathy.freedesktop.org/wiki/") (synopsis "GLib Real-time communications framework over D-Bus") (description "Telepathy is a flexible, modular communications framework diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 5440433402..c17dd19802 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 David Thompson <davet@gnu.org> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,22 +36,27 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) #:use-module (gnu packages) + #:use-module (gnu packages admin) #:use-module (gnu packages autotools) #:use-module (gnu packages avahi) #:use-module (gnu packages base) #:use-module (gnu packages bison) + #:use-module (gnu packages calendar) #:use-module (gnu packages cups) #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages djvu) + #:use-module (gnu packages dns) #:use-module (gnu packages flex) #:use-module (gnu packages docbook) + #:use-module (gnu packages enchant) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) #:use-module (gnu packages gnuzilla) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) + #:use-module (gnu packages gperf) #:use-module (gnu packages guile) #:use-module (gnu packages pdf) #:use-module (gnu packages polkit) @@ -64,6 +70,7 @@ #:use-module (gnu packages lua) #:use-module (gnu packages m4) #:use-module (gnu packages image) + #:use-module (gnu packages networking) #:use-module (gnu packages perl) #:use-module (gnu packages photo) #:use-module (gnu packages pkg-config) @@ -90,6 +97,7 @@ #:use-module (gnu packages video) #:use-module (gnu packages cdrom) #:use-module (gnu packages samba) + #:use-module (gnu packages readline) #:use-module (srfi srfi-1)) (define-public brasero @@ -104,7 +112,7 @@ (sha256 (base32 "09vi2hyhl0bz7imv3ky6h7x5m3d546n968wcghydwrkvwm9ylpls")))) - (build-system gnu-build-system) + (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags (list (string-append "--with-girdir=" @@ -166,7 +174,7 @@ commonly used macros.") (define-public gnome-desktop (package (name "gnome-desktop") - (version "3.16.2") + (version "3.18.1") (source (origin (method url-fetch) @@ -175,18 +183,21 @@ commonly used macros.") name "-" version ".tar.xz")) (sha256 (base32 - "1l3v48i2w90i2cc056j4km9jb23axxgzpf5gl8xvv7gb8rmik3rs")))) + "0avpmyhzz5b3pyfpkp8iq5ym5r5w7zs3a396hqkdpdsiym0vrazc")))) (build-system gnu-build-system) (native-inputs - `(("itstool" ,itstool) + `(("gobject-introspection" ,gobject-introspection) + ("itstool" ,itstool) ("intltool" ,intltool) ("pkg-config" ,pkg-config) ("xmllint" ,libxml2))) + (propagated-inputs + ;; Required by gnome-desktop-3.0.pc. + `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("gtk+" ,gtk+))) (inputs `(("gdk-pixbuf" ,gdk-pixbuf) ("glib" ,glib) - ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) - ("gtk+" ,gtk+) ("iso-codes" ,iso-codes) ("libx11" ,libx11) ("libxext" ,libxext) @@ -240,7 +251,7 @@ and keep up to date translations of documentation.") (define-public gcr (package (name "gcr") - (version "3.16.0") + (version "3.18.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -248,7 +259,7 @@ and keep up to date translations of documentation.") name "-" version ".tar.xz")) (sha256 (base32 - "0xfhi0w358lvca1jjx24x2gm67mif33dsnmi9cv5i0f83ks8vzpc")))) + "006f6xbd3jppkf9avg83mpqdld5d0z6mr0sm81lql52mmyjnvlfl")))) (build-system gnu-build-system) (arguments '(#:tests? #f ;25 of 598 tests fail because /var/lib/dbus/machine-id does @@ -267,7 +278,9 @@ and keep up to date translations of documentation.") `(("python" ,python-2) ;for tests ("pkg-config" ,pkg-config) ("glib" ,glib "bin") - ("intltool" ,intltool))) + ("gobject-introspection" ,gobject-introspection) + ("intltool" ,intltool) + ("xsltproc" ,libxslt))) ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc (propagated-inputs `(("p11-kit" ,p11-kit) @@ -284,7 +297,7 @@ GNOME Desktop.") (define-public libgnome-keyring (package (name "libgnome-keyring") - (version "3.6.0") + (version "3.12.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -292,7 +305,7 @@ GNOME Desktop.") name "-" version ".tar.xz")) (sha256 (base32 - "0c4qrjpmv1hqga3xv6wsq2z10x2n78qgw7q3k3s01y1pggxkgjkd")))) + "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4")))) (build-system gnu-build-system) (inputs `(("libgcrypt" ,libgcrypt) @@ -382,7 +395,7 @@ forgotten when the session ends.") (define-public evince (package (name "evince") - (version "3.16.1") + (version "3.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -390,7 +403,7 @@ forgotten when the session ends.") name "-" version ".tar.xz")) (sha256 (base32 - "0c31pwfzfm5x036f018q31k33vl8xb96nbs0iiccsc1abc37bzq6")))) + "0cccmbvl1b6d2976642iyfr8g3r69zf3mzl2ln6vjvvdbrv26l3v")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags '("--disable-nautilus") @@ -446,7 +459,7 @@ on the GNOME Desktop with a single simple application.") (define-public gsettings-desktop-schemas (package (name "gsettings-desktop-schemas") - (version "3.16.0") + (version "3.18.0") (source (origin (method url-fetch) @@ -455,7 +468,7 @@ on the GNOME Desktop with a single simple application.") name "-" version ".tar.xz")) (sha256 (base32 - "02dp1hl38k16m9abydfca1n236mdazqdz0p3n92s7haf9mdqsf16")))) + "1szc857f46spdhrbnq9ci3kwfqg5vwpikbf0hprq6vd94rr369xs")))) (build-system gnu-build-system) (inputs `(("glib" ,glib))) @@ -669,7 +682,7 @@ some form of information without getting in the user's way.") (define-public libpeas (package (name "libpeas") - (version "1.12.1") + (version "1.16.0") (source (origin (method url-fetch) @@ -678,7 +691,7 @@ some form of information without getting in the user's way.") name "-" version ".tar.xz")) (sha256 (base32 - "1mjjjjwphc83bjznmbsm7x0jg7ql261nys6qnl7mi0nkr4qvw476")))) + "0kj5n5hz93xq7qdb2r7n86nibzwqjr88jxaih1fdbxv5rn7014xh")))) (build-system gnu-build-system) (inputs `(("atk" ,atk) @@ -732,14 +745,15 @@ API add-ons to make GTK+ widgets OpenGL-capable.") (define-public glade3 (package (name "glade") - (version "3.8.4") + (version "3.8.5") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "3-" version ".tar.xz")) (sha256 - (base32 "021xgq2l18w3rvwms9aq2idm0fk66vwb4f777gs0qh3ap5shgbn7")))) + (base32 + "0d97df5pfkrh5670a98r3d3w8zlbh1jcax6cvq6j6a20vzjgd9aq")))) (build-system gnu-build-system) (inputs `(("gtk+" ,gtk+-2) @@ -821,7 +835,7 @@ dealing with different structured file formats.") (define-public librsvg (package (name "librsvg") - (version "2.40.10") + (version "2.40.11") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -829,7 +843,9 @@ dealing with different structured file formats.") name "-" version ".tar.xz")) (sha256 (base32 - "0y9lvnb9ij9mjg8cyp7xysi0c5ms5v4q1zrhx42b546f71s80p4n")))) + "00ifd9wjjjsw0ybk5j6qs4yyh66jj34hjmggy6dhrgfy8ksw06k1")) + (patches + (list (search-patch "librsvg-tests.patch"))))) (build-system gnu-build-system) (arguments `(#:phases @@ -919,23 +935,26 @@ functionality was designed to be as reusable and portable as possible.") (source (origin (method url-fetch) (uri (let ((upstream-name "ORBit2")) - (string-append "mirror://gnome/sources/" upstream-name "/" + (string-append "mirror://gnome/sources/" upstream-name "/" (version-major+minor version) "/" upstream-name "-" version ".tar.bz2"))) (sha256 - (base32 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam")))) + (base32 + "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam")))) (build-system gnu-build-system) (arguments - ;; The programmer kindly gives us a hook to turn off deprecation warnings ... - `(#:configure-flags '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS") - ;; ... which they then completly ignore !! - #:phases - (alist-cons-before - 'configure 'ignore-deprecations - (lambda _ - (substitute* "linc2/src/Makefile.in" - (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))) - %standard-phases))) + `(#:configure-flags + ;; The programmer kindly gives us a hook to turn off deprecation + ;; warnings ... + '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS") + ;; ... which they then completly ignore !! + #:phases + (alist-cons-before + 'configure 'ignore-deprecations + (lambda _ + (substitute* "linc2/src/Makefile.in" + (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))) + %standard-phases))) (inputs `(("glib" ,glib) ("libidl" ,libidl))) (native-inputs @@ -944,9 +963,9 @@ functionality was designed to be as reusable and portable as possible.") (synopsis "CORBA 2.4-compliant Object Request Broker") (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb) featuring mature C, C++ and Python bindings.") - ;; Licence notice is unclear. The Web page simply say "GPL" without giving a version. - ;; SOME of the code files have licence notices for GPLv2+ - ;; The tarball contains files of the text of GPLv2 and LGPLv2 + ;; Licence notice is unclear. The Web page simply say "GPL" without giving + ;; a version. SOME of the code files have licence notices for GPLv2+. + ;; The tarball contains files of the text of GPLv2 and LGPLv2. (license license:gpl2+))) @@ -1003,9 +1022,9 @@ use in GNOME applications, built on top of CORBA.") (version "3.2.6") (source (origin (method url-fetch) - (uri - (let ((upstream-name "GConf")) - (string-append "mirror://gnome/sources/" upstream-name "/" + (uri + (let ((upstream-name "GConf")) + (string-append "mirror://gnome/sources/" upstream-name "/" (version-major+minor version) "/" upstream-name "-" version ".tar.xz"))) (sha256 @@ -1204,6 +1223,8 @@ creating interactive structured graphics.") (base32 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("CXXFLAGS=-std=c++11"))) ; required by gtkmm (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas))) (native-inputs `(("gtkmm-2" ,gtkmm-2) @@ -1437,14 +1458,14 @@ Hints specification (EWMH).") (define-public goffice (package (name "goffice") - (version "0.10.14") + (version "0.10.24") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "0kj0iwng6w4axm7yv2zy7myn5dhw5ilrlq2pzrjlm9i852ikqy60")))) + (base32 "0nmghi26dpjcw7knkviq031crhm0zjy4k650pv1jj3hb1fmhx9yd")))) (build-system gnu-build-system) (inputs `(("gtk+" ,gtk+) @@ -1494,7 +1515,7 @@ Hints specification (EWMH).") (define-public gnumeric (package (name "gnumeric") - (version "1.12.17") + (version "1.12.24") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1502,31 +1523,36 @@ Hints specification (EWMH).") name "-" version ".tar.xz")) (sha256 (base32 - "18bvc3phghr4p5440fp8hm6gvp53d3mqs9cyc637zpmk0b6bcp7c")))) + "0lcm8k0jb8rd5y4ii803f21nv8rx6gc3mmdlrj5h0rkkn9qm57f5")))) (build-system gnu-build-system) (arguments `(;; The gnumeric developers don't worry much about failing tests. ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387 #:tests? #f #:phases - (alist-cons-before - 'configure 'pre-conf - (lambda* (#:key outputs #:allow-other-keys) - ;; Make install tries to write into the directory of goffice - ;; I am informed that this only affects the possibility to embed a - ;; spreadsheet inside an Abiword document. So presumably when we - ;; package Abiword we'll have to refer it to this directory. - (substitute* "configure" - (("^GOFFICE_PLUGINS_DIR=.*") - (string-append "GOFFICE_PLUGINS_DIR=" - (assoc-ref outputs "out") "/goffice/plugins")))) - %standard-phases))) + (modify-phases %standard-phases + (add-before + 'configure 'pre-conf + (lambda* (#:key outputs #:allow-other-keys) + ;; Make install tries to write into the directory of goffice + ;; I am informed that this only affects the possibility to embed a + ;; spreadsheet inside an Abiword document. So presumably when we + ;; package Abiword we'll have to refer it to this directory. + (substitute* "configure" + (("^GOFFICE_PLUGINS_DIR=.*") + (string-append "GOFFICE_PLUGINS_DIR=" + (assoc-ref outputs "out") + "/goffice/plugins")))))))) (inputs `(("glib" ,glib) ("gtk+" ,gtk+) ("goffice" ,goffice) ("libgsf" ,libgsf) + ("librsvg" ,librsvg) ("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("python" ,python-2) + ("python2-pygobject", python2-pygobject-2) ("zlib" ,zlib))) (native-inputs `(("intltool" ,intltool) @@ -1547,9 +1573,7 @@ engineering.") (define-public gnome-themes-standard (package (name "gnome-themes-standard") - ;; The version of this package should be the same as the version of - ;; gnome-desktop. - (version (package-version gnome-desktop)) + (version "3.18.0") (source (origin (method url-fetch) @@ -1558,7 +1582,7 @@ engineering.") version ".tar.xz")) (sha256 (base32 - "17sbcpc9df1cnz84g3npvh1na65mkxaygqcdma6wvda4knjpkssr")))) + "1jxss8kxszhf66vic9n1sagczm5amm0mgxpzyxyjna15q82fnip6")))) (build-system gnu-build-system) (inputs `(("gtk+" ,gtk+) @@ -1625,7 +1649,7 @@ passwords in the GNOME keyring.") (define-public vala (package (name "vala") - (version "0.28.0") + (version "0.30.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1633,14 +1657,16 @@ passwords in the GNOME keyring.") name "-" version ".tar.xz")) (sha256 (base32 - "0zwpzhkhfk3piya14m7p2hl2vaabahprphppfm46ci91z39kp7hd")))) + "1pyyhfw3zzbhxfscbn8xz70dg6vx0kh8gshzikpxczhg01xk7w31")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-before 'check 'set-cc + (add-before 'check 'pre-check (lambda _ (setenv "CC" "gcc") + ;; For missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") #t))))) (native-inputs `(("pkg-config" ,pkg-config) @@ -1663,7 +1689,7 @@ libraries written in C.") (define-public vte (package (name "vte") - (version "0.40.0") + (version "0.42.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1671,7 +1697,7 @@ libraries written in C.") name "-" version ".tar.xz")) (sha256 (base32 - "0lnq0bgkmsixjwmfacb2ch9qfjqjxa8zkk1hiv3l29kgca0n3nal")))) + "0d4xzjq6mxrlhnh4i12a1yy90n41m03z8wf8g6wh4hjgx7ly404y")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -1692,6 +1718,27 @@ gnome-terminal, but can also be used to embed a console/terminal in games, editors, IDEs, etc.") (license license:lgpl2.1+))) +;; provides vte 2.90, required for some terminal emulators +;; tilda bug: https://github.com/lanoxx/tilda/issues/94 +;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021 +;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/ +;; pantheon-terminal, roxterm are not currently packaged +(define-public vte-0.36 + (package (inherit vte) + (name "vte") + (version "0.36.5") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2")))) + (propagated-inputs + `(("gtk" ,gtk+) + ("ncurses" ,ncurses))))) + ;; stable version for gtk2, required by xfce4-terminal. (define-public vte/gtk+-2 (package (inherit vte) @@ -1771,7 +1818,7 @@ configuration storage systems.") (define-public json-glib (package (name "json-glib") - (version "1.0.2") + (version "1.0.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1779,7 +1826,14 @@ configuration storage systems.") name "-" version ".tar.xz")) (sha256 (base32 - "02k66lpc4cmgygj66n8zcy59bggy7yzm3v4hni9xqplgva9d2yw8")))) + "1k85vvb2prmk8aa8hmr2rp9rnbhffjgnmr18b13g24xxnqy5kww0")) + (modules '((guix build utils))) + (snippet + ;; Don't duplicate test names. + ;; <https://bugzilla.gnome.org/show_bug.cgi?id=755977>. + '(substitute* "json-glib/tests/builder.c" + (("\"/builder/complex\", test_builder_empty") + "\"/builder/empty\", test_builder_empty"))))) (build-system gnu-build-system) (native-inputs `(("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal @@ -1871,7 +1925,7 @@ library.") (define-public glib-networking (package (name "glib-networking") - (version "2.44.0") + (version "2.46.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/glib-networking/" @@ -1879,7 +1933,7 @@ library.") name "-" version ".tar.xz")) (sha256 (base32 - "0ij33bhvn7y5gagx4sbrw906dsjjjs9dllxn73pzv6x97c6k92lg")) + "1cchmi08jpjypgmm9i7xzh5qfg2q5k61kry9ns8mhw3z44a440ym")) (patches (list (search-patch "glib-networking-ssl-cert-file.patch"))))) (build-system gnu-build-system) @@ -1953,7 +2007,7 @@ libxml to ease remote use of the RESTful API.") (define-public libsoup (package (name "libsoup") - (version "2.50.0") + (version "2.52.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsoup/" @@ -1961,18 +2015,14 @@ libxml to ease remote use of the RESTful API.") name "-" version ".tar.xz")) (sha256 (base32 - "0yv61y5vfar1rfksa6f53zhfw9wcb39zjix8gqc1ff5gqid3c08y")))) + "0j6cnnpqqgnb9nj2r0j8j6898np4z503hrnpis7b4l5d8yhbq68f")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments `(#:configure-flags (list (string-append "--with-html-dir=" (assoc-ref %outputs "doc") - "/share/gtk-doc/html") - ;; To find GIO modules from glib-networking. - (string-append "GIO_EXTRA_MODULES=" - (assoc-ref %build-inputs "glib-networking") - "/lib/gio/modules")) + "/share/gtk-doc/html")) #:phases (modify-phases %standard-phases (add-before 'configure 'disable-unconnected-socket-test @@ -1990,13 +2040,22 @@ libxml to ease remote use of the RESTful API.") ;; The ca-certificates.crt is not available in the build ;; environment. (setenv "SSL_CERT_FILE" "/dev/null") - #t))))) + #t)) + (replace 'install + (lambda _ + (zero? + (system* "make" + ;; Install vala bindings into $out. + (string-append "vapidir=" %output + "/share/vala/vapi") + "install"))))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums ("gobject-introspection" ,gobject-introspection) ("intltool" ,intltool) ("pkg-config" ,pkg-config) ("python" ,python-wrapper) + ("vala" ,vala) ;; These are needed for the tests. ;; FIXME: Add PHP once available. ("curl" ,curl) @@ -2018,15 +2077,16 @@ and the GLib main loop, to integrate well with GNOME applications.") (define-public libsecret (package (name "libsecret") - (version "0.18") + (version "0.18.3") (source (origin (method url-fetch) (uri (string-append - "mirror://gnome/sources/libsecret/" version "/" + "mirror://gnome/sources/libsecret/" + (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 (base32 - "1qq29c01xxjyx5sl6y5h22w8r0ff4c73bph3gfx3h7mx5mvalwqc")))) + "1jc4pw6pb5igwasj0ms1zx80w63c11myziz3ydj0cr5lb861vgzj")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -2210,6 +2270,7 @@ keyboard shortcuts.") ("lcms" ,lcms))) (inputs `(("dbus-glib" ,dbus-glib) + ("libgudev" ,libgudev) ("libusb" ,libusb) ("sqlite" ,sqlite) ("polkit" ,polkit) @@ -2282,8 +2343,7 @@ permission from user.") (arguments `(;; The tests want to write to $HOME/.cache/geocode-glib, which doesn't ;; work for the builder. Punt. - #:tests? #f - )) + #:tests? #f)) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums ("gobject-introspection" ,gobject-introspection) @@ -2306,14 +2366,14 @@ faster results and to avoid unnecessary server load.") (define-public upower (package (name "upower") - (version "0.99.2") + (version "0.99.3") (source (origin (method url-fetch) (uri (string-append "http://upower.freedesktop.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "0vwlh20jmaf01m38kfn8yx2869a3clmkzlycrj99rf4nvwx4bp79")) + "0f6x9mi1jzgqdpycaikyhjljnw3aacsl3gxndyg0dfqkq6y9jwb9")) (patches (list (search-patch "upower-builddir.patch"))))) (build-system glib-or-gtk-build-system) (arguments @@ -2336,7 +2396,8 @@ faster results and to avoid unnecessary server load.") (substitute* "src/linux/integration-test" (("/usr/bin/python3") (which "python3")))))))) (native-inputs - `(("pkg-config" ,pkg-config) + `(("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config) ("intltool" ,intltool) ("python" ,python))) (inputs @@ -2355,7 +2416,7 @@ service via the system message bus.") (define-public libgweather (package (name "libgweather") - (version "3.16.0") + (version "3.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2363,22 +2424,26 @@ service via the system message bus.") name "-" version ".tar.xz")) (sha256 (base32 - "0x1z6wv7hdw2ivlkifcbd940zyrnvqvc4zh2drgvd2r6jmd7bjza")))) + "1l3sra84k5dnavbdbjyf1ar84xmjszpnnldih6mf45kniwpjkcll")))) (build-system gnu-build-system) (arguments - `(;; The tests want to write to $HOME/.cache/geocode-glib, which doesn't - ;; work for the builder. Punt. - #:tests? #f - #:configure-flags - `(;; No introspection for now, as it wants to install to - ;; gobject-introspection's own directory and I don't know how to easily - ;; override this. - "--enable-introspection=no" - ,(string-append "--with-zoneinfo-dir=" - (assoc-ref %build-inputs "tzdata") - "/share/zoneinfo")))) + `(#:configure-flags + `(,(string-append "--with-zoneinfo-dir=" + (assoc-ref %build-inputs "tzdata") + "/share/zoneinfo")) + #:phases + (modify-phases %standard-phases + (add-before + 'check 'pre-check + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "data/check-timezones.sh" + (("/usr/share/zoneinfo/zone.tab") + (string-append (assoc-ref inputs "tzdata") + "/share/zoneinfo/zone.tab"))) + #t))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums + ("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config) ("intltool" ,intltool))) (propagated-inputs @@ -2555,7 +2620,7 @@ throughout GNOME for API documentation).") (define-public cogl (package (name "cogl") - (version "1.20.0") + (version "1.22.0") (source (origin (method url-fetch) @@ -2564,7 +2629,7 @@ throughout GNOME for API documentation).") name "-" version ".tar.xz")) (sha256 (base32 - "0aqrj7gc0x7v536vdycgn2i23fj3nx3qwdd3mwgx7rr9b14kb7kj")))) + "14daxqrid5039xmq9yl4pk86awng1n9zgl6ysblhc4gw2ifzp7b8")))) (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums @@ -2622,7 +2687,7 @@ without stepping on each others toes.") (define-public clutter (package (name "clutter") - (version "1.22.2") + (version "1.24.2") (source (origin (method url-fetch) @@ -2631,7 +2696,7 @@ without stepping on each others toes.") name "-" version ".tar.xz")) (sha256 (base32 - "1b0ikh9q3c3qnny3kbvhqih35449q8ajcbh7zkm8k3kykwfx4scf")))) + "0qyd0cw17wi8gl6y9z2j2lh2gwghxskfmsdvw4ayrgxwnj6cjccn")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;9 MiB of gtk-doc HTML pages @@ -3176,7 +3241,7 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.") (define-public gvfs (package (name "gvfs") - (version "1.24.1") + (version "1.26.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3184,7 +3249,7 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.") name "-" version ".tar.xz")) (sha256 (base32 - "1ygiknnd24qgzds8wif3jns981mqr65lgjlxs5pw65cl3376g0yk")))) + "064dsjrdjcbi38zl38jhh4r9jcpiygg7x4c8s6s2rb757l7nwnv9")))) (build-system gnu-build-system) (arguments '(#:tests? #f)) ; XXX: requiring `pidof' @@ -3199,6 +3264,7 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.") ("docbook-xsl" ,docbook-xsl) ("dbus" ,dbus) ("fuse" ,fuse) + ("gcr" ,gcr) ("glib" ,glib) ("libarchive" ,libarchive) ("libbluray" ,libbluray) @@ -3262,7 +3328,7 @@ DAV, and others.") (and (zero? (system* "gtkdocize")) (zero? (system* "autoreconf" "-vif")))))))) (home-page "https://github/hughsie/libgusb") - (synopsis "A GLib binding for libusb1") + (synopsis "GLib binding for libusb1") (description "GUsb is a GObject wrapper for libusb1 that makes it easy to do asynchronous control, bulk and interrupt transfers with proper cancellation @@ -3659,3 +3725,537 @@ environment that allows users to view, unpack, and create compressed archives such as gzip tarballs.") (home-page "http://fileroller.sourceforge.net/") (license license:gpl2+))) + +(define-public gnome-session + (package + (name "gnome-session") + (version "3.18.1.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0icajbzqf5llvp5s8nafwkhwz6a6jmwn4hhs81bk0bpzawyq4zdk")))) + (build-system gnu-build-system) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. + ("pkg-config" ,pkg-config) + ("intltool" ,intltool) + ("xsltproc" ,libxslt))) + (inputs + `(("gnome-desktop" ,gnome-desktop) + ("gtk+" ,gtk+) + ("json-glib" ,json-glib) + ("libsm" ,libsm) + ("libxcomposite" ,libxcomposite) + ("libxtst" ,libxtst) + ("mesa" ,mesa) + ("upower" ,upower) + ("xtrans" ,xtrans))) + (synopsis "Session manager for GNOME") + (description + "This package contains the GNOME session manager, as well as a +configuration program to choose applications starting on login.") + (home-page "https://wiki.gnome.org/Projects/SessionManagement") + (license license:gpl2+))) + +(define-public gjs + (package + (name "gjs") + (version "1.44.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "106fgpr4y99sj68l72pnfa2za11ps4bn6p9z28fr79j7mpv61jc8")) + (modules '((guix build utils))) + (snippet '(substitute* "test/run-with-dbus" + (("/bin/rm") "rm"))))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before + 'check 'pre-check + (lambda _ + ;; For the missing /etc/machine-id. + (setenv "DBUS_FATAL_WARNINGS" "0") + #t))))) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-compile-resources + ("pkg-config" ,pkg-config) + ("xmllint" ,libxml2) + ;; For testing + ("dbus-launch" ,dbus) + ("uuidgen" ,util-linux) + ("xvfb" ,xorg-server))) + (propagated-inputs + ;; These are all in the Requires.private field of gjs-1.0.pc. + `(("gobject-introspection" ,gobject-introspection) + ("mozjs" ,mozjs-24))) + (inputs + `(("gtk+" ,gtk+) + ("readline" ,readline))) + (synopsis "Javascript bindings for GNOME") + (home-page "http://live.gnome.org/Gjs") + (description + "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey +javascript engine and the GObject introspection framework.") + (license license:gpl2+))) + +(define-public gedit + (package + (name "gedit") + (version "3.18.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1kb3hglcppap7fdy7i7w2wk746kfz77jzs2lq6vrna8a3fqaxmas")))) + (build-system glib-or-gtk-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after + 'install 'wrap-gedit + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (gtksourceview (assoc-ref inputs "gtksourceview")) + (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) + (wrap-program (string-append out "/bin/gedit") + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)) + ;; For language-specs. + `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview + "/share"))))) + #t))))) + (propagated-inputs + `(("dconf" ,dconf))) + (native-inputs + `(("intltool" ,intltool) + ("itstool", itstool) + ("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config))) + (inputs + `(("glib" ,glib) + ("gtk+" ,gtk+) + ("gtksourceview" ,gtksourceview) + ("libpeas" ,libpeas) + ("libxml2" ,libxml2) + ("enchant" ,enchant) + ("iso-codes" ,iso-codes) + ("python-pygobject" ,python-pygobject) + ("python" ,python) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("libx11" ,libx11) + ("vala" ,vala) + ("adwaita-icon-theme" ,adwaita-icon-theme) + ("libsoup" ,libsoup) + ("gnome-desktop" ,gnome-desktop))) + (home-page "https://wiki.gnome.org/Apps/Gedit") + (synopsis "GNOME text editor") + (description "While aiming at simplicity and ease of use, gedit is a +powerful general purpose text editor.") + (license license:gpl2+))) + +(define-public zenity + (package + (name "zenity") + (version "3.18.1.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "02m88dfm1rziqk2ywakwib06wl1rxangbzih6cp8wllbyl1plcg6")))) + (build-system gnu-build-system) + (native-inputs + `(("gettext" ,gnu-gettext) + ("itstool" ,itstool) + ("pkg-config" ,pkg-config))) + (inputs + `(("libnotify" ,libnotify) + ("webkitgtk" ,webkitgtk))) + (synopsis "Display graphical dialog boxes from shell scripts") + (home-page "http://www.gnome.org") + (description + "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you +to display dialog boxes from the commandline and shell scripts.") + (license license:lgpl2.0+))) + +(define-public mutter + (package + (name "mutter") + (version "3.18.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1ab959z5fgi4rq0ifxdqvpdbv99a2b1lfgvj327s9crdvk4ygpjg")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags + ;; XXX: build fails with [-Werror]: + ;; backends/meta-cursor-renderer.c:112:5: error: + ;; implicit declaration of function ?roundf? + '("--enable-compile-warnings=minimum"))) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. + ("gobject-introspection" ,gobject-introspection) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config))) + (propagated-inputs + ;; libmutter.pc refers to all these. + `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("gtk+" ,gtk+) + ("clutter" ,clutter))) + (inputs + `(("gnome-desktop" ,gnome-desktop) + ("libcanberra-gtk" ,libcanberra) + ("libice" ,libice) + ("libsm" ,libsm) + ("libxkbcommon" ,libxkbcommon) + ("libxkbfile" ,libxkbfile) + ("mesa-headers" ,mesa-headers) + ("startup-notification" ,startup-notification) + ("upower-glib" ,upower) + ("xkeyboard-config" ,xkeyboard-config) + ("zenity" ,zenity))) + (synopsis "Window and compositing manager") + (home-page "http://www.gnome.org") + (description + "Mutter is a window and compositing manager that displays and manages your +desktop via OpenGL. Mutter combines a sophisticated display engine using the +Clutter toolkit with solid window-management logic inherited from the Metacity +window manager.") + (license license:gpl2+))) + +(define-public gnome-online-accounts + (package + (name "gnome-online-accounts") + (version "3.18.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1hn2fvkr1f4qh4gix03avnvk7pklvv5272ns8ws56v4kcq4nppkc")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. + ("gobject-introspection" ,gobject-introspection) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config) + ("xsltproc" ,libxslt))) + (propagated-inputs + `(("glib" ,glib) ; required by goa-1.0.pc + ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc + (inputs + `(("docbook-xsl" ,docbook-xsl) + ("json-glib" ,json-glib) + ("libsecret" ,libsecret) + ("rest" ,rest) + ("telepathy-glib" ,telepathy-glib) + ("webkitgtk" ,webkitgtk))) + (synopsis "Single sign-on framework for GNOME") + (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts") + (description + "GNOME Online Accounts provides interfaces so that applications and +libraries in GNOME can access the user's online accounts. It has providers for +Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft +Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") + (license license:lgpl2.0+))) + +(define-public evolution-data-server + (package + (name "evolution-data-server") + (version "3.18.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "16yfd2a00xqxikyf6pi2awfd0qfq4hwdhfar88axrb4mycfgqhjr")))) + (build-system gnu-build-system) + (arguments + '(;; XXX: fails with: + ;; /Fixture/Calendar0: cleaning up pid xxxx + ;; t status: 139) + #:tests? #f + #:configure-flags + (let ((nss (assoc-ref %build-inputs "nss")) + (nspr (assoc-ref %build-inputs "nspr"))) + (list "--disable-uoa" ; disable Ubuntu Online Accounts support + "--disable-google" ; disable Google Contacts support + (string-append "--with-nspr-includes=" nspr "/include/nspr") + (string-append "--with-nss-includes=" nss "/include/nss") + (string-append "--with-nss-libs=" nss "/lib/nss"))) + #:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + (substitute* "tests/test-server-utils/e-test-server-utils.c" + (("/bin/rm") (which "rm"))) + #t))))) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc. + ("gobject-introspection" ,gobject-introspection) + ("gperf" ,gperf) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config) + ("python" ,python))) + (propagated-inputs + ;; These are all in the Requires field of .pc files. + `(("gtk+" ,gtk+) + ("libical" ,libical) + ("libsecret" ,libsecret) + ("libsoup" ,libsoup) + ("nss" ,nss) + ("sqlite" ,sqlite))) + (inputs + `(("bdb" ,bdb) + ("gcr" ,gcr) + ("gnome-online-accounts" ,gnome-online-accounts) + ("libgweather" ,libgweather))) + (synopsis "Store address books and calendars") + (home-page "https://wiki.gnome.org/Apps/Evolution") + (description + "This package provides a unified backend for programs that work with +contacts, tasks, and calendar information. It was originally developed for +Evolution (hence the name), but is now used by other packages as well.") + (license license:lgpl2.0))) + +(define-public caribou + (package + (name "caribou") + (version "0.4.19") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0i2s2xy9ami3wslam15cajhggpcsj4c70qm7qddcz52z9k0x02rg")))) + (build-system glib-or-gtk-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before + 'build 'pre-build + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; Use absolute shared library path in Caribou-1.0.typelib. + (substitute* "libcaribou/Makefile" + (("--shared-library=libcaribou.so") + (string-append "--shared-library=" + out "/lib/libcaribou.so"))) + #t))) + (add-after 'install 'wrap-programs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (python-path (getenv "PYTHONPATH")) + (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) + (for-each + (lambda (prog) + (wrap-program prog + `("PYTHONPATH" ":" prefix (,python-path)) + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) + (list (string-append out "/bin/caribou-preferences") + (string-append out "/libexec/antler-keyboard")))) + #t))))) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. + ("gobject-introspection" ,gobject-introspection) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config) + ("python" ,python-2) ; incompatible with Python 3 (print syntax) + ("vala" ,vala) + ("xsltproc" ,libxslt))) + (propagated-inputs + ;; caribou-1.0.pc refers to all these. + `(("libgee" ,libgee) + ("libxklavier" ,libxklavier) + ("libxtst" ,libxtst) + ("gtk+" ,gtk+))) + (inputs + `(("clutter" ,clutter) + ("dconf" ,dconf) + ("gtk+-2" ,gtk+-2) + ("python-pygobject" ,python2-pygobject))) + (synopsis "Text entry and UI navigation application") + (home-page "https://wiki.gnome.org/Projects/Caribou") + (description + "Caribou is an input assistive technology intended for switch and pointer +users.") + (license license:lgpl2.1))) + +(define %network-manager-glib-duplicate-test-patch + (origin + (method url-fetch) + (uri (string-append + "http://cgit.freedesktop.org/NetworkManager/NetworkManager/" + "patch/libnm-core/tests/test-general.c" + "?id=874f455d6d47c5a34ed9861a6710f4b78202e0d6")) + (file-name "network-manager-glib-duplicate-test.patch") + (sha256 + (base32 + "1v0vpxzf0p0b1y5lmq8w7rjndp216gr60nbf2dpdz5rgxx3p3ml6")))) + +(define-public network-manager + (package + (name "network-manager") + (version "1.0.6") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/NetworkManager/" + (version-major+minor version) "/" + "NetworkManager-" version ".tar.xz")) + (sha256 + (base32 + "1galh9j95yw33iv1jj8zz0h88ahx8gm5mqmam7zq9f730cj01siq")) + (patches (list %network-manager-glib-duplicate-test-patch)))) + (build-system gnu-build-system) + (outputs '("out" + "doc")) ; 8 MiB of gtk-doc HTML + (arguments + '(#:configure-flags + (let ((out (assoc-ref %outputs "out")) + (doc (assoc-ref %outputs "doc")) + (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp") + "/sbin/dhclient"))) + (list "--with-crypto=gnutls" + "--disable-config-plugin-ibft" + "--sysconfdir=/etc" + "--localstatedir=/var" + (string-append "--with-udev-dir=" + out "/lib/udev") + (string-append "--with-dbus-sys-dir=" + out "/etc/dbus-1/system.d") + (string-append "--with-html-dir=" + doc "/share/gtk-doc/html") + (string-append "--with-dhclient=" dhclient))) + #:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + ;; For the missing /etc/machine-id. + (setenv "DBUS_FATAL_WARNINGS" "0") + #t)) + (replace 'install + (lambda _ + (zero? (system* "make" + "sysconfdir=/tmp" + "localstatedir=/tmp" + "install"))))))) + (native-inputs + `(("glib:bin" ,glib "bin") ; for gdbus-codegen + ("gobject-introspection" ,gobject-introspection) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config) + ;; For testing. + ("python" ,python-wrapper) + ("python-dbus" ,python-dbus) + ("python-pygobject" ,python-pygobject))) + (inputs + `(("dbus-glib" ,dbus-glib) + ("dnsmasq" ,dnsmasq) + ("gnutls" ,gnutls) + ("iptables" ,iptables) + ("isc-dhcp" ,isc-dhcp) + ("libgcrypt" ,libgcrypt) + ("libgudev" ,libgudev) + ("libndp" ,libndp) + ("libnl" ,libnl) + ("libsoup" ,libsoup) + ("polkit" ,polkit) + ("ppp" ,ppp) + ("readline" ,readline) + ("util-linux" ,util-linux))) + (synopsis "Network connection manager") + (home-page "http://www.gnome.org/projects/NetworkManager/") + (description + "NetworkManager is a system network service that manages your network +devices and connections, attempting to keep active network connectivity when +available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE +devices, and provides VPN integration with a variety of different VPN +services.") + (license license:gpl2+))) + +(define-public network-manager-applet + (package + (name "network-manager-applet") + (version "1.0.6") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1yj0m6fb9v12d0di0rfmk3hx1vmygjkiff2c476rf792sbh56kax")))) + (build-system glib-or-gtk-build-system) + (arguments '(#:configure-flags '("--disable-migration"))) + (native-inputs + `(("intltool" ,intltool) + ("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config))) + (propagated-inputs + ;; libnm-gtk.pc refers to all these. + `(("dbus-glib" ,dbus-glib) + ("gtk+" ,gtk+) + ("network-manager" ,network-manager))) + (inputs + `(("iso-codes" ,iso-codes) + ("libgudev" ,libgudev) + ("libnotify" ,libnotify) + ("libsecret" ,libsecret))) + (synopsis "Applet for managing network connections") + (home-page "http://www.gnome.org/projects/NetworkManager/") + (description + "This package contains a systray applet for NetworkManager. It displays +the available networks and allows users to easily switch between them.") + (license license:gpl2+))) + +(define-public libxml++ + (package + (name "libxml++") + (version "2.91.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0h4h7hhh9lg8h34py116517m3wqbzhd5v63k1c6pp1p2a43s18fs")))) + (build-system gnu-build-system) + ;; libxml++-3.0.pc refers to all these. + (propagated-inputs + `(("libxml2" ,libxml2) + ("glibmm" ,glibmm))) + (native-inputs + `(("perl" ,perl) + ("pkg-config" ,pkg-config))) + (home-page "http://libxmlplusplus.sourceforge.net/") + (synopsis "C++ wrapper for XML parser library libxml2") + (description + "This package provides a C++ wrapper for the XML parser library +libxml2.") + (license license:lgpl2.1+))) diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index 42d19af8f4..e252f98f94 100644 --- a/gnu/packages/gnucash.scm +++ b/gnu/packages/gnucash.scm @@ -37,7 +37,7 @@ (define-public gnucash (package (name "gnucash") - (version "2.6.6") + (version "2.6.9") (source (origin (method url-fetch) @@ -45,7 +45,7 @@ version ".tar.bz2")) (sha256 (base32 - "103ir5qg6k8m2mmg9b99c3gn8myxh1gsqyr0mfhmrhqya68wfdr3")) + "0iw25l1kv60cg6fd2vg11mcvzmjqnc5p9lp3rjy06ghkjfrn3and")) (patches (list (search-patch "gnucash-price-quotes-perl.patch"))))) (build-system gnu-build-system) (inputs diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 9b273ace7b..2a4c5cfeed 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in> ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,6 +30,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) #:use-module (gnu packages groff) + #:use-module (gnu packages guile) #:use-module (gnu packages gstreamer) #:use-module (gnu packages libidn) #:use-module (gnu packages image) @@ -45,6 +47,7 @@ #: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)) (define-public libextractor @@ -111,14 +114,14 @@ tool to extract metadata from a file and print the results.") (define-public libmicrohttpd (package (name "libmicrohttpd") - (version "0.9.44") + (version "0.9.47") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-" version ".tar.gz")) (sha256 (base32 - "07j1p21rvbrrfpxngk8xswzkmjkh94bp1971xfjh1p0ja709qwzj")))) + "1335kznai5ih3kmavl1707sr4sakk0cc0srl5aax77x0a91spgcn")))) (build-system gnu-build-system) (inputs `(("curl" ,curl) @@ -250,3 +253,36 @@ applications. In particular, GNUnet now includes the GNU Name System, a privacy-preserving, decentralized public key infrastructure.") (license license:gpl3+) (home-page "https://gnunet.org/"))) + +(define-public guile-gnunet ;GSoC 2015! + (let ((commit "383eac2")) + (package + (name "guile-gnunet") + (version (string-append "0.0." commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://git.sv.gnu.org/guix/gnunet.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0k6mn28isjlxrnvbnblab3nh2xqx1b7san8k98kc35ap9lq0iz8w")))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'configure 'bootstrap + (lambda _ + (zero? (system* "autoreconf" "-vfi"))))))) + (native-inputs `(("pkg-config" ,pkg-config) + ("autoconf" ,(autoconf-wrapper)) + ("automake" ,automake))) + (inputs `(("guile" ,guile-2.0) + ("gnunet" ,gnunet))) + (synopsis "Guile bindings for GNUnet services") + (description + "This package provides Guile bindings to the client libraries of various +GNUnet services, including the @dfn{identity} and @dfn{file sharing} +services.") + (home-page "http://gnu.org/software/guix") + (license license:gpl3+)))) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 333e88362b..af01749545 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +23,7 @@ (define-module (gnu packages gnupg) #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages adns) #:use-module (gnu packages curl) #:use-module (gnu packages openldap) #:use-module (gnu packages perl) @@ -31,6 +33,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages gtk) #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) #:use-module (gnu packages pkg-config) #:use-module (gnu packages ncurses) #:use-module (gnu packages tls) @@ -110,7 +113,7 @@ generation.") (define-public libassuan (package (name "libassuan") - (version "2.2.1") + (version "2.4.2") (source (origin (method url-fetch) @@ -118,7 +121,7 @@ generation.") version ".tar.bz2")) (sha256 (base32 - "1pp2kl5gc2vja41g3wk03h1hgh7gxy6pj354fb5n4lrlg6xqb4ll")))) + "086bbcdnvs48qq5g4iac7dpk76j0q3jrp16mchdvyx0b720xq1mv")))) (build-system gnu-build-system) (propagated-inputs `(("libgpg-error" ,libgpg-error) ("pth" ,pth))) @@ -193,19 +196,20 @@ compatible to GNU Pth.") (define-public gnupg (package (name "gnupg") - (version "2.1.9") + (version "2.1.10") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) (sha256 (base32 - "1dpp555glln6fldk72ad7lkrn8h3cr2bg714z5kfn2qrawx67dqw")))) + "1ybcsazjm21i2ys1wh49cz4azmqz7ghx5rb6hm4gm93i2zc5igck")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs - `(("bzip2" ,bzip2) + `(("adns" ,adns) + ("bzip2" ,bzip2) ("curl" ,curl) ("gnutls" ,gnutls) ("libassuan" ,libassuan) @@ -237,17 +241,18 @@ libskba (working with X.509 certificates and CMS data).") (define-public gnupg-2.0 (package (inherit gnupg) - (version "2.0.28") + (version "2.0.29") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) (sha256 (base32 - "0k2k399fnhfhhr4dvm8d6vs4ihq6gg06191lzfwikzaqmgj2w2ff")))) + "1jaakn0mi6pi2b3g3imxj3qzxw2zg0ifxs30baq2b157dcw6pvb8")))) (native-inputs '()) (inputs - `(("bzip2" ,bzip2) + `(("adns" ,adns) + ("bzip2" ,bzip2) ("curl" ,curl) ("libassuan" ,libassuan) ("libgcrypt" ,libgcrypt) @@ -294,7 +299,7 @@ libskba (working with X.509 certificates and CMS data).") (define-public gpgme (package (name "gpgme") - (version "1.5.5") + (version "1.6.0") (source (origin (method url-fetch) @@ -302,7 +307,7 @@ libskba (working with X.509 certificates and CMS data).") ".tar.bz2")) (sha256 (base32 - "01y28fkq52wwf4p470wscaxd2vgzl615irmafx3mj3380x8ksg8b")))) + "17892sclz3yg45wbyqqrzzpq3l0icbnfl28f101b3062g8cy97dh")))) (build-system gnu-build-system) (propagated-inputs ;; Needs to be propagated because gpgme.h includes gpg-error.h. @@ -371,14 +376,15 @@ and signature functionality from Python programs.") (define-public pius (package (name "pius") - (version "2.1.1") + (version "2.2.1") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/pgpius/pius/" - version "/pius-" - version ".tar.bz2")) - (sha256 (base32 - "0ry3kc3x1qjmvb581ja2z2v32r1rl1g8rhfj7iqvs8nzq4ca512i")))) + (uri (string-append + "https://github.com/jaymzh/pius/releases/download/v" + version "/pius-" version ".tar.bz2")) + (sha256 + (base32 + "003dwpamq0c7w8q9zpgi4h03rs8rwjm0czkn9s60m91p6aql5f42")))) (build-system python-build-system) (inputs `(("perl" ,perl) ;for 'pius-party-worksheet' ("gpg" ,gnupg-2.0))) ;2.1 fails to talk to gpg-agent 2.0 @@ -393,7 +399,7 @@ and signature functionality from Python programs.") (let* ((gpg (string-append (assoc-ref inputs "gpg") "/bin/gpg2"))) (substitute* "libpius/constants.py" - (("/usr/bin/gpg") gpg)))))))) + (("/usr/bin/gpg2") gpg)))))))) (synopsis "Programs to simplify GnuPG key signing") (description "Pius (PGP Individual UID Signer) helps attendees of PGP keysigning @@ -510,18 +516,19 @@ including tools for signing keys, keyring analysis, and party preparation. (define-public pinentry (package (name "pinentry") - (version "0.9.5") + (version "0.9.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/pinentry/pinentry-" version ".tar.bz2")) (sha256 (base32 - "1338hj1h3sh34897120y30x12b64wyj3xjzzk5asm2hdzhxgsmva")))) + "0rhyw1vk28kgasjp22myf7m2q8kycw82d65pr9kgh93z17lj849a")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses) ("libassuan" ,libassuan) + ("libsecret" ,libsecret "out") ("gtk+" ,gtk+-2) ("glib" ,glib))) (native-inputs diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 3e933e7ec5..6d134a89c7 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -92,10 +92,48 @@ in C/C++.") (license license:mpl2.0))) ; and others for some files +(define-public mozjs-24 + (package (inherit mozjs) + (name "mozjs") + (version "24.2.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://ftp.mozilla.org/pub/mozilla.org/js/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "1n1phk8r3l8icqrrap4czplnylawa0ddc2cc4cgdz46x3lrkybz6")))) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace + 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (chdir "js/src") + ;; configure fails if it is follwed by SHELL and CONFIG_SHELL + (setenv "SHELL" (which "sh")) + (setenv "CONFIG_SHELL" (which "sh")) + (zero? (system* "./configure" + (string-append "--prefix=" out) + "--with-system-nspr" + "--enable-system-ffi" + "--enable-threadsafe")))))))) + (native-inputs + `(("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python" ,python-2))) + (propagated-inputs + `(("nspr" ,nspr))) ; in the Requires.private field of mozjs-24.pc + (inputs + `(("libffi" ,libffi) + ("zlib" ,zlib))))) + (define-public nspr (package (name "nspr") - (version "4.10.8") + (version "4.10.10") (source (origin (method url-fetch) (uri (string-append @@ -103,7 +141,7 @@ in C/C++.") version "/src/nspr-" version ".tar.gz")) (sha256 (base32 - "05aaakz24ba2hdzlqx8qamwrsp7gni1acms8mr6m432wa9yaazjh")))) + "01ria9wk6329hxqsy75p9dkxiqkq4nkz0jjzll7hslih3jbi8dil")))) (build-system gnu-build-system) (native-inputs `(("perl", perl))) @@ -129,18 +167,18 @@ in the Mozilla clients.") (define-public nss (package (name "nss") - (version "3.19.2") + (version "3.20.1") (source (origin (method url-fetch) (uri (let ((version-with-underscores (string-join (string-split version #\.) "_"))) (string-append - "ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/" + "https://ftp.mozilla.org/pub/mozilla.org/security/nss/" "releases/NSS_" version-with-underscores "_RTM/src/" "nss-" version ".tar.gz"))) (sha256 (base32 - "1bn9wbf52z4423134hpkyvcxq1568fvzmkybv2d49n31iwz6c1hk")) + "15wcbqd2b911hxafbjfn63zd1gf2yxg0s5560hnhqmyrvw8qyg5d")) ;; Create nss.pc and nss-config. (patches (list (search-patch "nss-pkgconfig.patch"))))) (build-system gnu-build-system) @@ -228,7 +266,7 @@ standards.") (define-public icecat (package (name "icecat") - (version "38.3.0-gnu1") + (version "38.4.0-gnu1") (source (origin (method url-fetch) @@ -237,7 +275,7 @@ standards.") name "-" version ".tar.bz2")) (sha256 (base32 - "0vm6f7f1i5vkq2713mgzjdfnm8rpz9l0q8sv4s123vsam0j9gzh8")) + "0rcaa19rfgclwd2qvcz8798m57jjzra6kaxg5dniysajvx7qndfp")) (patches (map search-patch '("icecat-avoid-bundled-includes.patch" "icecat-freetype-2.6.patch"))) (modules '((guix build utils))) diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm index b1da394835..79fc2f0aca 100644 --- a/gnu/packages/grub.scm +++ b/gnu/packages/grub.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,6 +29,8 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages linux) #:use-module (gnu packages qemu) + #:use-module (gnu packages man) + #:use-module (gnu packages texinfo) #:use-module (gnu packages ncurses) #:use-module (gnu packages cdrom) #:use-module (srfi srfi-1)) @@ -38,7 +41,7 @@ ;; <https://bugs.launchpad.net/bugs/947597> and fixed at ;; <http://bzr.savannah.gnu.org/lh/grub/trunk/grub/revision/4828>. ;; Work around it by using an older QEMU. - (package (inherit qemu-headless) + (package (inherit qemu-minimal) (version "1.3.1") (source (origin (method url-fetch) @@ -52,7 +55,7 @@ ;; ERROR:tests/rtc-test.c:176:check_time: assertion failed (ABS(t - s) <= wiggle): (382597824 <= 2) ;; Simply disable the tests. (arguments `(#:tests? #f - ,@(package-arguments qemu))) + ,@(package-arguments qemu-minimal))) ;; The manual fails to build with Texinfo 5.x. (native-inputs (alist-delete "texinfo" (package-native-inputs qemu))))) @@ -84,30 +87,35 @@ (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-werror") - #:phases (alist-cons-before - 'patch-source-shebangs 'patch-stuff - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "grub-core/Makefile.in" - (("/bin/sh") (which "sh"))) + #:phases (modify-phases %standard-phases + (add-after + 'unpack 'patch-stuff + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "grub-core/Makefile.in" + (("/bin/sh") (which "sh"))) - ;; Make the font visible. - (copy-file (assoc-ref inputs "unifont") "unifont.bdf.gz") - (system* "gunzip" "unifont.bdf.gz") + ;; Make the font visible. + (copy-file (assoc-ref inputs "unifont") "unifont.bdf.gz") + (system* "gunzip" "unifont.bdf.gz") - ;; TODO: Re-enable this test when we have Parted. - (substitute* "tests/partmap_test.in" - (("set -e") "exit 77"))) - %standard-phases))) + ;; TODO: Re-enable this test when we have Parted. + (substitute* "tests/partmap_test.in" + (("set -e") "exit 77")) + + #t))))) (inputs `(;; ("lvm2" ,lvm2) ("gettext" ,gnu-gettext) ("freetype" ,freetype) ;; ("libusb" ,libusb) + ;; ("fuse" ,fuse) ("ncurses" ,ncurses))) (native-inputs `(("unifont" ,unifont) ("bison" ,bison) ("flex" ,flex) + ("texinfo" ,texinfo) + ("help2man" ,help2man) ;; Dependencies for the test suite. The "real" QEMU is needed here, ;; because several targets are used. diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 0ac9783550..1235b3185a 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -83,20 +83,20 @@ arrays of data.") (define-public gstreamer (package (name "gstreamer") - (version "1.4.5") + (version "1.6.1") (source (origin (method url-fetch) - (uri (string-append "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-" - version ".tar.xz")) + (uri (string-append + "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-" + version ".tar.xz")) (sha256 (base32 - "1bmhbhak6i5wmmb6w86jyyv8lax4gdq983la4lk4a0krz6kim020")))) + "172w1bpnkn6mm1wi37n03apdbb6cdkykhzjf1vfxchcd7hhkyflp")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments - `(#:make-flags '("CC=gcc") ; for g-ir-scanner. - #:configure-flags + `(#:configure-flags (list (string-append "--with-html-dir=" (assoc-ref %outputs "doc") "/share/gtk-doc/html")))) @@ -131,15 +131,15 @@ This package provides the core library and elements.") (define-public gst-plugins-base (package (name "gst-plugins-base") - (version "1.4.5") + (version "1.6.1") (source (origin (method url-fetch) - (uri (string-append "http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-" - version ".tar.xz")) + (uri (string-append "http://gstreamer.freedesktop.org/src/" name "/" + name "-" version ".tar.xz")) (sha256 (base32 - "07ampnfa6p41s0lhia62l9h8bdx3c7vxvdz93pbx64m3wycq3gbp")))) + "18sbyjcp281zb3bsqji3pglsdsxi0s6ai7rx90sx8cpflkxdqcwm")))) (build-system gnu-build-system) (outputs '("out" "doc")) (propagated-inputs @@ -162,7 +162,8 @@ This package provides the core library and elements.") ("gobject-introspection" ,gobject-introspection) ("python-wrapper" ,python-wrapper))) (arguments - `(#:configure-flags + `(#:parallel-tests? #f ; 'pipelines/tcp' fails in parallel + #:configure-flags (list (string-append "--with-html-dir=" (assoc-ref %outputs "doc") "/share/gtk-doc/html")) @@ -171,9 +172,7 @@ This package provides the core library and elements.") 'configure 'patch (lambda _ (substitute* "tests/check/libs/pbutils.c" - (("/bin/sh") (which "sh"))) - ;; for g-ir-scanner. - (setenv "CC" "gcc")) + (("/bin/sh") (which "sh")))) %standard-phases))) (home-page "http://gstreamer.freedesktop.org/") (synopsis @@ -186,7 +185,7 @@ for the GStreamer multimedia library.") (define-public gst-plugins-good (package (name "gst-plugins-good") - (version "1.4.5") + (version "1.6.1") (source (origin (method url-fetch) @@ -195,7 +194,7 @@ for the GStreamer multimedia library.") version ".tar.xz")) (sha256 (base32 - "0hg6qzdpib9nwn3hdxv0d4rvivi1c4bmxsq2a9hqmamwyzrvbcbr")))) + "0darc3058kbnql3mnlpizl0sq0hhli7vkm0rpqb7nywz14abim46")))) (build-system gnu-build-system) (inputs `(("aalib" ,aalib) @@ -229,7 +228,7 @@ for the GStreamer multimedia library.") 'unpack 'disable-failing-rtprtx-tests (lambda _ ;; Disable rtprtx tests that frequently fail. - ;; XXX FIXME: Try removing this for version > 1.4.5. + ;; XXX FIXME: Try removing this for version > 1.6.1. (substitute* "tests/check/elements/rtprtx.c" (("tcase_add_test \\(tc_chain,\ (test_rtxsender_max_size_packets|test_rtxreceive_data_reconstruction)\\);" all) @@ -246,7 +245,7 @@ developers consider to have good quality code and correct functionality.") (define-public gst-plugins-ugly (package (name "gst-plugins-ugly") - (version "1.4.5") + (version "1.6.1") (source (origin (method url-fetch) @@ -254,7 +253,7 @@ developers consider to have good quality code and correct functionality.") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "0rwhljn3f8mp2pfchzfcx4pvps1546dndw9mr56lz50qyqffimaw")))) + "0mvasl1pwq70w2kmrkcrg77kggl5q7jqybi7fkvy3vr28c7gkhqc")))) (build-system gnu-build-system) (inputs `(("gst-plugins-base" ,gst-plugins-base) @@ -284,7 +283,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.") (define-public gst-libav (package (name "gst-libav") - (version "1.4.5") + (version "1.6.1") (source (origin (method url-fetch) (uri (string-append @@ -292,7 +291,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.") name "-" version ".tar.xz")) (sha256 (base32 - "1g7vg9amh3cc3nmc415h6g2rqxqi4wgwqi08hxfbpwq48ri64p30")))) + "1a9pc7zp5rg0cvpx8gqkr21w73i6p9xa505a34day9f8p3lfim94")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-system-libav") diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index a01e6d0dd3..c0c0794f4a 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com> +;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -60,7 +61,7 @@ (define-public atk (package (name "atk") - (version "2.16.0") + (version "2.18.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -68,7 +69,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "0qp5i91kfk6rhrlam3s8ha0cz88lkyp89vsyn4pb5856c1h9hpq9")))) + "0ay9s137x49f0akx658p7kznz0rdapfrd8ym54q0hlgrggblhv6f")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -144,7 +145,7 @@ affine transformation (scale, rotation, shear, etc.).") (define-public harfbuzz (package (name "harfbuzz") - (version "1.0.3") + (version "1.0.5") (source (origin (method url-fetch) (uri (string-append "http://www.freedesktop.org/software/" @@ -152,7 +153,7 @@ affine transformation (scale, rotation, shear, etc.).") version ".tar.bz2")) (sha256 (base32 - "1xrxlrvgyr6mm9qjxmkif2kvcah082y94gf1vqi0f0bdl1g8gp7b")))) + "0h2l362qzkck5dnnj7zlz593hf1ni3k25dfaii9mbjwflp3d56ad")))) (build-system gnu-build-system) (outputs '("out" "bin")) ; 160K, only hb-view depend on cairo @@ -182,7 +183,7 @@ affine transformation (scale, rotation, shear, etc.).") (define-public pango (package (name "pango") - (version "1.36.8") + (version "1.38.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/pango/" @@ -190,7 +191,7 @@ affine transformation (scale, rotation, shear, etc.).") name "-" version ".tar.xz")) (sha256 (base32 - "01rdzjh68w8l5zn0648yibyarj8p6g7yfn59nw5awaz1i8dvbnqq")))) + "1dsf45m51i4rcyvh5wlxxrjfhvn5b67d5ckjc6vdcxbddjgmc80k")))) (build-system gnu-build-system) (propagated-inputs `(("cairo" ,cairo) @@ -253,8 +254,10 @@ functions which were removed.") (build-system waf-build-system) (arguments `(#:phases (alist-cons-before - 'configure 'set-ldflags + 'configure 'set-flags (lambda* (#:key outputs #:allow-other-keys) + ;; Compile with C++11, required by gtkmm. + (setenv "CXXFLAGS" "-std=c++11") ;; Allow 'bin/ganv_bench' to find libganv-1.so. (setenv "LDFLAGS" (string-append "-Wl,-rpath=" @@ -275,7 +278,7 @@ graph-like environments, e.g. modular synths or finite state machine diagrams.") (license license:gpl3+))) -(define-public gtksourceview +(define-public gtksourceview-2 (package (name "gtksourceview") (version "2.10.5") ; This is the last version which builds against gtk+2 @@ -290,7 +293,6 @@ diagrams.") (build-system gnu-build-system) (inputs `(("gtk" ,gtk+-2) - ("libxml2" ,libxml2) ;; These two are needed only to allow the tests to run successfully. ("xorg-server" ,xorg-server) ("shared-mime-info" ,shared-mime-info))) @@ -298,6 +300,9 @@ diagrams.") `(("intltool" ,intltool) ("glib" ,glib "bin") ; for glib-genmarshal, etc. ("pkg-config" ,pkg-config))) + (propagated-inputs + ;; As per the pkg-config file. + `(("libxml2" ,libxml2))) (arguments `(#:phases ;; Unfortunately, some of the tests in "make check" are highly dependent @@ -329,6 +334,54 @@ printing and other features typical of a source code editor.") (license license:lgpl2.0+) (home-page "https://developer.gnome.org/gtksourceview/"))) +(define-public gtksourceview + (package + (name "gtksourceview") + (version "3.18.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1rpdg8rcjlqv8yk13vsh5148mads0zbfih8cak3hm7wb0spmzsbv")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before + 'check 'pre-check + (lambda* (#:key inputs #:allow-other-keys) + (let ((xorg-server (assoc-ref inputs "xorg-server"))) + ;; Tests require a running X server. + (system (format #f "~a/bin/Xvfb :1 &" xorg-server)) + (setenv "DISPLAY" ":1") + ;; For the missing /etc/machine-id. + (setenv "DBUS_FATAL_WARNINGS" "0") + #t)))))) + (native-inputs + `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc. + ("intltool" ,intltool) + ("itstool", itstool) + ("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config) + ("vala" ,vala) + ;; For testing. + ("xorg-server" ,xorg-server) + ("shared-mime-info" ,shared-mime-info))) + (propagated-inputs + ;; gtksourceview-3.0.pc refers to all these. + `(("glib" ,glib) + ("gtk+" ,gtk+) + ("libxml2" ,libxml2))) + (home-page "https://wiki.gnome.org/Projects/GtkSourceView") + (synopsis "GNOME source code widget") + (description "GtkSourceView is a text widget that extends the standard +GTK+ text widget GtkTextView. It improves GtkTextView by implementing syntax +highlighting and other features typical of a source code editor.") + (license license:lgpl2.1+))) + (define-public gdk-pixbuf (package (name "gdk-pixbuf") @@ -381,7 +434,7 @@ in the GNOME project.") (define-public at-spi2-core (package (name "at-spi2-core") - (version "2.16.0") + (version "2.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -389,7 +442,7 @@ in the GNOME project.") name "-" version ".tar.xz")) (sha256 (base32 - "1l3l39mw23zyjlcqidvkyqlr4gwbhplzw2hcv3qvn6p8ikxpf2qw")))) + "1kq17w4fm51d49vzmglkxqdm6s0yvjvrpgw78r2hajf69jz5bmap")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -402,6 +455,8 @@ in the GNOME project.") (replace 'check ;; Run test-suite under a dbus session. (lambda _ + ;; Don't fail on missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") (zero? (system* "dbus-launch" "make" "check"))))))) (propagated-inputs ;; atspi-2.pc refers to all these. @@ -424,7 +479,7 @@ is part of the GNOME accessibility project.") (define-public at-spi2-atk (package (name "at-spi2-atk") - (version "2.16.0") + (version "2.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -432,7 +487,7 @@ is part of the GNOME accessibility project.") name "-" version ".tar.xz")) (sha256 (base32 - "1y9gfz1iz3wpja7s000f0bmyyvc6im5fcdl6bxwbz0v3qdgc9vvq")))) + "0bf1g5cj84rmx7p1q547vwbc0hlpcs2wrxnmv96lckfkhs9mzcf4")))) (build-system gnu-build-system) (arguments '(#:phases @@ -440,6 +495,7 @@ is part of the GNOME accessibility project.") (replace 'check ;; Run test-suite under a dbus session. (lambda _ + (setenv "DBUS_FATAL_WARNINGS" "0") (zero? (system* "dbus-launch" "make" "check"))))))) (propagated-inputs `(("at-spi2-core" ,at-spi2-core))) ; required by atk-bridge-2.0.pc @@ -514,7 +570,7 @@ application suites.") (define-public gtk+ (package (inherit gtk+-2) (name "gtk+") - (version "3.16.6") + (version "3.18.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -522,12 +578,13 @@ application suites.") name "-" version ".tar.xz")) (sha256 (base32 - "1gpzlnfrifc17yfk0zki6b2vmsfpf5cmrbh232s6iaan11np44jd")))) + "0lp1hn0qydxx03bianzzr0a4maqzsvylrkzr7c3p0050qihwbgjx")))) (propagated-inputs `(("at-spi2-atk" ,at-spi2-atk) ("atk" ,atk) ("gdk-pixbuf" ,gdk-pixbuf) ("libepoxy" ,libepoxy) + ("libxcursor" ,libxcursor) ("libxi" ,libxi) ("libxinerama" ,libxinerama) ("libxdamage" ,libxdamage) @@ -535,7 +592,13 @@ application suites.") (inputs `(("librsvg" ,librsvg) ;for gtk-encode-symbolic-svg ("libxml2" ,libxml2) - ("cups" ,cups))) ;for printing support + ;; XXX: colord depends on mozjs (through polkit), which fails on + ;; on non-intel systems now. + ;;("colord" ,colord) + ("cups" ,cups) ;for printing support + ;; XXX: rest depends on p11-kit, which fails on mips64el now. + ;;("rest" ,rest) + ("json-glib" ,json-glib))) (native-inputs `(("perl" ,perl) ("glib" ,glib "bin") @@ -731,14 +794,15 @@ documents.") (define-public cairomm (package (name "cairomm") - (version "1.11.2") + (version "1.12.0") (source (origin - (method url-fetch) - (uri (string-append "http://cairographics.org/releases/cairomm-" - version ".tar.gz")) - (sha256 - (base32 - "138052ybc58q5yl92m2p0br0k0a9g1pi9gfhmn4y220yih4pgxnc")))) + (method url-fetch) + (uri (string-append "mirror://gnome/sources/cairomm/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1rmgs6zjj2vaxh9hsa0944m23fdn1psycqh7bi984qd8jj1xljm5")))) (build-system gnu-build-system) (arguments ;; The examples lack -lcairo. @@ -759,7 +823,7 @@ library.") (define-public pangomm (package (name "pangomm") - (version "2.36.0") + (version "2.38.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -767,7 +831,7 @@ library.") name "-" version ".tar.xz")) (sha256 (base32 - "1w11d05nkxglzg67rfa81vqghm75xhy6j396xmmp5mq8qx96knd8")))) + "12xwjvqfxhqblcv7641k0l6r8n3qifnrx8w9571izn1nbd81iyzg")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (propagated-inputs @@ -785,7 +849,7 @@ library.") (define-public atkmm (package (name "atkmm") - (version "2.22.7") + (version "2.24.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -793,7 +857,7 @@ library.") name "-" version ".tar.xz")) (sha256 (base32 - "06zrf2ymml2dzp53sss0d4ch4dk9v09jm8rglnrmwk4v81mq9gxz")))) + "08zd6s5c1q90wm8310mdrb5f2lj8v63wxihrybwyw13xlf6ivi16")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (propagated-inputs @@ -808,7 +872,7 @@ toolkit.") (define-public gtkmm (package (name "gtkmm") - (version "3.16.0") + (version "3.18.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -816,9 +880,10 @@ toolkit.") name "-" version ".tar.xz")) (sha256 (base32 - "036xn22jkaf3akpid7w23b8vkqa3xxqz93mwacmyar5vw7slm3cv")))) + "0sxq700invkjpksn790gbnl8px8751kvgwn39663jx7dv89s37w2")))) (build-system gnu-build-system) - (native-inputs `(("pkg-config" ,pkg-config))) + (native-inputs `(("pkg-config" ,pkg-config) + ("glib" ,glib "bin"))) ;for 'glib-compile-resources' (propagated-inputs `(("pangomm" ,pangomm) ("cairomm" ,cairomm) @@ -849,6 +914,9 @@ extensive documentation, including API reference and a tutorial.") (sha256 (base32 "1vpmjqv0aqb1ds0xi6nigxnhlr0c74090xzi15b92amlzkrjyfj4")))) + (arguments + '(#:configure-flags '("CPPFLAGS=-std=c++11"))) ; required by libsigc++ + (native-inputs `(("pkg-config" ,pkg-config))) (propagated-inputs `(("pangomm" ,pangomm) ("cairomm" ,cairomm) @@ -1040,7 +1108,7 @@ information.") (home-page "http://www.gtk.org/gtk-doc/") (synopsis "Documentation generator from C source code") (description - "GTK-Doc generates API documentation from comments added to C code. It is + "GTK-Doc generates API documentation from comments added to C code. It is typically used to document the public API of GTK+ and GNOME libraries, but it can also be used to document application code.") (license license:gpl2+))) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index e778bf0f6e..a4203f0f3b 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -29,6 +29,7 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages flex) #:use-module (gnu packages libunistring) + #:use-module (gnu packages linux) #:use-module (gnu packages m4) #:use-module (gnu packages multiprecision) #:use-module (gnu packages pkg-config) @@ -38,8 +39,12 @@ #:use-module (gnu packages base) #:use-module (gnu packages texinfo) #:use-module (gnu packages gettext) - #:use-module (gnu packages gdbm) + #:use-module (gnu packages databases) #:use-module (gnu packages python) + #:use-module (gnu packages gl) + #:use-module (gnu packages sdl) + #:use-module (gnu packages maths) + #:use-module (gnu packages image) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -189,21 +194,33 @@ without requiring the source code to be rewritten.") (define-public guile-next (package (inherit guile-2.0) (name "guile-next") - (version "20150815.00884bb") + (version "2.1.1") + (source (origin + (method url-fetch) + (uri (string-append "ftp://alpha.gnu.org/gnu/guile/guile-" + version ".tar.xz")) + (sha256 + (base32 + "0nixmx7as79g8rr8bvznh59pwcc2jd22cfk17v309p57zp2c255r")))) + (synopsis "Snapshot of what will become version 2.2 of GNU Guile"))) + +(define-public guile-for-guile-emacs + (package (inherit guile-next) + (name "guile-for-guile-emacs") + (version "20150510.d8d9a8d") (source (origin (method git-fetch) (uri (git-reference - (url "git://git.sv.gnu.org/guile.git") - (commit "00884bb79fff41fdf5f22f24a74e366a94a14c9b"))) + (url "git://git.hcoop.net/git/bpt/guile.git") + (commit "d8d9a8da05ec876acba81a559798eb5eeceb5a17"))) (sha256 (base32 - "0qk8m9aq3i7pzw6npim58xmsvjqfz5kl1pkyb6b43awn2vydydi5")))) - + "00sprsshy16y8pxjy126hr2adqcvvzzz96hjyjwgg8swva1qh6b0")))) (arguments (substitute-keyword-arguments `(;; Tests aren't passing for now. ;; Obviously we should re-enable this! #:tests? #f - ,@(package-arguments guile-2.0)) + ,@(package-arguments guile-next)) ((#:phases phases) `(modify-phases ,phases (add-after 'unpack 'autogen @@ -214,7 +231,6 @@ without requiring the source code to be rewritten.") (substitute* "build-aux/git-version-gen" (("#!/bin/sh") (string-append "#!" (which "sh")))) #t)))))) - (synopsis "Snapshot of what will become version 2.2 of GNU Guile") (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -222,26 +238,63 @@ without requiring the source code to be rewritten.") ("flex" ,flex) ("texinfo" ,texinfo) ("gettext" ,gnu-gettext) - ,@(package-native-inputs guile-2.0))))) - -(define-public guile-for-guile-emacs - (package (inherit guile-next) - (name "guile-for-guile-emacs") - (version "20150510.d8d9a8d") - (source (origin - (method git-fetch) - (uri (git-reference - (url "git://git.hcoop.net/git/bpt/guile.git") - (commit "d8d9a8da05ec876acba81a559798eb5eeceb5a17"))) - (sha256 - (base32 - "00sprsshy16y8pxjy126hr2adqcvvzzz96hjyjwgg8swva1qh6b0")))))) + ,@(package-native-inputs guile-next))))) ;;; ;;; Extensions. ;;; +(define-public artanis + (package + (name "artanis") + (version "0.1.0") + (source (origin + (method url-fetch) + (uri (string-append "ftp://alpha.gnu.org/gnu/artanis/artanis-" + version ".tar.gz")) + (sha256 + (base32 + "1mc2zy6n9wnn4hzi3zp3jd6b5rlr0lv7fvh800xf4fyrxg0zia4g")))) + (build-system gnu-build-system) + ;; TODO: Add guile-dbi and guile-dbd optional dependencies. + (inputs `(("guile" ,guile-2.0))) + (native-inputs `(("bash" ,bash) ;for the `source' builtin + ("pkgconfig" ,pkg-config) + ("util-linux" ,util-linux))) ;for the `script' command + (arguments + '(#:make-flags + ;; TODO: The documentation must be built with the `docs' target. + (let* ((out (assoc-ref %outputs "out")) + (dir (string-append out "/share/guile/site/2.0"))) + ;; Don't use (%site-dir) for site paths. + (list (string-append "MOD_PATH=" dir) + (string-append "MOD_COMPILED_PATH=" dir))) + #:test-target "test" + #:phases + (modify-phases %standard-phases + (add-before + 'install 'substitute-root-dir + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "Makefile" ;ignore the execution of bash.bashrc + ((" /etc/bash.bashrc") " /dev/null")) + (substitute* "Makefile" ;set the root of config files to OUT + ((" /etc") (string-append " " out "/etc"))) + (mkdir-p (string-append out "/bin")) ;for the `art' executable + #t)))))) + (synopsis "Web application framework written in Guile") + (description "GNU Artanis is a web application framework written in Guile +Scheme. A web application framework (WAF) is a software framework that is +designed to support the development of dynamic websites, web applications, web +services and web resources. The framework aims to alleviate the overhead +associated with common activities performed in web development. Artanis +provides several tools for web development: database access, templating +frameworks, session management, URL-remapping for RESTful, page caching, and +more.") + (home-page "https://www.gnu.org/software/artanis/") + (license (list gpl3+ lgpl3+)))) ;dual license + (define-public guile-reader (package (name "guile-reader") @@ -296,6 +349,10 @@ many readers as needed).") (string-append "--with-guilesitedir=" (assoc-ref %outputs "out") "/share/guile/site/2.0")) + + ;; Work around <http://bugs.gnu.org/21677>. + #:make-flags '("XFAIL_TESTS=curses_034_util.test") + #:phases (alist-cons-after 'install 'post-install (lambda* (#:key outputs #:allow-other-keys) @@ -412,6 +469,7 @@ http:://json.org specification. These are the main features: (uri (git-reference (url "https://github.com/ijp/minikanren.git") (commit "e844d85512f8c055d3f96143ee506007389a25e3"))) + (file-name (string-append name "-" version "-checkout")) (sha256 (base32 "0r50jlpzi940jlmxyy3ddqqwmj5r12gb4bcv0ssini9v8km13xz6")))) @@ -478,6 +536,84 @@ slightly from miniKanren mainline. See http://minikanren.org/ for more on miniKanren generally.") (license expat))) +(define-public guile-irregex + (package + (name "guile-irregex") + (version "0.9.3") + (source (origin + (method url-fetch) + (uri (string-append + "http://synthcode.com/scheme/irregex/irregex-" + version + ".tar.gz")) + (sha256 + (base32 + "1b8jl7bycyl2ssp6sb1j24pp9hvqyxm85ki9bmwd50glyyjs5zay")))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build utils) + (ice-9 match) + (guix build gnu-build-system)) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (delete 'check) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (begin + (use-modules (guix build utils) + (ice-9 match)) + (let* ((out (assoc-ref outputs "out")) + (module-dir (string-append out "/share/guile/site/2.0")) + (source (assoc-ref inputs "source")) + (doc (string-append out "/share/doc/guile-irregex/")) + (guild (string-append (assoc-ref %build-inputs "guile") + "/bin/guild"))) + ;; Make installation directories. + (mkdir-p (string-append module-dir "/rx/source")) + (mkdir-p doc) + + ;; Compile .scm files and install. + (setenv "GUILE_AUTO_COMPILE" "0") + + (for-each (lambda (copy-info) + (match copy-info + ((src-file dest-file-basis) + (let* ((dest-file (string-append + module-dir dest-file-basis + ".scm")) + (go-file (string-append + module-dir dest-file-basis + ".go"))) + ;; Install source module. + (copy-file src-file + dest-file) + ;; Install compiled module. + (unless (zero? (system* guild "compile" + "-L" (getcwd) + "-o" go-file + src-file)) + (error (format #f "Failed to compile ~s to ~s!" + src-file dest-file))))))) + '(("irregex-guile.scm" "/rx/irregex") + ("irregex.scm" "/rx/source/irregex") + ;; Not really reachable via guile's packaging system, + ;; but nice to have around + ("irregex-utils.scm" "/rx/source/irregex-utils"))) + + ;; Also copy over the README. + (install-file "irregex.html" doc) + #t))))))) + (inputs + `(("guile" ,guile-2.0))) + (home-page "http://synthcode.com/scheme/irregex") + (synopsis "S-expression based regular expressions") + (description + "Irregex is an s-expression based alternative to your classic +string-based regular expressions. It implements SRFI 115 and is deeply +inspired by the SCSH regular expression system.") + (license bsd-3))) ;; There are two guile-gdbm packages, one using the FFI and one with ;; direct C bindings, hence the verbose name. @@ -491,6 +627,7 @@ See http://minikanren.org/ for more on miniKanren generally.") (uri (git-reference (url "https://github.com/ijp/guile-gdbm.git") (commit "fa1d5b6231d0e4d096687b378c025f2148c5f246"))) + (file-name (string-append name "-" version "-checkout")) (sha256 (base32 "1j8wrsw7v9w6qkl47xz0rdikg50v16nn6kbs3lgzcymjzpa7babj")))) @@ -663,10 +800,45 @@ key-value cache and store.") (inputs `(("guile" ,guile-2.0) ("python" ,python))) - (synopsis "wisp is a whitespace to lisp syntax for Guile") - (description "wisp is a syntax for Guile which provides a Python-like + (synopsis "Whitespace to lisp syntax for Guile") + (description "Wisp is a syntax for Guile which provides a Python-like whitespace-significant language. It may be easier on the eyes for some users and in some situations.") (license gpl3+))) +(define-public guile-sly + (package + (name "guile-sly") + (version "0.1") + (source (origin + (method url-fetch) + (uri (string-append "https://files.dthompson.us/sly/sly-" + version ".tar.gz")) + (sha256 + (base32 + "1svzlbz2vripmyq2kjh0rig16bsrnbkwbsm558pjln9l65mcl4qq")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags + (list (string-append "--with-libfreeimage-prefix=" + (assoc-ref %build-inputs "freeimage")) + (string-append "--with-libgslcblas-prefix=" + (assoc-ref %build-inputs "gsl"))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (propagated-inputs + `(("guile" ,guile-2.0) + ("guile-sdl" ,guile-sdl) + ("guile-opengl" ,guile-opengl))) + (inputs + `(("gsl" ,gsl) + ("freeimage" ,freeimage) + ("mesa" ,mesa))) + (synopsis "2D/3D game engine for GNU Guile") + (description "Sly is a 2D/3D game engine written in Guile Scheme. Sly +features a functional reactive programming interface and live coding +capabilities.") + (home-page "http://dthompson.us/pages/software/sly.html") + (license gpl3+))) + ;;; guile.scm ends here diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 652409b963..c0e968ba38 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1,6 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2015 SiniÅ¡a BiÄ‘in <sinisa@bidin.eu> +;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> +;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,7 +21,10 @@ (define-module (gnu packages haskell) #:use-module (ice-9 regex) - #:use-module ((guix licenses) #:select (bsd-3 lgpl2.1)) + #:use-module ((guix licenses) #:select (bsd-3 + lgpl2.1 lgpl2.1+ gpl2+ gpl3+ + public-domain + expat)) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) @@ -29,13 +34,20 @@ #:use-module (gnu packages perl) #:use-module (gnu packages compression) #:use-module (gnu packages elf) + #:use-module (gnu packages gl) + #:use-module (gnu packages sdl) #:use-module (gnu packages bootstrap) + #:use-module (gnu packages zip) + #:use-module (gnu packages gcc) #:use-module (gnu packages ghostscript) #:use-module (gnu packages libffi) #:use-module (gnu packages libedit) + #:use-module (gnu packages lua) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages python) + #:use-module (gnu packages pcre) + #:use-module ((gnu packages xml) #:select (libxml2)) #:use-module (gnu packages xorg)) (define ghc-bootstrap-x86_64-7.8.4 @@ -73,7 +85,7 @@ (define-public ghc (package (name "ghc") - (version "7.8.4") + (version "7.10.2") (source (origin (method url-fetch) @@ -81,7 +93,7 @@ version "/" name "-" version "-src.tar.xz")) (sha256 (base32 - "1i4254akbb4ym437rf469gc0m40bxm31blp6s1z1g15jmnacs6f3")))) + "1x8m4rp2v7ydnrz6z9g8x7z3x3d3pxhv2pixy7i7hkbqbdsp7kal")))) (build-system gnu-build-system) (supported-systems '("i686-linux" "x86_64-linux")) (outputs '("out" "doc")) @@ -98,7 +110,7 @@ version "/" name "-" version "-testsuite.tar.xz")) (sha256 (base32 - "0q95whf87y4mxjzwzy899g7z7l9pazq4si6iciyhxkcdhqq2ycyh")))))) + "0qp9da9ar87zbyn6wjgacd2ic1vgzbi3cklxnhsmjqyafv9qaj4b")))))) (native-inputs `(("perl" ,perl) ("python" ,python-2) ; for tests (fails with python-3) @@ -203,7 +215,7 @@ (string-append ghc-bootstrap-prefix "/lib/ghc-7.8.4/terminfo-0.4.0.0"))) (with-directory-excursion - (string-append ghc-bootstrap-path "/" ,name "-" ,version) + (string-append ghc-bootstrap-path "/ghc-7.8.4") (setenv "CONFIG_SHELL" (which "bash")) (setenv "LD_LIBRARY_PATH" gmp-lib) ;; The binaries have "/lib64/ld-linux-x86-64.so.2" hardcoded. @@ -231,7 +243,7 @@ 'configure 'install-bin (lambda* (#:key inputs outputs #:allow-other-keys) (with-directory-excursion - (string-append ghc-bootstrap-path "/" ,name "-" ,version) + (string-append ghc-bootstrap-path "/ghc-7.8.4") (zero? (system* "make" "install")))) %standard-phases))))))) (native-search-paths (list (search-path-specification @@ -247,6 +259,74 @@ interactive environment for the functional language Haskell.") (license bsd-3))) +(define-public ghc-hostname + (package + (name "ghc-hostname") + (version "1.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/hostname/" + "hostname-" version ".tar.gz")) + (sha256 + (base32 + "0p6gm4328946qxc295zb6vhwhf07l1fma82vd0siylnsnsqxlhwv")))) + (build-system haskell-build-system) + (home-page "https://hackage.haskell.org/package/hostname") + (synopsis "Hostname in Haskell") + (description "Network.HostName is a simple package providing a means to +determine the hostname.") + (license bsd-3))) + +(define-public ghc-libxml + (package + (name "ghc-libxml") + (version "0.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/libxml/" + "libxml-" version ".tar.gz")) + (sha256 + (base32 + "01zvk86kg726lf2vnlr7dxiz7g3xwi5a4ak9gcfbwyhynkzjmsfi")))) + (build-system haskell-build-system) + (inputs + `(("ghc-mtl" ,ghc-mtl) + ("libxml2" ,libxml2))) + (arguments + `(#:configure-flags + `(,(string-append "--extra-include-dirs=" + (assoc-ref %build-inputs "libxml2") + "/include/libxml2")))) + (home-page "http://hackage.haskell.org/package/libxml") + (synopsis "Haskell bindings to libxml2") + (description + "This library provides minimal Haskell binding to libxml2.") + (license bsd-3))) + +(define-public ghc-prelude-extras + (package + (name "ghc-prelude-extras") + (version "0.4.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/prelude-extras/prelude-extras-" + version + ".tar.gz")) + (sha256 + (base32 + "1q7mj9hysy747vimnlyrwsk1wb2axymxixa76fwcbcnmz3fi4llp")))) + (build-system haskell-build-system) + (home-page "http://github.com/ekmett/prelude-extras") + (synopsis "Higher order versions of Prelude classes") + (description "This library provides higher order versions of +@code{Prelude} classes to ease programming with polymorphic recursion and +reduce @code{UndecidableInstances}.") + (license bsd-3))) + (define-public ghc-data-default (package (name "ghc-data-default") @@ -367,6 +447,821 @@ package.") package.") (license bsd-3))) +(define-public ghc-haddock-library + (package + (name "ghc-haddock-library") + (version "1.2.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/haddock-library/haddock-library-" + version + ".tar.gz")) + (sha256 + (base32 + "0mhh2ppfhrvvi9485ipwbkv2fbgj35jvz3la02y3jlvg5ffs1c8g")))) + (build-system haskell-build-system) + (inputs + `(("ghc-base-compat" ,ghc-base-compat) + ("ghc-hspec" ,ghc-hspec) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "http://www.haskell.org/haddock/") + (synopsis + "Library exposing some functionality of Haddock") + (description + "Haddock is a documentation-generation tool for Haskell libraries. These +modules expose some functionality of it without pulling in the GHC dependency. +Please note that the API is likely to change so specify upper bounds in your +project if you can't release often. For interacting with Haddock itself, see +the ‘haddock’ package.") + (license bsd-3))) + +(define-public ghc-haddock-api + (package + (name "ghc-haddock-api") + (version "2.16.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/haddock-api/haddock-api-" + version + ".tar.gz")) + (sha256 + (base32 + "1spd5axg1pdjv4dkdb5gcwjsc8gg37qi4mr2k2db6ayywdkis1p2")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-paths" ,ghc-paths) + ("ghc-haddock-library" ,ghc-haddock-library))) + (home-page "http://www.haskell.org/haddock/") + (synopsis "API for documentation-generation tool Haddock") + (description "This package provides an API to Haddock, the +documentation-generation tool for Haskell libraries.") + (license bsd-3))) + +(define-public ghc-haddock + (package + (name "ghc-haddock") + (version "2.16.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/haddock/haddock-" + version + ".tar.gz")) + (sha256 + (base32 + "1mnnvc5jqp6n6rj7xw8wdm0z2xp9fndkz11c8p3vbljsrcqd3v26")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Tests break with GHC 7.10.2, fixed + ; upstream. See + ; <https://github.com/haskell/haddock/issues/427> + (inputs `(("ghc-haddock-api" ,ghc-haddock-api))) + (home-page "http://www.haskell.org/haddock/") + (synopsis + "Documentation-generation tool for Haskell libraries") + (description + "Haddock is a documentation-generation tool for Haskell libraries.") + (license bsd-3))) + +(define-public ghc-simple-reflect + (package + (name "ghc-simple-reflect") + (version "0.3.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/simple-reflect/simple-reflect-" + version + ".tar.gz")) + (sha256 + (base32 + "1dpcf6w3cf1sfl9bnlsx04x7aghw029glj5d05qzrsnms2rlw8iq")))) + (build-system haskell-build-system) + (home-page + "http://twanvl.nl/blog/haskell/simple-reflection-of-expressions") + (synopsis + "Simple reflection of expressions containing variables") + (description + "This package allows simple reflection of expressions containing +variables. Reflection here means that a Haskell expression is turned into a +string. The primary aim of this package is teaching and understanding; there +are no options for manipulating the reflected expressions beyond showing +them.") + (license bsd-3))) + +(define-public ghc-multipart + (package + (name "ghc-multipart") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/multipart/multipart-" + version + ".tar.gz")) + (sha256 + (base32 + "0g04jhyw1ib1s7c9bcldyyn4n90qd9x7dmvic4vgq57bgcqgnhz5")))) + (build-system haskell-build-system) + (inputs `(("ghc-parsec" ,ghc-parsec))) + (home-page + "http://www.github.com/silkapp/multipart") + (synopsis + "HTTP multipart library") + (description + "HTTP multipart split out of the cgi package, for Haskell.") + (license bsd-3))) + +(define-public ghc-html + (package + (name "ghc-html") + (version "1.0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/html/html-" + version + ".tar.gz")) + (sha256 + (base32 + "0q9hmfii62kc82ijlg238fxrzxhsivn42x5wd6ffcr9xldg4jd8c")))) + (build-system haskell-build-system) + (home-page + "http://hackage.haskell.org/package/html") + (synopsis "HTML combinator library") + (description + "This package contains a combinator library for constructing HTML +documents.") + (license bsd-3))) + +(define-public ghc-xhtml + (package + (name "ghc-xhtml") + (version "3000.2.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/xhtml/xhtml-" + version + ".tar.gz")) + (sha256 + (base32 + "1n6wgzxbj8xf0wf1il827qidphnffb5vzhwzqlxhh70c2y10f0ik")))) + (build-system haskell-build-system) + (home-page "https://github.com/haskell/xhtml") + (synopsis "XHTML combinator library") + (description + "This package provides combinators for producing XHTML 1.0, including the +Strict, Transitional and Frameset variants.") + (license bsd-3))) + +(define-public ghc-haskell-src + (package + (name "ghc-haskell-src") + (version "1.0.2.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/haskell-src/haskell-src-" + version + ".tar.gz")) + (sha256 + (base32 + "19lilhpwnjb7cks9fq1ipnc8f7dwxy0ri3dgjkdxs3i355byw99a")))) + (build-system haskell-build-system) + (inputs + `(("ghc-happy" ,ghc-happy) + ("ghc-syb" ,ghc-syb))) + (home-page + "http://hackage.haskell.org/package/haskell-src") + (synopsis + "Support for manipulating Haskell source code") + (description + "The 'haskell-src' package provides support for manipulating Haskell +source code. The package provides a lexer, parser and pretty-printer, and a +definition of a Haskell abstract syntax tree (AST). Common uses of this +package are to parse or generate Haskell 98 code.") + (license bsd-3))) + +(define-public ghc-alex + (package + (name "ghc-alex") + (version "3.1.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/alex/alex-" + version + ".tar.gz")) + (sha256 + (base32 + "17x13nbbr79xgdlzywjqw19vcl6iygjnssjnxnajgijkv764wknn")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Tests broken for GHC 7.10. Fixed + ; upstream, see + ; <https://github.com/simonmar/alex/issues/62> + (inputs `(("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "http://www.haskell.org/alex/") + (synopsis + "Tool for generating lexical analysers in Haskell") + (description + "Alex is a tool for generating lexical analysers in Haskell. It takes a +description of tokens based on regular expressions and generates a Haskell +module containing code for scanning text efficiently. It is similar to the +tool lex or flex for C/C++.") + (license bsd-3))) + +(define-public ghc-cgi + (package + (name "ghc-cgi") + (version "3001.2.2.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/cgi/cgi-" + version + ".tar.gz")) + (sha256 + (base32 + "0q1pxpa8gi42c0hsidcdkhk5xr5anfrvhqsn3iksr9c0rllhz193")))) + (build-system haskell-build-system) + (inputs + `(("ghc-parsec" ,ghc-parsec) + ("ghc-old-locale" ,ghc-old-locale) + ("ghc-old-time" ,ghc-old-time) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-multipart" ,ghc-multipart) + ("ghc-network-uri" ,ghc-network-uri) + ("ghc-network" ,ghc-network) + ("ghc-mtl" ,ghc-mtl))) + (home-page + "https://github.com/cheecheeo/haskell-cgi") + (synopsis "Library for writing CGI programs") + (description + "This is a Haskell library for writing CGI programs.") + (license bsd-3))) + +(define-public ghc-cmdargs + (package + (name "ghc-cmdargs") + (version "0.10.13") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/cmdargs/cmdargs-" + version + ".tar.gz")) + (sha256 + (base32 + "0vmz7f0ssrqlp6wzmc0mjqj4qczfgk58g0lr0yz7jamamlgpq4b6")))) + (build-system haskell-build-system) + (home-page + "http://community.haskell.org/~ndm/cmdargs/") + (synopsis "Command line argument processing") + (description + "This library provides an easy way to define command line parsers.") + (license bsd-3))) + +(define-public ghc-happy + (package + (name "ghc-happy") + (version "1.19.5") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/happy/happy-" + version + ".tar.gz")) + (sha256 + (base32 + "1nj353q4z1g186fpjzf0dnsg71qhxqpamx8jy89rjjvv3p0kmw32")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ;; cannot satisfy -package mtl. Possible Cabal + ;; issue. + (propagated-inputs + `(("ghc-mtl" ,ghc-mtl))) + (home-page "https://hackage.haskell.org/package/happy") + (synopsis "Parser generator for Haskell") + (description "Happy is a parser generator for Haskell. Given a grammar +specification in BNF, Happy generates Haskell code to parse the grammar. +Happy works in a similar way to the yacc tool for C.") + (license bsd-3))) + +(define-public ghc-haskell-src-exts + (package + (name "ghc-haskell-src-exts") + (version "1.16.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/haskell-src-exts/haskell-src-exts-" + version + ".tar.gz")) + (sha256 + (base32 + "1h8gjw5g92rvvzadqzpscg73x7ajvs1wlphrh27afim3scdd8frz")))) + (build-system haskell-build-system) + (propagated-inputs + `(("cpphs" ,cpphs) + ("ghc-mtl" ,ghc-mtl) + ("ghc-happy" ,ghc-happy) + ("ghc-syb" ,ghc-syb))) + (native-inputs + `(("ghc-smallcheck" ,ghc-smallcheck) + ("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck) + ("ghc-tasty-golden" ,ghc-tasty-golden))) + (home-page "https://github.com/haskell-suite/haskell-src-exts") + (synopsis "Library for manipulating Haskell source") + (description "Haskell-Source with Extensions (HSE, haskell-src-exts) is an +extension of the standard @code{haskell-src} package, and handles most +registered syntactic extensions to Haskell. All extensions implemented in GHC +are supported. Apart from these standard extensions, it also handles regular +patterns as per the HaRP extension as well as HSX-style embedded XML syntax.") + (license bsd-3))) + +(define-public hlint + (package + (name "hlint") + (version "1.9.21") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/" name + "/" name "-" version ".tar.gz")) + (sha256 + (base32 + "14v3rdjjlml9nimdk7d5dvir2bw78ai49yylvms9lnzmw29s3546")))) + (build-system haskell-build-system) + (inputs + `(("cpphs" ,cpphs) + ("ghc-cmdargs" ,ghc-cmdargs) + ("ghc-haskell-src-exts" ,ghc-haskell-src-exts) + ("ghc-uniplate" ,ghc-uniplate) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-extra" ,ghc-extra) + ("hscolour" ,hscolour))) + (home-page "http://community.haskell.org/~ndm/hlint/") + (synopsis "Suggest improvements for Haskell source code") + (description "HLint reads Haskell programs and suggests changes that +hopefully make them easier to read. HLint also makes it easy to disable +unwanted suggestions, and to add your own custom suggestions.") + (license bsd-3))) + +(define-public ghc-resourcet + (package + (name "ghc-resourcet") + (version "1.1.6") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/resourcet/resourcet-" + version + ".tar.gz")) + (sha256 + (base32 + "0zhsaaa4n8ry76vjih519a8npm2hrzk10d5asrgllcwpzmifl41y")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-transformers-base" ,ghc-transformers-base) + ("ghc-monad-control" ,ghc-monad-control) + ("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-mtl" ,ghc-mtl) + ("ghc-mmorph" ,ghc-mmorph) + ("ghc-exceptions" ,ghc-exceptions))) + (inputs + `(("ghc-lifted-base" ,ghc-lifted-base) + ("ghc-hspec" ,ghc-hspec))) + (home-page "http://github.com/snoyberg/conduit") + (synopsis "Deterministic allocation and freeing of scarce resources") + (description "ResourceT is a monad transformer which creates a region of +code where you can safely allocate resources.") + (license bsd-3))) + +(define-public ghc-xss-sanitize + (package + (name "ghc-xss-sanitize") + (version "0.3.5.6") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/xss-sanitize/xss-sanitize-" + version + ".tar.gz")) + (sha256 + (base32 + "1j2qrn2dbfx01m7zyk9ilgnp9zjwq9mk62b0rdal4zkg4vh212h0")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-tagsoup" ,ghc-tagsoup) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-css-text" ,ghc-css-text) + ("ghc-network-uri" ,ghc-network-uri))) + (inputs + `(("ghc-text" ,ghc-text) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-hspec" ,ghc-hspec) + ("ghc-hunit" ,ghc-hunit))) + (home-page "http://github.com/yesodweb/haskell-xss-sanitize") + (synopsis "Sanitize untrusted HTML to prevent XSS attacks") + (description "This library provides @code{sanitizeXSS}. Run untrusted +HTML through @code{Text.HTML.SanitizeXSS.sanitizeXSS} to prevent XSS +attacks.") + (license bsd-3))) + +(define-public ghc-objectname + (package + (name "ghc-objectname") + (version "1.1.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/ObjectName/ObjectName-" + version + ".tar.gz")) + (sha256 + (base32 + "0kh5fb9ykag6rfsm3f0bx3w323s18w2cyry34w5xgli5ncqimadg")))) + (build-system haskell-build-system) + (home-page "https://hackage.haskell.org/package/ObjectName") + (synopsis "Helper library for Haskell OpenGL") + (description "This tiny package contains the class ObjectName, which +corresponds to the general notion of explicitly handled identifiers for API +objects, e.g. a texture object name in OpenGL or a buffer object name in +OpenAL.") + (license bsd-3))) + +(define-public ghc-sdl + (package + (name "ghc-sdl") + (version "0.6.5.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/SDL/SDL-" + version + ".tar.gz")) + (sha256 + (base32 + "1sa3zx3vrs1gbinxx33zwq0x2bsf3i964bff7419p7vzidn36k46")))) + (build-system haskell-build-system) + (inputs + `(("sdl" ,sdl))) + (home-page "https://hackage.haskell.org/package/SDL") + (synopsis "LibSDL for Haskell") + (description "Simple DirectMedia Layer (libSDL) is a cross-platform +multimedia library designed to provide low level access to audio, keyboard, +mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used +by MPEG playback software, emulators, and many popular games, including the +award winning Linux port of \"Civilization: Call To Power.\"") + (license bsd-3))) + +(define-public ghc-sdl-mixer + (package + (name "ghc-sdl-mixer") + (version "0.6.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/SDL-mixer/SDL-mixer-" + version + ".tar.gz")) + (sha256 + (base32 + "0md3238hx79mxb9a7l43kg3b3d28x4mqvj0hjsbsh15ajnvy9x2z")))) + (build-system haskell-build-system) + (arguments + `(#:configure-flags + (let* ((sdl-mixer (assoc-ref %build-inputs "sdl-mixer")) + (sdl-mixer-include (string-append sdl-mixer "/include/SDL"))) + (list (string-append "--extra-include-dirs=" sdl-mixer-include))))) + (propagated-inputs + `(("ghc-sdl" ,ghc-sdl))) + (inputs + `(("sdl-mixer" ,sdl-mixer))) + (home-page "http://hackage.haskell.org/package/SDL-mixer") + (synopsis "Haskell bindings to libSDL_mixer") + (description "SDL_mixer is a sample multi-channel audio mixer library. It +supports any number of simultaneously playing channels of 16 bit stereo audio, +plus a single channel of music, mixed by the popular MikMod MOD, Timidity +MIDI, Ogg Vorbis, and SMPEG MP3 libraries.") + (license bsd-3))) + +(define-public ghc-sdl-image + (package + (name "ghc-sdl-image") + (version "0.6.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/SDL-image/SDL-image-" + version + ".tar.gz")) + (sha256 + (base32 + "1m02q2426qp8m8pzz2jkk4srk2vb3j3ickiaga5jx9rkkhz732zq")))) + (build-system haskell-build-system) + (arguments + `(#:configure-flags + (let* ((sdl-image (assoc-ref %build-inputs "sdl-image")) + (sdl-image-include (string-append sdl-image "/include/SDL"))) + (list (string-append "--extra-include-dirs=" sdl-image-include))))) + (propagated-inputs + `(("ghc-sdl" ,ghc-sdl))) + (inputs + `(("sdl-image" ,sdl-image))) + (home-page "http://hackage.haskell.org/package/SDL-image") + (synopsis "Haskell bindings to libSDL_image") + (description "SDL_image is an image file loading library. It loads images +as SDL surfaces, and supports the following formats: BMP, GIF, JPEG, LBM, PCX, +PNG, PNM, TGA, TIFF, XCF, XPM, XV.") + (license bsd-3))) + +(define-public ghc-half + (package + (name "ghc-half") + (version "0.2.2.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/half/half-" + version + ".tar.gz")) + (sha256 + (base32 + "0zhwc6ps5w4ccnxl8sy623z4rjsafmnry69jpkw4hrbq11l402f1")))) + (build-system haskell-build-system) + (home-page "http://github.com/ekmett/half") + (synopsis "Half-precision floating-point computations") + (description "This library provides a half-precision floating-point +computation library for Haskell.") + (license bsd-3))) + +(define-public ghc-openglraw + (package + (name "ghc-openglraw") + (version "2.5.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/OpenGLRaw/OpenGLRaw-" + version + ".tar.gz")) + (sha256 + (base32 + "1kfq24mxg922ml3kkmym2qfpc56jbmrfbiix4rc2cxlwv05i191k")))) + (build-system haskell-build-system) + (inputs + `(("ghc-half" ,ghc-half) + ("glu" ,glu) + ("ghc-text" ,ghc-text))) + (home-page "http://www.haskell.org/haskellwiki/Opengl") + (synopsis "Raw Haskell bindings for the OpenGL graphics system") + (description "OpenGLRaw is a raw Haskell binding for the OpenGL 4.5 +graphics system and lots of OpenGL extensions. It is basically a 1:1 mapping +of OpenGL's C API, intended as a basis for a nicer interface. OpenGLRaw +offers access to all necessary functions, tokens and types plus a general +facility for loading extension entries. The module hierarchy closely mirrors +the naming structure of the OpenGL extensions, making it easy to find the +right module to import. All API entries are loaded dynamically, so no special +C header files are needed for building this package. If an API entry is not +found at runtime, a userError is thrown.") + (license bsd-3))) + +(define-public ghc-glut + (package + (name "ghc-glut") + (version "2.7.0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/GLUT/GLUT-" + version + ".tar.gz")) + (sha256 + (base32 + "1qfilpc10jm47anan44c20y8mh76f2dv09m5d22gk0f7am7hg4k2")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-statevar" ,ghc-statevar) + ("ghc-openglraw" ,ghc-openglraw) + ("freeglut" ,freeglut))) + (inputs + `(("ghc-opengl" ,ghc-opengl))) + (home-page "http://www.haskell.org/haskellwiki/Opengl") + (synopsis "Haskell bindings for the OpenGL Utility Toolkit") + (description "This library provides Haskell bindings for the OpenGL +Utility Toolkit, a window system-independent toolkit for writing OpenGL +programs.") + (license bsd-3))) + +(define-public ghc-gluraw + (package + (name "ghc-gluraw") + (version "1.5.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/GLURaw/GLURaw-" + version + ".tar.gz")) + (sha256 + (base32 + "0gscd9lhp9mb10q8s716nx26m8qng9xbb4h6b3f48zzgkc1sy96x")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-openglraw" ,ghc-openglraw))) + (home-page "http://www.haskell.org/haskellwiki/Opengl") + (synopsis "Raw Haskell bindings GLU") + (description "GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL +utility library. It is basically a 1:1 mapping of GLU's C API, intended as a +basis for a nicer interface.") + (license bsd-3))) + +(define-public ghc-opengl + (package + (name "ghc-opengl") + (version "2.12.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/OpenGL/OpenGL-" + version + ".tar.gz")) + (sha256 + (base32 + "1mcfb167jl75qc2hgylh83vf2jqizvyvkvhhb72adi2crc3zqz4b")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-text" ,ghc-text) + ("ghc-objectname" ,ghc-objectname) + ("ghc-gluraw" ,ghc-gluraw) + ("ghc-statevar" ,ghc-statevar) + ("ghc-openglraw" ,ghc-openglraw))) + (home-page "http://www.haskell.org/haskellwiki/Opengl") + (synopsis "Haskell bindings for the OpenGL graphics system") + (description "This package provides Haskell bindings for the OpenGL +graphics system (GL, version 4.5) and its accompanying utility library (GLU, +version 1.3).") + (license bsd-3))) + +(define-public ghc-streaming-commons + (package + (name "ghc-streaming-commons") + (version "0.1.14.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/streaming-commons/streaming-commons-" + version + ".tar.gz")) + (sha256 + (base32 + "12nw9bwvy6zrabkgvbp371klca3ds6qjlfncg1b8pbwx1y7m8c8h")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-random" ,ghc-random))) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-async" ,ghc-async) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-hspec" ,ghc-hspec) + ("ghc-stm" ,ghc-stm) + ("ghc-text" ,ghc-text) + ("ghc-network" ,ghc-network) + ("ghc-zlib" ,ghc-zlib))) + (home-page "https://hackage.haskell.org/package/streaming-commons") + (synopsis "Conduit and pipes needed by some streaming data libraries") + (description "Provides low-dependency functionality commonly needed by +various Haskell streaming data libraries, such as @code{conduit} and +@code{pipe}s.") + (license bsd-3))) + +(define-public cpphs + (package + (name "cpphs") + (version "1.19.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/" name "/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1njpmxgpah5pcqppcl1cxb5xicf6xlqrd162qm12khp9hainlm72")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-polyparse" ,ghc-polyparse) + ("ghc-old-locale" ,ghc-old-locale) + ("ghc-old-time" ,ghc-old-time))) + (home-page "http://projects.haskell.org/cpphs/") + (synopsis "Liberalised re-implementation of cpp, the C pre-processor") + (description "Cpphs is a re-implementation of the C pre-processor that is +both more compatible with Haskell, and itself written in Haskell so that it +can be distributed with compilers. This version of the C pre-processor is +pretty-much feature-complete and compatible with traditional (K&R) +pre-processors. Additional features include: a plain-text mode; an option to +unlit literate code files; and an option to turn off macro-expansion.") + (license (list lgpl2.1+ gpl3+)))) + +(define-public ghc-reflection + (package + (name "ghc-reflection") + (version "2.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/reflection/reflection-" + version + ".tar.gz")) + (sha256 + (base32 + "10w3m6v3g6am203wbrikdbp57x9vw6b4jsh7bxdzsss4nmpm81zg")))) + (build-system haskell-build-system) + (inputs `(("ghc-tagged" ,ghc-tagged))) + (home-page "http://github.com/ekmett/reflection") + (synopsis "Reify arbitrary terms into types that can be reflected back +into terms") + (description "This package addresses the 'configuration problem' which is +propogating configurations that are available at run-time, allowing multiple +configurations to coexist without resorting to mutable global variables or +@code{System.IO.Unsafe.unsafePerformIO}.") + (license bsd-3))) + +(define-public ghc-old-locale + (package + (name "ghc-old-locale") + (version "1.0.0.7") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/old-locale/old-locale-" + version + ".tar.gz")) + (sha256 + (base32 "0l3viphiszvz5wqzg7a45zp40grwlab941q5ay29iyw8p3v8pbyv")))) + (build-system haskell-build-system) + (home-page "http://hackage.haskell.org/package/old-locale") + (synopsis "Adapt to locale conventions") + (description + "This package provides the ability to adapt to locale conventions such as +date and time formats.") + (license bsd-3))) + +(define-public ghc-old-time + (package + (name "ghc-old-time") + (version "1.1.0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/old-time/old-time-" + version + ".tar.gz")) + (sha256 + (base32 + "1h9b26s3kfh2k0ih4383w90ibji6n0iwamxp6rfp2lbq1y5ibjqw")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-old-locale" ,ghc-old-locale))) + (home-page "http://hackage.haskell.org/package/old-time") + (synopsis "Time compatibility library for Haskell") + (description "Old-time is a package for backwards compatibility with the +old @code{time} library. For new projects, the newer +@uref{http://hackage.haskell.org/package/time, time library} is recommended.") + (license bsd-3))) + (define-public ghc-data-default-instances-old-locale (package (name "ghc-data-default-instances-old-locale") @@ -382,7 +1277,8 @@ package.") (base32 "00h81i5phib741yj517p8mbnc48myvfj8axzsw44k34m48lv1lv0")))) (build-system haskell-build-system) (propagated-inputs - `(("ghc-data-default-class" ,ghc-data-default-class))) + `(("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-old-locale" ,ghc-old-locale))) (home-page "http://hackage.haskell.org/package/data-default-instances-old-locale") (synopsis "Default instances for types in old-locale") @@ -393,7 +1289,7 @@ package.") (define-public ghc-dlist (package (name "ghc-dlist") - (version "0.7.1.1") + (version "0.7.1.2") (source (origin (method url-fetch) @@ -402,9 +1298,10 @@ package.") version ".tar.gz")) (sha256 - (base32 "1zayvxvkan2s2ixajdr3f5rn1gzhprzv6cww4cbpwjhzw0l7zc08")))) - (arguments `(#:tests? #f)) + (base32 "10rp96rryij7d8gz5kv8ygc6chm1624ck5mbnqs2a3fkdzqj2b9k")))) (build-system haskell-build-system) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck))) (home-page "https://github.com/spl/dlist") (synopsis "Difference lists") (description @@ -436,7 +1333,7 @@ versions of GHC (i.e., < 6.10).") (define-public cabal-install (package (name "cabal-install") - (version "1.18.1.0") + (version "1.22.6.0") (source (origin (method url-fetch) @@ -445,7 +1342,7 @@ versions of GHC (i.e., < 6.10).") version ".tar.gz")) (sha256 - (base32 "1r1shhvnpgxf91rmbv3wa1rkd24plbgr6bpz3aj80ir0z3zbdayn")))) + (base32 "1d5h7h2wjwc2s3dvsvzjgmmfrfl2312ym2h6kyjgm9wnaqw9w8wx")))) (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. (build-system haskell-build-system) (propagated-inputs @@ -467,7 +1364,7 @@ installation of Haskell libraries and programs.") (define-public ghc-mtl (package (name "ghc-mtl") - (version "2.1.3.1") + (version "2.2.1") (outputs '("out" "doc")) (source (origin @@ -478,18 +1375,17 @@ installation of Haskell libraries and programs.") ".tar.gz")) (sha256 (base32 - "1xpn2wjmqbh2cg1yssc6749xpgcqlrrg4iilwqgkcjgvaxlpdbvp")))) + "1icdbj2rshzn0m1zz5wa7v3xvkf6qw811p4s7jgqwvx1ydwrvrfa")))) (build-system haskell-build-system) (home-page "http://github.com/ekmett/mtl") (synopsis "Monad classes, using functional dependencies") - (description - "Monad classes using functional dependencies, with instances -for various monad transformers, inspired by the paper -'Functional Programming with Overloading and Higher-Order Polymorphism', -by Mark P Jones, in 'Advanced School of Functional Programming', 1995 -http://web.cecs.pdx.edu/~mpj/pubs/springschool.html.") - (license bsd-3))) + (description "Monad classes using functional dependencies, with instances +for various monad transformers, inspired by the paper 'Functional Programming +with Overloading and Higher-Order Polymorphism', by Mark P Jones, in 'Advanced +School of Functional Programming', 1995. See +@uref{http://web.cecs.pdx.edu/~mpj/pubs/springschool.html, the paper}.") + (license bsd-3))) (define-public ghc-paths (package @@ -517,7 +1413,7 @@ http://web.cecs.pdx.edu/~mpj/pubs/springschool.html.") (define-public ghc-utf8-string (package (name "ghc-utf8-string") - (version "0.3.8") + (version "1.0.1.1") (source (origin (method url-fetch) @@ -526,16 +1422,37 @@ http://web.cecs.pdx.edu/~mpj/pubs/springschool.html.") version ".tar.gz")) (sha256 - (base32 "1h29dn0scsfkhmkg14ywq9178lw40ah1r36w249zfzqr02y7qxc0")))) + (base32 "0h7imvxkahiy8pzr8cpsimifdfvv18lizrb33k6mnq70rcx9w2zv")))) (build-system haskell-build-system) (home-page "http://github.com/glguy/utf8-string/") (synopsis "Support for reading and writing UTF8 Strings") (description - "A UTF8 layer for Strings. The utf8-string package provides operations + "A UTF8 layer for Strings. The utf8-string package provides operations for encoding UTF8 strings to Word8 lists and back, and for reading and writing UTF8 without truncation.") (license bsd-3))) +(define-public ghc-setenv + (package + (name "ghc-setenv") + (version "0.1.1.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/setenv/setenv-" + version + ".tar.gz")) + (sha256 + (base32 + "0cnbgrvb9byyahb37zlqrj05rj25v190crgcw8wmlgf0mwwxyn73")))) + (build-system haskell-build-system) + (home-page "http://hackage.haskell.org/package/setenv") + (synopsis "Library for setting environment variables") + (description "This package provides a Haskell library for setting +environment variables.") + (license expat))) + (define-public ghc-x11 (package (name "ghc-x11") @@ -547,12 +1464,6 @@ UTF8 without truncation.") "X11-" version ".tar.gz")) (sha256 (base32 "1kzjcynm3rr83ihqx2y2d852jc49da4p18gv6jzm7g87z22x85jj")))) - (arguments - `(#:phases (modify-phases %standard-phases - (add-before 'configure 'set-sh - (lambda _ - (setenv "CONFIG_SHELL" "sh") - #t))))) (build-system haskell-build-system) (inputs `(("libx11" ,libx11) @@ -596,6 +1507,29 @@ bindings are a direct translation of the C bindings.") parts.") (license lgpl2.1))) +(define-public ghc-stringbuilder + (package + (name "ghc-stringbuilder") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/stringbuilder/stringbuilder-" + version + ".tar.gz")) + (sha256 + (base32 + "1ap95xphqnrhv64c2a137wqslkdmb2jjd9ldb17gs1pw48k8hrl9")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: circular dependencies with tests + ; enabled + (home-page "http://hackage.haskell.org/package/stringbuilder") + (synopsis "Writer monad for multi-line string literals") + (description "This package provides a writer monad for multi-line string +literals.") + (license expat))) + (define-public ghc-zlib (package (name "ghc-zlib") @@ -672,7 +1606,7 @@ access to the full zlib feature set.") (define-public ghc-text (package (name "ghc-text") - (version "1.2.0.4") + (version "1.2.1.3") (outputs '("out" "doc")) (source (origin @@ -683,7 +1617,7 @@ access to the full zlib feature set.") ".tar.gz")) (sha256 (base32 - "004p1c74crs8wmjafwsmw3mmycspq1j8fpm1lvfpq6acha7bnpc6")))) + "0gzqx5cpkdhshbz9xss51mpyq23pnf8dwjz4h3irbv2ryaa4qdlq")))) (build-system haskell-build-system) (arguments `(#:tests? #f)) ; FIXME: currently missing libraries used for tests. @@ -702,7 +1636,7 @@ in terms of large data quantities and high speed.") (define-public ghc-hashable (package (name "ghc-hashable") - (version "1.2.3.2") + (version "1.2.3.3") (outputs '("out" "doc")) (source (origin @@ -713,7 +1647,7 @@ in terms of large data quantities and high speed.") ".tar.gz")) (sha256 (base32 - "0h9295pv2sgbaqlwpwbx2bap6nngm0jcdhkqham1wpjwyxqgqrlc")))) + "0kp4aj0x1iicz9qirpqxxqd8x5g1njbapxk1d90n406w3xykz4pw")))) (build-system haskell-build-system) (arguments `(#:tests? #f)) ; FIXME: currently missing libraries used for tests. @@ -777,7 +1711,7 @@ library, including the ability to split random number generators.") (define-public ghc-primitive (package (name "ghc-primitive") - (version "0.5.4.0") + (version "0.6.1.0") (outputs '("out" "doc")) (source (origin @@ -788,7 +1722,7 @@ library, including the ability to split random number generators.") ".tar.gz")) (sha256 (base32 - "05gdgj383xdrdkhxh26imlvs8ji0z28ny38ms9snpvv5i8l2lg10")))) + "1j1q7l21rdm8kfs93vibr3xwkkhqis181w2k6klfhx5g5skiywwk")))) (build-system haskell-build-system) (home-page "https://github.com/haskell/primitive") @@ -797,6 +1731,98 @@ library, including the ability to split random number generators.") "This package provides various primitive memory-related operations.") (license bsd-3))) +(define-public ghc-test-framework + (package + (name "ghc-test-framework") + (version "0.8.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/test-framework/" + "test-framework-" version ".tar.gz")) + (sha256 + (base32 + "0wxjgdvb1c4ykazw774zlx86550848wbsvgjgcrdzcgbb9m650vq")))) + (build-system haskell-build-system) + (inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-libxml" ,ghc-libxml) + ("ghc-quickcheck" ,ghc-quickcheck))) + (propagated-inputs + `(("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint) + ("ghc-hostname" ,ghc-hostname) + ("ghc-old-locale" ,ghc-old-locale) + ("ghc-random" ,ghc-random) + ("ghc-regex-posix" ,ghc-regex-posix) + ("ghc-xml" ,ghc-xml))) + (home-page "https://batterseapower.github.io/test-framework/") + (synopsis "Framework for running and organising tests") + (description + "This package allows tests such as QuickCheck properties and HUnit test +cases to be assembled into test groups, run in parallel (but reported in +deterministic order, to aid diff interpretation) and filtered and controlled +by command line options. All of this comes with colored test output, progress +reporting and test statistics output.") + (license bsd-3))) + +(define-public ghc-test-framework-hunit + (package + (name "ghc-test-framework-hunit") + (version "0.3.0.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "test-framework-hunit/test-framework-hunit-" + version ".tar.gz")) + (sha256 + (base32 + "1h0h55kf6ff25nbfx1mhliwyknc0glwv3zi78wpzllbjbs7gvyfk")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions) + ("ghc-hunit" ,ghc-hunit) + ("ghc-test-framework" ,ghc-test-framework))) + (home-page "https://batterseapower.github.io/test-framework/") + (synopsis "HUnit support for test-framework") + (description + "This package provides HUnit support for the test-framework package.") + (license bsd-3))) + +(define-public ghc-test-framework-quickcheck2 + (package + (name "ghc-test-framework-quickcheck2") + (version "0.3.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "test-framework-quickcheck2/" + "test-framework-quickcheck2-" version ".tar.gz")) + (sha256 + (base32 + "12p1zwrsz35r3j5gzbvixz9z1h5643rhihf5gqznmc991krwd5nc")) + (modules '((guix build utils))) + (snippet + ;; The Hackage page and the cabal file linked there for this package + ;; both list 2.9 as the upper version limit, but the source tarball + ;; specifies 2.8. Assume the Hackage page is correct. + '(substitute* "test-framework-quickcheck2.cabal" + (("QuickCheck >= 2.4 && < 2.8") "QuickCheck >= 2.4 && < 2.9"))))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-extensible-exceptions" ,ghc-extensible-exceptions) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-test-framework" ,ghc-test-framework))) + (home-page "https://batterseapower.github.io/test-framework/") + (synopsis "QuickCheck2 support for test-framework") + (description + "This packages provides QuickCheck2 support for the test-framework +package.") + (license bsd-3))) + (define-public ghc-tf-random (package (name "ghc-tf-random") @@ -825,10 +1851,1047 @@ the paper \"Splittable Pseudorandom Number Generators Using Cryptographic Hashing\" by Claessen, PaÅ‚ka for details and the rationale of the design.") (license bsd-3))) +(define-public ghc-transformers-base + (package + (name "ghc-transformers-base") + (version "0.4.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/transformers-base/transformers-base-" + version + ".tar.gz")) + (sha256 + (base32 + "11r3slgpgpra6zi2kjg3g60gvv17b1fh6qxipcpk8n86qx7lk8va")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-stm" ,ghc-stm))) + (inputs + `(("ghc-transformers-compat" ,ghc-transformers-compat))) + (home-page + "http://hackage.haskell.org/package/transformers-compat") + (synopsis + "Backported transformer library") + (description + "Backported versions of types that were added to transformers in +transformers 0.3 and 0.4 for users who need strict transformers 0.2 or 0.3 +compatibility to run on old versions of the platform.") + (license bsd-3))) + +(define-public ghc-transformers-compat + (package + (name "ghc-transformers-compat") + (version "0.4.0.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/transformers-compat" + "/transformers-compat-" version ".tar.gz")) + (sha256 + (base32 + "0lmg8ry6bgigb0v2lg0n74lxi8z5m85qq0qi4h1k9llyjb4in8ym")))) + (build-system haskell-build-system) + (home-page "http://github.com/ekmett/transformers-compat/") + (synopsis "Small compatibility shim between transformers 0.3 and 0.4") + (description "This package includes backported versions of types that were +added to transformers in transformers 0.3 and 0.4 for users who need strict +transformers 0.2 or 0.3 compatibility to run on old versions of the platform, +but also need those types.") + (license bsd-3))) + +(define-public ghc-unix-time + (package + (name "ghc-unix-time") + (version "0.3.6") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/unix-time/unix-time-" + version + ".tar.gz")) + (sha256 + (base32 + "0dyvyxwaffb94bgri1wc4b9wqaasy32pyjn0lww3dqblxv8fn5ax")))) + (build-system haskell-build-system) + (arguments + `(#:tests? #f)) ; FIXME: Test fails with "System.Time not found". This + ; is weird, that should be provided by GHC 7.10.2. + (propagated-inputs + `(("ghc-old-time" ,ghc-old-time) + ("ghc-old-locale" ,ghc-old-locale))) + (home-page "http://hackage.haskell.org/package/unix-time") + (synopsis "Unix time parser/formatter and utilities") + (description "This library provides fast parsing and formatting utilities +for Unix time in Haskell.") + (license bsd-3))) + +(define-public ghc-unix-compat + (package + (name "ghc-unix-compat") + (version "0.4.1.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/unix-compat/unix-compat-" + version + ".tar.gz")) + (sha256 + (base32 + "0jxk7j5pz2kgfpqr4hznndjg31pqj5xg2qfc5308fcn9xyg1myps")))) + (build-system haskell-build-system) + (home-page + "http://github.com/jystic/unix-compat") + (synopsis "Portable POSIX-compatibility layer") + (description + "This package provides portable implementations of parts of the unix +package. This package re-exports the unix package when available. When it +isn't available, portable implementations are used.") + (license bsd-3))) + +(define-public ghc-http-types + (package + (name "ghc-http-types") + (version "0.9") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/http-types/http-types-" + version + ".tar.gz")) + (sha256 + (base32 + "0ny15jgm5skhs2yx6snr13lrnw19hwjgfygrpsmhib8wqa8cz8cc")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Tests cannot find + ; Blaze.Bytestring.Builder, which should be + ; provided by ghc-blaze-builder. + (propagated-inputs + `(("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-blaze-builder" ,ghc-blaze-builder))) + (inputs + `(("ghc-text" ,ghc-text))) + (home-page "https://github.com/aristidb/http-types") + (synopsis "Generic HTTP types for Haskell") + (description "This package provides generic HTTP types for Haskell (for +both client and server code).") + (license bsd-3))) + +(define-public ghc-iproute + (package + (name "ghc-iproute") + (version "1.7.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/iproute/iproute-" + version + ".tar.gz")) + (sha256 + (base32 + "1ply0i110c2sppjbfyysgw48jfjnsbam5zwil8xws0hp20rh1pb5")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Tests cannot find System.ByteOrder, + ; exported by ghc-byteorder. Doctest issue. + (propagated-inputs + `(("ghc-appar" ,ghc-appar) + ("ghc-byteorder" ,ghc-byteorder))) + (inputs + `(("ghc-network" ,ghc-network) + ("ghc-safe" ,ghc-safe))) + (home-page "http://www.mew.org/~kazu/proj/iproute/") + (synopsis "IP routing table") + (description "IP Routing Table is a tree of IP ranges to search one of +them on the longest match base. It is a kind of TRIE with one way branching +removed. Both IPv4 and IPv6 are supported.") + (license bsd-3))) + +(define-public ghc-regex-base + (package + (name "ghc-regex-base") + (version "0.93.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/regex-base/regex-base-" + version + ".tar.gz")) + (sha256 + (base32 + "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-mtl" ,ghc-mtl))) + (home-page + "http://sourceforge.net/projects/lazy-regex") + (synopsis "Replaces/Enhances Text.Regex") + (description "@code{Text.Regex.Base} provides the interface API for +regex-posix, regex-pcre, regex-parsec, regex-tdfa, regex-dfa.") + (license bsd-3))) + +(define-public ghc-regex-posix + (package + (name "ghc-regex-posix") + (version "0.95.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/regex-posix/regex-posix-" + version + ".tar.gz")) + (sha256 + (base32 + "0gkhzhj8nvfn1ija31c7xnl6p0gadwii9ihyp219ck2arlhrj0an")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-regex-base" ,ghc-regex-base))) + (home-page "http://sourceforge.net/projects/lazy-regex") + (synopsis "POSIX regular expressions for Haskell") + (description "This library provides the POSIX regex backend used by the +Haskell library @code{regex-base}.") + (license bsd-3))) + +(define-public ghc-regex-compat + (package + (name "ghc-regex-compat") + (version "0.95.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/regex-compat/regex-compat-" + version + ".tar.gz")) + (sha256 + (base32 + "0fwmima3f04p9y4h3c23493n1xj629ia2dxaisqm6rynljjv2z6m")))) + (build-system haskell-build-system) + (inputs + `(("ghc-regex-base" ,ghc-regex-base) + ("ghc-regex-posix" ,ghc-regex-posix))) + (home-page "http://sourceforge.net/projects/lazy-regex") + (synopsis "Replaces/Enhances Text.Regex") + (description "This library provides one module layer over +@code{regex-posix} to replace @code{Text.Regex}.") + (license bsd-3))) + +(define-public ghc-regex-tdfa-rc + (package + (name "ghc-regex-tdfa-rc") + (version "1.1.8.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/regex-tdfa-rc/regex-tdfa-rc-" + version + ".tar.gz")) + (sha256 + (base32 + "1vi11i23gkkjg6193ak90g55akj69bhahy542frkwb68haky4pp3")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-regex-base" ,ghc-regex-base) + ("ghc-parsec" ,ghc-parsec))) + (inputs + `(("ghc-mtl" ,ghc-mtl))) + (home-page + "http://hackage.haskell.org/package/regex-tdfa") + (synopsis "Tagged DFA regex engine for Haskell") + (description "A new all-Haskell \"tagged\" DFA regex engine, inspired by +@code{libtre} (fork by Roman Cheplyaka).") + (license bsd-3))) + +(define-public ghc-parsers + (package + (name "ghc-parsers") + (version "0.12.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/parsers/parsers-" + version + ".tar.gz")) + (sha256 + (base32 + "18wzmp8y3py4qa8hdsxqm0jfzmwy744dw7xa48r5s8ynhpimi462")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy + ; -package attoparsec-0.13.0.1" + (propagated-inputs + `(("ghc-base-orphans" ,ghc-base-orphans) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-parsec" ,ghc-parsec) + ("ghc-scientific" ,ghc-scientific) + ("ghc-charset" ,ghc-charset))) + (inputs + `(("ghc-text" ,ghc-text) + ("ghc-unordered-containers" ,ghc-unordered-containers))) + (home-page "http://github.com/ekmett/parsers/") + (synopsis "Parsing combinators") + (description "This library provides convenient combinators for working +with and building parsing combinator libraries. Given a few simple instances, +you get access to a large number of canned definitions. Instances exist for +the parsers provided by @code{parsec}, @code{attoparsec} and @code{base}'s +@code{Text.Read}.") + (license bsd-3))) + +(define-public ghc-trifecta + (package + (name "ghc-trifecta") + (version "1.5.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/trifecta/trifecta-" + version + ".tar.gz")) + (sha256 + (base32 + "0fjhnsbafl3yw34pyhcsvrqy6a2mnhyqys6gna3rrlygs8ck7hpb")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy + ; -package ansi-terminal-0.6.2.3" + (propagated-inputs + `(("ghc-charset" ,ghc-charset) + ("ghc-comonad" ,ghc-comonad) + ("ghc-lens" ,ghc-lens) + ("ghc-profunctors" ,ghc-profunctors) + ("ghc-reducers" ,ghc-reducers) + ("ghc-semigroups" ,ghc-semigroups))) + (inputs + `(("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-blaze-html" ,ghc-blaze-html) + ("ghc-blaze-markup" ,ghc-blaze-markup) + ("ghc-fingertree" ,ghc-fingertree) + ("ghc-hashable" ,ghc-hashable) + ("ghc-mtl" ,ghc-mtl) + ("ghc-parsers" ,ghc-parsers) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-utf8-string" ,ghc-utf8-string))) + (home-page "http://github.com/ekmett/trifecta/") + (synopsis "Parser combinator library with convenient diagnostics") + (description "Trifecta is a modern parser combinator library for Haskell, +with slicing and Clang-style colored diagnostics.") + (license bsd-3))) + +(define-public ghc-attoparsec + (package + (name "ghc-attoparsec") + (version "0.13.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/attoparsec/attoparsec-" + version + ".tar.gz")) + (sha256 + (base32 + "0cprkr7bl4lrr80pz8mryb4rbfwdgpsrl7g0fbcaybhl8p5hm26f")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-scientific" ,ghc-scientific))) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-quickcheck-unicode" ,ghc-quickcheck-unicode) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2) + ("ghc-text" ,ghc-text) + ("ghc-vector" ,ghc-vector))) + (home-page "https://github.com/bos/attoparsec") + (synopsis "Fast combinator parsing for bytestrings and text") + (description "This library provides a fast parser combinator library, +aimed particularly at dealing efficiently with network protocols and +complicated text/binary file formats.") + (license bsd-3))) + +(define-public ghc-css-text + (package + (name "ghc-css-text") + (version "0.1.2.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/css-text/css-text-" + version + ".tar.gz")) + (sha256 + (base32 + "1xi1n2f0g8y43p95lynhcg50wxbq7hqfzbfzm7fy8mn7gvd920nw")))) + (build-system haskell-build-system) + (inputs + `(("ghc-text" ,ghc-text) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-hspec" ,ghc-hspec) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "http://www.yesodweb.com/") + (synopsis "CSS parser and renderer") + (description "This package provides a CSS parser and renderer for +Haskell.") + (license bsd-3))) + +(define-public ghc-zip-archive + (package + (name "ghc-zip-archive") + (version "0.2.3.7") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/zip-archive/zip-archive-" + version + ".tar.gz")) + (sha256 + (base32 + "169nkxr5zlbymiz1ydlhlqr66vqiycmg85xh559phpkr64w3nqj1")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-old-time" ,ghc-old-time) + ("ghc-digest" ,ghc-digest))) + (inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-mtl" ,ghc-mtl) + ("zip" ,zip) + ("ghc-text" ,ghc-text) + ("ghc-zlib" ,ghc-zlib))) + (home-page "https://hackage.haskell.org/package/zip-archive") + (synopsis "Zip archive library for Haskell") + (description "The zip-archive library provides functions for creating, +modifying, and extracting files from zip archives in Haskell.") + (license bsd-3))) + +(define-public ghc-distributive + (package + (name "ghc-distributive") + (version "0.4.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/distributive/distributive-" + version + ".tar.gz")) + (sha256 + (base32 + "0s2ln9jv7bh4ri2y31178pvjl8x6nik5d0klx7j2b77yjlsgblc2")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: fails with "cannot satisfy -package + ; tagged-0.8.1". Suspected Cabal issue. + (propagated-inputs + `(("ghc-tagged" ,ghc-tagged) + ("ghc-transformers-compat" ,ghc-transformers-compat))) + (home-page "http://github.com/ekmett/distributive/") + (synopsis "Distributive functors for Haskell") + (description "This package provides distributive functors for Haskell. +Dual to @code{Traversable}.") + (license bsd-3))) + +(define-public ghc-cereal + (package + (name "ghc-cereal") + (version "0.4.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/cereal/cereal-" + version + ".tar.gz")) + (sha256 + (base32 + "15rhfn9hrjm01ksh9xpz9syxsp9vkvpp6b736iqq38wv2wb7416z")))) + (build-system haskell-build-system) + (home-page "http://hackage.haskell.org/package/cereal") + (synopsis "Binary serialization library") + (description "This package provides a binary serialization library, +similar to @code{binary}, that introduces an @code{isolate} primitive for +parser isolation, and labeled blocks for better error messages.") + (license bsd-3))) + +(define-public ghc-comonad + (package + (name "ghc-comonad") + (version "4.2.7.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/comonad/comonad-" + version + ".tar.gz")) + (sha256 + (base32 + "0arvbaxgkawzdp38hh53akkahjg2aa3kj2b4ns0ni8a5ylg2cqmp")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-distributive" ,ghc-distributive) + ("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-contravariant" ,ghc-contravariant))) + (arguments `(#:tests? #f)) ; FIXME: Test fails with "cannot satisfy + ; -package contravariant-1.3.3" + (inputs + `(("ghc-semigroups" ,ghc-semigroups) + ("ghc-tagged" ,ghc-tagged) + ("ghc-contravariant" ,ghc-contravariant))) + (home-page "http://github.com/ekmett/comonad/") + (synopsis "Comonads for Haskell") + (description "This library provides @code{Comonad}s for Haskell.") + (license bsd-3))) + +(define-public hscolour + (package + (name "hscolour") + (version "1.23") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/hscolour/hscolour-" + version + ".tar.gz")) + (sha256 + (base32 + "1c4i2zpami8g3w9949nm3f92g7xwh5c94vkx658zz7ihrjp7w5lp")))) + (build-system haskell-build-system) + (home-page "https://hackage.haskell.org/package/hscolour") + (synopsis "Script to colourise Haskell code") + (description "HSColour is a small Haskell script to colourise Haskell +code. It currently has six output formats: ANSI terminal codes (optionally +XTerm-256colour codes), HTML 3.2 with font tags, HTML 4.01 with CSS, HTML 4.01 +with CSS and mouseover annotations, XHTML 1.0 with inline CSS styling, LaTeX, +and mIRC chat codes.") + (license bsd-3))) + +(define-public ghc-polyparse + (package + (name "ghc-polyparse") + (version "1.11") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/polyparse/polyparse-" + version + ".tar.gz")) + (sha256 + (base32 + "1z417f80b0jm4dgv25fk408p3d9mmcd1dlbya3ry0zdx4md09vrh")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-text" ,ghc-text))) + (home-page + "http://code.haskell.org/~malcolm/polyparse/") + (synopsis + "Alternative parser combinator libraries") + (description + "This package provides a variety of alternative parser combinator +libraries, including the original HuttonMeijer set. The Poly sets have +features like good error reporting, arbitrary token type, running state, lazy +parsing, and so on. Finally, Text.Parse is a proposed replacement for the +standard Read class, for better deserialisation of Haskell values from +Strings.") + (license lgpl2.1))) + +(define-public ghc-extra + (package + (name "ghc-extra") + (version "1.4.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/extra/extra-" + version + ".tar.gz")) + (sha256 + (base32 + "1h9hxkrqrqscx420yz1lmivbrhi6jc3a5ap61vkxd2mhdgark9hf")))) + (build-system haskell-build-system) + (inputs `(("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "https://github.com/ndmitchell/extra") + (synopsis "Extra Haskell functions") + (description "This library provides extra functions for the standard +Haskell libraries. Most functions are simple additions, filling out missing +functionality. A few functions are available in later versions of GHC, but +this package makes them available back to GHC 7.2.") + (license bsd-3))) + +(define-public ghc-profunctors + (package + (name "ghc-profunctors") + (version "5.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/profunctors/profunctors-" + version + ".tar.gz")) + (sha256 + (base32 + "0lw2ipacpnp9yqmi8zsp01pzpn5hwj8af3y0f3079mddrmw48gw7")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-distributive" ,ghc-distributive))) + (inputs + `(("ghc-comonad" ,ghc-comonad) + ("ghc-tagged" ,ghc-tagged))) + (home-page "http://github.com/ekmett/profunctors/") + (synopsis "Profunctors for Haskell") + (description "This library provides profunctors for Haskell.") + (license bsd-3))) + +(define-public ghc-reducers + (package + (name "ghc-reducers") + (version "3.12.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/reducers/reducers-" + version + ".tar.gz")) + (sha256 + (base32 + "0pkddg0s3cn759miq0nfrq7lnp3imk5sx784ihsilsbjh9kvffz4")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-semigroupoids" ,ghc-semigroupoids))) + (inputs + `(("ghc-fingertree" ,ghc-fingertree) + ("ghc-hashable" ,ghc-hashable) + ("ghc-text" ,ghc-text) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-semigroups" ,ghc-semigroups))) + (home-page "http://github.com/ekmett/reducers/") + (synopsis "Semigroups, specialized containers and a general map/reduce framework") + (description "This library provides various semigroups, specialized +containers and a general map/reduce framework for Haskell.") + (license bsd-3))) + +(define-public ghc-appar + (package + (name "ghc-appar") + (version "0.1.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/appar/appar-" + version + ".tar.gz")) + (sha256 + (base32 + "09jb9ij78fdkz2qk66rw99q19qnm504dpv0yq0pjsl6xwjmndsjq")))) + (build-system haskell-build-system) + (home-page + "http://hackage.haskell.org/package/appar") + (synopsis "Simple applicative parser") + (description "This package provides a simple applicative parser in Parsec +style.") + (license bsd-3))) + +(define-public ghc-safe + (package + (name "ghc-safe") + (version "0.3.9") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/safe/safe-" + version + ".tar.gz")) + (sha256 + (base32 + "1jdnp5zhvalf1xy8i872n29nljfjz6lnl9ghj80ffisrnnkrwcfh")))) + (build-system haskell-build-system) + (home-page "https://github.com/ndmitchell/safe#readme") + (synopsis "Library of safe (exception free) functions") + (description "This library provides wrappers around @code{Prelude} and +@code{Data.List} functions, such as @code{head} and @code{!!}, that can throw +exceptions.") + (license bsd-3))) + +(define-public ghc-generic-deriving + (package + (name "ghc-generic-deriving") + (version "1.8.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/generic-deriving/generic-deriving-" + version + ".tar.gz")) + (sha256 + (base32 + "1kc6lhdanls6kgpk8xv5xi14lz1sngcd8xn930hkf7ilq4kxkcr6")))) + (build-system haskell-build-system) + (home-page "https://hackage.haskell.org/package/generic-deriving") + (synopsis "Generalise the deriving mechanism to arbitrary classes") + (description "This package provides functionality for generalising the +deriving mechanism in Haskell to arbitrary classes.") + (license bsd-3))) + +(define-public ghc-pcre-light + (package + (name "ghc-pcre-light") + (version "0.4.0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/pcre-light/pcre-light-" + version + ".tar.gz")) + (sha256 + (base32 + "0l1df2sk5qwf424bvb8mbdkr2xjg43fi92n5r22yd7vm1zz0jqvf")))) + (build-system haskell-build-system) + (inputs + `(("pcre" ,pcre))) + (home-page "https://github.com/Daniel-Diaz/pcre-light") + (synopsis "Haskell library for Perl 5 compatible regular expressions") + (description "This package provides a small, efficient, and portable regex +library for Perl 5 compatible regular expressions. The PCRE library is a set +of functions that implement regular expression pattern matching using the same +syntax and semantics as Perl 5.") + (license bsd-3))) + +(define-public ghc-logict + (package + (name "ghc-logict") + (version "0.6.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/logict/logict-" + version + ".tar.gz")) + (sha256 + (base32 + "07hnirv6snnym2r7iijlfz00b60jpy2856zvqxh989q0in7bd0hi")))) + (build-system haskell-build-system) + (inputs `(("ghc-mtl" ,ghc-mtl))) + (home-page "http://code.haskell.org/~dolio/") + (synopsis "Backtracking logic-programming monad") + (description "This library provides a continuation-based, backtracking, +logic programming monad. An adaptation of the two-continuation implementation +found in the paper \"Backtracking, Interleaving, and Terminating Monad +Transformers\" available @uref{http://okmij.org/ftp/papers/LogicT.pdf, +online}.") + (license bsd-3))) + +(define-public ghc-xml + (package + (name "ghc-xml") + (version "1.3.14") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/xml/xml-" + version + ".tar.gz")) + (sha256 + (base32 + "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-text" ,ghc-text))) + (home-page "http://code.galois.com") + (synopsis "Simple XML library for Haskell") + (description "This package provides a simple XML library for Haskell.") + (license bsd-3))) + +(define-public ghc-exceptions + (package + (name "ghc-exceptions") + (version "0.8.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/exceptions/exceptions-" + version + ".tar.gz")) + (sha256 + (base32 + "1x1bk1jf42k1gigiqqmkkh38z2ffhx8rsqiszdq3f94m2h6kw2h7")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Missing test-framework package. + (propagated-inputs + `(("ghc-stm" ,ghc-stm) + ("ghc-mtl" ,ghc-mtl) + ("ghc-transformers-compat" ,ghc-transformers-compat))) + (home-page "http://github.com/ekmett/exceptions/") + (synopsis "Extensible optionally-pure exceptions") + (description "This library provides extensible optionally-pure exceptions +for Haskell.") + (license bsd-3))) + +(define-public ghc-temporary + (package + (name "ghc-temporary") + (version "1.2.0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/temporary/temporary-" + version + ".tar.gz")) + (sha256 + (base32 + "0is67bmsjmbbw6wymhis8wyq9gax3sszm573p5719fx2c9z9r24a")))) + (build-system haskell-build-system) + (propagated-inputs `(("ghc-exceptions" ,ghc-exceptions))) + (home-page "http://www.github.com/batterseapower/temporary") + (synopsis "Temporary file and directory support") + (description "The functions for creating temporary files and directories +in the Haskelll base library are quite limited. This library just repackages +the Cabal implementations of its own temporary file and folder functions so +that you can use them without linking against Cabal or depending on it being +installed.") + (license bsd-3))) + +(define-public ghc-temporary-rc + (package + (name "ghc-temporary-rc") + (version "1.2.0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/temporary-rc/temporary-rc-" + version + ".tar.gz")) + (sha256 + (base32 + "1nqih0qks439k3pr5kmbbc8rjdw730slrxlflqb27fbxbzb8skqs")))) + (build-system haskell-build-system) + (propagated-inputs `(("ghc-exceptions" ,ghc-exceptions))) + (home-page + "http://www.github.com/feuerbach/temporary") + (synopsis + "Portable temporary file and directory support") + (description + "The functions for creating temporary files and directories in the base +library are quite limited. The unixutils package contains some good ones, but +they aren't portable to Windows. This library just repackages the Cabal +implementations of its own temporary file and folder functions so that you can +use them without linking against Cabal or depending on it being installed. +This is a better maintained fork of the \"temporary\" package.") + (license bsd-3))) + +(define-public ghc-smallcheck + (package + (name "ghc-smallcheck") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/smallcheck/smallcheck-" + version + ".tar.gz")) + (sha256 + (base32 + "1ygrabxh40bym3grnzqyfqn96lirnxspb8cmwkkr213239y605sd")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-logict" ,ghc-logict))) + (inputs + `(("ghc-mtl" ,ghc-mtl))) + (home-page + "https://github.com/feuerbach/smallcheck") + (synopsis "Property-based testing library") + (description "SmallCheck is a testing library that allows to verify +properties for all test cases up to some depth. The test cases are generated +automatically by SmallCheck.") + (license bsd-3))) + +(define-public ghc-tasty-ant-xml + (package + (name "ghc-tasty-ant-xml") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/tasty-ant-xml/tasty-ant-xml-" + version + ".tar.gz")) + (sha256 + (base32 + "0pgz2lclg2hp72ykljcbxd88pjanfdfk8m5vb2qzcyjr85kwrhxv")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-generic-deriving" ,ghc-generic-deriving) + ("ghc-xml" ,ghc-xml))) + (inputs + `(("ghc-mtl" ,ghc-mtl) + ("ghc-stm" ,ghc-stm) + ("ghc-tagged" ,ghc-tagged) + ("ghc-tasty" ,ghc-tasty))) + (home-page + "http://github.com/ocharles/tasty-ant-xml") + (synopsis + "Render tasty output to XML for Jenkins") + (description + "A tasty ingredient to output test results in XML, using the Ant +schema. This XML can be consumed by the Jenkins continuous integration +framework.") + (license bsd-3))) + +(define-public ghc-tasty-smallcheck + (package + (name "ghc-tasty-smallcheck") + (version "0.8.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/tasty-smallcheck/tasty-smallcheck-" + version + ".tar.gz")) + (sha256 + (base32 + "0yckfbz8na8ccyw2911i3a4hd3fdncclk3ng5343hs5cylw6y4sm")))) + (build-system haskell-build-system) + (inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-smallcheck" ,ghc-smallcheck) + ("ghc-async" ,ghc-async) + ("ghc-tagged" ,ghc-tagged))) + (home-page "http://documentup.com/feuerbach/tasty") + (synopsis "SmallCheck support for the Tasty test framework") + (description "This package provides SmallCheck support for the Tasty +Haskell test framework.") + (license bsd-3))) + +(define-public ghc-silently + (package + (name "ghc-silently") + (version "1.2.5") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/silently/silently-" + version + ".tar.gz")) + (sha256 + (base32 + "0f9qm3f7y0hpxn6mddhhg51mm1r134qkvd2kr8r6192ka1ijbxnf")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ;; circular dependency with nanospec + ;; (inputs + ;; `(("ghc-temporary" ,ghc-temporary))) + (home-page "https://github.com/hspec/silently") + (synopsis "Prevent writing to stdout") + (description "This package provides functions to prevent or capture +writing to stdout and other handles.") + (license bsd-3))) + +(define-public ghc-quickcheck-instances + (package + (name "ghc-quickcheck-instances") + (version "0.3.11") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/" + "quickcheck-instances/quickcheck-instances-" + version ".tar.gz")) + (sha256 + (base32 + "041s6963czs1pz0fc9cx17lgd6p83czqy2nxji7bhxqxwl2j15h2")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-old-time" ,ghc-old-time) + ("ghc-unordered-containers" ,ghc-unordered-containers))) + (inputs + `(("ghc-hashable" ,ghc-hashable) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-text" ,ghc-text))) + (home-page + "https://github.com/aslatter/qc-instances") + (synopsis "Common quickcheck instances") + (description "This package provides QuickCheck instances for types +provided by the Haskell Platform.") + (license bsd-3))) + +(define-public ghc-quickcheck-unicode + (package + (name "ghc-quickcheck-unicode") + (version "1.0.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/quickcheck-unicode/quickcheck-unicode-" + version + ".tar.gz")) + (sha256 + (base32 + "1a8nl6x7l9b22yx61wm0bh2n1xzb1hd5i5zgg1w4fpaivjnrrhi4")))) + (build-system haskell-build-system) + (inputs `(("ghc-quickcheck" ,ghc-quickcheck))) + (home-page + "https://github.com/bos/quickcheck-unicode") + (synopsis "Generator functions Unicode-related tests") + (description "This package provides generator and shrink functions for +testing Unicode-related software.") + (license bsd-3))) + +(define-public ghc-quickcheck-io + (package + (name "ghc-quickcheck-io") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/quickcheck-io/quickcheck-io-" + version + ".tar.gz")) + (sha256 + (base32 + "1kf1kfw9fsmly0rvzvdf6jvdw10qhkmikyj0wcwciw6wad95w9sh")))) + (build-system haskell-build-system) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hunit" ,ghc-hunit))) + (home-page + "https://github.com/hspec/quickcheck-io#readme") + (synopsis "Use HUnit assertions as QuickCheck properties") + (description "This package provides an orphan instance that allows you to +use HUnit assertions as QuickCheck properties.") + (license expat))) + (define-public ghc-quickcheck (package (name "ghc-quickcheck") - (version "2.8") + (version "2.8.1") (outputs '("out" "doc")) (source (origin @@ -839,7 +2902,7 @@ Hashing\" by Claessen, PaÅ‚ka for details and the rationale of the design.") ".tar.gz")) (sha256 (base32 - "04xs6mq22bcnkpi616qrbm7jlivh9csnhmvjgp1ifq52an1wr4rx")))) + "0fvnfl30fxmj5q920l13641ar896d53z0z6z66m7c1366lvalwvh")))) (build-system haskell-build-system) (arguments `(#:tests? #f ; FIXME: currently missing libraries used for tests. @@ -892,7 +2955,7 @@ to cases.") (define-public ghc-syb (package (name "ghc-syb") - (version "0.4.4") + (version "0.6") (outputs '("out" "doc")) (source (origin @@ -903,7 +2966,7 @@ to cases.") ".tar.gz")) (sha256 (base32 - "11sc9kmfvcn9bfxf227fgmny502z2h9xs3z0m9ak66lk0dw6f406")))) + "1p3cnqjm13677r4a966zffzhi9b3a321aln8zs8ckqj0d9z1z3d3")))) (build-system haskell-build-system) (inputs `(("ghc-hunit" ,ghc-hunit) @@ -911,43 +2974,12 @@ to cases.") (home-page "http://www.cs.uu.nl/wiki/GenericProgramming/SYB") (synopsis "Scrap Your Boilerplate") - (description - "This package contains the generics system described in the + (description "This package contains the generics system described in the /Scrap Your Boilerplate/ papers (see -<http://www.cs.uu.nl/wiki/GenericProgramming/SYB>). -It defines the 'Data' class of types permitting folding and unfolding -of constructor applications, instances of this class for primitive -types, and a variety of traversals.") - (license bsd-3))) - -(define-public ghc-containers - (package - (name "ghc-containers") - (version "0.5.6.3") - (outputs '("out" "doc")) - (source - (origin - (method url-fetch) - (uri (string-append - "http://hackage.haskell.org/package/containers/containers-" - version - ".tar.gz")) - (sha256 - (base32 - "1kcd55nl0vzi99i8sr8fmc5j25fv7m0a9hd3nihnq1pd64pfciqn")))) - (build-system haskell-build-system) - (inputs - `(("ghc-hunit" ,ghc-hunit) - ("ghc-quickcheck" ,ghc-quickcheck))) - (arguments - `(#:tests? #f)) ; FIXME: currently missing libraries used for tests. - (home-page "http://hackage.haskell.org/package/containers") - (synopsis "Assorted concrete container types") - (description - "This package contains efficient general-purpose implementations of -various basic immutable container types. The declared cost of each operation -is either worst-case or amortized, but remains valid even if structures are -shared.") +@uref{http://www.cs.uu.nl/wiki/GenericProgramming/SYB, the website}). It +defines the 'Data' class of types permitting folding and unfolding of +constructor applications, instances of this class for primitive types, and a +variety of traversals.") (license bsd-3))) (define-public ghc-fgl @@ -976,6 +3008,44 @@ is an inductive definition of graphs in the style of algebraic data types that encourages inductive, recursive definitions of graph algorithms.") (license bsd-3))) +(define-public ghc-chasingbottoms + (package + (name "ghc-chasingbottoms") + (version "1.3.0.13") + (source + (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/ChasingBottoms/" + "ChasingBottoms-" version ".tar.gz")) + (sha256 + (base32 + "1fb86jd6cdz4rx3fj3r9n8d60kx824ywwy7dw4qnrdran46ja3pl")) + (modules '((guix build utils))) + (snippet + ;; The Hackage page and the cabal file linked there for this package + ;; both list 0.7 as the upper version limit, but the source tarball + ;; specifies 0.6. Assume the Hackage page is correct. + '(substitute* "ChasingBottoms.cabal" + (("syb >= 0.1.0.2 && < 0.6") "syb >= 0.1.0.2 && < 0.7"))))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-mtl" ,ghc-mtl) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-random" ,ghc-random) + ("ghc-syb" ,ghc-syb))) + (home-page "http://hackage.haskell.org/package/ChasingBottoms") + (synopsis "Testing of partial and infinite values in Haskell") + (description + ;; FIXME: There should be a @comma{} in the uref text, but it is not + ;; rendered properly. + "This is a library for testing code involving bottoms or infinite values. +For the underlying theory and a larger example involving use of QuickCheck, +see the article +@uref{http://www.cse.chalmers.se/~nad/publications/danielsson-jansson-mpc2004.html, +\"Chasing Bottoms A Case Study in Program Verification in the Presence of +Partial and Infinite Values\"}.") + (license expat))) + (define-public ghc-unordered-containers (package (name "ghc-unordered-containers") @@ -985,20 +3055,21 @@ encourages inductive, recursive definitions of graph algorithms.") (origin (method url-fetch) (uri (string-append - "http://hackage.haskell.org/package/unordered-containers/unordered-containers-" - version - ".tar.gz")) + "http://hackage.haskell.org/package/unordered-containers" + "/unordered-containers-" version ".tar.gz")) (sha256 (base32 "06l1xv7vhpxly75saxdrbc6p2zlgz1az278arfkz4rgawfnphn3f")))) (build-system haskell-build-system) (inputs - `(("ghc-hunit" ,ghc-hunit) - ("ghc-quickcheck" ,ghc-quickcheck))) + `(("ghc-chasingbottoms" ,ghc-chasingbottoms) + ("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2))) ;; these inputs are necessary to use this library (propagated-inputs `(("ghc-hashable" ,ghc-hashable))) - (arguments - `(#:tests? #f)) ; FIXME: currently missing libraries used for tests. (home-page "https://github.com/tibbe/unordered-containers") (synopsis @@ -1009,6 +3080,103 @@ optimized for performance critical use, both in terms of large data quantities and high speed.") (license bsd-3))) +(define-public ghc-uniplate + (package + (name "ghc-uniplate") + (version "1.6.12") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/uniplate/uniplate-" + version + ".tar.gz")) + (sha256 + (base32 + "1dx8f9aw27fz8kw0ad1nm6355w5rdl7bjvb427v2bsgnng30pipw")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-syb" ,ghc-syb) + ("ghc-hashable" ,ghc-hashable) + ("ghc-unordered-containers" ,ghc-unordered-containers))) + (home-page "http://community.haskell.org/~ndm/uniplate/") + (synopsis "Simple, concise and fast generic operations") + (description "Uniplate is a library for writing simple and concise generic +operations. Uniplate has similar goals to the original Scrap Your Boilerplate +work, but is substantially simpler and faster.") + (license bsd-3))) + +(define-public ghc-base64-bytestring + (package + (name "ghc-base64-bytestring") + (version "1.0.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/base64-bytestring/base64-bytestring-" + version + ".tar.gz")) + (sha256 + (base32 + "0l1v4ddjdsgi9nqzyzcxxj76rwar3lzx8gmwf2r54bqan3san9db")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. + (home-page "https://github.com/bos/base64-bytestring") + (synopsis "Base64 encoding and decoding for ByteStrings") + (description "This library provides fast base64 encoding and decoding for +Haskell @code{ByteString}s.") + (license bsd-3))) + +(define-public ghc-annotated-wl-pprint + (package + (name "ghc-annotated-wl-pprint") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/annotated-wl-pprint" + "/annotated-wl-pprint-" version + ".tar.gz")) + (sha256 + (base32 + "061xfz6qany3wf95csl8dcik2pz22cn8iv1qchhm16isw5zjs9hc")))) + (build-system haskell-build-system) + (home-page + "https://github.com/david-christiansen/annotated-wl-pprint") + (synopsis + "The Wadler/Leijen Pretty Printer, with annotation support") + (description "This is a modified version of wl-pprint, which was based on +Wadler's paper \"A Prettier Printer\". This version allows the library user +to annotate the text with semantic information, which can later be rendered in +a variety of ways.") + (license bsd-3))) + +(define-public ghc-ansi-wl-pprint + (package + (name "ghc-ansi-wl-pprint") + (version "0.6.7.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/ansi-wl-pprint/ansi-wl-pprint-" + version + ".tar.gz")) + (sha256 + (base32 + "025pyphsjf0dnbrmj5nscbi6gzyigwgp3ifxb3psn7kji6mfr29p")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-ansi-terminal" ,ghc-ansi-terminal))) + (home-page "http://github.com/ekmett/ansi-wl-pprint") + (synopsis "Wadler/Leijen Pretty Printer for colored ANSI terminal output") + (description "This is a pretty printing library based on Wadler's paper +\"A Prettier Printer\". It has been enhanced with support for ANSI terminal +colored output using the ansi-terminal package.") + (license bsd-3))) + (define-public ghc-split (package (name "ghc-split") @@ -1023,15 +3191,22 @@ and high speed.") ".tar.gz")) (sha256 (base32 - "0xa3j0gwr6k5vizxybnzk5fgb3pppgspi6mysnp2gwjp2dbrxkzr")))) + "0xa3j0gwr6k5vizxybnzk5fgb3pppgspi6mysnp2gwjp2dbrxkzr")) + (modules '((guix build utils))) + (snippet + ;; The Cabal file on Hackage is updated, but the tar.gz does not + ;; include it. See + ;; <https://hackage.haskell.org/package/split-0.2.2/revisions/>. + '(substitute* "split.cabal" + (("base <4.8") "base <4.9"))))) (build-system haskell-build-system) (inputs `(("ghc-quickcheck" ,ghc-quickcheck))) (home-page "http://hackage.haskell.org/package/split") - (synopsis - "Combinator library for splitting lists") - (description "A collection of various methods for splitting lists into -parts, akin to the 'split' function found in several mainstream languages.") + (synopsis "Combinator library for splitting lists") + (description "This package provides a collection of Haskell functions for +splitting lists into parts, akin to the @code{split} function found in several +mainstream languages.") (license bsd-3))) (define-public ghc-parsec @@ -1069,7 +3244,7 @@ is also parametric in the input stream type.") (define-public ghc-vector (package (name "ghc-vector") - (version "0.10.12.2") + (version "0.11.0.0") (outputs '("out" "doc")) (source (origin @@ -1080,7 +3255,7 @@ is also parametric in the input stream type.") ".tar.gz")) (sha256 (base32 - "01hc71k1z9m0g0dv4zsvq5d2dvbgyc5p01hryw5c53792yi2fm25")))) + "1r1jlksy7b0kb0fy00g64isk6nyd9wzzdq31gx5v1wn38knj0lqa")))) (build-system haskell-build-system) (inputs `(("ghc-quickcheck" ,ghc-quickcheck))) @@ -1088,17 +3263,46 @@ is also parametric in the input stream type.") (propagated-inputs `(("ghc-primitive" ,ghc-primitive))) (arguments - `(#:tests? #f)) ; FIXME: currently missing libraries used for tests. + `(#:tests? #f)) ; FIXME: currently missing libraries used for tests. (home-page "https://github.com/haskell/vector") (synopsis "Efficient Arrays") - (description "An efficient implementation of Int-indexed arrays (both -mutable and immutable), with a powerful loop optimisation framework.") - (license bsd-3))) + (description "This library provides an efficient implementation of +Int-indexed arrays (both mutable and immutable), with a powerful loop +optimisation framework.") + (license bsd-3))) + +(define-public ghc-vector-binary-instances + (package + (name "ghc-vector-binary-instances") + (version "0.2.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/" + "vector-binary-instances/vector-binary-instances-" + version ".tar.gz")) + (sha256 + (base32 + "028rsf2w193rhs1gic5yvvrwidw9sblczcn10aw64npfc6502l4l")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-cereal" ,ghc-cereal))) + (inputs + `(("ghc-vector" ,ghc-vector))) + (home-page "https://github.com/bos/vector-binary-instances") + (synopsis "Instances of Data.Binary and Data.Serialize for vector") + (description "This library provides instances of @code{Binary} for the +types defined in the @code{vector} package, making it easy to serialize +vectors to and from disk. We use the generic interface to vectors, so all +vector types are supported. Specific instances are provided for unboxed, +boxed and storable vectors.") + (license bsd-3))) (define-public ghc-network (package (name "ghc-network") - (version "2.6.0.2") + (version "2.6.2.1") (outputs '("out" "doc")) (source (origin @@ -1109,16 +3313,12 @@ mutable and immutable), with a powerful loop optimisation framework.") ".tar.gz")) (sha256 (base32 - "12b7saam5ga6l4cplgkad49xa4vkynz2ri9jxidx1cxiqjcl0vc4")))) + "1yhvpd4wigz165jvyvw9zslx7lgqdj63jh3zv5s74b5ykdfa3zd3")))) (build-system haskell-build-system) (inputs `(("ghc-hunit" ,ghc-hunit))) (arguments - `(#:tests? #f ; FIXME: currently missing libraries used for tests. - #:phases - (modify-phases %standard-phases - (add-before 'configure 'set-sh - (lambda _ (setenv "CONFIG_SHELL" "sh")))))) + `(#:tests? #f)) ; FIXME: currently missing libraries used for tests. (home-page "https://github.com/haskell/network") (synopsis "Low-level networking interface") (description @@ -1128,7 +3328,7 @@ mutable and immutable), with a powerful loop optimisation framework.") (define-public ghc-network-uri (package (name "ghc-network-uri") - (version "2.6.0.1") + (version "2.6.0.3") (outputs '("out" "doc")) (source (origin @@ -1139,7 +3339,7 @@ mutable and immutable), with a powerful loop optimisation framework.") ".tar.gz")) (sha256 (base32 - "09ymamb128jgqghpda4nixncr73all8qc6q53976aricm6a27p37")))) + "1pwbqb2rk4rnvllvdch42p5368xcvpkanp7bxckdhxya8zzwvhhg")))) (build-system haskell-build-system) (inputs `(("ghc-hunit" ,ghc-hunit) @@ -1156,10 +3356,32 @@ mutable and immutable), with a powerful loop optimisation framework.") package into this package.") (license bsd-3))) +(define-public ghc-ansi-terminal + (package + (name "ghc-ansi-terminal") + (version "0.6.2.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/ansi-terminal/ansi-terminal-" + version + ".tar.gz")) + (sha256 + (base32 + "0hpfw0k025y681m9ml1c712skrb1p4vh7z5x1f0ci9ww7ssjrh2d")))) + (build-system haskell-build-system) + (home-page "https://github.com/feuerbach/ansi-terminal") + (synopsis "ANSI terminal support for Haskell") + (description "This package provides ANSI terminal support for Haskell. It +allows cursor movement, screen clearing, color output showing or hiding the +cursor, and changing the title.") + (license bsd-3))) + (define-public ghc-http (package (name "ghc-http") - (version "4000.2.19") + (version "4000.2.20") (outputs '("out" "doc")) (source (origin @@ -1170,12 +3392,13 @@ package into this package.") ".tar.gz")) (sha256 (base32 - "1yzm8gimh8g0wwbixcbxg60v4l3vgi63w9v55ms0x9qnm6vrgysz")))) + "0nyqdxr5ls2dxkf4a1f3x15xzwdm46ppn99nkcbhswlr6s3cq1s4")))) (build-system haskell-build-system) (inputs `(("ghc-hunit" ,ghc-hunit))) (propagated-inputs - `(("ghc-parsec" ,ghc-parsec) + `(("ghc-old-time" ,ghc-old-time) + ("ghc-parsec" ,ghc-parsec) ("ghc-mtl" ,ghc-mtl) ("ghc-network" ,ghc-network) ("ghc-network-uri" ,ghc-network-uri))) @@ -1189,4 +3412,2898 @@ lets you set up HTTP connections, transmitting requests and processing the responses coming back.") (license bsd-3))) +(define-public ghc-hspec + (package + (name "ghc-hspec") + (version "2.2.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/hspec/hspec-" + version + ".tar.gz")) + (sha256 + (base32 + "0zqisxznlbszivsgy3irvf566zhcr6ipqqj3x9i7pj5hy913jwqf")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-hspec-core" ,ghc-hspec-core) + ("hspec-discover" ,hspec-discover) + ("ghc-hspec-expectations" ,ghc-hspec-expectations) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hunit" ,ghc-hunit))) + (inputs + `(("ghc-stringbuilder" ,ghc-stringbuilder) + ("ghc-hspec-meta" ,ghc-hspec-meta))) + (home-page "http://hspec.github.io/") + (synopsis "Testing Framework for Haskell") + (description "This library provides the Hspec testing framework for +Haskell, inspired by the Ruby library RSpec.") + (license expat))) + +(define-public ghc-hspec-contrib + (package + (name "ghc-hspec-contrib") + (version "0.3.0") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "hspec-contrib/hspec-contrib-" + version ".tar.gz")) + (sha256 + (base32 + "006syw8xagfhsx06ws9ywig1qx5lk4cgl7sq6pbid1s64c72mxn4")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-hspec-core" ,ghc-hspec-core) + ("ghc-hunit" ,ghc-hunit) + ("ghc-hspec" ,ghc-hspec) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "http://hspec.github.io/") + (synopsis "Contributed functionality for Hspec") + (description + "This package provides contributed Hspec extensions.") + (license expat))) + +(define-public ghc-hspec-expectations + (package + (name "ghc-hspec-expectations") + (version "0.7.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/hspec-expectations/hspec-expectations-" + version + ".tar.gz")) + (sha256 + (base32 + "1w56jiqfyl237sr207gh3b0l8sr9layy0mdsgd5wknzb49mif6ip")))) + (build-system haskell-build-system) + (inputs `(("ghc-hunit" ,ghc-hunit))) + (home-page "https://github.com/sol/hspec-expectations") + (synopsis "Catchy combinators for HUnit") + (description "This library provides catchy combinators for HUnit, see +@uref{https://github.com/sol/hspec-expectations#readme, the README}.") + (license expat))) + +(define-public hspec-discover + (package + (name "hspec-discover") + (version "2.2.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/hspec-discover/hspec-discover-" + version + ".tar.gz")) + (sha256 + (base32 + "0w3awzbljf4hqhxrjrxqa1lfcclg92bhmq641gz2q80vycspapzx")))) + (build-system haskell-build-system) + (arguments `(#:haddock? #f)) ; Haddock phase fails because there are no + ; documentation files. + (inputs `(("ghc-hspec-meta" ,ghc-hspec-meta))) + (home-page "http://hspec.github.io/") + (synopsis "Automatically discover and run Hspec tests") + (description "hspec-discover is a tool which automatically discovers and +runs Hspec tests.") + (license expat))) + +(define-public ghc-hspec-core + (package + (name "ghc-hspec-core") + (version "2.2.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/hspec-core/hspec-core-" + version + ".tar.gz")) + (sha256 + (base32 + "1wgd55k652jaf81nkvciyqi67ycj7zamr4nd9z1cqf8nr9fc3sa4")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. + (propagated-inputs + `(("ghc-setenv" ,ghc-setenv) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-async" ,ghc-async) + ("ghc-quickcheck-io" ,ghc-quickcheck-io))) + (inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hspec-expectations" ,ghc-hspec-expectations) + ("ghc-silently" ,ghc-silently))) + (home-page "http://hspec.github.io/") + (synopsis "Testing framework for Haskell") + (description "This library exposes internal types and functions that can +be used to extend Hspec's functionality.") + (license expat))) + +(define-public ghc-hspec-meta + (package + (name "ghc-hspec-meta") + (version "2.2.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/hspec-meta/hspec-meta-" + version + ".tar.gz")) + (sha256 + (base32 + "1fmqmgrzp135cxhmxxbaswkk4bqbpgfml00cmcz0d39n11vzpa5z")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hunit" ,ghc-hunit) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-async" ,ghc-async) + ("ghc-hspec-expectations" ,ghc-hspec-expectations) + ("ghc-setenv" ,ghc-setenv) + ("ghc-random" ,ghc-random) + ("ghc-quickcheck-io" ,ghc-quickcheck-io))) + (home-page "http://hspec.github.io/") + (synopsis "Version of Hspec to test Hspec itself") + (description "This library provides a stable version of Hspec which is +used to test the in-development version of Hspec.") + (license expat))) + +(define-public ghc-vault + (package + (name "ghc-vault") + (version "0.3.0.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/vault/vault-" + version + ".tar.gz")) + (sha256 + (base32 + "0ah6qrg71krc87f4vjy4b4shdd0mgyil8fikb3j6fl4kfwlg67jn")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-hashable" ,ghc-hashable))) + (home-page + "https://github.com/HeinrichApfelmus/vault") + (synopsis "Persistent store for arbitrary values") + (description "This package provides vaults for Haskell. A vault is a +persistent store for values of arbitrary types. It's like having first-class +access to the storage space behind @code{IORefs}. The data structure is +analogous to a bank vault, where you can access different bank boxes with +different keys; hence the name. Also provided is a @code{locker} type, +representing a store for a single element.") + (license bsd-3))) + +(define-public ghc-mmorph + (package + (name "ghc-mmorph") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/mmorph/mmorph-" + version + ".tar.gz")) + (sha256 + (base32 + "0k5zlzmnixfwcjrqvhgi3i6xg532b0gsjvc39v5jigw69idndqr2")))) + (build-system haskell-build-system) + (home-page + "http://hackage.haskell.org/package/mmorph") + (synopsis "Monad morphisms") + (description + "This library provides monad morphism utilities, most commonly used for +manipulating monad transformer stacks.") + (license bsd-3))) + +(define-public ghc-monad-control + (package + (name "ghc-monad-control") + (version "1.0.0.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/monad-control" + "/monad-control-" version ".tar.gz")) + (sha256 + (base32 + "07pn1p4m80wdd7gw62s4yny8rbvm60ka1q8qx5y1plznd8sbg179")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-stm" ,ghc-stm) + ("ghc-transformers-base" ,ghc-transformers-base) + ("ghc-transformers-compat" ,ghc-transformers-compat))) + (home-page "https://github.com/basvandijk/monad-control") + (synopsis "Monad transformers to lift control operations like exception +catching") + (description "This package defines the type class @code{MonadBaseControl}, +a subset of @code{MonadBase} into which generic control operations such as +@code{catch} can be lifted from @code{IO} or any other base monad.") + (license bsd-3))) + +(define-public ghc-byteorder + (package + (name "ghc-byteorder") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/byteorder/byteorder-" + version + ".tar.gz")) + (sha256 + (base32 + "06995paxbxk8lldvarqpb3ygcjbg4v8dk4scib1rjzwlhssvn85x")))) + (build-system haskell-build-system) + (home-page + "http://community.haskell.org/~aslatter/code/byteorder") + (synopsis + "Exposes the native endianness of the system") + (description + "This package is for working with the native byte-ordering of the +system.") + (license bsd-3))) + +(define-public ghc-base-compat + (package + (name "ghc-base-compat") + (version "0.8.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/base-compat/base-compat-" + version + ".tar.gz")) + (sha256 + (base32 + "02m93hzgxg4bcnp7xcc2fdh2hrsc2h6fwl8hix5nx9k864kwf41q")))) + (build-system haskell-build-system) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hspec" ,ghc-hspec))) + (home-page "https://hackage.haskell.org/package/base-compat") + (synopsis "Haskell compiler compatibility library") + (description "This library provides functions available in later versions +of base to a wider range of compilers, without requiring the use of CPP +pragmas in your code.") + (license bsd-3))) + +(define-public ghc-blaze-builder + (package + (name "ghc-blaze-builder") + (version "0.4.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/blaze-builder/blaze-builder-" + version + ".tar.gz")) + (sha256 + (base32 + "1id3w33x9f7q5m3xpggmvzw03bkp94bpfyz81625bldqgf3yqdn1")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Missing test libraries. + (propagated-inputs + `(("ghc-text" ,ghc-text) + ("ghc-utf8-string" ,ghc-utf8-string))) + (home-page "http://github.com/lpsmith/blaze-builder") + (synopsis "Efficient buffered output") + (description "This library provides an implementation of the older +@code{blaze-builder} interface in terms of the new builder that shipped with +@code{bytestring-0.10.4.0}. This implementation is mostly intended as a +bridge to the new builder, so that code that uses the old interface can +interoperate with code that uses the new implementation.") + (license bsd-3))) + +(define-public ghc-blaze-markup + (package + (name "ghc-blaze-markup") + (version "0.7.0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/blaze-markup/blaze-markup-" + version + ".tar.gz")) + (sha256 + (base32 + "080vlhd8dwjxrma4bb524lh8gxs5lm3xh122icy6lnnyipla0s9y")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. + (propagated-inputs + `(("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-text" ,ghc-text))) + (home-page "http://jaspervdj.be/blaze") + (synopsis "Fast markup combinator library for Haskell") + (description "This library provides core modules of a markup combinator +library for Haskell.") + (license bsd-3))) + +(define-public ghc-blaze-html + (package + (name "ghc-blaze-html") + (version "0.8.1.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/blaze-html/blaze-html-" + version + ".tar.gz")) + (sha256 + (base32 + "1dnw50kh0s405cg9i2y4a8awanhj3bqzk21jwgfza65kcjby7lpq")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. + (propagated-inputs + `(("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-text" ,ghc-text) + ("ghc-blaze-markup" ,ghc-blaze-markup))) + (home-page "http://jaspervdj.be/blaze") + (synopsis "Fast HTML combinator library") + (description "This library provides HTML combinators for Haskell.") + (license bsd-3))) + +(define-public ghc-easy-file + (package + (name "ghc-easy-file") + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/easy-file/easy-file-" + version + ".tar.gz")) + (sha256 + (base32 + "0v75081bx4qzlqy29hh639nzlr7dncwza3qxbzm9njc4jarf31pz")))) + (build-system haskell-build-system) + (home-page + "http://github.com/kazu-yamamoto/easy-file") + (synopsis "File handling library for Haskell") + (description "This library provides file handling utilities for Haskell.") + (license bsd-3))) + +(define-public ghc-async + (package + (name "ghc-async") + (version "2.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/async/async-" + version + ".tar.gz")) + (sha256 + (base32 + "0azx4qk65a9a2gvqsfmz3w89m6shzr2iz0i5lly2zvly4n2d6m6v")))) + (build-system haskell-build-system) + (inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit))) + (propagated-inputs + `(("ghc-stm" ,ghc-stm))) + (home-page "https://github.com/simonmar/async") + (synopsis "Library to run IO operations asynchronously") + (description "Async provides a library to run IO operations +asynchronously, and wait for their results. It is a higher-level interface +over threads in Haskell, in which @code{Async a} is a concurrent thread that +will eventually deliver a value of type @code{a}.") + (license bsd-3))) + +(define-public ghc-fingertree + (package + (name "ghc-fingertree") + (version "0.1.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/fingertree/fingertree-" + version + ".tar.gz")) + (sha256 + (base32 + "1w6x3kp3by5yjmam6wlrf9vap5l5rrqaip0djbrdp0fpf2imn30n")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. + (home-page "http://hackage.haskell.org/package/fingertree") + (synopsis "Generic finger-tree structure") + (description "This library provides finger trees, a general sequence +representation with arbitrary annotations, for use as a base for +implementations of various collection types. It includes examples, as +described in section 4 of Ralf Hinze and Ross Paterson, \"Finger trees: a +simple general-purpose data structure\".") + (license bsd-3))) + +(define-public ghc-optparse-applicative + (package + (name "ghc-optparse-applicative") + (version "0.11.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/optparse-applicative" + "/optparse-applicative-" version ".tar.gz")) + (sha256 + (base32 + "0ni52ii9555jngljvzxn1ngicr6i2w647ww3rzhdrmng04y95iii")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint))) + (home-page "https://github.com/pcapriotti/optparse-applicative") + (synopsis "Utilities and combinators for parsing command line options") + (description "This package provides utilities and combinators for parsing +command line options in Haskell.") + (license bsd-3))) + +(define-public ghc-base-orphans + (package + (name "ghc-base-orphans") + (version "0.4.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/base-orphans/base-orphans-" + version + ".tar.gz")) + (sha256 + (base32 + "0hhgpwjvx7jhvlhsygmmf0q5hv2ymijzz4bjilicw99bmv13qcpl")))) + (build-system haskell-build-system) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hspec" ,ghc-hspec))) + (home-page "https://hackage.haskell.org/package/base-orphans") + (synopsis "Orphan instances for backwards compatibility") + (description "This package defines orphan instances that mimic instances +available in later versions of base to a wider (older) range of compilers.") + (license bsd-3))) + +(define-public ghc-auto-update + (package + (name "ghc-auto-update") + (version "0.1.2.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/auto-update/auto-update-" + version + ".tar.gz")) + (sha256 + (base32 + "1ns4c5mqhnm7hsiqxf1ivjs5fflyq92b16ldzrcl0p85631h0c3v")))) + (build-system haskell-build-system) + (home-page "https://github.com/yesodweb/wai") + (synopsis "Efficiently run periodic, on-demand actions") + (description "This library provides mechanisms to efficiently run +periodic, on-demand actions in Haskell.") + (license expat))) + +(define-public ghc-tagged + (package + (name "ghc-tagged") + (version "0.8.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/tagged/tagged-" + version + ".tar.gz")) + (sha256 + (base32 + "1hc2qzhhz5p1xd8k03sklrdnhcflkwhgpl82k6fam8yckww9ipav")))) + (build-system haskell-build-system) + (home-page "https://hackage.haskell.org/package/tagged") + (synopsis "Haskell phantom types to avoid passing dummy arguments") + (description "This library provides phantom types for Haskell 98, to avoid +having to unsafely pass dummy arguments.") + (license bsd-3))) + +(define-public ghc-unbounded-delays + (package + (name "ghc-unbounded-delays") + (version "0.1.0.9") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/unbounded-delays/unbounded-delays-" + version + ".tar.gz")) + (sha256 + (base32 + "1f4h87503m3smhip432q027wj3zih18pmz2rnafh60589ifcl420")))) + (build-system haskell-build-system) + (home-page "https://github.com/basvandijk/unbounded-delays") + (synopsis "Unbounded thread delays and timeouts") + (description "The @code{threadDelay} and @code{timeout} functions from the +Haskell base library use the bounded @code{Int} type for specifying the delay +or timeout period. This package provides alternative functions which use the +unbounded @code{Integer} type.") + (license bsd-3))) + +;; This package builds `clock` without tests, since the tests rely on tasty +;; and tasty-quickcheck, which in turn require clock to build. When tasty and +;; tasty-quickcheck are added, we will add ghc-clock with tests enabled. +(define ghc-clock-bootstrap + (package + (name "ghc-clock-bootstrap") + (version "0.5.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/" + "clock/" + "clock-" version ".tar.gz")) + (sha256 + (base32 "1ncph7vi2q6ywwc8ysxl1ibw6i5dwfvln88ssfazk8jgpj4iyykw")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ;; Testing suite depends on tasty and + ;; tasty-quickcheck, which need clock to build. + (home-page "https://hackage.haskell.org/package/clock") + (synopsis "High-resolution clock for Haskell") + (description "A package for convenient access to high-resolution clock and +timer functions of different operating systems via a unified API.") + (license bsd-3))) + +(define-public ghc-clock + (package + (name "ghc-clock") + (version "0.5.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/" + "clock/" + "clock-" version ".tar.gz")) + (sha256 + (base32 "1ncph7vi2q6ywwc8ysxl1ibw6i5dwfvln88ssfazk8jgpj4iyykw")))) + (build-system haskell-build-system) + (inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) + (home-page "https://hackage.haskell.org/package/clock") + (synopsis "High-resolution clock for Haskell") + (description "A package for convenient access to high-resolution clock and +timer functions of different operating systems via a unified API.") + (license bsd-3))) + +(define-public ghc-charset + (package + (name "ghc-charset") + (version "0.3.7.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/charset/charset-" + version + ".tar.gz")) + (sha256 + (base32 + "1gn0m96qpjww8hpp2g1as5yy0wcwy4iq73h3kz6g0yxxhcl5sh9x")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-semigroups" ,ghc-semigroups))) + (inputs + `(("ghc-unordered-containers" ,ghc-unordered-containers))) + (home-page "http://github.com/ekmett/charset") + (synopsis "Fast unicode character sets for Haskell") + (description "This package provides fast unicode character sets for +Haskell, based on complemented PATRICIA tries.") + (license bsd-3))) + +(define-public ghc-bytestring-builder + (package + (name "ghc-bytestring-builder") + (version "0.10.6.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/bytestring-builder" + "/bytestring-builder-" version ".tar.gz")) + (sha256 + (base32 + "1mkg24zl0rapb3gqzkyj5ibp07wx3yzd72hmfczssl0is63rjhww")))) + (build-system haskell-build-system) + (arguments `(#:haddock? #f)) ; Package contains no documentation. + (home-page "http://hackage.haskell.org/package/bytestring-builder") + (synopsis "The new bytestring builder, packaged outside of GHC") + (description "This package provides the bytestring builder that is +debuting in bytestring-0.10.4.0, which should be shipping with GHC 7.8. +Compatibility package for older packages.") + (license bsd-3))) + +(define-public ghc-nats + (package + (name "ghc-nats") + (version "1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/nats/nats-" + version + ".tar.gz")) + (sha256 + (base32 + "0r6s8l4s0yq3x2crrkv0b8zac13magfasr9v8hnq6rn1icsfhic0")))) + (build-system haskell-build-system) + (arguments `(#:haddock? #f)) + (inputs + `(("ghc-hashable" ,ghc-hashable))) + (home-page "https://hackage.haskell.org/package/nats") + (synopsis "Natural numbers") + (description "This library provides the natural numbers for Haskell.") + (license bsd-3))) + +(define-public ghc-void + (package + (name "ghc-void") + (version "0.7.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/void/void-" + version + ".tar.gz")) + (sha256 + (base32 + "1x15x2axz84ndw2bf60vjqljhrb0w95lddaljsxrl0hcd29zvw69")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-semigroups" ,ghc-semigroups))) + (inputs + `(("ghc-hashable" ,ghc-hashable))) + (home-page "http://github.com/ekmett/void") + (synopsis + "Logically uninhabited data type") + (description + "A Haskell 98 logically uninhabited data type, used to indicate that a +given term should not exist.") + (license bsd-3))) + +(define-public ghc-kan-extensions + (package + (name "ghc-kan-extensions") + (version "4.2.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/kan-extensions/kan-extensions-" + version + ".tar.gz")) + (sha256 + (base32 + "0iywbadpy8s3isfzlx9dlz3apaywhqq4gdbxkwygksq8pzdhwkrk")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-adjunctions" ,ghc-adjunctions))) + (inputs + `(("ghc-comonad" ,ghc-comonad) + ("ghc-contravariant" ,ghc-contravariant) + ("ghc-distributive" ,ghc-distributive) + ("ghc-free" ,ghc-free) + ("ghc-mtl" ,ghc-mtl) + ("ghc-semigroupoids" ,ghc-semigroupoids) + ("ghc-tagged" ,ghc-tagged))) + (home-page "http://github.com/ekmett/kan-extensions/") + (synopsis "Kan extensions library") + (description "This library provides Kan extensions, Kan lifts, various +forms of the Yoneda lemma, and (co)density (co)monads for Haskell.") + (license bsd-3))) + +(define-public ghc-statevar + (package + (name "ghc-statevar") + (version "1.1.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/StateVar/StateVar-" + version + ".tar.gz")) + (sha256 + (base32 + "1ap51cvwq61xckx5hw44l82ihbxvsq3263xr5hqg42c5qp67kbhf")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-stm" ,ghc-stm))) + (home-page "http://hackage.haskell.org/package/StateVar") + (synopsis "State variables for Haskell") + (description "This package provides state variables, which are references +in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.") + (license bsd-3))) + +(define-public ghc-lens + (package + (name "ghc-lens") + (version "4.13") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/lens/lens-" + version + ".tar.gz")) + (sha256 + (base32 + "0g4g0xksrb2m8wgsmraaq8qnk1sssb42kr65fc7clgyid6zyfmim")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: doctest packagedb propagation problem. + (propagated-inputs + `(("ghc-base-orphans" ,ghc-base-orphans) + ("ghc-bifunctors" ,ghc-bifunctors) + ("ghc-distributive" ,ghc-distributive) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-free" ,ghc-free) + ("ghc-kan-extensions" ,ghc-kan-extensions) + ("ghc-parallel" ,ghc-parallel) + ("ghc-reflection" ,ghc-reflection) + ("ghc-semigroupoids" ,ghc-semigroupoids) + ("ghc-vector" ,ghc-vector))) + (inputs + `(("ghc-comonad" ,ghc-comonad) + ("ghc-contravariant" ,ghc-contravariant) + ("ghc-hashable" ,ghc-hashable) + ("ghc-mtl" ,ghc-mtl) + ("ghc-profunctors" ,ghc-profunctors) + ("ghc-semigroups" ,ghc-semigroups) + ("ghc-tagged" ,ghc-tagged) + ("ghc-text" ,ghc-text) + ("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-void" ,ghc-void) + ("ghc-generic-deriving" ,ghc-generic-deriving) + ("ghc-nats" ,ghc-nats) + ("ghc-simple-reflect" ,ghc-simple-reflect) + ("hlint" ,hlint))) + (home-page "http://github.com/ekmett/lens/") + (synopsis "Lenses, Folds and Traversals") + (description "This library provides @code{Control.Lens}. The combinators +in @code{Control.Lens} provide a highly generic toolbox for composing families +of getters, folds, isomorphisms, traversals, setters and lenses and their +indexed variants.") + (license bsd-3))) + +(define-public ghc-tagsoup + (package + (name "ghc-tagsoup") + (version "0.13.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/tagsoup/tagsoup-" + version + ".tar.gz")) + (sha256 + (base32 + "13b6zy6346r3cxhaivys84fnxarg8wbv7r2znazfjdkqil8n5a1j")))) + (build-system haskell-build-system) + (inputs `(("ghc-text" ,ghc-text))) + (home-page + "http://community.haskell.org/~ndm/tagsoup/") + (synopsis + "Parsing and extracting information from (possibly malformed) HTML/XML +documents") + (description + "TagSoup is a library for parsing HTML/XML. It supports the HTML 5 +specification, and can be used to parse either well-formed XML, or +unstructured and malformed HTML from the web. The library also provides +useful functions to extract information from an HTML document, making it ideal +for screen-scraping.") + (license bsd-3))) + +(define-public ghc-digest + (package + (name "ghc-digest") + (version "0.0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/digest/digest-" + version + ".tar.gz")) + (sha256 + (base32 + "04gy2zp8yzvv7j9bdfvmfzcz3sqyqa6rwslqcn4vyair2vmif5v4")))) + (build-system haskell-build-system) + (inputs + `(("zlib" ,zlib))) + (home-page + "http://hackage.haskell.org/package/digest") + (synopsis + "Various cryptographic hashes for bytestrings") + (description + "This package provides efficient cryptographic hash implementations for +strict and lazy bytestrings. For now, CRC32 and Adler32 are supported; they +are implemented as FFI bindings to efficient code from zlib.") + (license bsd-3))) + +(define-public ghc-cheapskate + (package + (name "ghc-cheapskate") + (version "0.1.0.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/cheapskate/cheapskate-" + version + ".tar.gz")) + (sha256 + (base32 + "0drx1hlqvdcrij4097q6bxhbfcqm73jsqv1wwhd3hsnjdmr46ch2")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-xss-sanitize" ,ghc-xss-sanitize) + ("ghc-data-default" ,ghc-data-default))) + (inputs + `(("ghc-mtl" ,ghc-mtl) + ("ghc-text" ,ghc-text) + ("ghc-blaze-html" ,ghc-blaze-html) + ("ghc-syb" ,ghc-syb) + ("ghc-uniplate" ,ghc-uniplate) + ("ghc-aeson" ,ghc-aeson) + ("ghc-wai-extra" ,ghc-wai-extra) + ("ghc-wai" ,ghc-wai) + ("ghc-http-types" ,ghc-http-types))) + (home-page "http://github.com/jgm/cheapskate") + (synopsis "Experimental markdown processor") + (description "Cheapskate is an experimental Markdown processor in pure +Haskell. It aims to process Markdown efficiently and in the most forgiving +possible way. It is designed to deal with any input, including garbage, with +linear performance. Output is sanitized by default for protection against XSS +attacks.") + (license bsd-3))) + +(define-public ghc-bifunctors + (package + (name "ghc-bifunctors") + (version "5") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/bifunctors/bifunctors-" + version + ".tar.gz")) + (sha256 + (base32 + "13990xdgx0n23qgi18ghhmsywj5zkr0a5bim0g8a4nzi0cx95ps1")))) + (build-system haskell-build-system) + (inputs + `(("ghc-tagged" ,ghc-tagged) + ("ghc-semigroups" ,ghc-semigroups))) + (home-page "http://github.com/ekmett/bifunctors/") + (synopsis "Bifunctors for Haskell") + (description "This package provides bifunctors for Haskell.") + (license bsd-3))) + +(define-public ghc-semigroupoids + (package + (name "ghc-semigroupoids") + (version "5.0.0.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/semigroupoids/semigroupoids-" + version + ".tar.gz")) + (sha256 + (base32 + "1jf7jnfhdvl6p18wdr21yi2fim1xb8alcn6szhrdswj0dkilgq6d")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-base-orphans" ,ghc-base-orphans) + ("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-bifunctors" ,ghc-bifunctors) + ("ghc-comonad" ,ghc-comonad) + ("ghc-contravariant" ,ghc-contravariant) + ("ghc-distributive" ,ghc-distributive))) + (arguments `(#:tests? #f)) ; FIXME: doctest packagedb propagation problem. + (inputs + `(("ghc-semigroups" ,ghc-semigroups) + ("ghc-tagged" ,ghc-tagged))) + (home-page "http://github.com/ekmett/semigroupoids") + (synopsis "Semigroupoids operations for Haskell") + (description "This library provides a wide array of (semi)groupoids and +operations for working with them. A @code{Semigroupoid} is a @code{Category} +without the requirement of identity arrows for every object in the category. +A @code{Category} is any @code{Semigroupoid} for which the Yoneda lemma holds. +Finally, to work with these weaker structures it is beneficial to have +containers that can provide stronger guarantees about their contents, so +versions of @code{Traversable} and @code{Foldable} that can be folded with +just a @code{Semigroup} are added.") + (license bsd-3))) + +(define-public ghc-contravariant + (package + (name "ghc-contravariant") + (version "1.3.3") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/contravariant/contravariant-" + version + ".tar.gz")) + (sha256 + (base32 + "184hcmhsznqrkmqlc1kza9pb5p591anva574ry8wrh81vqmhwfb5")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-void" ,ghc-void) + ("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-statevar" ,ghc-statevar))) + (inputs + `(("ghc-semigroups" ,ghc-semigroups))) + (home-page + "http://github.com/ekmett/contravariant/") + (synopsis "Contravariant functors") + (description "Contravariant functors for Haskell.") + (license bsd-3))) + +(define-public ghc-semigroups + (package + (name "ghc-semigroups") + (version "0.17.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/semigroups/semigroups-" + version + ".tar.gz")) + (sha256 + (base32 + "0gvpfi7s6ys4qha3y9a1zl1a15gf9cgg33wjb94ghg82ivcxnc3r")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-nats" ,ghc-nats) + ("ghc-tagged" ,ghc-tagged) + ("ghc-unordered-containers" ,ghc-unordered-containers))) + (inputs + `(("ghc-text" ,ghc-text) + ("ghc-hashable" ,ghc-hashable))) + (home-page "http://github.com/ekmett/semigroups/") + (synopsis "Semigroup operations for Haskell") + (description "This package provides semigroups for Haskell. In +mathematics, a semigroup is an algebraic structure consisting of a set +together with an associative binary operation. A semigroup generalizes a +monoid in that there might not exist an identity element. It +also (originally) generalized a group (a monoid with all inverses) to a type +where every element did not have to have an inverse, thus the name +semigroup.") + (license bsd-3))) + +(define-public ghc-free + (package + (name "ghc-free") + (version "4.12.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/free/free-" + version + ".tar.gz")) + (sha256 + (base32 + "0sr8phvrb4ny8j1wzq55rdn8q4br23q4pw2j276npr844825jr9p")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-prelude-extras" ,ghc-prelude-extras) + ("ghc-profunctors" ,ghc-profunctors) + ("ghc-exceptions" ,ghc-exceptions))) + (inputs + `(("ghc-bifunctors" ,ghc-bifunctors) + ("ghc-comonad" ,ghc-comonad) + ("ghc-distributive" ,ghc-distributive) + ("ghc-mtl" ,ghc-mtl) + ("ghc-semigroupoids" ,ghc-semigroupoids) + ("ghc-semigroups" ,ghc-semigroups))) + (home-page "http://github.com/ekmett/free/") + (synopsis "Unrestricted monads for Haskell") + (description "This library provides free monads, which are useful for many +tree-like structures and domain specific languages. If @code{f} is a +@code{Functor} then the free @code{Monad} on @code{f} is the type of trees +whose nodes are labeled with the constructors of @code{f}. The word \"free\" +is used in the sense of \"unrestricted\" rather than \"zero-cost\": @code{Free +f} makes no constraining assumptions beyond those given by @code{f} and the +definition of @code{Monad}.") + (license bsd-3))) + +(define-public ghc-adjunctions + (package + (name "ghc-adjunctions") + (version "4.2.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/adjunctions/adjunctions-" + version + ".tar.gz")) + (sha256 + (base32 + "00p030iypjzjib8pxz1x6mxfi59wvyrwjj11zv9bh766dgkdbwjq")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-profunctors" ,ghc-profunctors))) + (inputs + `(("ghc-comonad" ,ghc-comonad) + ("ghc-contravariant" ,ghc-contravariant) + ("ghc-distributive" ,ghc-distributive) + ("ghc-free" ,ghc-free) + ("ghc-mtl" ,ghc-mtl) + ("ghc-tagged" ,ghc-tagged) + ("ghc-semigroupoids" ,ghc-semigroupoids) + ("ghc-semigroups" ,ghc-semigroups) + ("ghc-void" ,ghc-void))) + (home-page "http://github.com/ekmett/adjunctions/") + (synopsis "Adjunctions and representable functors") + (description "This library provides adjunctions and representable functors +for Haskell.") + (license bsd-3))) + +(define-public ghc-fast-logger + (package + (name "ghc-fast-logger") + (version "2.4.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/fast-logger/fast-logger-" + version + ".tar.gz")) + (sha256 + (base32 + "0kjk1861qcls8m8y7i55msfpprws5wk6c5mxzi35g2qbl2sih4p5")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-bytestring-builder" ,ghc-bytestring-builder) + ("ghc-auto-update" ,ghc-auto-update))) + (inputs + `(("ghc-hspec" ,ghc-hspec) + ("ghc-text" ,ghc-text))) + (home-page "https://hackage.haskell.org/package/fast-logger") + (synopsis "Fast logging system") + (description "This library provides a fast logging system for Haskell.") + (license bsd-3))) + +(define-public ghc-doctest + (package + (name "ghc-doctest") + (version "0.10.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/doctest/doctest-" + version + ".tar.gz")) + (sha256 + (base32 + "1jbyhzbi2hfrfg7vbkpj6vriaap8cn99nnmzwcfscwaijz09jyrm")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: missing test framework + (propagated-inputs + `(("ghc-syb" ,ghc-syb) + ("ghc-paths" ,ghc-paths))) + (inputs + `(("ghc-base-compat" ,ghc-base-compat) + ("ghc-hunit" ,ghc-hunit) + ("ghc-hspec" ,ghc-hspec) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-stringbuilder" ,ghc-stringbuilder) + ("ghc-silently" ,ghc-silently) + ("ghc-setenv" ,ghc-setenv))) + (home-page + "https://github.com/sol/doctest#readme") + (synopsis "Test interactive Haskell examples") + (description "The doctest program checks examples in source code comments. +It is modeled after doctest for Python, see +@uref{http://docs.python.org/library/doctest.html, the Doctest website}.") + (license expat))) + +(define-public ghc-lifted-base + (package + (name "ghc-lifted-base") + (version "0.2.3.6") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/lifted-base/lifted-base-" + version + ".tar.gz")) + (sha256 + (base32 + "1yz14a1rsgknwyl08n4kxrlc26hfwmb95a3c2drbnsgmhdyq7iap")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Missing testing libraries. + (propagated-inputs + `(("ghc-transformers-base" ,ghc-transformers-base) + ("ghc-monad-control" ,ghc-monad-control))) + (inputs + `(("ghc-transformers-compat" ,ghc-transformers-compat) + ("ghc-hunit" ,ghc-hunit))) + (home-page "https://github.com/basvandijk/lifted-base") + (synopsis "Lifted IO operations from the base library") + (description "Lifted-base exports IO operations from the @code{base} +library lifted to any instance of @code{MonadBase} or @code{MonadBaseControl}. +Note that not all modules from @code{base} are converted yet. The package +includes a copy of the @code{monad-peel} test suite written by Anders +Kaseorg.") + (license bsd-3))) + +(define-public ghc-word8 + (package + (name "ghc-word8") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/word8/word8-" + version + ".tar.gz")) + (sha256 + (base32 + "1pbn8ra3qhwvw07p375cdmp7jzlg07hgdcr4cpscz3h7b9sy7fiw")))) + (build-system haskell-build-system) + (inputs + `(("ghc-hspec" ,ghc-hspec))) + (home-page "http://hackage.haskell.org/package/word8") + (synopsis "Word8 library for Haskell") + (description "Word8 library to be used with @code{Data.ByteString}.") + (license bsd-3))) + +(define-public ghc-stringsearch + (package + (name "ghc-stringsearch") + (version "0.3.6.6") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/stringsearch/stringsearch-" + version + ".tar.gz")) + (sha256 + (base32 + "0jpy9xjcjdbpi3wk6mg7xwd7wfi2mma70p97v1ij5i8bj9qijpr9")))) + (build-system haskell-build-system) + (home-page "https://bitbucket.org/dafis/stringsearch") + (synopsis "Fast searching, splitting and replacing of ByteStrings") + (description "This package provides several functions to quickly search +for substrings in strict or lazy @code{ByteStrings}. It also provides +functions for breaking or splitting on substrings and replacing all +occurrences of a substring (the first in case of overlaps) with another.") + (license bsd-3))) + +(define-public ghc-tasty-quickcheck + (package + (name "ghc-tasty-quickcheck") + (version "0.8.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/tasty-quickcheck/" + "tasty-quickcheck-" version ".tar.gz")) + (sha256 + (base32 + "15rjxib5jmjq0hzj47x15kgp3awc73va4cy1pmpf7k3hvfv4qprn")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-quickcheck" ,ghc-quickcheck))) + (inputs + `(("ghc-tagged" ,ghc-tagged) + ("ghc-tasty" ,ghc-tasty) + ("ghc-random" ,ghc-random) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-pcre-light" ,ghc-pcre-light))) + (home-page "http://documentup.com/feuerbach/tasty") + (synopsis "QuickCheck support for the Tasty test framework") + (description "This package provides QuickCheck support for the Tasty +Haskell test framework.") + (license expat))) + +(define-public ghc-tasty-golden + (package + (name "ghc-tasty-golden") + (version "2.3.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/tasty-golden/tasty-golden-" + version + ".tar.gz")) + (sha256 + (base32 + "0n7nll1sx75n3lffwhgnjrxdn0jz1g0921z9mj193fxqw0wz8axh")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-temporary" ,ghc-temporary))) + (inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-mtl" ,ghc-mtl) + ("ghc-optparse-applicative" ,ghc-optparse-applicative) + ("ghc-tagged" ,ghc-tagged) + ("ghc-async" ,ghc-async) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-temporary-rc" ,ghc-temporary-rc))) + (home-page + "https://github.com/feuerbach/tasty-golden") + (synopsis "Golden tests support for tasty") + (description + "This package provides support for 'golden testing'. A golden test is an +IO action that writes its result to a file. To pass the test, this output +file should be identical to the corresponding 'golden' file, which contains +the correct result for the test.") + (license expat))) + +(define-public ghc-tasty + (package + (name "ghc-tasty") + (version "0.11.0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/tasty/tasty-" + version + ".tar.gz")) + (sha256 + (base32 + "1chapivmmwsb1ghwagvdm80bfj3hdk75m94z4p212ng2i4ghpjkx")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-stm" ,ghc-stm) + ("ghc-mtl" ,ghc-mtl) + ("ghc-tagged" ,ghc-tagged) + ("ghc-regex-tdfa-rc" ,ghc-regex-tdfa-rc) + ("ghc-optparse-applicative" ,ghc-optparse-applicative) + ("ghc-unbounded-delays" ,ghc-unbounded-delays) + ("ghc-async" ,ghc-async) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-clock-bootstrap" ,ghc-clock-bootstrap))) + (home-page "http://documentup.com/feuerbach/tasty") + (synopsis "Modern and extensible testing framework") + (description "Tasty is a modern testing framework for Haskell. It lets +you combine your unit tests, golden tests, QuickCheck/SmallCheck properties, +and any other types of tests into a single test suite.") + (license expat))) + +(define-public ghc-tasty-hunit + (package + (name "ghc-tasty-hunit") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/tasty-hunit/tasty-hunit-" + version + ".tar.gz")) + (sha256 + (base32 + "08qnxaw34wfnzi9irs1jd4d0zczqm3k5ffkd4zwhkz0dflmgq7mf")))) + (build-system haskell-build-system) + (inputs + `(("ghc-tasty" ,ghc-tasty))) + (home-page "http://documentup.com/feuerbach/tasty") + (synopsis "HUnit support for the Tasty test framework") + (description "This package provides HUnit support for the Tasty Haskell +test framework.") + (license expat))) + +(define-public ghc-cookie + (package + (name "ghc-cookie") + (version "0.4.1.6") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/cookie/cookie-" + version + ".tar.gz")) + (sha256 + (base32 + "0b6ym6fn29p5az4dwydy036lxj131kagrmgb93w4bbkqfkds8b9s")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-old-locale" ,ghc-old-locale))) + (inputs + `(("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-text" ,ghc-text) + ("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) + (home-page "http://github.com/snoyberg/cookie") + (synopsis "HTTP cookie parsing and rendering") + (description "HTTP cookie parsing and rendering library for Haskell.") + (license bsd-3))) + +(define-public ghc-scientific + (package + (name "ghc-scientific") + (version "0.3.4.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/scientific/scientific-" + version + ".tar.gz")) + (sha256 + (base32 + "0mimdkva0cgzaychr6whv9if29z0r5wwhkss9bmd4rz8kq1kgngn")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-hashable" ,ghc-hashable) + ("ghc-vector" ,ghc-vector))) + (inputs + `(("ghc-text" ,ghc-text) + ("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-ant-xml" ,ghc-tasty-ant-xml) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-tasty-smallcheck" ,ghc-tasty-smallcheck) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) + ("ghc-smallcheck" ,ghc-smallcheck) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "https://github.com/basvandijk/scientific") + (synopsis "Numbers represented using scientific notation") + (description "This package provides @code{Data.Scientific}, which provides +the number type @code{Scientific}. Scientific numbers are arbitrary precision +and space efficient. They are represented using +@uref{http://en.wikipedia.org/wiki/Scientific_notation, scientific +notation}.") + (license bsd-3))) + +(define-public ghc-aeson + (package + (name "ghc-aeson") + (version "0.10.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/aeson/aeson-" + version + ".tar.gz")) + (sha256 + (base32 + "19kp33rfivr4d3myyr8xn803wd7p8x5nc4wb3qvlgjwgyqjaxvrz")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: testing libraries are missing. + (propagated-inputs + `(("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-dlist" ,ghc-dlist) + ("ghc-mtl" ,ghc-mtl) + ("ghc-scientific" ,ghc-scientific) + ("ghc-syb" ,ghc-syb) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-vector" ,ghc-vector))) + (inputs + `(("ghc-hashable" ,ghc-hashable) + ("ghc-text" ,ghc-text) + ("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "https://github.com/bos/aeson") + (synopsis "Fast JSON parsing and encoding") + (description "This package provides a JSON parsing and encoding library +for Haskell, optimized for ease of use and high performance. (A note on +naming: in Greek mythology, Aeson was the father of Jason.)") + (license bsd-3))) + +(define-public ghc-wai + (package + (name "ghc-wai") + (version "3.0.4.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/wai/wai-" + version + ".tar.gz")) + (sha256 + (base32 + "1551n0g0n22vml33v0jz5xgjcy6j79algvsdqg11a1z5ljjrjlqf")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-bytestring-builder" ,ghc-bytestring-builder) + ("ghc-unix-compat" ,ghc-unix-compat) + ("ghc-vault" ,ghc-vault) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-network" ,ghc-network))) + (inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hunit" ,ghc-hunit) + ("ghc-hspec" ,ghc-hspec) + ("ghc-text" ,ghc-text) + ("ghc-http-types" ,ghc-http-types))) + (home-page "https://hackage.haskell.org/package/wai") + (synopsis "Web application interface for Haskell") + (description "This package provides a Web Application Interface (WAI) +library for the Haskell language. It defines a common protocol for +communication between web applications and web servers.") + (license bsd-3))) + +(define-public ghc-wai-logger + (package + (name "ghc-wai-logger") + (version "2.2.4.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/wai-logger/wai-logger-" + version + ".tar.gz")) + (sha256 + (base32 + "1s6svvy3ci4j1dj1jaw8hg628miwj8f5gpy9n8d8hpsaxav6nzgk")))) + (build-system haskell-build-system) + (arguments `(#:tests? #f)) ; FIXME: Tests cannot find libraries exported + ; by propagated-inputs. + (propagated-inputs + `(("ghc-auto-update" ,ghc-auto-update) + ("ghc-byteorder" ,ghc-byteorder) + ("ghc-easy-file" ,ghc-easy-file) + ("ghc-unix-time" ,ghc-unix-time))) + (inputs + `(("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-fast-logger" ,ghc-fast-logger) + ("ghc-http-types" ,ghc-http-types) + ("ghc-network" ,ghc-network) + ("ghc-wai" ,ghc-wai))) + (home-page "http://hackage.haskell.org/package/wai-logger") + (synopsis "Logging system for WAI") + (description "This package provides the logging system for WAI.") + (license bsd-3))) + +(define-public ghc-wai-extra + (package + (name "ghc-wai-extra") + (version "3.0.11.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://hackage.haskell.org/package/wai-extra/wai-extra-" + version + ".tar.gz")) + (sha256 + (base32 + "1kr2s5qyx1dvnwr372h7pca4sgxjv0pdx96xkgsfi180h3mb0vq8")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-cookie" ,ghc-cookie) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-network" ,ghc-network) + ("ghc-lifted-base" ,ghc-lifted-base) + ("ghc-streaming-commons" ,ghc-streaming-commons) + ("ghc-stringsearch" ,ghc-stringsearch) + ("ghc-resourcet" ,ghc-resourcet) + ("ghc-fast-logger" ,ghc-fast-logger) + ("ghc-wai-logger" ,ghc-wai-logger) + ("ghc-zlib" ,ghc-zlib) + ("ghc-word8" ,ghc-word8) + ("ghc-iproute" ,ghc-iproute) + ("ghc-void" ,ghc-void))) + (inputs + `(("ghc-wai" ,ghc-wai) + ("ghc-http-types" ,ghc-http-types) + ("ghc-text" ,ghc-text) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-unix-compat" ,ghc-unix-compat) + ("ghc-vault" ,ghc-vault) + ("ghc-aeson" ,ghc-aeson) + ("ghc-hspec" ,ghc-hspec) + ("ghc-hunit" ,ghc-hunit))) + (home-page "http://github.com/yesodweb/wai") + (synopsis "Some basic WAI handlers and middleware") + (description "This library provides basic WAI handlers and middleware +functionality.") + (license expat))) + +(define-public ghc-deepseq-generics + (package + (name "ghc-deepseq-generics") + (version "0.1.1.2") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "deepseq-generics/deepseq-generics-" + version ".tar.gz")) + (sha256 + (base32 + "01pvigx8n9p8hwbzp2qiq6kzf7cxiam843jz2sjgliacmmp1v7l3")))) + (build-system haskell-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'relax-ghc-prim-dependency + (lambda _ + (substitute* "deepseq-generics.cabal" + (("< 0.4") "< 0.5")) + #t))))) + (native-inputs + `(("ghc-hunit" ,ghc-hunit) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit))) + (home-page "https://github.com/hvr/deepseq-generics") + (synopsis "Generic RNF implementation") + (description + "This package provides a @code{GHC.Generics}-based +@code{Control.DeepSeq.Generics.genericRnf} function which can be used for +providing an 'rnf' implementation.") + (license bsd-3))) + +(define-public ghc-pandoc-types + (package + (name "ghc-pandoc-types") + (version "1.12.4.7") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "pandoc-types/pandoc-types-" + version ".tar.gz")) + (sha256 + (base32 + "108n11kbdaj2ii3cyf0xczhsx90p1gjbxwqp1f0wyn2m3cls632n")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-syb" ,ghc-syb) + ("ghc-aeson" ,ghc-aeson) + ("ghc-deepseq-generics" ,ghc-deepseq-generics))) + (home-page "http://johnmacfarlane.net/pandoc") + (synopsis "Types for representing a structured document") + (description + "This module defines the @code{Pandoc} data structure, which is used by +pandoc to represent structured documents. It also provides functions for +building up, manipulating and serialising @code{Pandoc} structures.") + (license bsd-3))) + +(define-public ghc-texmath + (package + (name "ghc-texmath") + (version "0.8.4") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "texmath/texmath-" version ".tar.gz")) + (sha256 + (base32 + "15821jg64fbr4rwaglp5ksah6q8qqz1vkjxlqp6d3bbb1rj8v2ri")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-syb" ,ghc-syb) + ("ghc-network-uri" ,ghc-network-uri) + ("ghc-split" ,ghc-split) + ("ghc-temporary" ,ghc-temporary) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-xml" ,ghc-xml) + ("ghc-parsec" ,ghc-parsec) + ("ghc-mtl" ,ghc-mtl) + ("ghc-pandoc-types" ,ghc-pandoc-types))) + (home-page "http://github.com/jgm/texmath") + (synopsis "Conversion between formats used to represent mathematics") + (description + "The texmath library provides functions to read and write TeX math, +presentation MathML, and OMML (Office Math Markup Language, used in Microsoft +Office). Support is also included for converting math formats to pandoc's +native format (allowing conversion, via pandoc, to a variety of different +markup formats). The TeX reader supports basic LaTeX and AMS extensions, and +it can parse and apply LaTeX macros.") + (license gpl2+))) + +(define-public ghc-regex-pcre-builtin + (package + (name "ghc-regex-pcre-builtin") + (version "0.94.4.8.8.35") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "regex-pcre-builtin/regex-pcre-builtin-" + version ".tar.gz")) + (sha256 + (base32 + "0y7as9wqlkykpipka2cfdhmcnin345q01pp0wsva8fwmvsavdl8b")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-regex-base" ,ghc-regex-base))) + (home-page "http://hackage.haskell.org/package/regex-pcre") + (synopsis "Enhancement of the builtin Text.Regex library") + (description + "This package is an enhancement of the @code{Text.Regex} library, +providing the PCRE backend to accompany regex-base, with bundled code from +@url{http://www.pcre.org}.") + (license bsd-3))) + +(define-public ghc-diff + (package + (name "ghc-diff") + (version "0.3.2") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "Diff/Diff-" version ".tar.gz")) + (sha256 + (base32 + "13iqqmpadcm7fvqwbfrz94w030rvjh66w2bdls1253128ac2n0vz")))) + (build-system haskell-build-system) + (home-page "http://hub.darcs.net/sterlingclover/Diff") + (synopsis "O(ND) diff algorithm in Haskell") + (description + "This package provides an implementation of the standard diff algorithm, +and utilities for pretty printing.") + (license bsd-3))) + +(define-public ghc-highlighting-kate + (package + (name "ghc-highlighting-kate") + (version "0.6") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "highlighting-kate/highlighting-kate-" + version ".tar.gz")) + (sha256 + (base32 + "16334fbiyq6017zbgc59qc00h0bk24xh4dcrbqx63dvf72ac37dk")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-diff" ,ghc-diff) + ("ghc-regex-pcre-builtin" ,ghc-regex-pcre-builtin))) + (native-inputs + `(("ghc-parsec" ,ghc-parsec) + ("ghc-blaze-html" ,ghc-blaze-html) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-mtl" ,ghc-mtl))) + (home-page "http://github.com/jgm/highlighting-kate") + (synopsis "Syntax highlighting library") + (description + "Highlighting-kate is a syntax highlighting library with support for +nearly one hundred languages. The syntax parsers are automatically generated +from @uref{http://kate-editor.org/, Kate syntax descriptions}, so any syntax +supported by Kate can be added. An (optional) command-line program is +provided, along with a utility for generating new parsers from Kate XML syntax +descriptions.") + (license gpl2+))) + +(define-public ghc-cmark + (package + (name "ghc-cmark") + (version "0.4.1") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "cmark/cmark-" version ".tar.gz")) + (sha256 + (base32 + "0c134qh65viaq4q6pv7bnnr5wchzivg94nv0dj8pc1326sx0dw12")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-text" ,ghc-text))) + (native-inputs + `(("ghc-hunit" ,ghc-hunit))) + (home-page "https://github.com/jgm/commonmark-hs") + (synopsis "Fast, accurate CommonMark (Markdown) parser and renderer") + (description + "This package provides Haskell bindings for +@uref{https://github.com/jgm/cmark, libcmark}, the reference parser for +CommonMark, a fully specified variant of Markdown. It includes sources for +libcmark (0.21.0) and does not require prior installation of the C library.") + (license bsd-3))) + +(define-public ghc-executable-path + (package + (name "ghc-executable-path") + (version "0.0.3") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "executable-path/executable-path-" + version ".tar.gz")) + (sha256 + (base32 + "1jg58qf19qz93c60ryglcavwdcysz4fd4qn8kpw5im9w9kniawlc")))) + (build-system haskell-build-system) + (home-page "http://hackage.haskell.org/package/executable-path") + (synopsis "Find out the full path of the executable") + (description + "The documentation of @code{System.Environment.getProgName} says that +\"However, this is hard-to-impossible to implement on some non-Unix OSes, so +instead, for maximum portability, we just return the leafname of the program +as invoked.\" This library tries to provide the missing path.") + (license public-domain))) + +(define-public ghc-enclosed-exceptions + (package + (name "ghc-enclosed-exceptions") + (version "1.0.1.1") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "enclosed-exceptions/enclosed-exceptions-" + version ".tar.gz")) + (sha256 + (base32 + "16ax1kqdsk4apg642qxkm2hf9vb5hzmkd14zmkxra8ssp8rn28z5")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-lifted-base" ,ghc-lifted-base) + ("ghc-monad-control" ,ghc-monad-control) + ("ghc-async" ,ghc-async) + ("ghc-transformers-base" ,ghc-transformers-base))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "https://github.com/jcristovao/enclosed-exceptions") + (synopsis "Catch all exceptions from within an enclosed computation") + (description + "This library implements a technique to catch all exceptions raised +within an enclosed computation, while remaining responsive to (external) +asynchronous exceptions.") + (license expat))) + +(define-public ghc-packedstring + (package + (name "ghc-packedstring") + (version "0.1.0.1") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "packedstring/packedstring-" + version ".tar.gz")) + (sha256 + (base32 + "1x78pzzdlnpcmh9p37rlf8m5cxf3yqm2alf3whl4zpr9w25r0qj8")))) + (build-system haskell-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'enable-extension + (lambda _ + ;; This package won't compile without the StandaloneDeriving + ;; extension. + (substitute* "packedstring.cabal" + (("CPP") "CPP, StandaloneDeriving")) + #t))))) + (home-page "http://hackage.haskell.org/package/packedstring") + (synopsis "Library for packed strings") + (description + "This deprecated library provides an implementation of packed strings.") + (license bsd-3))) + +(define-public ghc-th-lift + (package + (name "ghc-th-lift") + (version "0.7.5") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "th-lift/th-lift-" version ".tar.gz")) + (sha256 + (base32 + "13xdkk1chdghf059sfx8d3d8r0mj1dbzdi5kf2zf0mjmz3qq7m7k")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-packedstring" ,ghc-packedstring))) + (home-page "http://github.com/mboes/th-lift") + (synopsis "Derive Template Haskell's Lift class for datatypes") + (description + "This is a Haskell library to derive Template Haskell's Lift class for +datatypes.") + (license bsd-3))) + +(define-public ghc-th-expand-syns + (package + (name "ghc-th-expand-syns") + (version "0.3.0.6") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "th-expand-syns/th-expand-syns-" + version ".tar.gz")) + (sha256 + (base32 + "03qv93pyqk8all39knsf0mzmbfdck5x61kqnyn8rbisw5c1ymx6j")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-syb" ,ghc-syb))) + (home-page "http://hackage.haskell.org/package/th-expand-syns") + (synopsis "Expands type synonyms in Template Haskell ASTs") + (description + "This package enables users to expand type synonyms in Template Haskell +@dfn{abstract syntax trees} (ASTs).") + (license bsd-3))) + +(define-public ghc-th-reify-many + (package + (name "ghc-th-reify-many") + (version "0.1.3") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "th-reify-many/th-reify-many-" + version ".tar.gz")) + (sha256 + (base32 + "00hryljcs434wcv1vaamfdbjk857f46djxv7mlwplkl3zsmfhlfx")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-mtl" ,ghc-mtl) + ("ghc-safe" ,ghc-safe) + ("ghc-th-expand-syns" ,ghc-th-expand-syns))) + (home-page "http://github.com/mgsloan/th-reify-many") + (synopsis "Recurseively reify template haskell datatype info") + (description + "th-reify-many provides functions for recursively reifying top level +declarations. The main intended use case is for enumerating the names of +datatypes reachable from an initial datatype, and passing these names to some +function which generates instances.") + (license bsd-3))) + +(define-public ghc-th-orphans + (package + (name "ghc-th-orphans") + (version "0.13.0") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "th-orphans/th-orphans-" version ".tar.gz")) + (sha256 + (base32 + "105y03bxh0a2r69l603i7md17gg1vxs1jj1n40pn5q486lmfxbmx")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-th-lift" ,ghc-th-lift) + ("ghc-th-reify-many" ,ghc-th-reify-many) + ("ghc-mtl" ,ghc-mtl) + ("ghc-generic-deriving" ,ghc-generic-deriving))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec))) + (home-page "http://hackage.haskell.org/package/th-orphans") + (synopsis "Orphan instances for TH datatypes") + (description + "This package provides orphan instances for Template Haskell datatypes. In particular, +instances for @code{Ord} and @code{Lift}, as well as a few missing @code{Show} +and @code{Eq} instances. These instances used to live in the haskell-src-meta +package, and that's where the version number started.") + (license bsd-3))) + +(define-public ghc-haskell-src-meta + (package + (name "ghc-haskell-src-meta") + (version "0.6.0.12") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "haskell-src-meta/haskell-src-meta-" + version ".tar.gz")) + (sha256 + (base32 + "1mzbfrfvl6pj8068w3m6alzry1403ir1gmz3czg66n5z198l4dql")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-haskell-src-exts" ,ghc-haskell-src-exts) + ("ghc-syb" ,ghc-syb) + ("ghc-th-orphans" ,ghc-th-orphans))) + (home-page "http://hackage.haskell.org/package/haskell-src-meta") + (synopsis "Parse source to template-haskell abstract syntax") + (description + "This package provides tools to parse Haskell sources to the +template-haskell abstract syntax.") + (license bsd-3))) + +(define-public ghc-aeson-qq + (package + (name "ghc-aeson-qq") + (version "0.8.1") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "aeson-qq/aeson-qq-" version ".tar.gz")) + (sha256 + (base32 + "1z8kh3qjc4khadz1ijdqm7fbk7dh17sisqhpwd3c9aibj2927k9d")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-base-compat" ,ghc-base-compat) + ("ghc-text" ,ghc-text) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-scientific" ,ghc-scientific) + ("ghc-vector" ,ghc-vector) + ("ghc-aeson" ,ghc-aeson) + ("ghc-parsec" ,ghc-parsec) + ("ghc-haskell-src-meta" ,ghc-haskell-src-meta))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec))) + (home-page "http://github.com/zalora/aeson-qq") + (synopsis "JSON quasiquoter for Haskell") + (description + "aeson-qq provides a JSON quasiquoter for Haskell. This package exposes +the function @code{aesonQQ} that compile-time converts a string representation +of a JSON value into a @code{Data.Aeson.Value}.") + (license expat))) + +(define-public ghc-conduit + (package + (name "ghc-conduit") + (version "1.2.5.1") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "conduit/conduit-" version ".tar.gz")) + (sha256 + (base32 + "0aq6wswd5dkhdmy7sjhd99mldpq33dqpgbdcwpm94ahvckqxs7v5")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-exceptions" ,ghc-exceptions) + ("ghc-lifted-base" ,ghc-lifted-base) + ("ghc-mmorph" ,ghc-mmorph) + ("ghc-mtl" ,ghc-mtl) + ("ghc-resourcet" ,ghc-resourcet) + ("ghc-transformers-base" ,ghc-transformers-base) + ("ghc-void" ,ghc-void))) + (native-inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hspec" ,ghc-hspec) + ("ghc-safe" ,ghc-safe))) + (home-page "https://github.com/snoyberg/conduit") + (synopsis "Streaming data library ") + (description + "conduit is a solution to the streaming data problem, allowing for +production, transformation, and consumption of streams of data in constant +memory. It is an alternative to lazy I/O which guarantees deterministic +resource handling, and fits in the same general solution space as +enumerator/iteratee and pipes." ) + (license expat))) + +(define-public ghc-logging-facade + (package + (name "ghc-logging-facade") + (version "0.1.0") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "logging-facade/logging-facade-" + version ".tar.gz")) + (sha256 + (base32 + "0zhdbjyj0j9by19rma9alxysrxnnl3s4kks4zk4bx0dg5xa0264y")))) + (build-system haskell-build-system) + (native-inputs + `(("ghc-hspec" ,ghc-hspec))) + (home-page "http://hackage.haskell.org/package/logging-facade") + (synopsis "Simple logging abstraction that allows multiple back-ends") + (description + "This package provides a simple logging abstraction that allows multiple +back-ends.") + (license expat))) + +(define-public ghc-mockery + (package + (name "ghc-mockery") + (version "0.3.2") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "mockery/mockery-" version ".tar.gz")) + (sha256 + (base32 + "0m0lp2z63sgkylz5318j53r5hnrkp705qh7nqbb149ir4gy7g1bg")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-temporary" ,ghc-temporary) + ("ghc-logging-facade" ,ghc-logging-facade))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec))) + (home-page "http://hackage.haskell.org/package/mockery") + (synopsis "Support functions for automated testing") + (description + "The mockery package provides support functions for automated testing.") + (license expat))) + +(define-public ghc-yaml + (package + (name "ghc-yaml") + (version "0.8.15.1") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "yaml/yaml-" version ".tar.gz")) + (sha256 + (base32 + "0v6c435xmgm99zxb30pqr7lhkb2a56wxqp70g4hjz8p7rj0vichx")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-conduit" ,ghc-conduit) + ("ghc-resourcet" ,ghc-resourcet) + ("ghc-aeson" ,ghc-aeson) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-vector" ,ghc-vector) + ("ghc-text" ,ghc-text) + ("ghc-attoparsec" ,ghc-attoparsec) + ("ghc-scientific" ,ghc-scientific) + ("ghc-enclosed-exceptions" ,ghc-enclosed-exceptions) + ("ghc-aeson-qq" ,ghc-aeson-qq) + ("ghc-base-compat" ,ghc-base-compat))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec) + ("ghc-hunit" ,ghc-hunit) + ("ghc-mockery" ,ghc-mockery))) + (home-page "http://github.com/snoyberg/yaml/") + (synopsis "Parsing and rendering YAML documents") + (description + "This package provides a library to parse and render YAML documents.") + (license bsd-3))) + +(define-public ghc-filemanip + (package + (name "ghc-filemanip") + (version "0.3.6.3") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "filemanip/filemanip-" version ".tar.gz")) + (sha256 + (base32 + "0ilqr8jv41zxcj5qyicg29m8s30b9v70x6f9h2h2rw5ap8bxldl8")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-mtl" ,ghc-mtl) + ("ghc-unix-compat" ,ghc-unix-compat))) + (home-page "https://github.com/bos/filemanip") + (synopsis "File and directory manipulation for Haskell") + (description + "This package provides a Haskell library for working with files and +directories. It includes code for pattern matching, finding files, modifying +file contents, and more.") + (license bsd-3))) + +(define-public ghc-mmap + (package + (name "ghc-mmap") + (version "0.5.9") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "mmap/mmap-" version ".tar.gz")) + (sha256 + (base32 + "1y5mk3yf4b8r6rzmlx1xqn4skaigrqnv08sqq0v7r3nbw42bpz2q")))) + (build-system haskell-build-system) + (home-page "http://hackage.haskell.org/package/mmap") + (synopsis "Memory mapped files for Haskell") + (description + "This library provides a wrapper to @code{mmap}, allowing files or +devices to be lazily loaded into memory as strict or lazy @code{ByteStrings}, +@code{ForeignPtrs} or plain @code{Ptrs}, using the virtual memory subsystem to +do on-demand loading.") + (license bsd-3))) + +(define-public ghc-juicypixels + (package + (name "ghc-juicypixels") + (version "3.2.6.2") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "JuicyPixels/JuicyPixels-" + version ".tar.gz")) + (sha256 + (base32 + "0hxa57cdknz86zywpjwfbdhac5lmk7j0wd5hy4mcnb8mw6r2m592")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-mtl" ,ghc-mtl) + ("ghc-zlib" ,ghc-zlib) + ("ghc-vector" ,ghc-vector) + ("ghc-primitive" ,ghc-primitive) + ("ghc-mmap" ,ghc-mmap))) + (home-page "https://github.com/Twinside/Juicy.Pixels") + (synopsis "Picture loading and serialization library") + (description + "This library can load and store images in PNG, Bitmap, JPEG, Radiance, +TIFF and GIF formats.") + (license bsd-3))) + +(define-public ghc-sha + (package + (name "ghc-sha") + (version "1.6.4.2") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "SHA/SHA-" version ".tar.gz")) + (sha256 + (base32 + "134ajm87fm4lpsw86m9q8apv20dw4bpk46raa389zr6bcdpifw64")))) + (build-system haskell-build-system) + (native-inputs + `(("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2))) + (home-page "http://hackage.haskell.org/package/SHA") + (synopsis "SHA suite of message digest functions") + (description + "This library implements the SHA suite of message digest functions, +according to NIST FIPS 180-2 (with the SHA-224 addendum), as well as the +SHA-based HMAC routines. The functions have been tested against most of the +NIST and RFC test vectors for the various functions. While some attention has +been paid to performance, these do not presently reach the speed of well-tuned +libraries, like OpenSSL.") + (license bsd-3))) + +(define-public ghc-hslua + (package + (name "ghc-hslua") + (version "0.4.1") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "hslua/hslua-" version ".tar.gz")) + (sha256 + (base32 + "0gqp6qhp4v24kzv2j49kgk7bxqzw0w10x0zr0r2j9wkfavqb9wid")))) + (build-system haskell-build-system) + (arguments + `(#:configure-flags '("-fsystem-lua"))) + (inputs + `(("lua" ,lua-5.1))) + (propagated-inputs + `(("ghc-text" ,ghc-text))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec) + ("ghc-hspec-contrib" ,ghc-hspec-contrib) + ("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-quickcheck-instances" ,ghc-quickcheck-instances))) + (home-page "http://hackage.haskell.org/package/hslua") + (synopsis "Lua language interpreter embedding in Haskell") + (description + "The Scripting.Lua module is a wrapper of the Lua language interpreter as +described in @url{http://www.lua.org/}.") + (license expat))) + +(define-public ghc-mime-types + (package + (name "ghc-mime-types") + (version "0.1.0.6") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "mime-types/mime-types-" + version ".tar.gz")) + (sha256 + (base32 + "090z3dp928243amnc6s8g10rk2h2bprk9y138q6wj3cpflzr72pw")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-text" ,ghc-text))) + (home-page "https://github.com/yesodweb/wai") + (synopsis "Basic MIME type handling types and functions") + (description + "This library provides basic MIME type handling types and functions.") + (license expat))) + +(define-public ghc-http-client + (package + (name "ghc-http-client") + (version "0.4.24") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "http-client/http-client-" + version ".tar.gz")) + (sha256 + (base32 + "0xz133kdfiyy2rm6z95bmvjj6y2540xzd86cfmdv9s6kz4p1ir4k")))) + (build-system haskell-build-system) + ;; Tests require access to the web. + (arguments `(#:tests? #f)) + (propagated-inputs + `(("ghc-text" ,ghc-text) + ("ghc-http-types" ,ghc-http-types) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-network" ,ghc-network) + ("ghc-streaming-commons" ,ghc-streaming-commons) + ("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-cookie" ,ghc-cookie) + ("ghc-exceptions" ,ghc-exceptions) + ("ghc-random" ,ghc-random) + ("ghc-mime-types" ,ghc-mime-types) + ("ghc-network-uri" ,ghc-network-uri) + ("ghc-monad-control" ,ghc-monad-control) + ("ghc-zlib" ,ghc-zlib) + ("ghc-async" ,ghc-async))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec))) + (home-page "https://github.com/snoyberg/http-client") + (synopsis "HTTP client engine") + (description + "This package provides an HTTP client engine, intended as a base layer +for more user-friendly packages.") + (license expat))) + +(define-public ghc-byteable + (package + (name "ghc-byteable") + (version "0.1.1") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "byteable/byteable-" version ".tar.gz")) + (sha256 + (base32 + "1qizg0kxxjqnd3cbrjhhidk5pbbciz0pb3z5kzikjjxnnnhk8fr4")))) + (build-system haskell-build-system) + (home-page "http://github.com/vincenthz/hs-byteable") + (synopsis "Type class for sequence of bytes") + (description + "This package provides an abstract class to manipulate sequence of bytes. +The use case of this class is abstracting manipulation of types that are just +wrapping a bytestring with stronger and more meaniful name.") + (license bsd-3))) + +(define-public ghc-hourglass + (package + (name "ghc-hourglass") + (version "0.2.9") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "hourglass/hourglass-" version ".tar.gz")) + (sha256 + (base32 + "1xha17nwzxdjizbcp63d2142c6q051y77facs7xribgcl5iz2m4v")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-mtl" ,ghc-mtl) + ("ghc-old-locale" ,ghc-old-locale))) + (native-inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) + ("ghc-tasty-hunit" ,ghc-tasty-hunit))) + (home-page "https://github.com/vincenthz/hs-hourglass") + (synopsis "Simple time-related library for Haskell") + (description + "This is a simple time library providing a simple but powerful and +performant API. The backbone of the library are the @code{Timeable} and +@code{Time} type classes. Each @code{Timeable} instances can be converted to +a type that has a @code{Time} instances, and thus are different +representations of current time.") + (license bsd-3))) + +(define-public ghc-pem + (package + (name "ghc-pem") + (version "0.2.2") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "pem/pem-" version ".tar.gz")) + (sha256 + (base32 + "162sk5sg22w21wqz5qv8kx6ibxp99v5p20g3nknhm1kddk3hha1p")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-mtl" ,ghc-mtl) + ("ghc-base64-bytestring" ,ghc-base64-bytestring))) + (native-inputs + `(("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) + ("ghc-hunit" ,ghc-hunit) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "http://github.com/vincenthz/hs-pem") + (synopsis "Privacy Enhanced Mail (PEM) format reader and writer") + (description + "This library provides readers and writers for the @dfn{Privacy Enhanced +Mail} (PEM) format.") + (license bsd-3))) + +(define-public ghc-asn1-types + (package + (name "ghc-asn1-types") + (version "0.3.1") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "asn1-types/asn1-types-" + version ".tar.gz")) + (sha256 + (base32 + "1iif9yrh4mmj249gyvam0zb2vb3jnlz777gahh2z9sx00dsx9rja")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-memory" ,ghc-memory) + ("ghc-hourglass" ,ghc-hourglass))) + (home-page "http://github.com/vincenthz/hs-asn1-types") + (synopsis "ASN.1 types for Haskell") + (description + "The package provides the standard types for dealing with the ASN.1 +format.") + (license bsd-3))) + +(define-public ghc-asn1-encoding + (package + (name "ghc-asn1-encoding") + (version "0.9.3") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "asn1-encoding/asn1-encoding-" + version ".tar.gz")) + (sha256 + (base32 + "01ki5msrpccgdbdiaaa5a9zw0icp1hki4hca8qx6hzlp0rcf1mwh")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-hourglass" ,ghc-hourglass) + ("ghc-asn1-types" ,ghc-asn1-types) + ("ghc-text" ,ghc-text) + ("ghc-mtl" ,ghc-mtl))) + (native-inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) + (home-page "http://github.com/vincenthz/hs-asn1") + (synopsis "ASN1 data reader and writer in RAW, BER and DER forms") + (description + "This package provides a reader and writer for ASN1 data in raw form with +supports for high level forms of ASN1 (BER, and DER).") + (license bsd-3))) + +(define-public ghc-asn1-parse + (package + (name "ghc-asn1-parse") + (version "0.9.4") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "asn1-parse/asn1-parse-" + version ".tar.gz")) + (sha256 + (base32 + "025prsihk5g6rdv9xlfmj0zpa0wa3qjzj5i4ilzvg7f6f3sji8y6")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-asn1-types" ,ghc-asn1-types) + ("ghc-asn1-encoding" ,ghc-asn1-encoding))) + (home-page "https://github.com/vincenthz/hs-asn1") + (synopsis "Simple monadic parser for ASN1 stream types") + (description + "This package provides a simple monadic parser for ASN1 stream types, +when ASN1 pattern matching is not convenient.") + (license bsd-3))) + +(define-public ghc-tasty-kat + (package + (name "ghc-tasty-kat") + (version "0.0.3") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "tasty-kat/tasty-kat-" version ".tar.gz")) + (sha256 + (base32 + "14yvlpli6cv6bn3kh8mlfp4x1l6ns4fvmfv6hmj75cvxyzq029d7")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-mtl" ,ghc-mtl) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) + ("ghc-tasty-hunit" ,ghc-tasty-hunit))) + (home-page "https://github.com/vincenthz/tasty-kat") + (synopsis "Known Answer Tests (KAT) framework for tasty") + (description + "This package provides a @dfn{Known Answer Tests} (KAT) framework for +tasty.") + (license expat))) + +(define-public ghc-cryptonite + (package + (name "ghc-cryptonite") + (version "0.9") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "cryptonite/cryptonite-" + version ".tar.gz")) + (sha256 + (base32 + "1h22x22lq2m8h456v5j50xm0l25bcm3h1pchsk83br909hjxql4z")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-memory" ,ghc-memory) + ("ghc-byteable" ,ghc-byteable))) + (native-inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) + ("ghc-tasty-hunit" ,ghc-tasty-hunit) + ("ghc-tasty-kat" ,ghc-tasty-kat))) + (home-page "https://github.com/haskell-crypto/cryptonite") + (synopsis "Cryptography primitives") + (description + "This package is a repository of cryptographic primitives for Haskell. +It supports a wide range of symmetric ciphers, cryptographic hash functions, +public key algorithms, key derivation numbers, cryptographic random number +generators, and more.") + (license bsd-3))) + +(define-public ghc-memory + (package + (name "ghc-memory") + (version "0.10") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "memory/memory-" version ".tar.gz")) + (sha256 + (base32 + "1xqs9zmjbjihb7gfbk25f2q00m2lsi4kc3jv672175ac8a36pgag")))) + (build-system haskell-build-system) + (native-inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) + ("ghc-tasty-hunit" ,ghc-tasty-hunit))) + (home-page "https://github.com/vincenthz/hs-memory") + (synopsis "Memory abstractions for Haskell") + (description + "This package provides memory abstractions, such as chunk of memory, +polymorphic byte array management and manipulation functions. It contains a +polymorphic byte array abstraction and functions similar to strict ByteString, +different type of byte array abstraction, raw memory IO operations (memory +set, memory copy, ..) and more") + (license bsd-3))) + +(define-public ghc-x509 + (package + (name "ghc-x509") + (version "1.6.3") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "x509/x509-" version ".tar.gz")) + (sha256 + (base32 + "1pmsby29abn485fvnymsgipvb3p1ch9c591xj5ncszkf0ivjiiin")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-memory" ,ghc-memory) + ("ghc-mtl" ,ghc-mtl) + ("ghc-hourglass" ,ghc-hourglass) + ("ghc-pem" ,ghc-pem) + ("ghc-asn1-types" ,ghc-asn1-types) + ("ghc-asn1-encoding" ,ghc-asn1-encoding) + ("ghc-asn1-parse" ,ghc-asn1-parse) + ("ghc-cryptonite" ,ghc-cryptonite))) + (native-inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck))) + (home-page "http://github.com/vincenthz/hs-certificate") + (synopsis "X509 reader and writer") + (description + "This library provides functions to read and write X509 certificates.") + (license bsd-3))) + +(define-public ghc-x509-store + (package + (name "ghc-x509-store") + (version "1.6.1") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "x509-store/x509-store-" + version ".tar.gz")) + (sha256 + (base32 + "01abx528i9f7djq2772xyna8x2mykrnwqkcfrapcx7z3bhprvml3")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-mtl" ,ghc-mtl) + ("ghc-pem" ,ghc-pem) + ("ghc-asn1-types" ,ghc-asn1-types) + ("ghc-asn1-encoding" ,ghc-asn1-encoding) + ("ghc-cryptonite" ,ghc-cryptonite) + ("ghc-x509" ,ghc-x509))) + (home-page "http://github.com/vincenthz/hs-certificate") + (synopsis "X.509 collection accessing and storing methods") + (description + "This package provides functions for accessing and storing X.509 +collections, certificates, revocation lists, and exception lists.") + (license bsd-3))) + +(define-public ghc-x509-validation + (package + (name "ghc-x509-validation") + (version "1.6.3") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "x509-validation/x509-validation-" + version ".tar.gz")) + (sha256 + (base32 + "1qr1v561hdlhjgqjv9pj9mbk0q1xf2mr1j67ghy93nlxxyzd7dw0")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-memory" ,ghc-memory) + ("ghc-byteable" ,ghc-byteable) + ("ghc-mtl" ,ghc-mtl) + ("ghc-hourglass" ,ghc-hourglass) + ("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-pem" ,ghc-pem) + ("ghc-asn1-types" ,ghc-asn1-types) + ("ghc-asn1-encoding" ,ghc-asn1-encoding) + ("ghc-x509" ,ghc-x509) + ("ghc-x509-store" ,ghc-x509-store) + ("ghc-cryptonite" ,ghc-cryptonite))) + (home-page "http://github.com/vincenthz/hs-certificate") + (synopsis "X.509 certificate and revocation list validation") + (description + "This package provides functions for X.509 certificate and revocation +list validation.") + (license bsd-3))) + +(define-public ghc-x509-system + (package + (name "ghc-x509-system") + (version "1.6.1") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "x509-system/x509-system-" + version ".tar.gz")) + (sha256 + (base32 + "10qf60d2f9jqwnbrhsb2cwpi86xg66m6dxndlxw967v1cdb3h6gf")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-mtl" ,ghc-mtl) + ("ghc-pem" ,ghc-pem) + ("ghc-x509" ,ghc-x509) + ("ghc-x509-store" ,ghc-x509-store))) + (home-page "http://github.com/vincenthz/hs-certificate") + (synopsis "Handle system X.509 accessors and storage") + (description + "This package provides a library to handle system accessors and storage +for X.509 certificates.") + (license bsd-3))) + +(define-public ghc-tls + (package + (name "ghc-tls") + (version "1.3.3") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "tls/tls-" version ".tar.gz")) + (sha256 + (base32 + "096ay54bwy6qi9z8ypncww3ls853zj37yaficvcg7qcqj42zn0wz")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-mtl" ,ghc-mtl) + ("ghc-cereal" ,ghc-cereal) + ("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-memory" ,ghc-memory) + ("ghc-cryptonite" ,ghc-cryptonite) + ("ghc-asn1-types" ,ghc-asn1-types) + ("ghc-asn1-encoding" ,ghc-asn1-encoding) + ("ghc-x509" ,ghc-x509) + ("ghc-x509-store" ,ghc-x509-store) + ("ghc-x509-validation" ,ghc-x509-validation) + ("ghc-async" ,ghc-async) + ("ghc-network" ,ghc-network) + ("ghc-hourglass" ,ghc-hourglass))) + (native-inputs + `(("ghc-tasty" ,ghc-tasty) + ("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck) + ("ghc-quickcheck" ,ghc-quickcheck))) + (home-page "http://github.com/vincenthz/hs-tls") + (synopsis + "TLS/SSL protocol native implementation (Server and Client)") + (description + "Native Haskell TLS and SSL protocol implementation for server and client. +This provides a high-level implementation of a sensitive security protocol, +eliminating a common set of security issues through the use of the advanced +type system, high level constructions and common Haskell features. Currently +implement the SSL3.0, TLS1.0, TLS1.1 and TLS1.2 protocol, and support RSA and +Ephemeral (Elliptic curve and regular) Diffie Hellman key exchanges, and many +extensions.") + (license bsd-3))) + +(define-public ghc-socks + (package + (name "ghc-socks") + (version "0.5.4") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "socks/socks-" version ".tar.gz")) + (sha256 + (base32 + "1nmldlwxqasmg359i2aa3a903gi3lmnlspvf12xk49jrg3mf3dg9")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-cereal" ,ghc-cereal) + ("ghc-network" ,ghc-network))) + (home-page "http://github.com/vincenthz/hs-socks") + (synopsis "SOCKS proxy (version 5) implementation.") + (description + "This library provides a SOCKS proxy (version 5) implementation.") + (license bsd-3))) + +(define-public ghc-connection + (package + (name "ghc-connection") + (version "0.2.5") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "connection/connection-" + version ".tar.gz")) + (sha256 + (base32 + "090il95jnm7ihwvcx3s9v6iwnp37nnsdx15q7722l845g51d95c8")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-byteable" ,ghc-byteable) + ("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-network" ,ghc-network) + ("ghc-tls" ,ghc-tls) + ("ghc-socks" ,ghc-socks) + ("ghc-x509" ,ghc-x509) + ("ghc-x509-store" ,ghc-x509-store) + ("ghc-x509-system" ,ghc-x509-system) + ("ghc-x509-validation" ,ghc-x509-validation))) + (home-page "http://github.com/vincenthz/hs-connection") + (synopsis "Simple and easy network connections API") + (description + "This package provides a simple network library for all your connection +needs. It provides a very simple API to create sockets to a destination with +the choice of SSL/TLS, and SOCKS.") + (license bsd-3))) + +(define-public ghc-http-client-tls + (package + (name "ghc-http-client-tls") + (version "0.2.2") + (source (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/" + "http-client-tls/http-client-tls-" + version ".tar.gz")) + (sha256 + (base32 + "0a01r05h5fxswyn6k6cgqgak4scqjan72hyy5wbdqzzhl4rmh7j5")))) + (build-system haskell-build-system) + ;; Tests require Internet access + (arguments `(#:tests? #f)) + (propagated-inputs + `(("ghc-data-default-class" ,ghc-data-default-class) + ("ghc-http-client" ,ghc-http-client) + ("ghc-connection" ,ghc-connection) + ("ghc-network" ,ghc-network) + ("ghc-tls" ,ghc-tls) + ("ghc-http-types" ,ghc-http-types))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec))) + (home-page "https://github.com/snoyberg/http-client") + (synopsis "Backend for http-client using the TLS library") + (description + "This package provides a backend for the http-client package using the +connection and TLS libraries. It is intended for use by higher-level +libraries, such as http-conduit.") + (license expat))) + +(define-public ghc-pandoc + (package + (name "ghc-pandoc") + (version "1.15.2.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://hackage.haskell.org/package/pandoc/pandoc-" + version ".tar.gz")) + (sha256 + (base32 + "0nfzwsdvrvg9zypgyqk0246p10yzlpqsqnkds8yraqybbvkb1g30")))) + (build-system haskell-build-system) + (propagated-inputs + `(("ghc-syb" ,ghc-syb) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-parsec" ,ghc-parsec) + ("ghc-mtl" ,ghc-mtl) + ("ghc-text" ,ghc-text) + ("ghc-zip-archive" ,ghc-zip-archive) + ("ghc-http" ,ghc-http) + ("ghc-texmath" ,ghc-texmath) + ("ghc-xml" ,ghc-xml) + ("ghc-random" ,ghc-random) + ("ghc-extensible-exceptions" ,ghc-extensible-exceptions) + ("ghc-pandoc-types" ,ghc-pandoc-types) + ("ghc-aeson" ,ghc-aeson) + ("ghc-tagsoup" ,ghc-tagsoup) + ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-zlib" ,ghc-zlib) + ("ghc-highlighting-kate" ,ghc-highlighting-kate) + ("ghc-data-default" ,ghc-data-default) + ("ghc-temporary" ,ghc-temporary) + ("ghc-blaze-html" ,ghc-blaze-html) + ("ghc-blaze-markup" ,ghc-blaze-markup) + ("ghc-yaml" ,ghc-yaml) + ("ghc-scientific" ,ghc-scientific) + ("ghc-vector" ,ghc-vector) + ("ghc-hslua" ,ghc-hslua) + ("ghc-sha" ,ghc-sha) + ("ghc-haddock-library" ,ghc-haddock-library) + ("ghc-old-time" ,ghc-old-time) + ("ghc-deepseq-generics" ,ghc-deepseq-generics) + ("ghc-juicypixels" ,ghc-juicypixels) + ("ghc-filemanip" ,ghc-filemanip) + ("ghc-cmark" ,ghc-cmark) + ("ghc-network-uri" ,ghc-network-uri) + ("ghc-network" ,ghc-network) + ("ghc-http-client" ,ghc-http-client) + ("ghc-http-client-tls" ,ghc-http-client-tls) + ("ghc-http-types" ,ghc-http-types) + ("ghc-diff" ,ghc-diff) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-executable-path" ,ghc-executable-path))) + (native-inputs + `(("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-hunit" ,ghc-hunit))) + (home-page "http://pandoc.org") + (synopsis "Conversion between markup formats") + (description + "Pandoc is a Haskell library for converting from one markup format to +another, and a command-line tool that uses this library. It can read and +write Markdown and (subsets of) other formats, such as HTML, reStructuredText, +LaTeX, DocBook, and many more. + +Pandoc extends standard Markdown syntax with footnotes, embedded LaTeX, +definition lists, tables, and other features. A compatibility mode is +provided for those who need a drop-in replacement for Markdown.pl.") + (license gpl2+))) + +(define-public idris + (package + (name "idris") + (version "0.9.19.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/idris-" + version "/idris-" version ".tar.gz")) + (sha256 + (base32 + "10641svdsjlxbxmbvylpia04cz5nn9486lpiay8ibqcrc1792qgc")) + (modules '((guix build utils))) + (snippet + '(substitute* "idris.cabal" + ;; Package description file has a too-tight version restriction, + ;; rendering it incompatible with GHC 7.10.2. This is fixed + ;; upstream. See + ;; <https://github.com/idris-lang/Idris-dev/issues/2734>. + (("vector < 0.11") "vector < 0.12"))))) + (build-system haskell-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-before 'configure 'patch-cc-command + (lambda _ + (setenv "CC" "gcc")))))) + (inputs + `(("gmp" ,gmp) + ("ncurses" ,ncurses) + ("ghc-annotated-wl-pprint" ,ghc-annotated-wl-pprint) + ("ghc-ansi-terminal" ,ghc-ansi-terminal) + ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint) + ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-blaze-html" ,ghc-blaze-html) + ("ghc-blaze-markup" ,ghc-blaze-markup) + ("ghc-cheapskate" ,ghc-cheapskate) + ("ghc-fingertree" ,ghc-fingertree) + ("ghc-mtl" ,ghc-mtl) + ("ghc-network" ,ghc-network) + ("ghc-optparse-applicative" ,ghc-optparse-applicative) + ("ghc-parsers" ,ghc-parsers) + ("ghc-safe" ,ghc-safe) + ("ghc-split" ,ghc-split) + ("ghc-text" ,ghc-text) + ("ghc-trifecta" ,ghc-trifecta) + ("ghc-uniplate" ,ghc-uniplate) + ("ghc-unordered-containers" ,ghc-unordered-containers) + ("ghc-utf8-string" ,ghc-utf8-string) + ("ghc-vector-binary-instances" ,ghc-vector-binary-instances) + ("ghc-vector" ,ghc-vector) + ("ghc-zip-archive" ,ghc-zip-archive) + ("ghc-zlib" ,ghc-zlib))) + (home-page "http://www.idris-lang.org") + (synopsis "General purpose language with full dependent types") + (description "Idris is a general purpose language with full dependent +types. It is compiled, with eager evaluation. Dependent types allow types to +be predicated on values, meaning that some aspects of a program's behaviour +can be specified precisely in the type. The language is closely related to +Epigram and Agda.") + (license bsd-3))) + ;;; haskell.scm ends here diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index 3867b4d7ec..ff29aee489 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -32,7 +32,7 @@ (define-public gnumach-headers (package (name "gnumach-headers") - (version "1.5") + (version "1.6") (source (origin (method url-fetch) @@ -40,7 +40,7 @@ version ".tar.gz")) (sha256 (base32 - "0wsf57q4h6xl2jn28d423qx7zplmhpnf9ssm4f1c0sf8513xm81j")))) + "1m7xwsrv6x6gk9xi5phs104rdn9q3lr63p348vyv0dzd6r3zyncb")))) (build-system gnu-build-system) (arguments `(#:phases (alist-replace @@ -66,7 +66,7 @@ (define-public mig (package (name "mig") - (version "1.5") + (version "1.6") (source (origin (method url-fetch) @@ -74,7 +74,7 @@ version ".tar.gz")) (sha256 (base32 - "13r1pg8icyc0pl082z7k36i440pr1f3nr7ahig3rrc0r7qndqmk9")))) + "1i9qd6j5g8wsv9k9n6vpdqflyw0284wyayb2s2h7pp4yyi2jsksk")))) (build-system gnu-build-system) ;; Flex is needed both at build and run time. (inputs `(("gnumach-headers" ,gnumach-headers) @@ -97,14 +97,14 @@ communication.") (define-public hurd-headers (package (name "hurd-headers") - (version "0.6") + (version "0.7") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/hurd/hurd-" version ".tar.gz")) (sha256 (base32 - "059lbspbpcjpcq5jf98f47jw9sm0ngs3x6phxax53m3rwca1fk7y")))) + "1q2pyc16vb5plqi8hlwnnc9jk8zlifm91cavz6x7vhbwy0nh2yvh")))) (build-system gnu-build-system) (native-inputs `(;; Autoconf shouldn't be necessary but there seems to be a bug in the @@ -182,6 +182,6 @@ Library and other user programs.") (home-page "http://www.gnu.org/software/hurd/hurd.html") (synopsis "GNU Hurd libraries") (description - "This package provides libihash, needed to build the GNU C + "This package provides libihash, needed to build the GNU C Library for GNU/Hurd.") (license gpl2+))) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 58338af5c6..f3f89f6be6 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com> ;;; Copyright © 2014 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> +;;; Copyright © 2015 Amirouche Boubekki <amirouche@hypermove.net> ;;; Copyright © 2014 John Darrington <jmd@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -49,7 +50,7 @@ (define-public libpng (package (name "libpng") - (version "1.5.21") + (version "1.5.24") (source (origin (method url-fetch) @@ -60,7 +61,7 @@ "ftp://ftp.simplesystems.org/pub/libpng/png/src" "/libpng15/libpng-" version ".tar.xz"))) (sha256 - (base32 "19yvzw6sf9gf7v25ha9bla8bw1nijh82wj8ag6brjj3hpij1q5dm")))) + (base32 "1qhvfk1ypsaf6q6xkspyqqzmghpbahhq54ms8fa5ssqkyds38bmr")))) (build-system gnu-build-system) ;; libpng.la says "-lz", so propagate it. @@ -104,6 +105,29 @@ image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats.") (sha256 (base32 "1cz0dy05mgxqdgjf52p54yxpyy95rgl30cnazdrfmw7hfca9n0h0")))))) +(define-public jpegoptim + (package + (name "jpegoptim") + (version "1.4.3") + (source (origin + (method url-fetch) + (uri (string-append "http://www.kokkonen.net/tjko/src/jpegoptim-" + version ".tar.gz")) + (sha256 (base32 + "0k53q7dc8w5ashz8v261x2b5vvz7gdvg8w962rz9gjvkjbh4lg93")))) + (build-system gnu-build-system) + (inputs `(("libjpeg" ,libjpeg))) + (arguments + ;; no tests + '(#:tests? #f)) + (synopsis "Optimize JPEG images") + (description + "jpegoptim provides lossless optimization (based on optimizing +the Huffman tables) and \"lossy\" optimization based on setting +maximum quality factor.") + (license license:gpl2+) + (home-page "http://www.kokkonen.net/tjko/projects.html#jpegoptim"))) + (define-public libtiff (package (name "libtiff") @@ -184,14 +208,14 @@ the W3C's XML-based Scaleable Vector Graphic (SVG) format.") (define-public leptonica (package (name "leptonica") - (version "1.71") + (version "1.72") (source (origin (method url-fetch) (uri (string-append "http://www.leptonica.com/source/leptonica-" version ".tar.gz")) (sha256 - (base32 "0j5qgrff6im5n9waflbi7w643q1p6mahyf2z35gb4vj9h5p76pfc")) + (base32 "0mhzvqs0im04y1cpcc1yma70hgdac1frf33h73m9z3356bfymmbr")) (modules '((guix build utils))) ;; zlib and openjpg should be under Libs, not Libs.private. See: ;; https://code.google.com/p/tesseract-ocr/issues/detail?id=1436 @@ -216,7 +240,8 @@ the W3C's XML-based Scaleable Vector Graphic (SVG) format.") `(("openjpeg" ,openjpeg) ("zlib" ,zlib))) (arguments - '(#:phases + '(#:parallel-tests? #f ; XXX: cause fpix1_reg to fail + #:phases (modify-phases %standard-phases ;; Prevent make from trying to regenerate config.h.in. (add-after @@ -228,7 +253,15 @@ the W3C's XML-based Scaleable Vector Graphic (SVG) format.") (lambda _ (substitute* "prog/reg_wrapper.sh" ((" /bin/sh ") - (string-append " " (which "sh") " ")))))))) + (string-append " " (which "sh") " ")) + (("which gnuplot") (which "gnuplot"))))) + (add-before + 'check 'disable-failing-tests + ;; XXX: 2 of 9 tests from webpio_reg fails. + (lambda _ + (substitute* "prog/webpio_reg.c" + ((".*DoWebpTest2.* 90.*") "") + ((".*DoWebpTest2.* 100.*") ""))))))) (home-page "http://www.leptonica.com/") (synopsis "Library and tools for image processing and analysis") (description @@ -337,14 +370,14 @@ error-resilience, a Java-viewer for j2k-images, ...") (define-public giflib (package (name "giflib") - (version "4.2.3") + (version "5.1.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/giflib/giflib-" (first (string-split version #\.)) ".x/giflib-" version ".tar.bz2")) (sha256 - (base32 "0rmp7ipzk42r841bggd7bfqk4p8qsssbp4wcck4qnz7p4rkxbj0a")))) + (base32 "1z1gzq16sdya8xnl5qjc07634kkwj5m0n3bvvj4v9j11xfn1841r")))) (build-system gnu-build-system) (outputs '("bin" ; utility programs "out")) ; library @@ -618,3 +651,77 @@ channels.") (description "Libmng is the MNG (Multiple-image Network Graphics) reference library.") (license license:bsd-3))) + +(define-public devil + (package + (name "devil") + (version "1.7.8") + (source (origin + (method url-fetch) + (uri (string-append "http://downloads.sourceforge.net/openil/" + "DevIL-" version ".tar.gz")) + (sha256 + (base32 + "1zd850nn7nvkkhasrv7kn17kzgslr5ry933v6db62s4lr0zzlbv8")) + ;; Backported from upstream: + ;; https://github.com/DentonW/DevIL/commit/724194d7a9a91221a564579f64bdd6f0abd64219.patch + (patches (list (search-patch "devil-fix-libpng.patch"))) + (modules '((guix build utils))) + (snippet + ;; Fix old lcms include directives and lib flags. + '(substitute* '("configure" "src-IL/src/il_profiles.c") + (("-llcms") "-llcms2") + (("lcms/lcms\\.h") "lcms2/lcms2.h") + (("lcms\\.h") "lcms2.h"))))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--enable-ILUT=yes") ; build utility library + #:phases + (modify-phases %standard-phases + (add-before 'check 'fix-tests + (lambda* (#:key inputs #:allow-other-keys) + ;; Fix hard-coded /bin/bash reference. + (substitute* '("test/Makefile") + (("TESTS_ENVIRONMENT = /bin/bash") + (string-append "TESTS_ENVIRONMENT = " + (assoc-ref inputs "bash") + "/bin/bash"))) + #t))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("lcms" ,lcms) + ("libjpeg" ,libjpeg) + ("libmng" ,libmng) + ("libpng" ,libpng) + ("libtiff" ,libtiff) + ("openexr" ,openexr) + ("zlib" ,zlib))) + (synopsis "Library for manipulating many image formats") + (description "Developer's Image Library (DevIL) is a library to develop +applications with support for many types of images. DevIL can load, save, +convert, manipulate, filter and display a wide variety of image formats.") + (home-page "http://openil.sourceforge.net") + (license license:lgpl2.1+))) + +(define-public jasper + (package + (name "jasper") + (version "1.900.1") + (source (origin + (method url-fetch) + (uri (string-append "https://www.ece.uvic.ca/~frodo/jasper" + "/software/jasper-" version ".zip")) + (sha256 + (base32 + "154l7zk7yh3v8l2l6zm5s2alvd2fzkp6c9i18iajfbna5af5m43b")) + (patches (list (search-patch "jasper-CVE-2008-3522.patch"))))) + (build-system gnu-build-system) + (native-inputs + `(("unzip" ,unzip))) + (synopsis "JPEG-2000 library") + (description "The JasPer Project is an initiative to provide a reference +implementation of the codec specified in the JPEG-2000 Part-1 standard (i.e., +ISO/IEC 15444-1).") + (home-page "https://www.ece.uvic.ca/~frodo/jasper/") + (license (license:x11-style "file://LICENSE")))) diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index f154e19d35..a68e9aa159 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,7 +23,8 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system perl) #:use-module (guix download) - #:use-module ((guix licenses) #:select (fsf-free)) + #:use-module (guix utils) + #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages compression) @@ -104,7 +106,7 @@ including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.") - (license (fsf-free "http://www.imagemagick.org/script/license.php")))) + (license (license:fsf-free "http://www.imagemagick.org/script/license.php")))) (define-public perl-image-magick (package @@ -149,3 +151,50 @@ Use it to create, edit, compose, or convert bitmap images from within a Perl script.") ;; See Magick.pm (license (package-license imagemagick)))) + +(define-public graphicsmagick + (package + (name "graphicsmagick") + (version "1.3.23") + (source (origin + (method url-fetch) + (uri (string-append "ftp://ftp.graphicsmagick.org/pub/" + "GraphicsMagick/" (version-major+minor version) + "/GraphicsMagick-" version ".tar.xz")) + (sha256 + (base32 + "03g6l2h8cmf231y1vma0z7x85070jm1ysgs9ppqcd3jj56jka9gx")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--with-frozenpaths" + "--enable-shared=yes" + "--with-x=yes" + (string-append "--with-gs-font-dir=" + (assoc-ref %build-inputs "gs-fonts") + "/share/fonts/type1/ghostscript")))) + (inputs + `(("graphviz" ,graphviz) + ("ghostscript" ,ghostscript) + ("gs-fonts" ,gs-fonts) + ("lcms" ,lcms) + ("libx11" ,libx11) + ("libxml2" ,libxml2) + ("libtiff" ,libtiff) + ("libpng" ,libpng) + ("libjpeg" ,libjpeg) + ("freetype" ,freetype) + ("bzip2" ,bzip2) + ("xz" ,xz) + ("zlib" ,zlib))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (outputs '("out" ; 13 MiB + "doc")) ; ~7 MiB + (home-page "http://www.graphicsmagick.org") + (synopsis "Create, edit, compose, or convert bitmap images") + (description + "GraphicsMagick provides a comprehensive collection of utilities, +programming interfaces, and GUIs, to support file format conversion, image +processing, and 2D vector rendering.") + (license license:expat))) diff --git a/gnu/packages/inklingreader.scm b/gnu/packages/inklingreader.scm new file mode 100644 index 0000000000..6cdc4b3330 --- /dev/null +++ b/gnu/packages/inklingreader.scm @@ -0,0 +1,59 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Roel Janssen <roel@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 inklingreader) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages autotools) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gtk) + #:use-module (gnu packages libusb) + #:use-module (gnu packages pkg-config)) + +(define-public inklingreader + (package + (name "inklingreader") + (version "0.8") + (source (origin + (method url-fetch) + (uri (string-append + "ftp://alpha.gnu.org/gnu/inklingreader/inklingreader-" + version ".tar.gz")) + (sha256 + (base32 + "0ikg95mgwfqh0bq4dzvkfmdiycacqvv27g91hl6adwk5y3gzl96g")))) + (build-system gnu-build-system) + (inputs + `(("glib" ,glib) + ("cairo" ,cairo) + ("gtk+" ,gtk+) + ("librsvg" ,librsvg) + ("libusb" ,libusb))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://www.gnu.org/software/inklingreader/") + (synopsis "Wacom Inkling sketch format conversion and manipulation") + (description + "GNU InklingReader is a package to support the Wacom Inkling device, +including data conversion to various free formats, basic editing features, +and an Inkscape plugin.") + (license license:gpl3+))) diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm index 76102fab05..b09e84ee08 100644 --- a/gnu/packages/inkscape.scm +++ b/gnu/packages/inkscape.scm @@ -74,7 +74,11 @@ ("perl" ,perl) ("pkg-config" ,pkg-config))) (arguments - `(#:phases (alist-cons-after + `(;; Add '-std=c++11', required by recent versions of GLibmm & co. + ;; Use '-g0' to reduce disk usage during the build. + #:configure-flags '("CXXFLAGS=-g0 -O2 -fopenmp -std=c++11") + + #:phases (alist-cons-after 'unpack 'fix-test-includes (lambda _ (substitute* "src/cxxtests.cpp" diff --git a/gnu/packages/irssi.scm b/gnu/packages/irssi.scm index c97fd07e05..44bc6bd3a2 100644 --- a/gnu/packages/irssi.scm +++ b/gnu/packages/irssi.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,7 +18,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages irssi) - #:use-module (guix licenses) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) @@ -25,19 +26,20 @@ #:use-module (gnu packages glib) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) - #:use-module (gnu packages pkg-config)) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages tls)) (define-public irssi (package (name "irssi") - (version "0.8.15") + (version "0.8.17") (source (origin (method url-fetch) (uri (string-append "http://www.irssi.org/files/irssi-" version ".tar.bz2")) (sha256 (base32 - "19m0aah9bhc70dnhh7kpydbsz5n35l0l9knxav1df0sic3xicbf1")))) + "01v82q2pfiimx6lh271kdvgp8hl4pahc3srg04fqzxgdsb5015iw")))) (build-system gnu-build-system) (arguments `(#:phases @@ -54,7 +56,8 @@ %standard-phases))) (inputs `(("glib" ,glib) - ("ncurses" ,ncurses))) + ("ncurses" ,ncurses) + ("openssl" ,openssl))) (native-inputs `(("pkg-config" ,pkg-config) ("perl" ,perl))) @@ -63,4 +66,4 @@ (description "Irssi is a terminal based IRC client for UNIX systems. It also supports SILC and ICB protocols via plugins.") - (license gpl2+))) + (license license:gpl2+))) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 5fa546a98c..f00a3d720c 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -135,7 +135,7 @@ is implemented.") (define-public ant (package (name "ant") - (version "1.9.4") + (version "1.9.6") (source (origin (method url-fetch) (uri (string-append @@ -143,7 +143,7 @@ is implemented.") version "-src.tar.gz")) (sha256 (base32 - "09kf5s1ir0rdrclsy174bsvbdcbajza9fja490w4mmvcpkw3zpak")))) + "1396wflczyxjxl603dhxjvd559f289lha9y2f04f71c7hapjl3am")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target @@ -576,7 +576,7 @@ build process and its dependencies, whereas Make uses Makefile format.") (license license:gpl2+))) (define-public icedtea7 - (let* ((version "2.6.1") + (let* ((version "2.6.2") (drop (lambda (name hash) (origin (method url-fetch) @@ -594,7 +594,7 @@ build process and its dependencies, whereas Make uses Makefile format.") version ".tar.xz")) (sha256 (base32 - "0s107vi1530a5dyxacysc4m64zshgg2d3xpndsc0ws99wz0zmr6c")) + "0xi0w8gpxx3r68hyi7fb991hxb3rqfp7895nfsl4wj3sa1f5ds5y")) (modules '((guix build utils))) (snippet '(substitute* "Makefile.in" @@ -728,24 +728,24 @@ build process and its dependencies, whereas Make uses Makefile format.") (native-inputs `(("openjdk-drop" ,(drop "openjdk" - "0gs6vbj5c09516r460r68i7vm652sb25h973kq9hfx749qbs0s01")) + "0jabxc8iw7ciz6f2qshcpla66qniy686vnxnfx3h2yw7syvas4a9")) ("corba-drop" ,(drop "corba" - "1y7nf6hqry1az28i3b6ln5cs82cww1jj4r61jk54ab8s2xydj0yd")) + "1bw22djg8mfqqn8kp8mpbj9vi4pl8dk67qwwrny67d0fvirixylj")) ("jaxp-drop" ,(drop "jaxp" - "1szs2w0p496k1qi3yl1fymj0g10lgq31am35zlalcz7pi4l4q360")) + "1h3g2dwbj8ihicl73qbr4cvvc3i5bs5ckrpja1nx6g5b56xa7kcl")) ("jaxws-drop" ,(drop "jaxws" - "17xfy9q2zdpap7m2prbf937x55jm3pwrqpp1fdlridraqrfzjprd")) + "1m1h7455qn4pdhb5yamdl9965iz9260lzwl3njcs35vi14v7fihl")) ("jdk-drop" ,(drop "jdk" - "0qskhwr4nml49zhbppnq8ldj0x001bl37mrcpxslbnsdw5skw258")) + "1wcaxf2chnlpk34q04c23im6z32dy8fr6f9giz3ih65nyvah3n3s")) ("langtools-drop" ,(drop "langtools" - "0hyxrrb0zrx1pq1s90bmim94hwfligr0ajzs1874da4gclbbvfbd")) + "0da3cmm8nwz7dk2sqnywvidaa0kjnyzzi33p2lkdi4415f8yhgx5")) ("hotspot-drop" ,(drop "hotspot" - "1cv8df2s89mnjzg4rja4i89d4fr8n0c3v5y2cqbww1ma1463n100")) + "0fn3cjhqsgbkfzychkvvw6whxil2n9dr6q0196ywxzkinny1hjcq")) ,@(fold alist-delete (package-native-inputs icedtea6) '("openjdk6-src"))))))) diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm new file mode 100644 index 0000000000..f0c372bc29 --- /dev/null +++ b/gnu/packages/kodi.scm @@ -0,0 +1,223 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 David Thompson <davet@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 kodi) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages algebra) + #:use-module (gnu packages audio) + #:use-module (gnu packages autotools) + #:use-module (gnu packages avahi) + #:use-module (gnu packages base) + #:use-module (gnu packages boost) + #:use-module (gnu packages cdrom) + #:use-module (gnu packages cmake) + #:use-module (gnu packages compression) + #:use-module (gnu packages curl) + #:use-module (gnu packages databases) + #:use-module (gnu packages doxygen) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages fribidi) + #:use-module (gnu packages gettext) + #:use-module (gnu packages ghostscript) + #:use-module (gnu packages gawk) + #:use-module (gnu packages gl) + #:use-module (gnu packages glib) + #:use-module (gnu packages gperf) + #:use-module (gnu packages gnunet) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages image) + #:use-module (gnu packages java) + #:use-module (gnu packages libusb) + #:use-module (gnu packages linux) + #:use-module (gnu packages mp3) + #:use-module (gnu packages pcre) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages python) + #:use-module (gnu packages samba) + #:use-module (gnu packages sdl) + #:use-module (gnu packages ssh) + #:use-module (gnu packages swig) + #:use-module (gnu packages textutils) + #:use-module (gnu packages tls) + #:use-module (gnu packages video) + #:use-module (gnu packages web) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xiph) + #:use-module (gnu packages xml) + #:use-module (gnu packages xorg) + #:use-module (gnu packages yasm) + #:use-module (gnu packages zip)) + +(define-public kodi + (package + (name "kodi") + (version "15.2") + (source (origin + (method url-fetch) + (uri (string-append "http://mirrors.kodi.tv/releases/source/" + version "-Isengard.tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "043i0f1crx9glwxil4xm45z5kxpkrx316gi4ir4d3rbd5safp2nx")) + (snippet + ;; Delete bundled ffmpeg. + ;; TODO: Delete every other bundled library. + '(begin + (use-modules (guix build utils)) + (delete-file-recursively "tools/depends/target/ffmpeg"))) + (modules '((guix build utils))))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--with-ffmpeg=shared") ; don't use bundled ffmpeg + #:phases + (modify-phases %standard-phases + ;; JsonSchemaBuilder is a small tool needed by the build system that + ;; comes bundled with the source. The build system tries to build it + ;; during the bootstrapping phase, which causes serious issues + ;; because there's no time for shebangs to be patched. So, we + ;; bootstrap it on our own instead. + (add-after 'unpack 'bootstrap-jsonschemabuilder + (lambda* (#:key inputs #:allow-other-keys) + (let ((dir "tools/depends/native/JsonSchemaBuilder/src")) + (with-directory-excursion dir + (zero? (system* "sh" "autogen.sh")))))) + ;; Now we can do the regular bootstrapping process, but only after + ;; the first round of shebang patching. We must repeat the patching + ;; after bootstrapping so that all of the files generated by the + ;; Autotools et al. are patched appropriately. + (add-after 'patch-source-shebangs 'bootstrap + (lambda* (#:key inputs #:allow-other-keys) + ;; We bootstrapped JsonSchemaBuilder in the previous phase, so we + ;; need to make sure it isn't done a second time. Otherwise, it + ;; would undo the shebang patching that we worked so hard for. + (substitute* '("tools/depends/native/JsonSchemaBuilder/Makefile") + (("\\./autogen\\.sh") "")) + ;; This essentially does what their 'bootstrap' script does, but + ;; additionally passes the correct CONFIG_SHELL. + (let ((bash (string-append (assoc-ref inputs "bash") "/bin/sh"))) + (define (run-make makefile) + (zero? (system* "make" "-f" makefile + "BOOTSTRAP_STANDALONE=1" + (string-append "CONFIG_SHELL=" bash)))) + (and (run-make "bootstrap.mk") + (run-make "codegenerator.mk"))))) + (add-after 'bootstrap 'patch-source-shebangs-again + (assoc-ref %standard-phases 'patch-source-shebangs)) + ;; 3 tests fail that appear harmless, so we disable them. + (add-before 'check 'disable-some-tests + (lambda _ + (substitute* '("xbmc/utils/test/TestSystemInfo.cpp") + (("TEST_F\\(TestSystemInfo, GetOsPrettyNameWithVersion\\)") + "TEST_F(TestSystemInfo, DISABLED_GetOsPrettyNameWithVersion)") + (("TEST_F\\(TestSystemInfo, GetOsName\\)") + "TEST_F(TestSystemInfo, DISABLED_GetOsName)") + (("TEST_F\\(TestSystemInfo, GetOsVersion\\)") + "TEST_F(TestSystemInfo, DISABLED_GetOsVersion)"))))))) + ;; TODO: Add dependencies for: + ;; - vdpau + ;; - nfs + ;; + ;; FIXME: libusb detection fails. + ;; + ;; FIXME: As you can see, we use a lot of external libraries, but it seems + ;; that a few bundled ones are still being used. + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("cmake" ,cmake) + ("doxygen" ,doxygen) + ("gawk" ,gawk) + ("gettext" ,gnu-gettext) + ("icedtea7" ,icedtea7) ; needed at build-time only, mandatory + ("libtool" ,libtool) + ("pkg-config" ,pkg-config) + ("swig" ,swig) + ("which" ,which) + ("yasm" ,yasm))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("avahi" ,avahi) + ("bluez" ,bluez) + ("boost" ,boost) + ("bzip2" ,bzip2) + ("curl" ,curl) + ("dbus" ,dbus) + ("enca" ,enca) + ("eudev" ,eudev) + ("ffmpeg" ,ffmpeg) + ("flac" ,flac) + ("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("fribidi" ,fribidi) + ("glew" ,glew) + ("gnutls" ,gnutls) + ("gperf" ,gperf) + ("jasper" ,jasper) + ("lame" ,lame) + ("libass" ,libass) + ("libbluray" ,libbluray) + ("libcap" ,libcap) + ("libcdio" ,libcdio) + ("libgcrypt" ,libgcrypt) + ("libjpeg" ,libjpeg) + ("libltdl" ,libltdl) + ("libmad" ,libmad) + ("libmicrohttpd" ,libmicrohttpd) + ("libmodplug" ,libmodplug) + ("libmpeg2" ,libmpeg2) + ("libogg" ,libogg) + ("libpng" ,libpng) + ("libsamplerate" ,libsamplerate) + ("libssh" ,libssh) + ("libtiff" ,libtiff) + ("libva" ,libva) + ("libvorbis" ,libvorbis) + ("libxml2" ,libxml2) + ("libxmu" ,libxmu) + ("libxrandr" ,libxrandr) + ("libxrender" ,libxrender) + ("libxslt" ,libxslt) + ("libxt" ,libxt) + ("libyajl" ,libyajl) + ("lzo" ,lzo) + ("mesa-utils" ,mesa-utils) + ("mysql" ,mysql) + ("openssl" ,openssl) + ("pcre" ,pcre) + ("pulseaudio" ,pulseaudio) + ("python" ,python-2) + ("samba" ,samba) + ("sdl2" ,sdl2) + ("sqlite" ,sqlite) + ("taglib" ,taglib) + ("tinyxml" ,tinyxml) + ("unzip" ,unzip) + ("zip" ,zip) + ("zlib" ,zlib))) + (synopsis "Media center for home theater computers") + (description "Kodi is a media center application for playing videos, +music, games, etc. Kodi is highly customizable and features a theme and +plug-in system.") + (home-page "http://kodi.tv") + (license license:gpl2+))) diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index da7e275e55..7496a6c8b9 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -676,7 +676,7 @@ and to return information on pronunciations, meanings and synonyms.") (define-public libreoffice (package (name "libreoffice") - (version "5.0.0.2") + (version "5.0.3.2") (source (origin (method url-fetch) @@ -685,7 +685,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 - "0mzvxc4i5999xzmhgwrfvpvyx5772jylx5mary86drrld8klq7py")))) + "1gflcsnw7bx02jbb2x5darf56x0qgia03ylaycadk68ikibckybp")))) (build-system gnu-build-system) (native-inputs `(;; autoreconf is run by the LibreOffice build system, since after diff --git a/gnu/packages/links.scm b/gnu/packages/links.scm index 04abf06991..41fac8c305 100644 --- a/gnu/packages/links.scm +++ b/gnu/packages/links.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright 2014 John Darrington <jmd@gnu.org> +;;; Copyright © 2014 John Darrington <jmd@gnu.org> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,6 +24,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages pkg-config) #:use-module (gnu packages image) + #:use-module (gnu packages libevent) #:use-module (gnu packages tls) #:use-module (gnu packages xorg) #:use-module (guix download) @@ -31,21 +33,21 @@ (define-public links (package (name "links") - (version "2.8") + (version "2.12") (source (origin (method url-fetch) (uri (string-append "http://links.twibright.com/download/" name "-" version ".tar.bz2")) (sha256 - (base32 "15h07498z52jfdahzgvkphg1f7qvxnpbyfn2xmsls0d2dwwdll3r")))) + (base32 "0knq15yrp60s4jh92aacw8yfc2pcv3bqsw7dba7h5s6ivq8ihhcq")))) (build-system gnu-build-system) (arguments `(#:phases (alist-replace 'configure (lambda* (#:key outputs #:allow-other-keys) - ;; The tarball uses a very old version of autconf. It doesn't understand - ;; extra flags like `--enable-fast-install', so we need to - ;; invoke it with just what it understand. + ;; The tarball uses a very old version of autconf. It doesn't + ;; understand extra flags like `--enable-fast-install', so + ;; we need to invoke it with just what it understands. (let ((out (assoc-ref outputs "out"))) ;; 'configure' doesn't understand '--host'. ,@(if (%current-target-system) @@ -55,28 +57,25 @@ (zero? (system* "./configure" (string-append "--prefix=" out) - "--enable-graphics" - )))) + "--enable-graphics")))) %standard-phases))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("zlib" ,zlib) ("openssl" ,openssl) ("libjpeg" ,libjpeg) ("libtiff" ,libtiff) + ("libevent" ,libevent) ("libpng" ,libpng) ("libxt" ,libxt))) (synopsis "Text and graphics mode web browser") (description "Links is a graphics and text mode web browser, with many features including, tables, builtin image display, bookmarks, SSL and more.") (home-page "http://links.twibright.com") - ;; The distribution contains a copy of GPLv2 - ;; However, the copyright notices simply say: + ;; The distribution contains a copy of GPLv2 + ;; However, the copyright notices simply say: ;; "This file is a part of the Links program, released under GPL." ;; Therefore, under the provisions of Section 9, we can choose - ;; any version ever published by the FSF - ;; One file (https.c) contains an exception permitting - ;; linking of the program with openssl - (license license:gpl1+))) - - - + ;; any version ever published by the FSF. + ;; One file (https.c) contains an exception permitting + ;; linking of the program with openssl. + (license license:gpl1+))) diff --git a/gnu/packages/linux-libre-i686.conf b/gnu/packages/linux-libre-i686.conf index 7b17f7b7c3..aae4dfe61c 100644 --- a/gnu/packages/linux-libre-i686.conf +++ b/gnu/packages/linux-libre-i686.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.2.0-gnu Kernel Configuration +# Linux/x86 4.3.0-gnu Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -131,16 +131,17 @@ CONFIG_SRCU=y # CONFIG_TASKS_RCU is not set CONFIG_RCU_STALL_COMMON=y # CONFIG_TREE_RCU_TRACE is not set -# CONFIG_RCU_NOCB_CPU is not set # CONFIG_RCU_EXPEDITE_BOOT is not set CONFIG_BUILD_BIN2C=y # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=17 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y +CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_CGROUPS=y # CONFIG_CGROUP_DEBUG is not set CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_PIDS=y CONFIG_CGROUP_DEVICE=y CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y @@ -206,7 +207,9 @@ CONFIG_BPF_SYSCALL=y CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_ADVISE_SYSCALLS=y +CONFIG_USERFAULTFD=y CONFIG_PCI_QUIRKS=y +CONFIG_MEMBARRIER=y # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y @@ -222,15 +225,17 @@ CONFIG_SLUB_DEBUG=y CONFIG_SLUB=y # CONFIG_SLOB is not set CONFIG_SLUB_CPU_PARTIAL=y -CONFIG_SYSTEM_TRUSTED_KEYRING=y +# CONFIG_SYSTEM_DATA_VERIFICATION is not set CONFIG_PROFILING=y CONFIG_TRACEPOINTS=y +CONFIG_KEXEC_CORE=y CONFIG_OPROFILE=m # CONFIG_OPROFILE_EVENT_MULTIPLEX is not set CONFIG_HAVE_OPROFILE=y CONFIG_OPROFILE_NMI_TIMER=y CONFIG_KPROBES=y CONFIG_JUMP_LABEL=y +# CONFIG_STATIC_KEYS_SELFTEST is not set CONFIG_OPTPROBES=y CONFIG_KPROBES_ON_FTRACE=y CONFIG_UPROBES=y @@ -297,6 +302,11 @@ CONFIG_MODULE_UNLOAD=y CONFIG_MODVERSIONS=y CONFIG_MODULE_SRCVERSION_ALL=y # CONFIG_MODULE_SIG is not set +# CONFIG_MODULE_SIG_SHA1 is not set +# CONFIG_MODULE_SIG_SHA224 is not set +# CONFIG_MODULE_SIG_SHA256 is not set +# CONFIG_MODULE_SIG_SHA384 is not set +# CONFIG_MODULE_SIG_SHA512 is not set # CONFIG_MODULE_COMPRESS is not set CONFIG_MODULES_TREE_LOOKUP=y CONFIG_STOP_MACHINE=y @@ -389,7 +399,6 @@ CONFIG_PARAVIRT_SPINLOCKS=y CONFIG_XEN=y CONFIG_XEN_DOM0=y CONFIG_XEN_PVHVM=y -CONFIG_XEN_MAX_DOMAIN_MEMORY=64 CONFIG_XEN_SAVE_RESTORE=y # CONFIG_XEN_DEBUG_FS is not set CONFIG_KVM_GUEST=y @@ -462,7 +471,8 @@ CONFIG_X86_MCE_AMD=y CONFIG_X86_MCE_THRESHOLD=y CONFIG_X86_MCE_INJECT=m CONFIG_X86_THERMAL_VECTOR=y -CONFIG_VM86=y +# CONFIG_X86_LEGACY_VM86 is not set +# CONFIG_VM86 is not set CONFIG_X86_16BIT=y CONFIG_X86_ESPFIX32=y # CONFIG_TOSHIBA is not set @@ -538,6 +548,9 @@ CONFIG_PGTABLE_MAPPING=y CONFIG_GENERIC_EARLY_IOREMAP=y CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set +CONFIG_IDLE_PAGE_TRACKING=y +CONFIG_FRAME_VECTOR=y +CONFIG_X86_PMEM_LEGACY_DEVICE=y CONFIG_X86_PMEM_LEGACY=y CONFIG_HIGHPTE=y CONFIG_X86_CHECK_BIOS_CORRUPTION=y @@ -552,7 +565,7 @@ CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y CONFIG_X86_SMAP=y -# CONFIG_X86_INTEL_MPX is not set +CONFIG_X86_INTEL_MPX=y CONFIG_EFI=y CONFIG_EFI_STUB=y CONFIG_SECCOMP=y @@ -576,6 +589,7 @@ CONFIG_HOTPLUG_CPU=y # CONFIG_DEBUG_HOTPLUG_CPU0 is not set # CONFIG_COMPAT_VDSO is not set # CONFIG_CMDLINE_BOOL is not set +CONFIG_MODIFY_LDT_SYSCALL=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y @@ -584,6 +598,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y # CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y +# CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_HIBERNATE_CALLBACKS=y CONFIG_HIBERNATION=y CONFIG_PM_STD_PARTITION="" @@ -617,6 +632,8 @@ CONFIG_ACPI_BUTTON=y CONFIG_ACPI_VIDEO=m CONFIG_ACPI_FAN=y CONFIG_ACPI_DOCK=y +CONFIG_ACPI_CPU_FREQ_PSS=y +CONFIG_ACPI_PROCESSOR_IDLE=y CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_IPMI=m CONFIG_ACPI_HOTPLUG_CPU=y @@ -872,7 +889,6 @@ CONFIG_NET_IPVTI=m CONFIG_NET_UDP_TUNNEL=m CONFIG_NET_FOU=m CONFIG_NET_FOU_IP_TUNNELS=y -CONFIG_GENEVE_CORE=m CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m @@ -912,6 +928,7 @@ CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m CONFIG_IPV6_MIP6=m +CONFIG_IPV6_ILA=m CONFIG_INET6_XFRM_TUNNEL=m CONFIG_INET6_TUNNEL=m CONFIG_INET6_XFRM_MODE_TRANSPORT=m @@ -1133,6 +1150,7 @@ CONFIG_IP_VS_WRR=m CONFIG_IP_VS_LC=m CONFIG_IP_VS_WLC=m CONFIG_IP_VS_FO=m +CONFIG_IP_VS_OVF=m CONFIG_IP_VS_LBLC=m CONFIG_IP_VS_LBLCR=m CONFIG_IP_VS_DH=m @@ -1160,7 +1178,9 @@ CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_TABLES_IPV4=m CONFIG_NFT_CHAIN_ROUTE_IPV4=m CONFIG_NFT_REJECT_IPV4=m +CONFIG_NFT_DUP_IPV4=m CONFIG_NF_TABLES_ARP=m +CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m @@ -1203,6 +1223,8 @@ CONFIG_NF_CONNTRACK_IPV6=m CONFIG_NF_TABLES_IPV6=m CONFIG_NFT_CHAIN_ROUTE_IPV6=m CONFIG_NFT_REJECT_IPV6=m +CONFIG_NFT_DUP_IPV6=m +CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m CONFIG_NF_NAT_IPV6=m @@ -1433,6 +1455,7 @@ CONFIG_NETLINK_DIAG=m CONFIG_MPLS=y CONFIG_NET_MPLS_GSO=m CONFIG_MPLS_ROUTING=m +CONFIG_MPLS_IPTUNNEL=m CONFIG_HSR=m # CONFIG_NET_SWITCHDEV is not set CONFIG_RPS=y @@ -1591,6 +1614,7 @@ CONFIG_BT_BNEP_MC_FILTER=y CONFIG_BT_BNEP_PROTO_FILTER=y CONFIG_BT_CMTP=m CONFIG_BT_HIDP=m +CONFIG_BT_HS=y CONFIG_BT_LE=y CONFIG_BT_6LOWPAN=m # CONFIG_BT_SELFTEST is not set @@ -1602,6 +1626,7 @@ CONFIG_BT_DEBUGFS=y CONFIG_BT_INTEL=m CONFIG_BT_BCM=m CONFIG_BT_RTL=m +CONFIG_BT_QCA=m CONFIG_BT_HCIBTUSB=m CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB_RTL=y @@ -1614,6 +1639,7 @@ CONFIG_BT_HCIUART_LL=y CONFIG_BT_HCIUART_3WIRE=y CONFIG_BT_HCIUART_INTEL=y CONFIG_BT_HCIUART_BCM=y +CONFIG_BT_HCIUART_QCA=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m @@ -1712,8 +1738,12 @@ CONFIG_NFC_ST21NFCA=m CONFIG_NFC_ST21NFCA_I2C=m CONFIG_NFC_ST_NCI=m CONFIG_NFC_ST_NCI_I2C=m +CONFIG_NFC_ST_NCI_SPI=m CONFIG_NFC_NXP_NCI=m CONFIG_NFC_NXP_NCI_I2C=m +CONFIG_NFC_S3FWRN5=m +CONFIG_NFC_S3FWRN5_I2C=m +CONFIG_LWTUNNEL=y # # Device Drivers @@ -2073,6 +2103,7 @@ CONFIG_VMWARE_VMCI=m CONFIG_ECHO=m # CONFIG_CXL_BASE is not set # CONFIG_CXL_KERNEL_API is not set +# CONFIG_CXL_EEH is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set @@ -2213,6 +2244,7 @@ CONFIG_SCSI_PAS16=m CONFIG_SCSI_QLOGIC_FAS=m CONFIG_SCSI_QLOGIC_1280=m CONFIG_SCSI_QLA_FC=m +CONFIG_TCM_QLA2XXX=m CONFIG_SCSI_QLA_ISCSI=m CONFIG_SCSI_LPFC=m # CONFIG_SCSI_LPFC_DEBUG_FS is not set @@ -2240,7 +2272,7 @@ CONFIG_PCMCIA_FDOMAIN=m CONFIG_PCMCIA_NINJA_SCSI=m CONFIG_PCMCIA_QLOGIC=m CONFIG_PCMCIA_SYM53C500=m -CONFIG_SCSI_DH=m +CONFIG_SCSI_DH=y CONFIG_SCSI_DH_RDAC=m CONFIG_SCSI_DH_HP_SW=m CONFIG_SCSI_DH_EMC=m @@ -2454,6 +2486,7 @@ CONFIG_TUN=y CONFIG_VETH=m CONFIG_VIRTIO_NET=y CONFIG_NLMON=m +CONFIG_NET_VRF=m CONFIG_SUNGEM_PHY=m CONFIG_ARCNET=m CONFIG_ARCNET_1201=m @@ -2560,9 +2593,10 @@ CONFIG_CNIC=m CONFIG_TIGON3=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y +CONFIG_BNX2X_VXLAN=y CONFIG_NET_VENDOR_BROCADE=y CONFIG_BNA=m -CONFIG_NET_VENDOR_CAVIUM=m +CONFIG_NET_VENDOR_CAVIUM=y CONFIG_NET_VENDOR_CHELSIO=y CONFIG_CHELSIO_T1=m CONFIG_CHELSIO_T1_1G=y @@ -2614,13 +2648,11 @@ CONFIG_E1000=m CONFIG_E1000E=m CONFIG_IGB=m CONFIG_IGB_HWMON=y -CONFIG_IGB_DCA=y CONFIG_IGBVF=m CONFIG_IXGB=m CONFIG_IXGBE=m CONFIG_IXGBE_VXLAN=y CONFIG_IXGBE_HWMON=y -CONFIG_IXGBE_DCA=y CONFIG_IXGBE_DCB=y CONFIG_IXGBEVF=m CONFIG_I40E=m @@ -2648,6 +2680,8 @@ CONFIG_MLX4_CORE=m CONFIG_MLX4_DEBUG=y CONFIG_MLX5_CORE=m CONFIG_MLX5_CORE_EN=y +CONFIG_MLXSW_CORE=m +CONFIG_MLXSW_PCI=m CONFIG_NET_VENDOR_MICREL=y CONFIG_KS8842=m CONFIG_KS8851=m @@ -2658,7 +2692,6 @@ CONFIG_ENC28J60=m # CONFIG_ENC28J60_WRITEVERIFY is not set CONFIG_NET_VENDOR_MYRI=y CONFIG_MYRI10GE=m -CONFIG_MYRI10GE_DCA=y CONFIG_FEALNX=m CONFIG_NET_VENDOR_NATSEMI=y CONFIG_NATSEMI=m @@ -2731,6 +2764,7 @@ CONFIG_HAPPYMEAL=m CONFIG_SUNGEM=m CONFIG_CASSINI=m CONFIG_NIU=m +CONFIG_NET_VENDOR_SYNOPSYS=y CONFIG_NET_VENDOR_TEHUTI=y CONFIG_TEHUTI=m CONFIG_NET_VENDOR_TI=y @@ -2759,6 +2793,7 @@ CONFIG_PHYLIB=y # # MII PHY device drivers # +CONFIG_AQUANTIA_PHY=m CONFIG_AT803X_PHY=m CONFIG_AMD_PHY=m CONFIG_MARVELL_PHY=m @@ -2767,6 +2802,7 @@ CONFIG_QSEMI_PHY=m CONFIG_LXT_PHY=m CONFIG_CICADA_PHY=m CONFIG_VITESSE_PHY=m +CONFIG_TERANETICS_PHY=m CONFIG_SMSC_PHY=m CONFIG_BROADCOM_PHY=m CONFIG_BCM7XXX_PHY=m @@ -2777,7 +2813,9 @@ CONFIG_NATIONAL_PHY=m CONFIG_STE10XP=m CONFIG_LSI_ET1011C_PHY=m CONFIG_MICREL_PHY=m +# CONFIG_DP83848_PHY is not set CONFIG_DP83867_PHY=m +CONFIG_MICROCHIP_PHY=m CONFIG_FIXED_PHY=y CONFIG_MDIO_BITBANG=m CONFIG_MDIO_GPIO=m @@ -2807,6 +2845,7 @@ CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m CONFIG_USB_RTL8152=m +CONFIG_USB_LAN78XX=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_AX88179_178A=m @@ -2842,6 +2881,7 @@ CONFIG_USB_CDC_PHONET=m CONFIG_USB_IPHETH=m CONFIG_USB_SIERRA_NET=m CONFIG_USB_VL600=m +CONFIG_USB_NET_CH9200=m CONFIG_WLAN=y CONFIG_PCMCIA_RAYCS=m CONFIG_LIBERTAS_THINFIRM=m @@ -3123,6 +3163,7 @@ CONFIG_IEEE802154_ATUSB=m CONFIG_XEN_NETDEV_FRONTEND=y CONFIG_XEN_NETDEV_BACKEND=m CONFIG_VMXNET3=m +CONFIG_FUJITSU_ES=m CONFIG_HYPERV_NET=m CONFIG_ISDN=y CONFIG_ISDN_I4L=m @@ -3388,6 +3429,7 @@ CONFIG_TABLET_USB_HANWANG=m CONFIG_TABLET_USB_KBTAB=m CONFIG_TABLET_SERIAL_WACOM4=m CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_PROPERTIES=y CONFIG_TOUCHSCREEN_88PM860X=m CONFIG_TOUCHSCREEN_ADS7846=m CONFIG_TOUCHSCREEN_AD7877=m @@ -3479,7 +3521,6 @@ CONFIG_INPUT_BMA150=m CONFIG_INPUT_E3X0_BUTTON=m CONFIG_INPUT_PCSPKR=m CONFIG_INPUT_MAX77693_HAPTIC=m -CONFIG_INPUT_MAX77843_HAPTIC=m CONFIG_INPUT_MAX8925_ONKEY=m CONFIG_INPUT_MAX8997_HAPTIC=m CONFIG_INPUT_MC13783_PWRBUTTON=m @@ -3722,6 +3763,7 @@ CONFIG_I2C_MUX_GPIO=m CONFIG_I2C_MUX_PCA9541=m CONFIG_I2C_MUX_PCA954x=m CONFIG_I2C_MUX_PINCTRL=m +CONFIG_I2C_MUX_REG=m CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m @@ -3765,6 +3807,7 @@ CONFIG_I2C_DESIGNWARE_CORE=m CONFIG_I2C_DESIGNWARE_PLATFORM=m CONFIG_I2C_DESIGNWARE_PCI=m CONFIG_I2C_EG20T=m +CONFIG_I2C_EMEV2=m CONFIG_I2C_GPIO=m CONFIG_I2C_KEMPLD=m CONFIG_I2C_OCORES=m @@ -3958,6 +4001,7 @@ CONFIG_GPIO_RDC321X=m CONFIG_GPIO_MAX7301=m CONFIG_GPIO_MCP23S08=m CONFIG_GPIO_MC33880=m +CONFIG_GPIO_ZX=y # # USB GPIO expanders @@ -4156,6 +4200,7 @@ CONFIG_SENSORS_LM25066=m CONFIG_SENSORS_LTC2978=m CONFIG_SENSORS_LTC2978_REGULATOR=y CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX20751=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m CONFIG_SENSORS_TPS40422=m @@ -4232,10 +4277,7 @@ CONFIG_INTEL_SOC_DTS_IOSF_CORE=m CONFIG_INTEL_SOC_DTS_THERMAL=m CONFIG_INT340X_THERMAL=m CONFIG_ACPI_THERMAL_REL=m - -# -# Texas Instruments thermal drivers -# +CONFIG_INTEL_PCH_THERMAL=m CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set @@ -4247,6 +4289,7 @@ CONFIG_SOFT_WATCHDOG=m CONFIG_DA9052_WATCHDOG=m CONFIG_DA9055_WATCHDOG=m CONFIG_DA9063_WATCHDOG=m +CONFIG_DA9062_WATCHDOG=m CONFIG_MENF21BMC_WATCHDOG=m CONFIG_WM831X_WATCHDOG=m CONFIG_WM8350_WATCHDOG=m @@ -4368,6 +4411,7 @@ CONFIG_PMIC_DA9052=y CONFIG_MFD_DA9052_SPI=y CONFIG_MFD_DA9052_I2C=y CONFIG_MFD_DA9055=y +CONFIG_MFD_DA9062=m CONFIG_MFD_DA9063=y CONFIG_MFD_DA9150=m CONFIG_MFD_DLN2=m @@ -4380,6 +4424,9 @@ CONFIG_MFD_INTEL_QUARK_I2C_GPIO=m CONFIG_LPC_ICH=m CONFIG_LPC_SCH=m CONFIG_INTEL_SOC_PMIC=y +CONFIG_MFD_INTEL_LPSS=m +CONFIG_MFD_INTEL_LPSS_ACPI=m +CONFIG_MFD_INTEL_LPSS_PCI=m CONFIG_MFD_INTEL_MSIC=y CONFIG_MFD_JANZ_CMODIO=m CONFIG_MFD_KEMPLD=m @@ -4448,6 +4495,7 @@ CONFIG_MFD_ARIZONA_SPI=m CONFIG_MFD_WM5102=y CONFIG_MFD_WM5110=y CONFIG_MFD_WM8997=y +CONFIG_MFD_WM8998=y CONFIG_MFD_WM8400=y CONFIG_MFD_WM831X=y CONFIG_MFD_WM831X_I2C=y @@ -4474,6 +4522,7 @@ CONFIG_REGULATOR_BCM590XX=m CONFIG_REGULATOR_DA903X=m CONFIG_REGULATOR_DA9052=m CONFIG_REGULATOR_DA9055=m +CONFIG_REGULATOR_DA9062=m CONFIG_REGULATOR_DA9063=m CONFIG_REGULATOR_DA9210=m CONFIG_REGULATOR_DA9211=m @@ -4498,10 +4547,10 @@ CONFIG_REGULATOR_MAX8973=m CONFIG_REGULATOR_MAX8997=m CONFIG_REGULATOR_MAX8998=m CONFIG_REGULATOR_MAX77693=m -CONFIG_REGULATOR_MAX77843=m CONFIG_REGULATOR_MC13XXX_CORE=m CONFIG_REGULATOR_MC13783=m CONFIG_REGULATOR_MC13892=m +CONFIG_REGULATOR_MT6311=m CONFIG_REGULATOR_MT6397=m CONFIG_REGULATOR_PALMAS=m CONFIG_REGULATOR_PCAP=m @@ -4772,13 +4821,8 @@ CONFIG_MEDIA_PCI_SUPPORT=y # Media capture support # CONFIG_VIDEO_MEYE=m - -# -# Media capture/analog TV support -# -CONFIG_VIDEO_IVTV=m -CONFIG_VIDEO_IVTV_ALSA=m -CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_SOLO6X10=m +CONFIG_VIDEO_TW68=m CONFIG_VIDEO_ZORAN=m CONFIG_VIDEO_ZORAN_DC30=m CONFIG_VIDEO_ZORAN_ZR36060=m @@ -4787,11 +4831,16 @@ CONFIG_VIDEO_ZORAN_DC10=m CONFIG_VIDEO_ZORAN_LML33=m CONFIG_VIDEO_ZORAN_LML33R10=m CONFIG_VIDEO_ZORAN_AVS6EYES=m + +# +# Media capture/analog TV support +# +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_IVTV_ALSA=m +CONFIG_VIDEO_FB_IVTV=m CONFIG_VIDEO_HEXIUM_GEMINI=m CONFIG_VIDEO_HEXIUM_ORION=m CONFIG_VIDEO_MXB=m -CONFIG_VIDEO_SOLO6X10=m -CONFIG_VIDEO_TW68=m CONFIG_VIDEO_DT3155=m # @@ -4843,6 +4892,7 @@ CONFIG_DVB_HOPPER=m CONFIG_DVB_NGENE=m CONFIG_DVB_DDBRIDGE=m CONFIG_DVB_SMIPCIE=m +CONFIG_DVB_NETUP_UNIDVB=m CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_VIDEO_CAFE_CCIC=m CONFIG_VIDEO_VIA_CAMERA=m @@ -4855,6 +4905,7 @@ CONFIG_VIDEO_SH_VEU=m CONFIG_V4L_TEST_DRIVERS=y CONFIG_VIDEO_VIVID=m CONFIG_VIDEO_VIM2M=m +CONFIG_DVB_PLATFORM_DRIVERS=y # # Supported MMC/SDIO adapters @@ -5139,6 +5190,7 @@ CONFIG_DVB_AF9013=m CONFIG_DVB_EC100=m CONFIG_DVB_STV0367=m CONFIG_DVB_CXD2820R=m +CONFIG_DVB_CXD2841ER=m CONFIG_DVB_RTL2830=m CONFIG_DVB_RTL2832=m CONFIG_DVB_RTL2832_SDR=m @@ -5193,6 +5245,7 @@ CONFIG_DVB_TUNER_DIB0090=m # SEC control devices for DVB-S # CONFIG_DVB_DRX39XYJ=m +CONFIG_DVB_LNBH25=m CONFIG_DVB_LNBP21=m CONFIG_DVB_LNBP22=m CONFIG_DVB_ISL6405=m @@ -5206,6 +5259,8 @@ CONFIG_DVB_TDA665x=m CONFIG_DVB_IX2505V=m CONFIG_DVB_M88RS2000=m CONFIG_DVB_AF9033=m +CONFIG_DVB_HORUS3A=m +CONFIG_DVB_ASCOT2E=m # # Tools to develop new frontends @@ -5230,14 +5285,11 @@ CONFIG_INTEL_GTT=y CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=16 CONFIG_VGA_SWITCHEROO=y - -# -# Direct Rendering Manager -# CONFIG_DRM=m CONFIG_DRM_MIPI_DSI=y CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_KMS_FB_HELPER=y +CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_LOAD_EDID_FIRMWARE=y CONFIG_DRM_TTM=m @@ -5262,8 +5314,6 @@ CONFIG_NOUVEAU_DEBUG_DEFAULT=3 CONFIG_DRM_NOUVEAU_BACKLIGHT=y CONFIG_DRM_I810=m CONFIG_DRM_I915=m -CONFIG_DRM_I915_KMS=y -CONFIG_DRM_I915_FBDEV=y # CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set CONFIG_DRM_MGA=m CONFIG_DRM_SIS=m @@ -5288,6 +5338,11 @@ CONFIG_DRM_PANEL=y # # Display Panels # +CONFIG_DRM_BRIDGE=y + +# +# Display Interface Bridges +# # # Frame buffer Devices @@ -5406,6 +5461,7 @@ CONFIG_FB_AUO_K1900=m CONFIG_FB_AUO_K1901=m CONFIG_FB_HYPERV=m CONFIG_FB_SIMPLE=y +CONFIG_FB_SM712=m CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m CONFIG_LCD_L4F00242T03=m @@ -5430,6 +5486,7 @@ CONFIG_BACKLIGHT_DA903X=m CONFIG_BACKLIGHT_DA9052=m CONFIG_BACKLIGHT_MAX8925=m CONFIG_BACKLIGHT_APPLE=m +CONFIG_BACKLIGHT_PM8941_WLED=m CONFIG_BACKLIGHT_SAHARA=m CONFIG_BACKLIGHT_WM831X=m CONFIG_BACKLIGHT_ADP5520=m @@ -5724,7 +5781,6 @@ CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m -CONFIG_SND_SOC_QCOM=m CONFIG_SND_SOC_XTFPGA_I2S=m CONFIG_SND_SOC_I2C_AND_SPI=m @@ -5751,8 +5807,10 @@ CONFIG_SND_SOC_CS4271_I2C=m CONFIG_SND_SOC_CS4271_SPI=m CONFIG_SND_SOC_CS42XX8=m CONFIG_SND_SOC_CS42XX8_I2C=m +CONFIG_SND_SOC_CS4349=m CONFIG_SND_SOC_HDMI_CODEC=m CONFIG_SND_SOC_ES8328=m +CONFIG_SND_SOC_GTM601=m CONFIG_SND_SOC_MAX98090=m CONFIG_SND_SOC_PCM1681=m CONFIG_SND_SOC_PCM1792A=m @@ -5780,6 +5838,7 @@ CONFIG_SND_SOC_SSM2602_I2C=m CONFIG_SND_SOC_SSM4567=m CONFIG_SND_SOC_STA32X=m CONFIG_SND_SOC_STA350=m +CONFIG_SND_SOC_STI_SAS=m CONFIG_SND_SOC_TAS2552=m CONFIG_SND_SOC_TAS5086=m CONFIG_SND_SOC_TAS571X=m @@ -5844,6 +5903,7 @@ CONFIG_HID_EMS_FF=m CONFIG_HID_ELECOM=m CONFIG_HID_ELO=m CONFIG_HID_EZKEY=m +CONFIG_HID_GEMBIRD=m CONFIG_HID_HOLTEK=m CONFIG_HOLTEK_FF=y CONFIG_HID_GT683R=m @@ -6032,6 +6092,10 @@ CONFIG_USB_MUSB_DUAL_ROLE=y # # Platform Glue Layer # + +# +# MUSB DMA mode +# CONFIG_MUSB_PIO_ONLY=y CONFIG_USB_DWC3=m CONFIG_USB_DWC3_ULPI=y @@ -6043,11 +6107,6 @@ CONFIG_USB_DWC3_DUAL_ROLE=y # Platform Glue Driver Support # CONFIG_USB_DWC3_PCI=m - -# -# Debugging features -# -# CONFIG_USB_DWC3_DEBUG is not set CONFIG_USB_DWC2=y CONFIG_USB_DWC2_HOST=y @@ -6386,7 +6445,6 @@ CONFIG_LEDS_MENF21BMC=m # LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) # CONFIG_LEDS_BLINKM=m -CONFIG_LEDS_PM8941_WLED=m # # LED Triggers @@ -6414,8 +6472,6 @@ CONFIG_INFINIBAND_ON_DEMAND_PAGING=y CONFIG_INFINIBAND_ADDR_TRANS=y CONFIG_INFINIBAND_MTHCA=m # CONFIG_INFINIBAND_MTHCA_DEBUG is not set -CONFIG_INFINIBAND_AMSO1100=m -# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set CONFIG_INFINIBAND_CXGB3=m # CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB4=m @@ -6438,7 +6494,6 @@ CONFIG_EDAC=y # CONFIG_EDAC_LEGACY_SYSFS is not set # CONFIG_EDAC_DEBUG is not set CONFIG_EDAC_DECODE_MCE=m -CONFIG_EDAC_MCE_INJ=m CONFIG_EDAC_MM_EDAC=m CONFIG_EDAC_AMD64=m # CONFIG_EDAC_AMD64_ERROR_INJECTION is not set @@ -6588,25 +6643,23 @@ CONFIG_DMADEVICES=y # # DMA Devices # -CONFIG_INTEL_IOATDMA=m +CONFIG_DMA_ENGINE=y +CONFIG_DMA_VIRTUAL_CHANNELS=m +CONFIG_DMA_ACPI=y +CONFIG_IDMA64=m +CONFIG_PCH_DMA=m +CONFIG_TIMB_DMA=m CONFIG_DW_DMAC_CORE=m CONFIG_DW_DMAC=m CONFIG_DW_DMAC_PCI=m CONFIG_HSU_DMA=m CONFIG_HSU_DMA_PCI=m -CONFIG_TIMB_DMA=m -CONFIG_PCH_DMA=m -CONFIG_DMA_ENGINE=y -CONFIG_DMA_VIRTUAL_CHANNELS=m -CONFIG_DMA_ACPI=y # # DMA Clients # CONFIG_ASYNC_TX_DMA=y # CONFIG_DMATEST is not set -CONFIG_DMA_ENGINE_RAID=y -CONFIG_DCA=m CONFIG_AUXDISPLAY=y CONFIG_KS0108=m CONFIG_KS0108_PORT=0x378 @@ -6675,6 +6728,8 @@ CONFIG_XEN_ACPI_PROCESSOR=y CONFIG_XEN_HAVE_PVMMU=y CONFIG_XEN_AUTO_XLATE=y CONFIG_XEN_ACPI=y +CONFIG_XEN_SYMS=y +CONFIG_XEN_HAVE_VPMU=y CONFIG_STAGING=y CONFIG_SLICOSS=m CONFIG_PRISM2_USB=m @@ -6933,7 +6988,6 @@ CONFIG_IIO_PERIODIC_RTC_TRIGGER=m CONFIG_IIO_SIMPLE_DUMMY=m # CONFIG_IIO_SIMPLE_DUMMY_EVENTS is not set # CONFIG_IIO_SIMPLE_DUMMY_BUFFER is not set -CONFIG_FB_SM7XX=m CONFIG_FB_SM750=m CONFIG_FB_XGI=m CONFIG_FT1000=m @@ -6974,11 +7028,13 @@ CONFIG_LIRC_SERIAL=m CONFIG_LIRC_SERIAL_TRANSMITTER=y CONFIG_LIRC_SIR=m CONFIG_LIRC_ZILOG=m +CONFIG_STAGING_RDMA=y +CONFIG_INFINIBAND_AMSO1100=m +# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set # # Android # -CONFIG_USB_WPAN_HCD=m CONFIG_WIMAX_GDM72XX=m CONFIG_WIMAX_GDM72XX_QOS=y CONFIG_WIMAX_GDM72XX_K_MODE=y @@ -7028,11 +7084,21 @@ CONFIG_FB_TFT_SSD1351=m CONFIG_FB_TFT_ST7735R=m CONFIG_FB_TFT_TINYLCD=m CONFIG_FB_TFT_TLS8204=m +CONFIG_FB_TFT_UC1611=m CONFIG_FB_TFT_UC1701=m CONFIG_FB_TFT_UPD161704=m CONFIG_FB_TFT_WATTEROTT=m CONFIG_FB_FLEX=m CONFIG_FB_TFT_FBTFT_DEVICE=m +CONFIG_MOST=m +CONFIG_MOSTCORE=m +CONFIG_AIM_CDEV=m +CONFIG_AIM_NETWORK=m +CONFIG_AIM_SOUND=m +CONFIG_AIM_V4L2=m +CONFIG_HDM_DIM2=m +CONFIG_HDM_I2C=m +CONFIG_HDM_USB=m CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m CONFIG_ACERHDF=m @@ -7093,6 +7159,7 @@ CONFIG_INTEL_RST=m CONFIG_INTEL_SMARTCONNECT=m CONFIG_PVPANIC=m CONFIG_INTEL_PMC_IPC=m +CONFIG_SURFACE_PRO3_BUTTON=m CONFIG_CHROME_PLATFORMS=y CONFIG_CHROMEOS_LAPTOP=m CONFIG_CHROMEOS_PSTORE=m @@ -7212,8 +7279,8 @@ CONFIG_IIO_ST_ACCEL_3AXIS=m CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m CONFIG_KXSD9=m -CONFIG_MMA8452=m CONFIG_KXCJK1013=m +CONFIG_MMA8452=m CONFIG_MMA9551_CORE=m CONFIG_MMA9551=m CONFIG_MMA9553=m @@ -7356,8 +7423,11 @@ CONFIG_ISL29125=m CONFIG_HID_SENSOR_ALS=m CONFIG_HID_SENSOR_PROX=m CONFIG_JSA1212=m +CONFIG_RPR0521=m CONFIG_SENSORS_LM3533=m CONFIG_LTR501=m +CONFIG_OPT3001=m +CONFIG_PA12203001=m CONFIG_STK3310=m CONFIG_TCS3414=m CONFIG_TCS3472=m @@ -7444,6 +7514,7 @@ CONFIG_VME_USER=m CONFIG_VME_PIO2=m CONFIG_PWM=y CONFIG_PWM_SYSFS=y +CONFIG_PWM_CRC=y CONFIG_PWM_LP3943=m CONFIG_PWM_LPSS=m CONFIG_PWM_LPSS_PCI=m @@ -7476,7 +7547,12 @@ CONFIG_POWERCAP=y CONFIG_INTEL_RAPL=m CONFIG_MCB=m CONFIG_MCB_PCI=m + +# +# Performance monitor support +# CONFIG_RAS=y +CONFIG_AMD_MCE_INJ=m CONFIG_THUNDERBOLT=m # @@ -7486,8 +7562,10 @@ CONFIG_THUNDERBOLT=m CONFIG_LIBNVDIMM=y CONFIG_BLK_DEV_PMEM=m CONFIG_ND_BLK=m +CONFIG_ND_CLAIM=y CONFIG_ND_BTT=m CONFIG_BTT=y +CONFIG_NVMEM=m # # Firmware Drivers @@ -7522,7 +7600,7 @@ CONFIG_DCACHE_WORD_ACCESS=y # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y -CONFIG_EXT4_USE_FOR_EXT23=y +CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y CONFIG_EXT4_ENCRYPTION=m @@ -7883,7 +7961,7 @@ CONFIG_DEBUG_KERNEL=y # # Memory Debugging # -# CONFIG_PAGE_EXTENSION is not set +CONFIG_PAGE_EXTENSION=y # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set @@ -7955,7 +8033,6 @@ CONFIG_DEBUG_BUGVERBOSE=y CONFIG_TORTURE_TEST=m # CONFIG_RCU_TORTURE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=60 -# CONFIG_RCU_CPU_STALL_INFO is not set # CONFIG_RCU_TRACE is not set # CONFIG_RCU_EQS_DEBUG is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set @@ -8038,6 +8115,7 @@ CONFIG_TEST_BPF=m CONFIG_TEST_FIRMWARE=m CONFIG_TEST_UDELAY=m CONFIG_MEMTEST=y +CONFIG_TEST_STATIC_KEYS=m # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y CONFIG_KGDB=y @@ -8118,7 +8196,6 @@ CONFIG_SECURITY_APPARMOR=y CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 CONFIG_SECURITY_APPARMOR_HASH=y CONFIG_SECURITY_YAMA=y -CONFIG_SECURITY_YAMA_STACKED=y CONFIG_INTEGRITY=y CONFIG_INTEGRITY_SIGNATURE=y CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y @@ -8145,7 +8222,6 @@ CONFIG_EVM_EXTRA_SMACK_XATTRS=y # CONFIG_DEFAULT_SECURITY_SMACK is not set # CONFIG_DEFAULT_SECURITY_TOMOYO is not set CONFIG_DEFAULT_SECURITY_APPARMOR=y -# CONFIG_DEFAULT_SECURITY_YAMA is not set # CONFIG_DEFAULT_SECURITY_DAC is not set CONFIG_DEFAULT_SECURITY="apparmor" CONFIG_XOR_BLOCKS=m @@ -8181,6 +8257,7 @@ CONFIG_CRYPTO_USER=m CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=m CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_NULL2=y CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=m @@ -8305,12 +8382,20 @@ CONFIG_CRYPTO_DEV_CCP_DD=m CONFIG_CRYPTO_DEV_CCP_CRYPTO=m CONFIG_CRYPTO_DEV_QAT=m CONFIG_CRYPTO_DEV_QAT_DH895xCC=m +CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y CONFIG_PUBLIC_KEY_ALGO_RSA=y CONFIG_X509_CERTIFICATE_PARSER=y -CONFIG_PKCS7_MESSAGE_PARSER=m +CONFIG_PKCS7_MESSAGE_PARSER=y CONFIG_PKCS7_TEST_KEY=m +CONFIG_SIGNED_PE_FILE_VERIFICATION=y + +# +# Certificates for signature checking +# +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_SYSTEM_TRUSTED_KEYS="" CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_HAVE_KVM_IRQFD=y @@ -8346,7 +8431,6 @@ CONFIG_GENERIC_FIND_FIRST_BIT=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_IO=y -CONFIG_PERCPU_RWSEM=y CONFIG_ARCH_HAS_FAST_MULTIPLIER=y CONFIG_CRC_CCITT=m CONFIG_CRC16=y @@ -8399,6 +8483,7 @@ CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m CONFIG_TEXTSEARCH_FSM=m +CONFIG_BTREE=y CONFIG_INTERVAL_TREE=y CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y @@ -8412,7 +8497,6 @@ CONFIG_GLOB=y CONFIG_NLATTR=y CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y CONFIG_LRU_CACHE=m -CONFIG_AVERAGE=y CONFIG_CLZ_TAB=y CONFIG_CORDIC=m CONFIG_DDR=y @@ -8424,5 +8508,6 @@ CONFIG_FONT_SUPPORT=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y +# CONFIG_SG_SPLIT is not set CONFIG_ARCH_HAS_SG_CHAIN=y -CONFIG_ARCH_HAS_PMEM_API=y +CONFIG_ARCH_HAS_MMIO_FLUSH=y diff --git a/gnu/packages/linux-libre-x86_64.conf b/gnu/packages/linux-libre-x86_64.conf index e22b651f37..6c233c079a 100644 --- a/gnu/packages/linux-libre-x86_64.conf +++ b/gnu/packages/linux-libre-x86_64.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.2.0-gnu Kernel Configuration +# Linux/x86 4.3.0-gnu Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -136,10 +136,6 @@ CONFIG_SRCU=y # CONFIG_TASKS_RCU is not set CONFIG_RCU_STALL_COMMON=y # CONFIG_TREE_RCU_TRACE is not set -CONFIG_RCU_NOCB_CPU=y -# CONFIG_RCU_NOCB_CPU_NONE is not set -# CONFIG_RCU_NOCB_CPU_ZERO is not set -CONFIG_RCU_NOCB_CPU_ALL=y # CONFIG_RCU_EXPEDITE_BOOT is not set CONFIG_BUILD_BIN2C=y # CONFIG_IKCONFIG is not set @@ -147,12 +143,14 @@ CONFIG_LOG_BUF_SHIFT=18 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_ARCH_SUPPORTS_INT128=y CONFIG_NUMA_BALANCING=y CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y CONFIG_CGROUPS=y # CONFIG_CGROUP_DEBUG is not set CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_PIDS=y CONFIG_CGROUP_DEVICE=y CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y @@ -218,7 +216,9 @@ CONFIG_BPF_SYSCALL=y CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_ADVISE_SYSCALLS=y +CONFIG_USERFAULTFD=y CONFIG_PCI_QUIRKS=y +CONFIG_MEMBARRIER=y # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y @@ -234,15 +234,17 @@ CONFIG_SLUB_DEBUG=y CONFIG_SLUB=y # CONFIG_SLOB is not set CONFIG_SLUB_CPU_PARTIAL=y -CONFIG_SYSTEM_TRUSTED_KEYRING=y +# CONFIG_SYSTEM_DATA_VERIFICATION is not set CONFIG_PROFILING=y CONFIG_TRACEPOINTS=y +CONFIG_KEXEC_CORE=y CONFIG_OPROFILE=m # CONFIG_OPROFILE_EVENT_MULTIPLEX is not set CONFIG_HAVE_OPROFILE=y CONFIG_OPROFILE_NMI_TIMER=y CONFIG_KPROBES=y CONFIG_JUMP_LABEL=y +# CONFIG_STATIC_KEYS_SELFTEST is not set CONFIG_OPTPROBES=y CONFIG_KPROBES_ON_FTRACE=y CONFIG_UPROBES=y @@ -313,6 +315,11 @@ CONFIG_MODULE_UNLOAD=y CONFIG_MODVERSIONS=y CONFIG_MODULE_SRCVERSION_ALL=y # CONFIG_MODULE_SIG is not set +# CONFIG_MODULE_SIG_SHA1 is not set +# CONFIG_MODULE_SIG_SHA224 is not set +# CONFIG_MODULE_SIG_SHA256 is not set +# CONFIG_MODULE_SIG_SHA384 is not set +# CONFIG_MODULE_SIG_SHA512 is not set # CONFIG_MODULE_COMPRESS is not set CONFIG_MODULES_TREE_LOOKUP=y CONFIG_STOP_MACHINE=y @@ -404,7 +411,7 @@ CONFIG_PARAVIRT_SPINLOCKS=y CONFIG_XEN=y CONFIG_XEN_DOM0=y CONFIG_XEN_PVHVM=y -CONFIG_XEN_MAX_DOMAIN_MEMORY=500 +CONFIG_XEN_512GB=y CONFIG_XEN_SAVE_RESTORE=y # CONFIG_XEN_DEBUG_FS is not set CONFIG_XEN_PVH=y @@ -453,6 +460,7 @@ CONFIG_X86_MCE_AMD=y CONFIG_X86_MCE_THRESHOLD=y CONFIG_X86_MCE_INJECT=m CONFIG_X86_THERMAL_VECTOR=y +# CONFIG_VM86 is not set CONFIG_X86_16BIT=y CONFIG_X86_ESPFIX64=y CONFIG_X86_VSYSCALL_EMULATION=y @@ -536,6 +544,9 @@ CONFIG_PGTABLE_MAPPING=y CONFIG_GENERIC_EARLY_IOREMAP=y CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set +CONFIG_IDLE_PAGE_TRACKING=y +CONFIG_FRAME_VECTOR=y +CONFIG_X86_PMEM_LEGACY_DEVICE=y CONFIG_X86_PMEM_LEGACY=y CONFIG_X86_CHECK_BIOS_CORRUPTION=y CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y @@ -548,7 +559,7 @@ CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y CONFIG_X86_SMAP=y -# CONFIG_X86_INTEL_MPX is not set +CONFIG_X86_INTEL_MPX=y CONFIG_EFI=y CONFIG_EFI_STUB=y CONFIG_EFI_MIXED=y @@ -562,6 +573,7 @@ CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y CONFIG_KEXEC_FILE=y CONFIG_KEXEC_VERIFY_SIG=y +CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y CONFIG_CRASH_DUMP=y CONFIG_KEXEC_JUMP=y CONFIG_PHYSICAL_START=0x1000000 @@ -575,6 +587,7 @@ CONFIG_HOTPLUG_CPU=y # CONFIG_DEBUG_HOTPLUG_CPU0 is not set # CONFIG_COMPAT_VDSO is not set # CONFIG_CMDLINE_BOOL is not set +CONFIG_MODIFY_LDT_SYSCALL=y CONFIG_HAVE_LIVEPATCH=y CONFIG_LIVEPATCH=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y @@ -587,6 +600,7 @@ CONFIG_USE_PERCPU_NUMA_NODE_ID=y CONFIG_ARCH_HIBERNATION_HEADER=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y +# CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_HIBERNATE_CALLBACKS=y CONFIG_HIBERNATION=y CONFIG_PM_STD_PARTITION="" @@ -620,6 +634,8 @@ CONFIG_ACPI_BUTTON=y CONFIG_ACPI_VIDEO=m CONFIG_ACPI_FAN=y CONFIG_ACPI_DOCK=y +CONFIG_ACPI_CPU_FREQ_PSS=y +CONFIG_ACPI_PROCESSOR_IDLE=y CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_IPMI=m CONFIG_ACPI_HOTPLUG_CPU=y @@ -849,7 +865,6 @@ CONFIG_NET_IPVTI=m CONFIG_NET_UDP_TUNNEL=m CONFIG_NET_FOU=m CONFIG_NET_FOU_IP_TUNNELS=y -CONFIG_GENEVE_CORE=m CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m @@ -889,6 +904,7 @@ CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m CONFIG_IPV6_MIP6=m +CONFIG_IPV6_ILA=m CONFIG_INET6_XFRM_TUNNEL=m CONFIG_INET6_TUNNEL=m CONFIG_INET6_XFRM_MODE_TRANSPORT=m @@ -1110,6 +1126,7 @@ CONFIG_IP_VS_WRR=m CONFIG_IP_VS_LC=m CONFIG_IP_VS_WLC=m CONFIG_IP_VS_FO=m +CONFIG_IP_VS_OVF=m CONFIG_IP_VS_LBLC=m CONFIG_IP_VS_LBLCR=m CONFIG_IP_VS_DH=m @@ -1137,7 +1154,9 @@ CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_TABLES_IPV4=m CONFIG_NFT_CHAIN_ROUTE_IPV4=m CONFIG_NFT_REJECT_IPV4=m +CONFIG_NFT_DUP_IPV4=m CONFIG_NF_TABLES_ARP=m +CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m @@ -1180,6 +1199,8 @@ CONFIG_NF_CONNTRACK_IPV6=m CONFIG_NF_TABLES_IPV6=m CONFIG_NFT_CHAIN_ROUTE_IPV6=m CONFIG_NFT_REJECT_IPV6=m +CONFIG_NFT_DUP_IPV6=m +CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m CONFIG_NF_NAT_IPV6=m @@ -1406,6 +1427,7 @@ CONFIG_NETLINK_DIAG=m CONFIG_MPLS=y CONFIG_NET_MPLS_GSO=m CONFIG_MPLS_ROUTING=m +CONFIG_MPLS_IPTUNNEL=m CONFIG_HSR=m # CONFIG_NET_SWITCHDEV is not set CONFIG_RPS=y @@ -1558,6 +1580,7 @@ CONFIG_BT_BNEP_MC_FILTER=y CONFIG_BT_BNEP_PROTO_FILTER=y CONFIG_BT_CMTP=m CONFIG_BT_HIDP=m +CONFIG_BT_HS=y CONFIG_BT_LE=y CONFIG_BT_6LOWPAN=m # CONFIG_BT_SELFTEST is not set @@ -1569,6 +1592,7 @@ CONFIG_BT_DEBUGFS=y CONFIG_BT_INTEL=m CONFIG_BT_BCM=m CONFIG_BT_RTL=m +CONFIG_BT_QCA=m CONFIG_BT_HCIBTUSB=m CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB_RTL=y @@ -1581,6 +1605,7 @@ CONFIG_BT_HCIUART_LL=y CONFIG_BT_HCIUART_3WIRE=y CONFIG_BT_HCIUART_INTEL=y CONFIG_BT_HCIUART_BCM=y +CONFIG_BT_HCIUART_QCA=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m @@ -1679,8 +1704,12 @@ CONFIG_NFC_ST21NFCA=m CONFIG_NFC_ST21NFCA_I2C=m CONFIG_NFC_ST_NCI=m CONFIG_NFC_ST_NCI_I2C=m +CONFIG_NFC_ST_NCI_SPI=m CONFIG_NFC_NXP_NCI=m CONFIG_NFC_NXP_NCI_I2C=m +CONFIG_NFC_S3FWRN5=m +CONFIG_NFC_S3FWRN5_I2C=m +CONFIG_LWTUNNEL=y CONFIG_HAVE_BPF_JIT=y # @@ -2040,6 +2069,7 @@ CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0 CONFIG_ECHO=m # CONFIG_CXL_BASE is not set # CONFIG_CXL_KERNEL_API is not set +# CONFIG_CXL_EEH is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set @@ -2168,6 +2198,7 @@ CONFIG_SCSI_IPR_TRACE=y CONFIG_SCSI_IPR_DUMP=y CONFIG_SCSI_QLOGIC_1280=m CONFIG_SCSI_QLA_FC=m +CONFIG_TCM_QLA2XXX=m CONFIG_SCSI_QLA_ISCSI=m CONFIG_SCSI_LPFC=m # CONFIG_SCSI_LPFC_DEBUG_FS is not set @@ -2185,7 +2216,7 @@ CONFIG_PCMCIA_AHA152X=m CONFIG_PCMCIA_FDOMAIN=m CONFIG_PCMCIA_QLOGIC=m CONFIG_PCMCIA_SYM53C500=m -CONFIG_SCSI_DH=m +CONFIG_SCSI_DH=y CONFIG_SCSI_DH_RDAC=m CONFIG_SCSI_DH_HP_SW=m CONFIG_SCSI_DH_EMC=m @@ -2391,6 +2422,7 @@ CONFIG_TUN=y CONFIG_VETH=m CONFIG_VIRTIO_NET=y CONFIG_NLMON=m +CONFIG_NET_VRF=m CONFIG_SUNGEM_PHY=m CONFIG_ARCNET=m CONFIG_ARCNET_1201=m @@ -2492,9 +2524,10 @@ CONFIG_CNIC=m CONFIG_TIGON3=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y +CONFIG_BNX2X_VXLAN=y CONFIG_NET_VENDOR_BROCADE=y CONFIG_BNA=m -CONFIG_NET_VENDOR_CAVIUM=m +CONFIG_NET_VENDOR_CAVIUM=y CONFIG_THUNDER_NIC_PF=m CONFIG_THUNDER_NIC_VF=m CONFIG_THUNDER_NIC_BGX=m @@ -2581,6 +2614,8 @@ CONFIG_MLX4_CORE=m CONFIG_MLX4_DEBUG=y CONFIG_MLX5_CORE=m CONFIG_MLX5_CORE_EN=y +CONFIG_MLXSW_CORE=m +CONFIG_MLXSW_PCI=m CONFIG_NET_VENDOR_MICREL=y CONFIG_KS8842=m CONFIG_KS8851=m @@ -2659,6 +2694,7 @@ CONFIG_HAPPYMEAL=m CONFIG_SUNGEM=m CONFIG_CASSINI=m CONFIG_NIU=m +CONFIG_NET_VENDOR_SYNOPSYS=y CONFIG_NET_VENDOR_TEHUTI=y CONFIG_TEHUTI=m CONFIG_NET_VENDOR_TI=y @@ -2687,6 +2723,7 @@ CONFIG_PHYLIB=y # # MII PHY device drivers # +CONFIG_AQUANTIA_PHY=m CONFIG_AT803X_PHY=m CONFIG_AMD_PHY=m CONFIG_MARVELL_PHY=m @@ -2695,6 +2732,7 @@ CONFIG_QSEMI_PHY=m CONFIG_LXT_PHY=m CONFIG_CICADA_PHY=m CONFIG_VITESSE_PHY=m +CONFIG_TERANETICS_PHY=m CONFIG_SMSC_PHY=m CONFIG_BROADCOM_PHY=m CONFIG_BCM7XXX_PHY=m @@ -2705,10 +2743,13 @@ CONFIG_NATIONAL_PHY=m CONFIG_STE10XP=m CONFIG_LSI_ET1011C_PHY=m CONFIG_MICREL_PHY=m +# CONFIG_DP83848_PHY is not set CONFIG_DP83867_PHY=m +CONFIG_MICROCHIP_PHY=m CONFIG_FIXED_PHY=y CONFIG_MDIO_BITBANG=m CONFIG_MDIO_GPIO=m +CONFIG_MDIO_OCTEON=m CONFIG_MDIO_BCM_UNIMAC=m CONFIG_MICREL_KS8995MA=m CONFIG_PLIP=m @@ -2735,6 +2776,7 @@ CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m CONFIG_USB_RTL8152=m +CONFIG_USB_LAN78XX=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_AX88179_178A=m @@ -2770,6 +2812,7 @@ CONFIG_USB_CDC_PHONET=m CONFIG_USB_IPHETH=m CONFIG_USB_SIERRA_NET=m CONFIG_USB_VL600=m +CONFIG_USB_NET_CH9200=m CONFIG_WLAN=y CONFIG_PCMCIA_RAYCS=m CONFIG_LIBERTAS_THINFIRM=m @@ -3045,6 +3088,7 @@ CONFIG_IEEE802154_ATUSB=m CONFIG_XEN_NETDEV_FRONTEND=y CONFIG_XEN_NETDEV_BACKEND=m CONFIG_VMXNET3=m +CONFIG_FUJITSU_ES=m CONFIG_HYPERV_NET=m CONFIG_ISDN=y CONFIG_ISDN_I4L=m @@ -3291,6 +3335,7 @@ CONFIG_TABLET_USB_HANWANG=m CONFIG_TABLET_USB_KBTAB=m CONFIG_TABLET_SERIAL_WACOM4=m CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_PROPERTIES=y CONFIG_TOUCHSCREEN_88PM860X=m CONFIG_TOUCHSCREEN_ADS7846=m CONFIG_TOUCHSCREEN_AD7877=m @@ -3380,7 +3425,6 @@ CONFIG_INPUT_BMA150=m CONFIG_INPUT_E3X0_BUTTON=m CONFIG_INPUT_PCSPKR=m CONFIG_INPUT_MAX77693_HAPTIC=m -CONFIG_INPUT_MAX77843_HAPTIC=m CONFIG_INPUT_MAX8925_ONKEY=m CONFIG_INPUT_MAX8997_HAPTIC=m CONFIG_INPUT_MC13783_PWRBUTTON=m @@ -3510,6 +3554,7 @@ CONFIG_SERIAL_8250_FINTEK=m CONFIG_SERIAL_KGDB_NMI=y CONFIG_SERIAL_MAX3100=m CONFIG_SERIAL_MAX310X=y +CONFIG_SERIAL_UARTLITE=m CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_CONSOLE_POLL=y @@ -3608,6 +3653,7 @@ CONFIG_I2C_MUX_GPIO=m CONFIG_I2C_MUX_PCA9541=m CONFIG_I2C_MUX_PCA954x=m CONFIG_I2C_MUX_PINCTRL=m +CONFIG_I2C_MUX_REG=m CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m @@ -3650,6 +3696,7 @@ CONFIG_I2C_CBUS_GPIO=m CONFIG_I2C_DESIGNWARE_CORE=m CONFIG_I2C_DESIGNWARE_PLATFORM=m CONFIG_I2C_DESIGNWARE_PCI=m +CONFIG_I2C_EMEV2=m CONFIG_I2C_GPIO=m CONFIG_I2C_KEMPLD=m CONFIG_I2C_OCORES=m @@ -3835,6 +3882,7 @@ CONFIG_GPIO_RDC321X=m CONFIG_GPIO_MAX7301=m CONFIG_GPIO_MCP23S08=m CONFIG_GPIO_MC33880=m +CONFIG_GPIO_ZX=y # # USB GPIO expanders @@ -4032,6 +4080,7 @@ CONFIG_SENSORS_LM25066=m CONFIG_SENSORS_LTC2978=m CONFIG_SENSORS_LTC2978_REGULATOR=y CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX20751=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m CONFIG_SENSORS_TPS40422=m @@ -4108,10 +4157,7 @@ CONFIG_INTEL_SOC_DTS_IOSF_CORE=m CONFIG_INTEL_SOC_DTS_THERMAL=m CONFIG_INT340X_THERMAL=m CONFIG_ACPI_THERMAL_REL=m - -# -# Texas Instruments thermal drivers -# +CONFIG_INTEL_PCH_THERMAL=m CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set @@ -4123,6 +4169,7 @@ CONFIG_SOFT_WATCHDOG=m CONFIG_DA9052_WATCHDOG=m CONFIG_DA9055_WATCHDOG=m CONFIG_DA9063_WATCHDOG=m +CONFIG_DA9062_WATCHDOG=m CONFIG_MENF21BMC_WATCHDOG=m CONFIG_WM831X_WATCHDOG=m CONFIG_WM8350_WATCHDOG=m @@ -4231,6 +4278,7 @@ CONFIG_PMIC_DA9052=y CONFIG_MFD_DA9052_SPI=y CONFIG_MFD_DA9052_I2C=y CONFIG_MFD_DA9055=y +CONFIG_MFD_DA9062=m CONFIG_MFD_DA9063=y CONFIG_MFD_DA9150=m CONFIG_MFD_DLN2=m @@ -4243,6 +4291,9 @@ CONFIG_MFD_INTEL_QUARK_I2C_GPIO=m CONFIG_LPC_ICH=m CONFIG_LPC_SCH=m CONFIG_INTEL_SOC_PMIC=y +CONFIG_MFD_INTEL_LPSS=m +CONFIG_MFD_INTEL_LPSS_ACPI=m +CONFIG_MFD_INTEL_LPSS_PCI=m CONFIG_MFD_JANZ_CMODIO=m CONFIG_MFD_KEMPLD=m CONFIG_MFD_88PM800=m @@ -4309,6 +4360,7 @@ CONFIG_MFD_ARIZONA_SPI=m CONFIG_MFD_WM5102=y CONFIG_MFD_WM5110=y CONFIG_MFD_WM8997=y +CONFIG_MFD_WM8998=y CONFIG_MFD_WM8400=y CONFIG_MFD_WM831X=y CONFIG_MFD_WM831X_I2C=y @@ -4335,6 +4387,7 @@ CONFIG_REGULATOR_BCM590XX=m CONFIG_REGULATOR_DA903X=m CONFIG_REGULATOR_DA9052=m CONFIG_REGULATOR_DA9055=m +CONFIG_REGULATOR_DA9062=m CONFIG_REGULATOR_DA9063=m CONFIG_REGULATOR_DA9210=m CONFIG_REGULATOR_DA9211=m @@ -4359,10 +4412,10 @@ CONFIG_REGULATOR_MAX8973=m CONFIG_REGULATOR_MAX8997=m CONFIG_REGULATOR_MAX8998=m CONFIG_REGULATOR_MAX77693=m -CONFIG_REGULATOR_MAX77843=m CONFIG_REGULATOR_MC13XXX_CORE=m CONFIG_REGULATOR_MC13783=m CONFIG_REGULATOR_MC13892=m +CONFIG_REGULATOR_MT6311=m CONFIG_REGULATOR_MT6397=m CONFIG_REGULATOR_PALMAS=m CONFIG_REGULATOR_PCAP=m @@ -4632,13 +4685,8 @@ CONFIG_MEDIA_PCI_SUPPORT=y # Media capture support # CONFIG_VIDEO_MEYE=m - -# -# Media capture/analog TV support -# -CONFIG_VIDEO_IVTV=m -CONFIG_VIDEO_IVTV_ALSA=m -CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_SOLO6X10=m +CONFIG_VIDEO_TW68=m CONFIG_VIDEO_ZORAN=m CONFIG_VIDEO_ZORAN_DC30=m CONFIG_VIDEO_ZORAN_ZR36060=m @@ -4647,11 +4695,16 @@ CONFIG_VIDEO_ZORAN_DC10=m CONFIG_VIDEO_ZORAN_LML33=m CONFIG_VIDEO_ZORAN_LML33R10=m CONFIG_VIDEO_ZORAN_AVS6EYES=m + +# +# Media capture/analog TV support +# +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_IVTV_ALSA=m +CONFIG_VIDEO_FB_IVTV=m CONFIG_VIDEO_HEXIUM_GEMINI=m CONFIG_VIDEO_HEXIUM_ORION=m CONFIG_VIDEO_MXB=m -CONFIG_VIDEO_SOLO6X10=m -CONFIG_VIDEO_TW68=m CONFIG_VIDEO_DT3155=m # @@ -4703,6 +4756,7 @@ CONFIG_DVB_HOPPER=m CONFIG_DVB_NGENE=m CONFIG_DVB_DDBRIDGE=m CONFIG_DVB_SMIPCIE=m +CONFIG_DVB_NETUP_UNIDVB=m CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_VIDEO_CAFE_CCIC=m CONFIG_VIDEO_VIA_CAMERA=m @@ -4714,6 +4768,7 @@ CONFIG_VIDEO_SH_VEU=m CONFIG_V4L_TEST_DRIVERS=y CONFIG_VIDEO_VIVID=m CONFIG_VIDEO_VIM2M=m +CONFIG_DVB_PLATFORM_DRIVERS=y # # Supported MMC/SDIO adapters @@ -4982,6 +5037,7 @@ CONFIG_DVB_AF9013=m CONFIG_DVB_EC100=m CONFIG_DVB_STV0367=m CONFIG_DVB_CXD2820R=m +CONFIG_DVB_CXD2841ER=m CONFIG_DVB_RTL2830=m CONFIG_DVB_RTL2832=m CONFIG_DVB_RTL2832_SDR=m @@ -5036,6 +5092,7 @@ CONFIG_DVB_TUNER_DIB0090=m # SEC control devices for DVB-S # CONFIG_DVB_DRX39XYJ=m +CONFIG_DVB_LNBH25=m CONFIG_DVB_LNBP21=m CONFIG_DVB_LNBP22=m CONFIG_DVB_ISL6405=m @@ -5049,6 +5106,8 @@ CONFIG_DVB_TDA665x=m CONFIG_DVB_IX2505V=m CONFIG_DVB_M88RS2000=m CONFIG_DVB_AF9033=m +CONFIG_DVB_HORUS3A=m +CONFIG_DVB_ASCOT2E=m # # Tools to develop new frontends @@ -5067,14 +5126,11 @@ CONFIG_INTEL_GTT=y CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=16 CONFIG_VGA_SWITCHEROO=y - -# -# Direct Rendering Manager -# CONFIG_DRM=m CONFIG_DRM_MIPI_DSI=y CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_KMS_FB_HELPER=y +CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_LOAD_EDID_FIRMWARE=y CONFIG_DRM_TTM=m @@ -5099,8 +5155,6 @@ CONFIG_NOUVEAU_DEBUG_DEFAULT=3 CONFIG_DRM_NOUVEAU_BACKLIGHT=y CONFIG_DRM_I810=m CONFIG_DRM_I915=m -CONFIG_DRM_I915_KMS=y -CONFIG_DRM_I915_FBDEV=y # CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set CONFIG_DRM_MGA=m CONFIG_DRM_SIS=m @@ -5124,6 +5178,11 @@ CONFIG_DRM_PANEL=y # # Display Panels # +CONFIG_DRM_BRIDGE=y + +# +# Display Interface Bridges +# CONFIG_HSA_AMD=m # @@ -5237,6 +5296,7 @@ CONFIG_FB_AUO_K1900=m CONFIG_FB_AUO_K1901=m CONFIG_FB_HYPERV=m CONFIG_FB_SIMPLE=y +CONFIG_FB_SM712=m CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m CONFIG_LCD_L4F00242T03=m @@ -5261,6 +5321,7 @@ CONFIG_BACKLIGHT_DA903X=m CONFIG_BACKLIGHT_DA9052=m CONFIG_BACKLIGHT_MAX8925=m CONFIG_BACKLIGHT_APPLE=m +CONFIG_BACKLIGHT_PM8941_WLED=m CONFIG_BACKLIGHT_SAHARA=m CONFIG_BACKLIGHT_WM831X=m CONFIG_BACKLIGHT_ADP5520=m @@ -5511,7 +5572,6 @@ CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m -CONFIG_SND_SOC_QCOM=m CONFIG_SND_SOC_XTFPGA_I2S=m CONFIG_SND_SOC_I2C_AND_SPI=m @@ -5538,8 +5598,10 @@ CONFIG_SND_SOC_CS4271_I2C=m CONFIG_SND_SOC_CS4271_SPI=m CONFIG_SND_SOC_CS42XX8=m CONFIG_SND_SOC_CS42XX8_I2C=m +CONFIG_SND_SOC_CS4349=m CONFIG_SND_SOC_HDMI_CODEC=m CONFIG_SND_SOC_ES8328=m +CONFIG_SND_SOC_GTM601=m CONFIG_SND_SOC_MAX98090=m CONFIG_SND_SOC_PCM1681=m CONFIG_SND_SOC_PCM1792A=m @@ -5566,6 +5628,7 @@ CONFIG_SND_SOC_SSM2602_I2C=m CONFIG_SND_SOC_SSM4567=m CONFIG_SND_SOC_STA32X=m CONFIG_SND_SOC_STA350=m +CONFIG_SND_SOC_STI_SAS=m CONFIG_SND_SOC_TAS2552=m CONFIG_SND_SOC_TAS5086=m CONFIG_SND_SOC_TAS571X=m @@ -5630,6 +5693,7 @@ CONFIG_HID_EMS_FF=m CONFIG_HID_ELECOM=m CONFIG_HID_ELO=m CONFIG_HID_EZKEY=m +CONFIG_HID_GEMBIRD=m CONFIG_HID_HOLTEK=m CONFIG_HOLTEK_FF=y CONFIG_HID_GT683R=m @@ -5818,6 +5882,10 @@ CONFIG_USB_MUSB_DUAL_ROLE=y # # Platform Glue Layer # + +# +# MUSB DMA mode +# CONFIG_MUSB_PIO_ONLY=y CONFIG_USB_DWC3=m CONFIG_USB_DWC3_ULPI=y @@ -5829,11 +5897,6 @@ CONFIG_USB_DWC3_DUAL_ROLE=y # Platform Glue Driver Support # CONFIG_USB_DWC3_PCI=m - -# -# Debugging features -# -# CONFIG_USB_DWC3_DEBUG is not set CONFIG_USB_DWC2=y CONFIG_USB_DWC2_HOST=y @@ -6170,7 +6233,6 @@ CONFIG_LEDS_MENF21BMC=m # LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) # CONFIG_LEDS_BLINKM=m -CONFIG_LEDS_PM8941_WLED=m # # LED Triggers @@ -6198,11 +6260,8 @@ CONFIG_INFINIBAND_ON_DEMAND_PAGING=y CONFIG_INFINIBAND_ADDR_TRANS=y CONFIG_INFINIBAND_MTHCA=m # CONFIG_INFINIBAND_MTHCA_DEBUG is not set -CONFIG_INFINIBAND_IPATH=m CONFIG_INFINIBAND_QIB=m CONFIG_INFINIBAND_QIB_DCA=y -CONFIG_INFINIBAND_AMSO1100=m -# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set CONFIG_INFINIBAND_CXGB3=m # CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB4=m @@ -6225,7 +6284,6 @@ CONFIG_EDAC=y # CONFIG_EDAC_LEGACY_SYSFS is not set # CONFIG_EDAC_DEBUG is not set CONFIG_EDAC_DECODE_MCE=m -CONFIG_EDAC_MCE_INJ=m CONFIG_EDAC_MM_EDAC=m CONFIG_EDAC_AMD64=m # CONFIG_EDAC_AMD64_ERROR_INJECTION is not set @@ -6370,16 +6428,17 @@ CONFIG_DMADEVICES=y # # DMA Devices # -CONFIG_INTEL_MIC_X100_DMA=m +CONFIG_DMA_ENGINE=y +CONFIG_DMA_VIRTUAL_CHANNELS=m +CONFIG_DMA_ACPI=y +CONFIG_IDMA64=m CONFIG_INTEL_IOATDMA=m +CONFIG_INTEL_MIC_X100_DMA=m CONFIG_DW_DMAC_CORE=m CONFIG_DW_DMAC=m CONFIG_DW_DMAC_PCI=m CONFIG_HSU_DMA=m CONFIG_HSU_DMA_PCI=m -CONFIG_DMA_ENGINE=y -CONFIG_DMA_VIRTUAL_CHANNELS=m -CONFIG_DMA_ACPI=y # # DMA Clients @@ -6458,6 +6517,8 @@ CONFIG_XEN_HAVE_PVMMU=y CONFIG_XEN_EFI=y CONFIG_XEN_AUTO_XLATE=y CONFIG_XEN_ACPI=y +CONFIG_XEN_SYMS=y +CONFIG_XEN_HAVE_VPMU=y CONFIG_STAGING=y CONFIG_SLICOSS=m CONFIG_PRISM2_USB=m @@ -6715,7 +6776,6 @@ CONFIG_IIO_PERIODIC_RTC_TRIGGER=m CONFIG_IIO_SIMPLE_DUMMY=m # CONFIG_IIO_SIMPLE_DUMMY_EVENTS is not set # CONFIG_IIO_SIMPLE_DUMMY_BUFFER is not set -CONFIG_FB_SM7XX=m CONFIG_FB_SM750=m CONFIG_FB_XGI=m CONFIG_FT1000=m @@ -6752,11 +6812,19 @@ CONFIG_LIRC_SERIAL=m CONFIG_LIRC_SERIAL_TRANSMITTER=y CONFIG_LIRC_SIR=m CONFIG_LIRC_ZILOG=m +CONFIG_STAGING_RDMA=y +CONFIG_INFINIBAND_AMSO1100=m +# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set +CONFIG_INFINIBAND_HFI1=m +# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set +CONFIG_HFI1_VERBS_31BIT_PSN=y +# CONFIG_SDMA_VERBOSITY is not set +# CONFIG_PRESCAN_RXQ is not set +CONFIG_INFINIBAND_IPATH=m # # Android # -CONFIG_USB_WPAN_HCD=m CONFIG_WIMAX_GDM72XX=m CONFIG_WIMAX_GDM72XX_QOS=y CONFIG_WIMAX_GDM72XX_K_MODE=y @@ -6810,11 +6878,21 @@ CONFIG_FB_TFT_SSD1351=m CONFIG_FB_TFT_ST7735R=m CONFIG_FB_TFT_TINYLCD=m CONFIG_FB_TFT_TLS8204=m +CONFIG_FB_TFT_UC1611=m CONFIG_FB_TFT_UC1701=m CONFIG_FB_TFT_UPD161704=m CONFIG_FB_TFT_WATTEROTT=m CONFIG_FB_FLEX=m CONFIG_FB_TFT_FBTFT_DEVICE=m +CONFIG_MOST=m +CONFIG_MOSTCORE=m +CONFIG_AIM_CDEV=m +CONFIG_AIM_NETWORK=m +CONFIG_AIM_SOUND=m +CONFIG_AIM_V4L2=m +CONFIG_HDM_DIM2=m +CONFIG_HDM_I2C=m +CONFIG_HDM_USB=m CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m CONFIG_ACERHDF=m @@ -6869,6 +6947,7 @@ CONFIG_INTEL_RST=m CONFIG_INTEL_SMARTCONNECT=m CONFIG_PVPANIC=m CONFIG_INTEL_PMC_IPC=m +CONFIG_SURFACE_PRO3_BUTTON=m CONFIG_CHROME_PLATFORMS=y CONFIG_CHROMEOS_LAPTOP=m CONFIG_CHROMEOS_PSTORE=m @@ -6990,8 +7069,8 @@ CONFIG_IIO_ST_ACCEL_3AXIS=m CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m CONFIG_KXSD9=m -CONFIG_MMA8452=m CONFIG_KXCJK1013=m +CONFIG_MMA8452=m CONFIG_MMA9551_CORE=m CONFIG_MMA9551=m CONFIG_MMA9553=m @@ -7134,8 +7213,11 @@ CONFIG_ISL29125=m CONFIG_HID_SENSOR_ALS=m CONFIG_HID_SENSOR_PROX=m CONFIG_JSA1212=m +CONFIG_RPR0521=m CONFIG_SENSORS_LM3533=m CONFIG_LTR501=m +CONFIG_OPT3001=m +CONFIG_PA12203001=m CONFIG_STK3310=m CONFIG_TCS3414=m CONFIG_TCS3472=m @@ -7223,6 +7305,7 @@ CONFIG_VME_USER=m CONFIG_VME_PIO2=m CONFIG_PWM=y CONFIG_PWM_SYSFS=y +CONFIG_PWM_CRC=y CONFIG_PWM_LP3943=m CONFIG_PWM_LPSS=m CONFIG_PWM_LPSS_PCI=m @@ -7255,7 +7338,12 @@ CONFIG_POWERCAP=y CONFIG_INTEL_RAPL=m CONFIG_MCB=m CONFIG_MCB_PCI=m + +# +# Performance monitor support +# CONFIG_RAS=y +CONFIG_AMD_MCE_INJ=m CONFIG_THUNDERBOLT=m # @@ -7265,8 +7353,10 @@ CONFIG_THUNDERBOLT=m CONFIG_LIBNVDIMM=y CONFIG_BLK_DEV_PMEM=m CONFIG_ND_BLK=m +CONFIG_ND_CLAIM=y CONFIG_ND_BTT=m CONFIG_BTT=y +CONFIG_NVMEM=m # # Firmware Drivers @@ -7301,7 +7391,7 @@ CONFIG_DCACHE_WORD_ACCESS=y # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y -CONFIG_EXT4_USE_FOR_EXT23=y +CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y CONFIG_EXT4_ENCRYPTION=m @@ -7736,7 +7826,6 @@ CONFIG_DEBUG_BUGVERBOSE=y CONFIG_TORTURE_TEST=m # CONFIG_RCU_TORTURE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=60 -# CONFIG_RCU_CPU_STALL_INFO is not set # CONFIG_RCU_TRACE is not set # CONFIG_RCU_EQS_DEBUG is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set @@ -7820,6 +7909,7 @@ CONFIG_TEST_BPF=m CONFIG_TEST_FIRMWARE=m CONFIG_TEST_UDELAY=m CONFIG_MEMTEST=y +CONFIG_TEST_STATIC_KEYS=m # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y CONFIG_KGDB=y @@ -7901,7 +7991,6 @@ CONFIG_SECURITY_APPARMOR=y CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 CONFIG_SECURITY_APPARMOR_HASH=y CONFIG_SECURITY_YAMA=y -CONFIG_SECURITY_YAMA_STACKED=y CONFIG_INTEGRITY=y CONFIG_INTEGRITY_SIGNATURE=y CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y @@ -7928,7 +8017,6 @@ CONFIG_EVM_EXTRA_SMACK_XATTRS=y # CONFIG_DEFAULT_SECURITY_SMACK is not set # CONFIG_DEFAULT_SECURITY_TOMOYO is not set CONFIG_DEFAULT_SECURITY_APPARMOR=y -# CONFIG_DEFAULT_SECURITY_YAMA is not set # CONFIG_DEFAULT_SECURITY_DAC is not set CONFIG_DEFAULT_SECURITY="apparmor" CONFIG_XOR_BLOCKS=m @@ -7964,6 +8052,7 @@ CONFIG_CRYPTO_USER=m CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=m CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_NULL2=y CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=m @@ -8012,6 +8101,7 @@ CONFIG_CRYPTO_CRCT10DIF=y CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_POLY1305=m +CONFIG_CRYPTO_POLY1305_X86_64=m CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=m @@ -8057,6 +8147,7 @@ CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20_X86_64=m CONFIG_CRYPTO_CHACHA20=m +CONFIG_CRYPTO_CHACHA20_X86_64=m CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m @@ -8104,12 +8195,20 @@ CONFIG_CRYPTO_DEV_CCP_DD=m CONFIG_CRYPTO_DEV_CCP_CRYPTO=m CONFIG_CRYPTO_DEV_QAT=m CONFIG_CRYPTO_DEV_QAT_DH895xCC=m +CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y CONFIG_PUBLIC_KEY_ALGO_RSA=y CONFIG_X509_CERTIFICATE_PARSER=y -CONFIG_PKCS7_MESSAGE_PARSER=m +CONFIG_PKCS7_MESSAGE_PARSER=y CONFIG_PKCS7_TEST_KEY=m +CONFIG_SIGNED_PE_FILE_VERIFICATION=y + +# +# Certificates for signature checking +# +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_SYSTEM_TRUSTED_KEYS="" CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_HAVE_KVM_IRQFD=y @@ -8145,7 +8244,6 @@ CONFIG_GENERIC_FIND_FIRST_BIT=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_IO=y -CONFIG_PERCPU_RWSEM=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y CONFIG_ARCH_HAS_FAST_MULTIPLIER=y CONFIG_CRC_CCITT=m @@ -8198,6 +8296,7 @@ CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m CONFIG_TEXTSEARCH_FSM=m +CONFIG_BTREE=y CONFIG_INTERVAL_TREE=y CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y @@ -8211,7 +8310,6 @@ CONFIG_GLOB=y CONFIG_NLATTR=y CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y CONFIG_LRU_CACHE=m -CONFIG_AVERAGE=y CONFIG_CLZ_TAB=y CONFIG_CORDIC=m CONFIG_DDR=y @@ -8223,5 +8321,7 @@ CONFIG_FONT_SUPPORT=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y +# CONFIG_SG_SPLIT is not set CONFIG_ARCH_HAS_SG_CHAIN=y CONFIG_ARCH_HAS_PMEM_API=y +CONFIG_ARCH_HAS_MMIO_FLUSH=y diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 77cf865c54..08533742ff 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -23,7 +23,7 @@ (define-module (gnu packages linux) #:use-module ((guix licenses) - #:hide (zlib)) + #:hide (zlib openssl)) #:use-module (gnu packages) #:use-module (gnu packages compression) #:use-module (gnu packages gcc) @@ -57,6 +57,7 @@ #:use-module (gnu packages asciidoc) #:use-module (gnu packages readline) #:use-module (gnu packages calendar) + #:use-module (gnu packages tls) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) @@ -210,7 +211,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM." #f))) (define-public linux-libre - (let* ((version "4.2.3") + (let* ((version "4.3.2") (build-phase '(lambda* (#:key system inputs #:allow-other-keys #:rest args) ;; Apply the neat patch. @@ -220,6 +221,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM." (let ((arch (car (string-split system #\-)))) (setenv "ARCH" (cond ((string=? arch "i686") "i386") + ((string=? arch "mips64el") "mips") (else arch))) (format #t "`ARCH' set to `~a'~%" (getenv "ARCH"))) @@ -266,7 +268,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM." (for-each (lambda (file) (copy-file file (string-append out "/" (basename file)))) - (find-files "." "^(bzImage|System\\.map)$")) + (find-files "." "^(bzImage|vmlinuz|System\\.map)$")) (copy-file ".config" (string-append out "/config")) (zero? (system* "make" (string-append "DEPMOD=" mit "/sbin/depmod") @@ -283,10 +285,12 @@ for SYSTEM, or #f if there is no configuration for SYSTEM." (uri (linux-libre-urls version)) (sha256 (base32 - "1xpx32k6bzxqg5y8lyaana97jjcli00iyqklh5fdhirfvjb9dimd")))) + "0d87jbmplv36kxq40k44zh3sj82qp79lf8n4by7jb2wvyk06rvfg")))) (build-system gnu-build-system) + (supported-systems '("x86_64-linux" "i686-linux")) (native-inputs `(("perl" ,perl) ("bc" ,bc) + ("openssl" ,openssl) ("module-init-tools" ,module-init-tools) ("patch/freedo+gnu" ,%boot-logo-patch) @@ -445,8 +449,9 @@ providing the system administrator with some help in common tasks.") ("net-base" ,net-base))) ;for tests (home-page "https://www.kernel.org/pub/linux/utils/util-linux/") (synopsis "Collection of utilities for the Linux kernel") - (description - "Util-linux is a random collection of utilities for the Linux kernel.") + (description "Util-linux is a diverse collection of Linux kernel +utilities. It provides dmesg and includes tools for working with filesystems, +block devices, UUIDs, TTYs, and many other tools.") ;; Note that util-linux doesn't use the same license for all the ;; code. GPLv2+ is the default license for a code without an @@ -542,7 +547,7 @@ slabtop, and skill.") (arguments '(;; util-linux is not the preferred source for some of the libraries and ;; commands, so disable them (see, e.g., - ;; <http://git.buildroot.net/buildroot/commit/?id=e1ffc2f791b336339909c90559b7db40b455f172>.) + ;; <http://git.buildroot.net/buildroot/commit/?id=e1ffc2f791b33633>.) #:configure-flags '("--disable-libblkid" "--disable-libuuid" "--disable-uuidd" "--disable-fsck" @@ -1361,7 +1366,7 @@ file system is as easy as logging into the server with an SSH client.") (define-public numactl (package (name "numactl") - (version "2.0.9") + (version "2.0.11") (source (origin (method url-fetch) (uri (string-append @@ -1370,35 +1375,13 @@ file system is as easy as logging into the server with an SSH client.") ".tar.gz")) (sha256 (base32 - "073myxlyyhgxh1w3r757ajixb7s2k69czc3r0g12c3scq7k3784w")))) + "0qbqa9gac2vlahrngi553hws2mqgqdwv2lc69a3yx4gq6l90j325")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - ;; There's no 'configure' script, just a raw makefile. - (substitute* "Makefile" - (("^prefix := .*$") - (string-append "prefix := " (assoc-ref outputs "out") - "\n")) - (("^libdir := .*$") - ;; By default the thing tries to install under - ;; $prefix/lib64 when on a 64-bit platform. - (string-append "libdir := $(prefix)/lib\n")))) - %standard-phases) - - #:make-flags (list - ;; By default the thing tries to use 'cc'. - "CC=gcc" - - ;; Make sure programs have an RPATH so they can find - ;; libnuma.so. - (string-append "LDLIBS=-Wl,-rpath=" - (assoc-ref %outputs "out") "/lib")) - - ;; There's a 'test' target, but it requires NUMA support in the kernel + '(;; There's a 'test' target, but it requires NUMA support in the kernel ;; to run, which we can't assume to have. #:tests? #f)) + (home-page "http://oss.sgi.com/projects/libnuma/") (synopsis "Tools for non-uniform memory access (NUMA) machines") (description @@ -1540,7 +1523,7 @@ from the module-init-tools project.") ;; The post-systemd fork, maintained by Gentoo. (package (name "eudev") - (version "2.1.1") + (version "3.1.5") (source (origin (method url-fetch) (uri (string-append @@ -1548,55 +1531,15 @@ from the module-init-tools project.") version ".tar.gz")) (sha256 (base32 - "0shf5vqiz9fdxl95aa1a8vh0xjxwim3psc39wr2xr8lnahf11vva")) - (patches (list (search-patch "eudev-rules-directory.patch"))) - (modules '((guix build utils))) - (snippet - ;; 'configure' checks uses <linux/btrfs.h> as an indication of - ;; whether Linux headers are available, but it doesn't actually - ;; use it, and our 'linux-libre-headers' package doesn't - ;; provide it. So just remove that. - '(substitute* "configure" - (("linux/btrfs\\.h") - ""))))) + "0akg9gcc3c2p56xbhlvbybqavcprly5q0bvk655zwl6d62j8an7p")) + (patches (list (search-patch "eudev-rules-directory.patch"))))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) - ("gperf" ,gperf) - ("glib" ,glib "bin") ; glib-genmarshal, etc. - ("perl" ,perl) ; for the tests - ("python" ,python-2))) ; ditto + ("perl" ,perl) + ("gperf" ,gperf))) (inputs - `(("kmod" ,kmod) - ("pciutils" ,pciutils) - ("usbutils" ,usbutils) - ("util-linux" ,util-linux) - ("glib" ,glib) - ("gobject-introspection" ,gobject-introspection))) - (arguments - `(#:configure-flags (list "--enable-libkmod" - - (string-append - "--with-pci-ids-path=" - (assoc-ref %build-inputs "pciutils") - "/share/pci.ids.gz") - - "--with-firmware-path=/no/firmware" - - ;; Work around undefined reference to - ;; 'mq_getattr' in sc-daemon.c. - "LDFLAGS=-lrt") - #:phases - (alist-cons-before - 'build 'pre-build - ;; The program 'g-ir-scanner' (part of the package - ;; 'gobject-introspection'), to generate .gir files, makes some - ;; library pre-processing. During that phase it looks for the C - ;; compiler as either 'cc' or as defined by the environment variable - ;; 'CC' (with code in 'giscanner/dumper.py'). - (lambda* _ - (setenv "CC" "gcc")) - %standard-phases))) + `(("kmod" ,kmod))) (home-page "http://www.gentoo.org/proj/en/eudev/") (synopsis "Userspace device management") (description "Udev is a daemon which dynamically creates and removes @@ -2327,7 +2270,7 @@ applications.") (define-public bluez (package (name "bluez") - (version "5.30") + (version "5.35") (source (origin (method url-fetch) (uri (string-append @@ -2335,7 +2278,9 @@ applications.") version ".tar.xz")) (sha256 (base32 - "0b1qbnq1xzcdw5rajg9yyg31bf21jnff0n6gnf1snz89bbdllfhy")))) + "1qphz25hganfnd5ipfscbj7s70anv5favmwqmi9ig2saciaf1zhs")) + (patches + (list (search-patch "bluez-tests.patch"))))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -2418,3 +2363,46 @@ id=0B7CLI-REKbE3VTdaa0EzTkhYdU0") "This package provides a FUSE-based file system that provides read and write access to exFAT devices.") (license gpl2+))) + +(define-public gpm + (package + (name "gpm") + (version "1.20.7") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.nico.schottelius.org/software/gpm/archives/gpm-" + version ".tar.bz2")) + (sha256 + (base32 + "13d426a8h403ckpc8zyf7s2p5rql0lqbg2bv0454x0pvgbfbf4gh")))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'configure 'bootstrap + (lambda _ + ;; The tarball was not generated with 'make dist' so we + ;; need to bootstrap things ourselves. + (and (zero? (system* "./autogen.sh")) + (begin + (patch-makefile-SHELL "Makefile.include.in") + #t))))) + + ;; Make sure programs find libgpm.so. + #:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") + "/lib")))) + (native-inputs + `(("texinfo" ,texinfo) + ("bison" ,bison) + ("flex" ,flex) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (home-page "http://www.nico.schottelius.org/software/gpm/") + (synopsis "Mouse support for the Linux console") + (description + "The GPM (general-purpose mouse) daemon is a mouse server for +applications running on the Linux console. It allows users to select items +and copy/paste text in the console and in xterm.") + (license gpl2+))) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 78ff83de15..726cfcd5cb 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -59,15 +59,16 @@ #:configure-flags '("--enable-ansi") ; required for use by the maxima package #:phases (alist-cons-before 'configure 'pre-conf - (lambda _ + (lambda _ ;; Patch bug when building readline support. This bug was ;; also observed by Debian ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=741819 (substitute* "o/gcl_readline.d" - (("rl_attempted_completion_function = \\(CPPFunction \\*\\)rl_completion;") + (("rl_attempted_completion_function = \ +\\(CPPFunction \\*\\)rl_completion;") "rl_attempted_completion_function = rl_completion;")) - (substitute* - (append + (substitute* + (append '("pcl/impl/kcl/makefile.akcl" "add-defs" "unixport/makefile.dos" @@ -115,8 +116,7 @@ interface to the Tk widget system.") ("libgc" ,libgc) ("libffi" ,libffi))) (arguments - '(#:tests? #f - ;; During 'make check', ECL fails to initialize with "protocol not + '(;; During 'make check', ECL fails to initialize with "protocol not ;; supported", presumably because /etc/protocols is missing in the ;; build environment. See <http://sourceforge.net/p/ecls/bugs/300/>. ;; @@ -139,7 +139,7 @@ interface to the Tk widget system.") ;; (string-append ;; "ECL=" (assoc-ref outputs "out") "/bin/ecl")))) ;; rearranged-phases)) - )) + #:tests? #f)) (home-page "http://ecls.sourceforge.net/") (synopsis "Embeddable Common Lisp") (description "ECL is an implementation of the Common Lisp language as diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 18e0ca9c76..d5e5ed65ad 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -87,7 +87,10 @@ of programming tools as well as libraries with equivalent functionality.") functions for C and C++ programs. It also provides header files that allow C and C++ source code to interface with the \"sanitization\" passes of the clang compiler. In LLVM this library is called \"compiler-rt\".") - (license ncsa))) + (license ncsa) + + ;; <http://compiler-rt.llvm.org/> doesn't list MIPS as supported. + (supported-systems (delete "mips64el-linux" %supported-systems)))) (define (clang-from-llvm llvm clang-runtime hash) (package diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index 87f53d1637..d27c024cfb 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -37,7 +37,8 @@ version ".tar.gz")) (sha256 (base32 "0b8034v1s82n4dg5rzcn12067ha3nxaylp2vdp8gg08kjsbzphhk")) - (patches (list (search-patch "lua-pkgconfig.patch"))))) + (patches (list (search-patch "lua-pkgconfig.patch") + (search-patch "lua52-liblua-so.patch"))))) (build-system gnu-build-system) (inputs `(("readline", readline))) (arguments @@ -89,8 +90,8 @@ for configuration, scripting, and rapid prototyping.") version ".tar.gz")) (sha256 (base32 "0ydxpqkmsn2c341j4r2v6r5r0ig3kbwv3i9jran3iv81s6r6rgjm")) - (patches (list (search-patch "luajit-symlinks.patch") - (search-patch "luajit-no_ldconfig.patch"))))) + (patches (list (search-patch "luajit-symlinks.patch") + (search-patch "luajit-no_ldconfig.patch"))))) (build-system gnu-build-system) (arguments '(#:tests? #f ;luajit is distributed without tests diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 467b44ce3d..bfa88ac964 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -278,6 +278,9 @@ sample proximities between pairs of cases.") ("zlib" ,zlib))) (native-inputs `(("pkg-config" ,pkg-config))) + ;; Non-portable SSE instructions are used so building fails on platforms + ;; other than x86_64. + (supported-systems '("x86_64-linux")) (home-page "http://shogun-toolbox.org/") (synopsis "Machine learning toolbox") (description diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 25407b835a..bf28ec674e 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,13 +31,13 @@ #:use-module (gnu packages base) #:use-module (gnu packages backup) #:use-module (gnu packages bash) + #:use-module (gnu packages bison) #:use-module (gnu packages curl) #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages databases) #:use-module (gnu packages dejagnu) #:use-module (gnu packages emacs) #:use-module (gnu packages enchant) - #:use-module (gnu packages gdbm) #:use-module (gnu packages ghostscript) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) @@ -44,11 +45,11 @@ #:use-module (gnu packages gsasl) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) + #:use-module (gnu packages flex) #:use-module (gnu packages libcanberra) #:use-module (gnu packages libidn) #:use-module (gnu packages linux) #:use-module (gnu packages m4) - #:use-module (gnu packages databases) #:use-module (gnu packages ncurses) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) @@ -70,6 +71,7 @@ (expat . license:expat))) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system perl) @@ -207,7 +209,7 @@ operating systems.") (define-public gmime (package (name "gmime") - (version "2.6.19") + (version "2.6.20") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gmime/" @@ -215,7 +217,7 @@ operating systems.") "/gmime-" version ".tar.xz")) (sha256 (base32 - "0jm1fgbjgh496rsc0il2y46qd4bqq2ln9168p4zzh68mk4ml1yxg")))) + "0rfzbgsh8ira5p76kdghygl5i3fvmmx4wbw5rp7f8ajc4vxp18g0")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -225,20 +227,21 @@ operating systems.") ("zlib" ,zlib))) (arguments `(#:phases - (alist-cons-after - 'unpack 'patch-paths-in-tests - (lambda _ - ;; The test programs run several programs using 'system' with - ;; hard-coded paths. Here we patch them all. We also change "gpg" - ;; to "gpg2". We use ISO-8859-1 here because test-iconv.c contains - ;; raw byte sequences in several different encodings. - (with-fluids ((%default-port-encoding #f)) - (substitute* (find-files "tests" "\\.c$") - (("(system *\\(\")(/[^ ]*)" all pre prog-path) - (let* ((base (basename prog-path)) - (prog (which (if (string=? base "gpg") "gpg2" base)))) - (string-append pre (or prog (error "not found: " base)))))))) - %standard-phases))) + (modify-phases %standard-phases + (add-after + 'unpack 'patch-paths-in-tests + (lambda _ + ;; The test programs run several programs using 'system' with + ;; hard-coded paths. Here we patch them all. We also change "gpg" + ;; to "gpg2". We use ISO-8859-1 here because test-iconv.c contains + ;; raw byte sequences in several different encodings. + (with-fluids ((%default-port-encoding #f)) + (substitute* (find-files "tests" "\\.c$") + (("(system *\\(\")(/[^ ]*)" all pre prog-path) + (let* ((base (basename prog-path)) + (prog (which (if (string=? base "gpg") "gpg2" base)))) + (string-append pre + (or prog (error "not found: " base)))))))))))) (home-page "http://spruce.sourceforge.net/gmime/") (synopsis "MIME message parser and creator library") (description @@ -306,6 +309,15 @@ can read the same mailbox from multiple computers. It supports IMAP as REMOTE repository and Maildir/IMAP as LOCAL repository.") (license gpl2+))) +(define %mu-gtester-patch + ;; Ensure tests have unique names, to placate GLib 2.6's gtester. + (origin + (method url-fetch) + (uri "https://github.com/djcb/mu/commit/b44039ed.patch") + (sha256 + (base32 + "165hryqqhx3wah8a4f5jaq465azx1pm9r4jid7880pys9gd88qlv")))) + (define-public mu (package (name "mu") @@ -317,7 +329,8 @@ repository and Maildir/IMAP as LOCAL repository.") (file-name (string-append "mu-" version ".tar.gz")) (sha256 (base32 - "0wj33pma8xgjvn2akk7khzbycwn4c9sshxvzdph9dnpy7gyqxj51")))) + "0wj33pma8xgjvn2akk7khzbycwn4c9sshxvzdph9dnpy7gyqxj51")) + (patches (list %mu-gtester-patch)))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -505,14 +518,14 @@ MailCore 2.") (define-public claws-mail (package (name "claws-mail") - (version "3.11.1") + (version "3.13.0") (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/claws-mail/claws-mail-" version + "http://www.claws-mail.org/releases/" name "-" version ".tar.xz")) (sha256 - (base32 "0cyixz1jgfpi8abh9fbb8ylx9mcvw4jqj81cms666wpqr6v828yp")))) + (base32 "0fpr9gdgrs5yggm61a6135ca06x0cflddsh8dwfqmpb3dj07cl1n")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("bogofilter" ,bogofilter) @@ -550,14 +563,14 @@ which can add many functionalities to the base client.") (define-public msmtp (package (name "msmtp") - (version "1.4.32") + (version "1.6.2") (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/msmtp/msmtp-" version ".tar.bz2")) + "mirror://sourceforge/msmtp/msmtp-" version ".tar.xz")) (sha256 (base32 - "122z38pv4q03w3mbnhrhg4w85a51258sfdg2ips0b6cgwz3wbw1b")))) + "12c7ljahb06pgn8yvvw526xvr11vnr6d4nr0apylixddpxycsvig")))) (build-system gnu-build-system) (inputs `(("libidn" ,libidn) @@ -570,7 +583,7 @@ which can add many functionalities to the base client.") (arguments `(#:configure-flags (list "--with-libgsasl" "--with-libidn" - "--with-ssl=gnutls"))) + "--with-tls=gnutls"))) (synopsis "Simple and easy to use SMTP client with decent sendmail compatibility") (description @@ -667,7 +680,7 @@ facilities for checking incoming mail.") (define-public dovecot (package (name "dovecot") - (version "2.2.16") + (version "2.2.19") (source (origin (method url-fetch) @@ -675,7 +688,7 @@ facilities for checking incoming mail.") (version-major+minor version) "/" name "-" version ".tar.gz")) (sha256 (base32 - "1w6gg4h9mxg3i8faqpmgj19imzyy001b0v8ihch8ma3zl63i5kjn")))) + "17sf5aancad4pg1vx1606k99389wg76blpqzmnmxlz4hklzix7km")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -931,4 +944,66 @@ Email::Send library.") format and headers.") (license (package-license perl)))) +(define-public libesmtp + (package + (name "libesmtp") + (version "1.0.6") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.stafford.uklinux.net/libesmtp/libesmtp-" + version ".tar.bz2")) + (sha256 + (base32 + "02zbniyz7qys1jmx3ghx21kxmns1wc3hmv80gp7ag7yra9f1m9nh")))) + (build-system gnu-build-system) + (propagated-inputs + `(("openssl" ,openssl))) + (home-page "http://www.stafford.uklinux.net/libesmtp/") + (synopsis "Library for sending mail via remote hosts using SMTP") + (description "libESMTP is an SMTP client which manages posting (or +submission of) electronic mail via a preconfigured Mail Transport Agent (MTA). +It may be used as part of a Mail User Agent (MUA) or other program that must +be able to post electronic mail where mail functionality may not be that +program's primary purpose.") + (license (list lgpl2.1+ gpl2+)))) + +(define-public esmtp + (package + (name "esmtp") + (version "1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/andywingo/esmtp.git") + (commit "01bf9fc"))) + (sha256 + (base32 + "1ay282rrl92h0m0m8z5zzjnwiiagi7c78aq2qvhia5mw7prwfyw2")) + (file-name (string-append name "-" version "-checkout")))) + (arguments + `(#:phases (modify-phases %standard-phases + (add-before + 'configure 'autoconf + (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) + (build-system gnu-build-system) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (inputs + `(("libesmtp" ,libesmtp))) + (home-page "http://sourceforge.net/projects/esmtp/") + (synopsis "Relay-only mail transfer agent (MTA)") + (description "Esmtp is a simple relay-only mail transfer agent built using +libESMTP. It sends e-mail via a remote SMTP server using credentials from the +user's @file{$HOME/.esmtprc} configuration file; see the @command{esmtprc} man +page for more on configuration. This package also provides minimal +compatibility shims for the @command{sendmail}, @command{mailq}, and +@command{newaliases} commands.") + (license gpl2+))) + ;;; mail.scm ends here diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index 46b7d8b9b0..b11c0d149c 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014 David Thompson <dthompson2@worcester.edu> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Alex Kost <alezost@gmail.com> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,9 +25,9 @@ #:use-module (guix download) #:use-module (guix packages) #:use-module (guix build-system gnu) + #:use-module (gnu packages databases) #:use-module (gnu packages flex) #:use-module (gnu packages gawk) - #:use-module (gnu packages gdbm) #:use-module (gnu packages groff) #:use-module (gnu packages less) #:use-module (gnu packages lynx) @@ -162,7 +163,7 @@ Linux kernel and C library interfaces employed by user-space programs.") (define-public help2man (package (name "help2man") - (version "1.47.2") + (version "1.47.3") (source (origin (method url-fetch) @@ -170,7 +171,7 @@ Linux kernel and C library interfaces employed by user-space programs.") version ".tar.xz")) (sha256 (base32 - "0z1zgw6k1fba59fii6ksfi1g2gci6i4ysa3kdfh3j475fdkn1if4")))) + "0miqq77ssk5rgsc9xlv7k5n2wk2c5wv2m1kh4zhbwrggfmjaycn2")))) (build-system gnu-build-system) (arguments `(;; There's no `check' target. #:tests? #f)) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 5fa37d1535..0c0f013ca4 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -149,7 +150,7 @@ semiconductors.") (define-public gsl (package (name "gsl") - (version "1.16") + (version "2.1") (source (origin (method url-fetch) @@ -157,24 +158,10 @@ semiconductors.") version ".tar.gz")) (sha256 (base32 - "0lrgipi0z6559jqh82yx8n4xgnxkhzj46v96dl77hahdp58jzg3k")) - (patches (map search-patch '("gsl-poly-test-fix-pt1.patch" - "gsl-poly-test-fix-pt2.patch"))))) + "0rhcia9jhr3p1f1wybwyllwqfs9bggz99i3mi5lpyqcpff1hdbar")))) (build-system gnu-build-system) (arguments - `(#:parallel-tests? #f - #:phases - (alist-replace - 'configure - (lambda* (#:key target system outputs #:allow-other-keys #:rest args) - (let ((configure (assoc-ref %standard-phases 'configure))) - ;; disable numerically unstable test on i686, see thread at - ;; http://lists.gnu.org/archive/html/bug-gsl/2011-11/msg00019.html - (if (string=? (or target system) "i686-linux") - (substitute* "ode-initval2/Makefile.in" - (("TESTS = \\$\\(check_PROGRAMS\\)") "TESTS ="))) - (apply configure args))) - %standard-phases))) + `(#:parallel-tests? #f)) (home-page "http://www.gnu.org/software/gsl/") (synopsis "Numerical library for C and C++") (description @@ -188,7 +175,7 @@ numbers.") (define-public glpk (package (name "glpk") - (version "4.56") + (version "4.57") (source (origin (method url-fetch) @@ -196,7 +183,7 @@ numbers.") version ".tar.gz")) (sha256 (base32 - "0syzix6qvpn0fzp08c84c8snansf1cam5vd0dk2w91mz2c85d18h")))) + "0p17jj1ixd2m9lnsvx8nywmfmnplfk5gvw25r1gy84qzrjkv48vk")))) (build-system gnu-build-system) (inputs `(("gmp" ,gmp))) @@ -234,7 +221,7 @@ LP/MIP solver is included in the package.") ("pango" ,pango) ("readline" ,readline) ("gtk" ,gtk+-2) - ("gtksourceview" ,gtksourceview) + ("gtksourceview" ,gtksourceview-2) ("zlib" ,zlib))) (native-inputs `(("glib" ,glib "bin") ;for glib-genmarshal @@ -350,22 +337,24 @@ singular value problems.") (define-public gnuplot (package (name "gnuplot") - (version "4.6.3") + (version "5.0.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gnuplot/gnuplot/" - version "/gnuplot-" version ".tar.gz")) + version "/gnuplot-" version ".tar.gz")) (sha256 (base32 - "1xd7gqdhlk7k1p9yyqf9vkk811nadc7m4si0q3nb6cpv4pxglpyz")))) + "0irwig94w3f8bn4a444hrjnp7w55vqwv8gqj42jiwn6zf5z5bg3w")))) (build-system gnu-build-system) (inputs `(("readline" ,readline) ("cairo" ,cairo) ("pango" ,pango) ("gd" ,gd))) - (native-inputs `(("texlive" ,texlive) - ("pkg-config" ,pkg-config))) + (native-inputs `(("pkg-config" ,pkg-config) + ;; Need 'tex', 'latex', 'pdflatex', 'kpsexand', and + ;; 'texhash' binaries. + ("texlive" ,texlive-bin))) (home-page "http://www.gnuplot.info") (synopsis "Command-line driven graphing utility") (description "Gnuplot is a portable command-line driven graphing @@ -376,7 +365,7 @@ plotting engine by third-party applications like Octave.") ;; X11 Style with the additional restriction that derived works may only be ;; distributed as patches to the original. (license (license:fsf-free - "http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright")))) + "http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright")))) (define-public hdf5 (package @@ -414,15 +403,15 @@ extremely large and complex data collections.") (define-public octave (package (name "octave") - (version "3.8.2") + (version "4.0.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/octave/octave-" - version ".tar.gz")) + version ".tar.gz")) (sha256 (base32 - "05slz8yx8k91fqlnfr1f0vni95iq9qmchz41c7nf4isn3b2fjn7j")))) + "101jr9yck798586jz4vkjcgk36zksmxf1pxrzvipgn2xgyay0zjc")))) (build-system gnu-build-system) (inputs `(("lapack" ,lapack) @@ -513,7 +502,7 @@ ASCII text files using Gmsh's own scripting language.") (define-public petsc (package (name "petsc") - (version "3.6.0") + (version "3.6.2") (source (origin (method url-fetch) @@ -521,7 +510,7 @@ ASCII text files using Gmsh's own scripting language.") (uri (string-append "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/" "petsc-lite-" version ".tar.gz")) (sha256 - (base32 "0lzhk1flgszks1wlhz2b92rnlx5np7bgad8vqy9fcqziz5b4pr26")))) + (base32 "13h0m5f9xsdpps4lsp59iz2m7zkapwavq2zfkfvs3ab6sndla0l9")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-2) @@ -638,7 +627,7 @@ scientific applications modeled by partial differential equations.") (define-public slepc (package (name "slepc") - (version "3.6.0") + (version "3.6.2") (source (origin (method url-fetch) @@ -646,7 +635,7 @@ scientific applications modeled by partial differential equations.") "filename=slepc-" version ".tar.gz")) (sha256 (base32 - "1ij8w864spzk4cq2mmkssqyj0mbckkkvxm0wpw9gywy2jgbj07jr")))) + "1pv5iqz2kc8sj49zsabyz4arnfpana8mjrhq31vzgk16xldk3d1a")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-2))) @@ -659,7 +648,7 @@ scientific applications modeled by partial differential equations.") `(#:parallel-build? #f ;build is parallel by default #:configure-flags `(,(string-append "--with-arpack-dir=" - (assoc-ref %build-inputs "arpack"))) + (assoc-ref %build-inputs "arpack") "/lib")) #:phases (modify-phases %standard-phases (replace @@ -673,7 +662,7 @@ scientific applications modeled by partial differential equations.") (format #t "build directory: ~s~%" (getcwd)) (format #t "configure flags: ~s~%" flags) (setenv "SLEPC_DIR" (getcwd)) - (setenv "PETSC_DIR" (assoc-ref %build-inputs "petsc")) + (setenv "PETSC_DIR" (assoc-ref inputs "petsc")) (zero? (apply system* "./configure" flags))))) (add-after 'install 'delete-doc @@ -738,7 +727,7 @@ arising after the discretization of partial differential equations.") (define-public mumps (package (name "mumps") - (version "5.0.0") + (version "5.0.1") (source (origin (method url-fetch) @@ -746,7 +735,7 @@ arising after the discretization of partial differential equations.") version ".tar.gz")) (sha256 (base32 - "0690yp73sqk8zn2jnrzdr5swnjdyd7j0774s4xamjjwcxarw87hr")) + "1820jfp3mbl7n85765v5mp6p0gzqpgr4d2lrnhwj4gl7cwp5ndah")) (patches (list (search-patch "mumps-build-parallelism.patch"))))) (build-system gnu-build-system) (inputs @@ -1461,7 +1450,7 @@ constant parts of it.") (define-public openblas (package (name "openblas") - (version "0.2.14") + (version "0.2.15") (source (origin (method url-fetch) @@ -1470,17 +1459,18 @@ constant parts of it.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0av3pd96j8rx5i65f652xv9wqfkaqn0w4ma1gvbyz73i6j2hi9db")))) + "1k5f6vjlk54qlplk5m7xkbaw6g2y7dl50lwwdv6xsbcsgsbxfcpy")))) (build-system gnu-build-system) (arguments `(#:tests? #f ;no "check" target - ;; DYNAMIC_ARCH is only supported on x86. When it is disabled, - ;; OpenBLAS will tune itself to the build host, so we need to disable - ;; substitutions. + ;; DYNAMIC_ARCH is only supported on x86. When it is disabled and no + ;; TARGET is specified, OpenBLAS will tune itself to the build host, so + ;; we need to disable substitutions. #:substitutable? ,(let ((system (or (%current-target-system) (%current-system)))) (or (string-prefix? "x86_64" system) - (string-prefix? "i686" system))) + (string-prefix? "i686" system) + (string-prefix? "mips" system))) #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) "SHELL=bash" @@ -1491,10 +1481,16 @@ constant parts of it.") ;; Unfortunately, this is not supported on non-x86 architectures, ;; where it leads to failed builds. ,@(let ((system (or (%current-target-system) (%current-system)))) - (if (or (string-prefix? "x86_64" system) + (cond + ((or (string-prefix? "x86_64" system) (string-prefix? "i686" system)) - '("DYNAMIC_ARCH=1") - '()))) + '("DYNAMIC_ARCH=1")) + ;; On MIPS we force the "SICORTEX" TARGET, as for the other + ;; two available MIPS targets special extended instructions + ;; for Loongson cores are used. + ((string-prefix? "mips" system) + '("TARGET=SICORTEX")) + (else '())))) ;; no configure script #:phases (alist-delete 'configure %standard-phases))) (inputs @@ -1968,3 +1964,30 @@ algorithm and optimum parameters depending on the dataset. FLANN is written in C++ and contains bindings for C, Octave and Python.") (license (license:non-copyleft "file://COPYING" "See COPYING in the distribution.")))) + +(define-public wcalc + (package + (name "wcalc") + (version "2.5") + (source + (origin + (method url-fetch) + (uri + (string-append + "mirror://sourceforge/w-calc/wcalc-" version ".tar.bz2")) + (sha256 + (base32 + "1vi8dl6rccqiq1apmpwawyg2ywx6a1ic1d3cvkf2hlwk1z11fb0f")))) + (build-system gnu-build-system) + (inputs + `(("mpfr" ,mpfr) + ("readline" ,readline))) + (home-page "http://w-calc.sourceforge.net/index.php") + (synopsis "Flexible command-line scientific calculator") + (description "Wcalc is a very capable calculator. It has standard functions +(sin, asin, and sinh for example, in either radians or degrees), many +pre-defined constants (pi, e, c, etc.), support for using variables, \"active\" +variables, a command history, hex/octal/binary input and output, unit +conversions, embedded comments, and an expandable expression entry field. It +evaluates expressions using the standard order of operations.") + (license license:gpl2+))) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 731acb54c6..140108987b 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -424,7 +425,7 @@ was initially a fork of xmpppy, but is using non-blocking sockets.") (define-public gajim (package (name "gajim") - (version "0.16.3") + (version "0.16.4") (source (origin (method url-fetch) (uri (string-append "https://gajim.org/downloads/" @@ -432,7 +433,7 @@ was initially a fork of xmpppy, but is using non-blocking sockets.") "/gajim-" version ".tar.bz2")) (sha256 (base32 - "05a59hf9wna6n9fi0a4bhz1hifqj21bwb4ff9rd0my23rdwmij51")))) + "0zyfs7q1qg8iqszr8l1gb18gqla6zrrfsgpmbxblpi9maqxas5i1")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/mit-krb5.scm b/gnu/packages/mit-krb5.scm index b79d4d34bc..16bef8d97d 100644 --- a/gnu/packages/mit-krb5.scm +++ b/gnu/packages/mit-krb5.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,59 +25,88 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix utils) #:use-module (guix build-system gnu)) (define-public mit-krb5 (package (name "mit-krb5") - (version "1.11.3") + (version "1.13.2") (source (origin (method url-fetch) (uri (string-append "http://web.mit.edu/kerberos/www/dist/krb5/" - (string-copy version 0 (string-rindex version #\.)) + (version-major+minor version) "/krb5-" version "-signed.tar")) (sha256 (base32 - "1daiaxgkxcryqs37w28v4x1vajqmay4l144d1zd9c2d7jjxr9gcs")))) + "1qbdzyrws7d0q4filsibh28z54pd5l987jr0ygv43iq9085w6a75")))) (build-system gnu-build-system) (native-inputs - `(("patch/init-fix" ,(search-patch "mit-krb5-init-fix.patch")) - ("bison" ,bison) - ("perl" ,perl))) + `(("bison" ,bison) + ("perl" ,perl) + + ;; Include the patches as native-inputs. + ,@(map (lambda (label) + (let ((input-name (string-append "patch/" label)) + (file-name (string-append name "-" label ".patch"))) + `(,input-name ,(search-patch file-name)))) + '("CVE-2015-2695-pt1" + "CVE-2015-2695-pt2" + "CVE-2015-2696" + "CVE-2015-2697" + "CVE-2015-2698-pt1" + "CVE-2015-2698-pt2")))) (arguments - '(#:phases - (alist-replace - 'unpack - (lambda* (#:key source #:allow-other-keys) - (let ((inner - (substring source - (string-index-right source #\k) - (string-index-right source #\-)))) - (and (zero? (system* "tar" "xvf" source)) - (zero? (system* "tar" "xvf" (string-append inner ".tar.gz"))) - (chdir inner) - (chdir "src") - ;; XXX The current patch system does not support unusual - ;; source unpack methods, so we have to apply this patch in a - ;; non-standard way. - (zero? (system* "patch" "-p1" "--force" "-i" - (assoc-ref %build-inputs "patch/init-fix")))))) - (alist-replace - 'check - (lambda* (#:key inputs #:allow-other-keys #:rest args) - (let ((perl (assoc-ref inputs "perl")) - (check (assoc-ref %standard-phases 'check))) - (substitute* "plugins/kdb/db2/libdb2/test/run.test" - (("/bin/cat") (string-append perl "/bin/perl"))) - (substitute* "plugins/kdb/db2/libdb2/test/run.test" - (("D/bin/sh") (string-append "D" (which "bash")))) - (substitute* "plugins/kdb/db2/libdb2/test/run.test" - (("bindir=/bin/.") (string-append "bindir=" perl "/bin"))) - ;; use existing files and directories in test + `(#:modules ((ice-9 ftw) + (ice-9 match) + (srfi srfi-1) + ,@%gnu-build-system-modules) + #:phases + (modify-phases %standard-phases + (replace 'unpack + (lambda* (#:key source #:allow-other-keys) + (define (sub-directory? name) + (and (not (member name '("." ".."))) + (equal? (stat:type (stat name)) + 'directory))) + (and (zero? (system* "tar" "xvf" source)) + (match (find-files "." "\\.tar\\.gz$") + ((inner-tar-file) + (zero? (system* "tar" "xvf" inner-tar-file)))) + (match (scandir "." sub-directory?) + ((directory) + (chdir directory) + #t))))) + + (add-after 'unpack 'apply-patches + (lambda* (#:key inputs native-inputs #:allow-other-keys) + (let ((patches (filter (match-lambda + ((name . file) + (string-prefix? "patch/" name))) + (or native-inputs inputs)))) + (every (match-lambda + ((name . file) + (format (current-error-port) + "applying '~a'...~%" name) + (zero? (system* "patch" "-p1" "--force" "-i" file)))) + patches)))) + + (add-after 'apply-patches 'enter-source-directory + (lambda _ + (chdir "src") + #t)) + + (add-before 'check 'pre-check + (lambda* (#:key inputs #:allow-other-keys) + (let ((perl (assoc-ref inputs "perl"))) + (substitute* "plugins/kdb/db2/libdb2/test/run.test" + (("/bin/cat") (string-append perl "/bin/perl")) + (("D/bin/sh") (string-append "D" (which "bash"))) + (("bindir=/bin/.") (string-append "bindir=" perl "/bin")))) + + ;; avoid service names since /etc/services is unavailable (substitute* "tests/resolve/Makefile" (("-p telnet") "-p 23")) - ;; avoid service names since /etc/services is unavailable - (apply check args))) - %standard-phases)))) + #t))))) (synopsis "MIT Kerberos 5") (description "Massachusetts Institute of Technology implementation of Kerberos. diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index 4ce6917433..5dec2a8b3f 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -33,12 +33,14 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages xiph) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages linux) ;alsa-lib #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) + #:use-module (guix build-system python) #:use-module (guix build-system cmake)) (define-public libmad @@ -169,7 +171,8 @@ Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.") (source (origin (method url-fetch) (uri (string-append - "ftp://ftp.ibiblio.org/pub/linux/apps/sound/mp3-utils/mp3info/mp3info-" + "http://ibiblio.org" + "/pub/linux/apps/sound/mp3-utils/mp3info/mp3info-" version ".tgz")) (sha256 (base32 @@ -450,3 +453,32 @@ format.") "Mpc123 is a command-line player for files in the Musepack audio compression format (.mpc files).") (license license:gpl2+))) + +(define-public eyed3 + (package + (name "eyed3") + (version "0.7.8") + (source (origin + (method url-fetch) + (uri (string-append + "http://eyed3.nicfit.net/releases/eyeD3-" + version ".tar.gz")) + (sha256 + (base32 + "1nv7nhfn1d0qm7rgkzksbccgqisng8klf97np0nwaqwd5dbmdf86")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2)) + (native-inputs + `(("python2-setuptools" ,python2-setuptools) + ("python2-nose" ,python2-nose) + ("python2-sphinx" ,python2-sphinx) + ("python2-coverage" ,python2-coverage))) + (synopsis "MP3 tag ID3 metadata editor") + (description "eyeD3 is a Python tool for working with audio files, +specifically mp3 files containing ID3 metadata (i.e. song info). It provides a +command-line tool (eyeD3) and a Python library (import eyed3) that can be used +to write your own applications or plugins that are callable from the +command-line tool.") + (home-page "http://eyed3.nicfit.net/") + (license license:gpl2+))) diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index 8dba82d8fa..420291d7f0 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -40,7 +40,7 @@ (define-public hwloc (package (name "hwloc") - (version "1.10.1") + (version "1.11.1") (source (origin (method url-fetch) (uri (string-append "http://www.open-mpi.org/software/hwloc/v" @@ -48,9 +48,7 @@ "/downloads/hwloc-" version ".tar.bz2")) (sha256 (base32 - "0jji5rphy05s0lp6bknn8lxwixrq0hy5rjzsqvhjszbkl2li7kim")) - (patches (list - (search-patch "hwloc-gather-topology-lstopo.patch"))))) + "03vcr9f98z45xfkk34x376mfrwyi7ff4ay60gvn4v95sqihl0qa8")))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11) @@ -95,7 +93,7 @@ bind processes, and much more.") (define-public openmpi (package (name "openmpi") - (version "1.8.5") + (version "1.10.1") (source (origin (method url-fetch) @@ -104,7 +102,7 @@ bind processes, and much more.") "/downloads/openmpi-" version ".tar.bz2")) (sha256 (base32 - "1i7vjf599kl5lm8n4vnwq9q1d9scn4sdjh42kfq1i9yzxnlhdsjc")))) + "14p4px9a3qzjc22lnl6braxrcrmd9rgmy7fh4qpanawn2pgfq6br")))) (build-system gnu-build-system) (inputs `(("hwloc" ,hwloc) @@ -115,16 +113,12 @@ bind processes, and much more.") ("perl" ,perl))) (arguments `(#:configure-flags `("--enable-static" - "--enable-oshmem" - "--enable-event-thread-support" - "--enable-opal-multi-threads" - "--enable-orte-progress-threads" "--enable-mpi-thread-multiple" + "--enable-builtin-atomics" "--enable-mpi-ext=all" "--with-devel-headers" - "--enable-debug" "--enable-memchecker" ,(string-append "--with-valgrind=" (assoc-ref %build-inputs "valgrind")) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index a72f7543dd..a217a89a19 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,6 +34,7 @@ #:use-module (gnu packages base) ;libbdf #:use-module (gnu packages boost) #:use-module (gnu packages bison) + #:use-module (gnu packages cdrom) #:use-module (gnu packages code) #:use-module (gnu packages check) #:use-module (gnu packages compression) @@ -55,6 +57,7 @@ #:use-module (gnu packages linux) ; for alsa-utils #:use-module (gnu packages man) #:use-module (gnu packages mp3) + #:use-module (gnu packages ncurses) #:use-module (gnu packages netpbm) #:use-module (gnu packages pdf) #:use-module (gnu packages perl) @@ -67,6 +70,7 @@ #:use-module (gnu packages tcl) #:use-module (gnu packages texinfo) #:use-module (gnu packages texlive) + #:use-module (gnu packages video) #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) @@ -74,6 +78,67 @@ #:use-module (gnu packages zip) #:use-module ((srfi srfi-1) #:select (last))) +(define-public cmus + (package + (name "cmus") + (version "2.7.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/" name "/" name "/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0raixgjavkm7hxppzsc5zqbfbh2bhjcmbiplhnsxsmyj8flafyc1")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; cmus does not include tests + #:phases + (modify-phases %standard-phases + (replace + 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + + ;; It's an idiosyncratic configure script that doesn't + ;; understand --prefix=..; it wants prefix=.. instead. + (zero? + (system* "./configure" + (string-append "prefix=" out))))))))) + ;; TODO: cmus optionally supports the following formats, which haven't yet + ;; been added to Guix: + ;; + ;; - Roar, libroar + ;; + ;; - DISCID_LIBS, apparently different from cd-discid which is included in + ;; Guix. See <http://sourceforge.net/projects/discid/> + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("ao" ,ao) + ("ffmpeg" ,ffmpeg) + ("flac" ,flac) + ("jack" ,jack-1) + ("libcddb" ,libcddb) + ("libcdio-paranoia" ,libcdio-paranoia) + ("libcue" ,libcue) + ("libmad" ,libmad) + ("libmodplug" ,libmodplug) + ("libmpcdec" ,libmpcdec) + ("libsamplerate" ,libsamplerate) + ("libvorbis" ,libvorbis) + ("ncurses" ,ncurses) + ("opusfile" ,opusfile) + ("pulseaudio" ,pulseaudio) + ("wavpack" ,wavpack))) + (home-page "https://cmus.github.io/") + (synopsis "Small console music player") + (description "Cmus is a small and fast console music player. It supports +many input formats and provides a customisable Vi-style user interface.") + (license license:gpl2+))) + (define-public hydrogen (package (name "hydrogen") @@ -281,6 +346,14 @@ Guile.") (%current-system)))) '("--disable-sse") '())) + #:phases + (modify-phases %standard-phases + (add-before + 'configure 'set-flags + (lambda _ + ;; Compile with C++11, required by libsigc++. + (setenv "CXXFLAGS" "-std=c++11") + #t))) #:python ,python-2)) (inputs `(("jack" ,jack-1) @@ -701,7 +774,7 @@ browser.") (define-public zynaddsubfx (package (name "zynaddsubfx") - (version "2.5.1") + (version "2.5.2") (source (origin (method url-fetch) (uri (string-append @@ -709,8 +782,21 @@ browser.") version "/zynaddsubfx-" version ".tar.gz")) (sha256 (base32 - "01c4v5lbzard6y00cjq3b6a50cafqwfwibzng9gdsajczhnbkqz2")))) + "11yrady7xwfrzszkk2fvq81ymv99mq474h60qnirk27khdygk24m")))) (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Move SSE compiler optimization flags from generic target to + ;; athlon64 and core2 targets, because otherwise the build would fail + ;; on non-Intel machines. + (add-after 'unpack 'remove-sse-flags-from-generic-target + (lambda _ + (substitute* "src/CMakeLists.txt" + (("-msse -msse2 -mfpmath=sse") "") + (("-march=(athlon64|core2)" flag) + (string-append flag " -msse -msse2 -mfpmath=sse"))) + #t))))) (inputs `(("liblo" ,liblo) ("ntk" ,ntk) diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index 2001fcc196..f58f3d9328 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,7 +28,7 @@ (define-public nano (package (name "nano") - (version "2.4.2") + (version "2.5.0") (source (origin (method url-fetch) @@ -35,7 +36,7 @@ version ".tar.gz")) (sha256 (base32 - "1fb5gzdm3jdx1f2vyanjvdmppaz082lf4kinyffnssgmzhc7zkf8")))) + "1vl9bim56k1b4zwc3icxp46w6pn6gb042j1h4jlz1jklxxpkwcpz")))) (build-system gnu-build-system) (inputs `(("gettext" ,gnu-gettext) diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm index 2b0d442664..b7fbfc982d 100644 --- a/gnu/packages/ncurses.scm +++ b/gnu/packages/ncurses.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015 Leo Famulari <leo@famulari.name> ;;; ;;; This file is part of GNU Guix. ;;; @@ -110,3 +111,27 @@ implement user interfaces for command-line applications. The accompanying ncursesw library provides wide character support.") (license x11) (home-page "http://www.gnu.org/software/ncurses/")))) + +(define-public dialog + (package + (name "dialog") + (version "1.2-20150920") + (source (origin + (method url-fetch) + (uri (string-append + "http://invisible-mirror.net/archives/dialog/dialog-" + version ".tgz")) + (sha256 + (base32 + "01ccd585c241nkj02n0zdbx8jqhylgcfpcmmshynh0c7fv2ixrn4")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f)) ; no test suite + (inputs + `(("ncurses" ,ncurses))) + (synopsis "Curses widgets") + (description "Dialog is a script-interpreter which provides a set of +curses widgets, such as dialog boxes.") + (home-page "http://invisible-island.net/dialog/dialog.html") + ;; Includes the gpl3 file "config.sub" from Automake. + (license (list lgpl2.1 gpl3)))) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index edb88bcfbc..bde1e1e197 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,18 +19,19 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages node) - #:use-module ((guix licenses) - #:select (expat)) - #:use-module (gnu packages) - #:use-module (gnu packages perl) - #:use-module (gnu packages python) - #:use-module (gnu packages gcc) - #:use-module (gnu packages linux) - #:use-module (gnu packages base) + #:use-module ((guix licenses) #:select (expat)) #:use-module (guix packages) #:use-module (guix derivations) #:use-module (guix download) - #:use-module (guix build-system gnu)) + #:use-module (guix build-system gnu) + #:use-module (gnu packages base) + #:use-module (gnu packages compression) + #:use-module (gnu packages gcc) + #:use-module (gnu packages libevent) + #:use-module (gnu packages linux) + #:use-module (gnu packages perl) + #:use-module (gnu packages python) + #:use-module (gnu packages tls)) (define-public node (package @@ -42,38 +44,44 @@ (sha256 (base32 "17gk29zbw58l0sjjfw86acp39pkiblnq0gsq1jdrd70w0pgn8gdj")))) - (native-inputs `(("python" ,python-2) - ("perl" ,perl) - ("gcc" ,gcc-4.9) - ("util-linux" ,util-linux) - ("which" ,which))) (build-system gnu-build-system) (arguments - `(#:phases - (alist-replace - 'configure - ;; Node's configure script is actually a python script, so we can't - ;; run it with bash. - (lambda* (#:key outputs (configure-flags '()) inputs - #:allow-other-keys) - (let* ((prefix (assoc-ref outputs "out")) - (flags `(,(string-append "--prefix=" prefix) - ,@configure-flags))) - (format #t "build directory: ~s~%" (getcwd)) - (format #t "configure flags: ~s~%" flags) - ;; Node's configure script expects the CC environment variable to - ;; be set. - (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc")) - (zero? (apply system* - (string-append (assoc-ref inputs "python") - "/bin/python") - "./configure" flags)))) - %standard-phases))) + ;; TODO: Package http_parser and add --shared-http-parser. + '(#:configure-flags '("--shared-openssl" "--shared-zlib" "--shared-libuv") + #:phases + (modify-phases %standard-phases + (replace 'configure + ;; Node's configure script is actually a python script, so we can't + ;; run it with bash. + (lambda* (#:key outputs (configure-flags '()) inputs + #:allow-other-keys) + (let* ((prefix (assoc-ref outputs "out")) + (flags (cons (string-append "--prefix=" prefix) + configure-flags))) + (format #t "build directory: ~s~%" (getcwd)) + (format #t "configure flags: ~s~%" flags) + ;; Node's configure script expects the CC environment variable to + ;; be set. + (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc")) + (zero? (apply system* + (string-append (assoc-ref inputs "python") + "/bin/python") + "./configure" flags)))))))) + (native-inputs + `(("python" ,python-2) + ("perl" ,perl) + ("gcc" ,gcc-4.9) + ("util-linux" ,util-linux) + ("which" ,which))) + (inputs + `(("libuv" ,libuv) + ("openssl" ,openssl) + ("zlib" ,zlib))) (synopsis "Evented I/O for V8 JavaScript") (description "Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.") - (license expat) - (home-page "http://nodejs.org/"))) + (home-page "http://nodejs.org/") + (license expat))) diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index a53d98efdd..9e6db67e3e 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -35,7 +35,7 @@ (define-public ntp (package (name "ntp") - (version "4.2.8p3") + (version "4.2.8p4") (source (origin (method url-fetch) (uri (string-append @@ -44,7 +44,7 @@ "/ntp-" version ".tar.gz")) (sha256 (base32 - "13zkzcvjm5kbxl4xbcmaq07slplhmpkgahzcqnqlba3cxpra9341")) + "1fgxbhv0wyiivi6kh5zpzrd0yqmc48z7d3zmjspw9lj84mbn2s8d")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index fc45805958..7f80fc8a32 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -453,13 +454,18 @@ provers.") ;; and gtk+-quartz-2.0 once available. (inputs `(("gtk+" ,gtk+-2) - ("gtksourceview" ,gtksourceview) + ("gtksourceview" ,gtksourceview-2) ("libgnomecanvas" ,libgnomecanvas) ("libgnomeui" ,libgnomeui) ("libglade" ,libglade) ("librsvg" ,librsvg))) (arguments `(#:tests? #f ; no check target + + ;; Occasionally we would get "Error: Unbound module GtkThread" when + ;; compiling 'gtkThInit.ml', with 'make -j'. So build sequentially. + #:parallel-build? #f + #:phases (modify-phases %standard-phases (replace 'install diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 4fd1c803ff..2578292fd0 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -68,16 +69,14 @@ all the files it generates a report.") (define-public python-debtcollector (package (name "python-debtcollector") - (version "0.5.0") + (version "1.0.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/d/debtcollector/" - "debtcollector-" version ".tar.gz")) + (uri (pypi-uri "debtcollector" version)) (sha256 (base32 - "0amlcg5f98lk2mfzdg44slh1nsi2y4ds123g5d57376fjk2b3njd")))) + "0g4dfskaiy47rhsh4gh66l5vmdsrgq0qk68pl3ix1cj3ffvfndzv")))) (build-system python-build-system) (propagated-inputs `(("python-six" ,python-six) @@ -100,20 +99,51 @@ manner.") (define-public python2-debtcollector (package-with-python2 python-debtcollector)) +(define-public python-hacking + (package + (name "python-hacking") + (version "0.10.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "hacking" version)) + (sha256 + (base32 + "1a310k3dv04jg7zvmk37h2ql7y9kf4hvdxb74bjlwdxgmy6h4wap")))) + (build-system python-build-system) + (propagated-inputs + `(("python-flake8-2.2.4" ,python-flake8-2.2.4) + ("python-mccabe-0.2.1" ,python-mccabe-0.2.1) + ("python-pbr" ,python-pbr) + ("python-pep8-1.5.7" ,python-pep8-1.5.7) + ("python-pyflakes-0.8.1" ,python-pyflakes-0.8.1) + ("python-six" ,python-six))) + (inputs + `(("python-setuptools" ,python-setuptools) + ;; Tests + ("python-testscenarios" ,python-testscenarios))) + (home-page "http://github.com/openstack-dev/hacking") + (synopsis "OpenStack hacking guideline enforcement") + (description + "Python-hacking is a set of flake8 plugins that test and enforce the +@uref{http://docs.openstack.org/developer/hacking/, OpenStack style +guidelines}.") + (license asl2.0))) + +(define-public python2-hacking + (package-with-python2 python-hacking)) + (define-public python-mox3 (package (name "python-mox3") - (version "0.8.0") + (version "0.12.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/m/mox3/mox3-" - version - ".tar.gz")) + (uri (pypi-uri "mox3" version)) (sha256 (base32 - "1dwj9lkifdqvrcympqa47bj55l0n0j9jhzv2gj03h0dpzg6mgfkj")))) + "1pwz98q098cb8xxf8yryq21nvklc7hla880bsrq4y3j6bprw3iaj")))) (build-system python-build-system) (inputs `(("python-fixtures" ,python-fixtures) @@ -133,17 +163,14 @@ tested on Python version 3.2, 2.7 and 2.6.") (define-public python-os-client-config (package (name "python-os-client-config") - (version "1.4.0") + (version "1.12.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/o/os-client-config/os-client-config-" - version - ".tar.gz")) + (uri (pypi-uri "os-client-config" version)) (sha256 (base32 - "14png6ml3zbbilh8bihav24f8vig9lyijwynnjcvazdxxrzvwq9j")))) + "1vjn7667pswnmpqv6ngwyqm2xn46w90hi5b4pv2grwfz751cn1lf")))) (build-system python-build-system) (arguments `(#:tests? #f)) ;; Circular dependency with python-oslotest @@ -172,10 +199,44 @@ tested on Python version 3.2, 2.7 and 2.6.") (define-public python2-mox3 (package-with-python2 python-mox3)) +(define-public python-os-testr + (package + (name "python-os-testr") + (version "0.4.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "os-testr" version)) + (sha256 + (base32 + "0474z0mxb7y3vfk4s097wf1mzji5d135vh27cvlh9q17rq3x9r3w")))) + (build-system python-build-system) + (arguments + ;; os-testr uses itself to run the tests. It seems like pbr writes the + ;; exectuable in the virtualenv when using tox. Not sure how to do this + ;; when building the package. Skip the tests for now. + `(#:tests? #f)) + (propagated-inputs + `(("python-pbr" ,python-pbr) + ("python-subunit" ,python-subunit) + ("python-testtools" ,python-testtools))) + (inputs + `(("python-babel" ,python-babel) + ("python-setuptools" ,python-setuptools))) + (home-page "http://www.openstack.org/") + (synopsis "Testr wrapper to provide functionality for OpenStack projects") + (description + "Os-testr provides developers with a testr wrapper and an output filter + for subunit.") + (license asl2.0))) + +(define-public python2-os-testr + (package-with-python2 python-os-testr)) + (define-public python-pbr (package (name "python-pbr") - (version "1.6.0") + (version "1.8.1") (source (origin (method url-fetch) @@ -185,7 +246,7 @@ tested on Python version 3.2, 2.7 and 2.6.") ".tar.gz")) (sha256 (base32 - "1lg1klrczvzfan89y3bl9ykrknl3nb01vvai37fkww24apzyibjf")))) + "0jcny36cf3s8ar5r4a575npz080hndnrfs4np1fqhv0ym4k7c4p2")))) (build-system python-build-system) (arguments `(#:tests? #f)) ;; Most tests seem to use the Internet. @@ -217,16 +278,14 @@ and sensible default behaviors into your setuptools run.") (define-public python-requests-mock (package (name "python-requests-mock") - (version "0.6.0") + (version "0.7.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/r/requests-mock/" - "requests-mock-" version ".tar.gz")) + (uri (pypi-uri "requests-mock" version)) (sha256 (base32 - "0gmd88c224y53b1ai8cfsrcxm9kw3gdqzysclmnaqspg7zjhxwd1")))) + "0s6mrpiv2w0km39qvl1pq2d56xblnm57p369qdp5j1a55ncica7f")))) (build-system python-build-system) (propagated-inputs `(("python-requests" ,python-requests) @@ -248,17 +307,14 @@ portions of your testing code.") (define-public python-stevedore (package (name "python-stevedore") - (version "1.7.0") + (version "1.9.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/s/stevedore/stevedore-" - version - ".tar.gz")) + (uri (pypi-uri "stevedore" version)) (sha256 (base32 - "149pjc0c3z6khjisn4yil3f94qjnzwafz093wc8rrzbw828qdkv8")))) + "01pcrdqsb6ca7hmqwm11b3baj6ml8yz9pxawrgvxb3j9824906fc")))) (build-system python-build-system) (propagated-inputs `(("python-six" ,python-six))) @@ -286,6 +342,51 @@ extensions.") (define-public python2-stevedore (package-with-python2 python-stevedore)) +(define-public python-tempest-lib + (package + (name "python-tempest-lib") + (version "0.11.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "tempest-lib" version)) + (sha256 + (base32 + "1q4wpqcg0yv99mr5gc43wsfirlqdjz90npyghy3mn5f6lby2yikg")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before + 'check 'pre-check + (lambda _ + (substitute* "tempest_lib/tests/cli/test_execute.py" + (("/bin/ls") (which "ls")))))))) + (propagated-inputs + `(("python-fixtures" ,python-fixtures) + ("python-httplib2" ,python-httplib2) + ("python-iso8601" ,python-iso8601) + ("python-jsonschema" ,python-jsonschema) + ("python-oslo.log" ,python-oslo.log) + ("python-paramiko" ,python-paramiko) + ("python-pbr" ,python-pbr) + ("python-six" ,python-six))) + (inputs + `(("python-babel" ,python-babel) + ("python-mock" ,python-mock) + ("python-os-testr" ,python-os-testr) + ("python-oslotest" ,python-oslotest) + ("python-setuptools" ,python-setuptools))) + (home-page "http://www.openstack.org/") + (synopsis "OpenStack functional testing library") + (description + "Tempest-lib is a functional testing library for OpenStack. It provides +common features used in Tempest.") + (license asl2.0))) + +(define-public python2-tempest-lib + (package-with-python2 python-tempest-lib)) + ;; Packages from the Oslo library (define-public python-oslo.config (package @@ -327,16 +428,14 @@ extensions.") (define-public python-oslo.context (package (name "python-oslo.context") - (version "0.6.0") + (version "1.0.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/o/oslo.context/" - "oslo.context-" version ".tar.gz")) + (uri (pypi-uri "oslo.context" version)) (sha256 (base32 - "16wr9qrkc3lb94ssb14qid4liza66x316fvzjw0izg67h1a0fm86")))) + "0kvha0rs9295njyl2z6n6zm5dapi5mrl5zwjm0m6ldqrvccyf8c3")))) (build-system python-build-system) (inputs `(("python-babel" ,python-babel) @@ -358,17 +457,14 @@ pipeline and used by various modules such as logging.") (define-public python-oslo.i18n (package (name "python-oslo.i18n") - (version "2.5.0") + (version "3.0.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/o/oslo.i18n/oslo.i18n-" - version - ".tar.gz")) + (uri (pypi-uri "oslo.i18n" version)) (sha256 (base32 - "1kg72mqldlri3x0bhxai7j979czrd7mf8s3iflvvv0x9kn9ah4cw")))) + "0bpb1c20sm8my650gl824nzaip83bfn8hr91s65k5ncmyh8hb6pl")))) (build-system python-build-system) (propagated-inputs `(("python-babel" ,python-babel) @@ -392,19 +488,58 @@ in an application or library.") (define-public python2-oslo.i18n (package-with-python2 python-oslo.i18n)) +(define-public python-oslo.log + (package + (name "python-oslo.log") + (version "1.6.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/o/oslo.log/oslo.log-" + version + ".tar.gz")) + (sha256 + (base32 + "1fhy6yvbd565nv4x4i3ppyrlbmz3yy9d0xsvw5nkqsa7g43nmf8z")))) + (build-system python-build-system) + (propagated-inputs + `(("python-debtcollector" ,python-debtcollector) + ("python-oslo.config" ,python-oslo.config) + ("python-oslo.context" ,python-oslo.context) + ("python-oslo.i18n" ,python-oslo.i18n) + ("python-oslo.utils" ,python-oslo.utils) + ("python-oslo.serialization" ,python-oslo.serialization) + ("python-six" ,python-six))) + (inputs + `(("python-babel" ,python-babel) + ("python-iso8601" ,python-iso8601) + ("python-mock" ,python-mock) + ("python-oslotest" ,python-oslotest) + ("python-pbr" ,python-pbr) + ("python-setuptools" ,python-setuptools))) + (home-page "http://launchpad.net/oslo") + (synopsis "Python logging library of the Oslo project") + (description + "The oslo.log (logging) configuration library provides standardized +configuration for all OpenStack projects. It also provides custom formatters, +handlers and support for context specific logging (like resource id’s etc).") + (license asl2.0))) + +(define-public python2-oslo.log + (package-with-python2 python-oslo.log)) + (define-public python-oslo.serialization (package (name "python-oslo.serialization") - (version "1.9.0") + (version "2.0.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/o/oslo.serialization/" - "oslo.serialization-" version ".tar.gz")) + (uri (pypi-uri "oslo.serialization" version)) (sha256 (base32 - "00qaxg155s61ylh4fqc7m5fh0gijf33khhai9xvcsc9k106i3c9c")))) + "1hnkc69sa4r1qhx6hdwlrk2ng7wypgwr063iq5r815a0bv0qr1ad")))) (build-system python-build-system) (propagated-inputs `(("python-iso8601" ,python-iso8601) @@ -431,6 +566,36 @@ in transmittable and storable formats, such as JSON and MessagePack.") (define-public python2-oslo.serialization (package-with-python2 python-oslo.serialization)) +(define-public python-oslosphinx + (package + (name "python-oslosphinx") + (version "3.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "oslosphinx" version)) + (sha256 + (base32 + "0zcshdc9s1f7hnvg0fm2ps5rak3dpnm8kqg4i21lknhmsvb7p5cb")))) + (build-system python-build-system) + (propagated-inputs + `(("python-requests" ,python-requests))) + (inputs + `(("python-pbr" ,python-pbr) + ("python-docutils" ,python-docutils) + ("python-hacking" ,python-hacking) + ("python-setuptools" ,python-setuptools) + ("python-sphinx" ,python-sphinx))) + (home-page "http://www.openstack.org/") + (synopsis "OpenStack sphinx extensions and theme") + (description + "This package provides themes and extensions for Sphinx documentation +from the OpenStack project.") + (license asl2.0))) + +(define-public python2-oslosphinx + (package-with-python2 python-oslosphinx)) + (define-public python-oslotest (package (name "python-oslotest") @@ -449,10 +614,10 @@ in transmittable and storable formats, such as JSON and MessagePack.") (propagated-inputs `(("python-fixtures" ,python-fixtures) ("python-mock" ,python-mock) + ("python-mox3" ,python-mox3) ("python-six" ,python-six))) (inputs `(("python-pbr" ,python-pbr) - ("python-mox3" ,python-mox3) ("python-os-client-config" ,python-os-client-config) ("python-setuptools" ,python-setuptools) ("python-subunit" ,python-subunit) @@ -472,17 +637,14 @@ and better support for mocking results.") (define-public python-oslo.utils (package (name "python-oslo.utils") - (version "2.5.0") + (version "3.0.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/o/oslo.utils/oslo.utils-" - version - ".tar.gz")) + (uri (pypi-uri "oslo.utils" version)) (sha256 (base32 - "11b073gblhzkxhi1j6sqk3apq2ll8xhi9h9g9kxzx9dycqdq0qp0")) + "1c4jrbvfs4hs37fics8frqlyhmsv7v92ncv2cpbm0av9x0ic6pnj")) (snippet '(begin ;; FIXME: setuptools fails to import this file during the test diff --git a/gnu/packages/owncloud.scm b/gnu/packages/owncloud.scm new file mode 100644 index 0000000000..58c2a51ba8 --- /dev/null +++ b/gnu/packages/owncloud.scm @@ -0,0 +1,80 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> +;;; +;;; 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 owncloud) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system cmake) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages databases) + #:use-module (gnu packages linux) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages qt) + #:use-module (gnu packages ruby) + #:use-module (gnu packages tls)) + +(define-public owncloud-client + (package + (name "owncloud-client") + (version "2.0.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://download.owncloud.com/desktop/stable/" + "owncloudclient-" version ".tar.xz")) + (sha256 + (base32 "0a42nqx0gn10n7ikhxwif0lqddmb6gbvr45bqbbl30an9gixq598")))) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'change-rpath-dirs + (lambda _ + (substitute* '("src/libsync/CMakeLists.txt" + "csync/src/CMakeLists.txt") + ;; We store the libs in out/lib and not /usr/lib/appname, so we + ;; need the executable to point to the libraries in /lib and not + ;; in /lib/appname. + (("\\/\\$\\{APPLICATION_EXECUTABLE\\}") "")) + (substitute* '("src/cmd/CMakeLists.txt" + "src/crashreporter/CMakeLists.txt" + "src/gui/CMakeLists.txt") + ;; This has the same issue as the substitution above. + (("\\/\\$\\{APPLICATION_EXECUTABLE\\}\\\"") "\""))))))) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs + `(("inotify-tools" ,inotify-tools) + ("openssl" ,openssl) + ("perl" ,perl) + ("python-wrapper" ,python-wrapper) + ("qt" ,qt) + ("qtkeychain" ,qtkeychain) + ("ruby" ,ruby) + ("sqlite" ,sqlite) + ("zlib" ,zlib))) + (home-page "https://owncloud.org") + (synopsis "Folder synchronization with an ownCloud server") + (description "The ownCloudSync system lets you always have your latest +files wherever you are. Just specify one or more folders on the local machine +to and a server to synchronize to. You can configure more computers to +synchronize to the same server and any change to the files on one computer will +silently and reliably flow across to every other.") + (license license:gpl2+))) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 8fbe5b3064..917464543c 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -23,9 +23,12 @@ #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) - #:use-module ((guix licenses) #:select (gpl2+ gpl3+ lgpl2.1+)) + #:use-module (guix build-system python) + #:use-module ((guix licenses) #:select (gpl2+ gpl3+ lgpl2.1+ asl2.0)) #:use-module (gnu packages) #:use-module (gnu packages guile) + #:use-module (gnu packages file) + #:use-module (gnu packages backup) #:use-module (gnu packages compression) #:use-module (gnu packages gnupg) #:use-module (gnu packages databases) @@ -34,12 +37,17 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages gettext) #:use-module (gnu packages texinfo) + #:use-module (gnu packages nettle) #:use-module (gnu packages perl) #:use-module (gnu packages curl) #:use-module (gnu packages web) #:use-module (gnu packages man) #:use-module (gnu packages emacs) #:use-module (gnu packages bdw-gc) + #:use-module (gnu packages python) + #:use-module (gnu packages popt) + #:use-module (gnu packages gnuzilla) + #:use-module (gnu packages cpio) #:use-module (gnu packages tls)) (define (boot-guile-uri arch) @@ -52,17 +60,17 @@ arch "-linux" "/20131110/guile-2.0.9.tar.xz"))) -(define-public guix-0.8.3 +(define-public guix-0.9.0 (package (name "guix") - (version "0.8.3") + (version "0.9.0") (source (origin (method url-fetch) (uri (string-append "ftp://alpha.gnu.org/gnu/guix/guix-" version ".tar.gz")) (sha256 (base32 - "14n0nkj0ckhdwhghx1pml99hbjr1xdkn8x145j0xp1357vqlisnz")))) + "0h573z2br0bf43sxyzia9xlm03n3y43zg1snds3c2piq2m6kabrn")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list @@ -74,6 +82,7 @@ (string-append "--with-libgcrypt-prefix=" (assoc-ref %build-inputs "libgcrypt"))) + #:parallel-tests? #f ;work around <http://bugs.gnu.org/21097> #:phases (modify-phases %standard-phases (add-before 'configure 'copy-bootstrap-guile @@ -109,7 +118,17 @@ (substitute* "tests/containers.scm" (("^\\(test-assert" all) (string-append "(test-skip 1)\n" all))) + (when (file-exists? "tests/guix-environment-container.sh") + (substitute* "tests/guix-environment-container.sh" + (("guix environment --version") + "exit 77\n"))) #t)) + (add-before 'check 'set-SHELL + (lambda _ + ;; 'guix environment' tests rely on 'SHELL' having a + ;; correct value, so set it. + (setenv "SHELL" (which "sh")) + #t)) (add-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) @@ -176,9 +195,9 @@ the Nix package manager.") ;; ;; Note: use a short commit id; when using the long one, the limit on socket ;; file names is exceeded while running the tests. - (let ((commit "abbe2c6")) - (package (inherit guix-0.8.3) - (version (string-append "0.8.3." commit)) + (let ((commit "5c36edc")) + (package (inherit guix-0.9.0) + (version (string-append "0.9.0." commit)) (source (origin (method git-fetch) (uri (git-reference @@ -186,10 +205,15 @@ the Nix package manager.") (commit commit))) (sha256 (base32 - "1zgjj5knpz3qbbqdjm4yh436bzfgasc6p0k3xnx58hfjd88mdsga")) + "008fv3yj1jkxxma9vp8wzmkk3m82kgchaj9y7lpcvkqzcdhz8h7p")) (file-name (string-append "guix-" version "-checkout")))) (arguments - (substitute-keyword-arguments (package-arguments guix-0.8.3) + (substitute-keyword-arguments (package-arguments guix-0.9.0) + ((#:configure-flags flags) + ;; Set 'DOT_USER_PROGRAM' to the empty string so we don't keep a + ;; reference to Graphviz, whose closure is pretty big (too big for + ;; the GuixSD installation image.) + `(cons "ac_cv_path_DOT_USER_PROGRAM=dot" ,flags)) ((#:phases phases) `(modify-phases ,phases (add-after @@ -208,35 +232,48 @@ the Nix package manager.") ("texinfo" ,texinfo) ("graphviz" ,graphviz) ("help2man" ,help2man) - ,@(package-native-inputs guix-0.8.3)))))) + ,@(package-native-inputs guix-0.9.0)))))) (define-public guix guix-devel) (define-public nix (package (name "nix") - (version "1.8") + (version "1.10") (source (origin (method url-fetch) (uri (string-append "http://nixos.org/releases/nix/nix-" version "/nix-" version ".tar.xz")) (sha256 (base32 - "077hircacgi9y4n6kf48qp4laz1h3ab6sif3rcci1jy13f05w2m3")))) + "1xhh7l1dqwn6i3m51xp8l0aa95da3823w4h8n8hfxlcxaixcl4jn")))) (build-system gnu-build-system) ;; XXX: Should we pass '--with-store-dir=/gnu/store'? But then we'd also ;; need '--localstatedir=/var'. But then! The thing would use /var/nix ;; instead of /var/guix. So in the end, we do nothing special. + (arguments + '(#:configure-flags + ;; Set the prefixes of Perl libraries to avoid propagation. + (let ((perl-libdir (lambda (p) + (string-append + (assoc-ref %build-inputs p) + "/lib/perl5/site_perl")))) + (list (string-append "--with-dbi=" + (perl-libdir "perl-dbi")) + (string-append "--with-dbd-sqlite=" + (perl-libdir "perl-dbd-sqlite")) + (string-append "--with-www-curl=" + (perl-libdir "perl-www-curl")))))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config))) (inputs `(("curl" ,curl) ("openssl" ,openssl) ("libgc" ,libgc) ("sqlite" ,sqlite) - ("bzip2" ,bzip2))) - (propagated-inputs `(("perl-www-curl" ,perl-www-curl) - ("perl-dbi" ,perl-dbi) - ("perl-dbd-sqlite" ,perl-dbd-sqlite))) + ("bzip2" ,bzip2) + ("perl-www-curl" ,perl-www-curl) + ("perl-dbi" ,perl-dbi) + ("perl-dbd-sqlite" ,perl-dbd-sqlite))) (home-page "http://nixos.org/nix/") (synopsis "The Nix package manager") (description @@ -251,21 +288,22 @@ sub-directory.") (define-public stow (package (name "stow") - (version "2.2.0") + (version "2.2.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/stow/stow-" version ".tar.gz")) (sha256 (base32 - "0arw1nsdlcvd7javkbk2bdvnc31d7dmb6fr25xyyi6ng76cxg2cb")))) + "1pvky9fayms4r6fhns8jd0vavszd7d979w62vfd5n88v614pdxz2")))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) (native-inputs `(("perl-test-simple" ,perl-test-simple) ("perl-test-output" ,perl-test-output) - ("perl-capture-tiny" ,perl-capture-tiny))) + ("perl-capture-tiny" ,perl-capture-tiny) + ("perl-io-stringy" ,perl-io-stringy))) (home-page "https://www.gnu.org/software/stow/") (synopsis "Managing installed software packages") (description @@ -275,3 +313,130 @@ typically used for managing software packages installed from source, by letting you install them apart in distinct directories and then create symlinks to the files in a common directory such as /usr/local.") (license gpl2+))) + +(define-public rpm + (package + (name "rpm") + (version "4.12.0") + (source (origin + (method url-fetch) + (uri (string-append "http://rpm.org/releases/rpm-4.12.x/rpm-" + version ".tar.bz2")) + (sha256 + (base32 + "18hk47hc755nslvb7xkq4jb095z7va0nlcyxdpxayc4lmb8mq3bp")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--with-external-db" ;use the system's bdb + "--enable-python" + "--without-lua") + #:phases (modify-phases %standard-phases + (add-before 'configure 'set-nspr-search-path + (lambda* (#:key inputs #:allow-other-keys) + ;; nspr.pc contains the right -I flag pointing to + ;; 'include/nspr', but unfortunately 'configure' doesn't + ;; use 'pkg-config'. Thus, augment CPATH. + ;; Likewise for NSS. + (let ((nspr (assoc-ref inputs "nspr")) + (nss (assoc-ref inputs "nss"))) + (setenv "CPATH" + (string-append (getenv "CPATH") ":" + nspr "/include/nspr:" + nss "/include/nss")) + (setenv "LIBRARY_PATH" + (string-append (getenv "LIBRARY_PATH") ":" + nss "/lib/nss")) + #t))) + (add-after 'install 'fix-rpm-symlinks + (lambda* (#:key outputs #:allow-other-keys) + ;; 'make install' gets these symlinks wrong. Fix them. + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (with-directory-excursion bin + (for-each (lambda (file) + (delete-file file) + (symlink "rpm" file)) + '("rpmquery" "rpmverify")) + #t))))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("python" ,python-2) + ("xz" ,xz) + ("bdb" ,bdb) + ("popt" ,popt) + ("nss" ,nss) + ("nspr" ,nspr) + ("libarchive" ,libarchive) + ("nettle" ,nettle) ;XXX: actually a dependency of libarchive + ("file" ,file) + ("bzip2" ,bzip2) + ("zlib" ,zlib) + ("cpio" ,cpio))) + (home-page "http://www.rpm.org/") + (synopsis "The RPM Package Manager") + (description + "The RPM Package Manager (RPM) is a command-line driven package +management system capable of installing, uninstalling, verifying, querying, +and updating computer software packages. Each software package consists of an +archive of files along with information about the package like its version, a +description. There is also a library permitting developers to manage such +transactions from C or Python.") + + ;; The whole is GPLv2+; librpm itself is dual-licensed LGPLv2+ | GPLv2+. + (license gpl2+))) + +(define-public diffoscope + (package + (name "diffoscope") + (version "34") + (source (origin + (method git-fetch) + (uri (git-reference + (url + "https://anonscm.debian.org/cgit/reproducible/diffoscope.git") + (commit version))) + (sha256 + (base32 + "1g8b7bpkmns0355gkr3a244affwx4xzqwahwsl6ivw4z0qv7dih8")) + (file-name (string-append name "-" version "-checkout")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:phases (modify-phases %standard-phases + (add-before 'build 'disable-egg-zipping + (lambda _ + ;; Leave the .egg file uncompressed. + (let ((port (open-file "setup.cfg" "a"))) + (display "\n[easy_install]\nzip_ok = 0\n" + port) + (close-port port) + #t))) + (add-before 'build 'dependency-on-rpm + (lambda _ + (substitute* "setup.py" + ;; Somehow this requirement is reported as not met, + ;; even though rpm.py is in the search path. So + ;; delete it. + (("'rpm-python',") "")) + #t))) + ;; FIXME: Some obscure test failures. + #:tests? #f)) + (inputs `(("rpm" ,rpm) ;for rpm-python + ("python-file" ,python2-file) + ("python-debian" ,python2-debian) + ("python-libarchive-c" ,python2-libarchive-c) + ("python-tlsh" ,python2-tlsh) + + ;; Below are modules used for tests. + ("python-pytest" ,python2-pytest) + ("python-chardet" ,python2-chardet))) + (native-inputs `(("python-setuptools" ,python2-setuptools))) + (home-page "http://diffoscope.org/") + (synopsis "Compare files, archives, and directories in depth") + (description + "Diffoscope tries to get to the bottom of what makes files or directories +different. It recursively unpacks archives of many kinds and transforms +various binary formats into more human readable forms to compare them. It can +compare two tarballs, ISO images, or PDFs just as easily.") + (license gpl3+))) diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 38ce709fe1..25e77d8023 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013,2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,7 +29,7 @@ (define-public parallel (package (name "parallel") - (version "20150922") + (version "20151122") (source (origin (method url-fetch) @@ -36,7 +37,7 @@ version ".tar.bz2")) (sha256 (base32 - "05zf3jhjmswfr63lgxw8q26kysd72b8m0zy5jbc94r6appx8bd7j")))) + "0phn9dlkqlq3cq468ypxbbn78bsjcin743pyvf8ip4qg6jz662jm")))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) (home-page "http://www.gnu.org/software/parallel/") diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 921ade1030..1ca327b5c8 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Steve Sprang <scs@stevesprang.com> ;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2015 Aljosha Papsch <misc@rpapsch.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +27,9 @@ #:use-module (gnu packages compression) #:use-module (gnu packages gnupg) #:use-module (gnu packages guile) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages tls) #:use-module (gnu packages qt) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg)) @@ -53,15 +57,14 @@ human.") (define-public keepassx (package (name "keepassx") - (version "2.0-beta2") + (version "2.0") (source (origin (method url-fetch) - (uri (string-append "https://github.com/keepassx/keepassx/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (string-append "https://www.keepassx.org/releases/" version + "/keepassx-" version ".tar.gz")) (sha256 - (base32 "0ljf9ws3wh62zd0gyb0vk2qw6pqsmxrlybrfs5mqahf44q92ca2q")))) + (base32 "1ri2r1sldc62hbg74m4pmci0nrjwvv38rqhyzhyjin247an0zd0f")))) (build-system cmake-build-system) (inputs `(("libgcrypt" ,libgcrypt) @@ -104,3 +107,31 @@ For copying and pasting secrets into web browsers and other graphical applications, there is xclip integration." ) (home-page "http://dthompson.us/pages/software/shroud.html") (license license:gpl3+))) + +(define-public yapet + (package + (name "yapet") + (version "1.0") + (source (origin + (method url-fetch) + (uri (string-append "http://www.guengel.ch/myapps/yapet/downloads/yapet-" + version + ".tar.bz2")) + (sha256 + (base32 + "0ydbnqw6icdh07pnv2w6dhvq501bdfvrklv4xmyr8znca9d753if")))) + (build-system gnu-build-system) + (inputs + `(("ncurses" ,ncurses) + ("openssl" ,openssl))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (synopsis "Yet Another Password Encryption Tool") + (description "YAPET is a text based password manager using the Blowfish +encryption algorithm. Because of its small footprint and very few library +dependencies, it is suited for installing on desktop and server systems alike. +The text based user interface allows you to run YAPET easily in a Secure Shell +session. Two companion utilities enable users to convert CSV files to YAPET +and vice versa.") + (home-page "http://www.guengel.ch/myapps/yapet/") + (license license:gpl3+))) diff --git a/gnu/packages/patches/bluez-tests.patch b/gnu/packages/patches/bluez-tests.patch new file mode 100644 index 0000000000..608ded9be2 --- /dev/null +++ b/gnu/packages/patches/bluez-tests.patch @@ -0,0 +1,25 @@ +From 484ad8c9263bb524051a999ce19a994960e69572 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong@gmail.com> +Date: Fri, 23 Oct 2015 20:48:57 +0800 +Subject: [PATCH] unit/test-gobex-header: Fix duplicate test names + +--- + unit/test-gobex-header.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/unit/test-gobex-header.c b/unit/test-gobex-header.c +index 6f49312..8705892 100644 +--- a/unit/test-gobex-header.c ++++ b/unit/test-gobex-header.c +@@ -554,7 +554,7 @@ int main(int argc, char *argv[]) + test_header_encode_name_umlaut); + g_test_add_func("/gobex/test_header_encode_body", + test_header_encode_body); +- g_test_add_func("/gobex/test_header_encode_connid", ++ g_test_add_func("/gobex/test_header_encode_actionid", + test_header_encode_actionid); + g_test_add_func("/gobex/test_header_encode_apparam", + test_header_encode_apparam); +-- +2.5.0 + diff --git a/gnu/packages/patches/byobu-writable-status.patch b/gnu/packages/patches/byobu-writable-status.patch new file mode 100644 index 0000000000..2858280273 --- /dev/null +++ b/gnu/packages/patches/byobu-writable-status.patch @@ -0,0 +1,13 @@ +Skeleton status files are installed read-only. When copying to the config dir +upon initialization, make sure they end up writable. + +--- byobu-5.98/usr/bin/byobu-janitor.in ++++ byobu-5.98/usr/bin/byobu-janitor.in +@@ -82,6 +82,7 @@ + if [ ! -r "$BYOBU_CONFIG_DIR/$f" ]; then + # Copy from skeleton, if possible + cp -f "$BYOBU_PREFIX/share/$PKG/status/$f" "$BYOBU_CONFIG_DIR/$f" ++ chmod +w "$BYOBU_CONFIG_DIR/$f" + # Enable ec2_cost, if we're in ec2 and seeding a new setup + if metadata_available; then + $BYOBU_SED_INLINE -e "s/#ec2_cost/ec2_cost/g" "$($BYOBU_READLINK -f $BYOBU_CONFIG_DIR/$f)" diff --git a/gnu/packages/patches/dbus-helper-search-path.patch b/gnu/packages/patches/dbus-helper-search-path.patch new file mode 100644 index 0000000000..30c142312b --- /dev/null +++ b/gnu/packages/patches/dbus-helper-search-path.patch @@ -0,0 +1,18 @@ +The setuid helper of D-Bus is responsible for "service activation". +It looks for '.service' files in fixed locations, but the default locations +make no sense (see below), so replace them with /etc/dbus-1/system-services. + +--- dbus-1.10.0/dbus/dbus-sysdeps-util-unix.c 2015-10-22 00:07:03.829251854 +0200 ++++ dbus-1.10.0/dbus/dbus-sysdeps-util-unix.c 2015-10-22 00:07:14.893445175 +0200 +@@ -1410,10 +1410,7 @@ _dbus_get_standard_system_servicedirs (D + * be available. + */ + static const char standard_search_path[] = +- "/usr/local/share:" +- "/usr/share:" +- DBUS_DATADIR ":" +- "/lib"; ++ "/etc"; + DBusString servicedir_path; + + _dbus_string_init_const (&servicedir_path, standard_search_path); diff --git a/gnu/packages/patches/dbus-localstatedir.patch b/gnu/packages/patches/dbus-localstatedir.patch deleted file mode 100644 index 61bed91b5c..0000000000 --- a/gnu/packages/patches/dbus-localstatedir.patch +++ /dev/null @@ -1,30 +0,0 @@ -Do not try to create $localstatedir and $sysconfdir since we cannot do this -when they are /var and /etc. - ---- dbus-1.6.4/bus/Makefile.in 2013-09-11 16:15:13.000000000 +0200 -+++ dbus-1.6.4/bus/Makefile.in 2013-09-11 16:15:15.000000000 +0200 -@@ -1510,9 +1510,6 @@ clean-local: - /bin/rm *.bb *.bbg *.da *.gcov || true - - install-data-hook: -- $(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus -- $(mkinstalldirs) $(DESTDIR)$(configdir)/system.d -- $(mkinstalldirs) $(DESTDIR)$(configdir)/session.d - $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services - $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/system-services - # Install dbus.socket as default implementation of a D-Bus stack. - ---- dbus-1.6.4/tools/Makefile.in 2013-09-11 16:10:31.000000000 +0200 -+++ dbus-1.6.4/tools/Makefile.in 2013-09-11 16:10:32.000000000 +0200 -@@ -757,11 +757,6 @@ uninstall-am: uninstall-binPROGRAMS - - - # create the /var/lib/dbus directory for dbus-uuidgen --install-data-local: -- $(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/dbus -- --installcheck-local: -- test -d $(DESTDIR)$(localstatedir)/lib/dbus - - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/gnu/packages/patches/devil-fix-libpng.patch b/gnu/packages/patches/devil-fix-libpng.patch new file mode 100644 index 0000000000..a8e90333a3 --- /dev/null +++ b/gnu/packages/patches/devil-fix-libpng.patch @@ -0,0 +1,36 @@ +From 724194d7a9a91221a564579f64bdd6f0abd64219 Mon Sep 17 00:00:00 2001 +From: Noah Mayr <max96at@gmail.com> +Date: Sun, 1 Mar 2015 10:10:56 +0100 +Subject: [PATCH] Fixed deprecated libpng API usage. + +--- + src-IL/src/il_icon.c | 2 +- + src-IL/src/il_png.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src-IL/src/il_icon.c b/src-IL/src/il_icon.c +index 2ccb1a3..fd9475d 100644 +--- a/src-IL/src/il_icon.c ++++ b/src-IL/src/il_icon.c +@@ -525,7 +525,7 @@ ILboolean ico_readpng_get_image(ICOIMAGE *Icon, ILdouble display_exponent) + + // Expand low-bit-depth grayscale images to 8 bits + if (ico_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) { +- png_set_gray_1_2_4_to_8(ico_png_ptr); ++ png_set_expand_gray_1_2_4_to_8(ico_png_ptr); + } + + // Expand RGB images with transparency to full alpha channels +diff --git a/src-IL/src/il_png.c b/src-IL/src/il_png.c +index da9517d..2866508 100644 +--- a/src-IL/src/il_png.c ++++ b/src-IL/src/il_png.c +@@ -277,7 +277,7 @@ ILboolean readpng_get_image(ILdouble display_exponent) + + // Expand low-bit-depth grayscale images to 8 bits + if (png_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) { +- png_set_gray_1_2_4_to_8(png_ptr); ++ png_set_expand_gray_1_2_4_to_8(png_ptr); + } + + // Expand RGB images with transparency to full alpha channels diff --git a/gnu/packages/patches/dico-libtool-deterministic.patch b/gnu/packages/patches/dico-libtool-deterministic.patch new file mode 100644 index 0000000000..957fc79786 --- /dev/null +++ b/gnu/packages/patches/dico-libtool-deterministic.patch @@ -0,0 +1,15 @@ +Dico 2.2 uses an old Libtool (2.2.7a) that did not sort the output +of 'find', thereby leading to non-deterministic file name ordering +in the arguments passed to 'ar rcu' for libdico.a & co. + +--- dico-2.2/build-aux/ltmain.sh 1970-01-01 01:00:00.000000000 +0100 ++++ dico-2.2/build-aux/ltmain.sh 2015-11-25 09:39:30.826169050 +0100 +@@ -2926,7 +2926,7 @@ func_extract_archives () + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac +- my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` ++ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" diff --git a/gnu/packages/patches/eudev-rules-directory.patch b/gnu/packages/patches/eudev-rules-directory.patch index 9173e22f76..54fc01c6d5 100644 --- a/gnu/packages/patches/eudev-rules-directory.patch +++ b/gnu/packages/patches/eudev-rules-directory.patch @@ -4,9 +4,9 @@ The old udev 182 supported $UDEV_CONFIG_FILE, which in turn allowed the search path to be customized, but eudev no longer has this, hence this hack. ---- eudev-1.9/src/udev/udev-rules.c 2014-09-13 10:21:59.615980259 +0200 -+++ eudev-1.9/src/udev/udev-rules.c 2014-09-13 10:24:13.839976335 +0200 -@@ -46,15 +46,11 @@ +--- eudev-3.1.5/src/udev/udev-rules.c 2015-10-13 06:22:14.000000000 +0800 ++++ eudev-3.1.5/src/udev/udev-rules.c 2015-10-16 20:45:38.491934336 +0800 +@@ -47,15 +47,11 @@ }; }; @@ -14,23 +14,23 @@ this hack. +static const char* rules_dirs[] = { UDEV_CONF_DIR "/rules.d", UDEV_RULES_DIR, -- "/run/udev/rules.d", +- UDEV_ROOT_RUN "/udev/rules.d", UDEV_LIBEXEC_DIR "/rules.d", -#ifdef HAVE_SPLIT_USR - "/lib/udev/rules.d", - "/usr/lib/udev/rules.d", -#endif -+ NULL, /* placeholder for $EUDEV_RULES_DIRECTORY */ ++ NULL, /* placeholder for $EUDEV_RULES_DIRECTORY */ NULL}; struct udev_rules { -@@ -1637,6 +1633,9 @@ +@@ -1704,6 +1700,9 @@ udev_rules_check_timestamp(rules); -+ /* Allow the user to specify an additional rules directory. */ -+ rules_dirs[3] = getenv("EUDEV_RULES_DIRECTORY"); ++ /* Allow the user to specify an additional rules directory. */ ++ rules_dirs[3] = getenv("EUDEV_RULES_DIRECTORY"); + r = conf_files_list_strv(&files, ".rules", NULL, rules_dirs); if (r < 0) { - log_error("failed to enumerate rules files: %s", strerror(-r)); + log_error_errno(r, "failed to enumerate rules files: %m"); diff --git a/gnu/packages/patches/evilwm-lost-focus-bug.patch b/gnu/packages/patches/evilwm-lost-focus-bug.patch new file mode 100644 index 0000000000..af24af8fe9 --- /dev/null +++ b/gnu/packages/patches/evilwm-lost-focus-bug.patch @@ -0,0 +1,18 @@ +evilwm may sometimes lose focus after closing a window. This means that +evilwm stops responding to keyboard shortcuts, and if no other window is open +which the mouse can be moved over to regain focus evilwm becomes unusable and +has to be restarted. + +Patch derived from discussion at +https://wiki.archlinux.org/index.php/Evilwm#Lost_focus_bug_fix + +--- evilwm-1.1.1/client.c ++++ evilwm-1.1.1/client.c +@@ -172,6 +172,7 @@ + * _NET_WM_STATE) */ + if (c->remove) { + LOG_DEBUG("setting WithdrawnState\n"); ++ XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime); + set_wm_state(c, WithdrawnState); + ewmh_withdraw_client(c); + } else { diff --git a/gnu/packages/patches/glib-tests-desktop.patch b/gnu/packages/patches/glib-tests-desktop.patch index 61f48607f7..642234ebbc 100644 --- a/gnu/packages/patches/glib-tests-desktop.patch +++ b/gnu/packages/patches/glib-tests-desktop.patch @@ -56,11 +56,12 @@ database, the `update-desktop-database' program, which we don't provide. ----------------------------- The hunk below removes tests that depend on `gdbus-testserver.py', -because that script depends on python-gobject. +because that script depends on python-gobject. The second hunk +disables a test that expects /etc/machine-id in the build environment. ---- glib-2.39.1/gio/tests/Makefile.in 2014-01-20 00:18:16.000000000 +0100 -+++ glib-2.39.1/gio/tests/Makefile.in 2014-01-20 00:18:47.000000000 +0100 -@@ -171,20 +171,13 @@ check_PROGRAMS = $(am__EXEEXT_14) +--- glib-2.46.0/gio/tests/Makefile.in 2015-10-14 14:11:00.928809504 +0200 ++++ glib-2.46.0/gio/tests/Makefile.in 2015-10-14 14:12:13.157291092 +0200 +@@ -186,20 +186,13 @@ check_PROGRAMS = $(am__EXEEXT_16) @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-auth \ @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-bz627724 \ @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-close-pending \ @@ -79,7 +80,16 @@ because that script depends on python-gobject. @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-test-codegen-old \ -@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-threading \ @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gmenumodel \ + @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gnotification \ @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ $(NULL) +@@ -321,8 +314,7 @@ libresourceplugin_la_LINK = $(LIBTOOL) $ + am__EXEEXT_1 = + @OS_UNIX_TRUE@am__EXEEXT_2 = contenttype$(EXEEXT) file$(EXEEXT) \ + @OS_UNIX_TRUE@ gdbus-peer-object-manager$(EXEEXT) \ +-@OS_UNIX_TRUE@ gdbus-unix-addresses$(EXEEXT) \ + @OS_UNIX_TRUE@ live-g-file$(EXEEXT) socket-address$(EXEEXT) \ + @OS_UNIX_TRUE@ stream-rw_all$(EXEEXT) unix-fd$(EXEEXT) \ + @OS_UNIX_TRUE@ unix-streams$(EXEEXT) $(am__EXEEXT_1) \ The test below depends on the availability /etc/passwd to dbus-daemon. diff --git a/gnu/packages/patches/gsl-poly-test-fix-pt1.patch b/gnu/packages/patches/gsl-poly-test-fix-pt1.patch deleted file mode 100644 index 3d1ed4243c..0000000000 --- a/gnu/packages/patches/gsl-poly-test-fix-pt1.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 9cc12d0377dd634b1b97954d076b715f982853b7 Mon Sep 17 00:00:00 2001 -From: Patrick Alken <alken@colorado.edu> -Date: Fri, 4 Apr 2014 13:36:16 -0600 -Subject: [PATCH] bug fix in sorting of complex numbers (bug #39055) - ---- - poly/test.c | 49 ++++++++++++++++++++++++++++++------------------- - 1 file changed, 30 insertions(+), 19 deletions(-) - -diff --git a/poly/test.c b/poly/test.c -index 9c147f6..d090802 100644 ---- a/poly/test.c -+++ b/poly/test.c -@@ -25,11 +25,21 @@ - #include <gsl/gsl_poly.h> - #include <gsl/gsl_heapsort.h> - -+/* sort by Re(z) then by Im(z) */ - static int - cmp_cplx(const double *a, const double *b) - { -- double t = (a[0] * a[0] + a[1] * a[1]) - (b[0] * b[0] + b[1] * b[1]); -- return t < 0.0 ? -1 : t > 0.0 ? 1 : 0; -+ double r = a[0] - b[0]; -+ -+ if (r == 0.0) -+ { -+ double t = a[1] - b[1]; -+ return t < 0.0 ? -1 : t > 0.0 ? 1 : 0; -+ } -+ else if (r < 0.0) -+ return -1; -+ else -+ return 1; - } - - int -@@ -534,25 +544,26 @@ main (void) - Problem reported by Munagala Ramanath (bug #39055) - */ - -- double a[16] = { 32, -48, -8, 28, -8, 16, -16, 12, -16, 6, 10, -17, 10, 2, -4, 1 }; -+ double a[16] = { 32, -48, -8, 28, -8, 16, -16, 12, -+ -16, 6, 10, -17, 10, 2, -4, 1 }; - double z[16*2]; - -- double expected[16*20] = { -- 1.0000000000000000, 0.00000000000000000, -- 1.0000000000000000, 0.00000000000000000, -- -1.0000000000000000, 0.00000000000000000, -- -0.65893856175240950, 0.83459757287426684, -- -0.65893856175240950, -0.83459757287426684, -- -0.070891117403341281, -1.1359249087587791, -- -0.070891117403341281, 1.1359249087587791, -- 1.1142366961812986, -0.48083981203389980, -- 1.1142366961812986, 0.48083981203389980, -- -1.3066982484920768, 0.00000000000000000, -- 0.57284747839410854, 1.1987808988289705, -- 0.57284747839410854, -1.1987808988289705, -- -1.6078107423472359, 0.00000000000000000, -- 2.0000000000000000, 0.00000000000000000, -- 2.0000000000000000, 0.00000000000000000 }; -+ double expected[16*2] = { -+ -1.6078107423472359, 0.00000000000000000, -+ -1.3066982484920768, 0.00000000000000000, -+ -1.0000000000000000, 0.00000000000000000, -+ -0.65893856175240950, -0.83459757287426684, -+ -0.65893856175240950, 0.83459757287426684, -+ -0.070891117403341281, -1.1359249087587791, -+ -0.070891117403341281, 1.1359249087587791, -+ 0.57284747839410854, -1.1987808988289705, -+ 0.57284747839410854, 1.1987808988289705, -+ 1.0000000000000000, 0.00000000000000000, -+ 1.0000000000000000, 0.00000000000000000, -+ 1.1142366961812986, -0.48083981203389980, -+ 1.1142366961812986, 0.48083981203389980, -+ 2.0000000000000000, 0.00000000000000000, -+ 2.0000000000000000, 0.00000000000000000 }; - - int i; - --- -2.4.3 - diff --git a/gnu/packages/patches/gsl-poly-test-fix-pt2.patch b/gnu/packages/patches/gsl-poly-test-fix-pt2.patch deleted file mode 100644 index 0e6fcf1a53..0000000000 --- a/gnu/packages/patches/gsl-poly-test-fix-pt2.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 0466df8660a7b6ddf2e082a1ec38bc6ea25a3c5c Mon Sep 17 00:00:00 2001 -From: Patrick Alken <alken@colorado.edu> -Date: Mon, 7 Apr 2014 10:59:58 -0600 -Subject: [PATCH] change error test for 15th degree polynomial (bug #39055) - ---- - poly/test.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/poly/test.c b/poly/test.c -index d090802..f6a7e3f 100644 ---- a/poly/test.c -+++ b/poly/test.c -@@ -579,8 +579,8 @@ main (void) - - for (i = 0; i<15; i++) - { -- gsl_test_abs (z[2*i], expected[2*i], 1e-7, "z%d.real, 15th-order polynomial", i); -- gsl_test_abs (z[2*i+1], expected[2*i+1], 1e-7, "z%d.imag, 15th-order polynomial", i); -+ gsl_test_rel (z[2*i], expected[2*i], 1e-7, "z%d.real, 15th-order polynomial", i); -+ gsl_test_rel (z[2*i+1], expected[2*i+1], 1e-7, "z%d.imag, 15th-order polynomial", i); - } - } - --- -2.4.3 - diff --git a/gnu/packages/patches/hwloc-gather-topology-lstopo.patch b/gnu/packages/patches/hwloc-gather-topology-lstopo.patch deleted file mode 100644 index 06f47aecaa..0000000000 --- a/gnu/packages/patches/hwloc-gather-topology-lstopo.patch +++ /dev/null @@ -1,13 +0,0 @@ -Derived from upstream commit 0a32f719c. - ---- hwloc-1.10.1/tests/linux/Makefile.in 2015-01-26 03:37:52.000000000 -0600 -+++ hwloc-1.10.1/tests/linux/Makefile.in 2015-06-15 11:21:49.824842511 -0500 -@@ -1633,7 +1633,7 @@ - - - install-exec-hook: -- $(SED) -e 's/HWLOC_top_builddir\/utils/bindir/' -e '/HWLOC_top_builddir/d' $(DESTDIR)$(bindir)/hwloc-gather-topology > $(DESTDIR)$(bindir)/hwloc-gather-topology.tmp && mv -f $(DESTDIR)$(bindir)/hwloc-gather-topology.tmp $(DESTDIR)$(bindir)/hwloc-gather-topology -+ $(SED) -e 's/HWLOC_top_builddir\/utils\/lstopo/bindir/' -e '/HWLOC_top_builddir/d' $(DESTDIR)$(bindir)/hwloc-gather-topology > $(DESTDIR)$(bindir)/hwloc-gather-topology.tmp && mv -f $(DESTDIR)$(bindir)/hwloc-gather-topology.tmp $(DESTDIR)$(bindir)/hwloc-gather-topology - chmod +x $(DESTDIR)$(bindir)/hwloc-gather-topology - - # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/gnu/packages/patches/jasper-CVE-2008-3522.patch b/gnu/packages/patches/jasper-CVE-2008-3522.patch new file mode 100644 index 0000000000..10cfec99a5 --- /dev/null +++ b/gnu/packages/patches/jasper-CVE-2008-3522.patch @@ -0,0 +1,14 @@ +Fix CVE-2008-3522 (buffer overflow in 'jas_stream_printf'). +Patch from <https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2008-3522>. + +--- jasper-1.900.1/src/libjasper/base/jas_stream.c 2008-09-08 14:56:01.000000000 +0200 ++++ jasper-1.900.1/src/libjasper/base/jas_stream.c 2008-09-08 14:58:16.000000000 +0200 +@@ -553,7 +553,7 @@ int jas_stream_printf(jas_stream_t *stre + int ret; + + va_start(ap, fmt); +- ret = vsprintf(buf, fmt, ap); ++ ret = vsnprintf(buf, sizeof buf, fmt, ap); + jas_stream_puts(stream, buf); + va_end(ap); + return ret; diff --git a/gnu/packages/patches/libdrm-symbol-check.patch b/gnu/packages/patches/libdrm-symbol-check.patch new file mode 100644 index 0000000000..676024beb4 --- /dev/null +++ b/gnu/packages/patches/libdrm-symbol-check.patch @@ -0,0 +1,195 @@ +Augment the list of expected symbols to fix the symbol-check tests on +mips64el-linux and armhf-linux. + +--- libdrm-2.4.65/freedreno/freedreno-symbol-check.orig 2015-09-04 11:07:40.000000000 -0400 ++++ libdrm-2.4.65/freedreno/freedreno-symbol-check 2015-10-18 23:57:15.288416229 -0400 +@@ -1,6 +1,6 @@ + #!/bin/bash + +-# The following symbols (past the first five) are taken from the public headers. ++# The following symbols (past the first 12) are taken from the public headers. + # A list of the latter should be available Makefile.sources/LIBDRM_FREEDRENO_H_FILES + + FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_freedreno.so} | awk '{print $3}'| while read func; do +@@ -10,6 +10,13 @@ + _end + _fini + _init ++_fbss ++_fdata ++_ftext ++__bss_start__ ++__bss_end__ ++_bss_end__ ++__end__ + fd_bo_cpu_fini + fd_bo_cpu_prep + fd_bo_del +--- libdrm-2.4.65/nouveau/nouveau-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 ++++ libdrm-2.4.65/nouveau/nouveau-symbol-check 2015-10-18 23:55:26.078327118 -0400 +@@ -1,6 +1,6 @@ + #!/bin/bash + +-# The following symbols (past the first five) are taken from the public headers. ++# The following symbols (past the first 12) are taken from the public headers. + # A list of the latter should be available Makefile.sources/LIBDRM_NOUVEAU_H_FILES + + FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_nouveau.so} | awk '{print $3}'| while read func; do +@@ -10,6 +10,13 @@ + _end + _fini + _init ++_fbss ++_fdata ++_ftext ++__bss_start__ ++__bss_end__ ++_bss_end__ ++__end__ + nouveau_bo_map + nouveau_bo_name_get + nouveau_bo_name_ref +--- libdrm-2.4.65/libkms/kms-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 ++++ libdrm-2.4.65/libkms/kms-symbol-check 2015-10-18 23:46:10.683869471 -0400 +@@ -1,6 +1,6 @@ + #!/bin/bash + +-# The following symbols (past the first five) are taken from the public headers. ++# The following symbols (past the first 12) are taken from the public headers. + # A list of the latter should be available Makefile.sources/LIBKMS_H_FILES + + FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libkms.so} | awk '{print $3}'| while read func; do +@@ -10,6 +10,13 @@ + _end + _fini + _init ++_fbss ++_fdata ++_ftext ++__bss_start__ ++__bss_end__ ++_bss_end__ ++__end__ + kms_bo_create + kms_bo_destroy + kms_bo_get_prop +--- libdrm-2.4.65/intel/intel-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 ++++ libdrm-2.4.65/intel/intel-symbol-check 2015-10-18 23:55:53.309558508 -0400 +@@ -1,6 +1,6 @@ + #!/bin/bash + +-# The following symbols (past the first five) are taken from the public headers. ++# The following symbols (past the first 12) are taken from the public headers. + # A list of the latter should be available Makefile.sources/LIBDRM_INTEL_H_FILES + + FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_intel.so} | awk '{print $3}' | while read func; do +@@ -10,6 +10,13 @@ + _end + _fini + _init ++_fbss ++_fdata ++_ftext ++__bss_start__ ++__bss_end__ ++_bss_end__ ++__end__ + drm_intel_bo_alloc + drm_intel_bo_alloc_for_render + drm_intel_bo_alloc_tiled +--- libdrm-2.4.65/amdgpu/amdgpu-symbol-check.orig 2015-08-17 10:08:11.000000000 -0400 ++++ libdrm-2.4.65/amdgpu/amdgpu-symbol-check 2015-10-18 23:56:10.606917723 -0400 +@@ -1,6 +1,6 @@ + #!/bin/bash + +-# The following symbols (past the first five) are taken from the public headers. ++# The following symbols (past the first 12) are taken from the public headers. + # A list of the latter should be available Makefile.am/libdrm_amdgpuinclude_HEADERS + + FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_amdgpu.so} | awk '{print $3}' | while read func; do +@@ -10,6 +10,13 @@ + _end + _fini + _init ++_fbss ++_fdata ++_ftext ++__bss_start__ ++__bss_end__ ++_bss_end__ ++__end__ + amdgpu_bo_alloc + amdgpu_bo_cpu_map + amdgpu_bo_cpu_unmap +--- libdrm-2.4.65/exynos/exynos-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 ++++ libdrm-2.4.65/exynos/exynos-symbol-check 2015-10-18 23:56:32.025486153 -0400 +@@ -1,6 +1,6 @@ + #!/bin/bash + +-# The following symbols (past the first five) are taken from the public headers. ++# The following symbols (past the first 12) are taken from the public headers. + # A list of the latter should be available Makefile.am/libdrm_exynos*_HEADERS + + FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_exynos.so} | awk '{print $3}'| while read func; do +@@ -10,6 +10,13 @@ + _end + _fini + _init ++_fbss ++_fdata ++_ftext ++__bss_start__ ++__bss_end__ ++_bss_end__ ++__end__ + exynos_bo_create + exynos_bo_destroy + exynos_bo_from_name +--- libdrm-2.4.65/omap/omap-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 ++++ libdrm-2.4.65/omap/omap-symbol-check 2015-10-18 23:56:44.834438626 -0400 +@@ -1,6 +1,6 @@ + #!/bin/bash + +-# The following symbols (past the first five) are taken from the public headers. ++# The following symbols (past the first 12) are taken from the public headers. + # A list of the latter should be available Makefile.am/libdrm_omap*HEADERS + + FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_omap.so} | awk '{print $3}'| while read func; do +@@ -10,6 +10,13 @@ + _end + _fini + _init ++_fbss ++_fdata ++_ftext ++__bss_start__ ++__bss_end__ ++_bss_end__ ++__end__ + omap_bo_cpu_fini + omap_bo_cpu_prep + omap_bo_del +--- libdrm-2.4.65/tegra/tegra-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400 ++++ libdrm-2.4.65/tegra/tegra-symbol-check 2015-10-18 23:57:00.756759698 -0400 +@@ -1,6 +1,6 @@ + #!/bin/bash + +-# The following symbols (past the first five) are taken from the public headers. ++# The following symbols (past the first 12) are taken from the public headers. + # A list of the latter should be available Makefile.sources/LIBDRM_FREEDRENO_H_FILES + + FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_tegra.so} | awk '{print $3}'| while read func; do +@@ -10,6 +10,13 @@ + _end + _fini + _init ++_fbss ++_fdata ++_ftext ++__bss_start__ ++__bss_end__ ++_bss_end__ ++__end__ + drm_tegra_bo_get_flags + drm_tegra_bo_get_handle + drm_tegra_bo_get_tiling diff --git a/gnu/packages/patches/librsvg-tests.patch b/gnu/packages/patches/librsvg-tests.patch new file mode 100644 index 0000000000..dc5b94e185 --- /dev/null +++ b/gnu/packages/patches/librsvg-tests.patch @@ -0,0 +1,27 @@ +From e06fc71a57156123e4e50a39957100a651ab632b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong@gmail.com> +Date: Sat, 17 Oct 2015 10:20:33 +0800 +Subject: [PATCH] tests/styles: Don't duplicate test names. + +--- + tests/styles.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/styles.c b/tests/styles.c +index d09b1f2..a938835 100644 +--- a/tests/styles.c ++++ b/tests/styles.c +@@ -97,8 +97,8 @@ static const FixtureData fixtures[] = + {"/styles/selectors/2 or more selectors (stroke)", "592207", "styles/bug592207.svg", "#target", "stroke", .expected.color = 0xff0000ff}, + {"/styles/svg-element-style", "615701", "styles/svg-class.svg", "#svg", "fill", .expected.color = 0xff0000ff}, + {"/styles/presentation attribute in svg element", "620693", "styles/bug620693.svg", "#svg", "stroke", .expected.color = 0xffff0000}, +- {"/styles/!important", "379629", "styles/bug379629.svg", "#base_shadow", "stroke", .expected.color = 0xffffc0cb /* pink */}, +- {"/styles/!important", "379629", "styles/bug379629.svg", "#base_shadow", "stroke-width", .expected.length = {POINTS_LENGTH(5.), 'i'}}, ++ {"/styles/!important/1", "379629", "styles/bug379629.svg", "#base_shadow", "stroke", .expected.color = 0xffffc0cb /* pink */}, ++ {"/styles/!important/2", "379629", "styles/bug379629.svg", "#base_shadow", "stroke-width", .expected.length = {POINTS_LENGTH(5.), 'i'}}, + {"/styles/!important/class", "614606", "styles/bug614606.svg", "#path6306", "fill", .expected.color = 0xffff0000 /* red */ }, + {"/styles/!important/element", "614606", "styles/bug614606.svg", "#path6308", "fill", .expected.color = 0xff000000}, + {"/styles/!important/#id prior than class", NULL, "styles/important.svg", "#red", "fill", .expected.color = 0xffff0000 }, +-- +2.5.0 + diff --git a/gnu/packages/patches/libsndfile-CVE-2014-9496.patch b/gnu/packages/patches/libsndfile-CVE-2014-9496.patch new file mode 100644 index 0000000000..87d42955fb --- /dev/null +++ b/gnu/packages/patches/libsndfile-CVE-2014-9496.patch @@ -0,0 +1,55 @@ +Copied from Fedora. + +http://pkgs.fedoraproject.org/cgit/libsndfile.git/plain/libsndfile-1.0.25-cve2014_9496.patch + +diff -up libsndfile-1.0.25/src/sd2.c.cve2014_9496 libsndfile-1.0.25/src/sd2.c +--- libsndfile-1.0.25/src/sd2.c.cve2014_9496 2011-01-19 11:10:36.000000000 +0100 ++++ libsndfile-1.0.25/src/sd2.c 2015-01-13 17:00:35.920285526 +0100 +@@ -395,6 +395,21 @@ read_marker (const unsigned char * data, + return 0x666 ; + } /* read_marker */ + ++static inline int ++read_rsrc_marker (const SD2_RSRC *prsrc, int offset) ++{ const unsigned char * data = prsrc->rsrc_data ; ++ ++ if (offset < 0 || offset + 3 >= prsrc->rsrc_len) ++ return 0 ; ++ ++ if (CPU_IS_BIG_ENDIAN) ++ return (((uint32_t) data [offset]) << 24) + (data [offset + 1] << 16) + (data [offset + 2] << 8) + data [offset + 3] ; ++ if (CPU_IS_LITTLE_ENDIAN) ++ return data [offset] + (data [offset + 1] << 8) + (data [offset + 2] << 16) + (((uint32_t) data [offset + 3]) << 24) ; ++ ++ return 0 ; ++} /* read_rsrc_marker */ ++ + static void + read_str (const unsigned char * data, int offset, char * buffer, int buffer_len) + { int k ; +@@ -496,6 +511,11 @@ sd2_parse_rsrc_fork (SF_PRIVATE *psf) + + rsrc.type_offset = rsrc.map_offset + 30 ; + ++ if (rsrc.map_offset + 28 > rsrc.rsrc_len) ++ { psf_log_printf (psf, "Bad map offset.\n") ; ++ goto parse_rsrc_fork_cleanup ; ++ } ; ++ + rsrc.type_count = read_short (rsrc.rsrc_data, rsrc.map_offset + 28) + 1 ; + if (rsrc.type_count < 1) + { psf_log_printf (psf, "Bad type count.\n") ; +@@ -512,7 +532,12 @@ sd2_parse_rsrc_fork (SF_PRIVATE *psf) + + rsrc.str_index = -1 ; + for (k = 0 ; k < rsrc.type_count ; k ++) +- { marker = read_marker (rsrc.rsrc_data, rsrc.type_offset + k * 8) ; ++ { if (rsrc.type_offset + k * 8 > rsrc.rsrc_len) ++ { psf_log_printf (psf, "Bad rsrc marker.\n") ; ++ goto parse_rsrc_fork_cleanup ; ++ } ; ++ ++ marker = read_rsrc_marker (&rsrc, rsrc.type_offset + k * 8) ; + + if (marker == STR_MARKER) + { rsrc.str_index = k ; diff --git a/gnu/packages/patches/libsndfile-CVE-2015-7805.patch b/gnu/packages/patches/libsndfile-CVE-2015-7805.patch new file mode 100644 index 0000000000..d617f81e5c --- /dev/null +++ b/gnu/packages/patches/libsndfile-CVE-2015-7805.patch @@ -0,0 +1,95 @@ +Slightly modified to apply cleanly to libsndfile-1.0.25. + +From d2a87385c1ca1d72918e9a2875d24f202a5093e8 Mon Sep 17 00:00:00 2001 +From: Erik de Castro Lopo <erikd@mega-nerd.com> +Date: Sat, 7 Feb 2015 15:45:10 +1100 +Subject: [PATCH] src/common.c : Fix a header parsing bug. + +When the file header is bigger that SF_HEADER_LEN, the code would seek +instead of reading causing file parse errors. + +The current header parsing and writing code *badly* needs a re-write. +--- + src/common.c | 27 +++++++++++---------------- + 1 file changed, 11 insertions(+), 16 deletions(-) + +diff --git a/src/common.c b/src/common.c +index dd4edb7..c6b88cc 100644 +--- a/src/common.c ++++ b/src/common.c +@@ -1,5 +1,5 @@ + /* +-** Copyright (C) 1999-2011 Erik de Castro Lopo <erikd@mega-nerd.com> ++** Copyright (C) 1999-2015 Erik de Castro Lopo <erikd@mega-nerd.com> + ** + ** This program is free software; you can redistribute it and/or modify + ** it under the terms of the GNU Lesser General Public License as published by +@@ -800,21 +800,16 @@ header_read (SF_PRIVATE *psf, void *ptr, int bytes) + { int count = 0 ; + + if (psf->headindex >= SIGNED_SIZEOF (psf->header)) +- { memset (ptr, 0, SIGNED_SIZEOF (psf->header) - psf->headindex) ; +- +- /* This is the best that we can do. */ +- psf_fseek (psf, bytes, SEEK_CUR) ; +- return bytes ; +- } ; ++ return psf_fread (ptr, 1, bytes, psf) ; + + if (psf->headindex + bytes > SIGNED_SIZEOF (psf->header)) + { int most ; + + most = SIGNED_SIZEOF (psf->header) - psf->headindex ; + psf_fread (psf->header + psf->headend, 1, most, psf) ; +- memset ((char *) ptr + most, 0, bytes - most) ; +- +- psf_fseek (psf, bytes - most, SEEK_CUR) ; ++ memcpy (ptr, psf->header + psf->headend, most) ; ++ psf->headend = psf->headindex += most ; ++ psf_fread ((char *) ptr + most, bytes - most, 1, psf) ; + return bytes ; + } ; + +@@ -822,7 +817,7 @@ header_read (SF_PRIVATE *psf, void *ptr, int bytes) + { count = psf_fread (psf->header + psf->headend, 1, bytes - (psf->headend - psf->headindex), psf) ; + if (count != bytes - (int) (psf->headend - psf->headindex)) + { psf_log_printf (psf, "Error : psf_fread returned short count.\n") ; +- return 0 ; ++ return count ; + } ; + psf->headend += count ; + } ; +@@ -836,7 +831,6 @@ header_read (SF_PRIVATE *psf, void *ptr, int bytes) + static void + header_seek (SF_PRIVATE *psf, sf_count_t position, int whence) + { +- + switch (whence) + { case SEEK_SET : + if (position > SIGNED_SIZEOF (psf->header)) +@@ -885,8 +879,7 @@ header_seek (SF_PRIVATE *psf, sf_count_t position, int whence) + + static int + header_gets (SF_PRIVATE *psf, char *ptr, int bufsize) +-{ +- int k ; ++{ int k ; + + for (k = 0 ; k < bufsize - 1 ; k++) + { if (psf->headindex < psf->headend) +@@ -1073,8 +1066,10 @@ psf_binheader_readf (SF_PRIVATE *psf, char const *format, ...) + case 'j' : + /* Get the seek position first. */ + count = va_arg (argptr, size_t) ; +- header_seek (psf, count, SEEK_CUR) ; +- byte_count += count ; ++ if (count) ++ { header_seek (psf, count, SEEK_CUR) ; ++ byte_count += count ; ++ } ; + break ; + + default : +-- +2.6.3 + diff --git a/gnu/packages/patches/libxslt-CVE-2015-7995.patch b/gnu/packages/patches/libxslt-CVE-2015-7995.patch new file mode 100644 index 0000000000..f291d5b387 --- /dev/null +++ b/gnu/packages/patches/libxslt-CVE-2015-7995.patch @@ -0,0 +1,29 @@ +From 7ca19df892ca22d9314e95d59ce2abdeff46b617 Mon Sep 17 00:00:00 2001 +From: Daniel Veillard <veillard@redhat.com> +Date: Thu, 29 Oct 2015 19:33:23 +0800 +Subject: [PATCH] Fix for type confusion in preprocessing attributes + +CVE-2015-7995 http://www.openwall.com/lists/oss-security/2015/10/27/10 +We need to check that the parent node is an element before dereferencing +its namespace +--- + libxslt/preproc.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/libxslt/preproc.c b/libxslt/preproc.c +index 0eb80a0..7f69325 100644 +--- a/libxslt/preproc.c ++++ b/libxslt/preproc.c +@@ -2249,7 +2249,8 @@ xsltStylePreCompute(xsltStylesheetPtr style, xmlNodePtr inst) { + } else if (IS_XSLT_NAME(inst, "attribute")) { + xmlNodePtr parent = inst->parent; + +- if ((parent == NULL) || (parent->ns == NULL) || ++ if ((parent == NULL) || ++ (parent->type != XML_ELEMENT_NODE) || (parent->ns == NULL) || + ((parent->ns != inst->ns) && + (!xmlStrEqual(parent->ns->href, inst->ns->href))) || + (!xmlStrEqual(parent->name, BAD_CAST "attribute-set"))) { +-- +2.6.3 + diff --git a/gnu/packages/patches/lua52-liblua-so.patch b/gnu/packages/patches/lua52-liblua-so.patch new file mode 100644 index 0000000000..2e6b39ae79 --- /dev/null +++ b/gnu/packages/patches/lua52-liblua-so.patch @@ -0,0 +1,78 @@ +From 7a1b4e0829124976878ca2765a8e546667a92ceb Mon Sep 17 00:00:00 2001 +From: Leo Famulari <leo@famulari.name> +Date: Fri, 30 Oct 2015 19:11:31 -0400 +Subject: [PATCH] apply existing non-executable library patch and install + libraries as executable + +--- + Makefile | 6 +++--- + src/Makefile | 8 +++++++- + 2 files changed, 10 insertions(+), 4 deletions(-) + +diff --git a/Makefile b/Makefile +index 1aea8e6..bfcfed9 100644 +--- a/Makefile ++++ b/Makefile +@@ -44,7 +44,7 @@ INTERPRETER= lua + COMPILER= luac + TO_BIN= $(INTERPRETER) $(COMPILER) + TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp +-TO_LIB= liblua.a ++TO_LIB= liblua.a liblua.so liblua.so.${V} + TO_PC= lua-$(V).pc + TO_MAN= lua.1 luac.1 + +@@ -56,7 +56,7 @@ R= $V.3 + all: $(PLAT) + + $(PLATS): +- cd src && $(MAKE) $@ ++ cd src && $(MAKE) $@ V=$(V) R=$(R) + + clean: + cd src && $(MAKE) $@ +@@ -69,7 +69,7 @@ install: dummy $(TO_PC) + cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_PC) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) + cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN) + cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) +- cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB) ++ cd src && $(INSTALL_EXEC) $(TO_LIB) $(INSTALL_LIB) + cd src && $(INSTALL_DATA) ../$(TO_PC) $(INSTALL_PC) + cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN) + +diff --git a/src/Makefile b/src/Makefile +index 7b4b2b7..c86476e 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -29,6 +29,7 @@ MYOBJS= + PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris + + LUA_A= liblua.a ++LUA_SO= liblua.so + CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ + lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \ + ltm.o lundump.o lvm.o lzio.o +@@ -43,7 +44,7 @@ LUAC_T= luac + LUAC_O= luac.o + + ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) +-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) ++ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) + ALL_A= $(LUA_A) + + # Targets start here. +@@ -55,6 +56,11 @@ o: $(ALL_O) + + a: $(ALL_A) + ++$(LUA_SO): $(CORE_O) $(LIB_O) ++ $(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS) ++ ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V) ++ ln -sf $(LUA_SO).$(R) $(LUA_SO) ++ + $(LUA_A): $(BASE_O) + $(AR) $@ $(BASE_O) + $(RANLIB) $@ +-- +2.6.1 + diff --git a/gnu/packages/patches/matplotlib-setupext-tk.patch b/gnu/packages/patches/matplotlib-setupext-tk.patch new file mode 100644 index 0000000000..37c3d686e0 --- /dev/null +++ b/gnu/packages/patches/matplotlib-setupext-tk.patch @@ -0,0 +1,34 @@ +Use 'pkg-config' instead of heuristics to find 'tk' flags. + +--- matplotlib-1.4.3/setupext.py.orig 2015-12-01 14:21:19.554417453 +0100 ++++ matplotlib-1.4.3/setupext.py 2015-12-02 10:39:47.282363530 +0100 +@@ -1457,7 +1457,7 @@ + p = subprocess.Popen( + '. %s ; eval echo ${%s}' % (file, varname), + shell=True, +- executable="/bin/sh", ++ executable="sh", + stdout=subprocess.PIPE) + result = p.communicate()[0] + return result.decode('ascii') +@@ -1601,8 +1601,19 @@ + # of distros. + + # Query Tcl/Tk system for library paths and version string ++ def getoutput(s): ++ ret = os.popen(s).read().strip() ++ return ret + try: +- tcl_lib_dir, tk_lib_dir, tk_ver = self.query_tcltk() ++ pkg_config_libs = getoutput('pkg-config --libs-only-L tk').split() ++ # drop '-L' part of strings ++ pkg_config_libs = [s[2:] for s in pkg_config_libs] ++ pkg_config_ver = getoutput('pkg-config --modversion tk') ++ tk_ver = re.match(r"(\d+.\d+)[\d.]*", pkg_config_ver).group(1) ++ tcl_lib_dir = next(s for s in pkg_config_libs ++ if re.match(r".*-tcl-.*", s)) + '/tcl' + tk_ver ++ tk_lib_dir = next(s for s in pkg_config_libs ++ if re.match(r".*-tk-.*", s)) + '/tk' + tk_ver + except: + tk_ver = '' + result = self.hardcoded_tcl_config() diff --git a/gnu/packages/patches/mit-krb5-CVE-2015-2695-pt1.patch b/gnu/packages/patches/mit-krb5-CVE-2015-2695-pt1.patch new file mode 100644 index 0000000000..0f5603e228 --- /dev/null +++ b/gnu/packages/patches/mit-krb5-CVE-2015-2695-pt1.patch @@ -0,0 +1,569 @@ +Copied from Debian. + +From b813d5811432faed844a2dfd3daecde914978f2c Mon Sep 17 00:00:00 2001 +From: Nicolas Williams <nico@twosigma.com> +Date: Mon, 14 Sep 2015 12:27:52 -0400 +Subject: Fix SPNEGO context aliasing bugs [CVE-2015-2695] + +The SPNEGO mechanism currently replaces its context handle with the +mechanism context handle upon establishment, under the assumption that +most GSS functions are only called after context establishment. This +assumption is incorrect, and can lead to aliasing violations for some +programs. Maintain the SPNEGO context structure after context +establishment and refer to it in all GSS methods. Add initiate and +opened flags to the SPNEGO context structure for use in +gss_inquire_context() prior to context establishment. + +CVE-2015-2695: + +In MIT krb5 1.5 and later, applications which call +gss_inquire_context() on a partially-established SPNEGO context can +cause the GSS-API library to read from a pointer using the wrong type, +generally causing a process crash. This bug may go unnoticed, because +the most common SPNEGO authentication scenario establishes the context +after just one call to gss_accept_sec_context(). Java server +applications using the native JGSS provider are vulnerable to this +bug. A carefully crafted SPNEGO packet might allow the +gss_inquire_context() call to succeed with attacker-determined +results, but applications should not make access control decisions +based on gss_inquire_context() results prior to context establishment. + + CVSSv2 Vector: AV:N/AC:M/Au:N/C:N/I:N/A:C/E:POC/RL:OF/RC:C + +[ghudson@mit.edu: several bugfixes, style changes, and edge-case +behavior changes; commit message and CVE description] + +ticket: 8244 +target_version: 1.14 +tags: pullup + +(cherry picked from commit b51b33f2bc5d1497ddf5bd107f791c101695000d) +Patch-Category: upstream +--- + src/lib/gssapi/spnego/gssapiP_spnego.h | 2 + + src/lib/gssapi/spnego/spnego_mech.c | 254 ++++++++++++++++++++++++--------- + 2 files changed, 192 insertions(+), 64 deletions(-) + +diff --git a/src/lib/gssapi/spnego/gssapiP_spnego.h b/src/lib/gssapi/spnego/gssapiP_spnego.h +index bc23f56..8e05736 100644 +--- a/src/lib/gssapi/spnego/gssapiP_spnego.h ++++ b/src/lib/gssapi/spnego/gssapiP_spnego.h +@@ -102,6 +102,8 @@ typedef struct { + int firstpass; + int mech_complete; + int nego_done; ++ int initiate; ++ int opened; + OM_uint32 ctx_flags; + gss_name_t internal_name; + gss_OID actual_mech; +diff --git a/src/lib/gssapi/spnego/spnego_mech.c b/src/lib/gssapi/spnego/spnego_mech.c +index 6e39c37..a1072b0 100644 +--- a/src/lib/gssapi/spnego/spnego_mech.c ++++ b/src/lib/gssapi/spnego/spnego_mech.c +@@ -104,7 +104,7 @@ static OM_uint32 get_negotiable_mechs(OM_uint32 *, spnego_gss_cred_id_t, + gss_cred_usage_t, gss_OID_set *); + static void release_spnego_ctx(spnego_gss_ctx_id_t *); + static void check_spnego_options(spnego_gss_ctx_id_t); +-static spnego_gss_ctx_id_t create_spnego_ctx(void); ++static spnego_gss_ctx_id_t create_spnego_ctx(int); + static int put_mech_set(gss_OID_set mechSet, gss_buffer_t buf); + static int put_input_token(unsigned char **, gss_buffer_t, unsigned int); + static int put_mech_oid(unsigned char **, gss_OID_const, unsigned int); +@@ -442,7 +442,7 @@ check_spnego_options(spnego_gss_ctx_id_t spnego_ctx) + } + + static spnego_gss_ctx_id_t +-create_spnego_ctx(void) ++create_spnego_ctx(int initiate) + { + spnego_gss_ctx_id_t spnego_ctx = NULL; + spnego_ctx = (spnego_gss_ctx_id_t) +@@ -465,6 +465,8 @@ create_spnego_ctx(void) + spnego_ctx->mic_rcvd = 0; + spnego_ctx->mech_complete = 0; + spnego_ctx->nego_done = 0; ++ spnego_ctx->opened = 0; ++ spnego_ctx->initiate = initiate; + spnego_ctx->internal_name = GSS_C_NO_NAME; + spnego_ctx->actual_mech = GSS_C_NO_OID; + +@@ -630,7 +632,7 @@ init_ctx_new(OM_uint32 *minor_status, + OM_uint32 ret; + spnego_gss_ctx_id_t sc = NULL; + +- sc = create_spnego_ctx(); ++ sc = create_spnego_ctx(1); + if (sc == NULL) + return GSS_S_FAILURE; + +@@ -647,10 +649,7 @@ init_ctx_new(OM_uint32 *minor_status, + ret = GSS_S_FAILURE; + goto cleanup; + } +- /* +- * The actual context is not yet determined, set the output +- * context handle to refer to the spnego context itself. +- */ ++ + sc->ctx_handle = GSS_C_NO_CONTEXT; + *ctx = (gss_ctx_id_t)sc; + sc = NULL; +@@ -1091,16 +1090,11 @@ cleanup: + } + gss_release_buffer(&tmpmin, &mechtok_out); + if (ret == GSS_S_COMPLETE) { +- /* +- * Now, switch the output context to refer to the +- * negotiated mechanism's context. +- */ +- *context_handle = (gss_ctx_id_t)spnego_ctx->ctx_handle; ++ spnego_ctx->opened = 1; + if (actual_mech != NULL) + *actual_mech = spnego_ctx->actual_mech; + if (ret_flags != NULL) + *ret_flags = spnego_ctx->ctx_flags; +- release_spnego_ctx(&spnego_ctx); + } else if (ret != GSS_S_CONTINUE_NEEDED) { + if (spnego_ctx != NULL) { + gss_delete_sec_context(&tmpmin, +@@ -1344,7 +1338,7 @@ acc_ctx_hints(OM_uint32 *minor_status, + if (ret != GSS_S_COMPLETE) + goto cleanup; + +- sc = create_spnego_ctx(); ++ sc = create_spnego_ctx(0); + if (sc == NULL) { + ret = GSS_S_FAILURE; + goto cleanup; +@@ -1426,7 +1420,7 @@ acc_ctx_new(OM_uint32 *minor_status, + gss_release_buffer(&tmpmin, &sc->DER_mechTypes); + assert(mech_wanted != GSS_C_NO_OID); + } else +- sc = create_spnego_ctx(); ++ sc = create_spnego_ctx(0); + if (sc == NULL) { + ret = GSS_S_FAILURE; + *return_token = NO_TOKEN_SEND; +@@ -1809,13 +1803,12 @@ cleanup: + ret = GSS_S_FAILURE; + } + if (ret == GSS_S_COMPLETE) { +- *context_handle = (gss_ctx_id_t)sc->ctx_handle; ++ sc->opened = 1; + if (sc->internal_name != GSS_C_NO_NAME && + src_name != NULL) { + *src_name = sc->internal_name; + sc->internal_name = GSS_C_NO_NAME; + } +- release_spnego_ctx(&sc); + } else if (ret != GSS_S_CONTINUE_NEEDED) { + if (sc != NULL) { + gss_delete_sec_context(&tmpmin, &sc->ctx_handle, +@@ -2128,8 +2121,13 @@ spnego_gss_unwrap( + gss_qop_t *qop_state) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_unwrap(minor_status, +- context_handle, ++ sc->ctx_handle, + input_message_buffer, + output_message_buffer, + conf_state, +@@ -2149,8 +2147,13 @@ spnego_gss_wrap( + gss_buffer_t output_message_buffer) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_wrap(minor_status, +- context_handle, ++ sc->ctx_handle, + conf_req_flag, + qop_req, + input_message_buffer, +@@ -2167,8 +2170,14 @@ spnego_gss_process_context_token( + const gss_buffer_t token_buffer) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ /* SPNEGO doesn't have its own context tokens. */ ++ if (!sc->opened) ++ return (GSS_S_DEFECTIVE_TOKEN); ++ + ret = gss_process_context_token(minor_status, +- context_handle, ++ sc->ctx_handle, + token_buffer); + + return (ret); +@@ -2192,19 +2201,9 @@ spnego_gss_delete_sec_context( + if (*ctx == NULL) + return (GSS_S_COMPLETE); + +- /* +- * If this is still an SPNEGO mech, release it locally. +- */ +- if ((*ctx)->magic_num == SPNEGO_MAGIC_ID) { +- (void) gss_delete_sec_context(minor_status, +- &(*ctx)->ctx_handle, +- output_token); +- (void) release_spnego_ctx(ctx); +- } else { +- ret = gss_delete_sec_context(minor_status, +- context_handle, +- output_token); +- } ++ (void) gss_delete_sec_context(minor_status, &(*ctx)->ctx_handle, ++ output_token); ++ (void) release_spnego_ctx(ctx); + + return (ret); + } +@@ -2216,8 +2215,13 @@ spnego_gss_context_time( + OM_uint32 *time_rec) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_context_time(minor_status, +- context_handle, ++ sc->ctx_handle, + time_rec); + return (ret); + } +@@ -2229,9 +2233,20 @@ spnego_gss_export_sec_context( + gss_buffer_t interprocess_token) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = *(spnego_gss_ctx_id_t *)context_handle; ++ ++ /* We don't currently support exporting partially established ++ * contexts. */ ++ if (!sc->opened) ++ return GSS_S_UNAVAILABLE; ++ + ret = gss_export_sec_context(minor_status, +- context_handle, ++ &sc->ctx_handle, + interprocess_token); ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) { ++ release_spnego_ctx(&sc); ++ *context_handle = GSS_C_NO_CONTEXT; ++ } + return (ret); + } + +@@ -2241,11 +2256,12 @@ spnego_gss_import_sec_context( + const gss_buffer_t interprocess_token, + gss_ctx_id_t *context_handle) + { +- OM_uint32 ret; +- ret = gss_import_sec_context(minor_status, +- interprocess_token, +- context_handle); +- return (ret); ++ /* ++ * Until we implement partial context exports, there are no SPNEGO ++ * exported context tokens, only tokens for underlying mechs. So just ++ * return an error for now. ++ */ ++ return GSS_S_UNAVAILABLE; + } + #endif /* LEAN_CLIENT */ + +@@ -2262,16 +2278,48 @@ spnego_gss_inquire_context( + int *opened) + { + OM_uint32 ret = GSS_S_COMPLETE; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (src_name != NULL) ++ *src_name = GSS_C_NO_NAME; ++ if (targ_name != NULL) ++ *targ_name = GSS_C_NO_NAME; ++ if (lifetime_rec != NULL) ++ *lifetime_rec = 0; ++ if (mech_type != NULL) ++ *mech_type = (gss_OID)gss_mech_spnego; ++ if (ctx_flags != NULL) ++ *ctx_flags = 0; ++ if (locally_initiated != NULL) ++ *locally_initiated = sc->initiate; ++ if (opened != NULL) ++ *opened = sc->opened; ++ ++ if (sc->ctx_handle != GSS_C_NO_CONTEXT) { ++ ret = gss_inquire_context(minor_status, sc->ctx_handle, ++ src_name, targ_name, lifetime_rec, ++ mech_type, ctx_flags, NULL, NULL); ++ } + +- ret = gss_inquire_context(minor_status, +- context_handle, +- src_name, +- targ_name, +- lifetime_rec, +- mech_type, +- ctx_flags, +- locally_initiated, +- opened); ++ if (!sc->opened) { ++ /* ++ * We are still doing SPNEGO negotiation, so report SPNEGO as ++ * the OID. After negotiation is complete we will report the ++ * underlying mechanism OID. ++ */ ++ if (mech_type != NULL) ++ *mech_type = (gss_OID)gss_mech_spnego; ++ ++ /* ++ * Remove flags we don't support with partially-established ++ * contexts. (Change this to keep GSS_C_TRANS_FLAG if we add ++ * support for exporting partial SPNEGO contexts.) ++ */ ++ if (ctx_flags != NULL) { ++ *ctx_flags &= ~GSS_C_PROT_READY_FLAG; ++ *ctx_flags &= ~GSS_C_TRANS_FLAG; ++ } ++ } + + return (ret); + } +@@ -2286,8 +2334,13 @@ spnego_gss_wrap_size_limit( + OM_uint32 *max_input_size) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_wrap_size_limit(minor_status, +- context_handle, ++ sc->ctx_handle, + conf_req_flag, + qop_req, + req_output_size, +@@ -2304,8 +2357,13 @@ spnego_gss_get_mic( + gss_buffer_t message_token) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_get_mic(minor_status, +- context_handle, ++ sc->ctx_handle, + qop_req, + message_buffer, + message_token); +@@ -2321,8 +2379,13 @@ spnego_gss_verify_mic( + gss_qop_t *qop_state) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_verify_mic(minor_status, +- context_handle, ++ sc->ctx_handle, + msg_buffer, + token_buffer, + qop_state); +@@ -2337,8 +2400,14 @@ spnego_gss_inquire_sec_context_by_oid( + gss_buffer_set_t *data_set) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ /* There are no SPNEGO-specific OIDs for this function. */ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_UNAVAILABLE); ++ + ret = gss_inquire_sec_context_by_oid(minor_status, +- context_handle, ++ sc->ctx_handle, + desired_object, + data_set); + return (ret); +@@ -2407,8 +2476,15 @@ spnego_gss_set_sec_context_option( + const gss_buffer_t value) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)*context_handle; ++ ++ /* There are no SPNEGO-specific OIDs for this function, and we cannot ++ * construct an empty SPNEGO context with it. */ ++ if (sc == NULL || sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_UNAVAILABLE); ++ + ret = gss_set_sec_context_option(minor_status, +- context_handle, ++ &sc->ctx_handle, + desired_object, + value); + return (ret); +@@ -2425,8 +2501,13 @@ spnego_gss_wrap_aead(OM_uint32 *minor_status, + gss_buffer_t output_message_buffer) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_wrap_aead(minor_status, +- context_handle, ++ sc->ctx_handle, + conf_req_flag, + qop_req, + input_assoc_buffer, +@@ -2447,8 +2528,13 @@ spnego_gss_unwrap_aead(OM_uint32 *minor_status, + gss_qop_t *qop_state) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_unwrap_aead(minor_status, +- context_handle, ++ sc->ctx_handle, + input_message_buffer, + input_assoc_buffer, + output_payload_buffer, +@@ -2467,8 +2553,13 @@ spnego_gss_wrap_iov(OM_uint32 *minor_status, + int iov_count) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_wrap_iov(minor_status, +- context_handle, ++ sc->ctx_handle, + conf_req_flag, + qop_req, + conf_state, +@@ -2486,8 +2577,13 @@ spnego_gss_unwrap_iov(OM_uint32 *minor_status, + int iov_count) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_unwrap_iov(minor_status, +- context_handle, ++ sc->ctx_handle, + conf_state, + qop_state, + iov, +@@ -2505,8 +2601,13 @@ spnego_gss_wrap_iov_length(OM_uint32 *minor_status, + int iov_count) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_wrap_iov_length(minor_status, +- context_handle, ++ sc->ctx_handle, + conf_req_flag, + qop_req, + conf_state, +@@ -2523,8 +2624,13 @@ spnego_gss_complete_auth_token( + gss_buffer_t input_message_buffer) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_UNAVAILABLE); ++ + ret = gss_complete_auth_token(minor_status, +- context_handle, ++ sc->ctx_handle, + input_message_buffer); + return (ret); + } +@@ -2776,8 +2882,13 @@ spnego_gss_pseudo_random(OM_uint32 *minor_status, + gss_buffer_t prf_out) + { + OM_uint32 ret; ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ + ret = gss_pseudo_random(minor_status, +- context, ++ sc->ctx_handle, + prf_key, + prf_in, + desired_output_len, +@@ -2918,7 +3029,12 @@ spnego_gss_get_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, + gss_qop_t qop_req, gss_iov_buffer_desc *iov, + int iov_count) + { +- return gss_get_mic_iov(minor_status, context_handle, qop_req, iov, ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ ++ return gss_get_mic_iov(minor_status, sc->ctx_handle, qop_req, iov, + iov_count); + } + +@@ -2927,7 +3043,12 @@ spnego_gss_verify_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, + gss_qop_t *qop_state, gss_iov_buffer_desc *iov, + int iov_count) + { +- return gss_verify_mic_iov(minor_status, context_handle, qop_state, iov, ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ ++ return gss_verify_mic_iov(minor_status, sc->ctx_handle, qop_state, iov, + iov_count); + } + +@@ -2936,7 +3057,12 @@ spnego_gss_get_mic_iov_length(OM_uint32 *minor_status, + gss_ctx_id_t context_handle, gss_qop_t qop_req, + gss_iov_buffer_desc *iov, int iov_count) + { +- return gss_get_mic_iov_length(minor_status, context_handle, qop_req, iov, ++ spnego_gss_ctx_id_t sc = (spnego_gss_ctx_id_t)context_handle; ++ ++ if (sc->ctx_handle == GSS_C_NO_CONTEXT) ++ return (GSS_S_NO_CONTEXT); ++ ++ return gss_get_mic_iov_length(minor_status, sc->ctx_handle, qop_req, iov, + iov_count); + } + diff --git a/gnu/packages/patches/mit-krb5-CVE-2015-2695-pt2.patch b/gnu/packages/patches/mit-krb5-CVE-2015-2695-pt2.patch new file mode 100644 index 0000000000..aa9fcfa0dd --- /dev/null +++ b/gnu/packages/patches/mit-krb5-CVE-2015-2695-pt2.patch @@ -0,0 +1,65 @@ +Copied from Debian. + +From 18c512ebdcc5cacc777e9dbcc6817f83c301ad93 Mon Sep 17 00:00:00 2001 +From: Greg Hudson <ghudson@mit.edu> +Date: Wed, 4 Nov 2015 21:29:10 -0500 +Subject: Fix SPNEGO context import + +The patches for CVE-2015-2695 did not implement a SPNEGO +gss_import_sec_context() function, under the erroneous belief than an +exported SPNEGO context would be tagged with the underlying context +mechanism. Implement it now to allow SPNEGO contexts to be +successfully exported and imported after establishment. + +ticket: 8273 +(cherry picked from commit fbb565f913c52eba9bea82f1694aba7a8c90e93d) + +Patch-Category: upstream +--- + src/lib/gssapi/spnego/spnego_mech.c | 33 +++++++++++++++++++++++++++------ + 1 file changed, 27 insertions(+), 6 deletions(-) + +diff --git a/src/lib/gssapi/spnego/spnego_mech.c b/src/lib/gssapi/spnego/spnego_mech.c +index a1072b0..02284a1 100644 +--- a/src/lib/gssapi/spnego/spnego_mech.c ++++ b/src/lib/gssapi/spnego/spnego_mech.c +@@ -2256,12 +2256,33 @@ spnego_gss_import_sec_context( + const gss_buffer_t interprocess_token, + gss_ctx_id_t *context_handle) + { +- /* +- * Until we implement partial context exports, there are no SPNEGO +- * exported context tokens, only tokens for underlying mechs. So just +- * return an error for now. +- */ +- return GSS_S_UNAVAILABLE; ++ OM_uint32 ret, tmpmin; ++ gss_ctx_id_t mctx; ++ spnego_gss_ctx_id_t sc; ++ int initiate, opened; ++ ++ ret = gss_import_sec_context(minor_status, interprocess_token, &mctx); ++ if (ret != GSS_S_COMPLETE) ++ return ret; ++ ++ ret = gss_inquire_context(&tmpmin, mctx, NULL, NULL, NULL, NULL, NULL, ++ &initiate, &opened); ++ if (ret != GSS_S_COMPLETE || !opened) { ++ /* We don't currently support importing partially established ++ * contexts. */ ++ (void) gss_delete_sec_context(&tmpmin, &mctx, GSS_C_NO_BUFFER); ++ return GSS_S_FAILURE; ++ } ++ ++ sc = create_spnego_ctx(initiate); ++ if (sc == NULL) { ++ (void) gss_delete_sec_context(&tmpmin, &mctx, GSS_C_NO_BUFFER); ++ return GSS_S_FAILURE; ++ } ++ sc->ctx_handle = mctx; ++ sc->opened = 1; ++ *context_handle = (gss_ctx_id_t)sc; ++ return GSS_S_COMPLETE; + } + #endif /* LEAN_CLIENT */ + diff --git a/gnu/packages/patches/mit-krb5-CVE-2015-2696.patch b/gnu/packages/patches/mit-krb5-CVE-2015-2696.patch new file mode 100644 index 0000000000..7b4b1d71ab --- /dev/null +++ b/gnu/packages/patches/mit-krb5-CVE-2015-2696.patch @@ -0,0 +1,736 @@ +Copied from Debian. + +From ebea85358bc72ec20c53130d83acb93f95853b76 Mon Sep 17 00:00:00 2001 +From: Nicolas Williams <nico@twosigma.com> +Date: Mon, 14 Sep 2015 12:28:36 -0400 +Subject: Fix IAKERB context aliasing bugs [CVE-2015-2696] + +The IAKERB mechanism currently replaces its context handle with the +krb5 mechanism handle upon establishment, under the assumption that +most GSS functions are only called after context establishment. This +assumption is incorrect, and can lead to aliasing violations for some +programs. Maintain the IAKERB context structure after context +establishment and add new IAKERB entry points to refer to it with that +type. Add initiate and established flags to the IAKERB context +structure for use in gss_inquire_context() prior to context +establishment. + +CVE-2015-2696: + +In MIT krb5 1.9 and later, applications which call +gss_inquire_context() on a partially-established IAKERB context can +cause the GSS-API library to read from a pointer using the wrong type, +generally causing a process crash. Java server applications using the +native JGSS provider are vulnerable to this bug. A carefully crafted +IAKERB packet might allow the gss_inquire_context() call to succeed +with attacker-determined results, but applications should not make +access control decisions based on gss_inquire_context() results prior +to context establishment. + + CVSSv2 Vector: AV:N/AC:M/Au:N/C:N/I:N/A:C/E:POC/RL:OF/RC:C + +[ghudson@mit.edu: several bugfixes, style changes, and edge-case +behavior changes; commit message and CVE description] + +ticket: 8244 +target_version: 1.14 +tags: pullup + +(cherry picked from commit e04f0283516e80d2f93366e0d479d13c9b5c8c2a) +Patch-Category: upstream +--- + src/lib/gssapi/krb5/gssapiP_krb5.h | 114 ++++++++++++ + src/lib/gssapi/krb5/gssapi_krb5.c | 105 +++++++++-- + src/lib/gssapi/krb5/iakerb.c | 351 +++++++++++++++++++++++++++++++++---- + 3 files changed, 529 insertions(+), 41 deletions(-) + +diff --git a/src/lib/gssapi/krb5/gssapiP_krb5.h b/src/lib/gssapi/krb5/gssapiP_krb5.h +index a0e8625..05dc321 100644 +--- a/src/lib/gssapi/krb5/gssapiP_krb5.h ++++ b/src/lib/gssapi/krb5/gssapiP_krb5.h +@@ -620,6 +620,21 @@ OM_uint32 KRB5_CALLCONV krb5_gss_accept_sec_context_ext + ); + #endif /* LEAN_CLIENT */ + ++OM_uint32 KRB5_CALLCONV krb5_gss_inquire_sec_context_by_oid ++(OM_uint32*, /* minor_status */ ++ const gss_ctx_id_t, ++ /* context_handle */ ++ const gss_OID, /* desired_object */ ++ gss_buffer_set_t* /* data_set */ ++); ++ ++OM_uint32 KRB5_CALLCONV krb5_gss_set_sec_context_option ++(OM_uint32*, /* minor_status */ ++ gss_ctx_id_t*, /* context_handle */ ++ const gss_OID, /* desired_object */ ++ const gss_buffer_t/* value */ ++); ++ + OM_uint32 KRB5_CALLCONV krb5_gss_process_context_token + (OM_uint32*, /* minor_status */ + gss_ctx_id_t, /* context_handle */ +@@ -1301,6 +1316,105 @@ OM_uint32 KRB5_CALLCONV + krb5_gss_import_cred(OM_uint32 *minor_status, gss_buffer_t token, + gss_cred_id_t *cred_handle); + ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_process_context_token(OM_uint32 *minor_status, ++ const gss_ctx_id_t context_handle, ++ const gss_buffer_t token_buffer); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_context_time(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ OM_uint32 *time_rec); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_inquire_context(OM_uint32 *minor_status, ++ gss_ctx_id_t context_handle, gss_name_t *src_name, ++ gss_name_t *targ_name, OM_uint32 *lifetime_rec, ++ gss_OID *mech_type, OM_uint32 *ctx_flags, ++ int *locally_initiated, int *opened); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_get_mic(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_qop_t qop_req, gss_buffer_t message_buffer, ++ gss_buffer_t message_token); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_get_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_qop_t qop_req, gss_iov_buffer_desc *iov, ++ int iov_count); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_get_mic_iov_length(OM_uint32 *minor_status, ++ gss_ctx_id_t context_handle, gss_qop_t qop_req, ++ gss_iov_buffer_desc *iov, int iov_count); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_verify_mic(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_buffer_t msg_buffer, gss_buffer_t token_buffer, ++ gss_qop_t *qop_state); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_verify_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_qop_t *qop_state, gss_iov_buffer_desc *iov, ++ int iov_count); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_wrap(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ int conf_req_flag, gss_qop_t qop_req, ++ gss_buffer_t input_message_buffer, int *conf_state, ++ gss_buffer_t output_message_buffer); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_wrap_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ int conf_req_flag, gss_qop_t qop_req, int *conf_state, ++ gss_iov_buffer_desc *iov, int iov_count); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_wrap_iov_length(OM_uint32 *minor_status, ++ gss_ctx_id_t context_handle, int conf_req_flag, ++ gss_qop_t qop_req, int *conf_state, ++ gss_iov_buffer_desc *iov, int iov_count); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_unwrap(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_buffer_t input_message_buffer, ++ gss_buffer_t output_message_buffer, int *conf_state, ++ gss_qop_t *qop_state); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_unwrap_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ int *conf_state, gss_qop_t *qop_state, ++ gss_iov_buffer_desc *iov, int iov_count); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_wrap_size_limit(OM_uint32 *minor_status, ++ gss_ctx_id_t context_handle, int conf_req_flag, ++ gss_qop_t qop_req, OM_uint32 req_output_size, ++ OM_uint32 *max_input_size); ++ ++#ifndef LEAN_CLIENT ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_export_sec_context(OM_uint32 *minor_status, ++ gss_ctx_id_t *context_handle, ++ gss_buffer_t interprocess_token); ++#endif /* LEAN_CLIENT */ ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_inquire_sec_context_by_oid(OM_uint32 *minor_status, ++ const gss_ctx_id_t context_handle, ++ const gss_OID desired_object, ++ gss_buffer_set_t *data_set); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_set_sec_context_option(OM_uint32 *minor_status, ++ gss_ctx_id_t *context_handle, ++ const gss_OID desired_object, ++ const gss_buffer_t value); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_pseudo_random(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ int prf_key, const gss_buffer_t prf_in, ++ ssize_t desired_output_len, gss_buffer_t prf_out); ++ + /* Magic string to identify exported krb5 GSS credentials. Increment this if + * the format changes. */ + #define CRED_EXPORT_MAGIC "K5C1" +diff --git a/src/lib/gssapi/krb5/gssapi_krb5.c b/src/lib/gssapi/krb5/gssapi_krb5.c +index 77b7fff..9a23656 100644 +--- a/src/lib/gssapi/krb5/gssapi_krb5.c ++++ b/src/lib/gssapi/krb5/gssapi_krb5.c +@@ -345,7 +345,7 @@ static struct { + } + }; + +-static OM_uint32 KRB5_CALLCONV ++OM_uint32 KRB5_CALLCONV + krb5_gss_inquire_sec_context_by_oid (OM_uint32 *minor_status, + const gss_ctx_id_t context_handle, + const gss_OID desired_object, +@@ -459,7 +459,7 @@ static struct { + }; + #endif + +-static OM_uint32 KRB5_CALLCONV ++OM_uint32 KRB5_CALLCONV + krb5_gss_set_sec_context_option (OM_uint32 *minor_status, + gss_ctx_id_t *context_handle, + const gss_OID desired_object, +@@ -904,20 +904,103 @@ static struct gss_config krb5_mechanism = { + krb5_gss_get_mic_iov_length, + }; + ++/* Functions which use security contexts or acquire creds are IAKERB-specific; ++ * other functions can borrow from the krb5 mech. */ ++static struct gss_config iakerb_mechanism = { ++ { GSS_MECH_KRB5_OID_LENGTH, GSS_MECH_KRB5_OID }, ++ NULL, ++ iakerb_gss_acquire_cred, ++ krb5_gss_release_cred, ++ iakerb_gss_init_sec_context, ++#ifdef LEAN_CLIENT ++ NULL, ++#else ++ iakerb_gss_accept_sec_context, ++#endif ++ iakerb_gss_process_context_token, ++ iakerb_gss_delete_sec_context, ++ iakerb_gss_context_time, ++ iakerb_gss_get_mic, ++ iakerb_gss_verify_mic, ++#if defined(IOV_SHIM_EXERCISE_WRAP) || defined(IOV_SHIM_EXERCISE) ++ NULL, ++#else ++ iakerb_gss_wrap, ++#endif ++#if defined(IOV_SHIM_EXERCISE_UNWRAP) || defined(IOV_SHIM_EXERCISE) ++ NULL, ++#else ++ iakerb_gss_unwrap, ++#endif ++ krb5_gss_display_status, ++ krb5_gss_indicate_mechs, ++ krb5_gss_compare_name, ++ krb5_gss_display_name, ++ krb5_gss_import_name, ++ krb5_gss_release_name, ++ krb5_gss_inquire_cred, ++ NULL, /* add_cred */ ++#ifdef LEAN_CLIENT ++ NULL, ++ NULL, ++#else ++ iakerb_gss_export_sec_context, ++ NULL, ++#endif ++ krb5_gss_inquire_cred_by_mech, ++ krb5_gss_inquire_names_for_mech, ++ iakerb_gss_inquire_context, ++ krb5_gss_internal_release_oid, ++ iakerb_gss_wrap_size_limit, ++ krb5_gss_localname, ++ krb5_gss_authorize_localname, ++ krb5_gss_export_name, ++ krb5_gss_duplicate_name, ++ krb5_gss_store_cred, ++ iakerb_gss_inquire_sec_context_by_oid, ++ krb5_gss_inquire_cred_by_oid, ++ iakerb_gss_set_sec_context_option, ++ krb5_gssspi_set_cred_option, ++ krb5_gssspi_mech_invoke, ++ NULL, /* wrap_aead */ ++ NULL, /* unwrap_aead */ ++ iakerb_gss_wrap_iov, ++ iakerb_gss_unwrap_iov, ++ iakerb_gss_wrap_iov_length, ++ NULL, /* complete_auth_token */ ++ NULL, /* acquire_cred_impersonate_name */ ++ NULL, /* add_cred_impersonate_name */ ++ NULL, /* display_name_ext */ ++ krb5_gss_inquire_name, ++ krb5_gss_get_name_attribute, ++ krb5_gss_set_name_attribute, ++ krb5_gss_delete_name_attribute, ++ krb5_gss_export_name_composite, ++ krb5_gss_map_name_to_any, ++ krb5_gss_release_any_name_mapping, ++ iakerb_gss_pseudo_random, ++ NULL, /* set_neg_mechs */ ++ krb5_gss_inquire_saslname_for_mech, ++ krb5_gss_inquire_mech_for_saslname, ++ krb5_gss_inquire_attrs_for_mech, ++ krb5_gss_acquire_cred_from, ++ krb5_gss_store_cred_into, ++ iakerb_gss_acquire_cred_with_password, ++ krb5_gss_export_cred, ++ krb5_gss_import_cred, ++ NULL, /* import_sec_context_by_mech */ ++ NULL, /* import_name_by_mech */ ++ NULL, /* import_cred_by_mech */ ++ iakerb_gss_get_mic_iov, ++ iakerb_gss_verify_mic_iov, ++ iakerb_gss_get_mic_iov_length, ++}; ++ + #ifdef _GSS_STATIC_LINK + #include "mglueP.h" + static int gss_iakerbmechglue_init(void) + { + struct gss_mech_config mech_iakerb; +- struct gss_config iakerb_mechanism = krb5_mechanism; +- +- /* IAKERB mechanism mirrors krb5, but with different context SPIs */ +- iakerb_mechanism.gss_accept_sec_context = iakerb_gss_accept_sec_context; +- iakerb_mechanism.gss_init_sec_context = iakerb_gss_init_sec_context; +- iakerb_mechanism.gss_delete_sec_context = iakerb_gss_delete_sec_context; +- iakerb_mechanism.gss_acquire_cred = iakerb_gss_acquire_cred; +- iakerb_mechanism.gssspi_acquire_cred_with_password +- = iakerb_gss_acquire_cred_with_password; + + memset(&mech_iakerb, 0, sizeof(mech_iakerb)); + mech_iakerb.mech = &iakerb_mechanism; +diff --git a/src/lib/gssapi/krb5/iakerb.c b/src/lib/gssapi/krb5/iakerb.c +index f30de32..4662bd9 100644 +--- a/src/lib/gssapi/krb5/iakerb.c ++++ b/src/lib/gssapi/krb5/iakerb.c +@@ -47,6 +47,8 @@ struct _iakerb_ctx_id_rec { + gss_ctx_id_t gssc; + krb5_data conv; /* conversation for checksumming */ + unsigned int count; /* number of round trips */ ++ int initiate; ++ int established; + krb5_get_init_creds_opt *gic_opts; + }; + +@@ -695,7 +697,7 @@ cleanup: + * Allocate and initialise an IAKERB context + */ + static krb5_error_code +-iakerb_alloc_context(iakerb_ctx_id_t *pctx) ++iakerb_alloc_context(iakerb_ctx_id_t *pctx, int initiate) + { + iakerb_ctx_id_t ctx; + krb5_error_code code; +@@ -709,6 +711,8 @@ iakerb_alloc_context(iakerb_ctx_id_t *pctx) + ctx->magic = KG_IAKERB_CONTEXT; + ctx->state = IAKERB_AS_REQ; + ctx->count = 0; ++ ctx->initiate = initiate; ++ ctx->established = 0; + + code = krb5_gss_init_context(&ctx->k5c); + if (code != 0) +@@ -732,7 +736,7 @@ iakerb_gss_delete_sec_context(OM_uint32 *minor_status, + gss_ctx_id_t *context_handle, + gss_buffer_t output_token) + { +- OM_uint32 major_status = GSS_S_COMPLETE; ++ iakerb_ctx_id_t iakerb_ctx = (iakerb_ctx_id_t)*context_handle; + + if (output_token != GSS_C_NO_BUFFER) { + output_token->length = 0; +@@ -740,23 +744,10 @@ iakerb_gss_delete_sec_context(OM_uint32 *minor_status, + } + + *minor_status = 0; ++ *context_handle = GSS_C_NO_CONTEXT; ++ iakerb_release_context(iakerb_ctx); + +- if (*context_handle != GSS_C_NO_CONTEXT) { +- iakerb_ctx_id_t iakerb_ctx = (iakerb_ctx_id_t)*context_handle; +- +- if (iakerb_ctx->magic == KG_IAKERB_CONTEXT) { +- iakerb_release_context(iakerb_ctx); +- *context_handle = GSS_C_NO_CONTEXT; +- } else { +- assert(iakerb_ctx->magic == KG_CONTEXT); +- +- major_status = krb5_gss_delete_sec_context(minor_status, +- context_handle, +- output_token); +- } +- } +- +- return major_status; ++ return GSS_S_COMPLETE; + } + + static krb5_boolean +@@ -802,7 +793,7 @@ iakerb_gss_accept_sec_context(OM_uint32 *minor_status, + int initialContextToken = (*context_handle == GSS_C_NO_CONTEXT); + + if (initialContextToken) { +- code = iakerb_alloc_context(&ctx); ++ code = iakerb_alloc_context(&ctx, 0); + if (code != 0) + goto cleanup; + +@@ -854,11 +845,8 @@ iakerb_gss_accept_sec_context(OM_uint32 *minor_status, + time_rec, + delegated_cred_handle, + &exts); +- if (major_status == GSS_S_COMPLETE) { +- *context_handle = ctx->gssc; +- ctx->gssc = NULL; +- iakerb_release_context(ctx); +- } ++ if (major_status == GSS_S_COMPLETE) ++ ctx->established = 1; + if (mech_type != NULL) + *mech_type = (gss_OID)gss_mech_krb5; + } +@@ -897,7 +885,7 @@ iakerb_gss_init_sec_context(OM_uint32 *minor_status, + int initialContextToken = (*context_handle == GSS_C_NO_CONTEXT); + + if (initialContextToken) { +- code = iakerb_alloc_context(&ctx); ++ code = iakerb_alloc_context(&ctx, 1); + if (code != 0) { + *minor_status = code; + goto cleanup; +@@ -983,11 +971,8 @@ iakerb_gss_init_sec_context(OM_uint32 *minor_status, + ret_flags, + time_rec, + &exts); +- if (major_status == GSS_S_COMPLETE) { +- *context_handle = ctx->gssc; +- ctx->gssc = GSS_C_NO_CONTEXT; +- iakerb_release_context(ctx); +- } ++ if (major_status == GSS_S_COMPLETE) ++ ctx->established = 1; + if (actual_mech_type != NULL) + *actual_mech_type = (gss_OID)gss_mech_krb5; + } else { +@@ -1010,3 +995,309 @@ cleanup: + + return major_status; + } ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_unwrap(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_buffer_t input_message_buffer, ++ gss_buffer_t output_message_buffer, int *conf_state, ++ gss_qop_t *qop_state) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_unwrap(minor_status, ctx->gssc, input_message_buffer, ++ output_message_buffer, conf_state, qop_state); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_wrap(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ int conf_req_flag, gss_qop_t qop_req, ++ gss_buffer_t input_message_buffer, int *conf_state, ++ gss_buffer_t output_message_buffer) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_wrap(minor_status, ctx->gssc, conf_req_flag, qop_req, ++ input_message_buffer, conf_state, ++ output_message_buffer); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_process_context_token(OM_uint32 *minor_status, ++ const gss_ctx_id_t context_handle, ++ const gss_buffer_t token_buffer) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_DEFECTIVE_TOKEN; ++ ++ return krb5_gss_process_context_token(minor_status, ctx->gssc, ++ token_buffer); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_context_time(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ OM_uint32 *time_rec) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_context_time(minor_status, ctx->gssc, time_rec); ++} ++ ++#ifndef LEAN_CLIENT ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_export_sec_context(OM_uint32 *minor_status, ++ gss_ctx_id_t *context_handle, ++ gss_buffer_t interprocess_token) ++{ ++ OM_uint32 maj; ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ /* We don't currently support exporting partially established contexts. */ ++ if (!ctx->established) ++ return GSS_S_UNAVAILABLE; ++ ++ maj = krb5_gss_export_sec_context(minor_status, &ctx->gssc, ++ interprocess_token); ++ if (ctx->gssc == GSS_C_NO_CONTEXT) { ++ iakerb_release_context(ctx); ++ *context_handle = GSS_C_NO_CONTEXT; ++ } ++ return maj; ++} ++ ++/* ++ * Until we implement partial context exports, there are no SPNEGO exported ++ * context tokens, only tokens for the underlying krb5 context. So we do not ++ * need to implement an iakerb_gss_import_sec_context() yet; it would be ++ * unreachable except via a manually constructed token. ++ */ ++ ++#endif /* LEAN_CLIENT */ ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_inquire_context(OM_uint32 *minor_status, ++ gss_ctx_id_t context_handle, gss_name_t *src_name, ++ gss_name_t *targ_name, OM_uint32 *lifetime_rec, ++ gss_OID *mech_type, OM_uint32 *ctx_flags, ++ int *initiate, int *opened) ++{ ++ OM_uint32 ret; ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (src_name != NULL) ++ *src_name = GSS_C_NO_NAME; ++ if (targ_name != NULL) ++ *targ_name = GSS_C_NO_NAME; ++ if (lifetime_rec != NULL) ++ *lifetime_rec = 0; ++ if (mech_type != NULL) ++ *mech_type = (gss_OID)gss_mech_iakerb; ++ if (ctx_flags != NULL) ++ *ctx_flags = 0; ++ if (initiate != NULL) ++ *initiate = ctx->initiate; ++ if (opened != NULL) ++ *opened = ctx->established; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_COMPLETE; ++ ++ ret = krb5_gss_inquire_context(minor_status, ctx->gssc, src_name, ++ targ_name, lifetime_rec, mech_type, ++ ctx_flags, initiate, opened); ++ ++ if (!ctx->established) { ++ /* Report IAKERB as the mech OID until the context is established. */ ++ if (mech_type != NULL) ++ *mech_type = (gss_OID)gss_mech_iakerb; ++ ++ /* We don't support exporting partially-established contexts. */ ++ if (ctx_flags != NULL) ++ *ctx_flags &= ~GSS_C_TRANS_FLAG; ++ } ++ ++ return ret; ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_wrap_size_limit(OM_uint32 *minor_status, ++ gss_ctx_id_t context_handle, int conf_req_flag, ++ gss_qop_t qop_req, OM_uint32 req_output_size, ++ OM_uint32 *max_input_size) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_wrap_size_limit(minor_status, ctx->gssc, conf_req_flag, ++ qop_req, req_output_size, max_input_size); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_get_mic(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_qop_t qop_req, gss_buffer_t message_buffer, ++ gss_buffer_t message_token) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_get_mic(minor_status, ctx->gssc, qop_req, message_buffer, ++ message_token); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_verify_mic(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_buffer_t msg_buffer, gss_buffer_t token_buffer, ++ gss_qop_t *qop_state) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_verify_mic(minor_status, ctx->gssc, msg_buffer, ++ token_buffer, qop_state); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_inquire_sec_context_by_oid(OM_uint32 *minor_status, ++ const gss_ctx_id_t context_handle, ++ const gss_OID desired_object, ++ gss_buffer_set_t *data_set) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_UNAVAILABLE; ++ ++ return krb5_gss_inquire_sec_context_by_oid(minor_status, ctx->gssc, ++ desired_object, data_set); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_set_sec_context_option(OM_uint32 *minor_status, ++ gss_ctx_id_t *context_handle, ++ const gss_OID desired_object, ++ const gss_buffer_t value) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)*context_handle; ++ ++ if (ctx == NULL || ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_UNAVAILABLE; ++ ++ return krb5_gss_set_sec_context_option(minor_status, &ctx->gssc, ++ desired_object, value); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_wrap_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ int conf_req_flag, gss_qop_t qop_req, int *conf_state, ++ gss_iov_buffer_desc *iov, int iov_count) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_wrap_iov(minor_status, ctx->gssc, conf_req_flag, qop_req, ++ conf_state, iov, iov_count); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_unwrap_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ int *conf_state, gss_qop_t *qop_state, ++ gss_iov_buffer_desc *iov, int iov_count) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_unwrap_iov(minor_status, ctx->gssc, conf_state, qop_state, ++ iov, iov_count); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_wrap_iov_length(OM_uint32 *minor_status, ++ gss_ctx_id_t context_handle, int conf_req_flag, ++ gss_qop_t qop_req, int *conf_state, ++ gss_iov_buffer_desc *iov, int iov_count) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_wrap_iov_length(minor_status, ctx->gssc, conf_req_flag, ++ qop_req, conf_state, iov, iov_count); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_pseudo_random(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ int prf_key, const gss_buffer_t prf_in, ++ ssize_t desired_output_len, gss_buffer_t prf_out) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_pseudo_random(minor_status, ctx->gssc, prf_key, prf_in, ++ desired_output_len, prf_out); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_get_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_qop_t qop_req, gss_iov_buffer_desc *iov, ++ int iov_count) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_get_mic_iov(minor_status, ctx->gssc, qop_req, iov, ++ iov_count); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_verify_mic_iov(OM_uint32 *minor_status, gss_ctx_id_t context_handle, ++ gss_qop_t *qop_state, gss_iov_buffer_desc *iov, ++ int iov_count) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_verify_mic_iov(minor_status, ctx->gssc, qop_state, iov, ++ iov_count); ++} ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_get_mic_iov_length(OM_uint32 *minor_status, ++ gss_ctx_id_t context_handle, gss_qop_t qop_req, ++ gss_iov_buffer_desc *iov, int iov_count) ++{ ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ ++ if (ctx->gssc == GSS_C_NO_CONTEXT) ++ return GSS_S_NO_CONTEXT; ++ ++ return krb5_gss_get_mic_iov_length(minor_status, ctx->gssc, qop_req, iov, ++ iov_count); ++} diff --git a/gnu/packages/patches/mit-krb5-CVE-2015-2697.patch b/gnu/packages/patches/mit-krb5-CVE-2015-2697.patch new file mode 100644 index 0000000000..f65ce39623 --- /dev/null +++ b/gnu/packages/patches/mit-krb5-CVE-2015-2697.patch @@ -0,0 +1,55 @@ +Copied from Debian. + +From fcafb522a0509bfd6f4f6b57e4a1e93c0092eeb0 Mon Sep 17 00:00:00 2001 +From: Greg Hudson <ghudson@mit.edu> +Date: Fri, 25 Sep 2015 12:51:47 -0400 +Subject: Fix build_principal memory bug [CVE-2015-2697] + +In build_principal_va(), use k5memdup0() instead of strdup() to make a +copy of the realm, to ensure that we allocate the correct number of +bytes and do not read past the end of the input string. This bug +affects krb5_build_principal(), krb5_build_principal_va(), and +krb5_build_principal_alloc_va(). krb5_build_principal_ext() is not +affected. + +CVE-2015-2697: + +In MIT krb5 1.7 and later, an authenticated attacker may be able to +cause a KDC to crash using a TGS request with a large realm field +beginning with a null byte. If the KDC attempts to find a referral to +answer the request, it constructs a principal name for lookup using +krb5_build_principal() with the requested realm. Due to a bug in this +function, the null byte causes only one byte be allocated for the +realm field of the constructed principal, far less than its length. +Subsequent operations on the lookup principal may cause a read beyond +the end of the mapped memory region, causing the KDC process to crash. + +CVSSv2: AV:N/AC:L/Au:S/C:N/I:N/A:C/E:POC/RL:OF/RC:C + +ticket: 8252 (new) +target_version: 1.14 +tags: pullup + +(cherry picked from commit f0c094a1b745d91ef2f9a4eae2149aac026a5789) +Patch-Category: upstream +--- + src/lib/krb5/krb/bld_princ.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/src/lib/krb5/krb/bld_princ.c b/src/lib/krb5/krb/bld_princ.c +index ab6fed8..8604268 100644 +--- a/src/lib/krb5/krb/bld_princ.c ++++ b/src/lib/krb5/krb/bld_princ.c +@@ -40,10 +40,8 @@ build_principal_va(krb5_context context, krb5_principal princ, + data = malloc(size * sizeof(krb5_data)); + if (!data) { retval = ENOMEM; } + +- if (!retval) { +- r = strdup(realm); +- if (!r) { retval = ENOMEM; } +- } ++ if (!retval) ++ r = k5memdup0(realm, rlen, &retval); + + while (!retval && (component = va_arg(ap, char *))) { + if (count == size) { diff --git a/gnu/packages/patches/mit-krb5-CVE-2015-2698-pt1.patch b/gnu/packages/patches/mit-krb5-CVE-2015-2698-pt1.patch new file mode 100644 index 0000000000..67545e4c16 --- /dev/null +++ b/gnu/packages/patches/mit-krb5-CVE-2015-2698-pt1.patch @@ -0,0 +1,43 @@ +Copied from Debian. + +From 1a8bdc6d81dcd7dd8a4d42e8de6d2cacf1dd4408 Mon Sep 17 00:00:00 2001 +From: Greg Hudson <ghudson@mit.edu> +Date: Tue, 27 Oct 2015 00:44:24 -0400 +Subject: Fix two IAKERB comments + +The comment explaining why there is no iakerb_gss_import_sec_context() +erroneously referenced SPNEGO instead of IAKERB (noticed by Ben +Kaduk). The comment above iakerb_gss_delete_sec_context() is out of +date after the last commit. + +(cherry picked from commit 92d6dd045dfc06cc03d20b327a6ee7a71e6bc24d) + +Patch-Category: upstream +--- + src/lib/gssapi/krb5/iakerb.c | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/src/lib/gssapi/krb5/iakerb.c b/src/lib/gssapi/krb5/iakerb.c +index 4662bd9..e25862d 100644 +--- a/src/lib/gssapi/krb5/iakerb.c ++++ b/src/lib/gssapi/krb5/iakerb.c +@@ -727,10 +727,6 @@ cleanup: + return code; + } + +-/* +- * Delete an IAKERB context. This can also accept Kerberos context +- * handles. The heuristic is similar to SPNEGO's delete_sec_context. +- */ + OM_uint32 KRB5_CALLCONV + iakerb_gss_delete_sec_context(OM_uint32 *minor_status, + gss_ctx_id_t *context_handle, +@@ -1077,7 +1073,7 @@ iakerb_gss_export_sec_context(OM_uint32 *minor_status, + } + + /* +- * Until we implement partial context exports, there are no SPNEGO exported ++ * Until we implement partial context exports, there are no IAKERB exported + * context tokens, only tokens for the underlying krb5 context. So we do not + * need to implement an iakerb_gss_import_sec_context() yet; it would be + * unreachable except via a manually constructed token. diff --git a/gnu/packages/patches/mit-krb5-CVE-2015-2698-pt2.patch b/gnu/packages/patches/mit-krb5-CVE-2015-2698-pt2.patch new file mode 100644 index 0000000000..8725cd4eed --- /dev/null +++ b/gnu/packages/patches/mit-krb5-CVE-2015-2698-pt2.patch @@ -0,0 +1,132 @@ +Copied from Debian. + +From 4b330d5be1f8048be4d079ac3cb38d60c0e99e69 Mon Sep 17 00:00:00 2001 +From: Greg Hudson <ghudson@mit.edu> +Date: Wed, 4 Nov 2015 21:28:28 -0500 +Subject: Fix IAKERB context export/import [CVE-2015-2698] + +The patches for CVE-2015-2696 contained a regression in the newly +added IAKERB iakerb_gss_export_sec_context() function, which could +cause it to corrupt memory. Fix the regression by properly +dereferencing the context_handle pointer before casting it. + +Also, the patches did not implement an IAKERB gss_import_sec_context() +function, under the erroneous belief than an exported IAKERB context +would be tagged as a krb5 context. Implement it now to allow IAKERB +contexts to be successfully exported and imported after establishment. + +CVE-2015-2698: + +In any MIT krb5 release with the patches for CVE-2015-2696 applied, an +application which calls gss_export_sec_context() may experience memory +corruption if the context was established using the IAKERB mechanism. +Historically, some vulnerabilities of this nature can be translated +into remote code execution, though the necessary exploits must be +tailored to the individual application and are usually quite +complicated. + + CVSSv2 Vector: AV:N/AC:H/Au:S/C:C/I:C/A:C/E:POC/RL:OF/RC:C + +ticket: 8273 (new) +target_version: 1.14 +tags: pullup + +(cherry picked from commit d8b31c874c7d1039be7649362ef11c89f4e14c27) + +Patch-Category: upstream +--- + src/lib/gssapi/krb5/gssapiP_krb5.h | 5 +++++ + src/lib/gssapi/krb5/gssapi_krb5.c | 2 +- + src/lib/gssapi/krb5/iakerb.c | 42 +++++++++++++++++++++++++++++++------- + 3 files changed, 41 insertions(+), 8 deletions(-) + +diff --git a/src/lib/gssapi/krb5/gssapiP_krb5.h b/src/lib/gssapi/krb5/gssapiP_krb5.h +index 05dc321..ac53662 100644 +--- a/src/lib/gssapi/krb5/gssapiP_krb5.h ++++ b/src/lib/gssapi/krb5/gssapiP_krb5.h +@@ -1396,6 +1396,11 @@ OM_uint32 KRB5_CALLCONV + iakerb_gss_export_sec_context(OM_uint32 *minor_status, + gss_ctx_id_t *context_handle, + gss_buffer_t interprocess_token); ++ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_import_sec_context(OM_uint32 *minor_status, ++ const gss_buffer_t interprocess_token, ++ gss_ctx_id_t *context_handle); + #endif /* LEAN_CLIENT */ + + OM_uint32 KRB5_CALLCONV +diff --git a/src/lib/gssapi/krb5/gssapi_krb5.c b/src/lib/gssapi/krb5/gssapi_krb5.c +index 9a23656..d7ba279 100644 +--- a/src/lib/gssapi/krb5/gssapi_krb5.c ++++ b/src/lib/gssapi/krb5/gssapi_krb5.c +@@ -945,7 +945,7 @@ static struct gss_config iakerb_mechanism = { + NULL, + #else + iakerb_gss_export_sec_context, +- NULL, ++ iakerb_gss_import_sec_context, + #endif + krb5_gss_inquire_cred_by_mech, + krb5_gss_inquire_names_for_mech, +diff --git a/src/lib/gssapi/krb5/iakerb.c b/src/lib/gssapi/krb5/iakerb.c +index e25862d..32a341e 100644 +--- a/src/lib/gssapi/krb5/iakerb.c ++++ b/src/lib/gssapi/krb5/iakerb.c +@@ -1057,7 +1057,7 @@ iakerb_gss_export_sec_context(OM_uint32 *minor_status, + gss_buffer_t interprocess_token) + { + OM_uint32 maj; +- iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)context_handle; ++ iakerb_ctx_id_t ctx = (iakerb_ctx_id_t)*context_handle; + + /* We don't currently support exporting partially established contexts. */ + if (!ctx->established) +@@ -1072,13 +1072,41 @@ iakerb_gss_export_sec_context(OM_uint32 *minor_status, + return maj; + } + +-/* +- * Until we implement partial context exports, there are no IAKERB exported +- * context tokens, only tokens for the underlying krb5 context. So we do not +- * need to implement an iakerb_gss_import_sec_context() yet; it would be +- * unreachable except via a manually constructed token. +- */ ++OM_uint32 KRB5_CALLCONV ++iakerb_gss_import_sec_context(OM_uint32 *minor_status, ++ gss_buffer_t interprocess_token, ++ gss_ctx_id_t *context_handle) ++{ ++ OM_uint32 maj, tmpmin; ++ krb5_error_code code; ++ gss_ctx_id_t gssc; ++ krb5_gss_ctx_id_t kctx; ++ iakerb_ctx_id_t ctx; ++ ++ maj = krb5_gss_import_sec_context(minor_status, interprocess_token, &gssc); ++ if (maj != GSS_S_COMPLETE) ++ return maj; ++ kctx = (krb5_gss_ctx_id_t)gssc; ++ ++ if (!kctx->established) { ++ /* We don't currently support importing partially established ++ * contexts. */ ++ krb5_gss_delete_sec_context(&tmpmin, &gssc, GSS_C_NO_BUFFER); ++ return GSS_S_FAILURE; ++ } + ++ code = iakerb_alloc_context(&ctx, kctx->initiate); ++ if (code != 0) { ++ krb5_gss_delete_sec_context(&tmpmin, &gssc, GSS_C_NO_BUFFER); ++ *minor_status = code; ++ return GSS_S_FAILURE; ++ } ++ ++ ctx->gssc = gssc; ++ ctx->established = 1; ++ *context_handle = (gss_ctx_id_t)ctx; ++ return GSS_S_COMPLETE; ++} + #endif /* LEAN_CLIENT */ + + OM_uint32 KRB5_CALLCONV diff --git a/gnu/packages/patches/mit-krb5-init-fix.patch b/gnu/packages/patches/mit-krb5-init-fix.patch deleted file mode 100644 index 13e49c2789..0000000000 --- a/gnu/packages/patches/mit-krb5-init-fix.patch +++ /dev/null @@ -1,18 +0,0 @@ -Fix the early context initialization code to avoid assuming that -arguments will be evaluated from right to left. - -Patch by Mark H Weaver <mhw@netris.org>. - ---- src/lib/krb5/krb/t_cc_config.c.orig 2012-12-17 21:47:05.000000000 -0500 -+++ src/lib/krb5/krb/t_cc_config.c 2013-10-29 18:19:16.547994590 -0400 -@@ -117,8 +117,8 @@ - int c; - unsigned int i; - -- bail_on_err(context, "Error initializing Kerberos library", -- krb5_init_context(&context)); -+ ret = krb5_init_context(&context); -+ bail_on_err(context, "Error initializing Kerberos library", ret); - bail_on_err(context, "Error getting location of default ccache", - krb5_cc_default(context, &ccache)); - server = NULL; diff --git a/gnu/packages/patches/mupen64plus-ui-console-notice.patch b/gnu/packages/patches/mupen64plus-ui-console-notice.patch new file mode 100644 index 0000000000..1d0b4c46bb --- /dev/null +++ b/gnu/packages/patches/mupen64plus-ui-console-notice.patch @@ -0,0 +1,34 @@ +Mupen64Plus supports a single data directory and a single plugin directory in +its configuration, yet we need data and plugin files from a variety of +packages. The best way to deal with this is to install all packages from +which data and plugin files are needed into one's profile, and point the +configuration there. Hence, the ui-console package provides propagated inputs +for packages with the most important data and plugin files, and this patch +provides the user instructions on what needs to be done in order to have +Mupen64Plus find the relevant data and plugins. + +--- a/src/plugin.c ++++ b/src/plugin.c +@@ -122,6 +122,22 @@ m64p_error PluginSearchLoad(m64p_handle ConfigUI) + { + const char *plugindir = (*ConfigGetParamString)(ConfigUI, "PluginDir"); + lib_filelist = osal_library_search(plugindir); ++ /* Guix specific */ ++ if (lib_filelist == NULL) ++ { ++ DebugMessage(M64MSG_ERROR, "No plugins found in PluginDir path: %s", plugindir); ++ DebugMessage(M64MSG_ERROR, ++ "\n\n" ++ "*********************************\n" ++ "*** Notice for GNU Guix users ***\n" ++ "*********************************\n" ++ "\n" ++ "You might want to edit your mupen64plus.cfg (in $XDG_CONFIG_HOME by default)\n" ++ "and set SharedDataPath to /path/to/my_guix_profile/share/mupen64plus and\n" ++ "PluginDir to /path/to/my_guix_profile/lib/mupen64plus so that data and plugins\n" ++ "are found.\n" ++ "\n"); ++ } + } + + /* if still no plugins found, search some common system folders */ diff --git a/gnu/packages/patches/preseq-1.0.2-install-to-PREFIX.patch b/gnu/packages/patches/preseq-1.0.2-install-to-PREFIX.patch deleted file mode 100644 index f8318ae0f5..0000000000 --- a/gnu/packages/patches/preseq-1.0.2-install-to-PREFIX.patch +++ /dev/null @@ -1,37 +0,0 @@ -This patch has been submitted upstream: https://github.com/smithlabcode/preseq/pull/15 - -From 65387b0d766e6c06a15cf8d8f9183d9a4ba644bb Mon Sep 17 00:00:00 2001 -From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> -Date: Thu, 25 Jun 2015 15:01:53 +0200 -Subject: [PATCH] Install to PREFIX - ---- - Makefile | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/Makefile b/Makefile -index 4d0367a..e334f2f 100644 ---- a/preseq-master/Makefile -+++ b/preseq-master/Makefile -@@ -22,6 +22,10 @@ ifndef ROOT - ROOT = $(shell pwd) - endif - -+ifndef PREFIX -+PREFIX = $(ROOT) -+endif -+ - ifndef SMITHLAB_CPP - SMITHLAB_CPP=$(ROOT)/smithlab_cpp/ - endif -@@ -91,8 +95,8 @@ endif - $(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDEARGS) $(LIBS) - - install: $(PROGS) -- @mkdir -p $(ROOT)/bin -- @install -m 755 $(PROGS) $(ROOT)/bin -+ @mkdir -p $(PREFIX)/bin -+ @install -m 755 $(PROGS) $(PREFIX)/bin - - clean: - @-rm -f $(PROGS) *.o *~ diff --git a/gnu/packages/patches/preseq-1.0.2-link-with-libbam.patch b/gnu/packages/patches/preseq-1.0.2-link-with-libbam.patch deleted file mode 100644 index 035a3b1fe4..0000000000 --- a/gnu/packages/patches/preseq-1.0.2-link-with-libbam.patch +++ /dev/null @@ -1,33 +0,0 @@ -This patch has been submitted upstream: https://github.com/smithlabcode/preseq/pull/15 - -From a937a54d56e8a6ff06237471e568154d1fa5f267 Mon Sep 17 00:00:00 2001 -From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> -Date: Thu, 25 Jun 2015 15:02:35 +0200 -Subject: [PATCH] Link with libbam.a if provided via LIBBAM - ---- - Makefile | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/Makefile b/Makefile -index e334f2f..de310e4 100644 ---- a/preseq-master/Makefile -+++ b/preseq-master/Makefile -@@ -83,10 +83,17 @@ $(PROGS): $(addprefix $(SMITHLAB_CPP)/, \ - preseq: continued_fraction.o load_data_for_complexity.o moment_sequence.o - - ifdef SAMTOOLS_DIR -+ifdef LIBBAM -+LIBS += -pthread -+bam2mr preseq: $(addprefix $(SMITHLAB_CPP)/, SAM.o) \ -+ $(LIBBAM) -+else - bam2mr preseq: $(addprefix $(SMITHLAB_CPP)/, SAM.o) \ - $(addprefix $(SAMTOOLS_DIR)/, sam.o bam.o bam_import.o bam_pileup.o \ - faidx.o bam_aux.o kstring.o knetfile.o sam_header.o razf.o bgzf.o) - endif -+endif # SAMTOOLS_DIR -+ - - %.o: %.cpp %.hpp - $(CXX) $(CXXFLAGS) -c -o $@ $< $(INCLUDEARGS) diff --git a/gnu/packages/patches/python-2-deterministic-build-info.patch b/gnu/packages/patches/python-2-deterministic-build-info.patch new file mode 100644 index 0000000000..25a079fe90 --- /dev/null +++ b/gnu/packages/patches/python-2-deterministic-build-info.patch @@ -0,0 +1,17 @@ +Always provide the same date and time in 'Py_GetBuildInfo'. +This is the information shown at the REPL and in 'sys.version'. +We cannot pass it in CPPFLAGS due to whitespace in the DATE string. + +--- a/Modules/getbuildinfo.c ++++ b/Modules/getbuildinfo.c +@@ -4,6 +4,10 @@ + #include <stdio.h> + #endif + ++/* Deterministic date and time. */ ++#define DATE "Jan 1 1970" ++#define TIME "00:00:01" ++ + #ifndef DATE + #ifdef __DATE__ + #define DATE __DATE__ diff --git a/gnu/packages/patches/python-2.7-source-date-epoch.patch b/gnu/packages/patches/python-2.7-source-date-epoch.patch new file mode 100644 index 0000000000..be1f8e010e --- /dev/null +++ b/gnu/packages/patches/python-2.7-source-date-epoch.patch @@ -0,0 +1,33 @@ +Honor the 'SOURCE_DATE_EPOCH' environment variable to allow for +determinitic builds. + +--- a/Lib/py_compile.py ++++ b/Lib/py_compile.py +@@ -105,7 +105,10 @@ def compile(file, cfile=None, dfile=None, doraise=False): + """ + with open(file, 'U') as f: + try: +- timestamp = long(os.fstat(f.fileno()).st_mtime) ++ if 'SOURCE_DATE_EPOCH' in os.environ: ++ timestamp = long(os.environ['SOURCE_DATE_EPOCH']) ++ else: ++ timestamp = long(os.fstat(f.fileno()).st_mtime) + except AttributeError: + timestamp = long(os.stat(file).st_mtime) + codestring = f.read() +diff --git a/Python/import.c b/Python/import.c +index e47ce63..7eecf9c 100644 +--- a/Python/import.c ++++ b/Python/import.c +@@ -945,6 +945,11 @@ write_compiled_module(PyCodeObject *co, char *cpathname, struct stat *srcstat, t + /* Now write the true mtime (as a 32-bit field) */ + fseek(fp, 4L, 0); + assert(mtime <= 0xFFFFFFFF); ++ if (Py_GETENV("SOURCE_DATE_EPOCH") != NULL) { ++ const char *epoch = Py_GETENV("SOURCE_DATE_EPOCH"); ++ mtime = atoi(epoch); ++ } ++ + PyMarshal_WriteLongToFile((long)mtime, fp, Py_MARSHAL_VERSION); + fflush(fp); + fclose(fp); diff --git a/gnu/packages/patches/python-3-deterministic-build-info.patch b/gnu/packages/patches/python-3-deterministic-build-info.patch new file mode 100644 index 0000000000..22c372a0cf --- /dev/null +++ b/gnu/packages/patches/python-3-deterministic-build-info.patch @@ -0,0 +1,17 @@ +Always provide the same date and time in 'Py_GetBuildInfo'. +This is the information shown at the REPL and in 'sys.version'. +We cannot pass it in CPPFLAGS due to whitespace in the DATE string. + +--- Modules/getbuildinfo.c ++++ Modules/getbuildinfo.c +@@ -4,6 +4,10 @@ + #include <stdio.h> + #endif + ++/* Deterministic date and time. */ ++#define DATE "Jan 1 1970" ++#define TIME "00:00:01" ++ + #ifndef DATE + #ifdef __DATE__ + #define DATE __DATE__ diff --git a/gnu/packages/patches/python-configobj-setuptools.patch b/gnu/packages/patches/python-configobj-setuptools.patch new file mode 100644 index 0000000000..3f207ffd74 --- /dev/null +++ b/gnu/packages/patches/python-configobj-setuptools.patch @@ -0,0 +1,30 @@ +From 16fbc38f13e435b4e3e1a37d706e64e05bad4691 Mon Sep 17 00:00:00 2001 +From: Leo Famulari <leo@famulari.name> +Date: Tue, 10 Nov 2015 23:09:24 -0500 +Subject: [PATCH] patch build to use setuptools + +--- + setup.py | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index c6d57a6..27bf260 100644 +--- a/setup.py ++++ b/setup.py +@@ -12,7 +12,12 @@ + # http://opensource.org/licenses/BSD-3-Clause + import os + import sys +-from distutils.core import setup ++ ++try: ++ from setuptools import setup ++except ImportError: ++ from distutils.core import setup ++ + # a simple import wouldn't work if we moved towards a package with __init__ + from _version import __version__ + +-- +2.6.2 + diff --git a/gnu/packages/patches/scribus-qobject.patch b/gnu/packages/patches/scribus-qobject.patch new file mode 100644 index 0000000000..91be932f1b --- /dev/null +++ b/gnu/packages/patches/scribus-qobject.patch @@ -0,0 +1,17 @@ +See upstream bug report: http://bugs.scribus.net/view.php?id=13102 + +scribus/sclayer.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/scribus/sclayer.cpp b/scribus/sclayer.cpp +index 502112b..4da7bd5 100644 +--- a/scribus/sclayer.cpp ++++ b/scribus/sclayer.cpp +@@ -9,6 +9,7 @@ for which a new license (GPL+exception) is in place. +
+ #include <QHash> //necessary to avoid msvc warnings induced by SCRIBUS_API on ScLayers + early instanciation of templates
+ #include <QVector> //necessary to avoid msvc warnings induced by SCRIBUS_API on ScLayers + early instanciation of templates
++#include <QObject>
+ #include <QtAlgorithms>
+
+ ScLayer::ScLayer(void)
diff --git a/gnu/packages/patches/synfig-build-fix.patch b/gnu/packages/patches/synfig-build-fix.patch new file mode 100644 index 0000000000..3f6168e0fb --- /dev/null +++ b/gnu/packages/patches/synfig-build-fix.patch @@ -0,0 +1,61 @@ +Allow Synfig to build in C++11 mode. + +Taken from here: +https://projects.archlinux.org/svntogit/community.git/plain/trunk/build-fix.patch?h=packages/synfig + +diff -wbBur synfig-1.0-RC5/src/modules/mod_libavcodec/mptr.cpp synfig-1.0-RC5.my/src/modules/mod_libavcodec/mptr.cpp +--- synfig-1.0-RC5/src/modules/mod_libavcodec/mptr.cpp 2015-03-28 13:15:00.000000000 +0300 ++++ synfig-1.0-RC5.my/src/modules/mod_libavcodec/mptr.cpp 2015-04-28 16:56:11.568749053 +0300 +@@ -56,8 +56,8 @@ + /* === M E T H O D S ======================================================= */ + + +-Importer_LibAVCodec::Importer_LibAVCodec(const char *file): +- filename(file) ++Importer_LibAVCodec::Importer_LibAVCodec(const synfig::FileSystem::Identifier &identifier): ++ Importer(identifier) + { + } + +diff -wbBur synfig-1.0-RC5/src/modules/mod_libavcodec/mptr.h synfig-1.0-RC5.my/src/modules/mod_libavcodec/mptr.h +--- synfig-1.0-RC5/src/modules/mod_libavcodec/mptr.h 2015-03-28 13:15:00.000000000 +0300 ++++ synfig-1.0-RC5.my/src/modules/mod_libavcodec/mptr.h 2015-04-28 16:55:18.699192946 +0300 +@@ -46,7 +46,7 @@ + synfig::String filename; + + public: +- Importer_LibAVCodec(const char *filename); ++ Importer_LibAVCodec(const synfig::FileSystem::Identifier &identifier); + ~Importer_LibAVCodec(); + + virtual bool get_frame(synfig::Surface &surface, const synfig::RendDesc &renddesc, synfig::Time time, synfig::ProgressCallback *callback); +diff -wbBur synfig-1.0-RC5/src/modules/mod_libavcodec/trgt_av.cpp synfig-1.0-RC5.my/src/modules/mod_libavcodec/trgt_av.cpp +--- synfig-1.0-RC5/src/modules/mod_libavcodec/trgt_av.cpp 2015-03-28 13:15:00.000000000 +0300 ++++ synfig-1.0-RC5.my/src/modules/mod_libavcodec/trgt_av.cpp 2015-04-28 16:46:54.720091106 +0300 +@@ -121,14 +121,14 @@ + picture = avcodec_alloc_frame(); + if (!picture) + return NULL; +- size = avpicture_get_size(pix_fmt, width, height); ++ size = avpicture_get_size((::PixelFormat)pix_fmt, width, height); + picture_buf = (uint8_t *)malloc(size); + if (!picture_buf) { + av_free(picture); + return NULL; + } + avpicture_fill((AVPicture *)picture, picture_buf, +- pix_fmt, width, height); ++ (::PixelFormat)pix_fmt, width, height); + return picture; + } + +diff -wbBur synfig-1.0.2/src/synfig/time.cpp synfig-1.0.2.my/src/synfig/time.cpp +--- synfig-1.0.2/src/synfig/time.cpp 2015-07-09 10:33:03.000000000 +0300 ++++ synfig-1.0.2.my/src/synfig/time.cpp 2015-10-12 13:54:58.382313903 +0300 +@@ -319,5 +319,5 @@ + bool + Time::is_valid()const + { +- return !isnan(value_); ++ return !::isnan(value_); + } diff --git a/gnu/packages/patches/tcl-mkindex-deterministic.patch b/gnu/packages/patches/tcl-mkindex-deterministic.patch new file mode 100644 index 0000000000..2fcef6a4f7 --- /dev/null +++ b/gnu/packages/patches/tcl-mkindex-deterministic.patch @@ -0,0 +1,29 @@ +This patch ensures that the 'tclIndex' files generated by 'auto_mkindex' +are sorted in a deterministic fashion. + +Fixes a non-determinism issue reported +at <https://lists.gnu.org/archive/html/guix-devel/2015-10/msg00696.html>. + +--- tcl8.6.4/library/auto.tcl 2015-02-26 17:57:28.000000000 +0100 ++++ tcl8.6.4/library/auto.tcl 2015-11-13 23:18:34.964831717 +0100 +@@ -207,6 +207,9 @@ proc auto_mkindex {dir args} { + set args *.tcl + } + ++ # Keep file names sorted in a determistic order. ++ set args [lsort -ascii $args] ++ + auto_mkindex_parser::init + foreach file [glob -- {*}$args] { + try { +@@ -241,6 +244,10 @@ proc auto_mkindex_old {dir args} { + if {![llength $args]} { + set args *.tcl + } ++ ++ # Keep file names sorted in a determistic order. ++ set args [lsort -ascii $args] ++ + foreach file [glob -- {*}$args] { + set f "" + set error [catch { diff --git a/gnu/packages/patches/tinyxml-use-stl.patch b/gnu/packages/patches/tinyxml-use-stl.patch new file mode 100644 index 0000000000..5d8aa899a9 --- /dev/null +++ b/gnu/packages/patches/tinyxml-use-stl.patch @@ -0,0 +1,41 @@ +From a53b6ee4519a7657164610ac14a82c57b1273bf6 Mon Sep 17 00:00:00 2001 +From: David Thompson <dthompson2@worcester.edu> +Date: Mon, 23 Nov 2015 06:54:36 -0500 +Subject: [PATCH] Use STL. + +Software that uses the shared library, such as Kodi, assume that TinyXML was +compiled with STL activated. + +--- + tinyxml.h | 2 ++ + xmltest.cpp | 1 + + 2 files changed, 3 insertions(+) + +diff --git a/tinyxml.h b/tinyxml.h +index a3589e5..6cbfc7d 100644 +--- a/tinyxml.h ++++ b/tinyxml.h +@@ -43,6 +43,8 @@ distribution. + #define DEBUG + #endif + ++#define TIXML_USE_STL 1 ++ + #ifdef TIXML_USE_STL + #include <string> + #include <iostream> +diff --git a/xmltest.cpp b/xmltest.cpp +index 663c157..057dbfe 100644 +--- a/xmltest.cpp ++++ b/xmltest.cpp +@@ -2,6 +2,7 @@ + Test program for TinyXML. + */ + ++#define TIXML_USE_STL 1 + + #ifdef TIXML_USE_STL + #include <iostream> +-- +2.5.0 + diff --git a/gnu/packages/patches/tk-find-library.patch b/gnu/packages/patches/tk-find-library.patch new file mode 100644 index 0000000000..70911bf0d2 --- /dev/null +++ b/gnu/packages/patches/tk-find-library.patch @@ -0,0 +1,29 @@ +This patch hard-codes the Tk library directory during package initialization. + +See <http://core.tcl.tk/tk/tktview/765642ffffffffffffff>. + +diff --git a/generic/tkWindow.c b/generic/tkWindow.c +index b5cbbab..96b5501 100644 +--- a/generic/tkWindow.c ++++ b/generic/tkWindow.c +@@ -988,6 +988,7 @@ TkCreateMainWindow( + + Tcl_SetVar2(interp, "tk_patchLevel", NULL, TK_PATCH_LEVEL, TCL_GLOBAL_ONLY); + Tcl_SetVar2(interp, "tk_version", NULL, TK_VERSION, TCL_GLOBAL_ONLY); ++ Tcl_SetVar2(interp, "tk_library", NULL, TK_LIBRARY, TCL_GLOBAL_ONLY); + + tsdPtr->numMainWindows++; + return tkwin; +diff --git a/unix/Makefile.in b/unix/Makefile.in +index f21fdbb..c61b0df 100644 +--- a/unix/Makefile.in ++++ b/unix/Makefile.in +@@ -1029,7 +1029,7 @@ tkVisual.o: $(GENERIC_DIR)/tkVisual.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkVisual.c + + tkWindow.o: $(GENERIC_DIR)/tkWindow.c +- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkWindow.c ++ $(CC) -c $(CC_SWITCHES) -DTK_LIBRARY=\"${TK_LIBRARY}\" $(GENERIC_DIR)/tkWindow.c + + tkButton.o: $(GENERIC_DIR)/tkButton.c + $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkButton.c diff --git a/gnu/packages/patches/torsocks-dns-test.patch b/gnu/packages/patches/torsocks-dns-test.patch new file mode 100644 index 0000000000..ba70ba5933 --- /dev/null +++ b/gnu/packages/patches/torsocks-dns-test.patch @@ -0,0 +1,18 @@ +Skip DNS tests that rely on the ability to look up arbitary +host names. + +--- torsocks/tests/test_dns.c 2015-11-10 18:30:53.955941984 +0100 ++++ torsocks/tests/test_dns.c 2015-11-10 18:31:02.199941892 +0100 +@@ -134,11 +134,8 @@ static void test_getaddrinfo(const struc + int main(int argc, char **argv) + { + /* Libtap call for the number of tests planned. */ +- plan_tests(NUM_TESTS); ++ plan_tests(1); + +- test_getaddrinfo(&tor_check); +- test_gethostbyname(&tor_dir_auth1); +- test_gethostbyaddr(&tor_dir_auth2); + test_getaddrinfo(&tor_localhost); + + return 0; diff --git a/gnu/packages/patches/weechat-python.patch b/gnu/packages/patches/weechat-python.patch new file mode 100644 index 0000000000..8182636ecb --- /dev/null +++ b/gnu/packages/patches/weechat-python.patch @@ -0,0 +1,40 @@ +Get Python LDFLAGS from 'pkg-config'. + +The other approach is more complex and gets it wrong: it returns +"-L/path/to/python/lib/python-2.7.10/lib/python2.7/config -lpython -lwhatever"; +since that config/ sub-directory contains libpython2.7.a, we end up +statically linking Python in Weechat's python.so, which we do not want. + +--- weechat-1.3/configure.ac 2015-08-16 08:27:07.000000000 +0200 ++++ weechat-1.3/configure.ac 2015-11-29 18:18:52.975197048 +0100 +@@ -535,29 +535,7 @@ if test "x$enable_python" = "xyes" ; the + if test -r "$PYTHON_INCLUDE/Python.h"; then + PYTHON_CFLAGS="-I$PYTHON_INCLUDE" + AC_MSG_RESULT(found) +- PYTHON_LIB=`$PYTHON -c "import sys, distutils.sysconfig; sys.stdout.write(distutils.sysconfig.get_config_var('LIBPL'))"` +- PYTHON_LFLAGS="-lpython$PYTHON_VERSION "`$PYTHON -c "import sys, distutils.sysconfig; sys.stdout.write(distutils.sysconfig.get_config_var('LIBS')+' '+distutils.sysconfig.get_config_var('SYSLIBS')+' '+distutils.sysconfig.get_config_var('LINKFORSHARED'))"` +- AC_MSG_CHECKING(for Python library) +- if test -r "$PYTHON_LIB/libpython$PYTHON_VERSION.so"; then +- PYTHON_LFLAGS="-L$PYTHON_LIB $PYTHON_LFLAGS" +- AC_MSG_RESULT(found) +- elif test -r "$PYTHON_LIB/libpython$PYTHON_VERSION.a"; then +- PYTHON_LFLAGS="-L$PYTHON_LIB $PYTHON_LFLAGS" +- AC_MSG_RESULT(found) +- elif test -r "$PYTHON_LIB/libpython$PYTHON_VERSION.dll.a"; then +- PYTHON_LFLAGS="-L$PYTHON_LIB $PYTHON_LFLAGS" +- AC_MSG_RESULT(found) +- elif test -r "$PYTHON_SYSPREFIX/lib/libpython$PYTHON_VERSION.so"; then +- PYTHON_LFLAGS="-L$PYTHON_SYSPREFIX/lib/ $PYTHON_LFLAGS" +- AC_MSG_RESULT(found) +- else +- AC_MSG_WARN([ +-*** Python library couldn't be found on your system. +-*** Try to install it with your software package manager. +-*** WeeChat will be built without Python support.]) +- enable_python="no" +- not_found="$not_found python" +- fi ++ PYTHON_LFLAGS=`pkg-config python2 --libs` + else + AC_MSG_WARN([ + *** Python header files couldn't be found on your system. diff --git a/gnu/packages/patches/wpa-supplicant-CVE-2015-5310.patch b/gnu/packages/patches/wpa-supplicant-CVE-2015-5310.patch new file mode 100644 index 0000000000..00e5b7c771 --- /dev/null +++ b/gnu/packages/patches/wpa-supplicant-CVE-2015-5310.patch @@ -0,0 +1,32 @@ +From 6b12d93d2c7428a34bfd4b3813ba339ed57b698a Mon Sep 17 00:00:00 2001 +From: Jouni Malinen <j@w1.fi> +Date: Sun, 25 Oct 2015 15:45:50 +0200 +Subject: [PATCH] WNM: Ignore Key Data in WNM Sleep Mode Response frame if no + PMF in use + +WNM Sleep Mode Response frame is used to update GTK/IGTK only if PMF is +enabled. Verify that PMF is in use before using this field on station +side to avoid accepting unauthenticated key updates. (CVE-2015-5310) + +Signed-off-by: Jouni Malinen <j@w1.fi> +--- + wpa_supplicant/wnm_sta.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/wpa_supplicant/wnm_sta.c b/wpa_supplicant/wnm_sta.c +index 954de67..7d79499 100644 +--- a/wpa_supplicant/wnm_sta.c ++++ b/wpa_supplicant/wnm_sta.c +@@ -187,6 +187,12 @@ static void wnm_sleep_mode_exit_success(struct wpa_supplicant *wpa_s, + end = ptr + key_len_total; + wpa_hexdump_key(MSG_DEBUG, "WNM: Key Data", ptr, key_len_total); + ++ if (key_len_total && !wpa_sm_pmf_enabled(wpa_s->wpa)) { ++ wpa_msg(wpa_s, MSG_INFO, ++ "WNM: Ignore Key Data in WNM-Sleep Mode Response - PMF not enabled"); ++ return; ++ } ++ + while (ptr + 1 < end) { + if (ptr + 2 + ptr[1] > end) { + wpa_printf(MSG_DEBUG, "WNM: Invalid Key Data element " diff --git a/gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch b/gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch new file mode 100644 index 0000000000..bfc4c74e95 --- /dev/null +++ b/gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch @@ -0,0 +1,51 @@ +From bef802ece03f9ae9d52a21f0cf4f1bc2c5a1f8aa Mon Sep 17 00:00:00 2001 +From: Jouni Malinen <j@w1.fi> +Date: Sun, 1 Nov 2015 18:24:16 +0200 +Subject: [PATCH] EAP-pwd server: Fix last fragment length validation + +All but the last fragment had their length checked against the remaining +room in the reassembly buffer. This allowed a suitably constructed last +fragment frame to try to add extra data that would go beyond the buffer. +The length validation code in wpabuf_put_data() prevents an actual +buffer write overflow from occurring, but this results in process +termination. (CVE-2015-5314) + +Signed-off-by: Jouni Malinen <j@w1.fi> +--- + src/eap_server/eap_server_pwd.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/eap_server/eap_server_pwd.c b/src/eap_server/eap_server_pwd.c +index cb83ff7..9f787ab 100644 +--- a/src/eap_server/eap_server_pwd.c ++++ b/src/eap_server/eap_server_pwd.c +@@ -970,7 +970,7 @@ static void eap_pwd_process(struct eap_sm *sm, void *priv, + /* + * the first and all intermediate fragments have the M bit set + */ +- if (EAP_PWD_GET_MORE_BIT(lm_exch)) { ++ if (EAP_PWD_GET_MORE_BIT(lm_exch) || data->in_frag_pos) { + if ((data->in_frag_pos + len) > wpabuf_size(data->inbuf)) { + wpa_printf(MSG_DEBUG, "EAP-pwd: Buffer overflow " + "attack detected! (%d+%d > %d)", +@@ -981,6 +981,8 @@ static void eap_pwd_process(struct eap_sm *sm, void *priv, + } + wpabuf_put_data(data->inbuf, pos, len); + data->in_frag_pos += len; ++ } ++ if (EAP_PWD_GET_MORE_BIT(lm_exch)) { + wpa_printf(MSG_DEBUG, "EAP-pwd: Got a %d byte fragment", + (int) len); + return; +@@ -990,8 +992,6 @@ static void eap_pwd_process(struct eap_sm *sm, void *priv, + * buffering fragments so that's how we know it's the last) + */ + if (data->in_frag_pos) { +- wpabuf_put_data(data->inbuf, pos, len); +- data->in_frag_pos += len; + pos = wpabuf_head_u8(data->inbuf); + len = data->in_frag_pos; + wpa_printf(MSG_DEBUG, "EAP-pwd: Last fragment, %d bytes", +-- +1.9.1 + diff --git a/gnu/packages/patches/wpa-supplicant-CVE-2015-5315.patch b/gnu/packages/patches/wpa-supplicant-CVE-2015-5315.patch new file mode 100644 index 0000000000..82c26398b6 --- /dev/null +++ b/gnu/packages/patches/wpa-supplicant-CVE-2015-5315.patch @@ -0,0 +1,54 @@ +From 8057821706784608b828e769ccefbced95591e50 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen <j@w1.fi> +Date: Sun, 1 Nov 2015 18:18:17 +0200 +Subject: [PATCH] EAP-pwd peer: Fix last fragment length validation + +All but the last fragment had their length checked against the remaining +room in the reassembly buffer. This allowed a suitably constructed last +fragment frame to try to add extra data that would go beyond the buffer. +The length validation code in wpabuf_put_data() prevents an actual +buffer write overflow from occurring, but this results in process +termination. (CVE-2015-5315) + +Signed-off-by: Jouni Malinen <j@w1.fi> +--- + src/eap_peer/eap_pwd.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git a/src/eap_peer/eap_pwd.c b/src/eap_peer/eap_pwd.c +index 1f78544..75ceef1 100644 +--- a/src/eap_peer/eap_pwd.c ++++ b/src/eap_peer/eap_pwd.c +@@ -903,7 +903,7 @@ eap_pwd_process(struct eap_sm *sm, void *priv, struct eap_method_ret *ret, + /* + * buffer and ACK the fragment + */ +- if (EAP_PWD_GET_MORE_BIT(lm_exch)) { ++ if (EAP_PWD_GET_MORE_BIT(lm_exch) || data->in_frag_pos) { + data->in_frag_pos += len; + if (data->in_frag_pos > wpabuf_size(data->inbuf)) { + wpa_printf(MSG_INFO, "EAP-pwd: Buffer overflow attack " +@@ -916,7 +916,8 @@ eap_pwd_process(struct eap_sm *sm, void *priv, struct eap_method_ret *ret, + return NULL; + } + wpabuf_put_data(data->inbuf, pos, len); +- ++ } ++ if (EAP_PWD_GET_MORE_BIT(lm_exch)) { + resp = eap_msg_alloc(EAP_VENDOR_IETF, EAP_TYPE_PWD, + EAP_PWD_HDR_SIZE, + EAP_CODE_RESPONSE, eap_get_id(reqData)); +@@ -930,10 +931,8 @@ eap_pwd_process(struct eap_sm *sm, void *priv, struct eap_method_ret *ret, + * we're buffering and this is the last fragment + */ + if (data->in_frag_pos) { +- wpabuf_put_data(data->inbuf, pos, len); + wpa_printf(MSG_DEBUG, "EAP-pwd: Last fragment, %d bytes", + (int) len); +- data->in_frag_pos += len; + pos = wpabuf_head_u8(data->inbuf); + len = data->in_frag_pos; + } +-- +1.9.1 + diff --git a/gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch b/gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch new file mode 100644 index 0000000000..3088f6a6dc --- /dev/null +++ b/gnu/packages/patches/wpa-supplicant-CVE-2015-5316.patch @@ -0,0 +1,34 @@ +From 95577884ca4fa76be91344ff7a8d5d1e6dc3da61 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen <j@w1.fi> +Date: Sun, 1 Nov 2015 19:35:44 +0200 +Subject: [PATCH] EAP-pwd peer: Fix error path for unexpected Confirm message + +If the Confirm message is received from the server before the Identity +exchange has been completed, the group has not yet been determined and +data->grp is NULL. The error path in eap_pwd_perform_confirm_exchange() +did not take this corner case into account and could end up +dereferencing a NULL pointer and terminating the process if invalid +message sequence is received. (CVE-2015-5316) + +Signed-off-by: Jouni Malinen <j@w1.fi> +--- + src/eap_peer/eap_pwd.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/eap_peer/eap_pwd.c b/src/eap_peer/eap_pwd.c +index 75ceef1..892b590 100644 +--- a/src/eap_peer/eap_pwd.c ++++ b/src/eap_peer/eap_pwd.c +@@ -774,7 +774,8 @@ eap_pwd_perform_confirm_exchange(struct eap_sm *sm, struct eap_pwd_data *data, + wpabuf_put_data(data->outbuf, conf, SHA256_MAC_LEN); + + fin: +- bin_clear_free(cruft, BN_num_bytes(data->grp->prime)); ++ if (data->grp) ++ bin_clear_free(cruft, BN_num_bytes(data->grp->prime)); + BN_clear_free(x); + BN_clear_free(y); + if (data->outbuf == NULL) { +-- +1.9.1 + diff --git a/gnu/packages/patches/xfce4-session-fix-xflock4.patch b/gnu/packages/patches/xfce4-session-fix-xflock4.patch new file mode 100644 index 0000000000..74769e4257 --- /dev/null +++ b/gnu/packages/patches/xfce4-session-fix-xflock4.patch @@ -0,0 +1,31 @@ +From cbb9c769316b4d32956a2c78aa01a38b473f0cfc Mon Sep 17 00:00:00 2001 +From: David Thompson <dthompson2@worcester.edu> +Date: Fri, 30 Oct 2015 08:30:43 -0400 +Subject: [PATCH] xflock4: Do not override PATH with hardcoded value. + +The PATH "/bin:/usr/bin" may not be a valid search path on the user's +machine. The screen locking program may be in /usr/local/bin or +elsewhere. Distros that do not conform to the FHS, such as GuixSD and +NixOS, will not have their executables in either location. Thus, we +simply leave PATH alone. +--- + scripts/xflock4 | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/scripts/xflock4 b/scripts/xflock4 +index ec4d05d..e7981ac 100644 +--- a/scripts/xflock4 ++++ b/scripts/xflock4 +@@ -21,9 +21,6 @@ + # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + # + +-PATH=/bin:/usr/bin +-export PATH +- + # Lock by xscreensaver or gnome-screensaver, if a respective daemon is running + for lock_cmd in \ + "xscreensaver-command -lock" \ +-- +2.5.0 + diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm index d07e434190..5d6618a9ec 100644 --- a/gnu/packages/pcre.scm +++ b/gnu/packages/pcre.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,14 +29,18 @@ (define-public pcre (package (name "pcre") - (version "8.37") + (version "8.38") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/pcre/pcre/" - version "/pcre-" version ".tar.bz2")) + (uri (list + (string-append "ftp://ftp.csx.cam.ac.uk" + "/pub/software/programming/pcre/" + "pcre-" version ".tar.bz2") + (string-append "mirror://sourceforge/pcre/pcre/" + version "/pcre-" version ".tar.bz2"))) (sha256 (base32 - "17bqykp604p7376wj3q2nmjdhrb6v1ny8q08zdwi7qvc02l9wrsi")))) + "1pvra19ljkr5ky35y2iywjnsckrs9ch2anrf5b0dc91hw8v2vq5r")))) (build-system gnu-build-system) (inputs `(("bzip2" ,bzip2) ("readline" ,readline) @@ -57,3 +62,37 @@ own native API, as well as a set of wrapper functions that correspond to the POSIX regular expression API.") (license license:bsd-3) (home-page "http://www.pcre.org/"))) + +(define-public pcre2 + (package + (name "pcre2") + (version "10.20") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/pcre/pcre2/" + version "/pcre2-" version ".tar.bz2")) + + (sha256 + (base32 + "0yj8mm9ll9zj3v47rvmmqmr1ybxk72rr2lym3rymdsf905qjhbik")))) + (build-system gnu-build-system) + (inputs `(("bzip2" ,bzip2) + ("readline" ,readline) + ("zlib" ,zlib))) + (arguments + `(#:configure-flags '("--enable-unicode" + "--enable-pcregrep-libz" + "--enable-pcregrep-libbz2" + "--enable-pcretest-libreadline" + "--enable-unicode-properties" + "--enable-pcre2-16" + "--enable-pcre2-32" + "--enable-jit"))) + (synopsis "Perl Compatible Regular Expressions") + (description + "The PCRE library is a set of functions that implement regular expression +pattern matching using the same syntax and semantics as Perl 5. PCRE has its +own native API, as well as a set of wrapper functions that correspond to the +POSIX regular expression API.") + (license license:bsd-3) + (home-page "http://www.pcre.org/"))) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 03ed5113b1..4b30bf09d5 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -52,13 +52,13 @@ (define-public poppler (package (name "poppler") - (version "0.36.0") + (version "0.37.0") (source (origin (method url-fetch) (uri (string-append "http://poppler.freedesktop.org/poppler-" version ".tar.xz")) (sha256 (base32 - "13i440kv873wgmw50rs4d1v05cj0r7bqnghd70hp9vy44dxhdk4k")))) + "1vjvd0md8y37hlq3lsj0l01a3v3mzm572rzpn1311frvmrg9r7xq")))) (build-system gnu-build-system) ;; FIXME: more dependencies could be added ;; cairo output: no (requires cairo >= 1.10.0) @@ -68,7 +68,7 @@ ;; use libcurl: no (inputs `(("fontconfig" ,fontconfig) ("freetype" ,freetype) - ("libjpeg-8" ,libjpeg-8) + ("libjpeg" ,libjpeg) ("libpng" ,libpng) ("libtiff" ,libtiff) ("lcms" ,lcms) @@ -87,8 +87,7 @@ (arguments `(#:tests? #f ; no test data provided with the tarball #:configure-flags - '("--enable-libopenjpeg" - "--enable-xpdf-headers" ; to install header files + '("--enable-xpdf-headers" ; to install header files "--enable-zlib") #:phases (alist-cons-before diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm index 13db7b6e65..4cafb45d92 100644 --- a/gnu/packages/polkit.scm +++ b/gnu/packages/polkit.scm @@ -65,18 +65,16 @@ (substitute* "src/polkitbackend/polkitbackendjsauthority.c" (("systemd") "elogind")) - (substitute* "src/polkitagent/polkitagentsession.c" - (("PACKAGE_PREFIX \"/lib/polkit-1/polkit-agent-helper-1\"") - "\"/run/setuid-programs/polkit-agent-helper-1\"")) + ;; GuixSD's polkit service stores actions under + ;; /etc/polkit-1/actions. (substitute* "src/polkitbackend/polkitbackendinteractiveauthority.c" (("PACKAGE_DATA_DIR \"/polkit-1/actions\"") - "\"/run/current-system/profile/share/polkit-1/actions\"")) - (substitute* "src/polkitbackend/polkitbackendjsauthority.c" - (("PACKAGE_SYSCONF_DIR \"/polkit-1/rules.d\"") - "\"/run/current-system/profile/etc/polkit-1/rules.d\"")) - (substitute* "src/polkitbackend/polkitbackendjsauthority.c" - (("PACKAGE_DATA_DIR \"/polkit-1/rules.d\"") - "\"/run/current-system/profile/share/polkit-1/rules.d\"")))))) + "PACKAGE_SYSCONF_DIR \"/polkit-1/actions\"")) + + ;; Set the setuid helper's real location. + (substitute* "src/polkitagent/polkitagentsession.c" + (("PACKAGE_PREFIX \"/lib/polkit-1/polkit-agent-helper-1\"") + "\"/run/setuid-programs/polkit-agent-helper-1\"")))))) (build-system gnu-build-system) (inputs `(("expat" ,expat) diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index 93055ecad3..fe976a92f4 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -27,7 +27,7 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages avahi) #:use-module (gnu packages check) - #:use-module (gnu packages gdbm) + #:use-module (gnu packages databases) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages libcanberra) @@ -50,7 +50,10 @@ version ".tar.gz")) (sha256 (base32 - "10j8mbb65xkyl0kfy0hpzpmrp0jkr12c7mfycqipxgka6ayns0ar")))) + "10j8mbb65xkyl0kfy0hpzpmrp0jkr12c7mfycqipxgka6ayns0ar")) + (patches + (map search-patch '("libsndfile-CVE-2014-9496.patch" + "libsndfile-CVE-2015-7805.patch"))))) (build-system gnu-build-system) (inputs `(("libvorbis" ,libvorbis) @@ -202,6 +205,8 @@ sound server.") (base32 "14486c6lmmirkhscbfygz114f6yzf97h35n3h3pdr27w4mdfmlmk")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("CXXFLAGS=-std=c++11"))) ; required by gtkmm (inputs `(("libcanberra" ,libcanberra) ("gtkmm" ,gtkmm) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c972b62500..5880cac099 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -10,8 +10,12 @@ ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> +;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2015 Leo Famulari <leo@famulari.name> ;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com> +;;; Copyright © 2015 Erik Edrosa <erik.edrosa@gmail.com> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,8 +43,8 @@ #:use-module (gnu packages backup) #:use-module (gnu packages compression) #:use-module (gnu packages databases) + #:use-module (gnu packages file) #:use-module (gnu packages fontutils) - #:use-module (gnu packages gdbm) #:use-module (gnu packages gcc) #:use-module (gnu packages ghostscript) #:use-module (gnu packages glib) @@ -90,7 +94,12 @@ (sha256 (base32 "1h7zbrf9pkj29hlm18b10548ch9757f75m64l47sy75rh43p7lqw")) - (patches (list (search-patch "python-2.7-search-paths.patch"))))) + (patches (map search-patch + '("python-2.7-search-paths.patch" + "python-2-deterministic-build-info.patch" + "python-2.7-source-date-epoch.patch"))))) + (outputs '("out" + "tk")) ;tkinter; adds 50 MiB to the closure (build-system gnu-build-system) (arguments `(#:tests? #f @@ -141,8 +150,8 @@ (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")) - #:modules ((ice-9 ftw) - ,@%gnu-build-system-modules) + #:modules ((ice-9 ftw) (ice-9 match) + (guix build utils) (guix build gnu-build-system)) #:phases (modify-phases %standard-phases (add-before @@ -156,7 +165,28 @@ "Lib/distutils/tests/test_spawn.py" "Lib/test/test_subprocess.py")) (("/bin/sh") (which "sh"))) + + ;; Use zero as the timestamp in .pyc files so that builds are + ;; deterministic. TODO: Remove it when this variable is set in + ;; gnu-build-system.scm. + (setenv "SOURCE_DATE_EPOCH" "1") #t)) + (add-before 'configure 'do-not-record-configure-flags + (lambda* (#:key configure-flags #:allow-other-keys) + ;; Remove configure flags from the installed '_sysconfigdata.py' + ;; and 'Makefile' so we don't end up keeping references to the + ;; build tools. + ;; + ;; Preserve at least '--with-system-ffi' since otherwise the + ;; thing tries to build libffi, fails, and we end up with a + ;; Python that lacks ctypes. + (substitute* "configure" + (("^CONFIG_ARGS=.*$") + (format #f "CONFIG_ARGS='~a'\n" + (if (member "--with-system-ffi" configure-flags) + "--with-system-ffi" + "")))) + #t)) (add-before 'check 'pre-check (lambda _ @@ -174,7 +204,28 @@ (ftw "." (lambda (file stat flag) (utime file circa-1980 circa-1980) #t)) - #t)))))) + #t))) + (add-after 'install 'move-tk-inter + (lambda* (#:key outputs #:allow-other-keys) + ;; When Tkinter support is built move it to a separate output so + ;; that the main output doesn't contain a reference to Tcl/Tk. + (let ((out (assoc-ref outputs "out")) + (tk (assoc-ref outputs "tk"))) + (when tk + (match (find-files out "tkinter.*\\.so") + ((tkinter.so) + ;; The .so is in OUT/lib/pythonX.Y/lib-dynload, but we + ;; want it under TK/lib/pythonX.Y/site-packages. + (let* ((len (string-length out)) + (target (string-append + tk "/" + (string-drop + (dirname (dirname tkinter.so)) + len) + "/site-packages"))) + (install-file tkinter.so target) + (delete-file tkinter.so))))) + #t)))))) (inputs `(("bzip2" ,bzip2) ("gdbm" ,gdbm) @@ -214,6 +265,7 @@ data types.") '("python-fix-tests.patch" ;; XXX Try removing this patch for python > 3.4.3 "python-disable-ssl-test.patch" + "python-3-deterministic-build-info.patch" "python-3-search-paths.patch"))) (patch-flags '("-p0")) (sha256 @@ -234,23 +286,21 @@ data types.") (define-public python2-minimal (package (inherit python-2) (name "python-minimal") + (outputs '("out")) (arguments (substitute-keyword-arguments (package-arguments python-2) - ((#:configure-flags _) - `(list "--enable-shared" - (string-append "LDFLAGS=-Wl,-rpath=" - (assoc-ref %outputs "out") "/lib"))))) + ((#:configure-flags cf) + `(append ,cf '("--without-system-ffi"))))) (inputs '()))) ;none of the optional dependencies (define-public python-minimal (package (inherit python) (name "python-minimal") + (outputs '("out")) (arguments (substitute-keyword-arguments (package-arguments python) - ((#:configure-flags _) - `(list "--enable-shared" - (string-append "LDFLAGS=-Wl,-rpath=" - (assoc-ref %outputs "out") "/lib"))))) + ((#:configure-flags cf) + `(append ,cf '("--without-system-ffi"))))) ;; OpenSSL is a mandatory dependency of Python 3.x, for urllib; ;; zlib is required by 'zipimport', used by pip. @@ -262,6 +312,7 @@ data types.") (name name) (source #f) (build-system trivial-build-system) + (outputs '("out")) (propagated-inputs `(("python" ,python))) (arguments `(#:modules ((guix build utils)) @@ -413,9 +464,10 @@ John the Ripper).") (build-system python-build-system) (native-inputs `(("python-setuptools" ,python-setuptools))) + (propagated-inputs + `(("python-pycrypto" ,python-pycrypto))) (inputs - `(("python-ecdsa" ,python-ecdsa) - ("python-pycrypto" ,python-pycrypto))) + `(("python-ecdsa" ,python-ecdsa))) (home-page "http://www.paramiko.org/") (synopsis "SSHv2 protocol library") (description "Paramiko is a python implementation of the SSHv2 protocol, @@ -522,23 +574,22 @@ Cassandra cluster on localhost.") (define-public python-pytz (package (name "python-pytz") - (version "2013b") + (version "2015.7") (source (origin (method url-fetch) - (uri (string-append "https://launchpad.net/pytz/main/" version - "/+download/pytz-" version ".tar.bz2")) + (uri (pypi-uri "pytz" version)) (sha256 (base32 - "19giwgfcrg0nr1gdv49qnmf2jb2ilkcfc7qyqvfpz4dp0p64ksv5")))) + "1spgdfp1ssya7v3kww7zp71xpj437skpqazcvqr3kr1p1brnw9lr")))) (build-system python-build-system) (arguments `(#:tests? #f)) ; no test target - (home-page "https://launchpad.net/pytz") + (home-page "http://pythonhosted.org/pytz") (synopsis "Python timezone library") (description "This library allows accurate and cross platform timezone calculations using Python 2.4 or higher and provides access to the Olson timezone database.") - (license x11))) + (license license:expat))) (define-public python2-pytz (package-with-python2 python-pytz)) @@ -547,15 +598,14 @@ using Python 2.4 or higher and provides access to the Olson timezone database.") (define-public python-babel (package (name "python-babel") - (version "1.3") + (version "2.1.1") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/B/Babel/Babel-" - version ".tar.gz")) + (uri (pypi-uri "Babel" version)) (sha256 (base32 - "0bnin777lc53nxd1hp3apq410jj5wx92n08h7h4izpl4f4sx00lz")))) + "0j2jgfzj1a2m39pm2qc36fzr7a6p5ybwndi0xdzhi2p8zw7dbdkz")))) (build-system python-build-system) (inputs `(("python-pytz" ,python-pytz) @@ -776,7 +826,13 @@ etc.). The package is structured to make adding new modules easy.") (license public-domain))) (define-public python2-pycrypto - (package-with-python2 python-pycrypto)) + (let ((pycrypto (package-with-python2 python-pycrypto))) + (package (inherit pycrypto) + (inputs + `(("python" ,python-2) + ,@(alist-delete + "python" + (package-inputs pycrypto))))))) (define-public python-keyring (package @@ -819,20 +875,22 @@ password storage.") (license x11))) (define-public python2-keyring - (package-with-python2 python-keyring)) + (let ((keyring (package-with-python2 python-keyring))) + (package (inherit keyring) + (inputs + `(("python2-pycrypto" ,python2-pycrypto)))))) (define-public python-six (package (name "python-six") - (version "1.9.0") + (version "1.10.0") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/s/" - "six/six-" version ".tar.gz")) + (uri (pypi-uri "six" version)) (sha256 (base32 - "1mci5i8mjqmljmv33h0q3d4djc13zk1kfmb3fbvd3yy43x0m4h72")))) + "0snmb8xffb3vsma0z67i0h0w2g2dy0p3gsgh9gi4i0kgc5l8spqh")))) (build-system python-build-system) (inputs `(("python-setuptools" ,python-setuptools))) @@ -903,7 +961,7 @@ datetime module, available in Python 2.3+.") (define-public python-parsedatetime (package (name "python-parsedatetime") - (version "1.2") + (version "1.5") (source (origin (method url-fetch) @@ -911,11 +969,10 @@ datetime module, available in Python 2.3+.") "parsedatetime/parsedatetime-" version ".tar.gz")) (sha256 (base32 - "1zcj0pzxvpl4j2ma9awmpkfxldybi2kjaahjjpmgfbg5cxwcjsqv")))) + "1as0mm4ql3z0324nc9bys2s1ngh507i317p16b79rx86wlmvx9ix")))) (build-system python-build-system) (native-inputs `(("python-setuptools" ,python-setuptools))) - (arguments `(#:tests? #f)) ;no test target (home-page "http://github.com/bear/parsedatetime/") (synopsis "Parse human-readable date/time text") @@ -923,6 +980,9 @@ datetime module, available in Python 2.3+.") "Parse human-readable date/time text.") (license asl2.0))) +(define-public python2-parsedatetime + (package-with-python2 python-parsedatetime)) + (define-public python-pandas (package (name "python-pandas") @@ -959,7 +1019,12 @@ doing practical, real world data analysis in Python.") (license bsd-3))) (define-public python2-pandas - (package-with-python2 python-pandas)) + (let ((pandas (package-with-python2 python-pandas))) + (package (inherit pandas) + (propagated-inputs + `(("python2-numpy" ,python2-numpy) + ,@(alist-delete "python-numpy" + (package-propagated-inputs pandas))))))) (define-public python-tzlocal (package @@ -1501,7 +1566,7 @@ standard library.") (base32 "0wbs4i4x3x7klr3v35ss6p9mcqz883i1xgcpkhvl7n2lyv6yhpda")))) (inputs - `(("python2-setuptools" ,python-setuptools))) + `(("python2-setuptools" ,python2-setuptools))) (arguments `(#:python ,python-2 #:tests? #f)))) ; no setup.py test command @@ -1568,6 +1633,34 @@ and many external plugins.") (define-public python2-pytest (package-with-python2 python-pytest)) +(define-public python-pytest-cov + (package + (name "python-pytest-cov") + (version "2.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pytest-cov" version)) + (sha256 + (base32 + "1lf9jsmhqk5nc4w3kzwglmdzjvmi7ajvrsnwv826j3bn0wzx8c92")))) + (build-system python-build-system) + (propagated-inputs + `(("python-coverage" ,python-coverage) + ("python-pytest" ,python-pytest))) + (native-inputs + `(("python-setuptools" ,python-setuptools))) + (home-page "https://github.com/pytest-dev/pytest-cov") + (synopsis "Pytest plugin for measuring coverage") + (description + "Pytest-cov produces coverage reports. It supports centralised testing and +distributed testing in both load and each modes. It also supports coverage +of subprocesses.") + (license license:expat))) + +(define-public python2-pytest-cov + (package-with-python2 python-pytest-cov)) + (define-public python-pytest-runner (package (name "python-pytest-runner") @@ -1595,6 +1688,7 @@ and many external plugins.") #t))))) (native-inputs `(("python-pytest" ,python-pytest) + ("python-setuptools" ,python-setuptools) ("python-setuptools-scm" ,python-setuptools-scm))) (home-page "https://bitbucket.org/pytest-dev/pytest-runner") (synopsis "Invoke py.test as a distutils command") @@ -2019,16 +2113,13 @@ files.") (define-public python-certifi (package (name "python-certifi") - (version "14.05.14") + (version "2015.11.20.1") (source (origin (method url-fetch) - (uri - (string-append - "https://pypi.python.org/packages/source/c/certifi/certifi-" - version ".tar.gz")) + (uri (pypi-uri "certifi" version)) (sha256 (base32 - "0s8vxzfz6s4m6fvxc7z25k9j35w0rh6jkw3wwcd1az1mssncn6qy")))) + "05lgwf9rz1kn465azy2bpb3zmpnsn9gkypbhnjlclchv98ssgc1h")))) (build-system python-build-system) (inputs `(("python-setuptools" ,python-setuptools))) @@ -2070,24 +2161,51 @@ with sensible defaults out of the box.") (define-public python2-click (package-with-python2 python-click)) +(define-public python-wheel + (package + (name "python-wheel") + (version "0.26.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "wheel" version)) + (sha256 + (base32 + "032k1ajijbqnv0z0k88bhf75mdimi18fcmm28mss90610lw3bbga")))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools" ,python-setuptools) + ("python-jsonschema" ,python-jsonschema) + ("python-pytest-cov" ,python-pytest-cov))) + (home-page "https://bitbucket.org/pypa/wheel/") + (synopsis "Built-package format for Python") + (description + "A wheel is a ZIP-format archive with a specially formatted filename and the +.whl extension. It is designed to contain all the files for a PEP 376 +compatible install in a way that is very close to the on-disk format.") + (license license:expat))) + +(define-public python2-wheel + (package-with-python2 python-wheel)) + (define-public python-requests (package (name "python-requests") - (version "2.4.0") + (version "2.8.1") (source (origin (method url-fetch) - (uri - (string-append - "https://pypi.python.org/packages/source/r/requests/requests-" - version ".tar.gz")) + (uri (pypi-uri "requests" version)) (sha256 (base32 - "0gknlfx1wakrrm1zi8gi03x2lzj4dsns0vjw0nsmgqvkphyf01vh")))) + "0ny2nr1sqr4hcn3903ghmh7w2yni8shlfv240a8c9p6wyidqvzl4")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools) - ("python-certifi" ,python-certifi))) - (arguments `(#:tests? #f)) ; no tests + (native-inputs + `(("python-setuptools" ,python-setuptools))) + (propagated-inputs + `(("python-py" ,python-py) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-wheel" ,python-wheel))) (home-page "http://python-requests.org/") (synopsis "Python HTTP library") (description @@ -2155,19 +2273,18 @@ somewhat intelligeble.") (define-public python-pyjwt (package (name "python-pyjwt") - (version "0.2.1") + (version "1.4.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/P/PyJWT/PyJWT-" - version ".tar.gz")) + (uri (pypi-uri "PyJWT" version)) (sha256 (base32 - "1ahqblfy2sj3xz34wsa48cn9rp0dspzq56p54i5znmws3b8gml6g")))) + "1556v2jppd8mjkkj66pxb5rcazm35jq81r233mdl8hfmz9n3icp1")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) + (native-inputs + `(("python-setuptools" ,python-setuptools) + ("python-pytest-runner" ,python-pytest-runner))) (arguments '(#:tests? #f)) ; test suite doesn't work (home-page "http://github.com/progrium/pyjwt") @@ -2182,23 +2299,23 @@ somewhat intelligeble.") (define-public python-oauthlib (package (name "python-oauthlib") - (version "0.6.3") + (version "1.0.3") (source (origin (method url-fetch) - (uri - (string-append - "https://pypi.python.org/packages/source/o/oauthlib/oauthlib-" - version ".tar.gz")) + (uri (pypi-uri "oauthlib" version)) (sha256 (base32 - "1yaj3j64la4arwsbhbfmpnickzh3jpg9nlpyg409v8pp24isn48a")))) + "1bfrj70vdjxjw74khbyh6f0dksv7p5rh2346jnlrffyacd3gwjzg")))) (build-system python-build-system) - (inputs + (native-inputs `(("python-setuptools" ,python-setuptools) - ("python-pyjwt" ,python-pyjwt) - ("python-pycrypto" ,python-pycrypto) + ("python-coverage", python-coverage) ("python-nose" ,python-nose) ("python-mock" ,python-mock))) + (inputs + `(("python-blinker" ,python-blinker) + ("python-cryptography" ,python-cryptography) + ("python-pyjwt" ,python-pyjwt))) (home-page "https://github.com/idan/oauthlib") (synopsis "OAuth implementation for Python") (description @@ -2211,8 +2328,10 @@ OAuth request-signing logic.") (package (inherit base) (inputs - (append (package-inputs base) - `(("python2-unittest2" ,python2-unittest2))))))) + `(("python2-unittest2" ,python2-unittest2) + ("python2-cryptography" ,python2-cryptography) + ,@(alist-delete "python-cryptography" + (package-inputs base))))))) (define-public python-itsdangerous (package @@ -2351,6 +2470,29 @@ written in pure Python.") (define-public python2-jinja2 (package-with-python2 python-jinja2)) +(define-public python-pystache + (package + (name "python-pystache") + (version "0.5.4") + (source (origin + (method url-fetch) + (uri (pypi-uri "pystache" version)) + (sha256 + (base32 + "0nmqsfmiw4arjxqkmf9z66ml950pcdjk6aq4gin4sywmzdjw5fzp")))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools" ,python-setuptools))) + (home-page "http://defunkt.io/pystache/") + (synopsis "Python logic-less template engine") + (description + "Pystache is a Python implementation of the framework agnostic, +logic-free templating system Mustache.") + (license license:expat))) + +(define-public python2-pystache + (package-with-python2 python-pystache)) + (define-public python-joblib (package (name "python-joblib") @@ -2704,7 +2846,11 @@ mining and data analysis.") ,@(package-native-inputs scikit-image))) (propagated-inputs `(("python2-pytz" ,python2-pytz) - ,@(package-propagated-inputs scikit-image)))))) + ("python2-matplotlib" ,python2-matplotlib) + ("python2-numpy" ,python2-numpy) + ("python2-scipy" ,python2-scipy) + ,@(fold alist-delete (package-propagated-inputs scikit-image) + '("python-matplotlib" "python-numpy" "python-scipy"))))))) (define-public python-redis (package @@ -3060,10 +3206,47 @@ that client code uses to construct the grammar directly in Python code.") (define-public python2-numpydoc (package-with-python2 python-numpydoc)) +(define-public python-numexpr + (package + (name "python-numexpr") + (version "2.4.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/" + "n/numexpr/numexpr-" version ".tar.gz")) + (sha256 + (base32 + "0nsnff5312fm38w6dm34bw7ghfqqy8vl9gig0al963h4mz8zm8nz")))) + (build-system python-build-system) + (arguments `(#:tests? #f)) ; no tests included + (propagated-inputs + `(("python-numpy" ,python-numpy))) + (home-page "https://github.com/pydata/numexpr") + (synopsis "Fast numerical expression evaluator for NumPy") + (description + "Numexpr is a fast numerical expression evaluator for NumPy. With it, +expressions that operate on arrays are accelerated and use less memory than +doing the same calculation in Python. In addition, its multi-threaded +capabilities can make use of all your cores, which may accelerate +computations, most specially if they are not memory-bounded (e.g. those using +transcendental functions).") + (license license:expat))) + +(define-public python2-numexpr + (let ((numexpr (package-with-python2 python-numexpr))) + (package (inherit numexpr) + ;; Make sure to use special packages for Python 2 instead + ;; of those automatically rewritten by package-with-python2. + (propagated-inputs + `(("python2-numpy" ,python2-numpy) + ,@(alist-delete "python-numpy" + (package-propagated-inputs numexpr))))))) + (define-public python-matplotlib (package (name "python-matplotlib") - (version "1.4.2") + (version "1.4.3") (source (origin (method url-fetch) @@ -3071,13 +3254,15 @@ that client code uses to construct the grammar directly in Python code.") "/matplotlib-" version ".tar.gz")) (sha256 (base32 - "0m6v9nwdldlwk22gcd339zg6mny5m301fxgks7z8sb8m9wawg8qp")))) + "1dn05cvd0g984lzhh72wa0z93psgwshbbg93fkab6slx5m3l95av")) + (patches (list (search-patch "matplotlib-setupext-tk.patch"))))) (build-system python-build-system) (outputs '("out" "doc")) (propagated-inputs ; the following packages are all needed at run time `(("python-pyparsing" ,python-pyparsing) ("python-pygobject" ,python-pygobject) ("gobject-introspection" ,gobject-introspection) + ("python-tkinter" ,python "tk") ;; The 'gtk+' package (and 'gdk-pixbuf', 'atk' and 'pango' propagated ;; from 'gtk+') provides the required 'typelib' files used by ;; 'gobject-introspection'. The location of these files is set with the @@ -3112,7 +3297,8 @@ that client code uses to construct the grammar directly in Python code.") ;; FIXME: Add backends when available. ;("python-wxpython" ,python-wxpython) ;("python-pyqt" ,python-pyqt) - )) + ("tcl" ,tcl) + ("tk" ,tk))) (native-inputs `(("pkg-config" ,pkg-config) ("texlive" ,texlive) @@ -3131,8 +3317,12 @@ that client code uses to construct the grammar directly in Python code.") (setenv "HOME" (getcwd)) (call-with-output-file "setup.cfg" (lambda (port) - (format port "[rc_options]~% -backend = GTK3Agg~%"))))) + (format port "[directories]~% +basedirlist = ~a,~a~% +[rc_options]~% +backend = TkAgg~%" + (assoc-ref inputs "tcl") + (assoc-ref inputs "tk")))))) (alist-cons-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) @@ -3150,13 +3340,23 @@ backend = GTK3Agg~%"))))) ;; The doc recommends to run the 'html' target twice. (system* "python" "make.py" "html") (system* "python" "make.py" "html") + (copy-recursively "build/html" html) (system* "python" "make.py" "latex") (system* "python" "make.py" "texinfo") + (symlink (string-append html "/_images") + (string-append info "/matplotlib-figures")) + (with-directory-excursion "build/texinfo" + (substitute* "matplotlib.texi" + (("@image\\{([^,]*)" all file) + (string-append "@image{matplotlib-figures/" file))) + (symlink (string-append html "/_images") + "./matplotlib-figures") + (system* "makeinfo" "--no-split" + "-o" "matplotlib.info" "matplotlib.texi")) (copy-file "build/texinfo/matplotlib.info" (string-append info "/matplotlib.info")) (copy-file "build/latex/Matplotlib.pdf" - (string-append doc "/Matplotlib.pdf")) - (copy-recursively "build/html" html)))) + (string-append doc "/Matplotlib.pdf"))))) %standard-phases)))) (home-page "http://matplotlib.org") (synopsis "2D plotting library for Python") @@ -3176,10 +3376,9 @@ toolkits.") (propagated-inputs `(("python2-pycairo" ,python2-pycairo) ("python2-pygobject-2" ,python2-pygobject-2) - ,@(alist-delete "python-pycairo" - (alist-delete "python-pygobject" - (package-propagated-inputs - matplotlib)))))))) + ("python2-tkinter" ,python-2 "tk") + ,@(fold alist-delete (package-propagated-inputs matplotlib) + '("python-pycairo" "python-pygobject" "python-tkinter"))))))) (define-public python2-pysnptools (package @@ -3456,7 +3655,7 @@ services for your Python modules and applications.") (define-public python-pillow (package (name "python-pillow") - (version "2.8.1") + (version "3.0.0") (source (origin (method url-fetch) @@ -3464,7 +3663,7 @@ services for your Python modules and applications.") "Pillow/Pillow-" version ".tar.gz")) (sha256 (base32 - "15n92axxph2s3kvg68bki9gv3nzwgq7130kp7wbblpi1l0cc2q47")))) + "1fsl6sywd4f4axvbpy5h5h26l6w8592j0f1wcnj1hmgy83svwl5d")))) (build-system python-build-system) (native-inputs `(("python-setuptools" ,python-setuptools) @@ -3833,20 +4032,19 @@ child application and control it as if a human were typing commands.") (define-public python-setuptools-scm (package (name "python-setuptools-scm") - (version "1.8.0") + (version "1.9.0") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/s/" - "setuptools_scm/setuptools_scm-" - version ".tar.bz2")) + (uri (pypi-uri "setuptools_scm" version)) (sha256 (base32 - "00p60v2yfqy1r58pjcx9wy6dvqd7wkpfs5z1dzwf7y75c1g3dgyx")))) + "0y24bl893zk6nrklbvdrlmpkalf214zjn6k1xrglljd29rrn4wxi")))) (build-system python-build-system) + (native-inputs `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/pypa/setuptools_scm/") (synopsis "Manage Python package versions in SCM metadata") (description - "setuptools_scm handles managing your Python package versions in + "Setuptools_scm handles managing your Python package versions in @dfn{software configuration management} (SCM) metadata instead of declaring them as the version argument or in a SCM managed file.") (license license:expat))) @@ -3869,7 +4067,8 @@ them as the version argument or in a SCM managed file.") (propagated-inputs `(("python-appdirs" ,python-appdirs))) (native-inputs - `(("python-setuptools-scm" ,python-setuptools-scm) + `(("python-setuptools" ,python-setuptools) + ("python-setuptools-scm" ,python-setuptools-scm) ("python-pytest" ,python-pytest) ("python-pytest-runner" ,python-pytest-runner))) (home-page "http://github.com/jaraco/path.py") @@ -3896,6 +4095,8 @@ common operations on files to be invoked on those path objects directly.") (build-system python-build-system) (propagated-inputs `(("python-pathpy" ,python-pathpy))) + (native-inputs + `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/vivainio/pickleshare") (synopsis "Tiny key value database with concurrency support") (description @@ -3924,7 +4125,8 @@ PickleShare.") (base32 "0wwi1c6md4vkbcsfsf8dklf3vr4mcdj4mpxkanwgb6jb1432x5yw")))) (build-system python-build-system) (native-inputs - `(("unzip" ,unzip))) + `(("python-setuptools" ,python-setuptools) + ("unzip" ,unzip))) (home-page "http://cheeseshop.python.org/pypi/simplegeneric") (synopsis "Python module for simple generic functions") (description @@ -4018,7 +4220,7 @@ without using the configuration machinery.") `(("readline" ,readline) ("which" ,which) ("python-matplotlib" ,python-matplotlib) - ("python-numpy" ,python-numpy-bootstrap) + ("python-numpy" ,python-numpy) ("python-numpydoc" ,python-numpydoc) ("python-jinja2" ,python-jinja2) ("python-mistune" ,python-mistune) @@ -4108,8 +4310,9 @@ computing.") (inputs `(("python2-mock" ,python2-mock) ("python2-matplotlib" ,python2-matplotlib) - ,@(alist-delete "python-matplotlib" - (package-inputs ipython))))))) + ("python2-numpy" ,python2-numpy) + ,@(fold alist-delete (package-inputs ipython) + '("python-matplotlib" "python-numpy"))))))) (define-public python-isodate (package @@ -4211,6 +4414,17 @@ features useful for text console applications.") (sha256 (base32 "1py62qir966lvdkngg0v8k1khsqxwk5m4s8nflpk1agk5f5nqb71")))) (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before + 'check 'pre-check + (lambda _ + ;; XXX: For the missing '/etc/machine-id'. + (substitute* "test/run-test.sh" + (("DBUS_FATAL_WARNINGS=1") + "DBUS_FATAL_WARNINGS=0")) + #t))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs @@ -4542,7 +4756,9 @@ and statistical routines from scipy and statsmodels.") (package (inherit seaborn) (propagated-inputs `(("python2-pytz" ,python2-pytz) - ,@(package-propagated-inputs seaborn)))))) + ("python2-pandas" ,python2-pandas) + ("python2-matplotlib" ,python2-matplotlib) + ("python2-scipy" ,python2-scipy)))))) (define-public python-sympy (package @@ -4677,7 +4893,7 @@ It is written entirely in Python.") `(("python-certifi" ,python-certifi))) (native-inputs `(("python-setuptools" ,python-setuptools))) - (home-page "https://pypi.python.org/pypi/tornado/4.1") + (home-page "http://www.tornadoweb.org/") (synopsis "Python web framework and asynchronous networking library") (description "Tornado is a Python web framework and asynchronous networking library, @@ -4846,6 +5062,20 @@ complexity of Python source code.") (define-public python2-mccabe (package-with-python2 python-mccabe)) +(define-public python-mccabe-0.2.1 + (package (inherit python-mccabe) + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "mccabe" version)) + (sha256 + (base32 + "0fi4a81kr5bcv5p4xgibqr595hyj5dafkqgsmfk96mfy8w71fajs")))))) + +(define-public python2-mccabe-0.2.1 + (package-with-python2 python-mccabe-0.2.1)) + ;; Flake8 2.4.1 requires an older version of pep8. ;; This should be removed ASAP. (define-public python-pep8-1.5.7 @@ -4916,6 +5146,29 @@ complexity of Python source code.") (define-public python2-flake8 (package-with-python2 python-flake8)) +;; This will only be needed by the python-hacking package and will not be +;; necessary once python-hacking > 0.10.2 is released. +(define-public python-flake8-2.2.4 + (package (inherit python-flake8) + (inputs + `(("python-setuptools" ,python-setuptools) + ("python-pep8" ,python-pep8-1.5.7) + ("python-pyflakes" ,python-pyflakes-0.8.1) + ("python-mccabe" ,python-mccabe-0.2.1) + ("python-mock" ,python-mock) + ("python-nose" ,python-nose))) + (version "2.2.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "flake8" version)) + (sha256 + (base32 + "1r9wsry4va45h1rck5hxd3vzsg2q3y6lnl6pym1bxvz8ry19jwx8")))))) + +(define-public python2-flake8-2.2.4 + (package-with-python2 python-flake8-2.2.4)) + (define-public python-mistune (package (name "python-mistune") @@ -5464,7 +5717,7 @@ responses, rather than doing any computation.") (define-public python-cryptography-vectors (package (name "python-cryptography-vectors") - (version "1.0.1") + (version "1.0.2") (source (origin (method url-fetch) @@ -5473,7 +5726,7 @@ responses, rather than doing any computation.") version ".tar.gz")) (sha256 (base32 - "1i2chlyhlx4792di82fqzcy9wz0gnnc661bj46zr794ip4629sp4")))) + "0dx98kcypmarwwhi6rjwy30ridys2ja6mc6mjf0svd4nllkaljdq")))) (build-system python-build-system) (native-inputs `(("python-setuptools" ,python-setuptools))) @@ -5490,7 +5743,7 @@ responses, rather than doing any computation.") (define-public python-cryptography (package (name "python-cryptography") - (version "1.0.1") + (version "1.0.2") (source (origin (method url-fetch) @@ -5498,7 +5751,7 @@ responses, rather than doing any computation.") "cryptography/cryptography-" version ".tar.gz")) (sha256 (base32 - "1lxzvhlyl6h6nm77n34622rcj2cxnx220x9vgjlw76wjd8m0kqyg")))) + "1jmcidddbbgdavvnvjjc0pda4b9a5i9idsivchn69pqxx68x8k6n")))) (build-system python-build-system) (inputs `(("openssl" ,openssl))) @@ -5713,3 +5966,653 @@ Python's @code{ctypes} foreign function interface (FFI).") (define-public python2-libarchive-c (package-with-python2 python-libarchive-c)) + +(define-public python-file + (package + (inherit file) + (name "python-file") + (build-system python-build-system) + (arguments + '(#:tests? #f ;no tests + #:phases (modify-phases %standard-phases + (add-before 'build 'change-directory + (lambda _ + (chdir "python") + #t)) + (add-before 'build 'set-library-file-name + (lambda* (#:key inputs #:allow-other-keys) + (let ((file (assoc-ref inputs "file"))) + (substitute* "magic.py" + (("find_library\\('magic'\\)") + (string-append "'" file "/lib/libmagic.so'"))) + #t)))))) + (inputs `(("file" ,file))) + (self-native-input? #f) + (synopsis "Python bindings to the libmagic file type guesser"))) + +(define-public python2-file + (package-with-python2 python-file)) + +(define-public python-debian + (package + (name "python-debian") + (version "0.1.23") + (source + (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/p/python-debian/python-debian-" + version ".tar.gz")) + (sha256 + (base32 + "193faznwnjc3n5991wyzim6h9gyq1zxifmfrnpm3avgkh7ahyynh")))) + (build-system python-build-system) + (inputs + `(("python-six" ,python-six))) + (native-inputs + `(("python-setuptools" ,python-setuptools))) + (home-page "http://packages.debian.org/sid/python-debian") + (synopsis "Debian package related modules") + (description + ;; XXX: Use @enumerate instead of @itemize to work around + ;; <http://bugs.gnu.org/21772>. + "This package provides Python modules that abstract many formats of +Debian-related files, such as: + +@enumerate +@item Debtags information; +@item @file{debian/changelog} files; +@item packages files, pdiffs; +@item control files of single or multiple RFC822-style paragraphs---e.g. + @file{debian/control}, @file{.changes}, @file{.dsc}; +@item Raw @file{.deb} and @file{.ar} files, with (read-only) access to + contained files and meta-information. +@end enumerate\n") + + ;; Modules are either GPLv2+ or GPLv3+. + (license gpl3+))) + +(define-public python2-debian + (package-with-python2 python-debian)) + +(define-public python-chardet + (package + (name "python-chardet") + (version "2.3.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/c/chardet/chardet-" + version + ".tar.gz")) + (sha256 + (base32 + "1ak87ikcw34fivcgiz2xvi938dmclh078az65l9x3rmgljrkhgp5")))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools" ,python-setuptools))) + (home-page "https://github.com/chardet/chardet") + (synopsis "Universal encoding detector for Python 2 and 3") + (description + "This package provides @code{chardet}, a Python module that can +automatically detect a wide range of file encodings.") + (license lgpl2.1+))) + +(define-public python2-chardet + (package-with-python2 python-chardet)) + +(define-public python-docopt + (package + (name "python-docopt") + (version "0.6.2") + (source + (origin + (method url-fetch) + ;; The release on PyPI does not include tests. + (uri (string-append + "https://github.com/docopt/docopt/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "16bf890xbdz3m30rsv2qacklh2rdn1zrfspfnwzx9g7vwz8yw4r1")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-setuptools" ,python-setuptools))) + (arguments + `(#:phases (alist-replace + 'check + (lambda _ (zero? (system* "py.test"))) + %standard-phases))) + (home-page "http://docopt.org") + (synopsis "Command-line interface description language for Python") + (description "This library allows the user to define a command-line +interface from a program's help message rather than specifying it +programatically with command-line parsers like @code{getopt} and +@code{argparse}.") + (license license:expat))) + +(define-public python2-docopt + (package-with-python2 python-docopt)) + +(define-public python-zope-event + (package + (name "python-zope-event") + (version "4.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.event/zope.event-" version ".tar.gz")) + (sha256 + (base32 + "11p75zpfz3ffhz21nzx9wb23xs993ck5s6hkjcvhswwizni5jynw")))) + (build-system python-build-system) + (inputs + `(("python-setuptools" ,python-setuptools))) + (home-page "http://pypi.python.org/pypi/zope.event") + (synopsis "Event publishing system for Python") + (description "Zope.event provides an event publishing API, intended for +use by applications which are unaware of any subscribers to their events. It +is a simple event-dispatching system on which more sophisticated event +dispatching systems can be built.") + (license zpl2.1))) + +(define-public python2-zope-event + (package-with-python2 python-zope-event)) + +(define-public python-zope-interface + (package + (name "python-zope-interface") + (version "4.1.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.interface/zope.interface-" version ".tar.gz")) + (sha256 + (base32 + "0ks8h73b2g4bkad821qbv0wzjppdrwys33i7ka45ik3wxjg1l8if")))) + (build-system python-build-system) + (propagated-inputs + `(("python-zope-event" ,python-zope-event))) + (home-page "https://github.com/zopefoundation/zope.interface") + (synopsis "Python implementation of the \"design by contract\" +methodology") + (description "Zope.interface provides an implementation of \"object +interfaces\" for Python. Interfaces are a mechanism for labeling objects as +conforming to a given API or contract.") + (license zpl2.1))) + +(define-public python2-zope-interface + (package-with-python2 python-zope-interface)) + +(define-public python-zope-exceptions + (package + (name "python-zope-exceptions") + (version "4.0.8") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.exceptions/zope.exceptions-" + version ".tar.gz")) + (sha256 + (base32 + "0zwxaaa66sqxg5k7zcrvs0fbg9ym1njnxnr28dfmchzhwjvwnfzl")))) + (build-system python-build-system) + (arguments + '(#:tests? #f)) ; circular dependency with zope.testrunner + (propagated-inputs + `(("python-zope-interface" ,python-zope-interface))) + (home-page "http://cheeseshop.python.org/pypi/zope.exceptions") + (synopsis "Zope exceptions") + (description "Zope.exceptions provides general-purpose exception types +that have uses outside of the Zope framework.") + (license zpl2.1))) + +(define-public python2-zope-exceptions + (package-with-python2 python-zope-exceptions)) + +(define-public python-zope-testing + (package + (name "python-zope-testing") + (version "4.5.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.testing/zope.testing-" version ".tar.gz")) + (sha256 + (base32 + "1yvglxhzvhl45mndvn9gskx2ph30zz1bz7rrlyfs62fv2pvih90s")))) + (build-system python-build-system) + (native-inputs + `(("python-zope-exceptions" ,python-zope-exceptions))) + (propagated-inputs + `(("python-zope-interface" ,python-zope-interface))) + (home-page "http://pypi.python.org/pypi/zope.testing") + (synopsis "Zope testing helpers") + (description "Zope.testing provides a number of testing utilities for HTML +forms, HTTP servers, regular expressions, and more.") + (license zpl2.1))) + +(define-public python2-zope-testing + (package-with-python2 python-zope-testing)) + +(define-public python-zope-testrunner + (package + (name "python-zope-testrunner") + (version "4.4.9") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.testrunner/zope.testrunner-" + version ".zip")) + (sha256 + (base32 + "1r7iqknhh55y45f64mz5hghgvzx34h1i11k350s0avx6q8gznja1")))) + (build-system python-build-system) + (native-inputs + `(("python-six" ,python-six) + ("python-zope-exceptions" ,python-zope-exceptions) + ("python-zope-testing" ,python-zope-testing) + ("unzip" ,unzip))) + (propagated-inputs + `(("python-zope-interface" ,python-zope-interface))) + (home-page "http://pypi.python.org/pypi/zope.testrunner") + (synopsis "Zope testrunner script") + (description "Zope.testrunner provides a script for running Python +tests.") + (license zpl2.1))) + +(define-public python2-zope-testrunner + (let ((base (package-with-python2 python-zope-testrunner))) + (package + (inherit base) + (native-inputs + (append (package-native-inputs base) + `(("python2-subunit" ,python2-subunit) + ("python2-mimeparse" ,python2-mimeparse))))))) + +(define-public python-zope-i18nmessageid + (package + (name "python-zope-i18nmessageid") + (version "4.0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/z" + "/zope.i18nmessageid/zope.i18nmessageid-" + version ".tar.gz")) + (sha256 + (base32 + "1rslyph0klk58dmjjy4j0jxy21k03azksixc3x2xhqbkv97cmzml")))) + (build-system python-build-system) + (inputs + `(("python-setuptools" ,python-setuptools))) + (home-page "http://pypi.python.org/pypi/zope.i18nmessageid") + (synopsis "Message identifiers for internationalization") + (description "Zope.i18nmessageid provides facilities for declaring +internationalized messages within program source text.") + (license zpl2.1))) + +(define-public python2-zope-i18nmessageid + (package-with-python2 python-zope-i18nmessageid)) + +(define-public python-zope-schema + (package + (name "python-zope-schema") + (version "4.4.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.schema/zope.schema-" version ".tar.gz")) + (sha256 + (base32 + "1p943jdxb587dh7php4vx04qvn7b2877hr4qs5zyckvp5afhhank")))) + (build-system python-build-system) + (propagated-inputs + `(("python-zope-event" ,python-zope-event) + ("python-zope-interface" ,python-zope-interface))) + (native-inputs + `(("python-zope-testing" ,python-zope-testing))) + (home-page "http://pypi.python.org/pypi/zope.schema") + (synopsis "Zope data schemas") + (description "Zope.scheme provides extensions to zope.interface for +defining data schemas.") + (license zpl2.1))) + +(define-public python2-zope-schema + (package-with-python2 python-zope-schema)) + +(define-public python-zope-configuration + (package + (name "python-zope-configuration") + (version "4.0.3") + (source (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.configuration/zope.configuration-" + version ".tar.gz")) + (sha256 + (base32 + "1x9dfqypgympnlm25p9m43xh4qv3p7d75vksv9pzqibrb4cggw5n")))) + (build-system python-build-system) + (propagated-inputs + `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid) + ("python-zope-schema" ,python-zope-schema))) + (home-page "http://pypi.python.org/pypi/zope.configuration") + (synopsis "Zope Configuration Markup Language") + (description "Zope.configuration implements ZCML, the Zope Configuration +Markup Language.") + (license zpl2.1))) + +(define-public python2-zope-configuration + (package-with-python2 python-zope-configuration)) + +(define-public python-zope-proxy + (package + (name "python-zope-proxy") + (version "4.1.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.proxy/zope.proxy-" version ".tar.gz")) + (sha256 + (base32 + "0pqwwmvm1prhwv1ziv9lp8iirz7xkwb6n2kyj36p2h0ppyyhjnm4")))) + (build-system python-build-system) + (propagated-inputs + `(("python-zope-interface" ,python-zope-interface))) + (home-page "http://pypi.python.org/pypi/zope.proxy") + (synopsis "Generic, transparent proxies") + (description "Zope.proxy provides generic, transparent proxies for Python. +Proxies are special objects which serve as mostly-transparent wrappers around +another object, intervening in the apparent behavior of the wrapped object +only when necessary to apply the policy (e.g., access checking, location +brokering, etc.) for which the proxy is responsible.") + (license zpl2.1))) + +(define-public python2-zope-proxy + (package-with-python2 python-zope-proxy)) + +(define-public python-zope-location + (package + (name "python-zope-location") + (version "4.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.location/zope.location-" version ".tar.gz")) + (sha256 + (base32 + "1nj9da4ksiyv3h8n2vpzwd0pb03mdsh7zy87hfpx72b6p2zcwg74")))) + (build-system python-build-system) + (native-inputs + `(("python-zope-proxy" ,python-zope-proxy) + ("python-zope-schema" ,python-zope-schema))) + (home-page "http://pypi.python.org/pypi/zope.location/") + (synopsis "Zope location library") + (description "Zope.location implements the concept of \"locations\" in +Zope3, which are are special objects that have a structural location.") + (license zpl2.1))) + +(define-public python2-zope-location + (package-with-python2 python-zope-location)) + +(define-public python-zope-security + (package + (name "python-zope-security") + (version "4.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.security/zope.security-" version ".tar.gz")) + (sha256 + (base32 + "14zmf684amc0x32kq05yxnhfqd1cmyhafkw05gn81rn90zjv6ssy")))) + (build-system python-build-system) + (propagated-inputs + `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid) + ("python-zope-component" ,python-zope-component) + ("python-zope-location" ,python-zope-location) + ("python-zope-proxy" ,python-zope-proxy) + ("python-zope-schema" ,python-zope-schema) + ("python-zope-testrunner" ,python-zope-testrunner) + ("python-zope-testing" ,python-zope-testing))) + (home-page "http://pypi.python.org/pypi/zope.security") + (synopsis "Zope security framework") + (description "Zope.security provides a generic mechanism to implement +security policies on Python objects.") + (license zpl2.1))) + +(define-public python2-zope-security + (let ((zope-security (package-with-python2 python-zope-security))) + (package (inherit zope-security) + (propagated-inputs + `(("python2-zope-testrunner" ,python2-zope-testrunner) + ,@(alist-delete + "python-zope-testrunner" + (package-propagated-inputs zope-security))))))) + +(define-public python-zope-component + (package + (name "python-zope-component") + (version "4.2.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/z" + "/zope.component/zope.component-" version ".tar.gz")) + (sha256 + (base32 + "06pqr8m5jv12xjyy5b59hh9anl61cxkzhw9mka33r3nxalmi2b18")))) + (build-system python-build-system) + (arguments + ;; Skip tests due to circular dependency with python-zope-security. + '(#:tests? #f)) + (native-inputs + `(("python-zope-testing" ,python-zope-testing))) + (propagated-inputs + `(("python-zope-event" ,python-zope-event) + ("python-zope-interface" ,python-zope-interface) + ("python-zope-i18nmessageid" ,python-zope-i18nmessageid) + ("python-zope-configuration" ,python-zope-configuration))) + (home-page "https://github.com/zopefoundation/zope.component") + (synopsis "Zope Component Architecture") + (description "Zope.component represents the core of the Zope Component +Architecture. Together with the zope.interface package, it provides +facilities for defining, registering and looking up components.") + (license zpl2.1))) + +(define-public python2-zope-component + (package-with-python2 python-zope-component)) + +(define-public python2-pythondialog + (package + (name "python2-pythondialog") + (version "3.3.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/p/" + "python2-pythondialog/python2-pythondialog-" + version ".tar.gz")) + (sha256 + (base32 + "1yhkagsh99bfi592ymczf8rnw8rk6n9hdqy3dd98m3yrx8zmjvry")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-path + (lambda* (#:key inputs #:allow-other-keys) + (let* ((dialog (assoc-ref inputs "dialog"))) + ;; Since this library really wants to grovel the search path, we + ;; must hardcode dialog's store path into it. + (substitute* "dialog.py" + (("os.getenv\\(\"PATH\", \":/bin:/usr/bin\"\\)") + (string-append "os.getenv(\"PATH\") + \":" dialog "/bin\""))) + #t)))) + #:python ,python-2 + #:tests? #f)) ; no test suite + (propagated-inputs + `(("dialog" ,dialog))) + (home-page "http://pythondialog.sourceforge.net/") + (synopsis "Python interface to the UNIX dialog utility") + (description "A Python wrapper for the dialog utility. Its purpose is to +provide an easy to use, pythonic and comprehensive Python interface to dialog. +This allows one to make simple text-mode user interfaces on Unix-like systems") + (license lgpl2.1))) + +(define-public python-pyrfc3339 + (package + (name "python-pyrfc3339") + (version "0.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/p/" + "pyRFC3339/pyRFC3339-" version ".tar.gz")) + (sha256 + (base32 + "1pp648xsjaw9h1xq2mgwzda5wis2ypjmzxlksc1a8grnrdmzy155")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pytz" ,python-pytz))) + (native-inputs + `(("python-nose" ,python-nose) + ("python-setuptools" ,python-setuptools))) + (home-page "https://github.com/kurtraschke/pyRFC3339") + (synopsis "Python timestamp library") + (description "Python library for generating and parsing RFC 3339-compliant +timestamps.") + (license license:expat))) + +(define-public python2-pyrfc3339 + (package-with-python2 python-pyrfc3339)) + +(define-public python-werkzeug + (package + (name "python-werkzeug") + (version "0.11.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/W/Werkzeug" + "/Werkzeug-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1gzwn1lkl90f3l1nzzxr7vjhm21qk8f837i8rvny5a209fcrhkzb")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "http://werkzeug.pocoo.org/") + (synopsis "Utilities for WSGI applications") + (description "One of the most advanced WSGI utility modules. It includes a +powerful debugger, full-featured request and response objects, HTTP utilities to +handle entity tags, cache control headers, HTTP dates, cookie handling, file +uploads, a powerful URL routing system and a bunch of community-contributed +addon modules.") + (license x11))) + +(define-public python2-werkzeug + (package-with-python2 python-werkzeug)) + +(define-public python-configobj + (package + (name "python-configobj") + (version "5.0.6") + (source (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/c/configobj/" + "configobj-" version ".tar.gz")) + (sha256 + (base32 + "00h9rcmws03xvdlfni11yb60bz3kxfvsj6dg6nrpzj71f03nbxd2")) + ;; Patch setup.py so it looks for python-setuptools, which is + ;; required to parse the keyword 'install_requires' in setup.py. + (patches (list (search-patch "python-configobj-setuptools.patch"))))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools" ,python-setuptools) + ("python-six" ,python-six))) + (synopsis "Config file reading, writing and validation") + (description "ConfigObj is a simple but powerful config file reader and +writer: an ini file round tripper. Its main feature is that it is very easy to +use, with a straightforward programmer’s interface and a simple syntax for +config files.") + (home-page "https://github.com/DiffSK/configobj") + (license bsd-3))) + +(define-public python2-configobj + (package-with-python2 python-configobj)) + +(define-public python-configargparse + (package + (name "python-configargparse") + (version "0.10.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/C/ConfigArgParse/" + "ConfigArgParse-" version ".tar.gz")) + (sha256 + (base32 + "19wh919gbdbzxzpagg52q3lm62yicm95ddlcx77dyjc1slyshl1v")))) + (build-system python-build-system) + (arguments + ;; FIXME: Bug in test suite filed upstream: + ;; https://github.com/bw2/ConfigArgParse/issues/32 + '(#:tests? #f)) + (synopsis "Replacement for argparse") + (description "A drop-in replacement for argparse that allows options to also +be set via config files and/or environment variables.") + (home-page "https://github.com/bw2/ConfigArgParse") + (license license:expat))) + +(define-public python2-configargparse + (package-with-python2 python-configargparse)) + +(define-public python-ndg-httpsclient + (package + (name "python-ndg-httpsclient") + (version "0.4.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/n/ndg-httpsclient/" + "ndg_httpsclient-" version ".tar.gz")) + (sha256 + (base32 + "0x32ibixm3vv5m9xfk83xsqm8xcqw4dd0khbh6qbri6rxgymbhg8")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pyopenssl" ,python-pyopenssl))) + (synopsis "HTTPS support for Python's httplib and urllib2") + (description "This is a HTTPS client implementation for httplib and urllib2 +based on PyOpenSSL. PyOpenSSL provides a more fully featured SSL implementation +over the default provided with Python and importantly enables full verification +of the SSL peer.") + (home-page "https://github.com/cedadev/ndg_httpsclient/") + (license bsd-3))) + +;; python2-openssl requires special care, so package-with-python2 is +;; insufficient. +(define-public python2-ndg-httpsclient + (package (inherit python-ndg-httpsclient) + (name "python2-ndg-httpsclient") + (arguments `(#:python ,python-2)) + (propagated-inputs + `(("python2-pyopenssl" ,python2-pyopenssl))))) diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm index fc90346371..a6abb48913 100644 --- a/gnu/packages/qemu.scm +++ b/gnu/packages/qemu.scm @@ -38,12 +38,34 @@ #:use-module (gnu packages xdisorg) #:use-module (gnu packages gl) #:use-module (gnu packages sdl) - #:use-module (gnu packages perl)) + #:use-module (gnu packages perl) + #:use-module (srfi srfi-1)) -(define-public qemu-headless - ;; This is QEMU without GUI support. +(define (qemu-patch commit file-name sha256) + "Return an origin for COMMIT." + (origin + (method url-fetch) + (uri (string-append + "http://git.qemu.org/?p=qemu.git;a=commitdiff_plain;h=" + commit)) + (sha256 sha256) + (file-name file-name))) + +(define %glib-memory-vtable-patch + (qemu-patch "deb847bf" + "qemu-glib-memory-vtable.patch" + (base32 + "0afb7rvxy14104jxmhr7m02w5baiz0c7vhq3h642h09jgxrcmzzi"))) + +(define %glib-duplicate-test-patch + (qemu-patch "98cf48f6" + "qemu-glib-duplicate-test.patch" + (base32 + "1aicbplzdj5s5y13jmqyvfajay05x9dnkzd197waz8v6kha7d9d5"))) + +(define-public qemu (package - (name "qemu-headless") + (name "qemu") (version "2.4.0.1") (source (origin (method url-fetch) @@ -52,7 +74,12 @@ (sha256 (base32 "1nqv5p94zpnhcaqkifnn83ap7dd0qrb0qiicswbyhhby0f48pzpc")) - (patches (map search-patch '("qemu-CVE-2015-6855.patch"))))) + (patches (list (search-patch "qemu-CVE-2015-6855.patch") + + ;; These two patches allow QEMU's tests to run + ;; correctly with 'gtester' from the latest GLib. + %glib-memory-vtable-patch + %glib-duplicate-test-patch)))) (build-system gnu-build-system) (arguments '(#:phases (alist-replace @@ -96,7 +123,11 @@ %standard-phases)))) (inputs ; TODO: Add optional inputs. - `(;; ("libaio" ,libaio) + `(("sdl" ,sdl) + ("mesa" ,mesa) + ("libusb" ,libusb) ;USB pass-through support + + ;; ("libaio" ,libaio) ("glib" ,glib) ("ncurses" ,ncurses) ("libpng" ,libpng) @@ -116,7 +147,7 @@ ("texinfo" ,texinfo) ("perl" ,perl))) (home-page "http://www.qemu-project.org") - (synopsis "Machine emulator and virtualizer (without GUI)") + (synopsis "Machine emulator and virtualizer") (description "QEMU is a generic machine emulator and virtualizer. @@ -136,12 +167,17 @@ server and embedded PowerPC, and S390 guests.") ;; Several tests fail on MIPS; see <http://hydra.gnu.org/build/117914>. (supported-systems (delete "mips64el-linux" %supported-systems)))) -(define-public qemu - ;; QEMU with GUI support. - (package (inherit qemu-headless) - (name "qemu") - (synopsis "Machine emulator and virtualizer") - (inputs `(("sdl" ,sdl) - ("mesa" ,mesa) - ("libusb" ,libusb) ;USB pass-through support - ,@(package-inputs qemu-headless))))) +(define-public qemu-minimal + ;; QEMU without GUI support. + (package (inherit qemu) + (name "qemu-minimal") + (synopsis "Machine emulator and virtualizer (without GUI)") + (arguments + `(#:configure-flags + ;; Restrict to the targets supported by Guix. + '("--target-list=i386-softmmu,x86_64-softmmu,mips64el-softmmu,arm-softmmu") + ,@(package-arguments qemu))) + + ;; Remove dependencies on optional libraries, notably GUI libraries. + (inputs (fold alist-delete (package-inputs qemu) + '("sdl" "mesa" "libusb"))))) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index ab390d37de..8f148c9e90 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,10 +20,11 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages qt) - #:use-module ((guix licenses) #:select (gpl2 gpl3 lgpl2.1 x11-style)) + #:use-module ((guix licenses) #:select (bsd-3 gpl2 gpl3 lgpl2.1 x11-style)) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build utils) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix packages) #:use-module (guix utils) @@ -95,7 +97,7 @@ X11 (yet).") (define-public qt (package (name "qt") - (version "5.5.0") + (version "5.5.1") (source (origin (method url-fetch) (uri @@ -107,7 +109,7 @@ X11 (yet).") version ".tar.xz")) (sha256 (base32 - "1by2l8wxbqwvs7anb5ggmqhn2cfmhyw3a23bp1yyd240rdpa38ky")) + "0615cn4n3n78v48lnmapqz2jizm2pzrjwvsjlnsf4awrsiiqw0kg")) (modules '((guix build utils))) (snippet '(begin @@ -518,3 +520,35 @@ contain over 620 classes.") ("qt" ,qt-4))) (inputs `(("python" ,python-2))))) + +(define-public qtkeychain + (package + (name "qtkeychain") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/frankosterfeld/qtkeychain/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "055mkd4pz6cyff4cw0784wjc1w92m8x223sxi96ph15fr3lplbg6")))) + (build-system cmake-build-system) + (inputs + `(("qt", qt))) + (arguments + `(#:tests? #f ; No tests included + #:phases + (modify-phases %standard-phases + (add-before + 'configure 'set-qt-trans-dir + (lambda _ + (substitute* "CMakeLists.txt" + (("\\$\\{qt_translations_dir\\}") + "${CMAKE_INSTALL_PREFIX}/share/qt/translations"))))))) + (home-page "https://github.com/frankosterfeld/qtkeychain") + (synopsis "Qt API to store passwords") + (description + "QtKeychain is a Qt library to store passwords and other secret data +securely. It will not store any data unencrypted unless explicitly requested.") + (license bsd-3))) diff --git a/gnu/packages/ragel.scm b/gnu/packages/ragel.scm new file mode 100644 index 0000000000..6201482c9f --- /dev/null +++ b/gnu/packages/ragel.scm @@ -0,0 +1,49 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages ragel) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages)) + +(define-public ragel + (package + (name "ragel") + (version "6.9") + (source (origin + (method url-fetch) + (uri (string-append "http://www.colm.net/files/ragel/ragel-" + version ".tar.gz")) + (sha256 + (base32 + "02k6rwh8cr95f1p5sjjr3wa6dilg06572xz1v71dk8awmc7vw1vf")))) + (build-system gnu-build-system) + (home-page "http://www.colm.net/open-source/ragel/") + (synopsis "State machine compiler") + (description + "Ragel compiles executable finite state machines from regular languages. +Ragel targets C, C++, Obj-C, C#, D, Java, Go and Ruby. Ragel state machines +can not only recognize byte sequences as regular expression machines do, but +can also execute code at arbitrary points in the recognition of a regular +language. Code embedding is done using inline operators that do not disrupt +the regular language syntax.") + ;; GPLv2 (or later) with exception for generated code. + (license license:gpl2+))) + diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 701b7ee6ef..c51a5f08e2 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Pjotr Prins <pjotr.guix@thebird.nl> -;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> @@ -30,7 +30,6 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages java) #:use-module (gnu packages libffi) - #:use-module (gnu packages gdbm) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (guix packages) @@ -519,6 +518,59 @@ script.") (home-page "http://rubyforge.org/projects/antwrap/") (license license:expat))) +(define-public ruby-atoulme-saikuro + (package + (name "ruby-atoulme-saikuro") + (version "1.2.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "atoulme-Saikuro" version)) + (sha256 + (base32 + "0kvd2nsxffbza61d3q4j94wrbnbv50r1zy3a7q26f6k706fw1f19")))) + (build-system ruby-build-system) + ;; FIXME: There are no unit tests. The tests are demonstrations of the + ;; "saikuro" tool. + (arguments `(#:tests? #f)) + (synopsis "Cyclomatic complexity analyzer") + (description "Saikuro is a Ruby cyclomatic complexity analyzer. When +given Ruby source code Saikuro will generate a report listing the cyclomatic +complexity of each method found. In addition, Saikuro counts the number of +lines per method and can generate a listing of the number of tokens on each +line of code.") + (home-page "http://www.github.com/atoulme/Saikuro") + ;; File headers contain the BSD-3 license and the README.rdoc says that + ;; "Saikuro uses the BSD license", but the LICENSE file contains the text + ;; of the Expat license. + (license license:bsd-3))) + +(define-public ruby-ci-reporter + (package + (name "ruby-ci-reporter") + (version "2.0.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "ci_reporter" version)) + (sha256 + (base32 + "17fm20jmw3ajdryhkkxpjahcfx7bgswqzxrskivlkns2718ayyyg")))) + (build-system ruby-build-system) + (arguments + `(#:test-target "rspec")) + (propagated-inputs + `(("ruby-builder" ,ruby-builder))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rspec" ,ruby-rspec))) + (synopsis "Generate XML reports of runs test") + (description + "@code{CI::Reporter} is an add-on to Ruby testing frameworks that allows +you to generate XML reports of your test runs. The resulting files can be +read by a continuous integration system that understands Ant's JUnit report +format.") + (home-page "https://github.com/nicksieger/ci_reporter") + (license license:expat))) + (define-public ruby-orderedhash (package (name "ruby-orderedhash") @@ -650,6 +702,36 @@ and inspect the environment.") (home-page "https://github.com/e2/nenv") (license license:expat))) +(define-public ruby-permutation + (package + (name "ruby-permutation") + (version "0.1.8") + (source (origin + (method url-fetch) + (uri (rubygems-uri "permutation" version)) + (sha256 + (base32 + "13crwk2vfbzv99czva7881027dbcnidihmvx2jc58z2vm3bp9sl8")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-rakefile + (lambda _ + (substitute* "Rakefile" + (("require 'rake/gempackagetask'") + "require 'rubygems/package_task'") + (("include Config") "")) + #t)) + (replace 'check + (lambda _ + (zero? (system* "ruby" "-Ilib" "test/test.rb"))))))) + (synopsis "Library to perform operations with sequence permutations") + (description "This package provides a Ruby library to perform different +operations with permutations of sequences, such as strings and arrays.") + (home-page "http://flori.github.io/permutation") + (license license:gpl2))) ; GPL 2 only + (define-public ruby-shellany (package (name "ruby-shellany") @@ -753,6 +835,103 @@ standard output stream.") (home-page "https://github.com/geemus/shindo") (license license:expat))) +(define-public ruby-rubygems-tasks + (package + (name "ruby-rubygems-tasks") + (version "0.2.4") + (source (origin + (method url-fetch) + (uri (rubygems-uri "rubygems-tasks" version)) + (sha256 + (base32 + "16cp45qlbcglnqdm4f1vj3diywdz4v024saqpgrz6palf0wmgz2j")))) + (build-system ruby-build-system) + ;; Tests need Internet access. + (arguments `(#:tests? #f)) + (native-inputs + `(("ruby-rspec" ,ruby-rspec) + ("ruby-yard" ,ruby-yard))) + (synopsis "Rake tasks for managing and releasing Ruby Gems") + (description "Rubygems-task provides Rake tasks for managing and releasing +Ruby Gems.") + (home-page "https://github.com/postmodern/rubygems-tasks") + (license license:expat))) + +(define-public ruby-ffi + (package + (name "ruby-ffi") + (version "1.9.10") + (source (origin + (method url-fetch) + (uri (rubygems-uri "ffi" version)) + (sha256 + (base32 + "1m5mprppw0xcrv2mkim5zsk70v089ajzqiq5hpyb0xg96fcyzyxj")))) + (build-system ruby-build-system) + ;; FIXME: Before running tests the build system attempts to build libffi + ;; from sources. + (arguments `(#:tests? #f)) + (native-inputs + `(("ruby-rake-compiler" ,ruby-rake-compiler) + ("ruby-rspec" ,ruby-rspec) + ("ruby-rubygems-tasks" ,ruby-rubygems-tasks))) + (inputs + `(("libffi" ,libffi))) + (synopsis "Ruby foreign function interface library") + (description "Ruby-FFI is a Ruby extension for programmatically loading +dynamic libraries, binding functions within them, and calling those functions +from Ruby code. Moreover, a Ruby-FFI extension works without changes on Ruby +and JRuby.") + (home-page "http://wiki.github.com/ffi/ffi") + (license license:bsd-3))) + +(define-public ruby-simplecov-html + (package + (name "ruby-simplecov-html") + (version "0.10.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "simplecov-html" version)) + (sha256 + (base32 + "1qni8g0xxglkx25w54qcfbi4wjkpvmb28cb7rj5zk3iqynjcdrqf")))) + (build-system ruby-build-system) + (arguments `(#:tests? #f)) ; there are no tests + (native-inputs + `(("bundler" ,bundler))) + (synopsis "Default HTML formatter for SimpleCov code coverage tool") + (description "This package provides the default HTML formatter for +the SimpleCov code coverage tool for Ruby version 1.9 and above.") + (home-page "https://github.com/colszowka/simplecov-html") + (license license:expat))) + +(define-public ruby-simplecov + (package + (name "ruby-simplecov") + (version "0.10.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "simplecov" version)) + (sha256 + (base32 + "1q2iq2vgrdvvla5y907gkmqx6ry2qvnvc7a90hlcbwgp1w0sv6z4")))) + (build-system ruby-build-system) + ;; Simplecov depends on rubocop for code style checking at build time. + ;; Rubocop needs simplecov at build time. + (arguments `(#:tests? #f)) + (propagated-inputs + `(("ruby-json" ,ruby-json) + ("ruby-docile" ,ruby-docile) + ("ruby-simplecov-html" ,ruby-simplecov-html))) + (native-inputs + `(("bundler" ,bundler))) + (synopsis "Code coverage framework for Ruby") + (description "SimpleCov is a code coverage framework for Ruby with a +powerful configuration library and automatic merging of coverage across test +suites.") + (home-page "http://github.com/colszowka/simplecov") + (license license:expat))) + (define-public ruby-useragent (package (name "ruby-useragent") @@ -848,6 +1027,392 @@ using Net::HTTP, supporting reconnection and retry according to RFC 2616.") (home-page "https://github.com/drbrain/net-http-persistent") (license license:expat))) +(define-public ruby-power-assert + (package + (name "ruby-power-assert") + (version "0.2.6") + (source (origin + (method url-fetch) + (uri (rubygems-uri "power_assert" version)) + (sha256 + (base32 + "0gbj379jhnff8rbb6m3kzdm282szjz1a021xzxa38d1bnswj2jx3")))) + (build-system ruby-build-system) + (native-inputs + `(("bundler" ,bundler))) + (synopsis "Assert library with descriptive assertion messages") + (description "Power-assert is an assertion library providing descriptive +assertion messages for tests.") + (home-page "https://github.com/k-tsj/power_assert") + (license (list license:bsd-2 license:ruby)))) + +(define-public ruby-locale + (package + (name "ruby-locale") + (version "2.1.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "locale" version)) + (sha256 + (base32 + "1sls9bq4krx0fmnzmlbn64dw23c4d6pz46ynjzrn9k8zyassdd0x")))) + (build-system ruby-build-system) + ;; ruby-test-unit is required to run tests, but that needs ruby-packnga, + ;; which needs ruby-gettext, which needs ruby-locale. To break the + ;; dependency cycle we disable tests. + (arguments `(#:tests? #f)) + (native-inputs + `(("bundler" ,bundler) + ("ruby-yard" ,ruby-yard))) + (synopsis "Ruby library providing basic localization APIs") + (description + "Ruby-Locale is the pure ruby library which provides basic APIs for +localization.") + (home-page "https://github.com/ruby-gettext/locale") + (license (list license:lgpl3+ license:ruby)))) + +(define-public ruby-text + (package + (name "ruby-text") + (version "1.3.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "text" version)) + (sha256 + (base32 + "1x6kkmsr49y3rnrin91rv8mpc3dhrf3ql08kbccw8yffq61brfrg")))) + (build-system ruby-build-system) + (synopsis "Collection of text algorithms for Ruby") + (description + "This package provides a collection of text algorithms: Levenshtein, +Soundex, Metaphone, Double Metaphone, Porter Stemming.") + (home-page "http://github.com/threedaymonk/text") + (license license:expat))) + +(define-public ruby-gettext + (package + (name "ruby-gettext") + (version "3.1.7") + (source (origin + (method url-fetch) + (uri (rubygems-uri "gettext" version)) + (sha256 + (base32 + "1hg9islkm324mb4sd4za1fgafj1hqnm3bdvzj3k4fqpnzqnbcfiq")))) + (build-system ruby-build-system) + ;; ruby-test-unit is required to run tests, but that needs ruby-packnga, + ;; which needs ruby-gettext. To break the dependency cycle we disable + ;; tests. + (arguments `(#:tests? #f)) + (propagated-inputs + `(("ruby-locale" ,ruby-locale) + ("ruby-text" ,ruby-text))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-yard" ,ruby-yard))) + (synopsis "GNU gettext-like program for Ruby") + (description + "Gettext is a GNU gettext-like program for Ruby. The catalog +file (po-file) used is the same as that used by GNU gettext, allowing you to +use GNU gettext tools for maintenance.") + (home-page "http://ruby-gettext.github.com/") + (license (list license:lgpl3+ license:ruby)))) + +(define-public ruby-packnga + (package + (name "ruby-packnga") + (version "1.0.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "packnga" version)) + (sha256 + (base32 + "1i71yhvlkvi5fp3m8jl9317cnddkbnrcy0syrmiw4y1lrq0cbncj")))) + (build-system ruby-build-system) + ;; ruby-test-unit is required to run tests, but that needs ruby-packnga. + ;; To break the dependency cycle we disable tests. + (arguments `(#:tests? #f)) + (propagated-inputs + `(("ruby-gettext" ,ruby-gettext) + ("ruby-yard" ,ruby-yard))) + (native-inputs + `(("bundler" ,bundler))) + (synopsis "Utility library to package internationalized libraries") + (description + "Packnga is a library to translate to many languages using YARD.") + (home-page "http://ranguba.org/packnga/") + (license license:lgpl2.0+))) + +(define-public ruby-test-unit + (package + (name "ruby-test-unit") + (version "3.1.5") + (source (origin + (method url-fetch) + (uri (rubygems-uri "test-unit" version)) + (sha256 + (base32 + "0jxznjzwmrlp8wqjxsd06qbiddffn68pdhz6nrqpjbiln1z3af4w")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-power-assert" ,ruby-power-assert))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-packnga" ,ruby-packnga) + ("ruby-yard" ,ruby-yard))) + (synopsis "Unit testing framework for Ruby") + (description "@code{Test::Unit} is unit testing framework for Ruby, based +on xUnit principles. These were originally designed by Kent Beck, creator of +extreme programming software development methodology, for Smalltalk's SUnit. +It allows writing tests, checking results and automated testing in Ruby.") + (home-page "http://test-unit.github.io/") + (license (list license:psfl license:ruby)))) + +(define-public ruby-metaclass + (package + (name "ruby-metaclass") + (version "0.0.4") + (source (origin + (method url-fetch) + (uri (rubygems-uri "metaclass" version)) + (sha256 + (base32 + "0hp99y2b1nh0nr8pc398n3f8lakgci6pkrg4bf2b2211j1f6hsc5")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'add-test-unit-to-search-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Rakefile" + (("t\\.libs << \"test\"" line) + (string-append line "; t.libs << \"" + (assoc-ref inputs "ruby-test-unit") + "/lib/ruby/gems/2.2.0/gems/test-unit-" + ,(package-version ruby-test-unit) + "/lib\""))) + #t))))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-test-unit" ,ruby-test-unit))) + (synopsis "Ruby library adding metaclass method to all objects") + (description + "Metaclass is a Ruby library adding a @code{metaclass} method to all Ruby +objects.") + (home-page "http://github.com/floehopper/metaclass") + (license license:expat))) + +(define-public ruby-blankslate + (package + (name "ruby-blankslate") + (version "3.1.3") + (source (origin + (method url-fetch) + (uri (rubygems-uri "blankslate" version)) + (sha256 + (base32 + "0fwkb4d1j9gc7vdwn2nxvwgy2g5wlag4c4bp7bl85jvq0kgp6cyx")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ (zero? (system* "rspec" "spec/"))))))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-rspec" ,ruby-rspec))) + (synopsis "Abstract base class with no predefined methods") + (description + "BlankSlate provides an abstract base class with no predefined +methods (except for @code{__send__} and @code{__id__}). BlankSlate is useful +as a base class when writing classes that depend upon +@code{method_missing} (e.g. dynamic proxies).") + (home-page "http://github.com/masover/blankslate") + (license license:expat))) + +(define-public ruby-instantiator + (package + (name "ruby-instantiator") + (version "0.0.6") + (source (origin + (method url-fetch) + (uri (rubygems-uri "instantiator" version)) + (sha256 + (base32 + "0mfmqhg9xrv9i8i1kmphf15ywddhivyh2z3ccl0xjw8qy54zr21i")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'add-test-unit-to-search-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Rakefile" + (("t\\.libs << \"test\"" line) + (string-append line "; t.libs << \"" + (assoc-ref inputs "ruby-test-unit") + "/lib/ruby/gems/2.2.0/gems/test-unit-" + ,(package-version ruby-test-unit) + "/lib\""))) + #t))))) + (propagated-inputs + `(("ruby-blankslate" ,ruby-blankslate))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-test-unit" ,ruby-test-unit))) + (synopsis "Instantiate an arbitrary Ruby class") + (description + "Instantiator lets you instantiate an arbitrary Ruby class without +knowing anything about the constructor.") + (home-page "https://github.com/floehopper/instantiator") + (license license:expat))) + +(define-public ruby-introspection + (package + (name "ruby-introspection") + (version "0.0.3") + (source (origin + (method url-fetch) + (uri (rubygems-uri "introspection" version)) + (sha256 + (base32 + "0g1j71sqfxbqk32wj7d0bkd3dlayfqzprfq3dbr0rq107xbxjcrr")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'add-test-unit-to-search-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Rakefile" + (("t\\.libs << \"test\"" line) + (string-append line "; t.libs << \"" + (assoc-ref inputs "ruby-test-unit") + "/lib/ruby/gems/2.2.0/gems/test-unit-" + ,(package-version ruby-test-unit) + "/lib\""))) + #t))))) + (propagated-inputs + `(("ruby-instantiator" ,ruby-instantiator) + ("ruby-metaclass" ,ruby-metaclass))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-blankslate" ,ruby-blankslate) + ("ruby-test-unit" ,ruby-test-unit))) + (synopsis "Dynamic inspection of the method hierarchy on a Ruby object") + (description + "Introspection provides tools to inspect the hierarchy of method +definitions on a Ruby object.") + (home-page "https://github.com/floehopper/introspection") + (license license:expat))) + +(define-public ruby-redcarpet + (package + (name "ruby-redcarpet") + (version "3.3.3") + (source (origin + (method url-fetch) + (uri (rubygems-uri "redcarpet" version)) + (sha256 + (base32 + "14i3wypp97bpk20679d1csy88q4hsgfqbnqw6mryl77m2g0d09pk")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; The gem archive does not include the conformance tests. + (add-after 'unpack 'disable-conformance-tests + (lambda _ + (substitute* "Rakefile" + (("task :test => %w\\[test:unit test:conformance\\]") + "task :test => %w[test:unit]")) + #t))))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-test-unit" ,ruby-test-unit) + ("ruby-rake-compiler" ,ruby-rake-compiler))) + (synopsis "Extensible Markdown to (X)HTML converter") + (description + "Redcarpet is an extensible Ruby library for Markdown processing and +conversion to (X)HTML.") + (home-page "http://github.com/vmg/redcarpet") + (license license:expat))) + +(define-public ruby-mocha + (package + (name "ruby-mocha") + (version "1.1.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "mocha" version)) + (sha256 + (base32 + "107nmnngbv8lq2g7hbjpn5kplb4v2c8gs9lxrg6vs8gdbddkilzi")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'add-test-unit-to-search-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Rakefile" + (("t\\.libs << 'test'" line) + (string-append line "; t.libs << \"" + (assoc-ref inputs "ruby-test-unit") + "/lib/ruby/gems/2.2.0/gems/test-unit-" + ,(package-version ruby-test-unit) + "/lib\""))) + #t)) + (add-before 'check 'use-latest-redcarpet + (lambda _ + (substitute* "mocha.gemspec" + (("<redcarpet>, \\[\"~> 1\"\\]") + "<redcarpet>, [\">= 3\"]")) + #t)) + (add-before 'check 'hardcode-version + (lambda _ + ;; Mocha is undefined at build time + (substitute* "Rakefile" + (("#\\{Mocha::VERSION\\}") ,version)) + #t)) + (add-before 'check 'remove-failing-test + ;; FIXME: This test fails for reasons unrelated to Guix packaging. + (lambda _ + (delete-file "test/acceptance/stubbing_nil_test.rb") + #t))))) + (propagated-inputs + `(("ruby-metaclass" ,ruby-metaclass))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-yard" ,ruby-yard) + ("ruby-introspection" ,ruby-introspection) + ("ruby-test-unit" ,ruby-test-unit) + ("ruby-redcarpet" ,ruby-redcarpet))) + (synopsis "Mocking and stubbing library for Ruby") + (description + "Mocha is a mocking and stubbing library with JMock/SchMock syntax, which +allows mocking and stubbing of methods on real (non-mock) classes.") + (home-page "http://gofreerange.com/mocha/docs") + (license license:expat))) + +(define-public ruby-net-ssh + (package + (name "ruby-net-ssh") + (version "3.0.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "net-ssh" version)) + (sha256 + (base32 + "1dzqkgwi9xm6mbfk1rkk17rzmz8m5xakqi21w1b97ybng6kkw0hf")))) + (build-system ruby-build-system) + (native-inputs + `(("ruby-mocha" ,ruby-mocha) + ("ruby-test-unit" ,ruby-test-unit))) + (synopsis "Ruby implementation of the SSH2 client protocol") + (description "@code{Net::SSH} is a pure-Ruby implementation of the SSH2 +client protocol. It allows you to write programs that invoke and interact +with processes on remote servers, via SSH2.") + (home-page "https://github.com/net-ssh/net-ssh") + (license license:expat))) + (define-public ruby-minitest (package (name "ruby-minitest") @@ -1211,6 +1776,122 @@ aware transformations between times in different time zones.") (home-page "http://tzinfo.github.io") (license license:expat))) +(define-public ruby-rb-inotify + (package + (name "ruby-rb-inotify") + (version "0.9.5") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rb-inotify" version)) + (sha256 + (base32 + "0kddx2ia0qylw3r52nhg83irkaclvrncgy2m1ywpbhlhsz1rymb9")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f ; there are no tests + #:phases + (modify-phases %standard-phases + ;; Building the gemspec with rake is not working here since it is + ;; generated with Jeweler. It is also unnecessary because the + ;; existing gemspec does not use any development tools to generate a + ;; list of files. + (replace 'build + (lambda _ + (zero? (system* "gem" "build" "rb-inotify.gemspec"))))))) + (propagated-inputs + `(("ruby-ffi" ,ruby-ffi))) + (native-inputs + `(("ruby-yard" ,ruby-yard))) + (synopsis "Ruby wrapper for Linux's inotify") + (description "rb-inotify is a simple wrapper over the @code{inotify} Linux +kernel subsystem for monitoring changes to files and directories.") + (home-page "https://github.com/nex3/rb-inotify") + (license license:expat))) + +(define-public ruby-pry-editline + (package + (name "ruby-pry-editline") + (version "1.1.2") + (source (origin + (method url-fetch) + (uri (rubygems-uri "pry-editline" version)) + (sha256 + (base32 + "1pjxyvdxvw41xw3yyl18pwzix8hbvn6lgics7qcfhjfsf1zs8x1z")))) + (build-system ruby-build-system) + (arguments `(#:tests? #f)) ; no tests included + (native-inputs + `(("bundler" ,bundler))) + (synopsis "Open the current REPL line in an editor") + (description + "This gem provides a plugin for the Ruby REPL to enable opening the +current line in an external editor.") + (home-page "https://github.com/tpope/pry-editline") + (license license:expat))) + +(define-public ruby-sdoc + (package + (name "ruby-sdoc") + (version "0.4.1") + (source (origin + (method url-fetch) + (uri (rubygems-uri "sdoc" version)) + (sha256 + (base32 + "16xyfair1j4irfkd6sxvmdcak957z71lwkvhglrznfpkalfnqyqp")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'build 'relax-minitest-requirement + (lambda _ + (substitute* "sdoc.gemspec" + (("<minitest>, \\[\"~> 4\\.0\"\\]") + "<minitest>, [\">= 4.0\"]")) + #t))))) + (propagated-inputs + `(("ruby-json" ,ruby-json))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-minitest" ,ruby-minitest))) + (synopsis "Generate searchable RDoc documentation") + (description + "SDoc is an RDoc documentation generator to build searchable HTML +documentation for Ruby code.") + (home-page "http://github.com/voloko/sdoc") + (license license:expat))) + +(define-public ruby-tins + (package + (name "ruby-tins") + (version "1.7.0") + (source (origin + (method url-fetch) + (uri (rubygems-uri "tins" version)) + (sha256 + (base32 + "1060h8dgnjl9az0sv1b74yrni8d4mh3x858wq6yfbfdf5dxrfl0a")))) + (build-system ruby-build-system) + ;; This gem needs gem-hadar at development time, but gem-hadar needs tins + ;; at runtime. To avoid the dependency on gem-hadar we disable rebuilding + ;; the gemspec. + (arguments + `(#:tests? #f ; there are no tests + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + ;; "lib/spruz" is a symlink. Leaving it in the gemspec file + ;; causes an error. + (substitute* "tins.gemspec" + (("\"lib/spruz\", ") "")) + (zero? (system* "gem" "build" "tins.gemspec"))))))) + (synopsis "Assorted tools for Ruby") + (description "Tins is a Ruby library providing assorted tools.") + (home-page "https://github.com/flori/tins") + (license license:expat))) + (define-public ruby-json (package (name "ruby-json") @@ -1230,6 +1911,28 @@ a native C extension.") (home-page "http://json-jruby.rubyforge.org/") (license (list license:ruby license:gpl2)))) ; GPL2 only +(define-public ruby-listen + (package + (name "ruby-listen") + (version "3.0.3") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "listen" version)) + (sha256 + (base32 + "10lhshjklxlrkw7999j0xl6sdxd4x32kiy8rp88jwr68kis5vq2b")))) + (build-system ruby-build-system) + (arguments '(#:tests? #f)) ; no tests + (propagated-inputs + ;; FIXME: omitting "ruby-rb-fsevent" which is only for MacOS. + `(("ruby-rb-inotify" ,ruby-rb-inotify))) + (synopsis "Listen to file modifications") + (description "The Listen gem listens to file modifications and notifies +you about the changes.") + (home-page "https://github.com/guard/listen") + (license license:expat))) + (define-public ruby-activesupport (package (name "ruby-activesupport") @@ -1496,3 +2199,28 @@ that can be exported to a number of formats very easily, and also supports extending for custom Ruby constructs such as custom class level definitions.") (home-page "http://yardoc.org") (license license:expat))) + +(define-public ruby-eventmachine + (package + (name "ruby-eventmachine") + (version "1.0.8") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "eventmachine" version)) + (sha256 + (base32 + "1frvpk3p73xc64qkn0ymll3flvn4xcycq5yx8a43zd3gyzc1ifjp")))) + (build-system ruby-build-system) + (arguments + '(#:tests? #f)) ; test suite tries to connect to google.com + (native-inputs + `(("ruby-rake-compiler" ,ruby-rake-compiler))) + (synopsis "Single-threaded network event framework for Ruby") + (description + "EventMachine implements a single-threaded engine for arbitrary network +communications. EventMachine wraps all interactions with sockets, allowing +programs to concentrate on the implementation of network protocols. It can be +used to create both network servers and clients.") + (home-page "http://rubyeventmachine.com") + (license (list license:ruby license:gpl3)))) ; GPLv3 only AFAICT diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index d7223bc0ba..484eafb647 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -23,6 +23,7 @@ #:use-module (guix build-system gnu) #:use-module (guix licenses) #:use-module (gnu packages acl) + #:use-module (gnu packages admin) #:use-module (gnu packages popt) #:use-module (gnu packages openldap) #:use-module (gnu packages readline) @@ -196,3 +197,42 @@ Desktops into Active Directory environments using the winbind daemon.") "Talloc is a hierarchical, reference counted memory pool system with destructors. It is the core memory allocator used in Samba.") (license gpl3+))) ;; The bundled "replace" library uses LGPL3. + +(define-public ppp + (package + (name "ppp") + (version "2.4.7") + (source (origin + (method url-fetch) + (uri (string-append "https://www.samba.org/ftp/ppp/ppp-" + version ".tar.gz")) + (sha256 + (base32 + "0c7vrjxl52pdwi4ckrvfjr08b31lfpgwf3pp0cqy76a77vfs7q02")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no check target + #:make-flags '("CC=gcc") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-Makefile + (lambda* (#:key inputs #:allow-other-keys) + (let ((libc (assoc-ref inputs "libc")) + (libpcap (assoc-ref inputs "libpcap"))) + (substitute* "pppd/Makefile.linux" + (("/usr/include/crypt\\.h") + (string-append libc "/include/crypt.h")) + (("/usr/include/pcap-bpf.h") + (string-append libpcap "/include/pcap-bpf.h"))))))))) + (inputs + `(("libpcap" ,libpcap))) + (synopsis "Implementation of the Point-to-Point Protocol") + (home-page "https://ppp.samba.org/") + (description + "The Point-to-Point Protocol (PPP) provides a standard way to establish +a network connection over a serial link. At present, this package supports IP +and IPV6 and the protocols layered above them, such as TCP and UDP.") + ;; pppd, pppstats and pppdump are under BSD-style notices. + ;; some of the pppd plugins are GPL'd. + ;; chat is public domain. + (license (list bsd-3 bsd-4 gpl2+ public-domain)))) diff --git a/gnu/packages/sawfish.scm b/gnu/packages/sawfish.scm index e2cb62c62c..9b09b6171e 100644 --- a/gnu/packages/sawfish.scm +++ b/gnu/packages/sawfish.scm @@ -22,7 +22,7 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (gnu packages) - #:use-module (gnu packages gdbm) + #:use-module (gnu packages databases) #:use-module (gnu packages gettext) #:use-module (gnu packages gtk) #:use-module (gnu packages libffi) diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index 7465b1b58c..aea8b54433 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -334,7 +334,7 @@ implementation techniques and as an expository tool.") (define-public racket (package (name "racket") - (version "6.1.1") + (version "6.2.1") (source (origin (method url-fetch) (uri (list (string-append "http://mirror.racket-lang.org/installers/" @@ -344,7 +344,7 @@ implementation techniques and as an expository tool.") version "/racket/racket-" version "-src-unix.tgz"))) (sha256 (base32 - "0xfsfdqkngz0xw2lqmc7bsznwx25cw91l9fjhp7abrr05m96j0h9")))) + "0555j63k7fs10iv0icmivlxpzgp6s7gwcbfddmbwxlf2rk80qhq0")))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm index 84cc8c9dc5..fa5235c115 100644 --- a/gnu/packages/screen.scm +++ b/gnu/packages/screen.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,8 @@ #:use-module (gnu packages) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) + #:use-module (gnu packages python) + #:use-module (gnu packages slang) #:use-module (gnu packages texinfo)) (define-public screen @@ -90,3 +93,53 @@ view to show two terminals at once.") allowing you to run a program in an environment that is protected from the controlling terminal and attach to it later.") (license gpl2+))) + +(define-public byobu + (package + (name "byobu") + (version "5.98") + (source + (origin + (method url-fetch) + (uri (string-append "https://launchpad.net/byobu/trunk/" + version "/+download/byobu_" + version ".orig.tar.gz")) + (sha256 + (base32 + "1s8nh4wbds1nh52i0d1hy1b308jjf4siwpq92lna1zh9ll4x71j5")) + (patches (list (search-patch "byobu-writable-status.patch"))))) + (build-system gnu-build-system) + (inputs + `(("python" ,python-wrapper) ;for config and session GUIs + ("python-newt" ,newt "python"))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before + 'configure 'provide-locale + (lambda* (#:key inputs #:allow-other-keys) + (let ((libc (assoc-ref inputs "libc"))) ;implicit input + (substitute* "usr/bin/byobu.in" + (("locale") (string-append libc "/bin/locale")))))) + (add-after + 'install 'wrap-python-scripts + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((python (string-append (assoc-ref inputs "python") + "/bin/python")) + (out (assoc-ref outputs "out")) + (config (string-append out "/bin/byobu-config")) + (select (string-append out "/bin/byobu-select-session"))) + (wrap-program config + `("BYOBU_PYTHON" = (,python)) + `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))) + (wrap-program select + `("BYOBU_PYTHON" = (,python))) + #t)))))) + (home-page "http://byobu.co/index.html") + (synopsis "Text-based window manager and terminal multiplexer") + (description + "Byobu is a Japanese term for decorative, multi-panel screens that serve +as folding room dividers. The Byobu software includes an enhanced profile, +configuration utilities, and system status notifications for the GNU Screen +window manager as well as the Tmux terminal multiplexer.") + (license gpl3+))) diff --git a/gnu/packages/scribus.scm b/gnu/packages/scribus.scm new file mode 100644 index 0000000000..864e5707d3 --- /dev/null +++ b/gnu/packages/scribus.scm @@ -0,0 +1,79 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages scribus) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system cmake) + #:use-module (gnu packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages cups) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages ghostscript) + #:use-module (gnu packages gtk) + #:use-module (gnu packages image) + #:use-module (gnu packages linux) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages qt) + #:use-module (gnu packages imagemagick) + #:use-module (gnu packages xml)) + +(define-public scribus + (package + (name "scribus") + (version "1.5.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/scribus/scribus-devel/" + version "/scribus-" version ".tar.xz")) + (sha256 + (base32 + "0s4f9q2nyqrrv4wc1ddf2admkmf9m33wmwp73ba5b4vi29nydnx3")) + (patches (list (search-patch "scribus-qobject.patch"))))) + (build-system cmake-build-system) + (arguments `(#:tests? #f)) ; no test target + (inputs + `(("cairo" ,cairo) + ("cups" ,cups) + ("graphicsmagick" ,graphicsmagick) + ("lcms" ,lcms) + ("libjpeg" ,libjpeg) + ("libtiff" ,libtiff) + ("libxml2" ,libxml2) + ("python" ,python-2) + ("freetype" ,freetype) + ("qt" ,qt) + ("zlib" ,zlib))) + (native-inputs + `(("util-linux" ,util-linux) + ("pkg-config" ,pkg-config))) + (home-page "http://scribus.net") + (synopsis "Desktop publishing and page layout program") + (description + "Scribus is a @dfn{desktop publishing} (DTP) application and can be used +for many tasks; from brochure design to newspapers, magazines, newsletters and +posters to technical documentation. Scribus supports professional DTP +features, such as CMYK color and a color management system to soft proof +images for high quality color printing, flexible PDF creation options, +Encapsulated PostScript import/export and creation of four color separations, +import of EPS/PS and SVG as native vector graphics, Unicode text including +right to left scripts such as Arabic and Hebrew via freetype.") + (license license:gpl2+))) diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm new file mode 100644 index 0000000000..b03e27cb95 --- /dev/null +++ b/gnu/packages/serialization.scm @@ -0,0 +1,74 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages serialization) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system cmake) + #:use-module (gnu packages) + #:use-module (gnu packages doxygen)) + +(define-public cereal + (package + (name "cereal") + (version "1.1.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/USCiLab/cereal/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "13bvsfzvm7yyp97k20iznq2j14dj3qiczvpq7g8897njw46psq25")))) + (build-system cmake-build-system) + (arguments + `(;; The only included tests are portability tests requiring + ;; cross-compilation and boost. Since we are building cereal on more + ;; platforms anyway, there is no compelling reason to build the tests. + #:tests? #f + #:out-of-source? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'build + (lambda _ + (substitute* "doc/doxygen.in" + (("@CMAKE_CURRENT_SOURCE_DIR@") ".")) + (zero? (system* "doxygen" "doc/doxygen.in")))) + ;; There is no "install" target, so we have to provide our own + ;; "install" phase. + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/cereal/docs")) + (include (string-append out "/include/cereal"))) + (mkdir-p doc) + (mkdir-p include) + (copy-recursively "include/cereal" include) + (copy-recursively "doc/html" doc)) + #t))))) + (native-inputs + `(("doxygen" ,doxygen))) + (home-page "http://uscilab.github.io/cereal/") + (synopsis "C++11 library for serialization") + (description + "Cereal is a header-only C++11 serialization library. Cereal takes +arbitrary data types and reversibly turns them into different representations, +such as compact binary encodings, XML, or JSON.") + (license license:bsd-3))) diff --git a/gnu/packages/slang.scm b/gnu/packages/slang.scm index a00fa7b01e..24ec71ed3e 100644 --- a/gnu/packages/slang.scm +++ b/gnu/packages/slang.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,6 +21,7 @@ (define-module (gnu packages slang) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages readline) @@ -28,7 +30,8 @@ #:use-module (gnu packages fribidi) #:use-module (gnu packages compression) #:use-module (gnu packages image) - #:use-module (gnu packages pcre)) + #:use-module (gnu packages pcre) + #:use-module (gnu packages python)) (define-public slang (package @@ -85,15 +88,22 @@ slsh, which is part of the S-Lang distribution.") (base32 "07n9f2mqsjfj35wx5ldhvl9sqcjqpcl0g4fdd9mawmny9rihw6vp")))) (build-system gnu-build-system) + (outputs '("out" "python")) (inputs `(("slang" ,slang) ("popt" ,popt) + ("python" ,python) ("fribidi" ,fribidi))) (arguments `(#:tests? #f ; no test suite #:configure-flags ;; Set the correct RUNPATH in binaries. (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")) + #:make-flags + ;; configure does not allow us to override this variable from the + ;; command-line. Fortunately, the Makefile does, so provide it here. + (list (string-append "PYTHONVERS=python" + ,(version-major+minor (package-version python)))) #:phases (modify-phases %standard-phases (add-after @@ -101,7 +111,17 @@ slsh, which is part of the S-Lang distribution.") (lambda _ (substitute* "po/Makefile" (("/usr/bin/install") "install")) - #t))))) + #t)) + (add-after + 'install 'move-python + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (py (assoc-ref outputs "python")) + (ver ,(version-major+minor (package-version python)))) + (mkdir-p (string-append py "/lib")) + (rename-file (string-append out "/lib/python" ver) + (string-append py "/lib/python" ver)) + #t)))))) (home-page "https://fedorahosted.org/newt/") (synopsis "Not Erik's Windowing Toolkit - text mode windowing with slang") (description diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 7a62d0bdee..cb8570a74b 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -110,7 +111,7 @@ a server that supports the SSH-2 protocol.") (define-public openssh (package (name "openssh") - (version "7.0p1") + (version "7.1p1") (source (origin (method url-fetch) (uri (let ((tail (string-append name "-" version ".tar.gz"))) @@ -121,7 +122,7 @@ a server that supports the SSH-2 protocol.") (string-append "http://ftp2.fr.openbsd.org/pub/OpenBSD/OpenSSH/portable/" tail)))) (sha256 (base32 - "1rc52jyc5v5b8j9kvasrnz9vnj9b0i7fw4nqac8wix0r794k4ngx")))) + "0a44mnr8bvw41zg83xh4sb55d8nds29j95gxvxk5qg863lnns2pw")))) (build-system gnu-build-system) (inputs `(("groff" ,groff) ("openssl" ,openssl) @@ -129,26 +130,35 @@ a server that supports the SSH-2 protocol.") (arguments `(#:test-target "tests" #:phases - (alist-cons-after - 'configure 'reset-/var/empty - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* "Makefile" - (("PRIVSEP_PATH=/var/empty") - (string-append "PRIVSEP_PATH=" out "/var/empty"))))) - (alist-cons-before - 'check 'patch-tests - (lambda _ - ;; remove 't-exec' regress target which requires user 'sshd' - (substitute* "regress/Makefile" - (("^(REGRESS_TARGETS=.*) t-exec(.*)" all pre post) - (string-append pre post)))) - (alist-replace - 'install - (lambda* (#:key (make-flags '()) #:allow-other-keys) - ;; install without host keys and system configuration files - (zero? (apply system* "make" "install-nosysconf" make-flags))) - %standard-phases))))) + (modify-phases %standard-phases + (add-after 'configure 'reset-/var/empty + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "Makefile" + (("PRIVSEP_PATH=/var/empty") + (string-append "PRIVSEP_PATH=" out "/var/empty"))) + #t))) + (add-before 'check 'patch-tests + (lambda _ + ;; remove 't-exec' regress target which requires user 'sshd' + (substitute* "regress/Makefile" + (("^(REGRESS_TARGETS=.*) t-exec(.*)" all pre post) + (string-append pre post))) + #t)) + (replace 'install + (lambda* (#:key outputs (make-flags '()) #:allow-other-keys) + ;; install without host keys and system configuration files + (and (zero? (apply system* "make" "install-nosysconf" make-flags)) + (begin + (install-file "contrib/ssh-copy-id" + (string-append (assoc-ref outputs "out") + "/bin/")) + (chmod (string-append (assoc-ref outputs "out") + "/bin/ssh-copy-id") #o555) + (install-file "contrib/ssh-copy-id.1" + (string-append (assoc-ref outputs "out") + "/share/man/man1/")) + #t))))))) (synopsis "Client and server for the secure shell (ssh) protocol") (description "The SSH2 protocol implemented in OpenSSH is standardised by the @@ -184,6 +194,7 @@ Additionally, various channel-specific options can be negotiated.") (uri (git-reference (url "https://github.com/artyom-poptsov/libguile-ssh.git") (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) (sha256 (base32 "1ld2khzylaylhqfsfcvbxs95frvm8pkr7dq40ia1wwn9c349fcdv")))) @@ -325,7 +336,8 @@ especially over Wi-Fi, cellular, and long-distance links.") (source (origin (method url-fetch) (uri (string-append - "http://matt.ucc.asn.au/" name "/releases/" name "-" version ".tar.bz2")) + "http://matt.ucc.asn.au/" name "/releases/" + name "-" version ".tar.bz2")) (sha256 (base32 "1bjpbg2vi5f332q4bqxkidkjfxsqmnqvp4g1wyh8d99b8gg94nar")))) (build-system gnu-build-system) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index f854a44d96..0ffd4955bb 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -24,6 +24,7 @@ #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system r) + #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages compression) #:use-module (gnu packages gcc) @@ -35,11 +36,18 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages readline) + #:use-module (gnu packages ssh) #:use-module (gnu packages texlive) #:use-module (gnu packages texinfo) + #:use-module (gnu packages tls) #:use-module (gnu packages base) - #:use-module (gnu packages xorg)) + #:use-module (gnu packages web) + #:use-module (gnu packages xml) + #:use-module (gnu packages xorg) + #:use-module (gnu packages zip) + #:use-module (srfi srfi-1)) (define-public r (package @@ -913,9 +921,9 @@ database.") times.") (license license:gpl2))) -(define-public r-data.table +(define-public r-data-table (package - (name "r-data.table") + (name "r-data-table") (version "1.9.6") (source (origin (method url-fetch) @@ -929,7 +937,408 @@ times.") (home-page "https://github.com/Rdatatable/data.table/wiki") (synopsis "Enhanced version of data.frame R object") (description - "The R data.table package provides functions for fast aggregation of -large data (e.g. 100GB in RAM), fast ordered joins, fast add/modify/delete of -columns by group, column listing and fast file reading.") + "The R package @code{data.table} is an extension of @code{data.frame} +providing functions for fast aggregation of large data (e.g. 100GB in RAM), +fast ordered joins, fast add/modify/delete of columns by group, column listing +and fast file reading.") + (license license:gpl3+))) + +(define-public python-patsy + (package + (name "python-patsy") + (version "0.4.0") + (source (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/" + "p/patsy/patsy-" version ".zip")) + (sha256 + (base32 + "1kbs996xc2haxalmhd19rr1wh5fa4gbbxf81czkf5w4kam7h7wz4")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check (lambda _ (zero? (system* "nosetests" "-v")))) + (add-after 'unpack 'prevent-generation-of-egg-archive + (lambda _ + (substitute* "setup.py" + (("from setuptools import setup") + "from distutils.core import setup")) + #t))))) + (propagated-inputs + `(("python-numpy" ,python-numpy) + ("python-scipy" ,python-scipy) + ("python-six" ,python-six))) + (native-inputs + `(("python-nose" ,python-nose) + ("unzip" ,unzip))) + (home-page "https://github.com/pydata/patsy") + (synopsis "Describe statistical models and build design matrices") + (description + "Patsy is a Python package for describing statistical models and for +building design matrices.") + ;; The majority of the code is distributed under BSD-2. The module + ;; patsy.compat contains code derived from the Python standard library, + ;; and is covered by the PSFL. + (license (list license:bsd-2 license:psfl)))) + +(define-public python2-patsy + (let ((patsy (package-with-python2 python-patsy))) + (package (inherit patsy) + (native-inputs + `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs patsy))) + (propagated-inputs + `(("python2-numpy" ,python2-numpy) + ("python2-scipy" ,python2-scipy) + ,@(alist-delete "python-numpy" + (alist-delete "python-scipy" + (package-propagated-inputs patsy)))))))) + +(define-public python-statsmodels + (package + (name "python-statsmodels") + (version "0.6.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/" + "s/statsmodels/statsmodels-" version ".tar.gz")) + (sha256 + (base32 + "0xn67sqr0cc1lmlhzm71352hrb4hw7g318p5ff5q97pc98vl8kmy")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; tests must be run after installation + (delete 'check) + (add-after 'unpack 'set-matplotlib-backend-to-agg + (lambda _ + ;; Set the matplotlib backend to Agg to avoid problems using the + ;; GTK backend without a display. + (substitute* (find-files "statsmodels/graphics/tests" "\\.py") + (("import matplotlib\\.pyplot as plt" line) + (string-append "import matplotlib;matplotlib.use('Agg');" + line))) + #t)) + (add-after 'install 'check + (lambda _ + (with-directory-excursion "/tmp" + (zero? (system* "nosetests" + "--stop" + "-v" "statsmodels")))))))) + (propagated-inputs + `(("python-numpy" ,python-numpy) + ("python-scipy" ,python-scipy) + ("python-pandas" ,python-pandas) + ("python-patsy" ,python-patsy) + ("python-matplotlib" ,python-matplotlib))) + (native-inputs + `(("python-cython" ,python-cython) + ("python-nose" ,python-nose) + ("python-sphinx" ,python-sphinx))) + (home-page "http://statsmodels.sourceforge.net/") + (synopsis "Statistical modeling and econometrics in Python") + (description + "Statsmodels is a Python package that provides a complement to scipy for +statistical computations including descriptive statistics and estimation and +inference for statistical models.") + (license license:bsd-3))) + +(define-public python2-statsmodels + (let ((stats (package-with-python2 python-statsmodels))) + (package (inherit stats) + (propagated-inputs + `(("python2-numpy" ,python2-numpy) + ("python2-scipy" ,python2-scipy) + ("python2-pandas" ,python2-pandas) + ("python2-patsy" ,python2-patsy) + ("python2-matplotlib" ,python2-matplotlib))) + (native-inputs + `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs stats)))))) + +(define-public r-xml2 + (package + (name "r-xml2") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "xml2" version)) + (sha256 + (base32 + "0jjilz36h7vbdbkpvjnja1vgjf6d1imql3z4glqn2m2b74w5qm4c")))) + (build-system r-build-system) + (inputs + `(("libxml2" ,libxml2))) + (propagated-inputs + `(("r-rcpp" ,r-rcpp) + ("r-bh" ,r-bh))) + (home-page "https://github.com/hadley/xml2") + (synopsis "Parse XML with R") + (description + "This package provides a simple, consistent interface to working with XML +files in R. It is built on top of the libxml2 C library.") + (license license:gpl2+))) + +(define-public r-rversions + (package + (name "r-rversions") + (version "1.0.2") + (source (origin + (method url-fetch) + (uri (cran-uri "rversions" version)) + (sha256 + (base32 + "0xmi461g1rf5ngb7r1sri798jn6icld1xq25wj9jii2ca8j8xv68")))) + (build-system r-build-system) + (propagated-inputs + `(("r-curl" ,r-curl) + ("r-xml2" ,r-xml2))) + (home-page "https://github.com/metacran/rversions") + (synopsis "Query R versions, including 'r-release' and 'r-oldrel'") + (description + "This package provides functions to query the main R repository to find +the versions that @code{r-release} and @code{r-oldrel} refer to, and also all +previous R versions and their release dates.") + (license license:expat))) + +(define-public r-whisker + (package + (name "r-whisker") + (version "0.3-2") + (source (origin + (method url-fetch) + (uri (cran-uri "whisker" version)) + (sha256 + (base32 + "0z4cn115gxcl086d6bnqr8afi67b6a7xqg6ivmk3l4ng1x8kcj28")))) + (build-system r-build-system) + (home-page "http://github.com/edwindj/whisker") + (synopsis "Logicless mustache templating for R") + (description + "This package provides logicless templating, with a syntax that is not +limited to R.") + (license license:gpl3+))) + +(define-public r-brew + (package + (name "r-brew") + (version "1.0-6") + (source (origin + (method url-fetch) + (uri (cran-uri "brew" version)) + (sha256 + (base32 + "1vghazbcha8gvkwwcdagjvzx6yl8zm7kgr0i9wxr4jng06d1l3fp")))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/brew") + (synopsis "Templating framework for report generation") + (description + "The brew package implements a templating framework for mixing text and R +code for report generation. The template syntax is similar to PHP, Ruby's erb +module, Java Server Pages, and Python's psp module.") + (license license:gpl2+))) + +(define-public r-roxygen2 + (package + (name "r-roxygen2") + (version "5.0.0") + (source (origin + (method url-fetch) + (uri (cran-uri "roxygen2" version)) + (sha256 + (base32 + "0xjdphjs7l1v71lylmqgp76cbcxzvm9z1a40jgkdwvz072nn08vr")))) + (build-system r-build-system) + (propagated-inputs + `(("r-brew" ,r-brew) + ("r-digest" ,r-digest) + ("r-rcpp" ,r-rcpp) + ("r-stringi" ,r-stringi) + ("r-stringr" ,r-stringr))) + (home-page "https://github.com/klutometis/roxygen") + (synopsis "In-source documentation system for R") + (description + "Roxygen2 is a Doxygen-like in-source documentation system for Rd, +collation, and NAMESPACE files.") + (license license:gpl2+))) + +(define-public r-httr + (package + (name "r-httr") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (cran-uri "httr" version)) + (sha256 + (base32 + "1yprw8p4g8026jhravgg1hdwj1g51cpdgycyr5a58jwm4i5f79cq")))) + (build-system r-build-system) + (propagated-inputs + `(("r-curl" ,r-curl) + ("r-digest" ,r-digest) + ("r-jsonlite" ,r-jsonlite) + ("r-mime" ,r-mime) + ("r-r6" ,r-r6) + ("r-stringr" ,r-stringr))) + (home-page "https://github.com/hadley/httr") + (synopsis "Tools for working with URLs and HTTP") + (description + "The aim of httr is to provide a wrapper for RCurl customised to the +demands of modern web APIs. It provides useful tools for working with HTTP +organised by HTTP verbs (@code{GET()}, @code{POST()}, etc). Configuration +functions make it easy to control additional request components.") + (license license:expat))) + +(define-public r-git2r + (package + (name "r-git2r") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (cran-uri "git2r" version)) + (sha256 + (base32 + "1h5ag8sm512jsn2sp4yhiqspc7hjq5y8z0kqz24sdznxa3b7rpn9")))) + (build-system r-build-system) + ;; This R package contains modified sources of libgit2. This modified + ;; version of libgit2 is built as the package is built. Hence libgit2 is + ;; not among the inputs of this package. + (inputs + `(("libssh2" ,libssh2) + ("openssl" ,openssl) + ("zlib" ,zlib))) + (home-page "https://github.com/ropensci/git2r") + (synopsis "Access Git repositories with R") + (description + "This package provides an R interface to the libgit2 library, which is a +pure C implementation of the Git core methods.") + ;; GPLv2 only with linking exception. + (license license:gpl2))) + +(define-public r-rstudioapi + (package + (name "r-rstudioapi") + (version "0.3.1") + (source (origin + (method url-fetch) + (uri (cran-uri "rstudioapi" version)) + (sha256 + (base32 + "0q7671d924nzqsqhs8d9p7l907bcam56wjwm7vvz44xgj0saj8bs")))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/rstudioapi") + (synopsis "Safely access the RStudio API") + (description + "This package provides functions to access the RStudio API and provide +informative error messages when it's not available.") + (license license:expat))) + +(define-public r-devtools + (package + (name "r-devtools") + (version "1.9.1") + (source (origin + (method url-fetch) + (uri (cran-uri "devtools" version)) + (sha256 + (base32 + "10ycx3kkiz5x8nmgw31d9wa5hhlx2fhda2nqzxfrczqpz1jik6ci")))) + (build-system r-build-system) + (propagated-inputs + `(("r-curl" ,r-curl) + ("r-digest" ,r-digest) + ("r-evaluate" ,r-evaluate) + ("r-git2r" ,r-git2r) + ("r-httr" ,r-httr) + ("r-jsonlite" ,r-jsonlite) + ("r-memoise" ,r-memoise) + ("r-roxygen2" ,r-roxygen2) + ("r-rstudioapi" ,r-rstudioapi) + ("r-rversions" ,r-rversions) + ("r-whisker" ,r-whisker))) + (home-page "https://github.com/hadley/devtools") + (synopsis "Tools to make developing R packages easier") + (description "The devtools package is a collection of package development +tools to simplify the devolpment of R packages.") + (license license:gpl2+))) + +(define-public r-readr + (package + (name "r-readr") + (version "0.2.2") + (source (origin + (method url-fetch) + (uri (cran-uri "readr" version)) + (sha256 + (base32 + "156422xwvskynna5kjc8h1qqnn50kxgjrihl2h2b7vm9sxxdyr2m")))) + (build-system r-build-system) + (propagated-inputs + `(("r-curl" ,r-curl) + ("r-rcpp" ,r-rcpp) + ("r-bh" ,r-bh))) + (home-page "https://github.com/hadley/readr") + (synopsis "Read tabular data") + (description + "This package provides functions to read flat or tabular text files from +disk (or a connection).") + (license license:gpl2+))) + +(define-public r-plotrix + (package + (name "r-plotrix") + (version "3.6") + (source (origin + (method url-fetch) + (uri (cran-uri "plotrix" version)) + (sha256 + (base32 + "0zn6k8azh40v0lg7q9yd4sy30a26bcc0fjvndn4z7k36avlw4i25")))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/plotrix") + (synopsis "Various plotting functions") + (description + "This package provides lots of plotting, various labeling, axis and color +scaling functions for R.") + (license license:gpl2+))) + +(define-public r-gridbase + (package + (name "r-gridbase") + (version "0.4-7") + (source (origin + (method url-fetch) + (uri (cran-uri "gridBase" version)) + (sha256 + (base32 + "09jzw4rzwf2y5lcz7b16mb68pn0fqigv34ff7lr6w3yi9k91i1xy")))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/gridBase") + (synopsis "Integration of base and grid graphics") + (description + "This package provides an integration of base and grid graphics for R.") + (license license:gpl2+))) + +(define-public r-lattice + (package + (name "r-lattice") + (version "0.20-33") + (source (origin + (method url-fetch) + (uri (cran-uri "lattice" version)) + (sha256 + (base32 + "0car12x5vl9k180i9pc86lq3cvwqakdpqn3lgdf98k9n2h52cilg")))) + (build-system r-build-system) + (home-page "http://lattice.r-forge.r-project.org/") + (synopsis "High-level data visualization system") + (description + "The lattice package provides a powerful and elegant high-level data +visualization system inspired by Trellis graphics, with an emphasis on +multivariate data. Lattice is sufficient for typical graphics needs, and is +also flexible enough to handle most nonstandard requirements.") (license license:gpl2+))) diff --git a/gnu/packages/synergy.scm b/gnu/packages/synergy.scm index 905ef82af4..bc70eaf838 100644 --- a/gnu/packages/synergy.scm +++ b/gnu/packages/synergy.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,7 +32,7 @@ (define-public synergy (package (name "synergy") - (version "1.7.3") + (version "1.7.4") (source (origin (method url-fetch) @@ -41,7 +41,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "098y71fiw1n5i7g1p6vjfs5rz472j192p9izz2axxxhfvcyzrvx4")) + "1prb06dmi4bhfsraih4hzlsfiraiczgzhqy9gjsxygczif8w6p91")) (modules '((guix build utils))) (snippet ;; Remove ~14MB of unnecessary bundled source and binaries diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index 5b55cccbde..6f6838c039 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -35,14 +35,14 @@ (package (name "tcl") (version "8.6.4") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/tcl/Tcl/" - version "/tcl" version "-src.tar.gz")) - (sha256 - (base32 - "13cwa4bc85ylf5gfj9vk182lvgy60qni3f7gbxghq78wk16djvly")))) + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/tcl/Tcl/" + version "/tcl" version "-src.tar.gz")) + (sha256 + (base32 + "13cwa4bc85ylf5gfj9vk182lvgy60qni3f7gbxghq78wk16djvly")) + (patches (list (search-patch "tcl-mkindex-deterministic.patch"))))) (build-system gnu-build-system) (arguments '(#:phases (alist-cons-before @@ -140,7 +140,8 @@ X11 GUIs.") version "/tk" version "-src.tar.gz")) (sha256 (base32 - "1h96vp15zl5xz0d4qp6wjyrchqmrmdm3q5k22wkw9jaxbvw9vy88")))) + "1h96vp15zl5xz0d4qp6wjyrchqmrmdm3q5k22wkw9jaxbvw9vy88")) + (patches (list (search-patch "tk-find-library.patch"))))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 6f90843a18..5c61604191 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014 John Darrington <jmd@gnu.org> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -59,20 +60,20 @@ reimplementation.") (define-public ucommon (package (name "ucommon") - (version "6.6.0") + (version "6.6.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/commoncpp/" name "-" version ".tar.gz")) (sha256 (base32 - "09y6rs51wl2851xp5zlxlqqb97xfi39v0yna3njb62swwr1n1ky1")))) + "16haqzq97axiyhgpca95rhr5y5s7fl8b65if5vil7v4lcqxp3hqn")))) (build-system gnu-build-system) (synopsis "Common C++ framework for threaded applications") (description "GNU uCommon C++ is meant as a very light-weight C++ library to facilitate using C++ design patterns even for very deeply embedded applications, such as for systems using uclibc along with posix threading support.") - (license gpl2+) ; plus runtime exception + (license gpl3+) (home-page "http://www.gnu.org/software/commoncpp"))) (define-public ccrtp @@ -145,13 +146,13 @@ multiplayer games.") (define-public sipwitch (package (name "sipwitch") - (version "1.9.10") + (version "1.9.14") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/sipwitch/sipwitch-" version ".tar.gz")) (sha256 (base32 - "1ljvg66v1ms3zc81mbg4x5k0pjb2flx35h70msfiajidlcna5xhz")))) + "1mrzl5nakiz613v3ch27k5dj2ykm88dlcr22lqny6dnjyfa9n2ki")))) (build-system gnu-build-system) ;; The configure.ac uses pkg-config but in a kludgy way which breaks when ;; cross-compiling. Among other issues there the program name "pkg-config" diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm new file mode 100644 index 0000000000..153c51a346 --- /dev/null +++ b/gnu/packages/terminals.scm @@ -0,0 +1,69 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> +;;; +;;; 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 terminals) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build utils) + #:use-module (guix build-system gnu) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (gnu packages autotools) + #:use-module (gnu packages gettext) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gtk) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages wm)) + +(define-public tilda + (package + (name "tilda") + (version "1.3.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/lanoxx/tilda/archive/" + "tilda-" version ".tar.gz")) + (sha256 + (base32 + "1bbn2fflngx0g18ssvnzgzprvn1w6wc2y03sqzjwvxds488lhndx")))) + (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-before 'patch-source-shebangs 'autogen + (lambda _ ; Avoid running ./configure. + (substitute* "autogen.sh" + (("^.*\\$srcdir/configure.*") "")) + (zero? (system* "sh" "autogen.sh"))))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("gettext" ,gnu-gettext) + ("pkg-config" ,pkg-config))) + (inputs + `(("glib" ,glib "bin") + ("gtk+" ,gtk+) + ("libconfuse" ,libconfuse) + ("vte" ,vte))) + (synopsis "GTK+-based drop-down terminal") + (description "Tilda is a terminal emulator similar to normal terminals like +gnome-terminal (GNOME) or Konsole (KDE), with the difference that it drops down +from the edge of a screen when a certain configurable hotkey is pressed. This +is similar to the built-in consoles in some applications. Tilda is highly +configureable through a graphical wizard.") + (home-page "https://github.com/lanoxx/tilda") + (license license:gpl2+))) diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 9f7cdddcad..537a840247 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com> +;;; Copyright © 2015 Roel Janssen <roel@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -40,7 +41,8 @@ (url "https://github.com/pinard/Recode.git") (commit "2d7092a9999194fc0e9449717a8048c8d8e26c18"))) (sha256 - (base32 "1wssv8z6g3ryrw33sksz4rjhlnhgvvdqszw1ggl4rcwks34n86zm")))) + (base32 "1wssv8z6g3ryrw33sksz4rjhlnhgvvdqszw1ggl4rcwks34n86zm")) + (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-2))) (arguments @@ -74,7 +76,8 @@ handy front-end to the library.") (uri (string-append "https://github.com/nijel/enca/archive/" version ".tar.gz")) (sha256 - (base32 "1xik00x0yvhswsw2isnclabhv536xk1s42cf5z54gfbpbhc7ni8l")))) + (base32 "1xik00x0yvhswsw2isnclabhv536xk1s42cf5z54gfbpbhc7ni8l")) + (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) (inputs `(("recode" ,recode))) @@ -177,3 +180,24 @@ the Hannon Lab.") "CityHash provides hash functions for strings. The functions mix the input bits thoroughly but are not suitable for cryptography.") (license license:expat)))) + +(define-public libconfig + (package + (name "libconfig") + (version "1.5") + (source (origin + (method url-fetch) + (uri (string-append "http://www.hyperrealm.com/libconfig/" + "libconfig-" version ".tar.gz")) + (sha256 + (base32 + "1xh3hzk63v4y8815lc5209m3s6ms2cpgw4h5hg462i4f1lwsl7g3")))) + (build-system gnu-build-system) + (home-page "http://www.hyperrealm.com/libconfig/") + (synopsis "C/C++ configuration file library") + (description + "Libconfig is a simple library for manipulating structured configuration +files. This file format is more compact and more readable than XML. And +unlike XML, it is type-aware, so it is not necessary to do string parsing in +application code.") + (license license:lgpl2.1+))) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 1a0eeb2708..e539686199 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -3,6 +3,8 @@ ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2015 David Thompson <davet@gnu.org> +;;; Copyright © 2015 Leo Famulari <leo@famulari.name> ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,14 +28,17 @@ #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system perl) + #:use-module (guix build-system python) #:use-module (gnu packages compression) #:use-module (gnu packages) #:use-module (gnu packages guile) #:use-module (gnu packages libffi) #:use-module (gnu packages libidn) + #:use-module (gnu packages ncurses) #:use-module (gnu packages nettle) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages texinfo) #:use-module (gnu packages base)) @@ -187,14 +192,14 @@ required structures.") (define-public openssl (package (name "openssl") - (version "1.0.2d") + (version "1.0.2e") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.openssl.org/source/openssl-" version ".tar.gz")) (sha256 (base32 - "1j58r7rdj9fz2lanir8ajbx4bspb5jnm5ikl6dq8lql5fx43c737")) + "1zqb1rff1wikc62a7vj5qxd1k191m8qif5d05mwdxz2wnzywlg72")) (patches (map search-patch '("openssl-runpath.patch" "openssl-c-rehash.patch"))))) @@ -207,10 +212,11 @@ required structures.") #:phases (modify-phases %standard-phases (add-before - 'configure 'fix-man-dir + 'configure 'patch-Makefile.org (lambda* (#:key outputs #:allow-other-keys) ;; The default MANDIR is some unusual place. Fix that. (let ((out (assoc-ref outputs "out"))) + (patch-makefile-SHELL "Makefile.org") (substitute* "Makefile.org" (("^MANDIR[[:blank:]]*=.*$") (string-append "MANDIR = " out "/share/man\n"))) @@ -249,6 +255,27 @@ required structures.") (find-files (string-append out "/lib") "\\.so")) #t))) + (add-after + 'unpack 'fix-broken-symlinks + (lambda _ + ;; Repair the broken symlinks in the openssl-1.0.2e tarball. + (let* ((link-prefix "openssl-1.0.2e/") + (link-prefix-length (string-length link-prefix)) + (broken-links + (find-files "." (lambda (file stat) + (and (eq? 'symlink (stat:type stat)) + (string-prefix? link-prefix + (readlink file))))))) + (when (null? broken-links) + (error "The 'fix-broken-symlinks' phase is obsolete; remove it")) + (for-each (lambda (file) + (let* ((old-target (readlink file)) + (new-target (string-drop old-target + link-prefix-length))) + (delete-file file) + (symlink new-target file))) + broken-links) + #t))) (add-before 'patch-source-shebangs 'patch-tests (lambda* (#:key inputs native-inputs #:allow-other-keys) @@ -257,7 +284,8 @@ required structures.") (("/bin/sh") (string-append bash "/bin/bash")) (("/bin/rm") - "rm"))))) + "rm")) + #t))) (add-after 'install 'remove-miscellany (lambda* (#:key outputs #:allow-other-keys) @@ -320,6 +348,78 @@ security, and applying best practice development processes.") "file://COPYING" "See COPYING in the distribution."))))) +(define-public acme + (package + (name "acme") + (version "0.1.0") + (source (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/a/acme/acme-" + version ".tar.gz")) + (sha256 + (base32 + "0fj0m04zzdxx23vazl00ilqyl3jxqq9c9p4x61pfz1zps7nbzsy3")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2)) + ;; TODO: Add optional inputs for testing and building documentation. + (native-inputs + `(("python2-mock" ,python2-mock) + ("python2-setuptools" ,python2-setuptools))) + (propagated-inputs + `(("python2-ndg-httpsclient" ,python2-ndg-httpsclient) + ("python2-werkzeug" ,python2-werkzeug) + ("python2-six" ,python2-six) + ("python2-requests" ,python2-requests) + ("python2-pytz" ,python2-pytz) + ("python2-pyrfc3339" ,python2-pyrfc3339) + ("python2-pyasn1" ,python2-pyasn1) + ("python2-cryptography" ,python2-cryptography) + ("python2-pyopenssl" ,python2-pyopenssl))) + (home-page "https://github.com/letsencrypt/letsencrypt") + (synopsis "ACME protocol implementation in Python") + (description "ACME protocol implementation in Python") + (license license:asl2.0))) + +(define-public letsencrypt + (package + (name "letsencrypt") + (version "0.1.0") + (source (origin + (method url-fetch) + (uri (string-append "https://pypi.python.org/packages/source/l/" + "letsencrypt/letsencrypt-" version ".tar.gz")) + (sha256 + (base32 + "1zb96xz32k6ai41h5m1l22qi47y71dq69dcmbz7vfm6jfrhjgxl1")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2)) + ;; TODO: Add optional inputs for testing building documentation. + (native-inputs + `(("python2-nose" ,python2-nose) + ("python2-mock" ,python2-mock))) + (propagated-inputs + `(("acme" ,acme) + ("python2-zope-interface" ,python2-zope-interface) + ("python2-pythondialog" ,python2-pythondialog) + ("python2-pyrfc3339" ,python2-pyrfc3339) + ("python2-pyopenssl" ,python2-pyopenssl) + ("python2-configobj" ,python2-configobj) + ("python2-configargparse" ,python2-configargparse) + ("python2-zope-component" ,python2-zope-component) + ("python2-parsedatetime" ,python2-parsedatetime) + ("python2-six" ,python2-six) + ("python2-psutil" ,python2-psutil) + ("python2-requests" ,python2-requests) + ("python2-pytz" ,python2-pytz))) + (synopsis "Let's Encrypt client") + (description "Tool to automatically receive and install X.509 certificates +to enable TLS on servers. The client will interoperate with the Let’s Encrypt CA which +will be issuing browser-trusted certificates for free.") + (home-page "https://letsencrypt.org/") + (license license:asl2.0))) + (define-public perl-net-ssleay (package (name "perl-net-ssleay") diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 3cf45a400e..e6e8876597 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -18,13 +18,16 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages tor) - #:use-module ((guix licenses) #:select (bsd-3 gpl2+)) + #:use-module ((guix licenses) #:select (bsd-3 gpl2+ gpl2)) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (gnu packages) #:use-module (gnu packages libevent) #:use-module (gnu packages compression) #:use-module (gnu packages pcre) + #:use-module (gnu packages perl) #:use-module (gnu packages python) #:use-module (gnu packages autotools) #:use-module (gnu packages tls) @@ -33,14 +36,14 @@ (define-public tor (package (name "tor") - (version "0.2.6.10") + (version "0.2.7.5") (source (origin (method url-fetch) (uri (string-append "https://www.torproject.org/dist/tor-" version ".tar.gz")) (sha256 (base32 - "13ab4bqz19980q4qgmbr7ar4r9y70bmsfbw66y9n31ivwkpw0hh5")))) + "0pxayvcab4cb107ynbpzx4g0qyr1mjfba2an76wdx6dxn56rwakx")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-2))) ; for tests @@ -66,22 +69,36 @@ applications based on the TCP protocol.") (define-public torsocks (package (name "torsocks") - (version "1.2") + (version "2.0.0") (source (origin - (method url-fetch) - (uri (string-append "http://torsocks.googlecode.com/files/torsocks-" - version ".tar.gz")) - (sha256 - (base32 - "1m0is5q24sf7jjlkl0icfkdc0m53nbkg0q72s57p48yp4hv7v9dy")))) + (method git-fetch) + (uri (git-reference + (url "https://git.torproject.org/torsocks.git") + (commit (string-append "v" version)))) + (sha256 + (base32 + "0an2q5ail9z414riyjbkjkm29504hy778j914baz2gn5hlv2cfak")) + (file-name (string-append name "-" version "-checkout")) + (patches (list (search-patch "torsocks-dns-test.patch"))))) (build-system gnu-build-system) - (home-page "http://code.google.com/p/torsocks/") + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'configure 'bootstrap + (lambda _ + (system* "autoreconf" "-vfi")))))) + (native-inputs `(("autoconf" ,(autoconf-wrapper)) + ("automake" ,automake) + ("libtool" ,libtool) + ("perl-test-harness" ,perl-test-harness))) + (home-page "http://www.torproject.org/") (synopsis "Use socks-friendly applications with Tor") (description "Torsocks allows you to use most socks-friendly applications in a safe way with Tor. It ensures that DNS requests are handled safely and explicitly rejects UDP traffic from the application you're using.") - (license gpl2+))) + + ;; All the files explicitly say "version 2 only". + (license gpl2))) (define-public privoxy (package diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index b4c518acf7..6861e35bec 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -6,6 +6,8 @@ ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,6 +37,7 @@ #:use-module (guix build-system trivial) #:use-module (guix build utils) #:use-module (gnu packages apr) + #:use-module (gnu packages autotools) #:use-module (gnu packages asciidoc) #:use-module (gnu packages base) #:use-module (gnu packages bison) @@ -105,14 +108,14 @@ as well as the classic centralized workflow.") ;; Keep in sync with 'git-manpages'! (package (name "git") - (version "2.5.0") + (version "2.6.3") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "0p747j94kynrx71qaamc9i0dkq5vqpv66a47b68pmin1qsxb2nfc")))) + "18vxb5fmwmrps504m23a4xdl29m7ibca3hmz0mn9jc38sz9y95yn")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -279,7 +282,7 @@ everything from small to very large projects with speed and efficiency.") version ".tar.xz")) (sha256 (base32 - "1spnqxzl53ic7bv1x7c6lwscdh581scqm5zh98wfp4qn1ciafvhs")))) + "1d7jb4pyln0prgxpxkfiy2l6ragsjzsyqyxbssbchdvl145gj8xf")))) (build-system trivial-build-system) (arguments '(#:modules ((guix build utils)) @@ -672,7 +675,8 @@ machine.") (build-system gnu-build-system) (arguments ;; XXX: The test suite looks flawed, and the package is obsolete anyway. - '(#:tests? #f)) + '(#:tests? #f + #:configure-flags (list "--with-external-zlib"))) (inputs `(("zlib" ,zlib) ("nano" ,nano))) ; the default editor (home-page "http://cvs.nongnu.org") @@ -901,7 +905,7 @@ any project with more than one developer, is one of Aegis's major functions.") (define-public tig (package (name "tig") - (version "2.1") + (version "2.1.1") (source (origin (method url-fetch) (uri (string-append @@ -909,12 +913,13 @@ any project with more than one developer, is one of Aegis's major functions.") version ".tar.gz")) (sha256 (base32 - "1c1w6w39a1dwx4whrg0ga1mhrlz095hz875z7ajn6xgmhkv8fqih")))) + "0bw5wivswwh7vx897q8xc2cqgkqhdzk8gh6fnav2kf34sngigiah")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses))) (arguments - `(#:tests? #f)) ; no tests implemented + `(#:tests? #f)) ; tests require access to /dev/tty + ;;`(#:test-target "test")) (home-page "http://jonas.nitro.dk/tig/") (synopsis "Ncurses-based text user interface for Git") (description @@ -922,3 +927,59 @@ any project with more than one developer, is one of Aegis's major functions.") a history browser. It can also stage hunks for commit, or colorize the output of the 'git' command.") (license gpl2+))) + +(define-public findnewest + (package + (name "findnewest") + (version "0.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/0-wiz-0/findnewest/archive/findnewest-" + version ".tar.gz")) + (sha256 + (base32 + "0zlflad568y203yc5ynf1nxi2szn2pmbf1lvz6yk77kjyrpw7zxg")))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'configure 'bootstrap + (lambda _ + (zero? (system* "autoreconf" "-vfi"))))))) + (native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake))) + (home-page "https://github.com/0-wiz-0/findnewest/releases") + (synopsis "Print the modification time of the latest file") + (description + "Recursively find the newest file in a file tree and print its +modification time.") + (license bsd-2))) + +(define-public myrepos + (package + (name "myrepos") + (version "1.20151022") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/joeyh/myrepos/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0c93lqsngpsxsca7nygk4qhidr40ijgih86q81x1mfcwbs0gbds8")))) + (build-system gnu-build-system) + (inputs + `(("perl" ,perl))) + (arguments + `(#:test-target "test" + #:phases (alist-delete 'configure %standard-phases) + #:make-flags (list (string-append "PREFIX=" %output)))) + (home-page "http://myrepos.branchable.com/") + (synopsis "Multiple repository management tool") + (description + "Myrepos provides the @code{mr} command, which maps an operation (e.g., +fetching updates) over a collection of version control repositories. It +supports a large number of version control systems: Git, Subversion, +Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.") + (license gpl2+))) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 013fef9742..76374e2ac6 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -3,6 +3,9 @@ ;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2015 Andy Patterson <ajpatter@uwaterloo.ca> +;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -222,7 +225,7 @@ H.264 (MPEG-4 AVC) video streams.") (define-public libass (package (name "libass") - (version "0.12.1") + (version "0.13.1") (source (origin (method url-fetch) (uri (string-append @@ -230,7 +233,7 @@ H.264 (MPEG-4 AVC) video streams.") version "/libass-" version ".tar.xz")) (sha256 (base32 - "1mwj2nk9g6cq6f8m1hf0ijg1299rghhy9naahqq43sc2whblb1l7")))) + "1rrz6is2blx8jqyydcz71y2f5f948blgx14jzi3an756fqc6p8sa")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -320,7 +323,7 @@ SMPTE 314M.") (define-public libva (package (name "libva") - (version "1.5.1") + (version "1.6.1") (source (origin (method url-fetch) @@ -328,7 +331,7 @@ SMPTE 314M.") "http://www.freedesktop.org/software/vaapi/releases/libva/libva-" version".tar.bz2")) (sha256 - (base32 "01d01mm9fgpwzqycmjjcj3in3vvzcibi3f64icsw2sksmmgb4495")))) + (base32 "0bjfb5s8dk3lql843l91ffxzlq47isqks5sj19cxh7j3nhzw58kz")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -370,18 +373,19 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") (define-public ffmpeg (package (name "ffmpeg") - (version "2.8") + (version "2.8.3") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "10l1iwc01k1algk2v4vzsrahdvqjmjfi3qazm2cwism0d8hsfg4r")))) + "0jkhyv68aa7h3hf905ganwqbrflams3hs74in7ygxdfkcqw2xqhq")))) (build-system gnu-build-system) (inputs `(("fontconfig" ,fontconfig) ("freetype" ,freetype) + ("gnutls" ,gnutls) ("opus" ,opus) ("ladspa" ,ladspa) ("lame" ,lame) @@ -411,6 +415,89 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") ("yasm" ,yasm))) (arguments `(#:test-target "fate" + #:configure-flags + ;; possible additional inputs: + ;; --enable-avisynth enable reading of AviSynth script + ;; files [no] + ;; --enable-frei0r enable frei0r video filtering + ;; --enable-libaacplus enable AAC+ encoding via libaacplus [no] + ;; --enable-libcelt enable CELT decoding via libcelt [no] + ;; --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394 + ;; and libraw1394 [no] + ;; --enable-libfaac enable AAC encoding via libfaac [no] + ;; --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no] + ;; --enable-libflite enable flite (voice synthesis) support via + ;; libflite [no] + ;; --enable-libgme enable Game Music Emu via libgme [no] + ;; --enable-libgsm enable GSM de/encoding via libgsm [no] + ;; --enable-libiec61883 enable iec61883 via libiec61883 [no] + ;; --enable-libilbc enable iLBC de/encoding via libilbc [no] + ;; --enable-libmodplug enable ModPlug via libmodplug [no] + ;; --enable-libnut enable NUT (de)muxing via libnut, + ;; native (de)muxer exists [no] + ;; --enable-libopencore-amrnb enable AMR-NB de/encoding via + ;; libopencore-amrnb [no] + ;; --enable-libopencore-amrwb enable AMR-WB decoding via + ;; libopencore-amrwb [no] + ;; --enable-libopencv enable video filtering via libopencv [no] + ;; --enable-libopenjpeg enable JPEG 2000 de/encoding via + ;; OpenJPEG [no] + ;; --enable-librtmp enable RTMP[E] support via librtmp [no] + ;; --enable-libschroedinger enable Dirac de/encoding via + ;; libschroedinger [no] + ;; --enable-libshine enable fixed-point MP3 encoding via + ;; libshine [no] + ;; --enable-libssh enable SFTP protocol via libssh [no] + ;; (libssh2 does not work) + ;; --enable-libstagefright-h264 enable H.264 decoding via + ;; libstagefright [no] + ;; --enable-libutvideo enable Ut Video encoding and decoding via + ;; libutvideo [no] + ;; --enable-libv4l2 enable libv4l2/v4l-utils [no] + ;; --enable-libvidstab enable video stabilization using + ;; vid.stab [no] + ;; --enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no] + ;; --enable-libvo-amrwbenc enable AMR-WB encoding via + ;; libvo-amrwbenc [no] + ;; --enable-libwavpack enable wavpack encoding via libwavpack [no] + ;; --enable-libxavs enable AVS encoding via xavs [no] + ;; --enable-libzmq enable message passing via libzmq [no] + ;; --enable-libzvbi enable teletext support via libzvbi [no] + ;; --enable-opencl enable OpenCL code + ;; --enable-x11grab enable X11 grabbing [no] + '("--enable-avresample" + "--enable-gpl" ; enable optional gpl licensed parts + "--enable-shared" + "--enable-fontconfig" + "--enable-gnutls" + "--enable-ladspa" + "--enable-libass" + "--enable-libbluray" + "--enable-libcaca" + "--enable-libcdio" + "--enable-libfreetype" + "--enable-libmp3lame" + "--enable-libopus" + "--enable-libpulse" + "--enable-libquvi" + "--enable-libsoxr" + "--enable-libspeex" + "--enable-libtheora" + "--enable-libtwolame" + "--enable-libvorbis" + "--enable-libvpx" + "--enable-libxvid" + "--enable-libx264" + "--enable-openal" + + "--enable-runtime-cpudetect" + + ;; Runtime cpu detection is not implemented on + ;; MIPS, so we disable some features. + "--disable-mips32r2" + "--disable-mipsdspr1" + "--disable-mipsdspr2" + "--disable-mipsfpu") #:phases (modify-phases %standard-phases (replace @@ -423,83 +510,13 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") (("#! /bin/sh") (string-append "#!" (which "bash")))) (setenv "SHELL" (which "bash")) (setenv "CONFIG_SHELL" (which "bash")) - ;; possible additional inputs: - ;; --enable-avisynth enable reading of AviSynth script files [no] - ;; --enable-frei0r enable frei0r video filtering - ;; --enable-libaacplus enable AAC+ encoding via libaacplus [no] - ;; --enable-libcelt enable CELT decoding via libcelt [no] - ;; --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394 - ;; and libraw1394 [no] - ;; --enable-libfaac enable AAC encoding via libfaac [no] - ;; --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no] - ;; --enable-libflite enable flite (voice synthesis) support via libflite [no] - ;; --enable-libgme enable Game Music Emu via libgme [no] - ;; --enable-libgsm enable GSM de/encoding via libgsm [no] - ;; --enable-libiec61883 enable iec61883 via libiec61883 [no] - ;; --enable-libilbc enable iLBC de/encoding via libilbc [no] - ;; --enable-libmodplug enable ModPlug via libmodplug [no] - ;; --enable-libnut enable NUT (de)muxing via libnut, - ;; native (de)muxer exists [no] - ;; --enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no] - ;; --enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no] - ;; --enable-libopencv enable video filtering via libopencv [no] - ;; --enable-libopenjpeg enable JPEG 2000 de/encoding via OpenJPEG [no] - ;; --enable-librtmp enable RTMP[E] support via librtmp [no] - ;; --enable-libschroedinger enable Dirac de/encoding via libschroedinger [no] - ;; --enable-libshine enable fixed-point MP3 encoding via libshine [no] - ;; --enable-libssh enable SFTP protocol via libssh [no] - ;; (libssh2 does not work) - ;; --enable-libstagefright-h264 enable H.264 decoding via libstagefright [no] - ;; --enable-libutvideo enable Ut Video encoding and decoding via libutvideo [no] - ;; --enable-libv4l2 enable libv4l2/v4l-utils [no] - ;; --enable-libvidstab enable video stabilization using vid.stab [no] - ;; --enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no] - ;; --enable-libvo-amrwbenc enable AMR-WB encoding via libvo-amrwbenc [no] - ;; --enable-libwavpack enable wavpack encoding via libwavpack [no] - ;; --enable-libxavs enable AVS encoding via xavs [no] - ;; --enable-libzmq enable message passing via libzmq [no] - ;; --enable-libzvbi enable teletext support via libzvbi [no] - ;; --enable-opencl enable OpenCL code - ;; --enable-x11grab enable X11 grabbing [no] - (zero? (system* - "./configure" - (string-append "--prefix=" out) - ;; Add $libdir to the RUNPATH of all the binaries. - (string-append "--extra-ldflags=-Wl,-rpath=" - %output "/lib") - "--enable-avresample" - "--enable-gpl" ; enable optional gpl licensed parts - "--enable-shared" - "--enable-fontconfig" - ;; "--enable-gnutls" ; causes test failures - "--enable-ladspa" - "--enable-libass" - "--enable-libbluray" - "--enable-libcaca" - "--enable-libcdio" - "--enable-libfreetype" - "--enable-libmp3lame" - "--enable-libopus" - "--enable-libpulse" - "--enable-libquvi" - "--enable-libsoxr" - "--enable-libspeex" - "--enable-libtheora" - "--enable-libtwolame" - "--enable-libvorbis" - "--enable-libvpx" - "--enable-libxvid" - "--enable-libx264" - "--enable-openal" - - "--enable-runtime-cpudetect" - - ;; Runtime cpu detection is not implemented on - ;; MIPS, so we disable some features. - "--disable-mips32r2" - "--disable-mipsdspr1" - "--disable-mipsdspr2" - "--disable-mipsfpu"))))) + (zero? (apply system* + "./configure" + (string-append "--prefix=" out) + ;; Add $libdir to the RUNPATH of all the binaries. + (string-append "--extra-ldflags=-Wl,-rpath=" + out "/lib") + configure-flags))))) (add-before 'check 'set-ld-library-path (lambda _ @@ -584,7 +601,7 @@ treaming protocols.") (define-public mplayer (package (name "mplayer") - (version "1.1.1") + (version "1.2") (source (origin (method url-fetch) (uri (string-append @@ -592,7 +609,7 @@ treaming protocols.") version ".tar.xz")) (sha256 (base32 - "0xlcg7rszrwmw29wqr0plsw5d1rq0hb7vjsq7bmmfsly2z1wg3yf")))) + "1dp2lbxyhgjr8sn91kf6xw3w6d7dsgq08v4dgrq20afz1bqzdrzz")))) (build-system gnu-build-system) ;; FIXME: Add additional inputs once available. (native-inputs @@ -601,8 +618,11 @@ treaming protocols.") `(("alsa-lib" ,alsa-lib) ("cdparanoia" ,cdparanoia) ("fontconfig" ,fontconfig) + ("ffmpeg", ffmpeg) ("freetype" ,freetype) ("lame" ,lame) + ("libdvdcss", libdvdcss) + ("libdvdnav", libdvdnav) ("libmpg123" ,mpg123) ; audio codec for MP3 ;; ("giflib" ,giflib) ; uses QuantizeBuffer, requires version >= 5 ("libjpeg" ,libjpeg) @@ -639,7 +659,7 @@ treaming protocols.") "./configure" (string-append "--extra-cflags=-I" libx11 "/include") ; to detect libx11 - "--disable-tremor-internal" ; forces external libvorbis + "--disable-ffmpeg_a" ; disables bundled ffmpeg (string-append "--prefix=" out) ;; Enable runtime cpu detection where supported, ;; and choose a suitable target. @@ -671,7 +691,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (define-public mpv (package (name "mpv") - (version "0.11.0") + (version "0.13.0") (source (origin (method url-fetch) (uri (string-append @@ -679,7 +699,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") ".tar.gz")) (sha256 (base32 - "1njvmqzj8akan5y485gx4blynwiy52adw7zbbnnnvd3dwis725d2")) + "1nqjd64p4pj1lks9n9s8y4zf4dp5bz8pyd0gsvviww7mv17p0whk")) (file-name (string-append name "-" version ".tar.gz")))) (build-system waf-build-system) (native-inputs @@ -720,10 +740,10 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (method url-fetch) ;; Keep this in sync with the version in the bootstrap.py ;; script of the source tarball. - (uri "http://www.freehackers.org/~tnagy/release/waf-1.8.4") + (uri "http://www.freehackers.org/~tnagy/release/waf-1.8.12") (sha256 (base32 - "1a7skwgpl91adhcwlmdr76xzdpidh91hvcmj34zz6548bpx3a87h")))) + "12y9c352zwliw0zk9jm2lhynsjcf5jy0k1qch1c1av8hnbm2pgq1")))) ("youtube-dl" ,youtube-dl) ("zlib" ,zlib))) (arguments @@ -740,10 +760,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (substitute* "wscript" ;; XXX Remove this when our Samba package provides a .pc file. (("check_pkg_config\\('smbclient'\\)") - "check_cc(lib='smbclient')") - ;; XXX Remove this when our Lua package provides a .pc file. - (("check_lua") - "check_cc(lib='lua')"))))) + "check_cc(lib='smbclient')"))))) ;; No check function defined. #:tests? #f)) (home-page "http://mpv.io/") @@ -793,28 +810,28 @@ projects while introducing many more.") (define-public youtube-dl (package (name "youtube-dl") - (version "2015.10.16") + (version "2015.12.09") (source (origin (method url-fetch) - (uri (string-append "https://youtube-dl.org/downloads/" + (uri (string-append "http://youtube-dl.org/downloads/" version "/youtube-dl-" version ".tar.gz")) (sha256 (base32 - "001a4md0yl3zx129mksmwc85grss67r3c9rynvranf9vlpv202vn")))) + "11rzb30ik4all43r7bnsnm35mvs37y7xj3g9r7ig9jr7qlbhllwk")))) (build-system python-build-system) - (inputs `(("setuptools" ,python-setuptools))) + (native-inputs `(("python-setuptools" ,python-setuptools))) (home-page "http://youtube-dl.org") (synopsis "Download videos from YouTube.com and other sites") (description - "youtube-dl is a small command-line program to download videos from + "Youtube-dl is a small command-line program to download videos from YouTube.com and a few more sites.") (license license:public-domain))) (define-public libbluray (package (name "libbluray") - (version "0.9.0") + (version "0.9.2") (source (origin (method url-fetch) (uri (string-append "http://download.videolan.org/videolan/" @@ -822,7 +839,7 @@ YouTube.com and a few more sites.") name "-" version ".tar.bz2")) (sha256 (base32 - "0kb9znxk6610vi0fjhqxn4z5i98nvxlsz1f8dakj99rg42livdl4")))) + "1sp71j4agcsg17g6b85cqz78pn5vknl5pl39rvr6mkib5ps99jgg")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-bdjava"))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -1083,15 +1100,16 @@ capabilities.") (define-public vapoursynth (package (name "vapoursynth") - (version "26") + (version "28") (source (origin (method url-fetch) (uri (string-append "https://github.com/vapoursynth/vapoursynth/archive/R" version ".tar.gz")) + (file-name (string-append name "-" version)) (sha256 (base32 - "1qbg5kg0kgrxldd0ckn1s7vy7vx2ig8nqzv6djp38fxccpzw3x9k")))) + "0pnrawcg1j65i46yim0z447lglq1af5zgx0lkqf1x5xl1bfwc0v7")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -1180,3 +1198,53 @@ and custom quantization matrices.") from various services and pipes them into a video playing application.") (home-page "http://livestreamer.io/") (license license:bsd-2))) + +(define-public mlt + (package + (name "mlt") + (version "0.9.8") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/mlt/mlt/mlt-" + version ".tar.gz")) + (sha256 + (base32 + "0rmrkj7z9g3nr4099f3ff0r14l3ixcfnlx2cdbkqa6pxin0pv9bz")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests + #:make-flags '("CC=gcc") + #:configure-flags + (list "--enable-gpl3" + "--enable-gpl") + #:phases + (modify-phases %standard-phases + (add-after + 'configure 'override-LDFLAGS + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "config.mak" + (("LDFLAGS\\+=") + (string-append "LDFLAGS+=-Wl,-rpath=" + (assoc-ref outputs "out") + "/lib "))) + #t))))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("fftw" ,fftw) + ("libxml2" ,libxml2) + ("jack" ,jack-1) + ("ladspa" ,ladspa) + ("libsamplerate" ,libsamplerate) + ("sdl" ,sdl) + ("sox" ,sox))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://www.mltframework.org/") + (synopsis "Author, manage, and run multitrack audio/video compositions") + (description + "MLT is a multimedia framework, designed and developed for television +broadcasting. It provides a toolkit for broadcasters, video editors, media +players, transcoders, web streamers and many more types of applications. The +functionality of the system is provided via an assortment of ready to use +tools, XML authoring components, and an extensible plug-in based API.") + (license license:lgpl2.1+))) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 4d526fce0c..6c3329ffb6 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -235,8 +235,9 @@ data.") (version "0.12") (source (origin (method url-fetch) - (uri (string-append "https://s3.amazonaws.com/json-c_releases/releases/json-c-" - version ".tar.gz")) + (uri (string-append + "https://s3.amazonaws.com/json-c_releases/releases/json-c-" + version ".tar.gz")) (sha256 (base32 "0gwzic3ifg2d0w32ya3agpxh8i083cgvf7kmc51cnbgqnfr02300")) @@ -2977,3 +2978,28 @@ directory.") various contexts including the R console, R Markdown documents, and Shiny web applications.") (license l:expat))) + +(define-public r-curl + (package + (name "r-curl") + (version "0.9.3") + (source (origin + (method url-fetch) + (uri (cran-uri "curl" version)) + (sha256 + (base32 + "02p9s1jlk8dcbvn71ivn4xnrqh9dwqyhgn4s1fzcfmnmfxhl5gld")))) + (build-system r-build-system) + (inputs + `(("libcurl" ,curl))) + (home-page "https://github.com/jeroenooms/curl") + (synopsis "HTTP client for R") + (description + "The @code{curl()} and @code{curl_download()} functions provide highly +configurable drop-in replacements for base @code{url()} and +@code{download.file()} with better performance, support for encryption, gzip +compression, authentication, and other @code{libcurl} goodies. The core of +the package implements a framework for performing fully customized requests +where data can be processed either in memory, on disk, or streaming via the +callback or connection interfaces.") + (license l:expat))) diff --git a/gnu/packages/weechat.scm b/gnu/packages/weechat.scm index d88ad53166..2142f5638e 100644 --- a/gnu/packages/weechat.scm +++ b/gnu/packages/weechat.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net> +;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net> +;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +20,7 @@ ;; TODO: Add ruby (define-module (gnu packages weechat) + #:use-module (gnu packages) #:use-module (gnu packages ncurses) #:use-module (gnu packages base) #:use-module (gnu packages gettext) @@ -47,11 +49,13 @@ (name "weechat") (version "1.3") (source (origin - (method url-fetch) - (uri (string-append "http://weechat.org/files/src/weechat-" + (method url-fetch) + (uri (string-append "http://weechat.org/files/src/weechat-" version ".tar.gz")) - (sha256 - (base32 "13b7dfs3sn71c51fi0bli5rzlsppil6gg1lzik3k8l43yhhqyv2w")))) + (sha256 + (base32 + "13b7dfs3sn71c51fi0bli5rzlsppil6gg1lzik3k8l43yhhqyv2w")) + (patches (list (search-patch "weechat-python.patch"))))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) ("pkg-config" ,pkg-config) @@ -75,20 +79,22 @@ ("python" ,python-2) ("perl" ,perl) ("tcl" ,tcl))) - (arguments `(#:configure-flags (list - (string-append - "--with-tclconfig=" - (assoc-ref %build-inputs "tcl") "/lib")) - #:phases (alist-cons-after - 'autogen 'fix-file - (lambda _ - (substitute* "configure" - (("/usr/bin/file") (which "file")))) - (alist-cons-before - 'configure 'autogen - (lambda _ - (zero? (system* "./autogen.sh"))) - %standard-phases)))) + (arguments + `(#:configure-flags (list (string-append + "--with-tclconfig=" + (assoc-ref %build-inputs "tcl") "/lib")) + #:phases (modify-phases %standard-phases + (add-before 'configure 'autogen + (lambda _ + (zero? (system* "./autogen.sh")))) + (add-before 'build 'set-python-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/plugins/python/weechat-python.c" + (("python2_bin = weechat_python_get_python2_bin.*;") + (string-append "python2_bin = strdup (\"" + (assoc-ref inputs "python") + "/bin/python\");\n"))) + #t))))) (synopsis "Extensible chat client") (description "WeeChat (Wee Enhanced Environment for Chat) is an Internet Relay Chat client, which is designed to be light and fast. diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm index f4ccb66d91..d8a7bea48e 100644 --- a/gnu/packages/wget.scm +++ b/gnu/packages/wget.scm @@ -32,7 +32,7 @@ (define-public wget (package (name "wget") - (version "1.16.3") + (version "1.17.1") (source (origin (method url-fetch) @@ -40,7 +40,7 @@ version ".tar.xz")) (sha256 (base32 - "0dzv5xf9qxc2bp4cyifmaghh3h464wbm73xiwcrvckf1ynqbgxv7")))) + "1jcpvl5sxb2ag8yahpy370c5jlfb097a21k2mhsidh4wxdhrnmgy")))) (build-system gnu-build-system) (inputs `(("gnutls" ,gnutls) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 7f614e18c8..1765c3a6b0 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 SiniÅ¡a BiÄ‘in <sinisa@bidin.eu> ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 xd1le <elisp.vim@gmail.com> +;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +23,7 @@ (define-module (gnu packages wm) #:use-module (guix licenses) #:use-module (guix packages) + #:use-module (gnu packages) #:use-module (gnu packages linux) #:use-module (guix build-system gnu) #:use-module (guix build-system haskell) @@ -177,7 +179,7 @@ commands would.") ("pkg-config" ,pkg-config))) (home-page "http://i3wm.org/") (synopsis "Improved tiling window manager") - (description "i3 is a tiling window manager, completely written + (description "A tiling window manager, completely written from scratch. i3 is primarily targeted at advanced users and developers.") (license bsd-3))) @@ -190,10 +192,19 @@ developers.") (source (origin (method url-fetch) (uri (string-append "http://hackage.haskell.org/package/xmonad/" - "xmonad-" version ".tar.gz")) + name "-" version ".tar.gz")) (sha256 (base32 - "1pfjssamiwpwjp1qqkm9m9p9s35pv381m0cwg6jxg0ppglibzq1r")))) + "1pfjssamiwpwjp1qqkm9m9p9s35pv381m0cwg6jxg0ppglibzq1r")) + (modules '((guix build utils))) + (snippet + ;; Here we update the constraints on the utf8-string package in + ;; the Cabal file. We allow a newer version which is compatible + ;; with GHC 7.10.2. The same change is applied on Hackage. See + ;; <https://hackage.haskell.org/package/xmonad-0.11.1/revisions/>. + '(substitute* "xmonad.cabal" + (("utf8-string >= 0.3 && < 0.4") + "utf8-string >= 0.3 && < 1.1"))))) (build-system haskell-build-system) (inputs `(("ghc-mtl" ,ghc-mtl) @@ -232,7 +243,7 @@ tiled on several screens.") (define-public ghc-xmonad-contrib (package (name "ghc-xmonad-contrib") - (version "0.11.3") + (version "0.11.4") (source (origin (method url-fetch) @@ -240,10 +251,11 @@ tiled on several screens.") "xmonad-contrib-" version ".tar.gz")) (sha256 (base32 - "14h9vr33yljymswj50wbimav263y9abdcgi07mvfis0zd08rxqxa")))) + "1g5cw9vvnfbiyi599fngk02zlmdhrf82x0bndhypkn6kybab6yd3")))) (build-system haskell-build-system) (propagated-inputs `(("ghc-mtl" ,ghc-mtl) + ("ghc-old-time" ,ghc-old-time) ("ghc-random" ,ghc-random) ("ghc-utf8-string" ,ghc-utf8-string) ("ghc-extensible-exceptions" ,ghc-extensible-exceptions) @@ -268,7 +280,8 @@ tiling window manager for X.") version ".tar.gz")) (sha256 (base32 - "0ak0yajzk3v4dg5wmaghv6acf7v02a4iw8qxmq5yw5ard8lrqn3r")))) + "0ak0yajzk3v4dg5wmaghv6acf7v02a4iw8qxmq5yw5ard8lrqn3r")) + (patches (map search-patch '("evilwm-lost-focus-bug.patch"))))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index f680d253c8..4b5308c665 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -39,6 +39,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) ;for libgudev #:use-module (gnu packages perl) #:use-module (gnu packages python) #:use-module (gnu packages linux) @@ -199,7 +200,7 @@ rasterisation.") (define-public libdrm (package (name "libdrm") - (version "2.4.58") + (version "2.4.65") (source (origin (method url-fetch) @@ -209,7 +210,8 @@ rasterisation.") ".tar.bz2")) (sha256 (base32 - "1pb5lfb3kh36p9axq620daclq68rqb3mhzxpz0pb18y9p7kglmdi")))) + "1i4n7mz49l0j4kr0dg9n1j3hlc786ncqgj0v5fci1mz7pp40m5ki")) + (patches (list (search-patch "libdrm-symbol-check.patch"))))) (build-system gnu-build-system) (inputs `(("libpciaccess" ,libpciaccess) @@ -605,6 +607,7 @@ Escape key when Left Control is pressed and released on its own.") (inputs `(("glib" ,glib) ("gtk+" ,gtk+) + ("libgudev" ,libgudev) ("eudev" ,eudev) ("libxml2" ,libxml2))) (home-page "http://linuxwacom.sourceforge.net/") diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index e42c58050d..e213fb6067 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -35,6 +35,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages gnome) #:use-module (gnu packages pdf) + #:use-module (gnu packages polkit) #:use-module (gnu packages gstreamer) #:use-module (gnu packages linux) #:use-module (gnu packages photo) @@ -111,6 +112,8 @@ Xfce Desktop Environment.") ;; Run test-suite under a dbus session. (setenv "XDG_DATA_DIRS" ; for finding org.xfce.Xfconf.service (string-append %output "/share")) + ;; For the missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0"); (zero? (system* "dbus-launch" "make" "check"))) (alist-delete 'check %standard-phases)))) (native-inputs @@ -421,7 +424,19 @@ your system in categories, so you can quickly find and launch them.") "/src/" name "-" version ".tar.bz2")) (sha256 (base32 - "01kvbd09c06j20n155hracsgrq06rlmfgdywffjsvlwpn19m9j38")))) + "01kvbd09c06j20n155hracsgrq06rlmfgdywffjsvlwpn19m9j38")) + (patches + ;; See: https://bugzilla.xfce.org/show_bug.cgi?id=12282 + (list (search-patch "xfce4-session-fix-xflock4.patch"))) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* "xfsm-shutdown-helper/main.c" + (("/sbin/shutdown -h now") "halt") + (("/sbin/shutdown -r now") "restart") + (("/usr/sbin/pm-suspend") "pm-suspend") + (("/usr/sbin/pm-hibernate") "pm-hibernate")) + #t)))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -431,6 +446,8 @@ your system in categories, so you can quickly find and launch them.") ("intltool" ,intltool))) (inputs `(("iceauth" ,iceauth) + ("upower" ,upower) + ("polkit" ,polkit) ("libsm" ,libsm) ("libwnck" ,libwnck-1) ("libxfce4ui" ,libxfce4ui))) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index c4db640d0f..3e4d6687ea 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -4,6 +4,8 @@ ;;; Copyright © 2013 David Thompson <dthompson2@worcester.edu> ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,6 +48,7 @@ libkate vorbis-tools opus + opusfile opus-tools)) (define libogg @@ -163,9 +166,11 @@ stereo encoding, and voice activity detection.") ;; XXX: Should back-ends be pushed to different outputs? For instance, ;; "out" would include only the ALSA back-end, while "pulse" would ;; contain 'lib/ao/plugins-4/libpulse.*'. - (inputs `(("pkg-config" ,pkg-config) - ("alsa-lib" ,alsa-lib) - ("pulseaudio" ,pulseaudio))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("pulseaudio" ,pulseaudio))) + (native-inputs + `(("pkg-config" ,pkg-config))) (synopsis "Cross platform audio library") (description "Libao is a cross-platform audio library that allows programs to @@ -288,7 +293,7 @@ ogginfo, to obtain information (tags, bitrate, length, etc.) about (define opus (package (name "opus") - (version "1.1") + (version "1.1.1") (source (origin (method url-fetch) (uri (string-append @@ -296,7 +301,7 @@ ogginfo, to obtain information (tags, bitrate, length, etc.) about ".tar.gz")) (sha256 (base32 - "158xprn2086arvdib3vbbygz7z6jqkw2nci7nlywzzwallap0wmr")))) + "07iplfwim26b6k1bqjyciaqvihps9rk5gi8385axa83ppmbgz14v")))) (build-system gnu-build-system) (synopsis "Versatile audio codec") (description @@ -341,6 +346,34 @@ decoding .opus files.") (license license:bsd-3) (home-page "http://www.opus-codec.org"))) +(define opusfile + (package + (name "opusfile") + (version "0.6") + (source (origin + (method url-fetch) + (uri (string-append + "http://downloads.xiph.org/releases/opus/opusfile-" version + ".tar.gz")) + (sha256 + (base32 + "19iys2kld75k0210b807i4illrdmj3cmmnrgxlc9y4vf6mxp2a14")))) + (build-system gnu-build-system) + (propagated-inputs + `(("opus" ,opus))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libogg" ,libogg) + ("openssl" ,openssl))) + (synopsis "Versatile audio codec") + (description + "The opusfile library provides seeking, decode, and playback of Opus +streams in the Ogg container (.opus files) including over http(s) on posix and +windows systems.") + (license license:bsd-3) + (home-page "http://www.opus-codec.org"))) + (define-public icecast (package (name "icecast") diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index d9c92d6d93..4e76cbc3c8 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -63,14 +64,14 @@ things the parser might find in the XML document (like start tags).") (define-public libxml2 (package (name "libxml2") - (version "2.9.2") + (version "2.9.3") (source (origin (method url-fetch) (uri (string-append "ftp://xmlsoft.org/libxml2/libxml2-" version ".tar.gz")) (sha256 (base32 - "1g6mf03xcabmk5ing1lwqmasr803616gb2xhn7pll10x2l5w6y2i")))) + "0bd17g6znn2r98gzpjppsqjg33iraky4px923j3k8kdl8qgy7sad")))) (build-system gnu-build-system) (home-page "http://www.xmlsoft.org/") (synopsis "C parser for XML") @@ -129,7 +130,8 @@ project (but it is usable outside of the Gnome platform).") version ".tar.gz")) (sha256 (base32 - "13029baw9kkyjgr7q3jccw2mz38amq7mmpr5p3bh775qawd1bisz")))) + "13029baw9kkyjgr7q3jccw2mz38amq7mmpr5p3bh775qawd1bisz")) + (patches (list (search-patch "libxslt-CVE-2015-7995.patch"))))) (build-system gnu-build-system) (home-page "http://xmlsoft.org/XSLT/index.html") (synopsis "C library for applying XSLT stylesheets to XML documents") @@ -410,7 +412,7 @@ parsing/saving.") (define-public xmlto (package (name "xmlto") - (version "0.0.25") + (version "0.0.28") (source (origin (method url-fetch) @@ -419,7 +421,7 @@ parsing/saving.") version ".tar.bz2")) (sha256 (base32 - "0dp5nxq491gymq806za0dk4hngfmq65ysrqbn0ypajqbbl6vf71n")))) + "0xhj8b2pwp4vhl9y16v3dpxpsakkflfamr191mprzsspg4xdyc0i")))) (build-system gnu-build-system) (arguments ;; Make sure the reference to util-linux's 'getopt' is kept in 'xmlto'. @@ -489,3 +491,72 @@ Libxml2).") UTF-8 and UTF-16 encoding.") ;; LGPL 2.0+ with additional exceptions for static linking (license license:lgpl2.0+))) + +;; TinyXML is an unmaintained piece of software, so the patches and build +;; system massaging have no upstream potential. +(define-public tinyxml + (package + (name "tinyxml") + (version "2.6.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/tinyxml/tinyxml_" + (string-join (string-split version #\.) "_") + ".tar.gz")) + (sha256 + (base32 + "14smciid19lvkxqznfig77jxn5s4iq3jpb47vh5a6zcaqp7gvg8m")) + (patches (list (search-patch "tinyxml-use-stl.patch"))))) + (build-system gnu-build-system) + ;; This library is missing *a lot* of the steps to make it usable, so we + ;; have to add them here, like every other distro must do. + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'build 'build-shared-library + (lambda _ + (zero? (system* "g++" "-Wall" "-O2" "-shared" "-fpic" + "tinyxml.cpp" "tinyxmlerror.cpp" + "tinyxmlparser.cpp" "tinystr.cpp" + "-o" "libtinyxml.so")))) + (replace 'check + (lambda _ (zero? (system "./xmltest")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (include (string-append out "/include")) + (lib (string-append out "/lib")) + (pkgconfig (string-append out "/lib/pkgconfig")) + (doc (string-append out "/share/doc"))) + ;; Install libs and headers. + (install-file "libtinyxml.so" lib) + (install-file "tinystr.h" include) + (install-file "tinyxml.h" include) + ;; Generate and install pkg-config file. + (mkdir-p pkgconfig) + ;; Software such as Kodi expect this file to be present, but + ;; it's not provided in the source code. + (call-with-output-file (string-append pkgconfig "/tinyxml.pc") + (lambda (port) + (format port "prefix=~a +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: TinyXML +Description: A simple, small, C++ XML parser +Version: ~a +Libs: -L${libdir} -ltinyxml +Cflags: -I${includedir} +" + out ,version))) + ;; Install docs. + (mkdir-p doc) + (copy-recursively "docs" (string-append doc "tinyxml")) + #t)))))) + (synopsis "Small XML parser for C++") + (description "TinyXML is a small and simple XML parsing library for the +C++ programming langauge.") + (home-page "http://www.grinninglizard.com/tinyxml/index.html") + (license license:zlib))) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index b39bbd436f..42422a3c56 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> +;;; Copyright © 2015 Cyrill Schenkel <cyrill.schenkel@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1128,7 +1129,7 @@ themselves.") (define-public libpciaccess (package (name "libpciaccess") - (version "0.13.2") + (version "0.13.4") (source (origin (method url-fetch) @@ -1138,7 +1139,7 @@ themselves.") ".tar.bz2")) (sha256 (base32 - "06fy43n3c450h7xqpn3094bnfn7ca1mrq3i856y8kyqa0lmqraxb")))) + "1krgryi9ngjr66242v0v5mczihgv0y7rrvx0563arr318mjn9y07")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) @@ -2709,8 +2710,8 @@ framebuffer device.") "19y13xl7yfrgyis92rmxi0ld95ajgr5il0n9j1dridwzw9aizz1q")) (patches (list (search-patch "xf86-video-geode-glibc-2.20.patch"))))) (build-system gnu-build-system) - (inputs `(("pkg-config" ,pkg-config) - ("xorg-server" ,xorg-server))) + (inputs `(("xorg-server" ,xorg-server))) + (native-inputs `(("pkg-config" ,pkg-config))) (supported-systems ;; This driver is only supported on i686 systems. (filter (lambda (system) (string-prefix? "i686-" system)) @@ -5439,3 +5440,44 @@ perl programs to display windows and graphics on X11 servers.") ;; of the extension modules in the directory Protocol/Ext: see those files ;; for details)." (license (package-license perl)))) + +(define-public xcompmgr + (package + (name "xcompmgr") + (version "1.1.7") + (source + (origin + ;; there's no current tarball + (method git-fetch) + (uri (git-reference + (url "http://anongit.freedesktop.org/git/xorg/app/xcompmgr.git") + (commit (string-append name "-" version)))) + (sha256 + (base32 + "04swkrm3gk689wrjc418bd3n25w8r20kg1xfbn5j8d7mx1r5gf16")) + (file-name (string-append name "-" version)))) + (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'autogen + (lambda _ + (setenv "NOCONFIGURE" "t") + (zero? (system* "sh" "autogen.sh"))))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("autoconf" ,autoconf) + ("automake" ,automake))) + (inputs + `(("libX11" ,libx11) + ("libXext" ,libxext) + ("libXcomposite" ,libxcomposite) + ("libXfixes" ,libxfixes) + ("libXdamage" ,libxdamage) + ("libXrender" ,libxrender))) + (synopsis "X Compositing manager using RENDER") + (description "xcompmgr is a sample compositing manager for X servers +supporting the XFIXES, DAMAGE, RENDER, and COMPOSITE extensions. It enables +basic eye-candy effects.") + (home-page "http://cgit.freedesktop.org/xorg/app/xcompmgr/") + (license (license:x11-style + "http://cgit.freedesktop.org/xorg/app/xcompmgr/tree/COPYING")))) diff --git a/gnu/packages/zsh.scm b/gnu/packages/zsh.scm index 3d3d5889d9..c2f09226bd 100644 --- a/gnu/packages/zsh.scm +++ b/gnu/packages/zsh.scm @@ -29,13 +29,14 @@ (define-public zsh (package (name "zsh") - (version "5.0.7") + (version "5.1.1") (source (origin - (method url-fetch) - (uri (string-append "http://www.zsh.org/pub/zsh-" version - ".tar.gz")) - (sha256 - (base32 "06drwywxa0zm8mizk32wc6ijhpzlyy2mcmskj66bnyggg70s9w23")))) + (method url-fetch) + (uri (string-append "http://www.zsh.org/pub/zsh-" version + ".tar.gz")) + (sha256 + (base32 + "11shllzhq53fg8ngy3bgbmpf09fn2czifg7hsb41nxi3410mpvcl")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-tcsetpgrp" "--enable-pcre") #:phases (alist-cons-before @@ -53,6 +54,7 @@ "Test/E01options.ztst" "Test/A05execution.ztst" "Test/A01grammar.ztst" + "Test/A06assign.ztst" "Test/B02typeset.ztst" "Completion/Unix/Command/_init_d" "Util/preconfig") diff --git a/gnu/services.scm b/gnu/services.scm index d0fe0ade17..0e1c74bda8 100644 --- a/gnu/services.scm +++ b/gnu/services.scm @@ -21,6 +21,7 @@ #:use-module (guix monads) #:use-module (guix store) #:use-module (guix records) + #:use-module (guix profiles) #:use-module (guix sets) #:use-module (guix ui) #:use-module (gnu packages base) @@ -48,6 +49,7 @@ service-kind service-parameters + modify-services service-back-edges fold-services @@ -59,12 +61,15 @@ ambiguous-target-service-error-service ambiguous-target-service-error-target-type + system-service-type boot-service-type activation-service-type activation-service->script + %linux-bare-metal-service etc-service-type etc-directory setuid-program-service-type + profile-service-type firmware-service-type %boot-service @@ -87,9 +92,10 @@ ;;; by providing one procedure to compose extensions, and one procedure to ;;; extend itself. ;;; -;;; A notable service type is BOOT-SERVICE-TYPE, which has a single instance, -;;; %BOOT-SERVICE. %BOOT-SERVICE constitutes the root of the service DAG. It -;;; produces the boot script that the initrd loads. +;;; A notable service type is SYSTEM-SERVICE-TYPE, which has a single +;;; instance, which is the root of the service DAG. Its value is the +;;; derivation that produces the 'system' directory as returned by +;;; 'operating-system-derivation'. ;;; ;;; The 'fold-services' procedure can be passed a list of procedures, which it ;;; "folds" by propagating extensions down the graph; it returns the root @@ -133,13 +139,73 @@ (parameters service-parameters)) +(define-syntax %modify-service + (syntax-rules (=>) + ((_ service) + service) + ((_ svc (kind param => exp ...) clauses ...) + (if (eq? (service-kind svc) kind) + (let ((param (service-parameters svc))) + (service (service-kind svc) + (begin exp ...))) + (%modify-service svc clauses ...))))) + +(define-syntax modify-services + (syntax-rules () + "Modify the services listed in SERVICES according to CLAUSES. Each clause +must have the form: + + (TYPE VARIABLE => BODY) + +where TYPE is a service type, such as 'guix-service-type', and VARIABLE is an +identifier that is bound within BODY to the value of the service of that +TYPE. Consider this example: + + (modify-services %base-services + (guix-service-type config => + (guix-configuration + (inherit config) + (use-substitutes? #f) + (extra-options '(\"--gc-keep-derivations\")))) + (mingetty-service-type config => + (mingetty-configuration + (inherit config) + (motd (plain-file \"motd\" \"Hi there!\"))))) + +It changes the configuration of the GUIX-SERVICE-TYPE instance, and that of +all the MINGETTY-SERVICE-TYPE instances. + +This is a shorthand for (map (lambda (svc) ...) %base-services)." + ((_ services clauses ...) + (map (lambda (service) + (%modify-service service clauses ...)) + services)))) ;;; ;;; Core services. ;;; -(define (compute-boot-script mexps) +(define (system-derivation mentries mextensions) + "Return as a monadic value the derivation of the 'system' directory +containing the given entries." + (mlet %store-monad ((entries mentries) + (extensions (sequence %store-monad mextensions))) + (lower-object + (file-union "system" + (append entries (concatenate extensions)))))) + +(define system-service-type + ;; This is the ultimate service type, the root of the service DAG. The + ;; service of this type is extended by monadic name/item pairs. These items + ;; end up in the "system directory" as returned by + ;; 'operating-system-derivation'. + (service-type (name 'system) + (extensions '()) + (compose identity) + (extend system-derivation))) + +(define (compute-boot-script _ mexps) (mlet %store-monad ((gexps (sequence %store-monad mexps))) (gexp->file "boot" #~(begin @@ -160,19 +226,25 @@ ;; Activate the system and spawn dmd. #$@gexps)))) -(define (second-argument a b) b) +(define (boot-script-entry mboot) + "Return, as a monadic value, an entry for the boot script in the system +directory." + (mlet %store-monad ((boot mboot)) + (return `(("boot" ,boot))))) (define boot-service-type ;; The service of this type is extended by being passed gexps as monadic ;; values. It aggregates them in a single script, as a monadic value, which ;; becomes its 'parameters'. It is the only service that extends nothing. (service-type (name 'boot) - (extensions '()) - (compose compute-boot-script) - (extend second-argument))) + (extensions + (list (service-extension system-service-type + boot-script-entry))) + (compose append) + (extend compute-boot-script))) (define %boot-service - ;; This is the ultimate service, the root of the service DAG. + ;; The service that produces the boot script. (service boot-service-type #t)) (define* (file-union name files) ;FIXME: Factorize. @@ -202,20 +274,6 @@ file." (union-build #$output '#$things)) #:modules '((guix build union)))))) -(define (modprobe-wrapper) - "Return a wrapper for the 'modprobe' command that knows where modules live. - -This wrapper is typically invoked by the Linux kernel ('call_modprobe', in -kernel/kmod.c), a situation where the 'LINUX_MODULE_DIRECTORY' environment -variable is not set---hence the need for this wrapper." - (let ((modprobe "/run/current-system/profile/bin/modprobe")) - (gexp->script "modprobe" - #~(begin - (setenv "LINUX_MODULE_DIRECTORY" - "/run/booted-system/kernel/lib/modules") - (apply execl #$modprobe - (cons #$modprobe (cdr (command-line)))))))) - (define* (activation-service->script service) "Return as a monadic value the activation script for SERVICE, a service of ACTIVATION-SCRIPT-TYPE." @@ -240,8 +298,7 @@ ACTIVATION-SCRIPT-TYPE." (mlet* %store-monad ((actions (service-activations)) (modules (imported-modules %modules)) - (compiled (compiled-modules %modules)) - (modprobe (modprobe-wrapper))) + (compiled (compiled-modules %modules))) (gexp->file "activate" #~(begin (eval-when (expand load eval) @@ -256,12 +313,6 @@ ACTIVATION-SCRIPT-TYPE." (activate-/bin/sh (string-append #$(canonical-package bash) "/bin/sh")) - ;; Tell the kernel to use our 'modprobe' command. - (activate-modprobe #$modprobe) - - ;; Let users debug their own processes! - (activate-ptrace-attach) - ;; Run the services' activation snippets. ;; TODO: Use 'load-compiled'. (for-each primitive-load '#$actions) @@ -274,6 +325,8 @@ ACTIVATION-SCRIPT-TYPE." (mlet %store-monad ((script (activation-script gexps))) (return #~(primitive-load #$script)))) +(define (second-argument a b) b) + (define activation-service-type (service-type (name 'activate) (extensions @@ -287,6 +340,41 @@ ACTIVATION-SCRIPT-TYPE." ;; receives. (service activation-service-type #t)) +(define %modprobe-wrapper + ;; Wrapper for the 'modprobe' command that knows where modules live. + ;; + ;; This wrapper is typically invoked by the Linux kernel ('call_modprobe', + ;; in kernel/kmod.c), a situation where the 'LINUX_MODULE_DIRECTORY' + ;; environment variable is not set---hence the need for this wrapper. + (let ((modprobe "/run/current-system/profile/bin/modprobe")) + (program-file "modprobe" + #~(begin + (setenv "LINUX_MODULE_DIRECTORY" + "/run/booted-system/kernel/lib/modules") + (apply execl #$modprobe + (cons #$modprobe (cdr (command-line)))))))) + +(define %linux-kernel-activation + ;; Activation of the Linux kernel running on the bare metal (as opposed to + ;; running in a container.) + #~(begin + ;; Tell the kernel to use our 'modprobe' command. + (activate-modprobe #$%modprobe-wrapper) + + ;; Let users debug their own processes! + (activate-ptrace-attach))) + +(define linux-bare-metal-service-type + (service-type (name 'linux-bare-metal) + (extensions + (list (service-extension activation-service-type + (const %linux-kernel-activation)))))) + +(define %linux-bare-metal-service + ;; The service that does things that are needed on the "bare metal", but not + ;; necessary or impossible in a container. + (service linux-bare-metal-service-type #f)) + (define (etc-directory service) "Return the directory for SERVICE, a service of type ETC-SERVICE-TYPE." (files->etc-directory (service-parameters service))) @@ -294,6 +382,12 @@ ACTIVATION-SCRIPT-TYPE." (define (files->etc-directory files) (file-union "etc" files)) +(define (etc-entry files) + "Return an entry for the /etc directory consisting of FILES in the system +directory." + (with-monad %store-monad + (return `(("etc" ,(files->etc-directory files)))))) + (define etc-service-type (service-type (name 'etc) (extensions @@ -302,7 +396,8 @@ ACTIVATION-SCRIPT-TYPE." (lambda (files) (let ((etc (files->etc-directory files))) - #~(activate-etc #$etc)))))) + #~(activate-etc #$etc)))) + (service-extension system-service-type etc-entry))) (compose concatenate) (extend append))) @@ -321,6 +416,23 @@ FILES must be a list of name/file-like object pairs." (compose concatenate) (extend append))) +(define (packages->profile-entry packages) + "Return a system entry for the profile containing PACKAGES." + (mlet %store-monad ((profile (profile-derivation + (manifest (map package->manifest-entry + (delete-duplicates packages eq?)))))) + (return `(("profile" ,profile))))) + +(define profile-service-type + ;; The service that populates the system's profile---i.e., + ;; /run/current-system/profile. It is extended by package lists. + (service-type (name 'profile) + (extensions + (list (service-extension system-service-type + packages->profile-entry))) + (compose concatenate) + (extend append))) + (define (firmware->activation-gexp firmware) "Return a gexp to make the packages listed in FIRMWARE loadable by the kernel." @@ -393,7 +505,8 @@ kernel." (lambda (node) (reverse (vhash-foldq* cons '() node edges))))) -(define* (fold-services services #:key (target-type boot-service-type)) +(define* (fold-services services + #:key (target-type system-service-type)) "Fold SERVICES by propagating their extensions down to the root of type TARGET-TYPE; return the root service adjusted accordingly." (define dependents diff --git a/gnu/services/avahi.scm b/gnu/services/avahi.scm index 18131fe561..49a737f090 100644 --- a/gnu/services/avahi.scm +++ b/gnu/services/avahi.scm @@ -107,19 +107,24 @@ (stop #~(make-kill-destructor)))))) (define avahi-service-type - (service-type (name 'avahi) - (extensions - (list (service-extension dmd-root-service-type - avahi-dmd-service) - (service-extension dbus-root-service-type - (compose list - avahi-configuration-avahi)) - (service-extension account-service-type - (const %avahi-accounts)) - (service-extension activation-service-type - (const %avahi-activation)) - (service-extension nscd-service-type - (const (list nss-mdns))))))) + (let ((avahi-package (compose list avahi-configuration-avahi))) + (service-type (name 'avahi) + (extensions + (list (service-extension dmd-root-service-type + avahi-dmd-service) + (service-extension dbus-root-service-type + avahi-package) + (service-extension account-service-type + (const %avahi-accounts)) + (service-extension activation-service-type + (const %avahi-activation)) + (service-extension nscd-service-type + (const (list nss-mdns))) + + ;; Provide 'avahi-browse', 'avahi-resolve', etc. in + ;; the system profile. + (service-extension profile-service-type + avahi-package)))))) (define* (avahi-service #:key (avahi avahi) host-name @@ -132,7 +137,9 @@ mDNS/DNS-SD responder that allows for service discovery and \"zero-configuration\" host name lookups (see @uref{http://avahi.org/}), and extends the name service cache daemon (nscd) so that it can resolve @code{.local} host names using -@uref{http://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}. +@uref{http://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}. Additionally, +add the @var{avahi} package to the system profile so that commands such as +@command{avahi-browse} are directly usable. If @var{host-name} is different from @code{#f}, use that as the host name to publish for this machine; otherwise, use the machine's actual host name. diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 336cc4dec9..a86e8e04c7 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,12 +24,12 @@ #:use-module (gnu services) #:use-module (gnu services dmd) #:use-module (gnu services networking) + #:use-module (gnu system pam) #:use-module (gnu system shadow) ; 'user-account', etc. - #:use-module (gnu system linux) ; 'pam-service', etc. #:use-module (gnu system file-systems) ; 'file-system', etc. #:use-module (gnu packages admin) #:use-module ((gnu packages linux) - #:select (eudev kbd e2fsprogs lvm2 fuse alsa-utils crda)) + #:select (eudev kbd e2fsprogs lvm2 fuse alsa-utils crda gpm)) #:use-module ((gnu packages base) #:select (canonical-package glibc)) #:use-module (gnu packages package-management) @@ -48,15 +49,23 @@ device-mapping-service swap-service user-processes-service + session-environment-service + session-environment-service-type host-name-service console-keymap-service console-font-service + + udev-configuration + udev-configuration? + udev-configuration-rules udev-service-type udev-service + udev-rule mingetty-configuration mingetty-configuration? mingetty-service + mingetty-service-type %nscd-default-caches %nscd-default-configuration @@ -74,6 +83,13 @@ guix-configuration guix-configuration? guix-service + guix-service-type + guix-publish-configuration + guix-publish-configuration? + guix-publish-service + guix-publish-service-type + gpm-service-type + gpm-service %base-services)) @@ -142,6 +158,18 @@ FILE-SYSTEM." (symbol-append 'file-system- (string->symbol (file-system-mount-point file-system)))) +(define (mapped-device->dmd-service-name md) + "Return the symbol that denotes the dmd service of MD, a <mapped-device>." + (symbol-append 'device-mapping- + (string->symbol (mapped-device-target md)))) + +(define dependency->dmd-service-name + (match-lambda + ((? mapped-device? md) + (mapped-device->dmd-service-name md)) + ((? file-system? fs) + (file-system->dmd-service-name fs)))) + (define file-system-service-type ;; TODO(?): Make this an extensible service that takes <file-system> objects ;; and returns a list of <dmd-service>. @@ -158,7 +186,7 @@ FILE-SYSTEM." (dmd-service (provision (list (file-system->dmd-service-name file-system))) (requirement `(root-file-system - ,@(map file-system->dmd-service-name dependencies))) + ,@(map dependency->dmd-service-name dependencies))) (documentation "Check, mount, and unmount the given file system.") (start #~(lambda args ;; FIXME: Use or factorize with 'mount-file-system'. @@ -198,7 +226,14 @@ FILE-SYSTEM." (chdir "/") (umount #$target) - #f))))))) + #f)) + + ;; We need an additional module. + (modules `(((gnu build file-systems) + #:select (check-file-system canonicalize-device-spec)) + ,@%default-modules)) + (imported-modules `((gnu build file-systems) + ,@%default-imported-modules))))))) (define* (file-system-service file-system) "Return a service that mounts @var{file-system}, a @code{<file-system>} @@ -336,6 +371,39 @@ stopped before 'kill' is called." ;;; +;;; System-wide environment variables. +;;; + +(define (environment-variables->environment-file vars) + "Return a file for pam_env(8) that contains environment variables VARS." + (apply mixed-text-file "environment" + (append-map (match-lambda + ((key . value) + (list key "=" value "\n"))) + vars))) + +(define session-environment-service-type + (service-type + (name 'session-environment) + (extensions + (list (service-extension + etc-service-type + (lambda (vars) + (list `("environment" + ,(environment-variables->environment-file vars))))))) + (compose concatenate) + (extend append))) + +(define (session-environment-service vars) + "Return a service that builds the @file{/etc/environment}, which can be read +by PAM-aware applications to set environment variables for sessions. + +VARS should be an association list in which both the keys and the values are +strings or string-valued gexps." + (service session-environment-service-type vars)) + + +;;; ;;; Console & co. ;;; @@ -691,6 +759,11 @@ If configuration file name @var{config-file} is not specified, use some reasonable default settings." (service syslog-service-type config-file)) + +;;; +;;; Guix services. +;;; + (define* (guix-build-accounts count #:key (group "guixbuild") (first-uid 30001) @@ -751,6 +824,8 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) (default #t)) (use-substitutes? guix-configuration-use-substitutes? ;Boolean (default #t)) + (substitute-urls guix-configuration-substitute-urls ;list of strings + (default %default-substitute-urls)) (extra-options guix-configuration-extra-options ;list of strings (default '())) (lsof guix-configuration-lsof ;<package> @@ -765,7 +840,8 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) "Return a <dmd-service> for the Guix daemon service with CONFIG." (match config (($ <guix-configuration> guix build-group build-accounts authorize-key? - use-substitutes? extra-options lsof lsh) + use-substitutes? substitute-urls extra-options + lsof lsh) (list (dmd-service (documentation "Run the Guix daemon.") (provision '(guix-daemon)) @@ -777,6 +853,7 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) #$@(if use-substitutes? '() '("--no-substitutes")) + "--substitute-urls" #$(string-join substitute-urls) #$@extra-options) ;; Add 'lsof' (for the GC) and 'lsh' (for offloading) to the @@ -824,6 +901,58 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) @var{config}." (service guix-service-type config)) + +(define-record-type* <guix-publish-configuration> + guix-publish-configuration make-guix-publish-configuration + guix-publish-configuration? + (guix guix-publish-configuration-guix ;package + (default guix)) + (port guix-publish-configuration-port ;number + (default 80)) + (host guix-publish-configuration-host ;string + (default "localhost"))) + +(define guix-publish-dmd-service + (match-lambda + (($ <guix-publish-configuration> guix port host) + (list (dmd-service + (provision '(guix-publish)) + (requirement '(guix-daemon)) + (start #~(make-forkexec-constructor + (list (string-append #$guix "/bin/guix") + "publish" "-u" "guix-publish" + "-p" #$(number->string port) + (string-append "--listen=" #$host)))) + (stop #~(make-kill-destructor))))))) + +(define %guix-publish-accounts + (list (user-group (name "guix-publish") (system? #t)) + (user-account + (name "guix-publish") + (group "guix-publish") + (system? #t) + (comment "guix publish user") + (home-directory "/var/empty") + (shell #~(string-append #$shadow "/sbin/nologin"))))) + +(define guix-publish-service-type + (service-type (name 'guix-publish) + (extensions + (list (service-extension dmd-root-service-type + guix-publish-dmd-service) + (service-extension account-service-type + (const %guix-publish-accounts)))))) + +(define* (guix-publish-service #:key (guix guix) (port 80) (host "localhost")) + "Return a service that runs @command{guix publish} listening on @var{host} +and @var{port} (@pxref{Invoking guix publish}). + +This assumes that @file{/etc/guix} already contains a signing key pair as +created by @command{guix archive --generate-key} (@pxref{Invoking guix +archive}). If that is not the case, the service will fail to start." + (service guix-publish-service-type + (guix-publish-configuration (guix guix) (port port) (host host)))) + ;;; ;;; Udev. @@ -864,12 +993,9 @@ item of @var{packages}." #:modules '((guix build union) (guix build utils)))) -(define* (kvm-udev-rule) - "Return a directory with a udev rule that changes the group of -@file{/dev/kvm} to \"kvm\" and makes it #o660." - ;; Apparently QEMU-KVM used to ship this rule, but now we have to add it by - ;; ourselves. - (computed-file "kvm-udev-rules" +(define (udev-rule file-name contents) + "Return a directory with a udev rule file FILE-NAME containing CONTENTS." + (computed-file file-name #~(begin (use-modules (guix build utils)) @@ -878,20 +1004,26 @@ item of @var{packages}." (mkdir-p rules.d) (call-with-output-file - (string-append rules.d "/90-kvm.rules") + (string-append rules.d "/" #$file-name) (lambda (port) - ;; Build users are part of the "kvm" group, so we - ;; can fearlessly make /dev/kvm 660 (see - ;; <http://bugs.gnu.org/18994>, for background.) - (display "\ -KERNEL==\"kvm\", GROUP=\"kvm\", MODE=\"0660\"\n" port)))) + (display #$contents port)))) #:modules '((guix build utils)))) +(define kvm-udev-rule + ;; Return a directory with a udev rule that changes the group of /dev/kvm to + ;; "kvm" and makes it #o660. Apparently QEMU-KVM used to ship this rule, + ;; but now we have to add it by ourselves. + + ;; Build users are part of the "kvm" group, so we can fearlessly make + ;; /dev/kvm 660 (see <http://bugs.gnu.org/18994>, for background.) + (udev-rule "90-kvm.rules" + "KERNEL==\"kvm\", GROUP=\"kvm\", MODE=\"0660\"\n")) + (define udev-dmd-service ;; Return a <dmd-service> for UDEV with RULES. (match-lambda (($ <udev-configuration> udev rules) - (let* ((rules (udev-rules-union (cons* udev (kvm-udev-rule) rules))) + (let* ((rules (udev-rules-union (cons* udev kvm-udev-rule rules))) (udev.conf (computed-file "udev.conf" #~(call-with-output-file #$output (lambda (port) @@ -1034,6 +1166,60 @@ gexp, to open it, and evaluate @var{close} to close it." "Return a service that uses @var{device} as a swap device." (service swap-service-type device)) + +(define-record-type* <gpm-configuration> + gpm-configuration make-gpm-configuration gpm-configuration? + (gpm gpm-configuration-gpm) ;package + (options gpm-configuration-options)) ;list of strings + +(define gpm-dmd-service + (match-lambda + (($ <gpm-configuration> gpm options) + (list (dmd-service + (requirement '(udev)) + (provision '(gpm)) + (start #~(lambda () + ;; 'gpm' runs in the background and sets a PID file. + ;; Note that it requires running as "root". + (false-if-exception (delete-file "/var/run/gpm.pid")) + (fork+exec-command (list (string-append #$gpm "/sbin/gpm") + #$@options)) + + ;; Wait for the PID file to appear; declare failure if + ;; it doesn't show up. + (let loop ((i 3)) + (or (file-exists? "/var/run/gpm.pid") + (if (zero? i) + #f + (begin + (sleep 1) + (loop (1- i)))))))) + + (stop #~(lambda (_) + ;; Return #f if successfully stopped. + (not (zero? (system* (string-append #$gpm "/sbin/gpm") + "-k")))))))))) + +(define gpm-service-type + (service-type (name 'gpm) + (extensions + (list (service-extension dmd-root-service-type + gpm-dmd-service))))) + +(define* (gpm-service #:key (gpm gpm) + (options '("-m" "/dev/input/mice" "-t" "ps2"))) + "Run @var{gpm}, the general-purpose mouse daemon, with the given +command-line @var{options}. GPM allows users to use the mouse in the console, +notably to select, copy, and paste text. The default value of @var{options} +uses the @code{ps2} protocol, which works for both USB and PS/2 mice. + +This service is not part of @var{%base-services}." + ;; To test in QEMU, use "-usbdevice mouse" and then, in the monitor, use + ;; "info mice" and "mouse_set X" to use the right mouse. + (service gpm-service-type + (gpm-configuration (gpm gpm) (options options)))) + + (define %base-services ;; Convenience variable holding the basic services. (let ((motd (plain-file "motd" " diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm index e4ecd961c5..9b0d198683 100644 --- a/gnu/services/dbus.scm +++ b/gnu/services/dbus.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,7 +21,7 @@ #:use-module (gnu services) #:use-module (gnu services dmd) #:use-module (gnu system shadow) - #:use-module (gnu packages glib) + #:use-module ((gnu packages glib) #:select (dbus/activation)) #:use-module (gnu packages admin) #:use-module (guix gexp) #:use-module (guix records) @@ -37,13 +38,38 @@ dbus-configuration make-dbus-configuration dbus-configuration? (dbus dbus-configuration-dbus ;<package> - (default dbus)) + (default dbus/activation)) (services dbus-configuration-services ;list of <package> (default '()))) -(define (dbus-configuration-directory dbus services) - "Return a configuration directory for @var{dbus} that includes the -@code{etc/dbus-1/system.d} directories of each package listed in +(define (system-service-directory services) + "Return the system service directory, containing @code{.service} files for +all the services that may be activated by the daemon." + (computed-file "dbus-system-services" + #~(begin + (use-modules (guix build utils) + (srfi srfi-1)) + + (define files + (append-map (lambda (service) + (find-files (string-append + service + "/share/dbus-1/system-services") + "\\.service$")) + (list #$@services))) + + (mkdir #$output) + (for-each (lambda (file) + (symlink file + (string-append #$output "/" + (basename file)))) + files) + #t) + #:modules '((guix build utils)))) + +(define (dbus-configuration-directory services) + "Return a directory contains the @code{system-local.conf} file for DBUS that +includes the @code{etc/dbus-1/system.d} directories of each package listed in @var{services}." (define build #~(begin @@ -53,24 +79,27 @@ (define (services->sxml services) ;; Return the SXML 'includedir' clauses for DIRS. `(busconfig + (servicehelper "/run/setuid-programs/dbus-daemon-launch-helper") + + ;; First, the '.service' files of services subject to activation. + ;; We use a fixed location under /etc because the setuid helper + ;; looks for them in that location and nowhere else. See + ;; <https://bugs.freedesktop.org/show_bug.cgi?id=92458>. + (servicedir "/etc/dbus-1/system-services") + ,@(append-map (lambda (dir) `((includedir ,(string-append dir "/etc/dbus-1/system.d")) - (servicedir ;for '.service' files - ,(string-append dir "/share/dbus-1/services")) - (servicedir ;likewise, for auto-activation - ,(string-append - dir - "/share/dbus-1/system-services")))) + (servicedir ;for '.service' files + ,(string-append dir "/share/dbus-1/services")))) services))) (mkdir #$output) - (copy-file (string-append #$dbus "/etc/dbus-1/system.conf") - (string-append #$output "/system.conf")) - ;; The default 'system.conf' has an <includedir> clause for - ;; 'system.d', so create it. - (mkdir (string-append #$output "/system.d")) + ;; Provide /etc/dbus-1/system-services, which is where the setuid + ;; helper looks for system service files. + (symlink #$(system-service-directory services) + (string-append #$output "/system-services")) ;; 'system-local.conf' is automatically included by the default ;; 'system.conf', so this is where we stuff our own things. @@ -81,6 +110,12 @@ (computed-file "dbus-configuration" build)) +(define (dbus-etc-files config) + "Return a list of FILES for @var{etc-service-type} to build the +@code{/etc/dbus-1} directory." + (list `("dbus-1" ,(dbus-configuration-directory + (dbus-configuration-services config))))) + (define %dbus-accounts ;; Accounts used by the system bus. (list (user-group (name "messagebus") (system? #t)) @@ -92,6 +127,12 @@ (home-directory "/var/run/dbus") (shell #~(string-append #$shadow "/sbin/nologin"))))) +(define dbus-setuid-programs + ;; Return the file name of the setuid program that we need. + (match-lambda + (($ <dbus-configuration> dbus services) + (list #~(string-append #$dbus "/libexec/dbus-daemon-launch-helper"))))) + (define (dbus-activation config) "Return an activation gexp for D-Bus using @var{config}." #~(begin @@ -120,18 +161,15 @@ (define dbus-dmd-service (match-lambda - (($ <dbus-configuration> dbus services) - (let ((conf (dbus-configuration-directory dbus services))) - (list (dmd-service - (documentation "Run the D-Bus system daemon.") - (provision '(dbus-system)) - (requirement '(user-processes)) - (start #~(make-forkexec-constructor - (list (string-append #$dbus "/bin/dbus-daemon") - "--nofork" - (string-append "--config-file=" #$conf - "/system.conf")))) - (stop #~(make-kill-destructor)))))))) + (($ <dbus-configuration> dbus) + (list (dmd-service + (documentation "Run the D-Bus system daemon.") + (provision '(dbus-system)) + (requirement '(user-processes)) + (start #~(make-forkexec-constructor + (list (string-append #$dbus "/bin/dbus-daemon") + "--nofork" "--system"))) + (stop #~(make-kill-destructor))))))) (define dbus-root-service-type (service-type (name 'dbus) @@ -140,14 +178,15 @@ dbus-dmd-service) (service-extension activation-service-type dbus-activation) + (service-extension etc-service-type + dbus-etc-files) (service-extension account-service-type - (const %dbus-accounts)))) + (const %dbus-accounts)) + (service-extension setuid-program-service-type + dbus-setuid-programs))) ;; Extensions consist of lists of packages (representing D-Bus ;; services) that we just concatenate. - ;; - ;; FIXME: We need 'dbus-daemon-launch-helper' to be - ;; setuid-root for auto-activation to work. (compose concatenate) ;; The service's parameters field is extended by augmenting @@ -159,7 +198,7 @@ (append (dbus-configuration-services config) services))))))) -(define* (dbus-service #:key (dbus dbus) (services '())) +(define* (dbus-service #:key (dbus dbus/activation) (services '())) "Return a service that runs the \"system bus\", using @var{dbus}, with support for @var{services}. diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 69edc6d9bb..694a8eda7e 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -27,13 +27,15 @@ #:use-module (gnu services xorg) #:use-module (gnu services networking) #:use-module (gnu system shadow) - #:use-module (gnu system linux) ; unix-pam-service + #:use-module (gnu system pam) #:use-module (gnu packages glib) #:use-module (gnu packages admin) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gnome) #:use-module (gnu packages avahi) #:use-module (gnu packages polkit) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages suckless) #:use-module (guix records) #:use-module (guix packages) #:use-module (guix store) @@ -41,6 +43,7 @@ #:use-module (srfi srfi-1) #:use-module (ice-9 match) #:export (upower-service + udisks-service colord-service geoclue-application %standard-geoclue-applications @@ -224,65 +227,6 @@ levels, with the given configuration settings. It implements the ;;; -;;; Colord D-Bus service. -;;; - -(define %colord-activation - #~(begin - (use-modules (guix build utils)) - (mkdir-p "/var/lib/colord") - (let ((user (getpwnam "colord"))) - (chown "/var/lib/colord" - (passwd:uid user) (passwd:gid user))))) - -(define %colord-accounts - (list (user-group (name "colord") (system? #t)) - (user-account - (name "colord") - (group "colord") - (system? #t) - (comment "colord daemon user") - (home-directory "/var/empty") - (shell #~(string-append #$shadow "/sbin/nologin"))))) - -(define (colord-dmd-service colord) - "Return a dmd service for COLORD." - ;; TODO: Remove when D-Bus activation works. - (list (dmd-service - (documentation "Run the colord color management service.") - (provision '(colord-daemon)) - (requirement '(dbus-system udev)) - (start #~(make-forkexec-constructor - (list (string-append #$colord "/libexec/colord")))) - (stop #~(make-kill-destructor))))) - -(define colord-service-type - (service-type (name 'colord) - (extensions - (list (service-extension account-service-type - (const %colord-accounts)) - (service-extension activation-service-type - (const %colord-activation)) - (service-extension dmd-root-service-type - colord-dmd-service) - - ;; Colord is a D-Bus service that dbus-daemon can - ;; activate. - (service-extension dbus-root-service-type list) - - ;; Colord provides "color device" rules for udev. - (service-extension udev-service-type list))))) - -(define* (colord-service #:key (colord colord)) - "Return a service that runs @command{colord}, a system service with a D-Bus -interface to manage the color profiles of input and output devices such as -screens and scanners. It is notably used by the GNOME Color Manager graphical -tool. See @uref{http://www.freedesktop.org/software/colord/, the colord web -site} for more information." - (service colord-service-type colord)) - - -;;; ;;; GeoClue D-Bus service. ;;; @@ -343,23 +287,6 @@ users are allowed." "GEOCLUE_CONFIG_FILE" (geoclue-configuration-file config)))) -(define (geoclue-dmd-service config) - "Return a GeoClue dmd service for CONFIG." - ;; TODO: Remove when D-Bus activation works. - (let ((geoclue (geoclue-configuration-geoclue config)) - (config (geoclue-configuration-file config))) - (list (dmd-service - (documentation "Run the GeoClue location service.") - (provision '(geoclue-daemon)) - (requirement '(dbus-system)) - - (start #~(make-forkexec-constructor - (list (string-append #$geoclue "/libexec/geoclue")) - #:user "geoclue" - #:environment-variables - (list (string-append "GEOCLUE_CONFIG_FILE=" #$config)))) - (stop #~(make-kill-destructor)))))) - (define %geoclue-accounts (list (user-group (name "geoclue") (system? #t)) (user-account @@ -375,8 +302,6 @@ users are allowed." (extensions (list (service-extension dbus-root-service-type geoclue-dbus-service) - (service-extension dmd-root-service-type - geoclue-dmd-service) (service-extension account-service-type (const %geoclue-accounts)))))) @@ -413,6 +338,14 @@ site} for more information." ;;; Polkit privilege management service. ;;; +(define-record-type* <polkit-configuration> + polkit-configuration make-polkit-configuration + polkit-configuration? + (polkit polkit-configuration-polkit ;<package> + (default polkit)) + (actions polkit-configuration-actions ;list of <package> + (default '()))) + (define %polkit-accounts (list (user-group (name "polkitd") (system? #t)) (user-account @@ -424,23 +357,34 @@ site} for more information." (shell "/run/current-system/profile/sbin/nologin")))) (define %polkit-pam-services - (list (unix-pam-service "polkitd"))) + (list (unix-pam-service "polkit-1"))) -(define (polkit-dmd-service polkit) - "Return the <dmd-service> for POLKIT." - ;; TODO: Remove when D-Bus activation works. - (list (dmd-service - (documentation "Run the polkit privilege management service.") - (provision '(polkit-daemon)) - (requirement '(dbus-system)) +(define (polkit-directory packages) + "Return a directory containing an @file{actions} and possibly a +@file{rules.d} sub-directory, for use as @file{/etc/polkit-1}." + (computed-file "etc-polkit-1" + #~(begin + (use-modules (guix build union) (srfi srfi-26)) + + (union-build #$output + (map (cut string-append <> + "/share/polkit-1") + (list #$@packages)))) + #:modules '((guix build union)))) - (start #~(make-forkexec-constructor - (list (string-append #$polkit "/lib/polkit-1/polkitd")))) - (stop #~(make-kill-destructor))))) +(define polkit-etc-files + (match-lambda + (($ <polkit-configuration> polkit packages) + `(("polkit-1" ,(polkit-directory packages)))))) + +(define polkit-setuid-programs + (match-lambda + (($ <polkit-configuration> polkit) + (list #~(string-append #$polkit + "/lib/polkit-1/polkit-agent-helper-1") + #~(string-append #$polkit "/bin/pkexec"))))) (define polkit-service-type - ;; TODO: Make it extensible so it can collect policy files from other - ;; services. (service-type (name 'polkit) (extensions (list (service-extension account-service-type @@ -448,17 +392,118 @@ site} for more information." (service-extension pam-root-service-type (const %polkit-pam-services)) (service-extension dbus-root-service-type - list) - (service-extension dmd-root-service-type - polkit-dmd-service))))) + (compose + list + polkit-configuration-polkit)) + (service-extension etc-service-type + polkit-etc-files) + (service-extension setuid-program-service-type + polkit-setuid-programs))) + + ;; Extensions are lists of packages that provide polkit rules + ;; or actions under share/polkit-1/{actions,rules.d}. + (compose concatenate) + (extend (lambda (config actions) + (polkit-configuration + (inherit config) + (actions + (append (polkit-configuration-actions config) + actions))))))) (define* (polkit-service #:key (polkit polkit)) - "Return a service that runs the @command{polkit} privilege management -service. By querying the @command{polkit} service, a privileged system -component can know when it should grant additional capabilities to ordinary -users. For example, an ordinary user can be granted the capability to suspend -the system if the user is logged in locally." - (service polkit-service-type polkit)) + "Return a service that runs the +@uref{http://www.freedesktop.org/wiki/Software/polkit/, Polkit privilege +management service}, which allows system administrators to grant access to +privileged operations in a structured way. By querying the Polkit service, a +privileged system component can know when it should grant additional +capabilities to ordinary users. For example, an ordinary user can be granted +the capability to suspend the system if the user is logged in locally." + (service polkit-service-type + (polkit-configuration (polkit polkit)))) + + +;;; +;;; Colord D-Bus service. +;;; + +(define %colord-activation + #~(begin + (use-modules (guix build utils)) + (mkdir-p "/var/lib/colord") + (let ((user (getpwnam "colord"))) + (chown "/var/lib/colord" + (passwd:uid user) (passwd:gid user))))) + +(define %colord-accounts + (list (user-group (name "colord") (system? #t)) + (user-account + (name "colord") + (group "colord") + (system? #t) + (comment "colord daemon user") + (home-directory "/var/empty") + (shell #~(string-append #$shadow "/sbin/nologin"))))) + +(define colord-service-type + (service-type (name 'colord) + (extensions + (list (service-extension account-service-type + (const %colord-accounts)) + (service-extension activation-service-type + (const %colord-activation)) + + ;; Colord is a D-Bus service that dbus-daemon can + ;; activate. + (service-extension dbus-root-service-type list) + + ;; Colord provides "color device" rules for udev. + (service-extension udev-service-type list) + + ;; It provides polkit "actions". + (service-extension polkit-service-type list))))) + +(define* (colord-service #:key (colord colord)) + "Return a service that runs @command{colord}, a system service with a D-Bus +interface to manage the color profiles of input and output devices such as +screens and scanners. It is notably used by the GNOME Color Manager graphical +tool. See @uref{http://www.freedesktop.org/software/colord/, the colord web +site} for more information." + (service colord-service-type colord)) + + +;;; +;;; UDisks. +;;; + +(define-record-type* <udisks-configuration> + udisks-configuration make-udisks-configuration + udisks-configuration? + (udisks udisks-configuration-udisks + (default udisks))) + +(define udisks-service-type + (let ((udisks-package (lambda (config) + (list (udisks-configuration-udisks config))))) + (service-type (name 'udisks) + (extensions + (list (service-extension polkit-service-type + udisks-package) + (service-extension dbus-root-service-type + udisks-package) + (service-extension udev-service-type + udisks-package) + + ;; Profile 'udisksctl' & co. in the system profile. + (service-extension profile-service-type + udisks-package)))))) + +(define* (udisks-service #:key (udisks udisks)) + "Return a service for @uref{http://udisks.freedesktop.org/docs/latest/, +UDisks}, a @dfn{disk management} daemon that provides user interfaces with +notifications and ways to mount/unmount disks. Programs that talk to UDisks +include the @command{udisksctl} command, part of UDisks, and GNOME Disks." + (service udisks-service-type + (udisks-configuration (udisks udisks)))) ;;; @@ -601,6 +646,8 @@ the system if the user is logged in locally." (define (elogind-dmd-service config) "Return a dmd service for elogind, using @var{config}." + ;; TODO: We could probably rely on service activation but the '.service' + ;; file currently contains an erroneous 'Exec' line. (let ((config-file (elogind-configuration-file config)) (elogind (elogind-package config))) (list (dmd-service @@ -623,7 +670,9 @@ the system if the user is logged in locally." (compose list elogind-package)) (service-extension udev-service-type (compose list elogind-package)) - ;; TODO: Extend polkit(?) and PAM. + (service-extension polkit-service-type + (compose list elogind-package)) + ;; TODO: Extend PAM with pam_elogind.so. )))) (define* (elogind-service #:key (config (elogind-configuration))) @@ -643,9 +692,14 @@ when they log out." ;; List of services typically useful for a "desktop" use case. (cons* (slim-service) + ;; Screen lockers are a pretty useful thing and these are small. + (screen-locker-service slock) + (screen-locker-service xlockmore "xlock") + ;; The D-Bus clique. (avahi-service) (wicd-service) + (udisks-service) (upower-service) (colord-service) (geoclue-service) diff --git a/gnu/services/dmd.scm b/gnu/services/dmd.scm index e87b9e4415..545087acc9 100644 --- a/gnu/services/dmd.scm +++ b/gnu/services/dmd.scm @@ -45,6 +45,11 @@ dmd-service-start dmd-service-stop dmd-service-auto-start? + dmd-service-modules + dmd-service-imported-modules + + %default-imported-modules + %default-modules dmd-service-back-edges)) @@ -99,6 +104,18 @@ service that extends DMD-ROOT-SERVICE-TYPE and nothing else." (list (service-extension dmd-root-service-type (compose list proc)))))) +(define %default-imported-modules + ;; Default set of modules imported for a service's consumption. + '((guix build utils) + (guix build syscalls))) + +(define %default-modules + ;; Default set of modules visible in a service's file. + `((dmd service) + (oop goops) + (guix build utils) + (guix build syscalls))) + (define-record-type* <dmd-service> dmd-service make-dmd-service dmd-service? @@ -113,64 +130,106 @@ service that extends DMD-ROOT-SERVICE-TYPE and nothing else." (stop dmd-service-stop ;g-expression (procedure) (default #~(const #f))) (auto-start? dmd-service-auto-start? ;Boolean - (default #t))) + (default #t)) + (modules dmd-service-modules ;list of module names + (default %default-modules)) + (imported-modules dmd-service-imported-modules ;list of module names + (default %default-imported-modules))) -(define (assert-no-duplicates services) - "Raise an error if SERVICES provide the same dmd service more than once. +(define (assert-valid-graph services) + "Raise an error if SERVICES does not define a valid dmd service graph, for +instance if a service requires a nonexistent service, or if more than one +service uses a given name. -This is a constraint that dmd's 'register-service' verifies but we'd better -verify it here statically than wait until PID 1 halts with an assertion +These are constraints that dmd's 'register-service' verifies but we'd better +verify them here statically than wait until PID 1 halts with an assertion failure." - (fold (lambda (service set) - (define (assert-unique symbol) - (when (set-contains? set symbol) - (raise (condition - (&message - (message - (format #f (_ "service '~a' provided more than once") - symbol))))))) - - (for-each assert-unique (dmd-service-provision service)) - (fold set-insert set (dmd-service-provision service))) - (setq) - services)) + (define provisions + ;; The set of provisions (symbols). Bail out if a symbol is given more + ;; than once. + (fold (lambda (service set) + (define (assert-unique symbol) + (when (set-contains? set symbol) + (raise (condition + (&message + (message + (format #f (_ "service '~a' provided more than once") + symbol))))))) + + (for-each assert-unique (dmd-service-provision service)) + (fold set-insert set (dmd-service-provision service))) + (setq 'dmd) + services)) + + (define (assert-satisfied-requirements service) + ;; Bail out if the requirements of SERVICE aren't satisfied. + (for-each (lambda (requirement) + (unless (set-contains? provisions requirement) + (raise (condition + (&message + (message + (format #f (_ "service '~a' requires '~a', \ +which is undefined") + (match (dmd-service-provision service) + ((head . _) head) + (_ service)) + requirement))))))) + (dmd-service-requirement service))) + + (for-each assert-satisfied-requirements services)) + +(define (dmd-service-file-name service) + "Return the file name where the initialization code for SERVICE is to be +stored." + (let ((provisions (string-join (map symbol->string + (dmd-service-provision service))))) + (string-append "dmd-" + (string-map (match-lambda + (#\/ #\-) + (chr chr)) + provisions) + ".scm"))) + +(define (dmd-service-file service) + "Return a file defining SERVICE." + (gexp->file (dmd-service-file-name service) + #~(begin + (use-modules #$@(dmd-service-modules service)) + + (make <service> + #:docstring '#$(dmd-service-documentation service) + #:provides '#$(dmd-service-provision service) + #:requires '#$(dmd-service-requirement service) + #:respawn? '#$(dmd-service-respawn? service) + #:start #$(dmd-service-start service) + #:stop #$(dmd-service-stop service))))) (define (dmd-configuration-file services) "Return the dmd configuration file for SERVICES." (define modules - ;; Extra modules visible to dmd.conf. - '((guix build syscalls) - (gnu build file-systems) - (guix build utils))) + (delete-duplicates + (append-map dmd-service-imported-modules services))) - (assert-no-duplicates services) + (assert-valid-graph services) (mlet %store-monad ((modules (imported-modules modules)) - (compiled (compiled-modules modules))) + (compiled (compiled-modules modules)) + (files (mapm %store-monad dmd-service-file services))) (define config #~(begin (eval-when (expand load eval) (set! %load-path (cons #$modules %load-path)) (set! %load-compiled-path - (cons #$compiled %load-compiled-path))) - - (use-modules (ice-9 ftw) - (guix build syscalls) - (guix build utils) - ((gnu build file-systems) - #:select (check-file-system canonicalize-device-spec))) - - (register-services - #$@(map (lambda (service) - #~(make <service> - #:docstring '#$(dmd-service-documentation service) - #:provides '#$(dmd-service-provision service) - #:requires '#$(dmd-service-requirement service) - #:respawn? '#$(dmd-service-respawn? service) - #:start #$(dmd-service-start service) - #:stop #$(dmd-service-stop service))) - services)) + (cons #$compiled %load-compiled-path))) + + (use-modules (system repl error-handling)) + + ;; Arrange to spawn a REPL if loading one of FILES fails. This is + ;; better than a kernel panic. + (call-with-error-handling + (lambda () + (apply register-services (map primitive-load '#$files)))) ;; guix-daemon 0.6 aborts if 'PATH' is undefined, so work around it. (setenv "PATH" "/run/current-system/profile/bin") diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 003d5a5010..ce21b1d9ff 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -22,15 +22,18 @@ #:use-module (gnu services dmd) #:use-module (gnu services dbus) #:use-module (gnu system shadow) - #:use-module (gnu system linux) ;PAM + #:use-module (gnu system pam) #:use-module (gnu packages admin) #:use-module (gnu packages linux) #:use-module (gnu packages tor) #:use-module (gnu packages messaging) #:use-module (gnu packages ntp) #:use-module (gnu packages wicd) + #:use-module (gnu packages gnome) #:use-module (guix gexp) #:use-module (guix records) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) #:use-module (srfi srfi-26) #:use-module (ice-9 match) #:export (%facebook-host-aliases @@ -38,9 +41,11 @@ dhcp-client-service %ntp-servers ntp-service + tor-hidden-service tor-service bitlbee-service - wicd-service)) + wicd-service + network-manager-service)) ;;; Commentary: ;;; @@ -305,6 +310,15 @@ keep the system clock synchronized with that of @var{servers}." ;;; Tor. ;;; +(define-record-type* <tor-configuration> + tor-configuration make-tor-configuration + tor-configuration? + (tor tor-configuration-tor + (default tor)) + (config-file tor-configuration-config-file) + (hidden-services tor-configuration-hidden-services + (default '()))) + (define %tor-accounts ;; User account and groups for Tor. (list (user-group (name "tor") (system? #t)) @@ -316,20 +330,93 @@ keep the system clock synchronized with that of @var{servers}." (home-directory "/var/empty") (shell #~(string-append #$shadow "/sbin/nologin"))))) -(define (tor-dmd-service tor) +(define-record-type <hidden-service> + (hidden-service name mapping) + hidden-service? + (name hidden-service-name) ;string + (mapping hidden-service-mapping)) ;list of port/address tuples + +(define (tor-configuration->torrc config) + "Return a 'torrc' file for CONFIG." + (match config + (($ <tor-configuration> tor config-file services) + (computed-file + "torrc" + #~(begin + (use-modules (guix build utils) + (ice-9 match)) + + (call-with-output-file #$output + (lambda (port) + (display "\ +# The beginning was automatically added. +User tor +DataDirectory /var/lib/tor +Log notice syslog\n" port) + + (for-each (match-lambda + ((service (ports hosts) ...) + (format port "\ +HiddenServiceDir /var/lib/tor/hidden-services/~a~%" + service) + (for-each (lambda (tcp-port host) + (format port "\ +HiddenServicePort ~a ~a~%" + tcp-port host)) + ports hosts))) + '#$(map (match-lambda + (($ <hidden-service> name mapping) + (cons name mapping))) + services)) + + ;; Append the user's config file. + (call-with-input-file #$config-file + (lambda (input) + (dump-port input port))) + #t))) + #:modules '((guix build utils)))))) + +(define (tor-dmd-service config) "Return a <dmd-service> running TOR." - (let ((torrc (plain-file "torrc" "User tor\n"))) - (list (dmd-service - (provision '(tor)) + (match config + (($ <tor-configuration> tor) + (let ((torrc (tor-configuration->torrc config))) + (list (dmd-service + (provision '(tor)) + + ;; Tor needs at least one network interface to be up, hence the + ;; dependency on 'loopback'. + (requirement '(user-processes loopback syslogd)) + + (start #~(make-forkexec-constructor + (list (string-append #$tor "/bin/tor") "-f" #$torrc))) + (stop #~(make-kill-destructor)) + (documentation "Run the Tor anonymous network overlay."))))))) + +(define (tor-hidden-service-activation config) + "Return the activation gexp for SERVICES, a list of hidden services." + #~(begin + (use-modules (guix build utils)) + + (define %user + (getpw "tor")) - ;; Tor needs at least one network interface to be up, hence the - ;; dependency on 'loopback'. - (requirement '(user-processes loopback)) + (define (initialize service) + (let ((directory (string-append "/var/lib/tor/hidden-services/" + service))) + (mkdir-p directory) + (chown directory (passwd:uid %user) (passwd:gid %user)) - (start #~(make-forkexec-constructor - (list (string-append #$tor "/bin/tor") "-f" #$torrc))) - (stop #~(make-kill-destructor)) - (documentation "Run the Tor anonymous network overlay."))))) + ;; The daemon bails out if we give wider permissions. + (chmod directory #o700))) + + (mkdir-p "/var/lib/tor") + (chown "/var/lib/tor" (passwd:uid %user) (passwd:gid %user)) + (chmod "/var/lib/tor" #o700) + + (for-each initialize + '#$(map hidden-service-name + (tor-configuration-hidden-services config))))) (define tor-service-type (service-type (name 'tor) @@ -337,14 +424,59 @@ keep the system clock synchronized with that of @var{servers}." (list (service-extension dmd-root-service-type tor-dmd-service) (service-extension account-service-type - (const %tor-accounts)))))) + (const %tor-accounts)) + (service-extension activation-service-type + tor-hidden-service-activation))) + + ;; This can be extended with hidden services. + (compose concatenate) + (extend (lambda (config services) + (tor-configuration + (inherit config) + (hidden-services + (append (tor-configuration-hidden-services config) + services))))))) + +(define* (tor-service #:optional + (config-file (plain-file "empty" "")) + #:key (tor tor)) + "Return a service to run the @uref{https://torproject.org, Tor} anonymous +networking daemon. + +The daemon runs as the @code{tor} unprivileged user. It is passed +@var{config-file}, a file-like object, with an additional @code{User tor} line +and lines for hidden services added via @code{tor-hidden-service}. Run +@command{man tor} for information about the configuration file." + (service tor-service-type + (tor-configuration (tor tor) + (config-file config-file)))) + +(define tor-hidden-service-type + ;; A type that extends Tor with hidden services. + (service-type (name 'tor-hidden-service) + (extensions + (list (service-extension tor-service-type list))))) + +(define (tor-hidden-service name mapping) + "Define a new Tor @dfn{hidden service} called @var{name} and implementing +@var{mapping}. @var{mapping} is a list of port/host tuples, such as: -(define* (tor-service #:key (tor tor)) - "Return a service to run the @uref{https://torproject.org,Tor} daemon. +@example + '((22 \"127.0.0.1:22\") + (80 \"127.0.0.1:8080\")) +@end example -The daemon runs with the default settings (in particular the default exit -policy) as the @code{tor} unprivileged user." - (service tor-service-type tor)) +In this example, port 22 of the hidden service is mapped to local port 22, and +port 80 is mapped to local port 8080. + +This creates a @file{/var/lib/tor/hidden-services/@var{name}} directory, where +the @file{hostname} file contains the @code{.onion} host name for the hidden +service. + +See @uref{https://www.torproject.org/docs/tor-hidden-service.html.en, the Tor +project's documentation} for more information." + (service tor-hidden-service-type + (hidden-service name mapping))) ;;; @@ -466,11 +598,58 @@ configuration file." (service-extension dbus-root-service-type list) (service-extension activation-service-type - (const %wicd-activation)))))) + (const %wicd-activation)) + + ;; Add Wicd to the global profile. + (service-extension profile-service-type list))))) (define* (wicd-service #:key (wicd wicd)) "Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network -manager that aims to simplify wired and wireless networking." +management daemon that aims to simplify wired and wireless networking. + +This service adds the @var{wicd} package to the global profile, providing +several commands to interact with the daemon and configure networking: +@command{wicd-client}, a graphical user interface, and the @command{wicd-cli} +and @command{wicd-curses} user interfaces." (service wicd-service-type wicd)) + +;;; +;;; NetworkManager +;;; + +(define %network-manager-activation + ;; Activation gexp for NetworkManager. + #~(begin + (use-modules (guix build utils)) + (mkdir-p "/etc/NetworkManager/system-connections"))) + +(define (network-manager-dmd-service network-manager) + "Return a dmd service for NETWORK-MANAGER." + (list (dmd-service + (documentation "Run the NetworkManager.") + (provision '(networking)) + (requirement '(user-processes dbus-system loopback)) + (start #~(make-forkexec-constructor + (list (string-append #$network-manager + "/sbin/NetworkManager") + "--no-daemon"))) + (stop #~(make-kill-destructor))))) + +(define network-manager-service-type + (service-type (name 'network-manager) + (extensions + (list (service-extension dmd-root-service-type + network-manager-dmd-service) + (service-extension dbus-root-service-type list) + (service-extension activation-service-type + (const %network-manager-activation)) + ;; Add network-manager to the system profile. + (service-extension profile-service-type list))))) + +(define* (network-manager-service #:key (network-manager network-manager)) + "Return a service that runs NetworkManager, a network connection manager +that attempting to keep active network connectivity when available." + (service network-manager-service-type network-manager)) + ;;; networking.scm ends here diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index d3a6cfb33a..4b0380e8fd 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -21,8 +21,9 @@ #:use-module (guix records) #:use-module (gnu services) #:use-module (gnu services dmd) - #:use-module (gnu system linux) ; 'pam-service' + #:use-module (gnu system pam) #:use-module (gnu packages lsh) + #:use-module (srfi srfi-26) #:export (lsh-service)) ;;; Commentary: @@ -142,8 +143,8 @@ "--tcpip-forward" "--no-tcpip-forward") (if (null? interfaces) '() - (list (string-append "--interfaces=" - (string-join interfaces ","))))))) + (map (cut string-append "--interface=" <>) + interfaces))))) (define requires (if (and daemonic? (lsh-configuration-syslog-output? config)) diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index 3a57891a96..7fea6829d5 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -21,7 +21,7 @@ #:use-module (gnu artwork) #:use-module (gnu services) #:use-module (gnu services dmd) - #:use-module (gnu system linux) ; 'pam-service' + #:use-module (gnu system pam) #:use-module ((gnu packages base) #:select (canonical-package)) #:use-module (gnu packages guile) #:use-module (gnu packages xorg) @@ -32,16 +32,23 @@ #:use-module (gnu packages bash) #:use-module (guix gexp) #:use-module (guix store) + #:use-module (guix packages) #:use-module (guix derivations) #:use-module (guix records) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) #:use-module (srfi srfi-26) #:use-module (ice-9 match) #:export (xorg-configuration-file xorg-start-command %default-slim-theme %default-slim-theme-name - slim-service)) + slim-configuration + slim-service-type + slim-service + + screen-locker-service-type + screen-locker-service)) ;;; Commentary: ;;; @@ -304,7 +311,12 @@ reboot_cmd " dmd "/sbin/reboot\n" (list (service-extension dmd-root-service-type slim-dmd-service) (service-extension pam-root-service-type - slim-pam-service))))) + slim-pam-service) + + ;; Unconditionally add xterm to the system profile, to + ;; avoid bad surprises. + (service-extension profile-service-type + (const (list xterm))))))) (define* (slim-service #:key (slim slim) (allow-empty-passwords? #t) auto-login? @@ -350,4 +362,52 @@ theme." (auto-login-session auto-login-session) (startx startx)))) + +;;; +;;; Screen lockers & co. +;;; + +(define-record-type <screen-locker> + (screen-locker name program empty?) + screen-locker? + (name screen-locker-name) ;string + (program screen-locker-program) ;gexp + (empty? screen-locker-allows-empty-passwords?)) ;Boolean + +(define screen-locker-pam-services + (match-lambda + (($ <screen-locker> name _ empty?) + (list (unix-pam-service name + #:allow-empty-passwords? empty?))))) + +(define screen-locker-setuid-programs + (compose list screen-locker-program)) + +(define screen-locker-service-type + (service-type (name 'screen-locker) + (extensions + (list (service-extension pam-root-service-type + screen-locker-pam-services) + (service-extension setuid-program-service-type + screen-locker-setuid-programs))))) + +(define* (screen-locker-service package + #:optional + (program (package-name package)) + #:key allow-empty-passwords?) + "Add @var{package}, a package for a screen-locker or screen-saver whose +command is @var{program}, to the set of setuid programs and add a PAM entry +for it. For example: + +@lisp +(screen-locker-service xlockmore \"xlock\") +@end lisp + +makes the good ol' XlockMore usable." + (service screen-locker-service-type + (screen-locker program + #~(string-append #$package + #$(string-append "/bin/" program)) + allow-empty-passwords?))) + ;;; xorg.scm ends here diff --git a/gnu/system.scm b/gnu/system.scm index aa768824d9..ff981d95a2 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -50,7 +50,7 @@ #:use-module (gnu system shadow) #:use-module (gnu system nss) #:use-module (gnu system locale) - #:use-module (gnu system linux) + #:use-module (gnu system pam) #:use-module (gnu system linux-initrd) #:use-module (gnu system file-systems) #:use-module (ice-9 match) @@ -76,6 +76,7 @@ operating-system-timezone operating-system-locale operating-system-locale-definitions + operating-system-locale-libcs operating-system-mapped-devices operating-system-file-systems operating-system-activation-script @@ -144,6 +145,8 @@ (default "en_US.utf8")) (locale-definitions operating-system-locale-definitions ; list of <locale-definition> (default %default-locale-definitions)) + (locale-libcs operating-system-locale-libcs ; list of <packages> + (default %default-locale-libcs)) (name-service-switch operating-system-name-service-switch ; <name-service-switch> (default %default-nss)) @@ -195,19 +198,16 @@ as 'needed-for-boot'." (file-system-device fs))) (operating-system-mapped-devices os))) - (define (requirements fs) - ;; XXX: Fiddling with dmd service names is not nice. - (append (map (lambda (fs) - (symbol-append 'file-system- - (string->symbol - (file-system-mount-point fs)))) - (file-system-dependencies fs)) - (map (lambda (md) - (symbol-append 'device-mapping- - (string->symbol (mapped-device-target md)))) - (device-mappings fs)))) + (define (add-dependencies fs) + ;; Add the dependencies due to device mappings to FS. + (file-system + (inherit fs) + (dependencies + (delete-duplicates (append (device-mappings fs) + (file-system-dependencies fs)) + eq?)))) - (map file-system-service file-systems)) + (map (compose file-system-service add-dependencies) file-systems)) (define (mapped-device-user device file-systems) "Return a file system among FILE-SYSTEMS that uses DEVICE, or #f." @@ -254,6 +254,21 @@ from the initrd." "Return the list of swap services for OS." (map swap-service (operating-system-swap-devices os))) +(define* (operating-system-directory-base-entries os #:key container?) + "Return the basic entries of the 'system' directory of OS for use as the +value of the SYSTEM-SERVICE-TYPE service." + (mlet %store-monad ((locale (operating-system-locale-directory os))) + (if container? + (return `(("locale" ,locale))) + (mlet %store-monad + ((kernel -> (operating-system-kernel os)) + (initrd (operating-system-initrd-file os)) + (params (operating-system-parameters-file os))) + (return `(("kernel" ,kernel) + ("parameters" ,params) + ("initrd" ,initrd) + ("locale" ,locale))))))) ;used by libc + (define* (essential-services os #:key container?) "Return the list of essential services for OS. These are special services that implement part of what's declared in OS are responsible for low-level @@ -269,8 +284,11 @@ a container or that of a \"bare metal\" system." (swaps (swap-services os)) (procs (user-processes-service (map service-parameters other-fs))) - (host-name (host-name-service (operating-system-host-name os)))) - (cons* %boot-service + (host-name (host-name-service (operating-system-host-name os))) + (entries (operating-system-directory-base-entries + os #:container? container?))) + (cons* (service system-service-type entries) + %boot-service ;; %DMD-ROOT-SERVICE must come first so that the gexp that execs ;; dmd comes last in the boot script (XXX). @@ -281,16 +299,21 @@ a container or that of a \"bare metal\" system." (operating-system-groups os)) (operating-system-skeletons os)) (operating-system-etc-service os) + (session-environment-service + (operating-system-environment-variables os)) host-name procs root-fs unmount (service setuid-program-service-type (operating-system-setuid-programs os)) + (service profile-service-type + (operating-system-packages os)) (append other-fs mappings swaps ;; Add the firmware service, unless we are building for a ;; container. (if container? '() - (list (service firmware-service-type + (list %linux-bare-metal-service + (service firmware-service-type (operating-system-firmware os)))))))) (define* (operating-system-services os #:key container?) @@ -382,38 +405,11 @@ settings for 'guix.el' to work out-of-the-box." (chdir #$output) (symlink #$(emacs-site-file) "site-start.el")))) -(define (user-shells os) - "Return the list of all the shells used by the accounts of OS. These may be -gexps or strings." - (map user-account-shell (operating-system-accounts os))) - -(define (shells-file shells) - "Return a file-like object that builds a shell list for use as /etc/shells -based on SHELLS. /etc/shells is used by xterm, polkit, and other programs." - (computed-file "shells" - #~(begin - (use-modules (srfi srfi-1)) - - (define shells - (delete-duplicates (list #$@shells))) - - (call-with-output-file #$output - (lambda (port) - (display "\ -/bin/sh -/run/current-system/profile/bin/sh -/run/current-system/profile/bin/bash\n" port) - (for-each (lambda (shell) - (display shell port) - (newline port)) - shells)))))) - (define* (operating-system-etc-service os) "Return a <service> that builds containing the static part of the /etc directory." (let ((login.defs (plain-file "login.defs" "# Empty for now.\n")) - (shells (shells-file (user-shells os))) (emacs (emacs-site-directory)) (issue (plain-file "issue" (operating-system-issue os))) (nsswitch (plain-file "nsswitch.conf" @@ -423,18 +419,6 @@ directory." ;; Startup file for POSIX-compliant login shells, which set system-wide ;; environment variables. (profile (mixed-text-file "profile" "\ -export LANG=\"" (operating-system-locale os) "\" -export TZ=\"" (operating-system-timezone os) "\" -export TZDIR=\"" tzdata "/share/zoneinfo\" - -# Tell 'modprobe' & co. where to look for modules. -export LINUX_MODULE_DIRECTORY=/run/booted-system/kernel/lib/modules - -# These variables are honored by OpenSSL (libssl) and Git. -export SSL_CERT_DIR=/etc/ssl/certs -export SSL_CERT_FILE=\"$SSL_CERT_DIR/ca-certificates.crt\" -export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\" - # Crucial variables that could be missing in the profiles' 'etc/profile' # because they would require combining both profiles. # FIXME: See <http://bugs.gnu.org/20255>. @@ -464,13 +448,6 @@ else export PATH=\"$HOME/.guix-profile/bin:$PATH\" fi -# Append the directory of 'site-start.el' to the search path. -export EMACSLOADPATH=:/etc/emacs - -# By default, applications that use D-Bus, such as Emacs, abort at startup -# when /etc/machine-id is missing. Make sure these warnings are non-fatal. -export DBUS_FATAL_WARNINGS=0 - # Allow Aspell to find dictionaries installed in the user profile. export ASPELL_CONF=\"dict-dir $HOME/.guix-profile/lib/aspell\" @@ -503,7 +480,6 @@ fi\n"))) ("login.defs" ,#~#$login.defs) ("issue" ,#~#$issue) ("nsswitch.conf" ,#~#$nsswitch) - ("shells" ,#~#$shells) ("profile" ,#~#$profile) ("bashrc" ,#~#$bashrc) ("hosts" ,#~#$(or (operating-system-hosts-file os) @@ -512,11 +488,6 @@ fi\n"))) #$(operating-system-timezone os))) ("sudoers" ,(operating-system-sudoers-file os)))))) -(define (operating-system-profile os) - "Return a derivation that builds the system profile of OS." - (profile-derivation (manifest (map package->manifest-entry - (operating-system-packages os))))) - (define %root-account ;; Default root account. (user-account @@ -573,6 +544,24 @@ use 'plain-file' instead~%") (fold-services (operating-system-services os) #:target-type etc-service-type))) +(define (operating-system-environment-variables os) + "Return the environment variables of OS for +@var{session-environment-service-type}, to be used in @file{/etc/environment}." + `(("LANG" . ,(operating-system-locale os)) + ("TZ" . ,(operating-system-timezone os)) + ("TZDIR" . ,#~(string-append #$tzdata "/share/zoneinfo")) + ;; Tell 'modprobe' & co. where to look for modules. + ("LINUX_MODULE_DIRECTORY" . "/run/booted-system/kernel/lib/modules") + ;; These variables are honored by OpenSSL (libssl) and Git. + ("SSL_CERT_DIR" . "/etc/ssl/certs") + ("SSL_CERT_FILE" . "/etc/ssl/certs/ca-certificates.crt") + ("GIT_SSL_CAINFO" . "/etc/ssl/certs/ca-certificates.crt") + ;; Append the directory of 'site-start.el' to the search path. + ("EMACSLOADPATH" . ":/etc/emacs") + ;; By default, applications that use D-Bus, such as Emacs, abort at startup + ;; when /etc/machine-id is missing. Make sure these warnings are non-fatal. + ("DBUS_FATAL_WARNINGS" . "0"))) + (define %setuid-programs ;; Default set of setuid-root programs. (let ((shadow (@ (gnu packages admin) shadow))) @@ -606,10 +595,27 @@ etc." we're running in the final root. When CONTAINER? is true, skip all hardware-related operations as necessary when booting a Linux container." (let* ((services (operating-system-services os #:container? container?)) - (boot (fold-services services))) + (boot (fold-services services #:target-type boot-service-type))) ;; BOOT is the script as a monadic value. (service-parameters boot))) +(define* (operating-system-derivation os #:key container?) + "Return a derivation that builds OS." + (let* ((services (operating-system-services os #:container? container?)) + (system (fold-services services))) + ;; SYSTEM contains the derivation as a monadic value. + (service-parameters system))) + +(define* (operating-system-profile os #:key container?) + "Return a derivation that builds the system profile of OS." + (mlet* %store-monad + ((services -> (operating-system-services os #:container? container?)) + (profile (fold-services services + #:target-type profile-service-type))) + (match profile + (("profile" profile) + (return profile))))) + (define (operating-system-root-file-system os) "Return the root file system of OS." (find (match-lambda @@ -645,7 +651,8 @@ listed in OS. The C library expects to find it under (raise (condition (&message (message "system locale lacks a definition"))))) - (locale-directory (operating-system-locale-definitions os))) + (locale-directory (operating-system-locale-definitions os) + #:libcs (operating-system-locale-libcs os))) (define (kernel->grub-label kernel) "Return a label for the GRUB menu entry that boots KERNEL." @@ -691,24 +698,4 @@ this file is the reconstruction of GRUB menu entries for old configurations." #$(operating-system-kernel-arguments os)) (initrd #$initrd))))) -(define (operating-system-derivation os) - "Return a derivation that builds OS." - (mlet* %store-monad - ((profile (operating-system-profile os)) - (etc -> (operating-system-etc-directory os)) - (boot (operating-system-boot-script os)) - (kernel -> (operating-system-kernel os)) - (initrd (operating-system-initrd-file os)) - (locale (operating-system-locale-directory os)) - (params (operating-system-parameters-file os))) - (lower-object - (file-union "system" - `(("boot" ,#~#$boot) - ("kernel" ,#~#$kernel) - ("parameters" ,#~#$params) - ("initrd" ,initrd) - ("profile" ,#~#$profile) - ("locale" ,#~#$locale) ;used by libc - ("etc" ,#~#$etc)))))) - ;;; system.scm ends here diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl index 988b8f937f..ee660e0589 100644 --- a/gnu/system/examples/desktop.tmpl +++ b/gnu/system/examples/desktop.tmpl @@ -3,7 +3,7 @@ (use-modules (gnu) (gnu system nss)) (use-service-modules desktop) -(use-package-modules xfce ratpoison wicd avahi xorg certs) +(use-package-modules xfce ratpoison certs) (operating-system (host-name "antelope") @@ -32,7 +32,6 @@ ;; Add Xfce and Ratpoison; that allows us to choose ;; sessions using either of these at the log-in screen. (packages (cons* xfce ratpoison ;desktop environments - xterm wicd avahi ;useful tools nss-certs ;for HTTPS access %base-packages)) diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 8155b273e3..0a4b385fe3 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -99,9 +99,8 @@ (default #t)) (create-mount-point? file-system-create-mount-point? ; Boolean (default #f)) - (dependencies file-system-dependencies ; list of strings (mount - ; points depended on) - (default '()))) + (dependencies file-system-dependencies ; list of <file-system> + (default '()))) ; or <mapped-device> (define-inlinable (file-system-needed-for-boot? fs) "Return true if FS has the 'needed-for-boot?' flag set, or if it's the root diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm index e49b6dbe54..5b824820b1 100644 --- a/gnu/system/grub.scm +++ b/gnu/system/grub.scm @@ -30,6 +30,7 @@ #:autoload (gnu packages imagemagick) (imagemagick) #:autoload (gnu packages compression) (gzip) #:use-module (ice-9 match) + #:use-module (ice-9 regex) #:use-module (srfi srfi-1) #:export (grub-image grub-image? @@ -139,7 +140,7 @@ (system* (string-append #$imagemagick "/bin/convert") "-resize" #$size #$image #$output))))) -(define* (grub-background-image config #:key (width 640) (height 480)) +(define* (grub-background-image config #:key (width 1024) (height 768)) "Return the GRUB background image defined in CONFIG with a ratio of WIDTH/HEIGHT, or #f if none was found." (let* ((ratio (/ width height)) @@ -152,10 +153,26 @@ WIDTH/HEIGHT, or #f if none was found." (with-monad %store-monad (return #f))))) -(define (eye-candy config port) +(define (eye-candy config system port) "Return in %STORE-MONAD a gexp that writes to PORT (a port-valued gexp) the 'grub.cfg' part concerned with graphics mode, background images, colors, and all that." + (define setup-gfxterm-body + ;; Intel systems need to be switched into graphics mode, whereas most + ;; other modern architectures have no other mode and therefore don't need + ;; to be switched. + (if (string-match "^(x86_64|i[3-6]86)-" system) + " + # Leave 'gfxmode' to 'auto'. + insmod vbe + insmod vga + insmod video_bochs + insmod video_cirrus + insmod gfxterm + terminal_output gfxterm +" + "")) + (define (theme-colors type) (let* ((theme (grub-configuration-theme config)) (colors (type theme))) @@ -163,22 +180,15 @@ all that." (symbol->string (assoc-ref colors 'bg))))) (mlet* %store-monad ((image (grub-background-image config))) - (return (and image #~(format #$port " -function load_video { - insmod vbe - insmod vga - insmod video_bochs - insmod video_cirrus -} + (return (and image + #~(format #$port " +function setup_gfxterm {~a} # Set 'root' to the partition that contains /gnu/store. search --file --set ~a/share/grub/unicode.pf2 if loadfont ~a/share/grub/unicode.pf2; then - set gfxmode=640x480 - load_video - insmod gfxterm - terminal_output gfxterm + setup_gfxterm fi insmod png @@ -189,10 +199,11 @@ else set menu_color_normal=cyan/blue set menu_color_highlight=white/blue fi~%" - #$grub #$grub - #$image - #$(theme-colors grub-theme-color-normal) - #$(theme-colors grub-theme-color-highlight)))))) + #$setup-gfxterm-body + #$grub #$grub + #$image + #$(theme-colors grub-theme-color-normal) + #$(theme-colors grub-theme-color-highlight)))))) ;;; @@ -206,6 +217,11 @@ fi~%" "Return the GRUB configuration file corresponding to CONFIG, a <grub-configuration> object. OLD-ENTRIES is taken to be a list of menu entries corresponding to old generations of the system." + (define linux-image-name + (if (string-prefix? "mips" system) + "vmlinuz" + "bzImage")) + (define all-entries (append entries (grub-configuration-menu-entries config))) @@ -214,16 +230,17 @@ entries corresponding to old generations of the system." (($ <menu-entry> label linux arguments initrd) #~(format port "menuentry ~s { # Set 'root' to the partition that contains the kernel. - search --file --set ~a/bzImage~% + search --file --set ~a/~a~% - linux ~a/bzImage ~a + linux ~a/~a ~a initrd ~a }~%" #$label - #$linux #$linux (string-join (list #$@arguments)) + #$linux #$linux-image-name + #$linux #$linux-image-name (string-join (list #$@arguments)) #$initrd)))) - (mlet %store-monad ((sugar (eye-candy config #~port))) + (mlet %store-monad ((sugar (eye-candy config system #~port))) (define builder #~(call-with-output-file #$output (lambda (port) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 93a6f18c49..887bceb155 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -306,6 +306,9 @@ You have been warned. Thanks for being so brave. (console-font-service "tty5") (console-font-service "tty6") + ;; To facilitate copy/paste. + (gpm-service) + ;; Since this is running on a USB stick with a unionfs as the root ;; file system, use an appropriate cache configuration. (nscd-service (nscd-configuration diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm index fdf7460872..4f38c5cb0a 100644 --- a/gnu/system/linux-container.scm +++ b/gnu/system/linux-container.scm @@ -25,6 +25,7 @@ #:use-module (guix derivations) #:use-module (guix monads) #:use-module (gnu build linux-container) + #:use-module (gnu services) #:use-module (gnu system) #:use-module (gnu system file-systems) #:export (mapping->file-system @@ -46,19 +47,6 @@ (check? #f) (create-mount-point? #t))))) -(define (system-container os) - "Return a derivation that builds OS as a Linux container." - (mlet* %store-monad - ((profile (operating-system-profile os)) - (etc (operating-system-etc-directory os)) - (boot (operating-system-boot-script os #:container? #t)) - (locale (operating-system-locale-directory os))) - (file-union "system-container" - `(("boot" ,#~#$boot) - ("profile" ,#~#$profile) - ("locale" ,#~#$locale) - ("etc" ,#~#$etc))))) - (define (containerized-operating-system os mappings) "Return an operating system based on OS for use in a Linux container environment. MAPPINGS is a list of <file-system-mapping> to realize in the @@ -93,7 +81,9 @@ that will be shared with the host system." (operating-system-file-systems os))) (specs (map file-system->spec file-systems))) - (mlet* %store-monad ((os-drv (system-container os))) + (mlet* %store-monad ((os-drv (operating-system-derivation + os + #:container? #t))) (define script #~(begin @@ -106,7 +96,12 @@ that will be shared with the host system." (setenv "TMPDIR" "/tmp") (setenv "GUIX_NEW_SYSTEM" #$os-drv) (for-each mkdir-p '("/run" "/bin" "/etc" "/home" "/var")) - (primitive-load (string-append #$os-drv "/boot")))))) + (primitive-load (string-append #$os-drv "/boot"))) + ;; A range of 65536 uid/gids is used to cover 16 bits worth of + ;; users and groups, which is sufficient for most cases. + ;; + ;; See: http://www.freedesktop.org/software/systemd/man/systemd-nspawn.html#--private-users= + #:host-uids 65536))) (gexp->script "run-container" script #:modules '((ice-9 match) diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index 519373fe34..6130e020c8 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -178,11 +178,13 @@ loaded at boot time in the order in which they appear." (define linux-modules ;; Modules added to the initrd and loaded from the initrd. `("ahci" ;for SATA controllers - "pata_acpi" "pata_atiixp" ;for ATA controllers - "isci" ;for SAS controllers like Intel C602 "usb-storage" "uas" ;for the installation image etc. "usbkbd" "usbhid" ;USB keyboards, for debugging "dm-crypt" "xts" ;for encrypted root partitions + ,@(if (string-match "^(x86_64|i[3-6]86)-" (%current-system)) + '("pata_acpi" "pata_atiixp" ;for ATA controllers + "isci") ;for SAS controllers like Intel C602 + '()) ,@(if (or virtio? qemu-networking?) virtio-modules '()) diff --git a/gnu/system/locale.scm b/gnu/system/locale.scm index 010fb45272..e798827a01 100644 --- a/gnu/system/locale.scm +++ b/gnu/system/locale.scm @@ -18,11 +18,15 @@ (define-module (gnu system locale) #:use-module (guix gexp) + #:use-module (guix store) + #:use-module (guix monads) #:use-module (guix records) #:use-module (guix packages) + #:use-module (guix utils) #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (srfi srfi-26) + #:use-module (ice-9 match) #:export (locale-definition locale-definition? locale-definition-name @@ -31,6 +35,7 @@ locale-directory + %default-locale-libcs %default-locale-definitions)) ;;; Commentary: @@ -50,6 +55,15 @@ (define* (localedef-command locale #:key (libc (canonical-package glibc))) "Return a gexp that runs 'localedef' from LIBC to build LOCALE." + (define (maybe-version-directory) + ;; XXX: For libc prior to 2.22, GuixSD did not store locale data in a + ;; version-specific sub-directory. Check whether this is the case. + ;; TODO: Remove this hack once libc 2.21 is buried. + (let ((version (package-version libc))) + (if (version>=? version "2.22") + (list version "/") + '()))) + #~(begin (format #t "building locale '~a'...~%" #$(locale-definition-name locale)) @@ -58,20 +72,29 @@ "-i" #$(locale-definition-source locale) "-f" #$(locale-definition-charset locale) (string-append #$output "/" - #$(package-version libc) "/" + #$@(maybe-version-directory) #$(locale-definition-name locale)))))) -(define* (locale-directory locales - #:key (libc (canonical-package glibc))) +(define* (single-locale-directory locales + #:key (libc (canonical-package glibc))) "Return a directory containing all of LOCALES for LIBC compiled. Because locale data formats are incompatible when switching from one libc to another, locale data is put in a sub-directory named after the 'version' field of LIBC." + (define version + (package-version libc)) + (define build #~(begin (mkdir #$output) - (mkdir (string-append #$output "/" #$(package-version libc))) + + ;; XXX: For libcs < 2.22, locale data is stored in the top-level + ;; directory. + ;; TODO: Remove this hack once libc 2.21 is buried. + #$(if (version>=? version "2.22") + #~(mkdir (string-append #$output "/" #$version)) + #~(symlink "." (string-append #$output "/" #$version))) ;; 'localedef' executes 'gzip' to access compressed locale sources. (setenv "PATH" (string-append #$gzip "/bin")) @@ -80,9 +103,38 @@ of LIBC." (and #$@(map (cut localedef-command <> #:libc libc) locales))))) - (gexp->derivation "locale" build + (gexp->derivation (string-append "locale-" version) build #:local-build? #t)) +(define* (locale-directory locales + #:key (libcs %default-locale-libcs)) + "Return a locale directory containing all of LOCALES for each libc package +listed in LIBCS. + +It is useful to list more than one libc when willing to support +already-installed packages built against a different libc since the locale +data format changes between libc versions." + (match libcs + ((libc) + (single-locale-directory locales #:libc libc)) + ((libcs ..1) + (mlet %store-monad ((dirs (mapm %store-monad + (lambda (libc) + (single-locale-directory locales + #:libc libc)) + libcs))) + (gexp->derivation "locale-multiple-versions" + #~(begin + (use-modules (guix build union)) + (union-build #$output (list #$@dirs))) + #:modules '((guix build union)) + #:local-build? #t + #:substitutable? #f))))) + +(define %default-locale-libcs + ;; The libcs for which we build locales by default. + (list (canonical-package glibc))) + (define %default-locale-definitions ;; Arbitrary set of locales that are built by default. They are here mostly ;; to facilitate first-time use to some people, while others may have to add diff --git a/gnu/system/linux.scm b/gnu/system/pam.scm index cd14bc97be..99d94a1a81 100644 --- a/gnu/system/linux.scm +++ b/gnu/system/pam.scm @@ -16,7 +16,7 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. -(define-module (gnu system linux) +(define-module (gnu system pam) #:use-module (guix records) #:use-module (guix derivations) #:use-module (guix gexp) @@ -36,8 +36,7 @@ ;;; Commentary: ;;; -;;; Configuration of Linux-related things, including pluggable authentication -;;; modules (PAM). +;;; Configuration of the pluggable authentication modules (PAM). ;;; ;;; Code: @@ -129,7 +128,10 @@ dumped in /etc/pam.d/NAME, where NAME is the name of SERVICE." (define unix-pam-service (let ((unix (pam-entry (control "required") - (module "pam_unix.so")))) + (module "pam_unix.so"))) + (env (pam-entry ; to honor /etc/environment. + (control "required") + (module "pam_env.so")))) (lambda* (name #:key allow-empty-passwords? motd) "Return a standard Unix-style PAM service for NAME. When ALLOW-EMPTY-PASSWORDS? is true, allow empty passwords. When MOTD is true, it @@ -151,13 +153,13 @@ should be a file-like object used as the message-of-the-day." ;; Store SHA-512 encrypted passwords in /etc/shadow. (arguments '("sha512" "shadow"))))) (session (if motd - (list unix + (list env unix (pam-entry (control "optional") (module "pam_motd.so") (arguments (list #~(string-append "motd=" #$motd))))) - (list unix)))))))) + (list env unix)))))))) (define (rootok-pam-service command) "Return a PAM service for COMMAND such that 'root' does not need to @@ -182,8 +184,7 @@ authenticate to run COMMAND." ;; These programs are setuid-root. (map (cut unix-pam-service <> #:allow-empty-passwords? allow-empty-passwords?) - '("su" "passwd" "sudo" - "xlock" "xscreensaver")) + '("su" "passwd" "sudo")) ;; These programs are not setuid-root, and we want root to be able ;; to run them without having to authenticate (notably because diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm index 3f49c1fc9f..7f3a1dfac2 100644 --- a/gnu/system/shadow.scm +++ b/gnu/system/shadow.scm @@ -280,11 +280,33 @@ group." (activate-users+groups (list #$@user-specs) (list #$@group-specs)))) -(define (etc-skel arguments) +(define (shells-file shells) + "Return a file-like object that builds a shell list for use as /etc/shells +based on SHELLS. /etc/shells is used by xterm, polkit, and other programs." + (computed-file "shells" + #~(begin + (use-modules (srfi srfi-1)) + + (define shells + (delete-duplicates (list #$@shells))) + + (call-with-output-file #$output + (lambda (port) + (display "\ +/bin/sh +/run/current-system/profile/bin/sh +/run/current-system/profile/bin/bash\n" port) + (for-each (lambda (shell) + (display shell port) + (newline port)) + shells)))))) +(define (etc-files arguments) "Filter out among ARGUMENTS things corresponding to skeletons, and return the /etc/skel directory for those." - (let ((skels (filter pair? arguments))) - `(("skel" ,(skeleton-directory skels))))) + (let ((skels (filter pair? arguments)) + (users (filter user-account? arguments))) + `(("skel" ,(skeleton-directory skels)) + ("shells" ,(shells-file (map user-account-shell users)))))) (define account-service-type (service-type (name 'account) @@ -298,7 +320,7 @@ the /etc/skel directory for those." (list (service-extension activation-service-type account-activation) (service-extension etc-service-type - etc-skel))))) + etc-files))))) (define (account-service accounts+groups skeletons) "Return a <service> that takes care of user accounts and user groups, with diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index dfb6996067..1492a0bb1c 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -43,7 +43,7 @@ #:use-module (gnu packages admin) #:use-module (gnu system shadow) - #:use-module (gnu system linux) + #:use-module (gnu system pam) #:use-module (gnu system linux-initrd) #:use-module (gnu system grub) #:use-module (gnu system file-systems) @@ -92,7 +92,7 @@ (system (%current-system)) (linux linux-libre) initrd - (qemu qemu-headless) + (qemu qemu-minimal) (env-vars '()) (modules '((gnu build vm) @@ -185,7 +185,7 @@ made available under the /xchg CIFS share." (define* (qemu-image #:key (name "qemu-image") (system (%current-system)) - (qemu qemu-headless) + (qemu qemu-minimal) (disk-image-size (* 100 (expt 2 20))) (disk-image-format "qcow2") (file-system-type "ext4") |