diff options
112 files changed, 5853 insertions, 767 deletions
@@ -20,6 +20,7 @@ alphabetical order): Alírio Eyng <alirioeyng@gmail.com> Joshua Grant <tadni@riseup.net> Raimon Grau <raimonster@gmail.com> + David Hashe <david.hashe@dhashe.com> Nikita Karetnikov <nikita@karetnikov.org> Julien Lepiller <julien@lepiller.eu> Aljosha Papsch <misc@rpapsch.de> @@ -25,12 +25,6 @@ Run ‘./bootstrap’ to download the Nix daemon source code and to generate the build system infrastructure using autoconf. It reports an error if an inappropriate version of the above packages is being used. -The ‘bootstrap’ script, among other things, invokes ‘git submodule update’; if -you didn’t run it, you may get the following error: - - make: *** No rule to make target `nix/libstore/schema.sql', needed by - `nix/libstore/schema.sql.hh' - If you get an error like this one: configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES @@ -22,6 +22,7 @@ infrastructure help: Brandon Invergo <brandon@gnu.org> Jeffrin Jose <ahiliation@yahoo.co.in> Kete <kete@ninthfloor.org> + Daniel Kochmański <dkochmanski@hellsgate.pl> Alex Kost <alezost@gmail.com> Matthew Lien <bluet@bluet.org> Niels Möller <nisse@lysator.liu.se> diff --git a/build-aux/check-available-binaries.scm b/build-aux/check-available-binaries.scm index 7ac4352839..bc6207eb2a 100644 --- a/build-aux/check-available-binaries.scm +++ b/build-aux/check-available-binaries.scm @@ -29,27 +29,28 @@ (srfi srfi-26)) (with-store store - (let* ((native (append-map (lambda (system) - (map (cut package-derivation store <> system) - (list %bootstrap-tarballs emacs))) - %supported-systems)) - (cross (map (cut package-cross-derivation store - %bootstrap-tarballs <>) - '("mips64el-linux-gnuabi64"))) - (total (append native cross))) - (define (warn item system) - (format (current-error-port) "~a (~a) is not substitutable~%" - item system) - #f) + (parameterize ((%graft? #f)) + (let* ((native (append-map (lambda (system) + (map (cut package-derivation store <> system) + (list %bootstrap-tarballs emacs))) + %supported-systems)) + (cross (map (cut package-cross-derivation store + %bootstrap-tarballs <>) + '("mips64el-linux-gnuabi64"))) + (total (append native cross))) + (define (warn item system) + (format (current-error-port) "~a (~a) is not substitutable~%" + item system) + #f) - (set-build-options store #:use-substitutes? #t) - (let* ((substitutable? (substitution-oracle store total)) - (result (every (lambda (drv) - (let ((out (derivation->output-path drv))) - (or (substitutable? out) - (warn out (derivation-system drv))))) - total))) - (when result - (format (current-error-port) "~a packages found substitutable~%" - (length total))) - (exit result)))) + (set-build-options store #:use-substitutes? #t) + (let* ((substitutable? (substitution-oracle store total)) + (result (every (lambda (drv) + (let ((out (derivation->output-path drv))) + (or (substitutable? out) + (warn out (derivation-system drv))))) + total))) + (when result + (format (current-error-port) "~a packages found substitutable~%" + (length total))) + (exit result))))) diff --git a/build-aux/check-final-inputs-self-contained.scm b/build-aux/check-final-inputs-self-contained.scm index ca7e8030b4..ba85c876d2 100644 --- a/build-aux/check-final-inputs-self-contained.scm +++ b/build-aux/check-final-inputs-self-contained.scm @@ -73,8 +73,9 @@ refer to the bootstrap tools." ;; Entry point. (with-store store - (set-build-options store #:use-substitutes? #t) + (parameterize ((%graft? #f)) + (set-build-options store #:use-substitutes? #t) - (for-each (cut test-final-inputs store <>) - %supported-systems)) + (for-each (cut test-final-inputs store <>) + %supported-systems))) diff --git a/config-daemon.ac b/config-daemon.ac index 32520acbf2..5f83d45a4c 100644 --- a/config-daemon.ac +++ b/config-daemon.ac @@ -127,9 +127,8 @@ if test "x$guix_build_daemon" = "xyes"; then fi dnl Temporary directory used to store the daemon's data. - AC_MSG_CHECKING([for unit test root]) - GUIX_TEST_ROOT="`pwd`/test-tmp" - AC_MSG_RESULT([$GUIX_TEST_ROOT]) + GUIX_TEST_ROOT_DIRECTORY + GUIX_TEST_ROOT="$ac_cv_guix_test_root" AC_SUBST([GUIX_TEST_ROOT]) AC_CONFIG_FILES([nix/scripts/list-runtime-roots], diff --git a/configure.ac b/configure.ac index 6f75fa3d7d..8291b0c5d0 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.68) -AC_INIT([GNU Guix], [0.8.1], [bug-guix@gnu.org], [guix], +AC_INIT([GNU Guix], [0.8.2], [bug-guix@gnu.org], [guix], [http://www.gnu.org/software/guix/]) AC_CONFIG_AUX_DIR([build-aux]) @@ -50,6 +50,8 @@ AC_SUBST([guix_localstatedir]) AC_SUBST([guix_sysconfdir]) AC_SUBST([guix_sbindir]) +GUIX_CHECK_FILE_NAME_LIMITS + dnl We require the pkg.m4 set of macros from pkg-config. dnl Make sure it's available. m4_pattern_forbid([PKG_CHECK_MODULES]) diff --git a/doc/guix.texi b/doc/guix.texi index 0c6b1e4384..bd8091ae51 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -1894,12 +1894,20 @@ parameter. @defvr {Scheme Variable} perl-build-system This variable is exported by @code{(guix build-system perl)}. It -implements the standard build procedure for Perl packages, which -consists in running @code{perl Makefile.PL PREFIX=/gnu/store/@dots{}}, -followed by @code{make} and @code{make install}. - -The initial @code{perl Makefile.PL} invocation passes flags specified by -the @code{#:make-maker-flags} parameter. +implements the standard build procedure for Perl packages, which either +consists in running @code{perl Build.PL --prefix=/gnu/store/@dots{}}, +followed by @code{Build} and @code{Build install}; or in running +@code{perl Makefile.PL PREFIX=/gnu/store/@dots{}}, followed by +@code{make} and @code{make install}; depending on which of +@code{Build.PL} or @code{Makefile.PL} is present in the package +distribution. Preference is given to the former if both @code{Build.PL} +and @code{Makefile.PL} exist in the package distribution. This +preference can be reversed by specifying @code{#t} for the +@code{#:make-maker?} parameter. + +The initial @code{perl Makefile.PL} or @code{perl Build.PL} invocation +passes flags specified by the @code{#:make-maker-flags} or +@code{#:module-build-flags} parameter, respectively. Which Perl package is used can be specified with @code{#:perl}. @end defvr @@ -2358,9 +2366,10 @@ Run @var{mval}, a monadic value in the store monad, in @var{store}, an open store connection. @end deffn -@deffn {Monadic Procedure} text-file @var{name} @var{text} +@deffn {Monadic Procedure} text-file @var{name} @var{text} [@var{references}] Return as a monadic value the absolute file name in the store of the file -containing @var{text}, a string. +containing @var{text}, a string. @var{references} is a list of store items that the +resulting text file refers to; it defaults to the empty list. @end deffn @deffn {Monadic Procedure} interned-file @var{file} [@var{name}] @ @@ -2579,7 +2588,7 @@ below allow you to do that (@pxref{The Store Monad}, for more information about monads.) @deffn {Monadic Procedure} gexp->derivation @var{name} @var{exp} @ - [#:system (%current-system)] [#:target #f] [#:inputs '()] @ + [#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:module-path @var{%load-path}] @ @@ -2590,12 +2599,15 @@ Return a derivation @var{name} that runs @var{exp} (a gexp) with is true, it is used as the cross-compilation target triplet for packages referred to by @var{exp}. -Make @var{modules} available in the evaluation context of @var{EXP}; -@var{MODULES} is a list of names of Guile modules searched in -@var{MODULE-PATH} to be copied in the store, compiled, and made available in +Make @var{modules} available in the evaluation context of @var{exp}; +@var{modules} is a list of names of Guile modules searched in +@var{module-path} to be copied in the store, compiled, and made available in the load path during the execution of @var{exp}---e.g., @code{((guix build utils) (guix build gnu-build-system))}. +@var{graft?} determines whether packages referred to by @var{exp} should be grafted when +applicable. + When @var{references-graphs} is true, it must be a list of tuples of one of the following forms: @@ -3077,9 +3089,10 @@ guix import pypi itsdangerous Import meta-data from @uref{https://www.metacpan.org/, MetaCPAN}. Information is taken from the JSON-formatted meta-data provided through @uref{https://api.metacpan.org/, MetaCPAN's API} and includes most -relevant information. License information should be checked closely. -Package dependencies are included but may in some cases needlessly -include core Perl modules. +relevant information, such as module dependencies. License information +should be checked closely. If Perl is available in the store, then the +@code{corelist} utility will be used to filter core modules out of the +list of dependencies. The command command below imports meta-data for the @code{Acme::Boolean} Perl module: @@ -4621,7 +4634,8 @@ theme to use. In that case, @var{theme-name} specifies the name of the theme. Last, @var{session} is a list of @code{<session-type>} objects denoting the -available session types that can be chosen from the log-in screen. +available session types that can be chosen from the log-in screen. The first +one is chosen by default. @end deffn @defvr {Scheme Variable} %default-sessions diff --git a/gnu-system.am b/gnu-system.am index 6849b9c618..a705204381 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -1,6 +1,6 @@ # GNU Guix --- Functional package management for GNU # Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> -# Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr> +# Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr> # Copyright © 2013, 2014, 2015 Mark H Weaver <mhw@netris.org> # # This file is part of GNU Guix. @@ -25,6 +25,7 @@ GNU_SYSTEM_MODULES = \ gnu.scm \ gnu/artwork.scm \ gnu/packages.scm \ + gnu/packages/aarddict.scm \ gnu/packages/abiword.scm \ gnu/packages/acct.scm \ gnu/packages/acl.scm \ @@ -55,6 +56,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/calcurse.scm \ gnu/packages/ccache.scm \ gnu/packages/cdrom.scm \ + gnu/packages/certs.scm \ gnu/packages/cflow.scm \ gnu/packages/check.scm \ gnu/packages/cmake.scm \ @@ -97,6 +99,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/fltk.scm \ gnu/packages/fonts.scm \ gnu/packages/fontutils.scm \ + gnu/packages/freedesktop.scm \ gnu/packages/freeipmi.scm \ gnu/packages/ftp.scm \ gnu/packages/fribidi.scm \ @@ -190,6 +193,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/miscfiles.scm \ gnu/packages/mit-krb5.scm \ gnu/packages/moe.scm \ + gnu/packages/moreutils.scm \ gnu/packages/mpd.scm \ gnu/packages/mp3.scm \ gnu/packages/mpi.scm \ @@ -229,6 +233,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/popt.scm \ gnu/packages/pth.scm \ gnu/packages/pulseaudio.scm \ + gnu/packages/pumpio.scm \ gnu/packages/pretty-print.scm \ gnu/packages/protobuf.scm \ gnu/packages/python.scm \ @@ -257,6 +262,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/socat.scm \ gnu/packages/ssh.scm \ gnu/packages/stalonetray.scm \ + gnu/packages/statistics.scm \ gnu/packages/swig.scm \ gnu/packages/sxiv.scm \ gnu/packages/synergy.scm \ @@ -289,6 +295,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/wine.scm \ gnu/packages/wordnet.scm \ gnu/packages/wv.scm \ + gnu/packages/wxwidgets.scm \ gnu/packages/xfig.scm \ gnu/packages/xiph.scm \ gnu/packages/xml.scm \ @@ -357,6 +364,7 @@ dist_patch_DATA = \ gnu/packages/patches/binutils-ld-new-dtags.patch \ gnu/packages/patches/binutils-loongson-workaround.patch \ gnu/packages/patches/cdparanoia-fpic.patch \ + gnu/packages/patches/chmlib-inttypes.patch \ gnu/packages/patches/clucene-pkgconfig.patch \ gnu/packages/patches/cmake-fix-tests.patch \ gnu/packages/patches/coreutils-dummy-man.patch \ @@ -366,6 +374,7 @@ dist_patch_DATA = \ gnu/packages/patches/cpio-CVE-2014-9112-pt4.patch \ gnu/packages/patches/cpio-CVE-2014-9112-pt5.patch \ gnu/packages/patches/cpio-gets-undeclared.patch \ + gnu/packages/patches/cpufrequtils-fix-aclocal.patch \ gnu/packages/patches/cssc-gets-undeclared.patch \ gnu/packages/patches/cssc-missing-include.patch \ gnu/packages/patches/clucene-contribs-lib.patch \ @@ -410,6 +419,23 @@ dist_patch_DATA = \ gnu/packages/patches/guix-test-networking.patch \ gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \ gnu/packages/patches/hop-bigloo-4.0b.patch \ + gnu/packages/patches/icecat-CVE-2015-0822.patch \ + gnu/packages/patches/icecat-CVE-2015-0827-pt-1.patch \ + gnu/packages/patches/icecat-CVE-2015-0827-pt-2.patch \ + gnu/packages/patches/icecat-CVE-2015-0827-pt-3.patch \ + gnu/packages/patches/icecat-CVE-2015-0831-pt-1.patch \ + gnu/packages/patches/icecat-CVE-2015-0831-pt-2.patch \ + gnu/packages/patches/icecat-CVE-2015-0836-pt-01.patch \ + gnu/packages/patches/icecat-CVE-2015-0836-pt-02.patch \ + gnu/packages/patches/icecat-CVE-2015-0836-pt-03.patch \ + gnu/packages/patches/icecat-CVE-2015-0836-pt-04.patch \ + gnu/packages/patches/icecat-CVE-2015-0836-pt-05.patch \ + gnu/packages/patches/icecat-CVE-2015-0836-pt-06.patch \ + gnu/packages/patches/icecat-CVE-2015-0836-pt-07.patch \ + gnu/packages/patches/icecat-CVE-2015-0836-pt-08.patch \ + gnu/packages/patches/icecat-CVE-2015-0836-pt-09.patch \ + gnu/packages/patches/icecat-CVE-2015-0836-pt-10.patch \ + gnu/packages/patches/icecat-CVE-2015-0836-pt-11.patch \ gnu/packages/patches/irrlicht-mesa-10.patch \ gnu/packages/patches/jbig2dec-ignore-testtest.patch \ gnu/packages/patches/kmod-module-directory.patch \ @@ -430,6 +456,8 @@ dist_patch_DATA = \ gnu/packages/patches/libvpx-vp9-out-of-bounds-access.patch \ gnu/packages/patches/lm-sensors-hwmon-attrs.patch \ gnu/packages/patches/lua51-liblua-so.patch \ + gnu/packages/patches/luajit-no_ldconfig.patch \ + gnu/packages/patches/luajit-symlinks.patch \ gnu/packages/patches/luit-posix.patch \ gnu/packages/patches/m4-gets-undeclared.patch \ gnu/packages/patches/make-impure-dirs.patch \ @@ -449,6 +477,7 @@ dist_patch_DATA = \ gnu/packages/patches/nvi-assume-preserve-path.patch \ gnu/packages/patches/nvi-dbpagesize-binpower.patch \ gnu/packages/patches/nvi-db4.patch \ + gnu/packages/patches/openexr-missing-samples.patch \ gnu/packages/patches/orpheus-cast-errors-and-includes.patch \ gnu/packages/patches/ots-no-include-missing-file.patch \ gnu/packages/patches/patchelf-page-size.patch \ @@ -469,6 +498,7 @@ dist_patch_DATA = \ gnu/packages/patches/python-fix-tests.patch \ gnu/packages/patches/python-libffi-mips-n32-fix.patch \ gnu/packages/patches/python-sqlite-3.8.4-test-fix.patch \ + gnu/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \ gnu/packages/patches/python2-sqlite-3.8.4-test-fix.patch \ gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ gnu/packages/patches/qt4-tests.patch \ @@ -496,6 +526,7 @@ dist_patch_DATA = \ gnu/packages/patches/vpnc-script.patch \ gnu/packages/patches/vtk-mesa-10.patch \ gnu/packages/patches/w3m-fix-compile.patch \ + gnu/packages/patches/weex-vacopy.patch \ gnu/packages/patches/wicd-urwid-1.3.patch \ gnu/packages/patches/wmctrl-64-fix.patch \ gnu/packages/patches/xf86-video-ark-remove-mibstore.patch \ diff --git a/gnu/artwork.scm b/gnu/artwork.scm index d14fda44bd..c3b1695ba7 100644 --- a/gnu/artwork.scm +++ b/gnu/artwork.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,9 +32,9 @@ (method git-fetch) (uri (git-reference (url "git://git.savannah.gnu.org/guix/guix-artwork.git") - (commit "94e6111"))) + (commit "61ae7c8"))) (sha256 (base32 - "0aax85mygpq4lbyn8sriafikyg54yss3lisin6pwkvlvp23a3v1j")))) + "102fxk2l6b0ibry3n430q8ljhwrnbml9qgalzkz6v09r7sx6a532")))) ;;; artwork.scm ends here diff --git a/gnu/packages/aarddict.scm b/gnu/packages/aarddict.scm new file mode 100644 index 0000000000..33bd7b4ac9 --- /dev/null +++ b/gnu/packages/aarddict.scm @@ -0,0 +1,69 @@ +;;; 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")) + (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 6244a87f94..c779ade2b4 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -375,14 +375,14 @@ connection alive.") (define-public isc-dhcp (package (name "isc-dhcp") - (version "4.3.0") + (version "4.3.1") (source (origin (method url-fetch) (uri (string-append "http://ftp.isc.org/isc/dhcp/" version "/dhcp-" version ".tar.gz")) (sha256 (base32 - "12mydvj6x3zcl3gla06bywfkkrgg03g66fijs94mwb7kbiym3dm7")))) + "1w4s7sni1m9223ya8m2a64lr62845c6xlraprjf8zfx6lylbqv16")))) (build-system gnu-build-system) (arguments '(#:phases (alist-cons-after @@ -409,9 +409,9 @@ connection alive.") (system* "tar" "xf" "bind.tar.gz") (for-each patch-shebang - (find-files "bind-9.9.5" ".*")) + (find-files "bind-9.9.5-P1" ".*")) (zero? (system* "tar" "cf" "bind.tar.gz" - "bind-9.9.5")))) + "bind-9.9.5-P1")))) (alist-cons-after 'install 'post-install (lambda* (#:key inputs outputs #:allow-other-keys) @@ -420,6 +420,7 @@ connection alive.") (let* ((out (assoc-ref outputs "out")) (libexec (string-append out "/libexec")) (coreutils (assoc-ref inputs "coreutils")) + (inetutils (assoc-ref inputs "inetutils")) (net-tools (assoc-ref inputs "net-tools")) (sed (assoc-ref inputs "sed"))) (substitute* "client/scripts/linux" @@ -431,17 +432,19 @@ connection alive.") (copy-file "client/scripts/linux" (string-append libexec "/dhclient-script")) - (wrap-program (string-append libexec "/dhclient-script") - `("PATH" ":" prefix - ,(map (lambda (dir) - (string-append dir "/bin:" - dir "/sbin")) - (list net-tools coreutils sed)))))) + (wrap-program + (string-append libexec "/dhclient-script") + `("PATH" ":" prefix + ,(map (lambda (dir) + (string-append dir "/bin:" + dir "/sbin")) + (list inetutils net-tools coreutils sed)))))) %standard-phases)))) (native-inputs `(("perl" ,perl))) - (inputs `(("net-tools" ,net-tools) + (inputs `(("inetutils" ,inetutils) + ("net-tools" ,net-tools) ("iproute" ,iproute) ;; When cross-compiling, we need the cross Coreutils and sed. diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index fb59928e02..2fe26a4878 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -84,22 +84,23 @@ solve the shortest vector problem.") (define-public pari-gp (package (name "pari-gp") - (version "2.7.2") + (version "2.7.3") (source (origin (method url-fetch) (uri (string-append "http://pari.math.u-bordeaux.fr/pub/pari/unix/pari-" version ".tar.gz")) - (sha256 (base32 - "1b0hzyhafpxhmiljyhnsh6c27ydsvb2599fshwq2fjfm96awjxmc")))) + (sha256 + (base32 + "02k54m7p47r54lgxqanxvf7pdrss17n8if1qwk5wx0j1px22j0rq")))) (build-system gnu-build-system) (inputs `(("gmp" ,gmp) ("perl" ,perl) ("readline" ,readline))) (arguments '(#:make-flags '("gp") - ;; FIXME: building the documentation requires tex; once this is available, - ;; replace "gp" by "all" + ;; FIXME: building the documentation requires tex; once this is + ;; available, replace "gp" by "all" #:test-target "dobench" #:phases (alist-replace diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 9227367dcd..52feea3701 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,17 +24,34 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) #:use-module (guix build-system waf) + #:use-module (guix build-system trivial) + #:use-module (guix build-system cmake) #:use-module (gnu packages) #:use-module (gnu packages algebra) + #:use-module (gnu packages autotools) + #:use-module (gnu packages boost) + #:use-module (gnu packages base) + #:use-module (gnu packages compression) + #:use-module (gnu packages curl) #:use-module (gnu packages databases) - #:use-module (gnu packages glib) ;dbus + #:use-module (gnu packages file) + #:use-module (gnu packages glib) + #:use-module (gnu packages gtk) + #:use-module (gnu packages gnome) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages qt) #:use-module (gnu packages linux) + #:use-module (gnu packages mp3) ;taglib + #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate #:use-module (gnu packages python) + #:use-module (gnu packages rdf) #:use-module (gnu packages readline) + #:use-module (gnu packages which) #:use-module (gnu packages xiph) - #:use-module (gnu packages xml)) + #:use-module (gnu packages xml) + #:use-module (srfi srfi-1)) (define-public aubio (package @@ -59,7 +77,6 @@ #:python ,python-2)) (inputs `(("jack" ,jack-1) - ("libuuid" ,util-linux) ("libsndfile" ,libsndfile) ("libsamplerate" ,libsamplerate) ("fftwf" ,fftwf))) @@ -74,6 +91,153 @@ attacks, performing pitch detection, tapping the beat and producing MIDI streams from live audio.") (license license:gpl3+))) +(define-public ardour + (package + (name "ardour") + (version "3.5.403") + (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") + (commit version))) + (snippet + '(call-with-output-file + "libs/ardour/revision.cc" + (lambda (port) + (format port "#include \"ardour/revision.h\" +namespace ARDOUR { const char* revision = \"3.5-403-gec2cb31\" ; }")))) + (sha256 + (base32 + "01b0wxh0wlxjfz5j8gcwwqhxc6q2kn4njz2fcmzv9fr3xaya5dbp")) + (file-name (string-append name "-" version)))) + (build-system waf-build-system) + (arguments + `(#:tests? #f ; no check target + #:python ,python-2)) + (inputs + `(("alsa-lib" ,alsa-lib) + ("aubio" ,aubio) + ("lrdf" ,lrdf) + ("boost" ,boost) + ("atkmm" ,atkmm) + ("cairomm" ,cairomm) + ("gtkmm" ,gtkmm-2) + ("glibmm" ,glibmm) + ("libart-lgpl" ,libart-lgpl) + ("libgnomecanvasmm" ,libgnomecanvasmm) + ("pangomm" ,pangomm) + ("liblo" ,liblo) + ("libsndfile" ,libsndfile) + ("libsamplerate" ,libsamplerate) + ("libxml2" ,libxml2) + ("libogg" ,libogg) + ("libvorbis" ,libvorbis) + ("flac" ,flac) + ("lv2" ,lv2) + ("vamp" ,vamp) + ("curl" ,curl) + ("fftw" ,fftw) + ("fftwf" ,fftwf) + ("jack" ,jack-1) + ("serd" ,serd) + ("sord" ,sord) + ("sratom" ,sratom) + ("suil" ,suil) + ("lilv" ,lilv) + ("rasqal" ,rasqal) + ("raptor2" ,raptor2) + ("redland" ,redland) + ("rubberband" ,rubberband) + ("taglib" ,taglib) + ("python-rdflib" ,python-rdflib))) + (native-inputs + `(("perl" ,perl) + ("pkg-config" ,pkg-config))) + (home-page "http://ardour.org") + (synopsis "Digital audio workstation") + (description + "Ardour is a multi-channel digital audio workstation, allowing users to +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 azr3 + (package + (name "azr3") + (version "1.2.3") + (source (origin + (method url-fetch) + (uri (string-append "mirror://savannah/ll-plugins/azr3-jack-" + version + ".tar.bz2")) + (sha256 + (base32 + "18mdw6nc0vgj6k9rsy0x8w64wvzld0frqshrxxbxfj9qi9843vlc")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no check target + #:make-flags + (list "LV2PEG=ttl2c" + (string-append "prefix=" %output) + (string-append "pkgdatadir=" %output "/share/azr3-jack")))) + (inputs + `(("gtkmm" ,gtkmm-2) + ("lvtk" ,lvtk) + ("jack" ,jack-1) + ("lash" ,lash))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://ll-plugins.nongnu.org/azr3/") + (synopsis "Tonewheel organ synthesizer") + (description + "AZR-3 is a port of the free VST plugin AZR-3. It is a tonewheel organ +with drawbars, distortion and rotating speakers. The organ has three +sections, two polyphonic sections with nine drawbars each and one monophonic +bass section with five drawbars. A standalone JACK application and LV2 +plugins are provided.") + (license license:gpl2))) + +(define-public freepats + (package + (name "freepats") + (version "20060219") + (source (origin + (method url-fetch) + (uri (string-append "http://freepats.zenvoid.org/freepats-" + version ".tar.bz2")) + (sha256 + (base32 + "12iw36rd94zirll96cd5k0va7p5hxmf2shvjlhzihcmjaw8flq82")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils)) + (let ((out (string-append %output "/share/freepats"))) + (setenv "PATH" (string-append + (assoc-ref %build-inputs "bzip2") "/bin:" + (assoc-ref %build-inputs "tar") "/bin")) + (system* "tar" "xvf" (assoc-ref %build-inputs "source")) + (chdir "freepats") + ;; Use absolute pattern references + (substitute* "freepats.cfg" + (("Tone_000") (string-append out "/Tone_000")) + (("Drum_000") (string-append out "/Drum_000"))) + (mkdir-p out) + (copy-recursively "." out))))) + (native-inputs + `(("tar" ,tar) + ("bzip2" ,bzip2))) + (home-page "http://freepats.zenvoid.org") + (synopsis "GUS compatible patches for MIDI players") + (description + "FreePats is a project to create a free and open set of GUS compatible +patches that can be used with softsynths such as Timidity and WildMidi.") + ;; GPLv2+ with exception for compositions using these patches. + (license license:gpl2+))) + (define-public jack-1 (package (name "jack") @@ -89,8 +253,14 @@ streams from live audio.") "1mk1wnx33anp6haxfjjkfhwbaknfblsvj35nxvz0hvspcmhdyhpb")))) (build-system gnu-build-system) (inputs - `(("bdb" ,bdb) - ("libuuid" ,util-linux))) + `(("alsa-lib" ,alsa-lib) + ("bdb" ,bdb) + ("readline" ,readline))) + ;; uuid.h is included in the JACK type headers + (propagated-inputs + `(("libuuid" ,util-linux))) + (native-inputs + `(("pkg-config" ,pkg-config))) (home-page "http://jackaudio.org/") (synopsis "JACK audio connection kit") (description @@ -106,7 +276,7 @@ synchronous execution of all clients, and low latency operation.") (define-public jack-2 (package (inherit jack-1) - (name "jack") + (name "jack2") (version "1.9.10") (source (origin (method url-fetch) @@ -134,6 +304,114 @@ synchronous execution of all clients, and low latency operation.") ;; Most files are under GPLv2+, but some headers are under LGPLv2.1+ (license (list license:gpl2+ license:lgpl2.1+)))) +(define-public jalv + (package + (name "jalv") + (version "1.4.6") + (source (origin + (method url-fetch) + (uri (string-append "http://download.drobilla.net/jalv-" + version ".tar.bz2")) + (sha256 + (base32 + "1f1hcq74n3ziw8bk97mn5a1vgw028dxikv3fchaxd430pbbhqgl9")))) + (build-system waf-build-system) + (arguments `(#:tests? #f)) ; no check target + (inputs + `(("lv2" ,lv2) + ("lilv" ,lilv) + ("suil" ,suil) + ("gtk" ,gtk+-2) + ("gtkmm" ,gtkmm-2) + ("qt" ,qt-4) + ("jack" ,jack-1))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://drobilla.net/software/jalv/") + (synopsis "Simple LV2 host for JACK") + (description + "Jalv is a simple but fully featured LV2 host for JACK. It runs LV2 +plugins and exposes their ports as JACK ports, essentially making any LV2 +plugin function as a JACK application.") + (license license:isc))) + +(define-public ladspa + (package + (name "ladspa") + (version "1.13") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.ladspa.org/download/ladspa_sdk_" + version + ".tgz")) + (sha256 + (base32 + "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; the "test" target is a listening test only + #:phases + (alist-replace + 'configure + (lambda* (#:key inputs outputs #:allow-other-keys #:rest args) + (chdir "src") + (let ((out (assoc-ref outputs "out"))) + (substitute* "makefile" + (("/usr/lib/ladspa/") (string-append out "/lib/ladspa/")) + (("/usr/include/") (string-append out "/include/")) + (("/usr/bin/") (string-append out "/bin/")) + (("-mkdirhier") "mkdir -p") + (("^CC.*") "CC = gcc\n") + (("^CPP.*") "CPP = g++\n")))) + (alist-delete 'build %standard-phases)))) + (home-page "http://ladspa.org") + (synopsis "Linux Audio Developer's Simple Plugin API (LADSPA)") + (description + "LADSPA is a standard that allows software audio processors and effects +to be plugged into a wide range of audio synthesis and recording packages.") + (license license:lgpl2.1+))) + +(define-public lash + (package + (name "lash") + (version "0.6.0-rc2") + (source (origin + (method url-fetch) + ;; The tilde is not permitted in the builder name, but is used + ;; in the tarball. + (uri (string-append + "mirror://savannah/lash/lash-" + (string-join (string-split version #\-) "~") + ".tar.bz2")) + (file-name (string-append name "-" version ".tar.bz2")) + (sha256 + (base32 + "12z1vx3krrzsfccpah9xjs68900xvr7bw92wx8np5871i2yv47iw")))) + (build-system gnu-build-system) + (inputs + `(("bdb" ,bdb) + ("gtk" ,gtk+-2) + ("jack" ,jack-1) + ("readline" ,readline) + ("python" ,python-2))) + ;; According to pkg-config, packages depending on lash also need to have + ;; at least the following packages declared as inputs. + (propagated-inputs + `(("alsa-lib" ,alsa-lib) + ("dbus" ,dbus) + ("libxml2" ,libxml2))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://www.nongnu.org/lash/") + (synopsis "Audio application session manager") + (description + "LASH is a session management system for audio applications. It allows +you to save and restore audio sessions consisting of multiple interconneced +applications, restoring program state (i.e. loaded patches) and the +connections between them.") + (license license:gpl2+))) + (define-public liblo (package (name "liblo") @@ -158,3 +436,463 @@ synchronous execution of all clients, and low latency operation.") "liblo is a lightweight library that provides an easy to use implementation of the Open Sound Control (OSC) protocol.") (license license:lgpl2.1+))) + +(define-public lilv + (package + (name "lilv") + (version "0.20.0") + (source (origin + (method url-fetch) + (uri (string-append "http://download.drobilla.net/lilv-" + version + ".tar.bz2")) + (sha256 + (base32 + "0aj2plkx56iar8vzjbq2l7hi7sp0ml99m0h44rgwai2x4vqkk2j2")))) + (build-system waf-build-system) + (arguments `(#:tests? #f)) ; no check target + ;; required by lilv-0.pc + (propagated-inputs + `(("serd" ,serd) + ("sord" ,sord) + ("sratom" ,sratom))) + (inputs + `(("lv2" ,lv2))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://drobilla.net/software/lilv/") + (synopsis "Library to simplify use of LV2 plugins in applications") + (description + "Lilv is a C library to make the use of LV2 plugins as simple as possible +for applications. Lilv is the successor to SLV2, rewritten to be +significantly faster and have minimal dependencies.") + (license license:isc))) + +(define-public lv2 + (package + (name "lv2") + (version "1.10.0") + (source (origin + (method url-fetch) + (uri (string-append "http://lv2plug.in/spec/lv2-" + version + ".tar.bz2")) + (sha256 + (base32 + "1md41x9snrp4mcfyli7lyfpvcfa78nfy6xkdy84kppnl8m5qw378")))) + (build-system waf-build-system) + (arguments + `(#:tests? #f ; no check target + #:configure-flags '("--lv2-system"))) + (inputs + ;; Leaving off cairo and gtk+-2.0 which are needed for example plugins + `(("libsndfile" ,libsndfile))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://lv2plug.in/") + (synopsis "LV2 audio plugin specification") + (description + "LV2 is an open specification for audio plugins and host applications. +At its core, LV2 is a simple stable interface, accompanied by extensions which +add functionality to support the needs of increasingly powerful audio +software.") + (license license:isc))) + +(define-public lvtk + (package + (name "lvtk") + (version "1.2.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/lvtk/lvtk/archive/" + version + ".tar.gz")) + (sha256 + (base32 + "03nbj2cqcklqwh50zj2gwm07crh5iwqbpxbpzwbg5hvgl4k4rnjd")))) + (build-system waf-build-system) + (arguments + `(#:tests? #f ; no check target + #:python ,python-2 + #:configure-flags + (list (string-append "--boost-includes=" + (assoc-ref %build-inputs "boost") + "/include")))) + (inputs + `(("boost" ,boost) + ("lv2" ,lv2))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://github.com/lvtk/lvtk") + (synopsis "C++ libraries for LV2 plugins") + (description + "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and +extensions into easy to use C++ classes. It is the successor of +lv2-c++-tools.") + (license license:gpl3+))) + +(define-public patchage + (package + (name "patchage") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (string-append "http://download.drobilla.net/patchage-" + version + ".tar.bz2")) + (sha256 + (base32 + "1agdpwwi42176l4mxj0c4fsvdiv1ig56bfnnx0msckxmy57df8bb")))) + (build-system waf-build-system) + (arguments `(#:tests? #f)) ; no check target + (inputs + `(("alsa-lib" ,alsa-lib) + ("boost" ,boost) + ("jack" ,jack-1) + ("ganv" ,ganv) + ("glib" ,glib) + ("glibmm" ,glibmm) + ("gtkmm" ,gtkmm-2) + ("dbus" ,dbus) + ("dbus-glib" ,dbus-glib))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://drobilla.net/software/patchage/") + (synopsis "Modular patch bay for audio and MIDI systems") + (description + "Patchage is a modular patch bay for audio and MIDI systems based on JACK +and ALSA.") + (license license:gpl3+))) + +(define-public rubberband + (package + (name "rubberband") + (version "1.8.1") + (source (origin + (method url-fetch) + (uri + (string-append "https://bitbucket.org/breakfastquay/rubberband/get/v" + version + ".tar.bz2")) + (sha256 + (base32 + "05amrbrxx0da3w7m237q51799r8xgs4ffqabi2qv06hq8dpcj386")))) + (build-system gnu-build-system) + (arguments `(#:tests? #f)) ; no check target + (inputs + `(("ladspa" ,ladspa) + ("libsamplerate" ,libsamplerate) + ("vamp" ,vamp))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://breakfastquay.com/rubberband/") + (synopsis "Audio time-stretching and pitch-shifting library") + (description + "Rubber Band is a library and utility program that permits changing the +tempo and pitch of an audio recording independently of one another.") + (license license:gpl2+))) + +(define-public sratom + (package + (name "sratom") + (version "0.4.6") + (source (origin + (method url-fetch) + (uri (string-append "http://download.drobilla.net/sratom-" + version + ".tar.bz2")) + (sha256 + (base32 + "080jjiyxjnj7hf25844hd9rb01grvzz1rk8mxcdnakywmspbxfd4")))) + (build-system waf-build-system) + (arguments `(#:tests? #f)) ; no check target + (inputs + `(("lv2" ,lv2) + ("serd" ,serd) + ("sord" ,sord))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://drobilla.net/software/sratom/") + (synopsis "Library for serialising LV2 atoms to/from RDF") + (description + "Sratom is a library for serialising LV2 atoms to/from RDF, particularly +the Turtle syntax.") + (license license:isc))) + +(define-public suil + (package + (name "suil") + (version "0.8.2") + (source (origin + (method url-fetch) + (uri (string-append "http://download.drobilla.net/suil-" + version + ".tar.bz2")) + (sha256 + (base32 + "1s3adyiw7sa5gfvm5wasa61qa23629kprxyv6w8hbxdiwp0hhxkq")))) + (build-system waf-build-system) + (arguments `(#:tests? #f)) ; no check target + (inputs + `(("lv2" ,lv2) + ("gtk+-2" ,gtk+-2) + ("qt-4" ,qt-4))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://drobilla.net/software/suil/") + (synopsis "Library for loading and wrapping LV2 plugin UIs") + (description + "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs. + +Suil makes it possible to load a UI of a toolkit in a host using another +toolkit. The API is designed such that hosts do not need to explicitly +support specific toolkits – if Suil supports a particular toolkit, then UIs in +that toolkit will work in all hosts that use Suil automatically. + +Suil currently supports every combination of Gtk 2, Qt 4, and X11.") + (license license:isc))) + +(define-public timidity++ + (package + (name "timidity++") + (version "2.14.0") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/timidity/TiMidity++-" + version ".tar.bz2")) + (sha256 + (base32 + "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags + (list "--enable-audio=alsa,flac,jack,ao,vorbis,speex" + "--enable-ncurses" + "--enable-server" + "--enable-alsaseq" + (string-append "--with-default-path=" + (assoc-ref %outputs "out") "/etc/timidity")) + #:phases + (alist-cons-after + 'install 'install-config + (lambda _ + (let ((out (string-append (assoc-ref %outputs "out") + "/etc/timidity"))) + (mkdir-p out) + (call-with-output-file + (string-append out "/timidity.cfg") + (lambda (port) + (format port (string-append "source " + (assoc-ref %build-inputs "freepats") + "/share/freepats/freepats.cfg")))))) + %standard-phases))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("ao" ,ao) + ("flac" ,flac) + ("jack" ,jack-1) + ("libogg" ,libogg) + ("speex" ,speex) + ("ncurses" ,ncurses) + ("freepats" ,freepats))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://timidity.sourceforge.net/") + (synopsis "Software synthesizer for playing MIDI files") + (description + "TiMidity++ is a software synthesizer. It can play MIDI files by +converting them into PCM waveform data; give it a MIDI data along with digital +instrument data files, then it synthesizes them in real-time, and plays. It +can not only play sounds, but also can save the generated waveforms into hard +disks as various audio file formats.") + (license license:gpl2+))) + +(define-public vamp + (package + (name "vamp") + (version "2.5") + (source (origin + (method url-fetch) + (uri (string-append + "https://code.soundsoftware.ac.uk" + "/attachments/download/690/vamp-plugin-sdk-" + version + ".tar.gz")) + (sha256 + (base32 + "178kfgq08cmgdzv7g8dwyjp4adwx8q04riimncq4nqkm8ng9ywbv")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no check target + #:phases + (alist-cons-after + 'install 'remove-libvamp-hostsdk.la + (lambda* (#:key outputs #:allow-other-keys) + ;; https://bugs.launchpad.net/ubuntu/+source/vamp-plugin-sdk/+bug/1253656 + (for-each delete-file + (let ((out (assoc-ref outputs "out"))) + (list (string-append out "/lib/libvamp-sdk.la") + (string-append out "/lib/libvamp-hostsdk.la")))) + #t) + %standard-phases))) + (inputs + `(("libsndfile" ,libsndfile))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://vamp-plugins.org") + (synopsis "Modular and extensible audio processing system") + (description + "Vamp is an audio processing plugin system for plugins that extract +descriptive information from audio data — typically referred to as audio +analysis plugins or audio feature extraction plugins.") + (license + (license:x11-style + "https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/COPYING")))) + +(define-public libsbsms + (package + (name "libsbsms") + (version "2.0.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/sbsms/sbsms/" version + "/libsbsms-" version ".tar.gz")) + (sha256 + (base32 "1vmf84iy4dkwxv887grnlsfk43fmhd9gbg26gc2kgcv40sbkvayf")))) + (build-system gnu-build-system) + (native-inputs `(("automake" ,automake))) + (arguments + `(#:phases + (alist-cons-after + 'unpack 'fix-ar-lib-path + (lambda* (#:key inputs #:allow-other-keys) + ;; Originally a symlink to '/usr/local/share/automake-1.12/ar-lib'. + (delete-file "ar-lib") + (symlink + (string-append (assoc-ref inputs "automake") "/share/automake-" + ,(package-version automake) "/ar-lib") + "ar-lib")) + %standard-phases))) + (home-page "http://sbsms.sourceforge.net/") + (synopsis "Library for time stretching and pitch scaling of audio") + (description + "SBSMS (Subband Sinusoidal Modeling Synthesis) is software for time +stretching and pitch scaling of audio. This package contains the library.") + ;; There is no explicit declaration of a license, but a COPYING file + ;; containing gpl2. + (license license:gpl2))) + +(define-public soundtouch + (package + (name "soundtouch") + (version "1.8.0") + (source + (origin + (method url-fetch) + (uri + (string-append + "http://www.surina.net/soundtouch/soundtouch-" version ".tar.gz")) + (sha256 + (base32 "0sqn3wk4qz20vf0vz853l6dl1gnj1yhqxfwxqsc5lp529kbn2h9x")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("file" ,file))) + (arguments + '(#:phases + (alist-cons-before + 'configure 'bootstrap + (lambda _ + (unless (zero? (system* "sh" "bootstrap")) + (error "bootstrap failed")) + (substitute* '("configure") + (("/usr/bin/file") "file"))) + %standard-phases))) + (home-page "http://www.surina.net/soundtouch/") + (synopsis + "Audio processing library for changing tempo, pitch and playback rate") + (description + "SoundTouch is an audio processing library for changing the tempo, pitch +and playback rates of audio streams or audio files. It is intended for +application developers writing sound processing tools that require tempo/pitch +control functionality, or just for playing around with the sound effects.") + (license license:lgpl2.1+))) + +(define-public soxr + (package + (name "soxr") + (version "0.1.1") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://sourceforge/soxr/soxr-" version + "-Source.tar.xz")) + (sha256 + (base32 "1hmadwqfpg15vhwq9pa1sl5xslibrjpk6hpq2s9hfmx1s5l6ihfw")))) + (build-system cmake-build-system) + (arguments '(#:tests? #f)) ;no 'check' target + (home-page "http://sourceforge.net/p/soxr/wiki/Home/") + (synopsis "One-dimensional sample-rate conversion library") + (description + "The SoX Resampler library (libsoxr) performs one-dimensional sample-rate +conversion. It may be used, for example, to resample PCM-encoded audio.") + (license license:lgpl2.1+))) + +(define-public twolame + (package + (name "twolame") + (version "0.3.13") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/twolame/twolame-" version ".tar.gz")) + (sha256 + (base32 "0ahiqqng5pidwhj1wzph4vxxgxxgcfa3gl0gywipzx2ii7s35wwq")))) + (build-system gnu-build-system) + (inputs + `(("libsndfile" ,libsndfile))) + (native-inputs + `(("perl" ,perl) + ("which" ,which))) ;used in tests/test.pl + (home-page "http://www.twolame.org/") + (synopsis "MPEG Audio Layer 2 (MP2) encoder") + (description + "TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on +tooLAME by Mike Cheng, which in turn is based upon the ISO dist10 code and +portions of LAME.") + (license license:lgpl2.1+))) + +(define-public portaudio + (package + (name "portaudio") + (version "19.20140130") + (source + (origin + (method url-fetch) + (uri (string-append + "http://www.portaudio.com/archives/pa_stable_v" + (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version) + ".tgz")) + (sha256 + (base32 "0mwddk4qzybaf85wqfhxqlf0c5im9il8z03rd4n127k8y2jj9q4g")))) + (build-system gnu-build-system) + (inputs + ;; TODO: Add ASIHPI. + `(("alsa-lib" ,alsa-lib) + ("jack" ,jack-2))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (arguments '(#:tests? #f)) ;no 'check' target + (home-page "http://www.portaudio.com/") + (synopsis "Audio I/O library") + (description + "PortAudio is a portable C/C++ audio I/O library providing a simple API +to record and/or play sound using a callback function or a blocking read/write +interface.") + (license license:expat))) diff --git a/gnu/packages/avahi.scm b/gnu/packages/avahi.scm index cd87508d0c..517df32382 100644 --- a/gnu/packages/avahi.scm +++ b/gnu/packages/avahi.scm @@ -97,7 +97,7 @@ DNS-SD (for \"DNS-Based Service Discovery\") protocols.") ;; The Avahi daemon socket is expected by src/Makefile.am to be at ;; "$(localstatedir)/run/avahi-daemon/socket", so set $(localstatedir) ;; appropriately. - '(#:configure-flags '("--localstatedir=/"))) + '(#:configure-flags '("--localstatedir=/var"))) ;; XXX: Stale URL, missing replacement. See <http://bugs.gnu.org/18704>. (home-page "http://0pointer.de/lennart/projects/nss-mdns/") diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 698a6b6e03..13b1a1060f 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -29,6 +29,7 @@ #:use-module (gnu packages ed) #:use-module (gnu packages guile) #:use-module (gnu packages multiprecision) + #:use-module (gnu packages compression) #:use-module (gnu packages perl) #:use-module (gnu packages linux) #:use-module (gnu packages texinfo) @@ -36,7 +37,8 @@ #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix download) - #:use-module (guix build-system gnu)) + #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial)) ;;; Commentary: ;;; @@ -537,9 +539,50 @@ the 'share/locale' sub-directory of this package.") (alist-delete 'install ,phases))) ((#:configure-flags flags) `(append ,flags + ;; Use $(libdir)/locale as is the case by default. (list (string-append "libc_cv_localedir=" (assoc-ref %outputs "out") - "/share/locale"))))))))) + "/lib/locale"))))))))) + +(define-public glibc-utf8-locales + (package + (name "glibc-utf8-locales") + (version (package-version glibc)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build utils)) + #:builder (begin + (use-modules (srfi srfi-1) + (guix build utils)) + + (let* ((libc (assoc-ref %build-inputs "glibc")) + (gzip (assoc-ref %build-inputs "gzip")) + (out (assoc-ref %outputs "out")) + (localedir (string-append out "/lib/locale"))) + ;; 'localedef' needs 'gzip'. + (setenv "PATH" (string-append libc "/bin:" gzip "/bin")) + + (mkdir-p localedir) + (every (lambda (locale) + (zero? (system* "localedef" "--no-archive" + "--prefix" localedir "-i" locale + "-f" "UTF-8" + (string-append localedir "/" + locale + ".UTF-8")))) + + ;; These are the locales commonly used for + ;; tests---e.g., in Guile's i18n tests. + '("de_DE" "el_GR" "en_US" "fr_FR" "tr_TR")))))) + (inputs `(("glibc" ,glibc) + ("gzip" ,gzip))) + (synopsis "Small sample of UTF-8 locales") + (description + "This package provides a small sample of UTF-8 locales mostly useful in +test environments.") + (home-page (package-home-page glibc)) + (license (package-license glibc)))) (define-public tzdata (package diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 1766855c93..b64dab73cd 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -22,6 +22,7 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system python) #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages base) @@ -34,6 +35,63 @@ #:use-module (gnu packages vim) #:use-module (gnu packages zip)) +(define-public bedops + (package + (name "bedops") + (version "2.4.5") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/bedops/bedops/archive/v" + version ".tar.gz")) + (sha256 + (base32 + "0wmg6j0icimlrnsidaxrzf3hfgjvlkkcwvpdg7n4gg7hdv2m9ni5")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f + #:make-flags (list (string-append "BINDIR=" %output "/bin")) + #:phases + (alist-cons-after + 'unpack 'unpack-tarballs + (lambda _ + ;; FIXME: Bedops includes tarballs of minimally patched upstream + ;; libraries jansson, zlib, and bzip2. We cannot just use stock + ;; libraries because at least one of the libraries (zlib) is + ;; patched to add a C++ function definition (deflateInit2cpp). + ;; Until the Bedops developers offer a way to link against system + ;; libraries we have to build the in-tree copies of these three + ;; libraries. + + ;; See upstream discussion: + ;; https://github.com/bedops/bedops/issues/124 + + ;; Unpack the tarballs to benefit from shebang patching. + (with-directory-excursion "third-party" + (and (zero? (system* "tar" "xvf" "jansson-2.6.tar.bz2")) + (zero? (system* "tar" "xvf" "zlib-1.2.7.tar.bz2")) + (zero? (system* "tar" "xvf" "bzip2-1.0.6.tar.bz2")))) + ;; Disable unpacking of tarballs in Makefile. + (substitute* "system.mk/Makefile.linux" + (("^\tbzcat .*") "\t@echo \"not unpacking\"\n") + (("\\./configure") "CONFIG_SHELL=bash ./configure")) + (substitute* "third-party/zlib-1.2.7/Makefile.in" + (("^SHELL=.*$") "SHELL=bash\n"))) + (alist-delete 'configure %standard-phases)))) + (home-page "https://github.com/bedops/bedops") + (synopsis "Tools for high-performance genomic feature operations") + (description + "BEDOPS is a suite of tools to address common questions raised in genomic +studies---mostly with regard to overlap and proximity relationships between +data sets. It aims to be scalable and flexible, facilitating the efficient +and accurate analysis and management of large-scale genomic data. + +BEDOPS provides tools that perform highly efficient and scalable Boolean and +other set operations, statistical calculations, archiving, conversion and +other management of genomic data of arbitrary scale. Tasks can be easily +split by chromosome for distributing whole-genome analyses across a +computational cluster.") + (license license:gpl2+))) + (define-public bedtools (package (name "bedtools") @@ -197,8 +255,15 @@ Illumina, Roche 454, and the SOLiD platform.") "1k381ydranqxp09yf2y7w1d0chz5d59vb6jchi89hbb0prq19lk5")))) (build-system gnu-build-system) (arguments - '(#:tests? #f ;no check target - #:make-flags '("allall") + `(#:tests? #f ;no check target + #:make-flags '("allall" + ;; Disable unsupported `popcnt' instructions on + ;; architectures other than x86_64 + ,@(if (string-prefix? "x86_64" + (or (%current-target-system) + (%current-system))) + '() + '("POPCNT_CAPABILITY=0"))) #:phases (alist-replace 'unpack @@ -246,6 +311,73 @@ several alignment strategies enable effective alignment of RNA-seq reads, in particular, reads spanning multiple exons.") (license license:gpl3+))) +(define-public htseq + (package + (name "htseq") + (version "0.6.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/H/HTSeq/HTSeq-" + version ".tar.gz")) + (sha256 + (base32 + "1i85ppf2j2lj12m0x690qq5nn17xxk23pbbx2c83r8ayb5wngzwv")))) + (build-system python-build-system) + (arguments `(#:python ,python-2)) ; only Python 2 is supported + (inputs + `(("python-numpy" ,python2-numpy) + ("python-setuptools" ,python2-setuptools))) + (home-page "http://www-huber.embl.de/users/anders/HTSeq/") + (synopsis "Analysing high-throughput sequencing data with Python") + (description + "HTSeq is a Python package that provides infrastructure to process data +from high-throughput sequencing assays.") + (license license:gpl3+))) + +(define-public rseqc + (package + (name "rseqc") + (version "2.6.1") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://sourceforge/rseqc/" + version "/RSeQC-" version ".tar.gz")) + (sha256 + (base32 "09rf0x9d6apjja5l01cgprj7vigpw6kiqhy34ibwwlxil0db0ri4")) + (modules '((guix build utils))) + (snippet + '(begin + ;; remove bundled copy of pysam + (delete-file-recursively "lib/pysam") + (substitute* "setup.py" + ;; remove dependency on outdated "distribute" module + (("^from distribute_setup import use_setuptools") "") + (("^use_setuptools\\(\\)") "") + ;; do not use bundled copy of pysam + (("^have_pysam = False") "have_pysam = True")))))) + (build-system python-build-system) + (arguments `(#:python ,python-2)) + (inputs + `(("python-cython" ,python2-cython) + ("python-pysam" ,python2-pysam) + ("python-numpy" ,python2-numpy) + ("python-setuptools" ,python2-setuptools) + ("zlib" ,zlib))) + (native-inputs + `(("python-nose" ,python2-nose))) + (home-page "http://rseqc.sourceforge.net/") + (synopsis "RNA-seq quality control package") + (description + "RSeQC provides a number of modules that can comprehensively evaluate +high throughput sequence data, especially RNA-seq data. Some basic modules +inspect sequence quality, nucleotide composition bias, PCR bias and GC bias, +while RNA-seq specific modules evaluate sequencing saturation, mapped reads +distribution, coverage uniformity, strand specificity, etc.") + (license license:gpl3+))) + (define-public samtools (package (name "samtools") diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm new file mode 100644 index 0000000000..ab46143202 --- /dev/null +++ b/gnu/packages/certs.scm @@ -0,0 +1,118 @@ +;;; 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 certs) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) + #:use-module (gnu packages) + #:use-module (gnu packages gnuzilla) + #:use-module (gnu packages openssl) + #:use-module (gnu packages python)) + +(define certdata2pem + (package + (name "certdata2pem") + (version "2013") + (source + (origin + (method url-fetch) + (uri + "http://pkgs.fedoraproject.org/cgit/ca-certificates.git/plain/certdata2pem.py?id=053dde8a2f5901e97028a58bf54e7d0ef8095a54") + (sha256 + (base32 + "0zscrm41gnsf14zvlkxhy00h3dmgidyz645ldpda3y3vabnwv8dx")))) + (build-system trivial-build-system) + (inputs + `(("python" ,python-2))) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((bin (string-append %output "/bin"))) + (copy-file (assoc-ref %build-inputs "source") "certdata2pem.py") + (chmod "certdata2pem.py" #o555) + (substitute* "certdata2pem.py" + (("/usr/bin/python") + (string-append (assoc-ref %build-inputs "python") + "/bin/python")) + ;; Use the file extension .pem instead of .crt. + (("crt") "pem")) + (mkdir-p bin) + (copy-file "certdata2pem.py" + (string-append bin "/certdata2pem.py")))))) + (synopsis "Python script to extract .pem data from certificate collection") + (description + "certdata2pem.py is a Python script to transform X.509 certificate +\"source code\" as contained, for example, in the Mozilla sources, into +.pem formatted certificates.") + (license license:gpl2+) + (home-page "http://pkgs.fedoraproject.org/cgit/ca-certificates.git/"))) + +(define-public nss-certs + (package (inherit nss) ; to reuse the source, version and some metadata + (name "nss-certs") + (build-system gnu-build-system) + (outputs '("out")) + (native-inputs + `(("certdata2pem" ,certdata2pem) + ("openssl" ,openssl))) + (inputs '()) + (propagated-inputs '()) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26)) + #:imported-modules ((guix build gnu-build-system) + (guix build utils)) + #:phases + (alist-cons-after + 'unpack 'install + (lambda _ + (let ((certsdir (string-append %output "/etc/ssl/certs/"))) + (mkdir-p certsdir) + (with-directory-excursion "nss/lib/ckfw/builtins/" + ;; extract single certificates from blob + (system* "certdata2pem.py" "certdata.txt") + ;; copy the .pem files into the output + (for-each + (lambda (file) + (copy-file file (string-append certsdir file))) + ;; FIXME: Some of the file names are UTF8 (?) and cause an + ;; error message such as + ;; find-files: + ;; ./EBG_Elektronik_Sertifika_Hizmet_Sa??lay??c??s??:2.8.76.175.115.66.28.142.116.2.pem: + ;; No such file or directory + (find-files "." ".*\\.pem"))) + (with-directory-excursion certsdir + ;; create symbolic links for and by openssl + ;; Strangely, the call (system* "c_rehash" certsdir) + ;; from inside the build dir fails with + ;; "Usage error; try -help." + ;; This looks like a bug in openssl-1.0.2, but we can also + ;; switch into the target directory. + (system* "c_rehash" ".")))) + (map (cut assq <> %standard-phases) + '(set-paths unpack))))) + (synopsis "CA certificates from Mozilla") + (description + "This package provides certificates for Certification Authorities (CA) +taken from the NSS package and thus ultimately from the Mozilla project."))) diff --git a/gnu/packages/complexity.scm b/gnu/packages/complexity.scm index 5216b7e39c..f0cd11e245 100644 --- a/gnu/packages/complexity.scm +++ b/gnu/packages/complexity.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,14 +28,14 @@ (define-public complexity (package (name "complexity") - (version "1.1") + (version "1.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/complexity/complexity-" version ".tar.gz")) (sha256 (base32 - "1aad7n35ymxbj5dlpvm64dcd71b6i7hbmps0g7nkf47vj53l6y2j")))) + "0pmlhlj1chl4caaqffvn1cy9z8gwmjbx97syi7pdfa0vqygkql6d")))) (build-system gnu-build-system) (native-inputs `(("texinfo" ,texinfo) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index cda1984f6a..47a0361488 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -324,3 +325,21 @@ processed by a Bourne-type shell to unpack the original collection of files. This package is mostly for compatibility and historical interest.") (license license:gpl3+))) +(define-public libmspack + (package + (name "libmspack") + (version "0.5") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.cabextract.org.uk/libmspack/libmspack-" + version "alpha.tar.gz")) + (sha256 + (base32 "04413hynb7zizxnkgy9riik3612dwirkpr6fcjrnfl2za9sz4rw9")))) + (build-system gnu-build-system) + (home-page "http://www.cabextract.org.uk/libmspack/") + (synopsis "Compression tools for some formats used by Microsoft") + (description + "The purpose of libmspack is to provide both compression and +decompression of some loosely related file formats used by Microsoft.") + (license license:lgpl2.1+))) diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index f34966c762..e4d609aaf2 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -20,7 +20,8 @@ #:use-module ((guix licenses) #:select (lgpl2.1+)) #:use-module (guix packages) #:use-module (guix download) - #:use-module (guix build-system gnu)) + #:use-module (guix build-system gnu) + #:use-module (gnu packages)) (define-public chmlib (package @@ -32,7 +33,8 @@ version ".tar.bz2")) (sha256 (base32 - "18zzb4x3z0d7fjh1x5439bs62dmgsi4c1pg3qyr7h5gp1i5xcj9l")))) + "18zzb4x3z0d7fjh1x5439bs62dmgsi4c1pg3qyr7h5gp1i5xcj9l")) + (patches (list (search-patch "chmlib-inttypes.patch"))))) (build-system gnu-build-system) (home-page "http://www.jedrea.com/chmlib/") (synopsis "Library for CHM files") diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm new file mode 100644 index 0000000000..0ee639d20a --- /dev/null +++ b/gnu/packages/freedesktop.scm @@ -0,0 +1,46 @@ +;;; 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 freedesktop) + #:use-module ((guix licenses) #:select (expat)) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public xdg-utils + (package + (name "xdg-utils") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://portland.freedesktop.org/download/xdg-utils-" + version ".tgz")) + (sha256 + (base32 + "1b019d3r1379b60p33d6z44kx589xjgga62ijz9vha95dg8vgbi1")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f)) ; no check target + (home-page "http://portland.freedesktop.org/") + (synopsis "Freedesktop.org scripts for desktop integration") + (description "The xdg-utils package is a set of simple scripts that +provide basic desktop integration functions in the framework of the +freedesktop.org project.") + (license expat)))
\ No newline at end of file diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm index c5649812c0..f002122bb6 100644 --- a/gnu/packages/ftp.scm +++ b/gnu/packages/ftp.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,10 +18,11 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages ftp) - #:use-module ((guix licenses) #:select (gpl3+ clarified-artistic)) - #:use-module (guix packages) - #:use-module (guix download) + #:use-module ((guix licenses) #:select (gpl2+ gpl3+ clarified-artistic)) #:use-module (guix build-system gnu) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (gnu packages) #:use-module (gnu packages ncurses) #:use-module (gnu packages readline) #:use-module (gnu packages pkg-config) @@ -103,3 +105,41 @@ File Transfer Protocol (FTP) servers. This includes 'ncftp', an interactive FTP browser, as well as non-interactive commands such as 'ncftpput' and 'ncftpget'.") (license clarified-artistic))) + + +(define-public weex + (package + (name "weex") + (version "2.6.1.5") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://sourceforge/weex/weex/" version + "/weex-" version ".tar.gz")) + (sha256 + (base32 + "0f5cj5p852wkm24mzy2sxgxyahv2p9rk4wlq21j310pi7wlhgwyl")) + (patches (list (search-patch "weex-vacopy.patch"))))) + (build-system gnu-build-system) + (arguments + `(#:phases + (alist-replace 'configure + ;; configure does not work followed by both "SHELL=..." and + ;; "CONFIG_SHELL=..."; set environment variables instead + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bash (which "bash"))) + (setenv "SHELL" bash) + (setenv "CONFIG_SHELL" bash) + (zero? (system* bash "./configure" + (string-append "--prefix=" out))))) + %standard-phases))) + (home-page "http://weex.sourceforge.net/") + (synopsis "Non-interactive client for FTP synchronization") + (description + "Weex is a utility designed to automate the task of remotely +maintaining a web page or other FTP archive. It synchronizes a set of +local files to a remote server by performing uploads and remote deletes +as required.") + (license gpl2+))) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index a9c4d6bd11..789a02e577 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -7,6 +7,8 @@ ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2014 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. ;;; @@ -398,7 +400,7 @@ exec ~a/bin/freedink -refdir ~a/share/dink\n" (define-public xboard (package (name "xboard") - (version "4.7.3") + (version "4.8.0") (source (origin (method url-fetch) @@ -406,17 +408,8 @@ exec ~a/bin/freedink -refdir ~a/share/dink\n" ".tar.gz")) (sha256 (base32 - "1amy9krr0qkvcc7gnp3i9x9ma91fc5cq8hy3gdc7rmfsaczv1l3z")))) + "05rdj0nyirc4g1qi5hhrjy45y52ihp1j3ldq2c5bwrz0gzy4i3y8")))) (build-system gnu-build-system) - (arguments - '(#:phases - (alist-cons-before - 'configure 'pre-conf - ;; This is GNU. So use gnuchess as the first choice of engine - (lambda _ - (substitute* "xboard.conf.in" - (("-firstChessProgram fairymax") "-firstChessProgram gnuchess"))) - %standard-phases))) (inputs `(("cairo" ,cairo) ("librsvg" ,librsvg) ("libxt" ,libxt) @@ -842,3 +835,27 @@ straight into any libretro-compatible frontend. RetroArch is the official reference frontend for the libretro API, currently used by most as a modular multi-system game/emulator system.") (license license:gpl3+))) + +(define-public gnugo + (package + (name "gnugo") + (version "3.8") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gnugo/gnugo-" version + ".tar.gz")) + (sha256 + (base32 + "0wkahvqpzq6lzl5r49a4sd4p52frdmphnqsfdv7gdp24bykdfs6s")))) + (build-system gnu-build-system) + (inputs `(("readline" ,readline))) + (synopsis "Play the game of Go") + (description "GNU Go is a program that plays the game of Go, in which +players place stones on a grid to form territory or capture other stones. +While it can be played directly from the terminal, rendered in ASCII +characters, it is also possible to play GNU Go with 3rd party graphical +interfaces or even in Emacs. It supports the standard game storage format +(SGF, Smart Game Format) and inter-process communication format (GMP, Go +Modem Protocol).") + (home-page "http://www.gnu.org/software/gnugo/") + (license license:gpl3+))) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 73fb7f50dc..52be520df5 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -995,6 +995,28 @@ high-quality vector-based 2D library with antialiasing and alpha composition.") creating interactive structured graphics.") (license license:lgpl2.0+))) +(define-public libgnomecanvasmm + (package + (name "libgnomecanvasmm") + (version "2.26.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr")))) + (build-system gnu-build-system) + (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas))) + (native-inputs + `(("gtkmm-2" ,gtkmm-2) + ("pkg-config" ,pkg-config))) + (home-page "http://gtkmm.org") + (synopsis "C++ bindings to the GNOME Canvas library") + (description "C++ bindings to the GNOME Canvas library.") + (license license:lgpl2.0+))) + (define-public libgnomeui (package (name "libgnomeui") diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index a1a0bf040d..335cfd1983 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> @@ -122,15 +122,15 @@ in the Mozilla clients.") (define-public nss (package (name "nss") - (version "3.17.3") + (version "3.17.4") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/" - "releases/NSS_3_17_3_RTM/src/nss-3.17.3.tar.gz")) + "releases/NSS_3_17_4_RTM/src/nss-3.17.4.tar.gz")) (sha256 (base32 - "1m91z80x4zh1mxgf53bl33lp43gn1wxxx0y26mgz511gb81ykmgl")) + "0ycxzybgn4bq0i6j5zjdjl70n3s8a742yixyik4pw8x4h4cav60x")) ;; Create nss.pc and nss-config. (patches (list (search-patch "nss-pkgconfig.patch"))))) (build-system gnu-build-system) @@ -224,7 +224,25 @@ standards.") version "/" name "-" version ".tar.bz2")) (sha256 (base32 - "0q5ilgfybcrbwf9hq9zc1cpnlhq1pddnnjmdrxrcrrg8lgx5kkc2")))) + "0q5ilgfybcrbwf9hq9zc1cpnlhq1pddnnjmdrxrcrrg8lgx5kkc2")) + (patches (map search-patch + '("icecat-CVE-2015-0822.patch" + "icecat-CVE-2015-0827-pt-1.patch" + "icecat-CVE-2015-0827-pt-2.patch" + "icecat-CVE-2015-0827-pt-3.patch" + "icecat-CVE-2015-0831-pt-1.patch" + "icecat-CVE-2015-0831-pt-2.patch" + "icecat-CVE-2015-0836-pt-01.patch" + "icecat-CVE-2015-0836-pt-02.patch" + "icecat-CVE-2015-0836-pt-03.patch" + "icecat-CVE-2015-0836-pt-04.patch" + "icecat-CVE-2015-0836-pt-05.patch" + "icecat-CVE-2015-0836-pt-06.patch" + "icecat-CVE-2015-0836-pt-07.patch" + "icecat-CVE-2015-0836-pt-08.patch" + "icecat-CVE-2015-0836-pt-09.patch" + "icecat-CVE-2015-0836-pt-10.patch" + "icecat-CVE-2015-0836-pt-11.patch"))))) (build-system gnu-build-system) (inputs `(("alsa-lib" ,alsa-lib) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 55d2a198eb..c5ccfc271b 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -22,6 +22,9 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages compression) #:use-module (gnu packages multiprecision) #:use-module (gnu packages boost)) @@ -63,3 +66,89 @@ many more.") ;; The 'LICENSE' file explains that a subset is available under more ;; permissive licenses. (license license:gpl3+))) + +(define-public ilmbase + (package + (name "ilmbase") + (version "2.2.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://savannah/openexr/ilmbase-" + version ".tar.gz")) + (sha256 + (base32 + "1izddjwbh1grs8080vmaix72z469qy29wrvkphgmqmcm0sv1by7c")))) + (build-system gnu-build-system) + (home-page "http://www.openexr.com/") + (synopsis "Utility C++ libraries for threads, maths, and exceptions") + (description + "IlmBase provides several utility libraries for C++. Half is a class +that encapsulates ILM's 16-bit floating-point format. IlmThread is a thread +abstraction. Imath implements 2D and 3D vectors, 3x3 and 4x4 matrices, +quaternions and other useful 2D and 3D math functions. Iex is an +exception-handling library.") + (license license:bsd-3))) + +(define-public openexr + (package + (name "openexr") + (version "2.2.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://savannah/openexr/openexr-" + version ".tar.gz")) + (sha256 + (base32 + "0ca2j526n4wlamrxb85y2jrgcv0gf21b3a19rr0gh4rjqkv1581n")) + (modules '((guix build utils))) + (snippet + '(substitute* (find-files "." "tmpDir\\.h") + (("\"/var/tmp/\"") + "\"/tmp/\""))) + (patches (list (search-patch "openexr-missing-samples.patch"))))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (propagated-inputs + `(("ilmbase" ,ilmbase) ;used in public headers + ("zlib" ,zlib))) ;OpenEXR.pc reads "-lz" + (home-page "http://www.openexr.com") + (synopsis "High-dynamic range file format library") + (description + "OpenEXR is a high dynamic-range (HDR) image file format developed for +use in computer imaging applications. The IlmImf C++ libraries support +storage of the \"EXR\" file format for storing 16-bit floating-point images.") + (license license:bsd-3))) + +(define-public ctl + (package + (name "ctl") + (version "1.5.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ampas/CTL/archive/ctl-" + version ".tar.gz")) + (sha256 + (base32 + "1gg04pyvw0m398akn0s1l07g5b1haqv5na1wpi5dii1jjd1w3ynp")))) + (build-system cmake-build-system) + (arguments '(#:tests? #f)) ;no 'test' target + + ;; Headers include OpenEXR and IlmBase headers. + (propagated-inputs `(("openexr" ,openexr))) + + (home-page "http://ampasctl.sourceforge.net") + (synopsis "Color Transformation Language") + (description + "The Color Transformation Language, or CTL, is a small programming +language that was designed to serve as a building block for digital color +management systems. CTL allows users to describe color transforms in a +concise and unambiguous way by expressing them as programs. In order to apply +a given transform to an image, the color management system instructs a CTL +interpreter to load and run the CTL program that describes the transform. The +original and the transformed image constitute the CTL program's input and +output.") + + ;; The web site says it's under a BSD-3 license, but the 'LICENSE' file + ;; and headers use different wording. + (license (license:bsd-style "file://LICENSE")))) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index da39047196..a5022ba116 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -27,6 +27,7 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix build-system python) + #:use-module (guix build-system waf) #:use-module (gnu packages compression) #:use-module (gnu packages fontutils) #:use-module (gnu packages ghostscript) @@ -209,6 +210,33 @@ longer provided by recent pango releases. pangox-compat provides the functions which were removed.") (license license:lgpl2.0+))) +(define-public ganv + (package + (name "ganv") + (version "1.4.2") + (source (origin + (method url-fetch) + (uri (string-append "http://download.drobilla.net/ganv-" + version + ".tar.bz2")) + (sha256 + (base32 + "0g7s5mp14qgbfjdql0k1s8464r21g47ssn5dws6jazsnw6njhl0l")))) + (build-system waf-build-system) + (arguments `(#:tests? #f)) ; no check target + (inputs + `(("gtk" ,gtk+-2) + ("gtkmm" ,gtkmm-2))) + (native-inputs + `(("glib" ,glib "bin") ; for glib-genmarshal, etc. + ("pkg-config" ,pkg-config))) + (home-page "http://drobilla.net/software/ganv/") + (synopsis "GTK+ widget for interactive graph-like environments") + (description + "Ganv is an interactive GTK+ widget for interactive “boxes and lines” or +graph-like environments, e.g. modular synths or finite state machine +diagrams.") + (license license:gpl3+))) (define-public gtksourceview (package diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 4a86f63bdb..c486742c14 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -48,6 +48,58 @@ #:use-module (gnu packages zip) #:use-module (gnu packages texinfo)) +(define-public ant + (package + (name "ant") + (version "1.9.4") + (source (origin + (method url-fetch) + (uri (string-append + "https://www.apache.org/dist/ant/source/apache-ant-" + version "-src.tar.gz")) + (sha256 + (base32 + "09kf5s1ir0rdrclsy174bsvbdcbajza9fja490w4mmvcpkw3zpak")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no "check" target + #:phases + (alist-cons-after + 'unpack 'remove-scripts + ;; Remove bat / cmd scripts for DOS as well as the antRun and runant + ;; wrappers. + (lambda _ + (for-each delete-file + (find-files "src/script" + "(.*\\.(bat|cmd)|runant.*|antRun.*)"))) + (alist-replace + 'build + (lambda _ + (setenv "JAVA_HOME" + (assoc-ref %build-inputs "icedtea6")) + ;; Disable tests to avoid dependency on hamcrest-core, which needs + ;; Ant to build. This is necessary in addition to disabling the + ;; "check" phase, because the dependency on "test-jar" would always + ;; result in the tests to be run. + (substitute* "build.xml" + (("depends=\"jars,test-jar\"") "depends=\"jars\"")) + (zero? (system* "bash" "bootstrap.sh" + (string-append "-Ddist.dir=" + (assoc-ref %outputs "out"))))) + (alist-delete + 'configure + (alist-delete 'install %standard-phases)))))) + (native-inputs + `(("icedtea6" ,icedtea6))) + (home-page "http://ant.apache.org") + (synopsis "Build tool for Java") + (description + "Ant is a platform-independent build tool for Java. It is similar to +make but is implemented using the Java language, requires the Java platform, +and is best suited to building Java projects. Ant uses XML to describe the +build process and its dependencies, whereas Make uses Makefile format.") + (license license:asl2.0))) + (define-public icedtea6 (package (name "icedtea6") diff --git a/gnu/packages/libffcall.scm b/gnu/packages/libffcall.scm index 010c22e38c..74d6b6347f 100644 --- a/gnu/packages/libffcall.scm +++ b/gnu/packages/libffcall.scm @@ -41,7 +41,7 @@ "1lwdskc2w4rr98x9flr2726lmj4190l16r0izg7gqxy50801wwgd")))) (build-system gnu-build-system) (arguments `(#:parallel-build? #f)) - (synopsis "Foreign function call libraries") + (synopsis "Foreign function calls from interpreters") (description "GNU Libffcall is a collection of libraries that can be used to build foreign function call interfaces in embedded interpreters.") diff --git a/gnu/packages/linux-libre-i686.conf b/gnu/packages/linux-libre-i686.conf index 2274ea2879..3c82b91614 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 3.19.0-gnu Kernel Configuration +# Linux/x86 3.18.4-gnu Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -88,7 +88,6 @@ CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_DOMAIN=y -CONFIG_GENERIC_MSI_IRQ=y # CONFIG_IRQ_DOMAIN_DEBUG is not set CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y @@ -128,6 +127,7 @@ CONFIG_TASK_IO_ACCOUNTING=y # RCU Subsystem # CONFIG_TREE_RCU=y +# CONFIG_PREEMPT_RCU is not set # CONFIG_TASKS_RCU is not set CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_FANOUT=32 @@ -148,7 +148,7 @@ CONFIG_CGROUP_DEVICE=y CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y CONFIG_CGROUP_CPUACCT=y -CONFIG_PAGE_COUNTER=y +CONFIG_RESOURCE_COUNTERS=y CONFIG_MEMCG=y CONFIG_MEMCG_SWAP=y # CONFIG_MEMCG_SWAP_ENABLED is not set @@ -179,7 +179,6 @@ CONFIG_RD_LZMA=y CONFIG_RD_XZ=y CONFIG_RD_LZO=y CONFIG_RD_LZ4=y -CONFIG_INIT_FALLBACK=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y @@ -283,7 +282,6 @@ CONFIG_OLD_SIGACTION=y # GCOV-based kernel profiling # # CONFIG_GCOV_KERNEL is not set -CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y @@ -295,11 +293,6 @@ 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_STOP_MACHINE=y CONFIG_BLOCK=y @@ -457,7 +450,6 @@ CONFIG_SCHED_MC=y # CONFIG_PREEMPT_NONE is not set CONFIG_PREEMPT_VOLUNTARY=y # CONFIG_PREEMPT is not set -CONFIG_X86_UP_APIC_MSI=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y @@ -553,7 +545,6 @@ 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_EFI=y CONFIG_EFI_STUB=y CONFIG_SECCOMP=y @@ -594,6 +585,7 @@ CONFIG_PM_SLEEP_SMP=y CONFIG_PM_WAKELOCKS=y CONFIG_PM_WAKELOCKS_LIMIT=100 CONFIG_PM_WAKELOCKS_GC=y +CONFIG_PM_RUNTIME=y CONFIG_PM=y CONFIG_PM_DEBUG=y CONFIG_PM_ADVANCED_DEBUG=y @@ -642,7 +634,6 @@ CONFIG_ACPI_APEI_PCIEAER=y CONFIG_ACPI_APEI_EINJ=m # CONFIG_ACPI_APEI_ERST_DEBUG is not set CONFIG_ACPI_EXTLOG=m -# CONFIG_PMIC_OPREGION is not set CONFIG_SFI=y CONFIG_X86_APM_BOOT=y CONFIG_APM=m @@ -671,7 +662,7 @@ CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y # -# CPU frequency scaling drivers +# x86 CPU frequency scaling drivers # CONFIG_X86_INTEL_PSTATE=y CONFIG_X86_PCC_CPUFREQ=y @@ -743,6 +734,7 @@ CONFIG_PCI_ATS=y CONFIG_PCI_IOV=y CONFIG_PCI_PRI=y CONFIG_PCI_PASID=y +CONFIG_PCI_IOAPIC=y CONFIG_PCI_LABEL=y # @@ -864,7 +856,6 @@ CONFIG_SYN_COOKIES=y CONFIG_NET_IPVTI=m CONFIG_NET_UDP_TUNNEL=m CONFIG_NET_FOU=m -CONFIG_NET_FOU_IP_TUNNELS=y CONFIG_GENEVE=m CONFIG_INET_AH=m CONFIG_INET_ESP=m @@ -976,7 +967,6 @@ CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_IRC=m CONFIG_NF_NAT_SIP=m CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_REDIRECT=m CONFIG_NETFILTER_SYNPROXY=m CONFIG_NF_TABLES=m CONFIG_NF_TABLES_INET=m @@ -989,7 +979,6 @@ CONFIG_NFT_COUNTER=m CONFIG_NFT_LOG=m CONFIG_NFT_LIMIT=m CONFIG_NFT_MASQ=m -CONFIG_NFT_REDIR=m CONFIG_NFT_NAT=m CONFIG_NFT_QUEUE=m CONFIG_NFT_REJECT=m @@ -1158,7 +1147,6 @@ CONFIG_NF_NAT_IPV4=m CONFIG_NFT_CHAIN_NAT_IPV4=m CONFIG_NF_NAT_MASQUERADE_IPV4=m CONFIG_NFT_MASQ_IPV4=m -CONFIG_NFT_REDIR_IPV4=m CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_PPTP=m @@ -1199,7 +1187,6 @@ CONFIG_NF_NAT_IPV6=m CONFIG_NFT_CHAIN_NAT_IPV6=m CONFIG_NF_NAT_MASQUERADE_IPV6=m CONFIG_NFT_MASQ_IPV6=m -CONFIG_NFT_REDIR_IPV6=m CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m @@ -1299,7 +1286,6 @@ CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_BRIDGE_VLAN_FILTERING=y CONFIG_HAVE_NET_DSA=y CONFIG_NET_DSA=m -CONFIG_NET_DSA_HWMON=y CONFIG_NET_DSA_TAG_BRCM=y CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y @@ -1395,7 +1381,6 @@ CONFIG_NET_ACT_PEDIT=m CONFIG_NET_ACT_SIMP=m CONFIG_NET_ACT_SKBEDIT=m CONFIG_NET_ACT_CSUM=m -CONFIG_NET_ACT_VLAN=m # CONFIG_NET_CLS_IND is not set CONFIG_NET_SCH_FIFO=y CONFIG_DCB=y @@ -1407,16 +1392,15 @@ CONFIG_BATMAN_ADV_NC=y CONFIG_BATMAN_ADV_MCAST=y # CONFIG_BATMAN_ADV_DEBUG is not set CONFIG_OPENVSWITCH=m -CONFIG_OPENVSWITCH_GRE=m -CONFIG_OPENVSWITCH_VXLAN=m -CONFIG_OPENVSWITCH_GENEVE=m +CONFIG_OPENVSWITCH_GRE=y +CONFIG_OPENVSWITCH_VXLAN=y +CONFIG_OPENVSWITCH_GENEVE=y CONFIG_VSOCKETS=m CONFIG_VMWARE_VMCI_VSOCKETS=m CONFIG_NETLINK_MMAP=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_HSR=m -# CONFIG_NET_SWITCHDEV is not set CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y @@ -1565,7 +1549,7 @@ CONFIG_VLSI_FIR=m CONFIG_VIA_FIR=m CONFIG_MCS_FIR=m CONFIG_BT=m -CONFIG_BT_BREDR=y +CONFIG_BT_6LOWPAN=m CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -1573,8 +1557,6 @@ CONFIG_BT_BNEP_MC_FILTER=y CONFIG_BT_BNEP_PROTO_FILTER=y CONFIG_BT_CMTP=m CONFIG_BT_HIDP=m -CONFIG_BT_LE=y -CONFIG_BT_6LOWPAN=m # # Bluetooth device drivers @@ -1627,7 +1609,6 @@ CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y CONFIG_MAC80211_RC_MINSTREL_HT=y -CONFIG_MAC80211_RC_MINSTREL_VHT=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y @@ -1679,8 +1660,7 @@ CONFIG_NFC_MRVL=m CONFIG_NFC_MRVL_USB=m CONFIG_NFC_ST21NFCA=m CONFIG_NFC_ST21NFCA_I2C=m -CONFIG_NFC_ST21NFCB=m -CONFIG_NFC_ST21NFCB_I2C=m +# CONFIG_NFC_ST21NFCB is not set # # Device Drivers @@ -1700,9 +1680,7 @@ CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_EXTRA_FIRMWARE="" CONFIG_FW_LOADER_USER_HELPER=y # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set -CONFIG_WANT_DEV_COREDUMP=y CONFIG_ALLOW_DEV_COREDUMP=y -CONFIG_DEV_COREDUMP=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set CONFIG_SYS_HYPERVISOR=y @@ -1711,7 +1689,6 @@ CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_REGMAP=y CONFIG_REGMAP_I2C=y CONFIG_REGMAP_SPI=y -CONFIG_REGMAP_SPMI=m CONFIG_REGMAP_MMIO=y CONFIG_REGMAP_IRQ=y CONFIG_DMA_SHARED_BUFFER=y @@ -2173,7 +2150,7 @@ CONFIG_SCSI_LPFC=m CONFIG_SCSI_SIM710=m CONFIG_SCSI_SYM53C416=m CONFIG_SCSI_DC395x=m -CONFIG_SCSI_AM53C974=m +CONFIG_SCSI_DC390T=m CONFIG_SCSI_T128=m CONFIG_SCSI_U14_34F=m CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y @@ -2181,7 +2158,6 @@ CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y CONFIG_SCSI_U14_34F_MAX_TAGS=8 CONFIG_SCSI_ULTRASTOR=m CONFIG_SCSI_NSP32=m -CONFIG_SCSI_WD719X=m CONFIG_SCSI_DEBUG=m CONFIG_SCSI_PMCRAID=m CONFIG_SCSI_PM8001=m @@ -2398,7 +2374,6 @@ CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m CONFIG_NET_TEAM_MODE_LOADBALANCE=m CONFIG_MACVLAN=m CONFIG_MACVTAP=m -CONFIG_IPVLAN=m CONFIG_VXLAN=m CONFIG_NETCONSOLE=m CONFIG_NETCONSOLE_DYNAMIC=y @@ -2478,7 +2453,6 @@ CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y CONFIG_NET_DSA_MV88E6131=m CONFIG_NET_DSA_MV88E6123_61_65=m CONFIG_NET_DSA_MV88E6171=m -CONFIG_NET_DSA_MV88E6352=m CONFIG_NET_DSA_BCM_SF2=m CONFIG_ETHERNET=y CONFIG_MDIO=m @@ -2516,7 +2490,6 @@ CONFIG_B44=m CONFIG_B44_PCI_AUTOSELECT=y CONFIG_B44_PCICORE_AUTOSELECT=y CONFIG_B44_PCI=y -CONFIG_BCMGENET=m CONFIG_BNX2=m CONFIG_CNIC=m CONFIG_TIGON3=m @@ -2583,7 +2556,7 @@ CONFIG_IXGBEVF=m CONFIG_I40E=m CONFIG_I40E_VXLAN=y CONFIG_I40E_DCB=y -CONFIG_I40E_FCOE=y +# CONFIG_I40E_FCOE is not set CONFIG_I40EVF=m CONFIG_FM10K=m CONFIG_FM10K_VXLAN=y @@ -2655,7 +2628,6 @@ CONFIG_8139TOO_8129=y CONFIG_R8169=m CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=m -CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SAMSUNG=y CONFIG_SXGBE_ETH=m CONFIG_NET_VENDOR_SEEQ=y @@ -2677,8 +2649,10 @@ CONFIG_SMSC911X=m CONFIG_SMSC9420=m CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=m -CONFIG_STMMAC_PLATFORM=m +CONFIG_STMMAC_PLATFORM=y # CONFIG_STMMAC_PCI is not set +# CONFIG_STMMAC_DEBUG_FS is not set +# CONFIG_STMMAC_DA is not set CONFIG_NET_VENDOR_SUN=y CONFIG_HAPPYMEAL=m CONFIG_SUNGEM=m @@ -2833,7 +2807,6 @@ CONFIG_ATH9K_STATION_STATISTICS=y CONFIG_ATH9K_WOW=y CONFIG_ATH9K_RFKILL=y CONFIG_ATH9K_CHANNEL_CONTEXT=y -CONFIG_ATH9K_PCOEM=y CONFIG_ATH9K_HTC=m CONFIG_ATH9K_HTC_DEBUGFS=y CONFIG_CARL9170=m @@ -2920,7 +2893,7 @@ CONFIG_IWLDVM=m CONFIG_IWLMVM=m CONFIG_IWLWIFI_OPMODE_MODULAR=y # CONFIG_IWLWIFI_BCAST_FILTERING is not set -# CONFIG_IWLWIFI_UAPSD is not set +CONFIG_IWLWIFI_UAPSD=y # # Debugging Options @@ -3064,6 +3037,7 @@ CONFIG_X25_ASY=m CONFIG_SBNI=m # CONFIG_SBNI_MULTILINE is not set CONFIG_IEEE802154_DRIVERS=m +# CONFIG_IEEE802154_FAKEHARD is not set CONFIG_IEEE802154_FAKELB=m CONFIG_IEEE802154_AT86RF230=m CONFIG_IEEE802154_MRF24J40=m @@ -3285,9 +3259,6 @@ CONFIG_MOUSE_SERIAL=m CONFIG_MOUSE_APPLETOUCH=m CONFIG_MOUSE_BCM5974=m CONFIG_MOUSE_CYAPA=m -CONFIG_MOUSE_ELAN_I2C=m -CONFIG_MOUSE_ELAN_I2C_I2C=y -CONFIG_MOUSE_ELAN_I2C_SMBUS=y # CONFIG_MOUSE_INPORT is not set CONFIG_MOUSE_LOGIBM=m CONFIG_MOUSE_PC110PAD=m @@ -3356,10 +3327,8 @@ CONFIG_TOUCHSCREEN_DYNAPRO=m CONFIG_TOUCHSCREEN_HAMPSHIRE=m CONFIG_TOUCHSCREEN_EETI=m CONFIG_TOUCHSCREEN_FUJITSU=m -CONFIG_TOUCHSCREEN_GOODIX=m CONFIG_TOUCHSCREEN_ILI210X=m CONFIG_TOUCHSCREEN_GUNZE=m -CONFIG_TOUCHSCREEN_ELAN=m CONFIG_TOUCHSCREEN_ELO=m CONFIG_TOUCHSCREEN_WACOM_W8001=m CONFIG_TOUCHSCREEN_WACOM_I2C=m @@ -3588,7 +3557,6 @@ CONFIG_IPMI_HANDLER=m CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m CONFIG_IPMI_SI_PROBE_DEFAULTS=y -CONFIG_IPMI_SSIF=m CONFIG_IPMI_WATCHDOG=m CONFIG_IPMI_POWEROFF=m CONFIG_HW_RANDOM=y @@ -3709,7 +3677,6 @@ CONFIG_I2C_XILINX=m # External I2C/SMBus adapter drivers # CONFIG_I2C_DIOLAN_U2C=m -CONFIG_I2C_DLN2=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m CONFIG_I2C_ROBOTFUZZ_OSIF=m @@ -3724,7 +3691,6 @@ CONFIG_I2C_PCA_ISA=m CONFIG_I2C_CROS_EC_TUNNEL=m CONFIG_SCx200_ACB=m CONFIG_I2C_STUB=m -# CONFIG_I2C_SLAVE is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -3803,12 +3769,8 @@ CONFIG_PINCTRL=y # # Pin controllers # -CONFIG_PINMUX=y -CONFIG_PINCONF=y -CONFIG_GENERIC_PINCONF=y # CONFIG_DEBUG_PINCTRL is not set CONFIG_PINCTRL_BAYTRAIL=y -CONFIG_PINCTRL_CHERRYVIEW=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y CONFIG_GPIOLIB=y CONFIG_GPIO_DEVRES=y @@ -3825,6 +3787,7 @@ CONFIG_GPIO_MAX730X=m # Memory mapped GPIO drivers: # CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_GPIO_DWAPB=m CONFIG_GPIO_IT8761E=m CONFIG_GPIO_F7188X=m CONFIG_GPIO_SCH311X=m @@ -3896,7 +3859,6 @@ CONFIG_GPIO_MSIC=y # USB GPIO expanders: # CONFIG_GPIO_VIPERBOARD=m -CONFIG_GPIO_DLN2=m CONFIG_W1=m CONFIG_W1_CON=y @@ -4022,7 +3984,6 @@ CONFIG_SENSORS_HIH6130=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IIO_HWMON=m -CONFIG_SENSORS_I5500=m CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IT87=m CONFIG_SENSORS_JC42=m @@ -4069,14 +4030,12 @@ CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_NCT6683=m CONFIG_SENSORS_NCT6775=m -CONFIG_SENSORS_NCT7802=m CONFIG_SENSORS_PCF8591=m CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_LM25066=m CONFIG_SENSORS_LTC2978=m -CONFIG_SENSORS_LTC2978_REGULATOR=y CONFIG_SENSORS_MAX16064=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m @@ -4282,7 +4241,6 @@ CONFIG_MFD_DA9052_SPI=y CONFIG_MFD_DA9052_I2C=y CONFIG_MFD_DA9055=y CONFIG_MFD_DA9063=y -CONFIG_MFD_DLN2=m CONFIG_MFD_MC13XXX=m CONFIG_MFD_MC13XXX_SPI=m CONFIG_MFD_MC13XXX_I2C=m @@ -4363,7 +4321,7 @@ CONFIG_MFD_WM831X_I2C=y CONFIG_MFD_WM831X_SPI=y CONFIG_MFD_WM8350=y CONFIG_MFD_WM8350_I2C=y -CONFIG_MFD_WM8994=m +CONFIG_MFD_WM8994=y CONFIG_REGULATOR=y # CONFIG_REGULATOR_DEBUG is not set CONFIG_REGULATOR_FIXED_VOLTAGE=m @@ -4504,9 +4462,16 @@ CONFIG_IR_NUVOTON=m CONFIG_IR_REDRAT3=m CONFIG_IR_STREAMZAP=m CONFIG_IR_WINBOND_CIR=m -CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m CONFIG_IR_TTUSBIR=m +CONFIG_IR_IMG=m +# CONFIG_IR_IMG_RAW is not set +CONFIG_IR_IMG_HW=y +CONFIG_IR_IMG_NEC=y +CONFIG_IR_IMG_JVC=y +CONFIG_IR_IMG_SONY=y +CONFIG_IR_IMG_SHARP=y +CONFIG_IR_IMG_SANYO=y CONFIG_RC_LOOPBACK=m CONFIG_IR_GPIO_CIR=m CONFIG_MEDIA_USB_SUPPORT=y @@ -4582,6 +4547,7 @@ CONFIG_VIDEO_PVRUSB2_SYSFS=y CONFIG_VIDEO_PVRUSB2_DVB=y # CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_TLG2300=m CONFIG_VIDEO_USBVISION=m CONFIG_VIDEO_STK1160_COMMON=m CONFIG_VIDEO_STK1160_AC97=y @@ -4744,7 +4710,6 @@ CONFIG_DVB_MANTIS=m CONFIG_DVB_HOPPER=m CONFIG_DVB_NGENE=m CONFIG_DVB_DDBRIDGE=m -CONFIG_DVB_SMIPCIE=m CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_VIDEO_CAFE_CCIC=m CONFIG_VIDEO_VIA_CAMERA=m @@ -4756,12 +4721,17 @@ CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m CONFIG_VIDEO_SH_VEU=m CONFIG_V4L_TEST_DRIVERS=y CONFIG_VIDEO_VIVID=m -CONFIG_VIDEO_VIM2M=m +CONFIG_VIDEO_MEM2MEM_TESTDEV=m # # Supported MMC/SDIO adapters # CONFIG_SMS_SDIO_DRV=m +CONFIG_MEDIA_PARPORT_SUPPORT=y +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_PMS=m +CONFIG_VIDEO_W9966=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_TEA575X=m CONFIG_RADIO_SI470X=y @@ -4963,7 +4933,6 @@ CONFIG_MEDIA_TUNER_TDA18212=m CONFIG_MEDIA_TUNER_E4000=m CONFIG_MEDIA_TUNER_FC2580=m CONFIG_MEDIA_TUNER_M88TS2022=m -CONFIG_MEDIA_TUNER_M88RS6000T=m CONFIG_MEDIA_TUNER_TUA9001=m CONFIG_MEDIA_TUNER_SI2157=m CONFIG_MEDIA_TUNER_IT913X=m @@ -5075,10 +5044,6 @@ CONFIG_DVB_S5H1411=m CONFIG_DVB_S921=m CONFIG_DVB_DIB8000=m CONFIG_DVB_MB86A20S=m - -# -# ISDB-S (satellite) & ISDB-T (terrestrial) frontends -# CONFIG_DVB_TC90522=m # @@ -5098,7 +5063,6 @@ CONFIG_DVB_ISL6405=m CONFIG_DVB_ISL6421=m CONFIG_DVB_ISL6423=m CONFIG_DVB_A8293=m -CONFIG_DVB_SP2=m CONFIG_DVB_LGS8GXX=m CONFIG_DVB_ATBM8830=m CONFIG_DVB_TDA665x=m @@ -5142,7 +5106,6 @@ CONFIG_DRM_TTM=m # # I2C encoder or helper chips # -CONFIG_DRM_I2C_ADV7511=m CONFIG_DRM_I2C_CH7006=m CONFIG_DRM_I2C_SIL164=m CONFIG_DRM_I2C_NXP_TDA998X=m @@ -5560,7 +5523,7 @@ CONFIG_SND_BCD2000=m CONFIG_SND_FIREWIRE=y CONFIG_SND_FIREWIRE_LIB=m CONFIG_SND_DICE=m -CONFIG_SND_OXFW=m +CONFIG_SND_FIREWIRE_SPEAKERS=m CONFIG_SND_ISIGHT=m CONFIG_SND_SCS1X=m CONFIG_SND_FIREWORKS=m @@ -5588,9 +5551,6 @@ CONFIG_SND_SOC_FSL_ESAI=m CONFIG_SND_SOC_IMX_AUDMUX=m CONFIG_SND_MFLD_MACHINE=m CONFIG_SND_SST_MFLD_PLATFORM=m -CONFIG_SND_SST_IPC=m -CONFIG_SND_SST_IPC_PCI=m -CONFIG_SND_SST_IPC_ACPI=m CONFIG_SND_SOC_INTEL_SST=m CONFIG_SND_SOC_INTEL_SST_ACPI=m CONFIG_SND_SOC_INTEL_HASWELL=m @@ -5599,8 +5559,6 @@ CONFIG_SND_SOC_INTEL_HASWELL_MACH=m CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH=m CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m -CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m -CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m CONFIG_SND_SOC_I2C_AND_SPI=m # @@ -5613,16 +5571,12 @@ CONFIG_SND_SOC_AK4642=m CONFIG_SND_SOC_AK5386=m CONFIG_SND_SOC_ALC5623=m CONFIG_SND_SOC_CS35L32=m -CONFIG_SND_SOC_CS42L51=m -CONFIG_SND_SOC_CS42L51_I2C=m CONFIG_SND_SOC_CS42L52=m CONFIG_SND_SOC_CS42L56=m CONFIG_SND_SOC_CS42L73=m CONFIG_SND_SOC_CS4265=m CONFIG_SND_SOC_CS4270=m CONFIG_SND_SOC_CS4271=m -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_HDMI_CODEC=m @@ -5635,10 +5589,7 @@ CONFIG_SND_SOC_PCM512x_I2C=m CONFIG_SND_SOC_PCM512x_SPI=m CONFIG_SND_SOC_RL6231=m CONFIG_SND_SOC_RT286=m -CONFIG_SND_SOC_RT5631=m CONFIG_SND_SOC_RT5640=m -CONFIG_SND_SOC_RT5670=m -# CONFIG_SND_SOC_RT5677_SPI is not set CONFIG_SND_SOC_SGTL5000=m CONFIG_SND_SOC_SI476X=m CONFIG_SND_SOC_SIGMADSP=m @@ -5653,13 +5604,8 @@ CONFIG_SND_SOC_SSM4567=m CONFIG_SND_SOC_STA350=m CONFIG_SND_SOC_TAS2552=m CONFIG_SND_SOC_TAS5086=m -CONFIG_SND_SOC_TFA9879=m -CONFIG_SND_SOC_TLV320AIC23=m -CONFIG_SND_SOC_TLV320AIC23_I2C=m -CONFIG_SND_SOC_TLV320AIC23_SPI=m CONFIG_SND_SOC_TLV320AIC31XX=m CONFIG_SND_SOC_TLV320AIC3X=m -CONFIG_SND_SOC_TS3A227E=m CONFIG_SND_SOC_WM8510=m CONFIG_SND_SOC_WM8523=m CONFIG_SND_SOC_WM8580=m @@ -5685,7 +5631,6 @@ CONFIG_AC97_BUS=m # HID support # CONFIG_HID=m -CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HIDRAW=y CONFIG_UHID=m CONFIG_HID_GENERIC=m @@ -5727,7 +5672,6 @@ CONFIG_HID_LCPOWER=m CONFIG_HID_LENOVO=m CONFIG_HID_LOGITECH=m CONFIG_HID_LOGITECH_DJ=m -CONFIG_HID_LOGITECH_HIDPP=m CONFIG_LOGITECH_FF=y CONFIG_LOGIRUMBLEPAD2_FF=y CONFIG_LOGIG940_FF=y @@ -5748,7 +5692,6 @@ CONFIG_HID_PICOLCD_BACKLIGHT=y CONFIG_HID_PICOLCD_LCD=y CONFIG_HID_PICOLCD_LEDS=y CONFIG_HID_PICOLCD_CIR=y -CONFIG_HID_PLANTRONICS=m CONFIG_HID_PRIMAX=m CONFIG_HID_ROCCAT=m CONFIG_HID_SAITEK=m @@ -5895,10 +5838,9 @@ CONFIG_USB_MUSB_HDRC=m # CONFIG_USB_MUSB_HOST is not set # CONFIG_USB_MUSB_GADGET is not set CONFIG_USB_MUSB_DUAL_ROLE=y - -# -# Platform Glue Layer -# +CONFIG_USB_MUSB_TUSB6010=m +CONFIG_USB_MUSB_UX500=m +# CONFIG_USB_UX500_DMA is not set CONFIG_MUSB_PIO_ONLY=y CONFIG_USB_DWC3=m # CONFIG_USB_DWC3_HOST is not set @@ -5916,13 +5858,14 @@ CONFIG_USB_DWC3_PCI=m # CONFIG_USB_DWC3_DEBUG is not set CONFIG_DWC3_HOST_USB3_LPM_ENABLE=y CONFIG_USB_DWC2=y -CONFIG_USB_DWC2_HOST=y +CONFIG_USB_DWC2_HOST=m +CONFIG_USB_DWC2_PLATFORM=y +CONFIG_USB_DWC2_PCI=y # -# Gadget/Dual-role mode requires USB Gadget support to be enabled +# Gadget mode requires USB Gadget support to be enabled # -CONFIG_USB_DWC2_PLATFORM=y -CONFIG_USB_DWC2_PCI=y +CONFIG_USB_DWC2_PERIPHERAL=m # CONFIG_USB_DWC2_DEBUG is not set # CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set CONFIG_USB_CHIPIDEA=m @@ -6061,12 +6004,6 @@ CONFIG_USB_PXA27X=m CONFIG_USB_MV_UDC=m CONFIG_USB_MV_U3D=m # CONFIG_USB_M66592 is not set -CONFIG_USB_BDC_UDC=m - -# -# Platform Support -# -CONFIG_USB_BDC_PCI=m CONFIG_USB_AMD5536UDC=m CONFIG_USB_NET2272=m CONFIG_USB_NET2272_DMA=y @@ -6090,10 +6027,7 @@ CONFIG_USB_F_RNDIS=m CONFIG_USB_F_MASS_STORAGE=m CONFIG_USB_F_FS=m CONFIG_USB_F_UAC1=m -CONFIG_USB_F_UAC2=m CONFIG_USB_F_UVC=m -CONFIG_USB_F_MIDI=m -CONFIG_USB_F_HID=m CONFIG_USB_CONFIGFS=m CONFIG_USB_CONFIGFS_SERIAL=y CONFIG_USB_CONFIGFS_ACM=y @@ -6107,10 +6041,6 @@ CONFIG_USB_CONFIGFS_PHONET=y CONFIG_USB_CONFIGFS_MASS_STORAGE=y CONFIG_USB_CONFIGFS_F_LB_SS=y CONFIG_USB_CONFIGFS_F_FS=y -CONFIG_USB_CONFIGFS_F_UAC1=y -CONFIG_USB_CONFIGFS_F_UAC2=y -CONFIG_USB_CONFIGFS_F_MIDI=y -CONFIG_USB_CONFIGFS_F_HID=y CONFIG_USB_ZERO=m CONFIG_USB_AUDIO=m CONFIG_GADGET_UAC1=y @@ -6175,7 +6105,6 @@ CONFIG_MMC_USHC=m CONFIG_MMC_USDHI6ROL0=m CONFIG_MMC_REALTEK_PCI=m CONFIG_MMC_REALTEK_USB=m -CONFIG_MMC_TOSHIBA_PCI=m CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set @@ -6216,7 +6145,6 @@ CONFIG_LEDS_LP5523=m CONFIG_LEDS_LP5562=m CONFIG_LEDS_LP8501=m CONFIG_LEDS_LP8788=m -CONFIG_LEDS_LP8860=m CONFIG_LEDS_CLEVO_MAIL=m CONFIG_LEDS_PCA955X=m CONFIG_LEDS_PCA963X=m @@ -6266,7 +6194,6 @@ CONFIG_INFINIBAND=m CONFIG_INFINIBAND_USER_MAD=m CONFIG_INFINIBAND_USER_ACCESS=m CONFIG_INFINIBAND_USER_MEM=y -CONFIG_INFINIBAND_ON_DEMAND_PAGING=y CONFIG_INFINIBAND_ADDR_TRANS=y CONFIG_INFINIBAND_MTHCA=m # CONFIG_INFINIBAND_MTHCA_DEBUG is not set @@ -6294,8 +6221,6 @@ CONFIG_EDAC=y 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 CONFIG_EDAC_AMD76X=m CONFIG_EDAC_E7XXX=m CONFIG_EDAC_E752X=m @@ -6335,7 +6260,6 @@ CONFIG_RTC_DRV_88PM860X=m CONFIG_RTC_DRV_88PM80X=m CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1374=m -CONFIG_RTC_DRV_DS1374_WDT=y CONFIG_RTC_DRV_DS1672=m CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_LP8788=m @@ -6469,8 +6393,6 @@ CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO=m CONFIG_VFIO_PCI=m CONFIG_VFIO_PCI_VGA=y -CONFIG_VFIO_PCI_MMAP=y -CONFIG_VFIO_PCI_INTX=y CONFIG_VIRT_DRIVERS=y CONFIG_VIRTIO=y @@ -6571,9 +6493,10 @@ CONFIG_COMEDI_PCMMIO=m CONFIG_COMEDI_PCMUIO=m CONFIG_COMEDI_MULTIQ3=m CONFIG_COMEDI_S526=m -CONFIG_COMEDI_PCI_DRIVERS=m +CONFIG_COMEDI_PCI_DRIVERS=y CONFIG_COMEDI_8255_PCI=m CONFIG_COMEDI_ADDI_WATCHDOG=m +CONFIG_COMEDI_ADDI_APCI_035=m CONFIG_COMEDI_ADDI_APCI_1032=m CONFIG_COMEDI_ADDI_APCI_1500=m CONFIG_COMEDI_ADDI_APCI_1516=m @@ -6626,7 +6549,7 @@ CONFIG_COMEDI_RTD520=m CONFIG_COMEDI_S626=m CONFIG_COMEDI_MITE=m CONFIG_COMEDI_NI_TIOCMD=m -CONFIG_COMEDI_PCMCIA_DRIVERS=m +CONFIG_COMEDI_PCMCIA_DRIVERS=y CONFIG_COMEDI_CB_DAS16_CS=m CONFIG_COMEDI_DAS08_CS=m CONFIG_COMEDI_NI_DAQ_700_CS=m @@ -6634,7 +6557,7 @@ CONFIG_COMEDI_NI_DAQ_DIO24_CS=m CONFIG_COMEDI_NI_LABPC_CS=m CONFIG_COMEDI_NI_MIO_CS=m CONFIG_COMEDI_QUATECH_DAQP_CS=m -CONFIG_COMEDI_USB_DRIVERS=m +CONFIG_COMEDI_USB_DRIVERS=y CONFIG_COMEDI_DT9812=m CONFIG_COMEDI_NI_USB6501=m CONFIG_COMEDI_USBDUX=m @@ -6769,6 +6692,7 @@ CONFIG_IIO_SIMPLE_DUMMY=m # CONFIG_IIO_SIMPLE_DUMMY_EVENTS is not set # CONFIG_IIO_SIMPLE_DUMMY_BUFFER is not set CONFIG_FB_XGI=m +CONFIG_BCM_WIMAX=m CONFIG_FT1000=m CONFIG_FT1000_USB=m CONFIG_FT1000_PCMCIA=m @@ -6800,17 +6724,10 @@ CONFIG_DVB_CXD2099=m CONFIG_VIDEO_DT3155=m # CONFIG_DT3155_CCIR is not set CONFIG_DT3155_STREAMING=y -CONFIG_VIDEO_TLG2300=m -CONFIG_DVB_MN88472=m -CONFIG_DVB_MN88473=m -CONFIG_MEDIA_PARPORT_SUPPORT=y -CONFIG_VIDEO_BWQCAM=m -CONFIG_VIDEO_CQCAM=m -CONFIG_VIDEO_PMS=m -CONFIG_VIDEO_W9966=m -CONFIG_VIDEO_SAA7191=m +# CONFIG_VIDEO_TCM825X is not set CONFIG_LIRC_STAGING=y CONFIG_LIRC_BT829=m +CONFIG_LIRC_IGORPLUGUSB=m CONFIG_LIRC_IMON=m CONFIG_LIRC_PARALLEL=m CONFIG_LIRC_SASEM=m @@ -6822,6 +6739,7 @@ CONFIG_LIRC_ZILOG=m # # Android # +# CONFIG_ANDROID is not set CONFIG_USB_WPAN_HCD=m CONFIG_WIMAX_GDM72XX=m CONFIG_WIMAX_GDM72XX_QOS=y @@ -6908,6 +6826,11 @@ CONFIG_PVPANIC=m CONFIG_CHROME_PLATFORMS=y CONFIG_CHROMEOS_LAPTOP=m CONFIG_CHROMEOS_PSTORE=m + +# +# SOC (System On Chip) specific Drivers +# +CONFIG_SOC_TI=y CONFIG_CLKDEV_LOOKUP=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y @@ -6943,7 +6866,6 @@ CONFIG_DW_APB_TIMER=y # CONFIG_SH_TIMER_TMU is not set # CONFIG_EM_TIMER_STI is not set CONFIG_MAILBOX=y -CONFIG_PCC=y CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y CONFIG_DMAR_TABLE=y @@ -6964,7 +6886,6 @@ CONFIG_STE_MODEM_RPROC=m # # SOC (System On Chip) specific Drivers # -CONFIG_SOC_TI=y CONFIG_PM_DEVFREQ=y # @@ -7027,7 +6948,6 @@ CONFIG_AD7793=m CONFIG_AD7887=m CONFIG_AD7923=m CONFIG_AD799X=m -CONFIG_AXP288_ADC=m CONFIG_LP8788_ADC=m CONFIG_MAX1027=m CONFIG_MAX1363=m @@ -7035,7 +6955,6 @@ CONFIG_MCP320X=m CONFIG_MCP3422=m CONFIG_MEN_Z188_ADC=m CONFIG_NAU7802=m -CONFIG_QCOM_SPMI_IADC=m CONFIG_TI_ADC081C=m CONFIG_TI_ADC128S052=m CONFIG_TI_AM335X_ADC=m @@ -7111,7 +7030,6 @@ CONFIG_ITG3200=m # CONFIG_DHT11=m CONFIG_SI7005=m -CONFIG_SI7020=m # # Inertial measurement units @@ -7168,7 +7086,6 @@ CONFIG_IIO_SYSFS_TRIGGER=m # # Pressure sensors # -CONFIG_BMP280=m CONFIG_HID_SENSOR_PRESS=m CONFIG_MPL115=m CONFIG_MPL3115=m @@ -7241,11 +7158,6 @@ CONFIG_RAS=y CONFIG_THUNDERBOLT=m # -# Android -# -# CONFIG_ANDROID is not set - -# # Firmware Drivers # CONFIG_EDD=y @@ -7430,7 +7342,6 @@ CONFIG_SQUASHFS_FILE_DIRECT=y CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_ZLIB=y -# CONFIG_SQUASHFS_LZ4 is not set CONFIG_SQUASHFS_LZO=y CONFIG_SQUASHFS_XZ=y # CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set @@ -7615,7 +7526,6 @@ CONFIG_FRAME_WARN=1024 # CONFIG_STRIP_ASM_SYMS is not set # CONFIG_READABLE_ASM is not set CONFIG_UNUSED_SYMBOLS=y -# CONFIG_PAGE_OWNER is not set CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set @@ -7629,7 +7539,6 @@ CONFIG_DEBUG_KERNEL=y # # Memory Debugging # -# CONFIG_PAGE_EXTENSION is not set # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set @@ -7666,7 +7575,7 @@ CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PANIC_TIMEOUT=0 CONFIG_SCHED_DEBUG=y CONFIG_SCHEDSTATS=y -CONFIG_SCHED_STACK_END_CHECK=y +# CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_TIMER_STATS=y # @@ -7783,7 +7692,6 @@ CONFIG_KGDB_SERIAL_CONSOLE=y # CONFIG_KGDB_TESTS is not set CONFIG_KGDB_LOW_LEVEL_TRAP=y CONFIG_KGDB_KDB=y -CONFIG_KDB_DEFAULT_ENABLE=0x1 CONFIG_KDB_KEYBOARD=y CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_STRICT_DEVMEM=y @@ -7873,7 +7781,6 @@ CONFIG_IMA_DEFAULT_HASH_SHA1=y CONFIG_IMA_DEFAULT_HASH="sha1" CONFIG_IMA_APPRAISE=y CONFIG_IMA_TRUSTED_KEYRING=y -# CONFIG_IMA_LOAD_X509 is not set CONFIG_EVM=y CONFIG_EVM_ATTR_FSUUID=y CONFIG_EVM_EXTRA_SMACK_XATTRS=y diff --git a/gnu/packages/linux-libre-x86_64.conf b/gnu/packages/linux-libre-x86_64.conf index cf4cd766c0..0b865808ab 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 3.19.0-gnu Kernel Configuration +# Linux/x86 3.18.4-gnu Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -89,7 +89,6 @@ CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_DOMAIN=y -CONFIG_GENERIC_MSI_IRQ=y # CONFIG_IRQ_DOMAIN_DEBUG is not set CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y @@ -109,17 +108,19 @@ CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set -CONFIG_NO_HZ_IDLE=y -# CONFIG_NO_HZ_FULL is not set +# CONFIG_NO_HZ_IDLE is not set +CONFIG_NO_HZ_FULL=y +# CONFIG_NO_HZ_FULL_ALL is not set +CONFIG_NO_HZ_FULL_SYSIDLE=y +CONFIG_NO_HZ_FULL_SYSIDLE_SMALL=8 CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y # # CPU/Task time and stats accounting # -CONFIG_TICK_CPU_ACCOUNTING=y -# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set -# CONFIG_IRQ_TIME_ACCOUNTING is not set +CONFIG_VIRT_CPU_ACCOUNTING=y +CONFIG_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y CONFIG_TASKSTATS=y @@ -131,6 +132,7 @@ CONFIG_TASK_IO_ACCOUNTING=y # RCU Subsystem # CONFIG_TREE_RCU=y +# CONFIG_PREEMPT_RCU is not set # CONFIG_TASKS_RCU is not set CONFIG_RCU_STALL_COMMON=y CONFIG_CONTEXT_TRACKING=y @@ -152,8 +154,8 @@ CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_ARCH_SUPPORTS_INT128=y -CONFIG_NUMA_BALANCING=y CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y +CONFIG_NUMA_BALANCING=y CONFIG_CGROUPS=y # CONFIG_CGROUP_DEBUG is not set CONFIG_CGROUP_FREEZER=y @@ -161,7 +163,7 @@ CONFIG_CGROUP_DEVICE=y CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y CONFIG_CGROUP_CPUACCT=y -CONFIG_PAGE_COUNTER=y +CONFIG_RESOURCE_COUNTERS=y CONFIG_MEMCG=y CONFIG_MEMCG_SWAP=y # CONFIG_MEMCG_SWAP_ENABLED is not set @@ -192,7 +194,6 @@ CONFIG_RD_LZMA=y CONFIG_RD_XZ=y CONFIG_RD_LZO=y CONFIG_RD_LZ4=y -CONFIG_INIT_FALLBACK=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y @@ -300,7 +301,6 @@ CONFIG_COMPAT_OLD_SIGACTION=y # GCOV-based kernel profiling # # CONFIG_GCOV_KERNEL is not set -CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y @@ -451,7 +451,6 @@ CONFIG_SCHED_MC=y # CONFIG_PREEMPT_NONE is not set CONFIG_PREEMPT_VOLUNTARY=y # CONFIG_PREEMPT is not set -CONFIG_X86_UP_APIC_MSI=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y @@ -463,7 +462,6 @@ CONFIG_X86_MCE_INJECT=m CONFIG_X86_THERMAL_VECTOR=y CONFIG_X86_16BIT=y CONFIG_X86_ESPFIX64=y -CONFIG_X86_VSYSCALL_EMULATION=y CONFIG_I8K=m CONFIG_MICROCODE=y CONFIG_MICROCODE_INTEL=y @@ -551,7 +549,6 @@ 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_EFI=y CONFIG_EFI_STUB=y CONFIG_EFI_MIXED=y @@ -597,6 +594,7 @@ CONFIG_PM_SLEEP_SMP=y CONFIG_PM_WAKELOCKS=y CONFIG_PM_WAKELOCKS_LIMIT=100 CONFIG_PM_WAKELOCKS_GC=y +CONFIG_PM_RUNTIME=y CONFIG_PM=y CONFIG_PM_DEBUG=y CONFIG_PM_ADVANCED_DEBUG=y @@ -647,7 +645,6 @@ CONFIG_ACPI_APEI_MEMORY_FAILURE=y CONFIG_ACPI_APEI_EINJ=m # CONFIG_ACPI_APEI_ERST_DEBUG is not set CONFIG_ACPI_EXTLOG=m -# CONFIG_PMIC_OPREGION is not set CONFIG_SFI=y # @@ -669,7 +666,7 @@ CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y # -# CPU frequency scaling drivers +# x86 CPU frequency scaling drivers # CONFIG_X86_INTEL_PSTATE=y CONFIG_X86_PCC_CPUFREQ=y @@ -730,6 +727,7 @@ CONFIG_PCI_ATS=y CONFIG_PCI_IOV=y CONFIG_PCI_PRI=y CONFIG_PCI_PASID=y +CONFIG_PCI_IOAPIC=y CONFIG_PCI_LABEL=y # @@ -842,7 +840,6 @@ CONFIG_SYN_COOKIES=y CONFIG_NET_IPVTI=m CONFIG_NET_UDP_TUNNEL=m CONFIG_NET_FOU=m -CONFIG_NET_FOU_IP_TUNNELS=y CONFIG_GENEVE=m CONFIG_INET_AH=m CONFIG_INET_ESP=m @@ -954,7 +951,6 @@ CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_IRC=m CONFIG_NF_NAT_SIP=m CONFIG_NF_NAT_TFTP=m -CONFIG_NF_NAT_REDIRECT=m CONFIG_NETFILTER_SYNPROXY=m CONFIG_NF_TABLES=m CONFIG_NF_TABLES_INET=m @@ -967,7 +963,6 @@ CONFIG_NFT_COUNTER=m CONFIG_NFT_LOG=m CONFIG_NFT_LIMIT=m CONFIG_NFT_MASQ=m -CONFIG_NFT_REDIR=m CONFIG_NFT_NAT=m CONFIG_NFT_QUEUE=m CONFIG_NFT_REJECT=m @@ -1136,7 +1131,6 @@ CONFIG_NF_NAT_IPV4=m CONFIG_NFT_CHAIN_NAT_IPV4=m CONFIG_NF_NAT_MASQUERADE_IPV4=m CONFIG_NFT_MASQ_IPV4=m -CONFIG_NFT_REDIR_IPV4=m CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_PPTP=m @@ -1177,7 +1171,6 @@ CONFIG_NF_NAT_IPV6=m CONFIG_NFT_CHAIN_NAT_IPV6=m CONFIG_NF_NAT_MASQUERADE_IPV6=m CONFIG_NFT_MASQ_IPV6=m -CONFIG_NFT_REDIR_IPV6=m CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m @@ -1277,7 +1270,6 @@ CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_BRIDGE_VLAN_FILTERING=y CONFIG_HAVE_NET_DSA=y CONFIG_NET_DSA=m -CONFIG_NET_DSA_HWMON=y CONFIG_NET_DSA_TAG_BRCM=y CONFIG_NET_DSA_TAG_DSA=y CONFIG_NET_DSA_TAG_EDSA=y @@ -1369,7 +1361,6 @@ CONFIG_NET_ACT_PEDIT=m CONFIG_NET_ACT_SIMP=m CONFIG_NET_ACT_SKBEDIT=m CONFIG_NET_ACT_CSUM=m -CONFIG_NET_ACT_VLAN=m # CONFIG_NET_CLS_IND is not set CONFIG_NET_SCH_FIFO=y CONFIG_DCB=y @@ -1381,16 +1372,15 @@ CONFIG_BATMAN_ADV_NC=y CONFIG_BATMAN_ADV_MCAST=y # CONFIG_BATMAN_ADV_DEBUG is not set CONFIG_OPENVSWITCH=m -CONFIG_OPENVSWITCH_GRE=m -CONFIG_OPENVSWITCH_VXLAN=m -CONFIG_OPENVSWITCH_GENEVE=m +CONFIG_OPENVSWITCH_GRE=y +CONFIG_OPENVSWITCH_VXLAN=y +CONFIG_OPENVSWITCH_GENEVE=y CONFIG_VSOCKETS=m CONFIG_VMWARE_VMCI_VSOCKETS=m CONFIG_NETLINK_MMAP=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_HSR=m -# CONFIG_NET_SWITCHDEV is not set CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y @@ -1533,7 +1523,7 @@ CONFIG_VLSI_FIR=m CONFIG_VIA_FIR=m CONFIG_MCS_FIR=m CONFIG_BT=m -CONFIG_BT_BREDR=y +CONFIG_BT_6LOWPAN=m CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -1541,8 +1531,6 @@ CONFIG_BT_BNEP_MC_FILTER=y CONFIG_BT_BNEP_PROTO_FILTER=y CONFIG_BT_CMTP=m CONFIG_BT_HIDP=m -CONFIG_BT_LE=y -CONFIG_BT_6LOWPAN=m # # Bluetooth device drivers @@ -1595,7 +1583,6 @@ CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y CONFIG_MAC80211_RC_MINSTREL_HT=y -CONFIG_MAC80211_RC_MINSTREL_VHT=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y @@ -1647,8 +1634,7 @@ CONFIG_NFC_MRVL=m CONFIG_NFC_MRVL_USB=m CONFIG_NFC_ST21NFCA=m CONFIG_NFC_ST21NFCA_I2C=m -CONFIG_NFC_ST21NFCB=m -CONFIG_NFC_ST21NFCB_I2C=m +# CONFIG_NFC_ST21NFCB is not set CONFIG_HAVE_BPF_JIT=y # @@ -1669,9 +1655,7 @@ CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_EXTRA_FIRMWARE="" CONFIG_FW_LOADER_USER_HELPER=y # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set -CONFIG_WANT_DEV_COREDUMP=y CONFIG_ALLOW_DEV_COREDUMP=y -CONFIG_DEV_COREDUMP=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set CONFIG_SYS_HYPERVISOR=y @@ -1680,7 +1664,6 @@ CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_REGMAP=y CONFIG_REGMAP_I2C=y CONFIG_REGMAP_SPI=y -CONFIG_REGMAP_SPMI=m CONFIG_REGMAP_MMIO=y CONFIG_REGMAP_IRQ=y CONFIG_DMA_SHARED_BUFFER=y @@ -2125,8 +2108,7 @@ CONFIG_SCSI_QLA_ISCSI=m CONFIG_SCSI_LPFC=m # CONFIG_SCSI_LPFC_DEBUG_FS is not set CONFIG_SCSI_DC395x=m -CONFIG_SCSI_AM53C974=m -CONFIG_SCSI_WD719X=m +CONFIG_SCSI_DC390T=m CONFIG_SCSI_DEBUG=m CONFIG_SCSI_PMCRAID=m CONFIG_SCSI_PM8001=m @@ -2334,7 +2316,6 @@ CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m CONFIG_NET_TEAM_MODE_LOADBALANCE=m CONFIG_MACVLAN=m CONFIG_MACVTAP=m -CONFIG_IPVLAN=m CONFIG_VXLAN=m CONFIG_NETCONSOLE=m CONFIG_NETCONSOLE_DYNAMIC=y @@ -2413,7 +2394,6 @@ CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y CONFIG_NET_DSA_MV88E6131=m CONFIG_NET_DSA_MV88E6123_61_65=m CONFIG_NET_DSA_MV88E6171=m -CONFIG_NET_DSA_MV88E6352=m CONFIG_NET_DSA_BCM_SF2=m CONFIG_ETHERNET=y CONFIG_MDIO=m @@ -2447,7 +2427,6 @@ CONFIG_B44=m CONFIG_B44_PCI_AUTOSELECT=y CONFIG_B44_PCICORE_AUTOSELECT=y CONFIG_B44_PCI=y -CONFIG_BCMGENET=m CONFIG_BNX2=m CONFIG_CNIC=m CONFIG_TIGON3=m @@ -2511,7 +2490,7 @@ CONFIG_IXGBEVF=m CONFIG_I40E=m CONFIG_I40E_VXLAN=y CONFIG_I40E_DCB=y -CONFIG_I40E_FCOE=y +# CONFIG_I40E_FCOE is not set CONFIG_I40EVF=m CONFIG_FM10K=m CONFIG_FM10K_VXLAN=y @@ -2579,7 +2558,6 @@ CONFIG_8139TOO_8129=y CONFIG_R8169=m CONFIG_NET_VENDOR_RDC=y CONFIG_R6040=m -CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SAMSUNG=y CONFIG_SXGBE_ETH=m CONFIG_NET_VENDOR_SEEQ=y @@ -2600,8 +2578,10 @@ CONFIG_SMSC911X=m CONFIG_SMSC9420=m CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=m -CONFIG_STMMAC_PLATFORM=m +CONFIG_STMMAC_PLATFORM=y # CONFIG_STMMAC_PCI is not set +# CONFIG_STMMAC_DEBUG_FS is not set +# CONFIG_STMMAC_DA is not set CONFIG_NET_VENDOR_SUN=y CONFIG_HAPPYMEAL=m CONFIG_SUNGEM=m @@ -2756,7 +2736,6 @@ CONFIG_ATH9K_STATION_STATISTICS=y CONFIG_ATH9K_WOW=y CONFIG_ATH9K_RFKILL=y CONFIG_ATH9K_CHANNEL_CONTEXT=y -CONFIG_ATH9K_PCOEM=y CONFIG_ATH9K_HTC=m CONFIG_ATH9K_HTC_DEBUGFS=y CONFIG_CARL9170=m @@ -2843,7 +2822,7 @@ CONFIG_IWLDVM=m CONFIG_IWLMVM=m CONFIG_IWLWIFI_OPMODE_MODULAR=y # CONFIG_IWLWIFI_BCAST_FILTERING is not set -# CONFIG_IWLWIFI_UAPSD is not set +CONFIG_IWLWIFI_UAPSD=y # # Debugging Options @@ -2981,6 +2960,7 @@ CONFIG_X25_ASY=m CONFIG_SBNI=m # CONFIG_SBNI_MULTILINE is not set CONFIG_IEEE802154_DRIVERS=m +# CONFIG_IEEE802154_FAKEHARD is not set CONFIG_IEEE802154_FAKELB=m CONFIG_IEEE802154_AT86RF230=m CONFIG_IEEE802154_MRF24J40=m @@ -3186,9 +3166,6 @@ CONFIG_MOUSE_SERIAL=m CONFIG_MOUSE_APPLETOUCH=m CONFIG_MOUSE_BCM5974=m CONFIG_MOUSE_CYAPA=m -CONFIG_MOUSE_ELAN_I2C=m -CONFIG_MOUSE_ELAN_I2C_I2C=y -CONFIG_MOUSE_ELAN_I2C_SMBUS=y CONFIG_MOUSE_VSXXXAA=m CONFIG_MOUSE_GPIO=m CONFIG_MOUSE_SYNAPTICS_I2C=m @@ -3254,10 +3231,8 @@ CONFIG_TOUCHSCREEN_DYNAPRO=m CONFIG_TOUCHSCREEN_HAMPSHIRE=m CONFIG_TOUCHSCREEN_EETI=m CONFIG_TOUCHSCREEN_FUJITSU=m -CONFIG_TOUCHSCREEN_GOODIX=m CONFIG_TOUCHSCREEN_ILI210X=m CONFIG_TOUCHSCREEN_GUNZE=m -CONFIG_TOUCHSCREEN_ELAN=m CONFIG_TOUCHSCREEN_ELO=m CONFIG_TOUCHSCREEN_WACOM_W8001=m CONFIG_TOUCHSCREEN_WACOM_I2C=m @@ -3475,7 +3450,6 @@ CONFIG_IPMI_HANDLER=m CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m CONFIG_IPMI_SI_PROBE_DEFAULTS=y -CONFIG_IPMI_SSIF=m CONFIG_IPMI_WATCHDOG=m CONFIG_IPMI_POWEROFF=m CONFIG_HW_RANDOM=y @@ -3589,7 +3563,6 @@ CONFIG_I2C_XILINX=m # External I2C/SMBus adapter drivers # CONFIG_I2C_DIOLAN_U2C=m -CONFIG_I2C_DLN2=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m CONFIG_I2C_ROBOTFUZZ_OSIF=m @@ -3602,7 +3575,6 @@ CONFIG_I2C_VIPERBOARD=m # CONFIG_I2C_CROS_EC_TUNNEL=m CONFIG_I2C_STUB=m -# CONFIG_I2C_SLAVE is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -3679,12 +3651,8 @@ CONFIG_PINCTRL=y # # Pin controllers # -CONFIG_PINMUX=y -CONFIG_PINCONF=y -CONFIG_GENERIC_PINCONF=y # CONFIG_DEBUG_PINCTRL is not set CONFIG_PINCTRL_BAYTRAIL=y -CONFIG_PINCTRL_CHERRYVIEW=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y CONFIG_GPIOLIB=y CONFIG_GPIO_DEVRES=y @@ -3701,6 +3669,7 @@ CONFIG_GPIO_MAX730X=m # Memory mapped GPIO drivers: # CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_GPIO_DWAPB=m CONFIG_GPIO_IT8761E=m CONFIG_GPIO_F7188X=m CONFIG_GPIO_SCH311X=m @@ -3768,7 +3737,6 @@ CONFIG_GPIO_TPS65910=y # USB GPIO expanders: # CONFIG_GPIO_VIPERBOARD=m -CONFIG_GPIO_DLN2=m CONFIG_W1=m CONFIG_W1_CON=y @@ -3893,7 +3861,6 @@ CONFIG_SENSORS_HIH6130=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IIO_HWMON=m -CONFIG_SENSORS_I5500=m CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IT87=m CONFIG_SENSORS_JC42=m @@ -3940,14 +3907,12 @@ CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_NCT6683=m CONFIG_SENSORS_NCT6775=m -CONFIG_SENSORS_NCT7802=m CONFIG_SENSORS_PCF8591=m CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_LM25066=m CONFIG_SENSORS_LTC2978=m -CONFIG_SENSORS_LTC2978_REGULATOR=y CONFIG_SENSORS_MAX16064=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m @@ -4140,7 +4105,6 @@ CONFIG_MFD_DA9052_SPI=y CONFIG_MFD_DA9052_I2C=y CONFIG_MFD_DA9055=y CONFIG_MFD_DA9063=y -CONFIG_MFD_DLN2=m CONFIG_MFD_MC13XXX=m CONFIG_MFD_MC13XXX_SPI=m CONFIG_MFD_MC13XXX_I2C=m @@ -4219,7 +4183,7 @@ CONFIG_MFD_WM831X_I2C=y CONFIG_MFD_WM831X_SPI=y CONFIG_MFD_WM8350=y CONFIG_MFD_WM8350_I2C=y -CONFIG_MFD_WM8994=m +CONFIG_MFD_WM8994=y CONFIG_REGULATOR=y # CONFIG_REGULATOR_DEBUG is not set CONFIG_REGULATOR_FIXED_VOLTAGE=m @@ -4359,9 +4323,16 @@ CONFIG_IR_NUVOTON=m CONFIG_IR_REDRAT3=m CONFIG_IR_STREAMZAP=m CONFIG_IR_WINBOND_CIR=m -CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m CONFIG_IR_TTUSBIR=m +CONFIG_IR_IMG=m +# CONFIG_IR_IMG_RAW is not set +CONFIG_IR_IMG_HW=y +CONFIG_IR_IMG_NEC=y +CONFIG_IR_IMG_JVC=y +CONFIG_IR_IMG_SONY=y +CONFIG_IR_IMG_SHARP=y +CONFIG_IR_IMG_SANYO=y CONFIG_RC_LOOPBACK=m CONFIG_IR_GPIO_CIR=m CONFIG_MEDIA_USB_SUPPORT=y @@ -4437,6 +4408,7 @@ CONFIG_VIDEO_PVRUSB2_SYSFS=y CONFIG_VIDEO_PVRUSB2_DVB=y # CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_TLG2300=m CONFIG_VIDEO_USBVISION=m CONFIG_VIDEO_STK1160_COMMON=m CONFIG_VIDEO_STK1160_AC97=y @@ -4599,7 +4571,6 @@ CONFIG_DVB_MANTIS=m CONFIG_DVB_HOPPER=m CONFIG_DVB_NGENE=m CONFIG_DVB_DDBRIDGE=m -CONFIG_DVB_SMIPCIE=m CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_VIDEO_CAFE_CCIC=m CONFIG_VIDEO_VIA_CAMERA=m @@ -4610,12 +4581,16 @@ CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m CONFIG_VIDEO_SH_VEU=m CONFIG_V4L_TEST_DRIVERS=y CONFIG_VIDEO_VIVID=m -CONFIG_VIDEO_VIM2M=m +CONFIG_VIDEO_MEM2MEM_TESTDEV=m # # Supported MMC/SDIO adapters # CONFIG_SMS_SDIO_DRV=m +CONFIG_MEDIA_PARPORT_SUPPORT=y +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_W9966=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_TEA575X=m CONFIG_RADIO_SI470X=y @@ -4801,7 +4776,6 @@ CONFIG_MEDIA_TUNER_TDA18212=m CONFIG_MEDIA_TUNER_E4000=m CONFIG_MEDIA_TUNER_FC2580=m CONFIG_MEDIA_TUNER_M88TS2022=m -CONFIG_MEDIA_TUNER_M88RS6000T=m CONFIG_MEDIA_TUNER_TUA9001=m CONFIG_MEDIA_TUNER_SI2157=m CONFIG_MEDIA_TUNER_IT913X=m @@ -4913,10 +4887,6 @@ CONFIG_DVB_S5H1411=m CONFIG_DVB_S921=m CONFIG_DVB_DIB8000=m CONFIG_DVB_MB86A20S=m - -# -# ISDB-S (satellite) & ISDB-T (terrestrial) frontends -# CONFIG_DVB_TC90522=m # @@ -4936,7 +4906,6 @@ CONFIG_DVB_ISL6405=m CONFIG_DVB_ISL6421=m CONFIG_DVB_ISL6423=m CONFIG_DVB_A8293=m -CONFIG_DVB_SP2=m CONFIG_DVB_LGS8GXX=m CONFIG_DVB_ATBM8830=m CONFIG_DVB_TDA665x=m @@ -4974,7 +4943,6 @@ CONFIG_DRM_TTM=m # # I2C encoder or helper chips # -CONFIG_DRM_I2C_ADV7511=m CONFIG_DRM_I2C_CH7006=m CONFIG_DRM_I2C_SIL164=m CONFIG_DRM_I2C_NXP_TDA998X=m @@ -5007,7 +4975,6 @@ CONFIG_DRM_AST=m CONFIG_DRM_CIRRUS_QEMU=m CONFIG_DRM_QXL=m # CONFIG_DRM_BOCHS is not set -CONFIG_HSA_AMD=m # # Frame buffer Devices @@ -5344,7 +5311,7 @@ CONFIG_SND_BCD2000=m CONFIG_SND_FIREWIRE=y CONFIG_SND_FIREWIRE_LIB=m CONFIG_SND_DICE=m -CONFIG_SND_OXFW=m +CONFIG_SND_FIREWIRE_SPEAKERS=m CONFIG_SND_ISIGHT=m CONFIG_SND_SCS1X=m CONFIG_SND_FIREWORKS=m @@ -5370,9 +5337,6 @@ CONFIG_SND_SOC_FSL_SSI=m CONFIG_SND_SOC_FSL_SPDIF=m CONFIG_SND_SOC_FSL_ESAI=m CONFIG_SND_SOC_IMX_AUDMUX=m -CONFIG_SND_SST_MFLD_PLATFORM=m -CONFIG_SND_SST_IPC=m -CONFIG_SND_SST_IPC_ACPI=m CONFIG_SND_SOC_INTEL_SST=m CONFIG_SND_SOC_INTEL_SST_ACPI=m CONFIG_SND_SOC_INTEL_HASWELL=m @@ -5381,8 +5345,6 @@ CONFIG_SND_SOC_INTEL_HASWELL_MACH=m CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH=m CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m -CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m -CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m CONFIG_SND_SOC_I2C_AND_SPI=m # @@ -5395,16 +5357,12 @@ CONFIG_SND_SOC_AK4642=m CONFIG_SND_SOC_AK5386=m CONFIG_SND_SOC_ALC5623=m CONFIG_SND_SOC_CS35L32=m -CONFIG_SND_SOC_CS42L51=m -CONFIG_SND_SOC_CS42L51_I2C=m CONFIG_SND_SOC_CS42L52=m CONFIG_SND_SOC_CS42L56=m CONFIG_SND_SOC_CS42L73=m CONFIG_SND_SOC_CS4265=m CONFIG_SND_SOC_CS4270=m CONFIG_SND_SOC_CS4271=m -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_HDMI_CODEC=m @@ -5417,10 +5375,7 @@ CONFIG_SND_SOC_PCM512x_I2C=m CONFIG_SND_SOC_PCM512x_SPI=m CONFIG_SND_SOC_RL6231=m CONFIG_SND_SOC_RT286=m -CONFIG_SND_SOC_RT5631=m CONFIG_SND_SOC_RT5640=m -CONFIG_SND_SOC_RT5670=m -# CONFIG_SND_SOC_RT5677_SPI is not set CONFIG_SND_SOC_SGTL5000=m CONFIG_SND_SOC_SI476X=m CONFIG_SND_SOC_SIGMADSP=m @@ -5434,13 +5389,8 @@ CONFIG_SND_SOC_SSM4567=m CONFIG_SND_SOC_STA350=m CONFIG_SND_SOC_TAS2552=m CONFIG_SND_SOC_TAS5086=m -CONFIG_SND_SOC_TFA9879=m -CONFIG_SND_SOC_TLV320AIC23=m -CONFIG_SND_SOC_TLV320AIC23_I2C=m -CONFIG_SND_SOC_TLV320AIC23_SPI=m CONFIG_SND_SOC_TLV320AIC31XX=m CONFIG_SND_SOC_TLV320AIC3X=m -CONFIG_SND_SOC_TS3A227E=m CONFIG_SND_SOC_WM8510=m CONFIG_SND_SOC_WM8523=m CONFIG_SND_SOC_WM8580=m @@ -5466,7 +5416,6 @@ CONFIG_AC97_BUS=m # HID support # CONFIG_HID=m -CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HIDRAW=y CONFIG_UHID=m CONFIG_HID_GENERIC=m @@ -5508,7 +5457,6 @@ CONFIG_HID_LCPOWER=m CONFIG_HID_LENOVO=m CONFIG_HID_LOGITECH=m CONFIG_HID_LOGITECH_DJ=m -CONFIG_HID_LOGITECH_HIDPP=m CONFIG_LOGITECH_FF=y CONFIG_LOGIRUMBLEPAD2_FF=y CONFIG_LOGIG940_FF=y @@ -5529,7 +5477,6 @@ CONFIG_HID_PICOLCD_BACKLIGHT=y CONFIG_HID_PICOLCD_LCD=y CONFIG_HID_PICOLCD_LEDS=y CONFIG_HID_PICOLCD_CIR=y -CONFIG_HID_PLANTRONICS=m CONFIG_HID_PRIMAX=m CONFIG_HID_ROCCAT=m CONFIG_HID_SAITEK=m @@ -5676,10 +5623,9 @@ CONFIG_USB_MUSB_HDRC=m # CONFIG_USB_MUSB_HOST is not set # CONFIG_USB_MUSB_GADGET is not set CONFIG_USB_MUSB_DUAL_ROLE=y - -# -# Platform Glue Layer -# +CONFIG_USB_MUSB_TUSB6010=m +CONFIG_USB_MUSB_UX500=m +# CONFIG_USB_UX500_DMA is not set CONFIG_MUSB_PIO_ONLY=y CONFIG_USB_DWC3=m # CONFIG_USB_DWC3_HOST is not set @@ -5697,13 +5643,14 @@ CONFIG_USB_DWC3_PCI=m # CONFIG_USB_DWC3_DEBUG is not set CONFIG_DWC3_HOST_USB3_LPM_ENABLE=y CONFIG_USB_DWC2=y -CONFIG_USB_DWC2_HOST=y +CONFIG_USB_DWC2_HOST=m +CONFIG_USB_DWC2_PLATFORM=y +CONFIG_USB_DWC2_PCI=y # -# Gadget/Dual-role mode requires USB Gadget support to be enabled +# Gadget mode requires USB Gadget support to be enabled # -CONFIG_USB_DWC2_PLATFORM=y -CONFIG_USB_DWC2_PCI=y +CONFIG_USB_DWC2_PERIPHERAL=m # CONFIG_USB_DWC2_DEBUG is not set # CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set CONFIG_USB_CHIPIDEA=m @@ -5842,12 +5789,6 @@ CONFIG_USB_PXA27X=m CONFIG_USB_MV_UDC=m CONFIG_USB_MV_U3D=m # CONFIG_USB_M66592 is not set -CONFIG_USB_BDC_UDC=m - -# -# Platform Support -# -CONFIG_USB_BDC_PCI=m CONFIG_USB_AMD5536UDC=m CONFIG_USB_NET2272=m CONFIG_USB_NET2272_DMA=y @@ -5871,10 +5812,7 @@ CONFIG_USB_F_RNDIS=m CONFIG_USB_F_MASS_STORAGE=m CONFIG_USB_F_FS=m CONFIG_USB_F_UAC1=m -CONFIG_USB_F_UAC2=m CONFIG_USB_F_UVC=m -CONFIG_USB_F_MIDI=m -CONFIG_USB_F_HID=m CONFIG_USB_CONFIGFS=m CONFIG_USB_CONFIGFS_SERIAL=y CONFIG_USB_CONFIGFS_ACM=y @@ -5888,10 +5826,6 @@ CONFIG_USB_CONFIGFS_PHONET=y CONFIG_USB_CONFIGFS_MASS_STORAGE=y CONFIG_USB_CONFIGFS_F_LB_SS=y CONFIG_USB_CONFIGFS_F_FS=y -CONFIG_USB_CONFIGFS_F_UAC1=y -CONFIG_USB_CONFIGFS_F_UAC2=y -CONFIG_USB_CONFIGFS_F_MIDI=y -CONFIG_USB_CONFIGFS_F_HID=y CONFIG_USB_ZERO=m CONFIG_USB_AUDIO=m CONFIG_GADGET_UAC1=y @@ -5957,7 +5891,6 @@ CONFIG_MMC_USHC=m CONFIG_MMC_USDHI6ROL0=m CONFIG_MMC_REALTEK_PCI=m CONFIG_MMC_REALTEK_USB=m -CONFIG_MMC_TOSHIBA_PCI=m CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set @@ -5996,7 +5929,6 @@ CONFIG_LEDS_LP5523=m CONFIG_LEDS_LP5562=m CONFIG_LEDS_LP8501=m CONFIG_LEDS_LP8788=m -CONFIG_LEDS_LP8860=m CONFIG_LEDS_CLEVO_MAIL=m CONFIG_LEDS_PCA955X=m CONFIG_LEDS_PCA963X=m @@ -6045,7 +5977,6 @@ CONFIG_INFINIBAND=m CONFIG_INFINIBAND_USER_MAD=m CONFIG_INFINIBAND_USER_ACCESS=m CONFIG_INFINIBAND_USER_MEM=y -CONFIG_INFINIBAND_ON_DEMAND_PAGING=y CONFIG_INFINIBAND_ADDR_TRANS=y CONFIG_INFINIBAND_MTHCA=m # CONFIG_INFINIBAND_MTHCA_DEBUG is not set @@ -6113,7 +6044,6 @@ CONFIG_RTC_DRV_88PM860X=m CONFIG_RTC_DRV_88PM80X=m CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1374=m -CONFIG_RTC_DRV_DS1374_WDT=y CONFIG_RTC_DRV_DS1672=m CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_LP8788=m @@ -6245,8 +6175,6 @@ CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO=m CONFIG_VFIO_PCI=m CONFIG_VFIO_PCI_VGA=y -CONFIG_VFIO_PCI_MMAP=y -CONFIG_VFIO_PCI_INTX=y CONFIG_VIRT_DRIVERS=y CONFIG_VIRTIO=y @@ -6348,9 +6276,10 @@ CONFIG_COMEDI_PCMMIO=m CONFIG_COMEDI_PCMUIO=m CONFIG_COMEDI_MULTIQ3=m CONFIG_COMEDI_S526=m -CONFIG_COMEDI_PCI_DRIVERS=m +CONFIG_COMEDI_PCI_DRIVERS=y CONFIG_COMEDI_8255_PCI=m CONFIG_COMEDI_ADDI_WATCHDOG=m +CONFIG_COMEDI_ADDI_APCI_035=m CONFIG_COMEDI_ADDI_APCI_1032=m CONFIG_COMEDI_ADDI_APCI_1500=m CONFIG_COMEDI_ADDI_APCI_1516=m @@ -6403,7 +6332,7 @@ CONFIG_COMEDI_RTD520=m CONFIG_COMEDI_S626=m CONFIG_COMEDI_MITE=m CONFIG_COMEDI_NI_TIOCMD=m -CONFIG_COMEDI_PCMCIA_DRIVERS=m +CONFIG_COMEDI_PCMCIA_DRIVERS=y CONFIG_COMEDI_CB_DAS16_CS=m CONFIG_COMEDI_DAS08_CS=m CONFIG_COMEDI_NI_DAQ_700_CS=m @@ -6411,7 +6340,7 @@ CONFIG_COMEDI_NI_DAQ_DIO24_CS=m CONFIG_COMEDI_NI_LABPC_CS=m CONFIG_COMEDI_NI_MIO_CS=m CONFIG_COMEDI_QUATECH_DAQP_CS=m -CONFIG_COMEDI_USB_DRIVERS=m +CONFIG_COMEDI_USB_DRIVERS=y CONFIG_COMEDI_DT9812=m CONFIG_COMEDI_NI_USB6501=m CONFIG_COMEDI_USBDUX=m @@ -6546,6 +6475,7 @@ CONFIG_IIO_SIMPLE_DUMMY=m # CONFIG_IIO_SIMPLE_DUMMY_EVENTS is not set # CONFIG_IIO_SIMPLE_DUMMY_BUFFER is not set CONFIG_FB_XGI=m +CONFIG_BCM_WIMAX=m CONFIG_FT1000=m CONFIG_FT1000_USB=m CONFIG_FT1000_PCMCIA=m @@ -6573,16 +6503,10 @@ CONFIG_DVB_CXD2099=m CONFIG_VIDEO_DT3155=m # CONFIG_DT3155_CCIR is not set CONFIG_DT3155_STREAMING=y -CONFIG_VIDEO_TLG2300=m -CONFIG_DVB_MN88472=m -CONFIG_DVB_MN88473=m -CONFIG_MEDIA_PARPORT_SUPPORT=y -CONFIG_VIDEO_BWQCAM=m -CONFIG_VIDEO_CQCAM=m -CONFIG_VIDEO_W9966=m -CONFIG_VIDEO_SAA7191=m +# CONFIG_VIDEO_TCM825X is not set CONFIG_LIRC_STAGING=y CONFIG_LIRC_BT829=m +CONFIG_LIRC_IGORPLUGUSB=m CONFIG_LIRC_IMON=m CONFIG_LIRC_PARALLEL=m CONFIG_LIRC_SASEM=m @@ -6594,6 +6518,7 @@ CONFIG_LIRC_ZILOG=m # # Android # +# CONFIG_ANDROID is not set CONFIG_USB_WPAN_HCD=m CONFIG_WIMAX_GDM72XX=m CONFIG_WIMAX_GDM72XX_QOS=y @@ -6620,6 +6545,7 @@ CONFIG_DGNC=m CONFIG_DGAP=m CONFIG_GS_FPGABOOT=m CONFIG_CRYPTO_SKEIN=y +CONFIG_CRYPTO_THREEFISH=y CONFIG_UNISYSSPAR=y CONFIG_UNISYS_VISORUTIL=m CONFIG_UNISYS_VISORCHANNEL=m @@ -6683,6 +6609,11 @@ CONFIG_PVPANIC=m CONFIG_CHROME_PLATFORMS=y CONFIG_CHROMEOS_LAPTOP=m CONFIG_CHROMEOS_PSTORE=m + +# +# SOC (System On Chip) specific Drivers +# +CONFIG_SOC_TI=y CONFIG_CLKDEV_LOOKUP=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y @@ -6716,7 +6647,6 @@ CONFIG_CLKBLD_I8253=y # CONFIG_SH_TIMER_TMU is not set # CONFIG_EM_TIMER_STI is not set CONFIG_MAILBOX=y -CONFIG_PCC=y CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y CONFIG_AMD_IOMMU=y @@ -6741,7 +6671,6 @@ CONFIG_STE_MODEM_RPROC=m # # SOC (System On Chip) specific Drivers # -CONFIG_SOC_TI=y CONFIG_PM_DEVFREQ=y # @@ -6804,7 +6733,6 @@ CONFIG_AD7793=m CONFIG_AD7887=m CONFIG_AD7923=m CONFIG_AD799X=m -CONFIG_AXP288_ADC=m CONFIG_LP8788_ADC=m CONFIG_MAX1027=m CONFIG_MAX1363=m @@ -6812,7 +6740,6 @@ CONFIG_MCP320X=m CONFIG_MCP3422=m CONFIG_MEN_Z188_ADC=m CONFIG_NAU7802=m -CONFIG_QCOM_SPMI_IADC=m CONFIG_TI_ADC081C=m CONFIG_TI_ADC128S052=m CONFIG_TI_AM335X_ADC=m @@ -6888,7 +6815,6 @@ CONFIG_ITG3200=m # CONFIG_DHT11=m CONFIG_SI7005=m -CONFIG_SI7020=m # # Inertial measurement units @@ -6945,7 +6871,6 @@ CONFIG_IIO_SYSFS_TRIGGER=m # # Pressure sensors # -CONFIG_BMP280=m CONFIG_HID_SENSOR_PRESS=m CONFIG_MPL115=m CONFIG_MPL3115=m @@ -7018,11 +6943,6 @@ CONFIG_RAS=y CONFIG_THUNDERBOLT=m # -# Android -# -# CONFIG_ANDROID is not set - -# # Firmware Drivers # CONFIG_EDD=y @@ -7208,7 +7128,6 @@ CONFIG_SQUASHFS_FILE_DIRECT=y CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_ZLIB=y -# CONFIG_SQUASHFS_LZ4 is not set CONFIG_SQUASHFS_LZO=y CONFIG_SQUASHFS_XZ=y # CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set @@ -7393,7 +7312,6 @@ CONFIG_FRAME_WARN=1024 # CONFIG_STRIP_ASM_SYMS is not set # CONFIG_READABLE_ASM is not set CONFIG_UNUSED_SYMBOLS=y -# CONFIG_PAGE_OWNER is not set CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set @@ -7407,7 +7325,6 @@ CONFIG_DEBUG_KERNEL=y # # Memory Debugging # -# CONFIG_PAGE_EXTENSION is not set # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set @@ -7443,7 +7360,7 @@ CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PANIC_TIMEOUT=0 CONFIG_SCHED_DEBUG=y CONFIG_SCHEDSTATS=y -CONFIG_SCHED_STACK_END_CHECK=y +# CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_TIMER_STATS=y # @@ -7561,7 +7478,6 @@ CONFIG_KGDB_SERIAL_CONSOLE=y # CONFIG_KGDB_TESTS is not set CONFIG_KGDB_LOW_LEVEL_TRAP=y CONFIG_KGDB_KDB=y -CONFIG_KDB_DEFAULT_ENABLE=0x1 CONFIG_KDB_KEYBOARD=y CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_STRICT_DEVMEM=y @@ -7651,7 +7567,6 @@ CONFIG_IMA_DEFAULT_HASH_SHA1=y CONFIG_IMA_DEFAULT_HASH="sha1" CONFIG_IMA_APPRAISE=y CONFIG_IMA_TRUSTED_KEYRING=y -# CONFIG_IMA_LOAD_X509 is not set CONFIG_EVM=y CONFIG_EVM_ATTR_FSUUID=y CONFIG_EVM_EXTRA_SMACK_XATTRS=y diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index de3e6cb496..4fe6f887cf 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -198,7 +198,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM." #f))) (define-public linux-libre - (let* ((version "3.19") + (let* ((version "3.18.7") (build-phase '(lambda* (#:key system inputs #:allow-other-keys #:rest args) ;; Apply the neat patch. @@ -271,7 +271,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM." (uri (linux-libre-urls version)) (sha256 (base32 - "1ndrflzalkcyy61im6kcm8z681yaq2hwqgn6zbd7r3j9mscyqq1a")))) + "113r2dzmiwlchp5b3hyjyx91jysx5j4hhxjw45gaky5nj9pax2rh")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl) ("bc" ,bc) @@ -446,7 +446,11 @@ providing the system administrator with some help in common tasks.") (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses))) (arguments - '(#:phases (alist-replace + '(#:modules ((guix build utils) + (guix build gnu-build-system) + (srfi srfi-1) + (srfi srfi-26)) + #:phases (alist-replace 'configure (lambda* (#:key outputs #:allow-other-keys) ;; No `configure', just a single Makefile. @@ -468,6 +472,13 @@ providing the system administrator with some help in common tasks.") (system* "make" "install" (string-append "DESTDIR=" out))) + ;; Remove commands and man pages redundant with + ;; Coreutils. + (let ((dup (append-map (cut find-files out <>) + '("^kill" "^uptime")))) + (for-each delete-file dup) + #t) + ;; Sanity check. (zero? (system* (string-append out "/bin/ps") @@ -512,14 +523,14 @@ slabtop, and skill.") (define-public e2fsprogs (package (name "e2fsprogs") - (version "1.42.11") + (version "1.42.12") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/e2fsprogs/e2fsprogs-" version ".tar.gz")) (sha256 (base32 - "0xhbj7494g3y2w2miyrzdz6nciaffxajrs6wqm73yp4jnrqagn2b")) + "0v0qcfyls0dlrjy8gx9m3s2wbkp5z3lbsr5hb7x8kp8f3bclcy71")) (modules '((guix build utils))) (snippet '(substitute* "MCONFIG.in" @@ -866,7 +877,11 @@ manpages.") (list (search-patch "net-tools-bitrot.patch"))))) (build-system gnu-build-system) (arguments - '(#:phases (alist-cons-after + '(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-1) + (srfi srfi-26)) + #:phases (alist-cons-after 'unpack 'patch (lambda* (#:key inputs #:allow-other-keys) (define (apply-patch file) @@ -877,7 +892,6 @@ manpages.") (format #t "applying Debian patch set '~a'...~%" patch.gz) (system (string-append "gunzip < " patch.gz " > the-patch")) - (pk 'here) (and (apply-patch "the-patch") (for-each apply-patch (find-files "debian/patches" @@ -896,7 +910,18 @@ manpages.") ;; definition. (substitute* '("config.make" "config.h") (("^.*HAVE_AFDECnet.*$") "")))) - %standard-phases)) + (alist-cons-after + 'install 'remove-redundant-commands + (lambda* (#:key outputs #:allow-other-keys) + ;; Remove commands and man pages redundant with + ;; Inetutils. + (let* ((out (assoc-ref outputs "out")) + (dup (append-map (cut find-files out <>) + '("^hostname" + "^(yp|nis|dns)?domainname")))) + (for-each delete-file dup) + #t)) + %standard-phases))) ;; Binaries that depend on libnet-tools.a don't declare that ;; dependency, making it parallel-unsafe. @@ -1699,6 +1724,36 @@ you to access information from temperature, voltage, and fan speed sensors. It works with most newer systems.") (license gpl2+))) +(define-public i2c-tools + (package + (name "i2c-tools") + (version "3.1.1") + (source (origin + (method url-fetch) + (uri (string-append + "http://dl.lm-sensors.org/i2c-tools/releases/i2c-tools-" + version ".tar.bz2")) + (sha256 + (base32 + "000pvg995qy1b15ks59gd0klri55hb33kqpg5czy84hw1pbdgm0l")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no 'check' target + #:make-flags (list (string-append "prefix=" %output) + "CC=gcc") + ;; no configure script + #:phases (alist-delete 'configure %standard-phases))) + (inputs + `(("perl" ,perl))) + (home-page "http://www.lm-sensors.org/wiki/I2CTools") + (synopsis "I2C tools for Linux") + (description + "The i2c-tools package contains a heterogeneous set of I2C tools for +Linux: a bus probing tool, a chip dumper, register-level SMBus access helpers, +EEPROM decoding scripts, EEPROM programming tools, and a python module for +SMBus access.") + (license gpl2+))) + (define-public xsensors (package (name "xsensors") @@ -1837,3 +1892,100 @@ thanks to the use of namespaces.") is for enabling irq-unmasking and IDE multiplemode.") (license (bsd-style "file://LICENSE.TXT")))) +(define-public acpid + (package + (name "acpid") + (version "2.0.23") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/acpid2/acpid-" + version ".tar.xz")) + (sha256 + (base32 + "1vl7c6vc724v4jwki17czgj6lnrknnj1a6llm8gkl32i2gnam5j3")))) + (build-system gnu-build-system) + (home-page "http://sourceforge.net/projects/acpid2/") + (synopsis "Daemon for delivering ACPI events to user-space programs") + (description + "acpid is designed to notify user-space programs of Advanced +Configuration and Power Interface (ACPI) events. acpid should be started +during the system boot, and will run as a background process. When an ACPI +event is received from the kernel, acpid will examine the list of rules +specified in /etc/acpi/events and execute the rules that match the event.") + (license gpl2+))) + +(define-public sysfsutils + (package + (name "sysfsutils") + (version "2.1.0") + (source + (origin + (method url-fetch) + (uri + (string-append + "mirror://sourceforge/linux-diag/sysfsutils/" version "/sysfsutils-" + version ".tar.gz")) + (sha256 + (base32 "12i0ip11xbfcjzxz4r10cvz7mbzgq1hfcdn97w6zz7sm3wndwrg8")))) + (build-system gnu-build-system) + (home-page "http://linux-diag.sourceforge.net/Sysfsutils.html") + (synopsis "System utilities based on Linux sysfs") + (description + "These are a set of utilites built upon sysfs, a virtual filesystem in +Linux kernel versions 2.5+ that exposes a system's device tree. The package +also contains the libsysfs library.") + ;; The library is under lgpl2.1+ (all files say "or any later version"). + ;; The rest is mostly gpl2, with a few files indicating gpl2+. + (license (list gpl2 gpl2+ lgpl2.1+)))) + +(define-public sysfsutils-1 + (package + (inherit sysfsutils) + (version "1.3.0") + (source + (origin + (method url-fetch) + (uri + (string-append + "mirror://sourceforge/linux-diag/sysfsutils/sysfsutils-" version + "/sysfsutils-" version ".tar.gz")) + (sha256 + (base32 "0kdhs07fm8263pxwd5blwn2x211cg4fk63fyf9ijcdkvzmwxrqq3")) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* "Makefile.in" + (("includedir = /usr/include/sysfs") + "includedir = @includedir@")) + (substitute* "configure" + (("includedir='(\\$\\{prefix\\}/include)'" all orig) + (string-append "includedir='" orig "/sysfs'"))))))) + (synopsis "System utilities based on Linux sysfs (version 1.x)"))) + +(define-public cpufrequtils + (package + (name "cpufrequtils") + (version "0.3") + (source + (origin + (method url-fetch) + (uri + (string-append + "https://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufrequtils-" + version ".tar.gz")) + (sha256 + (base32 "0qfqv7nqmjfr3p0bwrdlxkiqwqr7vmx053cadaa548ybqbghxmvm")) + (patches (list (search-patch "cpufrequtils-fix-aclocal.patch"))))) + (build-system gnu-build-system) + (native-inputs + `(("sysfsutils" ,sysfsutils-1))) + (arguments + '(#:make-flags (list (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") "/lib")))) + (home-page "https://www.kernel.org/pub/linux/utils/kernel/cpufreq/") + (synopsis "Utilities to get and set CPU frequency on Linux") + (description + "The cpufrequtils suite contains utilities to retreive CPU frequency +information, and set the CPU frequency if supported, using the cpufreq +capabilities of the Linux kernel.") + (license gpl2))) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 0bacac47bf..5db3fa98f9 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 John Darrington <jmd@gnu.org> +;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,7 +27,19 @@ #:use-module (gnu packages m4) #:use-module (guix download) #:use-module (guix utils) - #:use-module (guix build-system gnu)) + #:use-module (guix build-system gnu) + #:use-module (gnu packages which) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages bdw-gc) + #:use-module (gnu packages libffi) + #:use-module (gnu packages libffcall) + #:use-module (gnu packages readline) + #:use-module (gnu packages libsigsegv) + #:use-module (gnu packages admin) + #:use-module (gnu packages ed) + #:use-module (gnu packages m4) + #:use-module (gnu packages version-control) + #:use-module (ice-9 match)) (define-public gcl (package @@ -81,3 +94,292 @@ stratified garbage collection strategy, a source-level debugger and a built-in interface to the Tk widget system.") (license license:lgpl2.0+))) +(define-public ecl + (package + (name "ecl") + (version "13.5.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/ecls/ecls/" + (version-major+minor version) + "/ecl-" version ".tgz")) + (sha256 + (base32 "18ic8w9sdl0dh3kmyc9lsrafikrd9cg1jkhhr25p9saz0v75f77r")))) + (build-system gnu-build-system) + (native-inputs `(("which" ,which))) + (inputs `(("gmp" ,gmp) + ("libatomic-ops" ,libatomic-ops) + ("libgc" ,libgc) + ("libffi" ,libffi))) + (arguments + '(#:phases + ;; The test-suite seems to assume that ECL is installed. So re-order + ;; the phases, then reference the installed executable. + (let* ((check-phase (assq-ref %standard-phases 'check)) + (rearranged-phases + (alist-cons-after 'install 'check check-phase + (alist-delete 'check %standard-phases)))) + (alist-cons-before + 'check 'pre-check + (lambda* (#:key outputs #:allow-other-keys) + (substitute* '("build/tests/Makefile") + (("ECL=ecl") + (string-append + "ECL=" (assoc-ref outputs "out") "/bin/ecl")))) + rearranged-phases)) + ;; Parallel builds explicitly not supported: + ;; http://sourceforge.net/p/ecls/bugs/98/ + #:parallel-build? #f + #:parallel-tests? #f)) + (home-page "http://ecls.sourceforge.net/") + (synopsis "Embeddable Common Lisp") + (description "ECL is an implementation of the Common Lisp language as +defined by the ANSI X3J13 specification. Its most relevant features are: a +bytecode compiler and interpreter, being able to compile Common Lisp with any +C/C++ compiler, being able to build standalone executables and libraries, and +supporting ASDF, Sockets, Gray streams, MOP, and other useful components.") + ;; Note that the file "Copyright" points to some files and directories + ;; which aren't under the lgpl2.0+ and instead contain many different, + ;; non-copyleft licenses. + (license license:lgpl2.0+))) + +(define-public clisp + (package + (name "clisp") + (version "2.49") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/clisp/release/" version + "/clisp-" version ".tar.gz")) + (sha256 + (base32 "0rp82nqp5362isl9i34rwgg04cidz7izljd9d85pqcw1qr964bxx")))) + (build-system gnu-build-system) + (inputs `(("libffcall" ,libffcall) + ("readline" ,readline) + ("libsigsegv" ,libsigsegv))) + (arguments + '(#:phases + (alist-cons-after + 'unpack 'patch-sh-and-pwd + (lambda _ + ;; The package is very messy with its references to "/bin/sh" and + ;; some other absolute paths to traditional tools. These appear in + ;; many places where our automatic patching misses them. Therefore + ;; we do the following, in this early (post-unpack) phase, to solve + ;; the problem from its root. + (substitute* (find-files "." "configure|Makefile") + (("/bin/sh") "sh")) + (substitute* '("src/clisp-link.in") + (("/bin/pwd") "pwd"))) + (alist-cons-before + 'build 'chdir-to-source + (lambda _ + ;; We are supposed to call make under the src sub-directory. + (chdir "src")) + %standard-phases)) + ;; Makefiles seem to have race conditions. + #:parallel-build? #f)) + (home-page "http://www.clisp.org/") + (synopsis "A Common Lisp implementation") + (description + "GNU CLISP is an implementation of ANSI Common Lisp. Common Lisp is a +high-level, object-oriented functional programming language. CLISP includes +an interpreter, a compiler, a debugger, and much more.") + ;; Website says gpl2+, COPYRIGHT file says gpl2; actual source files have + ;; a lot of gpl3+. (Also some parts are under non-copyleft licenses, such + ;; as CLX by Texas Instruments.) In that case gpl3+ wins out. + (license license:gpl3+))) + +(define-public sbcl + (package + (name "sbcl") + (version "1.2.8") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-" + version "-source.tar.bz2")) + (sha256 + (base32 "0ab9lw056yf6y0rjmx3iirn5n59pmssqxf00fbmpyl6qsnpaja1d")))) + (build-system gnu-build-system) + ;; Bootstrap with CLISP. + (native-inputs + `(("clisp" ,clisp) + ("which" ,which) + ("inetutils" ,inetutils) ;for hostname(1) + ("ed" ,ed))) + (arguments + '(#:phases + (alist-delete + 'configure + (alist-cons-before + 'build 'patch-unix-tool-paths + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (bash (assoc-ref inputs "bash")) + (coreutils (assoc-ref inputs "coreutils")) + (ed (assoc-ref inputs "ed"))) + (define (quoted-path input path) + (string-append "\"" input path "\"")) + ;; Patch absolute paths in string literals. Note that this + ;; occurs in some .sh files too (which contain Lisp code). + (substitute* (find-files "." "\\.(lisp|sh)$") + (("\"/bin/sh\"") (quoted-path bash "/bin/sh")) + (("\"/usr/bin/env\"") (quoted-path coreutils "/usr/bin/env")) + (("\"/bin/cat\"") (quoted-path coreutils "/bin/cat")) + (("\"/bin/ed\"") (quoted-path ed "/bin/ed")) + (("\"/bin/echo\"") (quoted-path coreutils "/bin/echo")) + (("\"/bin/uname\"") (quoted-path coreutils "/bin/uname"))) + ;; This one script has a non-string occurrence of /bin/sh. + (substitute* '("tests/foreign.test.sh") + ;; Leave whitespace so we don't match the shebang. + ((" /bin/sh ") " sh ")) + ;; This file contains a module that can create executable files + ;; which depend on the presence of SBCL. It generates shell + ;; scripts doing "exec sbcl ..." to achieve this. We patch both + ;; the shebang and the reference to "sbcl", tying the generated + ;; executables to the exact SBCL package that generated them. + (substitute* '("contrib/sb-executable/sb-executable.lisp") + (("/bin/sh") (string-append bash "/bin/sh")) + (("exec sbcl") (string-append "exec " out "/bin/sbcl"))) + ;; Disable some tests that fail in our build environment. + (substitute* '("contrib/sb-bsd-sockets/tests.lisp") + ;; This requires /etc/protocols. + (("\\(deftest get-protocol-by-name/error" all) + (string-append "#+nil ;disabled by Guix\n" all))) + (substitute* '("contrib/sb-posix/posix-tests.lisp") + ;; These assume some users/groups which we don't have. + (("\\(deftest pwent\\.[12]" all) + (string-append "#+nil ;disabled by Guix\n" all)) + (("\\(deftest grent\\.[12]" all) + (string-append "#+nil ;disabled by Guix\n" all))))) + (alist-replace + 'build + (lambda* (#:key outputs #:allow-other-keys) + (setenv "CC" "gcc") + (zero? (system* "sh" "make.sh" "clisp" + (string-append "--prefix=" + (assoc-ref outputs "out"))))) + (alist-replace + 'install + (lambda _ + (zero? (system* "sh" "install.sh"))) + %standard-phases)))) + ;; No 'check' target, though "make.sh" (build phase) runs tests. + #:tests? #f)) + (home-page "http://www.sbcl.org/") + (synopsis "Common Lisp implementation") + (description "Steel Bank Common Lisp (SBCL) is a high performance Common +Lisp compiler. In addition to the compiler and runtime system for ANSI Common +Lisp, it provides an interactive environment including a debugger, a +statistical profiler, a code coverage tool, and many other extensions.") + ;; Public domain in jurisdictions that allow it, bsd-2 otherwise. MIT + ;; loop macro has its own license. See COPYING file for further notes. + (license (list license:public-domain license:bsd-2 + (license:x11-style "file://src/code/loop.lisp"))))) + +(define-public ccl + (package + (name "ccl") + (version "1.10") + (source #f) + (build-system gnu-build-system) + ;; CCL consists of a "lisp kernel" and "heap image", both of which are + ;; shipped in precompiled form in source tarballs. The former is a C + ;; program which we can rebuild from scratch, but the latter cannot be + ;; generated without an already working copy of CCL, and is platform + ;; dependent, so we need to fetch the correct tarball for the platform. + (inputs + `(("ccl" + ,(origin + (method url-fetch) + (uri (string-append + "ftp://ftp.clozure.com/pub/release/1.10/ccl-" version "-" + (match (%current-system) + ((or "i686-linux" "x86_64-linux") "linuxx86") + ("armhf-linux" "linuxarm")) + ".tar.gz")) + (sha256 + (base32 + (match (%current-system) + ((or "i686-linux" "x86_64-linux") + "0mr653q5px05lr11z2mk551m5g47b4wq96vbfibpp0qlc9jp58lc") + ("armhf" + "1py02irpmi2qz5rq3h33wfv6impf15z8i2rign6hvhlqn7s99wwh")))))))) + (native-inputs + `(("m4" ,m4) + ("subversion" ,subversion))) + (arguments + `(#:tests? #f ;no 'check' target + #:phases + (alist-replace + 'unpack + (lambda* (#:key inputs #:allow-other-keys) + (and (zero? (system* "tar" "xzvf" (assoc-ref inputs "ccl"))) + (begin (chdir "ccl") #t))) + (alist-delete + 'configure + (alist-cons-before + 'build 'pre-build + ;; Enter the source directory for the current platform's lisp + ;; kernel, and run 'make clean' to remove the precompiled one. + (lambda _ + (chdir (string-append + "lisp-kernel/" + ,(match (or (%current-target-system) (%current-system)) + ("i686-linux" "linuxx8632") + ("x86_64-linux" "linuxx8664") + ("armhf-linux" "linuxarm")))) + (substitute* '("Makefile") + (("/bin/rm") "rm")) + (setenv "CC" "gcc") + (zero? (system* "make" "clean"))) + ;; XXX Do we need to recompile the heap image as well for Guix? + ;; For now just use the one we already got in the tarball. + (alist-replace + 'install + (lambda* (#:key outputs inputs #:allow-other-keys) + ;; The lisp kernel built by running 'make' in lisp-kernel/$system + ;; is put back into the original directory, so go back. The heap + ;; image is there as well. + (chdir "../..") + (let* ((out (assoc-ref outputs "out")) + (libdir (string-append out "/lib/")) + (bindir (string-append out "/bin/")) + (wrapper (string-append bindir "ccl")) + (bash (assoc-ref inputs "bash")) + (kernel + ,(match (or (%current-target-system) (%current-system)) + ("i686-linux" "lx86cl") + ("x86_64-linux" "lx86cl64") + ("armhf-linux" "armcl"))) + (heap (string-append kernel ".image"))) + (mkdir-p libdir) + (mkdir-p bindir) + (copy-file kernel (string-append libdir kernel)) + (copy-file heap (string-append libdir heap)) + (with-output-to-file wrapper + (lambda () + (display + (string-append + "#!" bash "/bin/sh\n" + "if [ -z \"$CCL_DEFAULT_DIRECTORY\" ]; then\n" + " CCL_DEFAULT_DIRECTORY=" libdir "\n" + "fi\n" + "export CCL_DEFAULT_DIRECTORY\n" + "exec " libdir kernel "\n")))) + (chmod wrapper #o755))) + %standard-phases)))))) + (supported-systems '("i686-linux" "x86_64-linux" "armhf-linux")) + (home-page "http://ccl.clozure.com/") + (synopsis "Common Lisp implementation") + (description "Clozure CL (often called CCL for short) is a Common Lisp +implementation featuring fast compilation speed, native threads, a precise, +generational, compacting garbage collector, and a convenient foreign-function +interface.") + ;; See file doc/LICENSE for clarifications it makes regarding how the LGPL + ;; applies to Lisp code according to them. + (license (list license:lgpl2.1 + license:clarified-artistic)))) ;TRIVIAL-LDAP package diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index eda69f93ba..9a3a83f48f 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -87,7 +87,9 @@ for configuration, scripting, and rapid prototyping.") (uri (string-append "http://luajit.org/download/LuaJIT-" version ".tar.gz")) (sha256 - (base32 "0ydxpqkmsn2c341j4r2v6r5r0ig3kbwv3i9jran3iv81s6r6rgjm")))) + (base32 "0ydxpqkmsn2c341j4r2v6r5r0ig3kbwv3i9jran3iv81s6r6rgjm")) + (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/mail.scm b/gnu/packages/mail.scm index 62f86ef839..dc33c8cbd3 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> ;;; Copyright © 2014 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu> +;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,6 +47,7 @@ #:use-module (gnu packages databases) #:use-module (gnu packages ncurses) #:use-module (gnu packages openssl) + #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages python) #:use-module (gnu packages readline) @@ -529,4 +531,89 @@ an SMTP server (for example at a free mail provider) which takes care of further delivery.") (license gpl3+))) +(define-public exim + (package + (name "exim") + (version "4.85") + (source + (origin + (method url-fetch) + (uri (string-append + "ftp://ftp.exim.org/pub/exim/exim4/exim-" version ".tar.bz2")) + (sha256 + (base32 "195a3ll5ck9viazf9pvgcyc0sziln5g0ggmlm6ax002lphmiy88k")))) + (build-system gnu-build-system) + (inputs + `(("bdb" ,bdb) + ("gnutls" ,gnutls) + ("gzip" ,gzip) + ("bzip2" ,bzip2) + ("xz" ,xz) + ("pcre" ,pcre) + ("perl" ,perl) + ("libxt" ,libxt) + ("libxaw" ,libxaw))) + (native-inputs + `(("perl" ,perl))) + (arguments + '(#:phases + (alist-replace + 'configure + ;; We'd use #:make-flags but the top-level Makefile calls others + ;; recursively, so just set all variables this way. + (lambda* (#:key outputs inputs #:allow-other-keys) + (substitute* '("Makefile" "OS/Makefile-Default") + (("(RM_COMMAND=).*" all var) + (string-append var "rm\n"))) + (copy-file "src/EDITME" "Local/Makefile") + (copy-file "exim_monitor/EDITME" "Local/eximon.conf") + (let ((out (assoc-ref outputs "out")) + (gzip (assoc-ref inputs "gzip")) + (bzip2 (assoc-ref inputs "bzip2")) + (xz (assoc-ref inputs "xz"))) + (substitute* '("Local/Makefile") + (("(BIN_DIRECTORY=).*" all var) + (string-append var out "/bin\n")) + (("(CONFIGURE_FILE=).*" all var) + (string-append var out "/etc/exim.conf\n")) + (("(EXIM_USER=).*" all var) + (string-append var "nobody\n")) + (("(FIXED_NEVER_USERS=).*" all var) + (string-append var "\n")) ;XXX no root in build environment + (("(COMPRESS_COMMAND=).*" all var) + (string-append var gzip "/bin/gzip\n")) + (("(ZCAT_COMMAND=).*" all var) + (string-append var gzip "/bin/zcat\n"))) + ;; This file has hardcoded names for tools despite the zcat + ;; configuration above. + (substitute* '("src/exigrep.src") + (("'zcat'") (string-append "'" gzip "/bin/zcat'")) + (("'bzcat'") (string-append "'" bzip2 "/bin/bzcat'")) + (("'xzcat'") (string-append "'" xz "/bin/xzcat'")) + (("'lzma'") (string-append "'" xz "/bin/lzma'"))))) + (alist-cons-before + 'build 'fix-sh-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* '("scripts/lookups-Makefile" "scripts/reversion") + (("SHELL=/bin/sh") "SHELL=sh")) + (substitute* '("scripts/Configure-config.h") + (("\\| /bin/sh") "| sh")) + (let ((bash (assoc-ref inputs "bash"))) + (substitute* '("scripts/Configure-eximon") + (("#!/bin/sh") (string-append "#!" bash "/bin/sh"))))) + %standard-phases)) + #:make-flags '("INSTALL_ARG=-no_chown") + ;; No 'check' target. + #:tests? #f)) + (home-page "http://www.exim.org/") + (synopsis + "Message Transfer Agent (MTA) developed at the University of Cambridge") + (description + "Exim is a message transfer agent (MTA) developed at the University of +Cambridge for use on Unix systems connected to the Internet. In style it is +similar to Smail 3, but its facilities are more general. There is a great +deal of flexibility in the way mail can be routed, and there are extensive +facilities for checking incoming mail.") + (license gpl2+))) + ;;; mail.scm ends here diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index c3cf30c7a7..8c4eb3bd2f 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2014 Mathieu Lirzin <mathieu.lirzin@openmailbox.org> +;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -212,6 +213,30 @@ can be imported from spreadsheets, text files and database sources and it can be output in text, PostScript, PDF or HTML.") (license license:gpl3+))) +(define-public arpack-ng + (package + (name "arpack-ng") + (version "3.2.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/opencollab/arpack-ng/archive/" + version ".tar.gz")) + (sha256 + (base32 + "1fwch6vipms1ispzg2djvbzv5wag36f1dmmr3xs3mbp6imfyhvff")))) + (build-system gnu-build-system) + (home-page "https://github.com/opencollab/arpack-ng") + (inputs + `(("lapack" ,lapack) + ("fortran" ,gfortran-4.8))) + (synopsis "Fortran subroutines for solving eigenvalue problems") + (description + "ARPACK-NG is a collection of Fortran77 subroutines designed to solve +large scale eigenvalue problems.") + (license (license:bsd-style "file://COPYING" + "See COPYING in the distribution.")))) + (define-public lapack (package (name "lapack") diff --git a/gnu/packages/moreutils.scm b/gnu/packages/moreutils.scm new file mode 100644 index 0000000000..4ea6df3dcc --- /dev/null +++ b/gnu/packages/moreutils.scm @@ -0,0 +1,68 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages moreutils) + #:use-module ((guix licenses) #:prefix l:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages perl) + #:use-module (gnu packages xml) + #:use-module (gnu packages docbook)) + +(define-public moreutils + (package + (name "moreutils") + (version "0.55") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://debian/pool/main/m/moreutils/moreutils_" + version ".orig.tar.gz")) + (sha256 + (base32 + "1dcah2jx8dbznn8966xl7sf1jrld2qfh6l6xcmx9dsnf8p8mr7fs")))) + (build-system gnu-build-system) + (inputs `(("perl" ,perl) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("docbook-xml" ,docbook-xml-4.4) + ("docbook-xsl" ,docbook-xsl))) + (arguments + `(#:phases + (alist-replace + 'configure + (lambda* (#:key inputs #:allow-other-keys) + (use-modules (srfi srfi-1)) + (substitute* "Makefile" + (("/usr/share/xml/.*/docbook.xsl") + (let* ((docbook-xsl (assoc-ref inputs "docbook-xsl")) + (files (find-files docbook-xsl "^docbook\\.xsl$"))) + (find (lambda (file) + (string-suffix? "/manpages/docbook.xsl" file)) + files))))) + %standard-phases) + #:make-flags + (list (string-append "PREFIX=" (assoc-ref %outputs "out")) + "CC=gcc"))) + (home-page "http://joeyh.name/code/moreutils/") + (synopsis "Miscellaneous general-purpose command-line tools") + (description + "Moreutils is a collection of general-purpose command-line tools to +augment the traditional Unix toolbox.") + (license l:gpl2+))) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index be4f44ddfb..e8b834c3c9 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -35,14 +35,14 @@ (define-public node (package (name "node") - (version "0.10.36") + (version "0.12.0") (source (origin (method url-fetch) (uri (string-append "http://nodejs.org/dist/v" version "/node-v" version ".tar.gz")) (sha256 (base32 - "10cc2yglmrp8i2l4lm4pnm1pf7jvzjk5v80kddl4dkjb578d3mxr")))) + "0cifd2qhpyrbxx71a4hsagzk24qas8m5zvwcyhx69cz9yhxf404p")))) (native-inputs `(("python" ,python-2) ("perl" ,perl) ("gcc" ,gcc-4.9) diff --git a/gnu/packages/openssl.scm b/gnu/packages/openssl.scm index 4f7526d755..90dea4956d 100644 --- a/gnu/packages/openssl.scm +++ b/gnu/packages/openssl.scm @@ -63,6 +63,10 @@ (("/bin/rm") "rm")))) %standard-phases)))) + (native-search-paths + (list (search-path-specification + (variable "SSL_CERT_DIR") + (files '("etc/ssl/certs"))))) (synopsis "SSL/TLS implementation") (description "OpenSSL is an implementation of SSL/TLS") diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index acb72f6bc6..97e96c712f 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,7 +23,7 @@ #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) - #:use-module ((guix licenses) #:select (gpl3+ lgpl2.1+)) + #:use-module ((guix licenses) #:select (gpl2+ gpl3+ lgpl2.1+)) #:use-module (gnu packages) #:use-module (gnu packages guile) #:use-module ((gnu packages compression) #:select (bzip2 gzip)) @@ -210,3 +211,31 @@ never change after they have been built. Nix stores packages in the Nix store, usually the directory /nix/store, where each package has its own unique sub-directory.") (license lgpl2.1+))) + +(define-public stow + (package + (name "stow") + (version "2.2.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/stow/stow-" + version ".tar.gz")) + (sha256 + (base32 + "0arw1nsdlcvd7javkbk2bdvnc31d7dmb6fr25xyyi6ng76cxg2cb")))) + (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))) + (home-page "https://www.gnu.org/software/stow/") + (synopsis "Managing installed software packages") + (description + "GNU Stow is a symlink manager. It generates symlinks to directories +of data and makes them appear to be merged into the same directory. It is +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+))) diff --git a/gnu/packages/patches/chmlib-inttypes.patch b/gnu/packages/patches/chmlib-inttypes.patch new file mode 100644 index 0000000000..033e808792 --- /dev/null +++ b/gnu/packages/patches/chmlib-inttypes.patch @@ -0,0 +1,60 @@ +Taken from Debian, necessary for compilation on mips. + +Patch to fix integer types problem by Goswin von Brederlow +<brederlo@informatik.uni-tuebingen.de> (#258444) +--- chmlib-0.39.orig/src/chm_lib.c ++++ chmlib-0.39/src/chm_lib.c +@@ -56,6 +56,7 @@ + + #include "lzx.h" + ++#include <stdint.h> + #include <stdlib.h> + #include <string.h> + #ifdef CHM_DEBUG +@@ -149,22 +150,9 @@ + typedef __int64 Int64; + typedef unsigned __int64 UInt64; + +-/* I386, 32-bit, non-Windows */ +-/* Sparc */ +-/* MIPS */ +-/* PPC */ +-#elif __i386__ || __sun || __sgi || __ppc__ +-typedef unsigned char UChar; +-typedef short Int16; +-typedef unsigned short UInt16; +-typedef long Int32; +-typedef unsigned long UInt32; +-typedef long long Int64; +-typedef unsigned long long UInt64; +- + /* x86-64 */ + /* Note that these may be appropriate for other 64-bit machines. */ +-#elif __x86_64__ || __ia64__ ++#elif defined(__LP64__) + typedef unsigned char UChar; + typedef short Int16; + typedef unsigned short UInt16; +@@ -173,10 +161,18 @@ + typedef long Int64; + typedef unsigned long UInt64; + ++/* I386, 32-bit, non-Windows */ ++/* Sparc */ ++/* MIPS */ ++/* PPC */ + #else +- +-/* yielding an error is preferable to yielding incorrect behavior */ +-#error "Please define the sized types for your platform in chm_lib.c" ++typedef unsigned char UChar; ++typedef short Int16; ++typedef unsigned short UInt16; ++typedef long Int32; ++typedef unsigned long UInt32; ++typedef long long Int64; ++typedef unsigned long long UInt64; + #endif + + /* GCC */ diff --git a/gnu/packages/patches/cpufrequtils-fix-aclocal.patch b/gnu/packages/patches/cpufrequtils-fix-aclocal.patch new file mode 100644 index 0000000000..be5767f462 --- /dev/null +++ b/gnu/packages/patches/cpufrequtils-fix-aclocal.patch @@ -0,0 +1,46 @@ +Add an extra layer of quoting to ltmain.sh sanity check. + +--- a/configure 2005-05-07 14:19:31.000000000 +0200 ++++ b/configure 2015-02-10 11:16:32.456146934 +0100 +@@ -6266,7 +6266,7 @@ + exit 1 + fi + gentoo_lt_version="1.5.16" +-gentoo_ltmain_version=`grep '^[:space:]*VERSION=' $ltmain | sed -e 's|^[:space:]*VERSION=||'` ++gentoo_ltmain_version=`grep '^[[:space:]]*VERSION=' $ltmain | sed -e 's|^[[:space:]]*VERSION=||'` + if test "$gentoo_lt_version" != "$gentoo_ltmain_version"; then + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 +--- a/aclocal.m4 2005-05-07 14:19:25.000000000 +0200 ++++ b/aclocal.m4 2015-02-10 11:16:15.352030318 +0100 +@@ -246,7 +246,7 @@ + exit 1 + fi + gentoo_lt_version="1.5.16" +-gentoo_ltmain_version=`grep '^[[:space:]]*VERSION=' $ltmain | sed -e 's|^[[:space:]]*VERSION=||'` ++gentoo_ltmain_version=`[grep '^[[:space:]]*VERSION=' $ltmain | sed -e 's|^[[:space:]]*VERSION=||']` + if test "$gentoo_lt_version" != "$gentoo_ltmain_version"; then + AC_MSG_RESULT(no) + echo +--- a/libcpufreq/configure 2005-05-07 14:19:31.000000000 +0200 ++++ b/libcpufreq/configure 2015-02-10 11:16:32.456146934 +0100 +@@ -6266,7 +6266,7 @@ + exit 1 + fi + gentoo_lt_version="1.5.16" +-gentoo_ltmain_version=`grep '^[:space:]*VERSION=' $ltmain | sed -e 's|^[:space:]*VERSION=||'` ++gentoo_ltmain_version=`grep '^[[:space:]]*VERSION=' $ltmain | sed -e 's|^[[:space:]]*VERSION=||'` + if test "$gentoo_lt_version" != "$gentoo_ltmain_version"; then + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 +--- a/libcpufreq/aclocal.m4 2005-05-07 14:19:25.000000000 +0200 ++++ b/libcpufreq/aclocal.m4 2015-02-10 11:16:15.352030318 +0100 +@@ -246,7 +246,7 @@ + exit 1 + fi + gentoo_lt_version="1.5.16" +-gentoo_ltmain_version=`grep '^[[:space:]]*VERSION=' $ltmain | sed -e 's|^[[:space:]]*VERSION=||'` ++gentoo_ltmain_version=`[grep '^[[:space:]]*VERSION=' $ltmain | sed -e 's|^[[:space:]]*VERSION=||']` + if test "$gentoo_lt_version" != "$gentoo_ltmain_version"; then + AC_MSG_RESULT(no) + echo diff --git a/gnu/packages/patches/icecat-CVE-2015-0822.patch b/gnu/packages/patches/icecat-CVE-2015-0822.patch new file mode 100644 index 0000000000..2625151453 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-0822.patch @@ -0,0 +1,154 @@ +From 0922145c255bf2503d3b2dd5f8f1e813338ba990 Mon Sep 17 00:00:00 2001 +From: Mats Palmgren <mats@mozilla.com> +Date: Sat, 24 Jan 2015 12:37:47 -0500 +Subject: [PATCH] Bug 1110557. r=mak, r=gavin, a=bkerensa + +--- + .../components/satchel/nsFormFillController.cpp | 67 +++++++++++++++------- + toolkit/components/satchel/nsFormFillController.h | 5 ++ + 2 files changed, 52 insertions(+), 20 deletions(-) + +diff --git a/toolkit/components/satchel/nsFormFillController.cpp b/toolkit/components/satchel/nsFormFillController.cpp +index 315fc68..676ad84 100644 +--- a/toolkit/components/satchel/nsFormFillController.cpp ++++ b/toolkit/components/satchel/nsFormFillController.cpp +@@ -61,6 +61,7 @@ nsFormFillController::nsFormFillController() : + mSuppressOnInput(false) + { + mController = do_GetService("@mozilla.org/autocomplete/controller;1"); ++ MOZ_ASSERT(mController); + } + + struct PwmgrInputsEnumData +@@ -104,6 +105,21 @@ nsFormFillController::AttributeChanged(nsIDocument* aDocument, + int32_t aNameSpaceID, + nsIAtom* aAttribute, int32_t aModType) + { ++ if ((aAttribute == nsGkAtoms::type || aAttribute == nsGkAtoms::readonly || ++ aAttribute == nsGkAtoms::autocomplete) && ++ aNameSpaceID == kNameSpaceID_None) { ++ nsCOMPtr<nsIDOMHTMLInputElement> focusedInput(mFocusedInput); ++ // Reset the current state of the controller, unconditionally. ++ StopControllingInput(); ++ // Then restart based on the new values. We have to delay this ++ // to avoid ending up in an endless loop due to re-registering our ++ // mutation observer (which would notify us again for *this* event). ++ nsCOMPtr<nsIRunnable> event = ++ NS_NewRunnableMethodWithArg<nsCOMPtr<nsIDOMHTMLInputElement>> ++ (this, &nsFormFillController::MaybeStartControllingInput, focusedInput); ++ NS_DispatchToCurrentThread(event); ++ } ++ + if (mListNode && mListNode->Contains(aElement)) { + RevalidateDataList(); + } +@@ -841,28 +857,26 @@ nsFormFillController::RemoveForDocumentEnumerator(const nsINode* aKey, + return PL_DHASH_NEXT; + } + +-nsresult +-nsFormFillController::Focus(nsIDOMEvent* aEvent) ++void ++nsFormFillController::MaybeStartControllingInput(nsIDOMHTMLInputElement* aInput) + { +- nsCOMPtr<nsIDOMHTMLInputElement> input = do_QueryInterface( +- aEvent->InternalDOMEvent()->GetTarget()); +- nsCOMPtr<nsINode> inputNode = do_QueryInterface(input); ++ nsCOMPtr<nsINode> inputNode = do_QueryInterface(aInput); + if (!inputNode) +- return NS_OK; ++ return; + +- nsCOMPtr<nsIFormControl> formControl = do_QueryInterface(input); ++ nsCOMPtr<nsIFormControl> formControl = do_QueryInterface(aInput); + if (!formControl || !formControl->IsSingleLineTextControl(true)) +- return NS_OK; ++ return; + + bool isReadOnly = false; +- input->GetReadOnly(&isReadOnly); ++ aInput->GetReadOnly(&isReadOnly); + if (isReadOnly) +- return NS_OK; ++ return; + +- bool autocomplete = nsContentUtils::IsAutocompleteEnabled(input); ++ bool autocomplete = nsContentUtils::IsAutocompleteEnabled(aInput); + + nsCOMPtr<nsIDOMHTMLElement> datalist; +- input->GetList(getter_AddRefs(datalist)); ++ aInput->GetList(getter_AddRefs(datalist)); + bool hasList = datalist != nullptr; + + bool dummy; +@@ -871,9 +885,16 @@ nsFormFillController::Focus(nsIDOMEvent* aEvent) + isPwmgrInput = true; + + if (isPwmgrInput || hasList || autocomplete) { +- StartControllingInput(input); ++ StartControllingInput(aInput); + } ++} + ++nsresult ++nsFormFillController::Focus(nsIDOMEvent* aEvent) ++{ ++ nsCOMPtr<nsIDOMHTMLInputElement> input = do_QueryInterface( ++ aEvent->InternalDOMEvent()->GetTarget()); ++ MaybeStartControllingInput(input); + return NS_OK; + } + +@@ -1087,6 +1108,10 @@ nsFormFillController::StartControllingInput(nsIDOMHTMLInputElement *aInput) + // Make sure we're not still attached to an input + StopControllingInput(); + ++ if (!mController) { ++ return; ++ } ++ + // Find the currently focused docShell + nsCOMPtr<nsIDocShell> docShell = GetDocShellForInput(aInput); + int32_t index = GetIndexOfDocShell(docShell); +@@ -1129,13 +1154,15 @@ nsFormFillController::StopControllingInput() + mListNode = nullptr; + } + +- // Reset the controller's input, but not if it has been switched +- // to another input already, which might happen if the user switches +- // focus by clicking another autocomplete textbox +- nsCOMPtr<nsIAutoCompleteInput> input; +- mController->GetInput(getter_AddRefs(input)); +- if (input == this) +- mController->SetInput(nullptr); ++ if (mController) { ++ // Reset the controller's input, but not if it has been switched ++ // to another input already, which might happen if the user switches ++ // focus by clicking another autocomplete textbox ++ nsCOMPtr<nsIAutoCompleteInput> input; ++ mController->GetInput(getter_AddRefs(input)); ++ if (input == this) ++ mController->SetInput(nullptr); ++ } + + if (mFocusedInputNode) { + MaybeRemoveMutationObserver(mFocusedInputNode); +diff --git a/toolkit/components/satchel/nsFormFillController.h b/toolkit/components/satchel/nsFormFillController.h +index b60d28d..8c3ba26 100644 +--- a/toolkit/components/satchel/nsFormFillController.h ++++ b/toolkit/components/satchel/nsFormFillController.h +@@ -62,6 +62,11 @@ protected: + + void StartControllingInput(nsIDOMHTMLInputElement *aInput); + void StopControllingInput(); ++ /** ++ * Checks that aElement is a type of element we want to fill, then calls ++ * StartControllingInput on it. ++ */ ++ void MaybeStartControllingInput(nsIDOMHTMLInputElement* aElement); + + nsresult PerformInputListAutoComplete(nsIAutoCompleteResult* aPreviousResult); + +-- +2.2.1 + diff --git a/gnu/packages/patches/icecat-CVE-2015-0827-pt-1.patch b/gnu/packages/patches/icecat-CVE-2015-0827-pt-1.patch new file mode 100644 index 0000000000..c57da755d1 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-0827-pt-1.patch @@ -0,0 +1,33 @@ +From 28b6204b1421aa57b3c10c43d90cb516910bc80f Mon Sep 17 00:00:00 2001 +From: Markus Stange <mstange@themasta.com> +Date: Tue, 6 Jan 2015 12:08:39 +0100 +Subject: [PATCH] Bug 1117304 - Also do the checks at the start of CopyRect in + release builds. r=Bas, a=sledru + +--- + gfx/2d/FilterNodeSoftware.cpp | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/gfx/2d/FilterNodeSoftware.cpp b/gfx/2d/FilterNodeSoftware.cpp +index 00d790f..396d0da 100644 +--- a/gfx/2d/FilterNodeSoftware.cpp ++++ b/gfx/2d/FilterNodeSoftware.cpp +@@ -253,9 +253,12 @@ CopyRect(DataSourceSurface* aSrc, DataSourceSurface* aDest, + MOZ_CRASH("we should never be getting invalid rects at this point"); + } + +- MOZ_ASSERT(aSrc->GetFormat() == aDest->GetFormat(), "different surface formats"); +- MOZ_ASSERT(IntRect(IntPoint(), aSrc->GetSize()).Contains(aSrcRect), "source rect too big for source surface"); +- MOZ_ASSERT(IntRect(IntPoint(), aDest->GetSize()).Contains(aSrcRect - aSrcRect.TopLeft() + aDestPoint), "dest surface too small"); ++ MOZ_RELEASE_ASSERT(aSrc->GetFormat() == aDest->GetFormat(), ++ "different surface formats"); ++ MOZ_RELEASE_ASSERT(IntRect(IntPoint(), aSrc->GetSize()).Contains(aSrcRect), ++ "source rect too big for source surface"); ++ MOZ_RELEASE_ASSERT(IntRect(IntPoint(), aDest->GetSize()).Contains(IntRect(aDestPoint, aSrcRect.Size())), ++ "dest surface too small"); + + if (aSrcRect.IsEmpty()) { + return; +-- +2.2.1 + diff --git a/gnu/packages/patches/icecat-CVE-2015-0827-pt-2.patch b/gnu/packages/patches/icecat-CVE-2015-0827-pt-2.patch new file mode 100644 index 0000000000..1ff68f4b4c --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-0827-pt-2.patch @@ -0,0 +1,35 @@ +From 5ff75fbe51d5760a96b4e614617c9cbf35f1fbaa Mon Sep 17 00:00:00 2001 +From: Markus Stange <mstange@themasta.com> +Date: Mon, 5 Jan 2015 18:40:27 +0100 +Subject: [PATCH] Bug 1117304 - Make sure the tile filter doesn't call CopyRect + on surfaces with different formats. r=Bas, a=sledru + +--- + gfx/2d/FilterNodeSoftware.cpp | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/gfx/2d/FilterNodeSoftware.cpp b/gfx/2d/FilterNodeSoftware.cpp +index 396d0da..10d92c6 100644 +--- a/gfx/2d/FilterNodeSoftware.cpp ++++ b/gfx/2d/FilterNodeSoftware.cpp +@@ -1568,7 +1568,16 @@ FilterNodeTileSoftware::Render(const IntRect& aRect) + return nullptr; + } + } +- MOZ_ASSERT(input->GetFormat() == target->GetFormat(), "different surface formats from the same input?"); ++ ++ if (input->GetFormat() != target->GetFormat()) { ++ // Different rectangles of the input can have different formats. If ++ // that happens, just convert everything to B8G8R8A8. ++ target = FilterProcessing::ConvertToB8G8R8A8(target); ++ input = FilterProcessing::ConvertToB8G8R8A8(input); ++ if (MOZ2D_WARN_IF(!target) || MOZ2D_WARN_IF(!input)) { ++ return nullptr; ++ } ++ } + + CopyRect(input, target, srcRect - srcRect.TopLeft(), destRect.TopLeft() - aRect.TopLeft()); + } +-- +2.2.1 + diff --git a/gnu/packages/patches/icecat-CVE-2015-0827-pt-3.patch b/gnu/packages/patches/icecat-CVE-2015-0827-pt-3.patch new file mode 100644 index 0000000000..8d40126849 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-0827-pt-3.patch @@ -0,0 +1,56 @@ +From c91087708686ae1c47abee65e19536688e5ec8f2 Mon Sep 17 00:00:00 2001 +From: Ryan VanderMeulen <ryanvm@gmail.com> +Date: Mon, 26 Jan 2015 17:24:46 -0500 +Subject: [PATCH] Bug 1117304 - Add missing MOZ2D_WARN_IF definition to fix + bustage. r=milan, a=bustage + +--- + gfx/2d/FilterNodeSoftware.cpp | 1 + + gfx/2d/Logging.h | 19 +++++++++++++++++++ + 2 files changed, 20 insertions(+) + +diff --git a/gfx/2d/FilterNodeSoftware.cpp b/gfx/2d/FilterNodeSoftware.cpp +index 10d92c6..48bf162 100644 +--- a/gfx/2d/FilterNodeSoftware.cpp ++++ b/gfx/2d/FilterNodeSoftware.cpp +@@ -12,6 +12,7 @@ + #include "Blur.h" + #include <map> + #include "FilterProcessing.h" ++#include "Logging.h" + #include "mozilla/PodOperations.h" + #include "mozilla/DebugOnly.h" + +diff --git a/gfx/2d/Logging.h b/gfx/2d/Logging.h +index 85e788c..d7728bb 100644 +--- a/gfx/2d/Logging.h ++++ b/gfx/2d/Logging.h +@@ -155,6 +155,25 @@ typedef Log<LOG_WARNING> WarningLog; + #define gfxWarning if (1) ; else NoLog + #endif + ++// See nsDebug.h and the NS_WARN_IF macro ++ ++#ifdef __cplusplus ++#ifdef DEBUG ++inline bool MOZ2D_warn_if_impl(bool aCondition, const char* aExpr, ++ const char* aFile, int32_t aLine) ++{ ++ if (MOZ_UNLIKELY(aCondition)) { ++ gfxWarning() << aExpr << " at " << aFile << ":" << aLine; ++ } ++ return aCondition; ++} ++#define MOZ2D_WARN_IF(condition) \ ++ MOZ2D_warn_if_impl(condition, #condition, __FILE__, __LINE__) ++#else ++#define MOZ2D_WARN_IF(condition) (bool)(condition) ++#endif ++#endif ++ + const int INDENT_PER_LEVEL = 2; + + class TreeLog +-- +2.2.1 + diff --git a/gnu/packages/patches/icecat-CVE-2015-0831-pt-1.patch b/gnu/packages/patches/icecat-CVE-2015-0831-pt-1.patch new file mode 100644 index 0000000000..c04d604923 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-0831-pt-1.patch @@ -0,0 +1,32 @@ +From c8437505a63fc2b2552b8af217d60d79abb92ba3 Mon Sep 17 00:00:00 2001 +From: Ben Turner <bent.mozilla@gmail.com> +Date: Fri, 6 Feb 2015 15:25:33 -0800 +Subject: [PATCH] Bug 1130541. r=janv, a=sledru + +--- + dom/indexedDB/IDBDatabase.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/dom/indexedDB/IDBDatabase.cpp b/dom/indexedDB/IDBDatabase.cpp +index 7329cec..c9c7e4f 100644 +--- a/dom/indexedDB/IDBDatabase.cpp ++++ b/dom/indexedDB/IDBDatabase.cpp +@@ -536,6 +536,7 @@ IDBDatabase::CreateObjectStore( + IDBTransaction* transaction = AsyncConnectionHelper::GetCurrentTransaction(); + + if (!transaction || ++ transaction->Database() != this || + transaction->GetMode() != IDBTransaction::VERSION_CHANGE) { + aRv.Throw(NS_ERROR_DOM_INDEXEDDB_NOT_ALLOWED_ERR); + return nullptr; +@@ -577,6 +578,7 @@ IDBDatabase::DeleteObjectStore(const nsAString& aName, ErrorResult& aRv) + IDBTransaction* transaction = AsyncConnectionHelper::GetCurrentTransaction(); + + if (!transaction || ++ transaction->Database() != this || + transaction->GetMode() != IDBTransaction::VERSION_CHANGE) { + aRv.Throw(NS_ERROR_DOM_INDEXEDDB_NOT_ALLOWED_ERR); + return; +-- +2.2.1 + diff --git a/gnu/packages/patches/icecat-CVE-2015-0831-pt-2.patch b/gnu/packages/patches/icecat-CVE-2015-0831-pt-2.patch new file mode 100644 index 0000000000..9510cd611f --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-0831-pt-2.patch @@ -0,0 +1,26 @@ +From 4e799e44288c951f8d9acd17e7d8c56c9ee6a7d3 Mon Sep 17 00:00:00 2001 +From: Ben Turner <bent.mozilla@gmail.com> +Date: Mon, 9 Feb 2015 14:38:26 -0800 +Subject: [PATCH] Bug 1130541 followup a=test-only + +--HG-- +extra : amend_source : 23d80353f87897fdac9c99048d12ebe4ed390f76 +--- + dom/indexedDB/test/browser_quotaPrompt.html | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/dom/indexedDB/test/browser_quotaPrompt.html b/dom/indexedDB/test/browser_quotaPrompt.html +index c139970..dbeea68 100644 +--- a/dom/indexedDB/test/browser_quotaPrompt.html ++++ b/dom/indexedDB/test/browser_quotaPrompt.html +@@ -38,6 +38,7 @@ + let request = indexedDB.open(window.location.pathname, version++); + request.onerror = errorHandler; + request.onupgradeneeded = function(event) { ++ let db = event.target.result; + db.deleteObjectStore("foo"); + db.onversionchange = function () { db.close(); }; + request.transaction.oncomplete = function(event) { +-- +2.2.1 + diff --git a/gnu/packages/patches/icecat-CVE-2015-0836-pt-01.patch b/gnu/packages/patches/icecat-CVE-2015-0836-pt-01.patch new file mode 100644 index 0000000000..f6e2756054 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-0836-pt-01.patch @@ -0,0 +1,26 @@ +From 4106ffa6ee83b814428bb07948b3595e3fa3847e Mon Sep 17 00:00:00 2001 +From: Jan de Mooij <jdemooij@mozilla.com> +Date: Tue, 10 Feb 2015 09:40:46 +0100 +Subject: [PATCH] Bug 1128196 - Don't relazify scripts with a TypeScript. + r=till, a=lmandel + +--- + js/src/jsscript.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/js/src/jsscript.h b/js/src/jsscript.h +index 4d548ef..9a0cfbb 100644 +--- a/js/src/jsscript.h ++++ b/js/src/jsscript.h +@@ -1251,7 +1251,7 @@ class JSScript : public js::gc::BarrieredCell<JSScript> + } + + bool isRelazifiable() const { +- return (selfHosted() || lazyScript) && ++ return (selfHosted() || lazyScript) && !types && + !isGenerator() && !hasBaselineScript() && !hasAnyIonScript() && !hasBeenInlined(); + } + void setLazyScript(js::LazyScript *lazy) { +-- +2.2.1 + diff --git a/gnu/packages/patches/icecat-CVE-2015-0836-pt-02.patch b/gnu/packages/patches/icecat-CVE-2015-0836-pt-02.patch new file mode 100644 index 0000000000..c95cf23a29 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-0836-pt-02.patch @@ -0,0 +1,27 @@ +From 83c4bfeea2d2203f726e3bfcb7ee6fe56b4d9703 Mon Sep 17 00:00:00 2001 +From: Ryan VanderMeulen <ryanvm@gmail.com> +Date: Thu, 29 Jan 2015 10:31:25 -0500 +Subject: [PATCH] Bug 1111248. r=Waldo, a=sledru + +--- + js/src/jsbool.cpp | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/js/src/jsbool.cpp b/js/src/jsbool.cpp +index 5d88bd5..8d5d672 100644 +--- a/js/src/jsbool.cpp ++++ b/js/src/jsbool.cpp +@@ -198,7 +198,8 @@ js::ToBooleanSlow(HandleValue v) + bool + js::BooleanGetPrimitiveValueSlow(HandleObject wrappedBool) + { +- JSObject *obj = wrappedBool->as<ProxyObject>().target(); +- JS_ASSERT(obj); ++ JSObject *obj = CheckedUnwrap(wrappedBool); ++ if (!obj || !obj->is<BooleanObject>()) ++ return false; + return obj->as<BooleanObject>().unbox(); + } +-- +2.2.1 + diff --git a/gnu/packages/patches/icecat-CVE-2015-0836-pt-03.patch b/gnu/packages/patches/icecat-CVE-2015-0836-pt-03.patch new file mode 100644 index 0000000000..115cd76201 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-0836-pt-03.patch @@ -0,0 +1,220 @@ +From 4e4e34238e5bb5af83a645a5f4d2097e3b30e9dd Mon Sep 17 00:00:00 2001 +From: Tom Schuster <evilpies@gmail.com> +Date: Sun, 25 Jan 2015 21:42:10 +0100 +Subject: [PATCH] Bug 1111243 - Implement ES6 proxy behavior for IsArray. + r=efaust, a=abillings + +--- + browser/devtools/app-manager/app-projects.js | 2 ++ + js/public/Class.h | 5 +++- + js/src/jsarray.cpp | 9 ++++-- + js/src/jsobjinlines.h | 15 +++++++++- + js/src/json.cpp | 11 +++---- + js/src/jsproxy.cpp | 45 ++++++++++++++++++++++++++++ + 6 files changed, 78 insertions(+), 9 deletions(-) + +diff --git a/browser/devtools/app-manager/app-projects.js b/browser/devtools/app-manager/app-projects.js +index d09f72f..77ca67b 100644 +--- a/browser/devtools/app-manager/app-projects.js ++++ b/browser/devtools/app-manager/app-projects.js +@@ -61,6 +61,8 @@ const IDB = { + add: function(project) { + let deferred = promise.defer(); + ++ project = JSON.parse(JSON.stringify(project)); ++ + if (!project.location) { + // We need to make sure this object has a `.location` property. + deferred.reject("Missing location property on project object."); +diff --git a/js/public/Class.h b/js/public/Class.h +index ff864b1..46f7d39 100644 +--- a/js/public/Class.h ++++ b/js/public/Class.h +@@ -521,7 +521,10 @@ Valueify(const JSClass *c) + */ + enum ESClassValue { + ESClass_Array, ESClass_Number, ESClass_String, ESClass_Boolean, +- ESClass_RegExp, ESClass_ArrayBuffer, ESClass_Date ++ ESClass_RegExp, ESClass_ArrayBuffer, ESClass_Date, ++ // Special snowflake for the ES6 IsArray method. ++ // Please don't use it without calling that function. ++ ESClass_IsArray + }; + + /* +diff --git a/js/src/jsarray.cpp b/js/src/jsarray.cpp +index 24da176..46f1c20 100644 +--- a/js/src/jsarray.cpp ++++ b/js/src/jsarray.cpp +@@ -2645,7 +2645,8 @@ js::array_concat(JSContext *cx, unsigned argc, Value *vp) + HandleValue v = HandleValue::fromMarkedLocation(&p[i]); + if (v.isObject()) { + RootedObject obj(cx, &v.toObject()); +- if (ObjectClassIs(obj, ESClass_Array, cx)) { ++ // This should be IsConcatSpreadable ++ if (IsArray(obj, cx)) { + uint32_t alength; + if (!GetLengthProperty(cx, obj, &alength)) + return false; +@@ -2870,7 +2871,11 @@ static bool + array_isArray(JSContext *cx, unsigned argc, Value *vp) + { + CallArgs args = CallArgsFromVp(argc, vp); +- bool isArray = args.length() > 0 && IsObjectWithClass(args[0], ESClass_Array, cx); ++ bool isArray = false; ++ if (args.get(0).isObject()) { ++ RootedObject obj(cx, &args[0].toObject()); ++ isArray = IsArray(obj, cx); ++ } + args.rval().setBoolean(isArray); + return true; + } +diff --git a/js/src/jsobjinlines.h b/js/src/jsobjinlines.h +index e848ba7..557dd26 100644 +--- a/js/src/jsobjinlines.h ++++ b/js/src/jsobjinlines.h +@@ -1032,7 +1032,10 @@ ObjectClassIs(HandleObject obj, ESClassValue classValue, JSContext *cx) + return Proxy::objectClassIs(obj, classValue, cx); + + switch (classValue) { +- case ESClass_Array: return obj->is<ArrayObject>(); ++ case ESClass_Array: ++ case ESClass_IsArray: ++ // There difference between those is only relevant for proxies. ++ return obj->is<ArrayObject>(); + case ESClass_Number: return obj->is<NumberObject>(); + case ESClass_String: return obj->is<StringObject>(); + case ESClass_Boolean: return obj->is<BooleanObject>(); +@@ -1053,6 +1056,16 @@ IsObjectWithClass(const Value &v, ESClassValue classValue, JSContext *cx) + return ObjectClassIs(obj, classValue, cx); + } + ++// ES6 7.2.2 ++inline bool ++IsArray(HandleObject obj, JSContext *cx) ++{ ++ if (obj->is<ArrayObject>()) ++ return true; ++ ++ return ObjectClassIs(obj, ESClass_IsArray, cx); ++} ++ + static MOZ_ALWAYS_INLINE bool + NewObjectMetadata(ExclusiveContext *cxArg, JSObject **pmetadata) + { +diff --git a/js/src/json.cpp b/js/src/json.cpp +index 6e45bfd..81a99a6 100644 +--- a/js/src/json.cpp ++++ b/js/src/json.cpp +@@ -300,7 +300,7 @@ JO(JSContext *cx, HandleObject obj, StringifyContext *scx) + Maybe<AutoIdVector> ids; + const AutoIdVector *props; + if (scx->replacer && !scx->replacer->isCallable()) { +- JS_ASSERT(JS_IsArrayObject(cx, scx->replacer)); ++ JS_ASSERT(IsArray(scx->replacer, cx)); + props = &scx->propertyList; + } else { + JS_ASSERT_IF(scx->replacer, scx->propertyList.length() == 0); +@@ -488,7 +488,7 @@ Str(JSContext *cx, const Value &v, StringifyContext *scx) + + scx->depth++; + bool ok; +- if (ObjectClassIs(obj, ESClass_Array, cx)) ++ if (IsArray(obj, cx)) + ok = JA(cx, obj, scx); + else + ok = JO(cx, obj, scx); +@@ -510,7 +510,7 @@ js_Stringify(JSContext *cx, MutableHandleValue vp, JSObject *replacer_, Value sp + if (replacer) { + if (replacer->isCallable()) { + /* Step 4a(i): use replacer to transform values. */ +- } else if (ObjectClassIs(replacer, ESClass_Array, cx)) { ++ } else if (IsArray(replacer, cx)) { + /* + * Step 4b: The spec algorithm is unhelpfully vague about the exact + * steps taken when the replacer is an array, regarding the exact +@@ -541,7 +541,8 @@ js_Stringify(JSContext *cx, MutableHandleValue vp, JSObject *replacer_, Value sp + + /* Step 4b(ii). */ + uint32_t len; +- JS_ALWAYS_TRUE(GetLengthProperty(cx, replacer, &len)); ++ if (!GetLengthProperty(cx, replacer, &len)) ++ return false; + if (replacer->is<ArrayObject>() && !replacer->isIndexed()) + len = Min(len, replacer->getDenseInitializedLength()); + +@@ -678,7 +679,7 @@ Walk(JSContext *cx, HandleObject holder, HandleId name, HandleValue reviver, Mut + if (val.isObject()) { + RootedObject obj(cx, &val.toObject()); + +- if (ObjectClassIs(obj, ESClass_Array, cx)) { ++ if (IsArray(obj, cx)) { + /* Step 2a(ii). */ + uint32_t length; + if (!GetLengthProperty(cx, obj, &length)) +diff --git a/js/src/jsproxy.cpp b/js/src/jsproxy.cpp +index 7644da1..7453103 100644 +--- a/js/src/jsproxy.cpp ++++ b/js/src/jsproxy.cpp +@@ -1108,6 +1108,14 @@ class ScriptedDirectProxyHandler : public DirectProxyHandler { + virtual bool isExtensible(JSContext *cx, HandleObject proxy, bool *extensible) MOZ_OVERRIDE; + + /* Spidermonkey extensions. */ ++ // A scripted proxy should not be treated as generic in most contexts. ++ virtual bool nativeCall(JSContext *cx, IsAcceptableThis test, NativeImpl impl, ++ CallArgs args) MOZ_OVERRIDE; ++ virtual bool objectClassIs(HandleObject obj, ESClassValue classValue, ++ JSContext *cx) MOZ_OVERRIDE; ++ virtual bool regexp_toShared(JSContext *cx, HandleObject proxy, ++ RegExpGuard *g) MOZ_OVERRIDE; ++ + virtual bool call(JSContext *cx, HandleObject proxy, const CallArgs &args) MOZ_OVERRIDE; + virtual bool construct(JSContext *cx, HandleObject proxy, const CallArgs &args) MOZ_OVERRIDE; + virtual bool isScripted() MOZ_OVERRIDE { return true; } +@@ -2350,6 +2358,43 @@ ScriptedDirectProxyHandler::construct(JSContext *cx, HandleObject proxy, const C + return true; + } + ++bool ++ScriptedDirectProxyHandler::nativeCall(JSContext *cx, IsAcceptableThis test, NativeImpl impl, ++ CallArgs args) ++{ ++ ReportIncompatible(cx, args); ++ return false; ++} ++ ++bool ++ScriptedDirectProxyHandler::objectClassIs(HandleObject proxy, ESClassValue classValue, ++ JSContext *cx) ++{ ++ // Special case IsArray. In every other instance ES wants to have exactly ++ // one object type and not a proxy around it, so return false. ++ if (classValue != ESClass_IsArray) ++ return false; ++ ++ // In ES6 IsArray is supposed to poke at the Proxy target, instead we do this here. ++ // The reason for this is that we have proxies for which looking at the target might ++ // be impossible. So instead we use our little objectClassIs function that just works ++ // already across different wrappers. ++ RootedObject target(cx, proxy->as<ProxyObject>().target()); ++ if (!target) ++ return false; ++ ++ return IsArray(target, cx); ++} ++ ++bool ++ScriptedDirectProxyHandler::regexp_toShared(JSContext *cx, HandleObject proxy, ++ RegExpGuard *g) ++{ ++ MOZ_CRASH("Should not end up in ScriptedDirectProxyHandler::regexp_toShared"); ++ return false; ++} ++ ++ + ScriptedDirectProxyHandler ScriptedDirectProxyHandler::singleton; + + #define INVOKE_ON_PROTOTYPE(cx, handler, proxy, protoCall) \ +-- +2.2.1 + diff --git a/gnu/packages/patches/icecat-CVE-2015-0836-pt-04.patch b/gnu/packages/patches/icecat-CVE-2015-0836-pt-04.patch new file mode 100644 index 0000000000..58e61d080c --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-0836-pt-04.patch @@ -0,0 +1,89 @@ +From 97ba04bf95606b409b1b3035504a41c274ecffe2 Mon Sep 17 00:00:00 2001 +From: Shu-yu Guo <shu@rfrn.org> +Date: Mon, 26 Jan 2015 18:26:25 -0800 +Subject: [PATCH] Bug 1119579 - Don't GC while iterating compartments in + findAllGlobals. r=sfink, a=abillings + +--- + js/src/vm/Debugger.cpp | 56 ++++++++++++++++++++++++++++++-------------------- + 1 file changed, 34 insertions(+), 22 deletions(-) + +diff --git a/js/src/vm/Debugger.cpp b/js/src/vm/Debugger.cpp +index 27e993d..a8decef 100644 +--- a/js/src/vm/Debugger.cpp ++++ b/js/src/vm/Debugger.cpp +@@ -2825,37 +2825,49 @@ Debugger::findAllGlobals(JSContext *cx, unsigned argc, Value *vp) + { + THIS_DEBUGGER(cx, argc, vp, "findAllGlobals", args, dbg); + +- RootedObject result(cx, NewDenseEmptyArray(cx)); +- if (!result) +- return false; ++ AutoObjectVector globals(cx); + +- for (CompartmentsIter c(cx->runtime(), SkipAtoms); !c.done(); c.next()) { +- if (c->options().invisibleToDebugger()) +- continue; ++ { ++ // Accumulate the list of globals before wrapping them, because ++ // wrapping can GC and collect compartments from under us, while ++ // iterating. + +- c->zone()->scheduledForDestruction = false; ++ for (CompartmentsIter c(cx->runtime(), SkipAtoms); !c.done(); c.next()) { ++ if (c->options().invisibleToDebugger()) ++ continue; + +- GlobalObject *global = c->maybeGlobal(); ++ c->zone()->scheduledForDestruction = false; + +- if (cx->runtime()->isSelfHostingGlobal(global)) +- continue; ++ GlobalObject *global = c->maybeGlobal(); + +- if (global) { +- /* +- * We pulled |global| out of nowhere, so it's possible that it was +- * marked gray by XPConnect. Since we're now exposing it to JS code, +- * we need to mark it black. +- */ +- JS::ExposeGCThingToActiveJS(global, JSTRACE_OBJECT); ++ if (cx->runtime()->isSelfHostingGlobal(global)) ++ continue; + +- RootedValue globalValue(cx, ObjectValue(*global)); +- if (!dbg->wrapDebuggeeValue(cx, &globalValue)) +- return false; +- if (!NewbornArrayPush(cx, result, globalValue)) +- return false; ++ if (global) { ++ /* ++ * We pulled |global| out of nowhere, so it's possible that it was ++ * marked gray by XPConnect. Since we're now exposing it to JS code, ++ * we need to mark it black. ++ */ ++ JS::ExposeGCThingToActiveJS(global, JSTRACE_OBJECT); ++ if (!globals.append(global)) ++ return false; ++ } + } + } + ++ RootedObject result(cx, NewDenseEmptyArray(cx)); ++ if (!result) ++ return false; ++ ++ for (size_t i = 0; i < globals.length(); i++) { ++ RootedValue globalValue(cx, ObjectValue(*globals[i])); ++ if (!dbg->wrapDebuggeeValue(cx, &globalValue)) ++ return false; ++ if (!NewbornArrayPush(cx, result, globalValue)) ++ return false; ++ } ++ + args.rval().setObject(*result); + return true; + } +-- +2.2.1 + diff --git a/gnu/packages/patches/icecat-CVE-2015-0836-pt-05.patch b/gnu/packages/patches/icecat-CVE-2015-0836-pt-05.patch new file mode 100644 index 0000000000..3e4ed17598 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-0836-pt-05.patch @@ -0,0 +1,25 @@ +From 746ddf19ff532b8abc90d3a91322a04b462ebfa8 Mon Sep 17 00:00:00 2001 +From: Brian Hackett <bhackett1024@gmail.com> +Date: Mon, 26 Jan 2015 13:14:34 -0500 +Subject: [PATCH] Bug 1124018 - Null the allocation site table if + initialization fails. r=jonco, a=bkerensa + +--- + js/src/jsinfer.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/js/src/jsinfer.cpp b/js/src/jsinfer.cpp +index b62ad1f..4019b16 100644 +--- a/js/src/jsinfer.cpp ++++ b/js/src/jsinfer.cpp +@@ -2035,6 +2035,7 @@ TypeCompartment::addAllocationSiteTypeObject(JSContext *cx, AllocationSiteKey ke + allocationSiteTable = cx->new_<AllocationSiteTable>(); + if (!allocationSiteTable || !allocationSiteTable->init()) { + js_delete(allocationSiteTable); ++ allocationSiteTable = nullptr; + return nullptr; + } + } +-- +2.2.1 + diff --git a/gnu/packages/patches/icecat-CVE-2015-0836-pt-06.patch b/gnu/packages/patches/icecat-CVE-2015-0836-pt-06.patch new file mode 100644 index 0000000000..181f9243e3 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-0836-pt-06.patch @@ -0,0 +1,41 @@ +From 0758363d982b0b3e6cf021c164715a028a345b9e Mon Sep 17 00:00:00 2001 +From: "Byron Campen [:bwc]" <docfaraday@gmail.com> +Date: Wed, 21 Jan 2015 08:56:36 -0800 +Subject: [PATCH] Bug 1123882 - Fix case where offset != 0. r=derf, a=bkerensa + +--- + content/media/MediaDecoderStateMachine.cpp | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +diff --git a/content/media/MediaDecoderStateMachine.cpp b/content/media/MediaDecoderStateMachine.cpp +index ce5870f..4ed496c 100644 +--- a/content/media/MediaDecoderStateMachine.cpp ++++ b/content/media/MediaDecoderStateMachine.cpp +@@ -328,6 +328,8 @@ void MediaDecoderStateMachine::SendStreamAudio(AudioData* aAudio, + if (offset >= aAudio->mFrames) + return; + ++ size_t framesToWrite = aAudio->mFrames - offset; ++ + aAudio->EnsureAudioBuffer(); + nsRefPtr<SharedBuffer> buffer = aAudio->mAudioBuffer; + AudioDataValue* bufferData = static_cast<AudioDataValue*>(buffer->Data()); +@@ -335,10 +337,11 @@ void MediaDecoderStateMachine::SendStreamAudio(AudioData* aAudio, + for (uint32_t i = 0; i < aAudio->mChannels; ++i) { + channels.AppendElement(bufferData + i*aAudio->mFrames + offset); + } +- aOutput->AppendFrames(buffer.forget(), channels, aAudio->mFrames); +- VERBOSE_LOG("writing %d frames of data to MediaStream for AudioData at %lld", +- aAudio->mFrames - int32_t(offset), aAudio->mTime); +- aStream->mAudioFramesWritten += aAudio->mFrames - int32_t(offset); ++ aOutput->AppendFrames(buffer.forget(), channels, framesToWrite); ++ VERBOSE_LOG("writing %u frames of data to MediaStream for AudioData at %lld", ++ static_cast<unsigned>(framesToWrite), ++ aAudio->mTime); ++ aStream->mAudioFramesWritten += framesToWrite; + } + + static void WriteVideoToMediaStream(layers::Image* aImage, +-- +2.2.1 + diff --git a/gnu/packages/patches/icecat-CVE-2015-0836-pt-07.patch b/gnu/packages/patches/icecat-CVE-2015-0836-pt-07.patch new file mode 100644 index 0000000000..818d369b26 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-0836-pt-07.patch @@ -0,0 +1,54 @@ +From 94899f849e50a765bb26420f5c70d49002d6673f Mon Sep 17 00:00:00 2001 +From: Glenn Randers-Pehrson <glennrp+bmo@gmail.com> +Date: Mon, 26 Jan 2015 16:07:00 -0500 +Subject: [PATCH] Bug 1117406 - Fix handling of out-of-range PNG tRNS values. + r=jmuizelaar, a=abillings + +--- + image/decoders/nsPNGDecoder.cpp | 22 ++++++++++++---------- + 1 file changed, 12 insertions(+), 10 deletions(-) + +diff --git a/image/decoders/nsPNGDecoder.cpp b/image/decoders/nsPNGDecoder.cpp +index acaa835..8e6bc2d 100644 +--- a/image/decoders/nsPNGDecoder.cpp ++++ b/image/decoders/nsPNGDecoder.cpp +@@ -528,24 +528,26 @@ nsPNGDecoder::info_callback(png_structp png_ptr, png_infop info_ptr) + png_set_expand(png_ptr); + + if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) { +- int sample_max = (1 << bit_depth); + png_color_16p trans_values; + png_get_tRNS(png_ptr, info_ptr, &trans, &num_trans, &trans_values); + /* libpng doesn't reject a tRNS chunk with out-of-range samples + so we check it here to avoid setting up a useless opacity +- channel or producing unexpected transparent pixels when using +- libpng-1.2.19 through 1.2.26 (bug #428045) */ +- if ((color_type == PNG_COLOR_TYPE_GRAY && +- (int)trans_values->gray > sample_max) || +- (color_type == PNG_COLOR_TYPE_RGB && +- ((int)trans_values->red > sample_max || +- (int)trans_values->green > sample_max || +- (int)trans_values->blue > sample_max))) ++ channel or producing unexpected transparent pixels (bug #428045) */ ++ if (bit_depth < 16) { ++ png_uint_16 sample_max = (1 << bit_depth) - 1; ++ if ((color_type == PNG_COLOR_TYPE_GRAY && ++ trans_values->gray > sample_max) || ++ (color_type == PNG_COLOR_TYPE_RGB && ++ (trans_values->red > sample_max || ++ trans_values->green > sample_max || ++ trans_values->blue > sample_max))) + { + /* clear the tRNS valid flag and release tRNS memory */ + png_free_data(png_ptr, info_ptr, PNG_FREE_TRNS, 0); ++ num_trans = 0; + } +- else ++ } ++ if (num_trans != 0) + png_set_expand(png_ptr); + } + +-- +2.2.1 + diff --git a/gnu/packages/patches/icecat-CVE-2015-0836-pt-08.patch b/gnu/packages/patches/icecat-CVE-2015-0836-pt-08.patch new file mode 100644 index 0000000000..685e3a6d43 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-0836-pt-08.patch @@ -0,0 +1,53 @@ +From 4920c5c447d1153dffa623dd70d8b535b9ca6795 Mon Sep 17 00:00:00 2001 +From: Jan de Mooij <jdemooij@mozilla.com> +Date: Mon, 26 Jan 2015 12:59:47 +0100 +Subject: [PATCH] Bug 1115776 - Fix LApplyArgsGeneric to always emit the + has-script check. r=shu, a=sledru + +--- + js/src/jit/CodeGenerator.cpp | 24 ++++++++---------------- + 1 file changed, 8 insertions(+), 16 deletions(-) + +diff --git a/js/src/jit/CodeGenerator.cpp b/js/src/jit/CodeGenerator.cpp +index ba14f86..0669692 100644 +--- a/js/src/jit/CodeGenerator.cpp ++++ b/js/src/jit/CodeGenerator.cpp +@@ -2448,27 +2448,19 @@ CodeGenerator::visitApplyArgsGeneric(LApplyArgsGeneric *apply) + + masm.checkStackAlignment(); + +- // If the function is known to be uncompilable, only emit the call to InvokeFunction. ++ // If the function is native, only emit the call to InvokeFunction. + ExecutionMode executionMode = gen->info().executionMode(); +- if (apply->hasSingleTarget()) { +- JSFunction *target = apply->getSingleTarget(); +- if (target->isNative()) { +- if (!emitCallInvokeFunction(apply, copyreg)) +- return false; +- emitPopArguments(apply, copyreg); +- return true; +- } ++ if (apply->hasSingleTarget() && apply->getSingleTarget()->isNative()) { ++ if (!emitCallInvokeFunction(apply, copyreg)) ++ return false; ++ emitPopArguments(apply, copyreg); ++ return true; + } + + Label end, invoke; + +- // Guard that calleereg is an interpreted function with a JSScript: +- if (!apply->hasSingleTarget()) { +- masm.branchIfFunctionHasNoScript(calleereg, &invoke); +- } else { +- // Native single targets are handled by LCallNative. +- JS_ASSERT(!apply->getSingleTarget()->isNative()); +- } ++ // Guard that calleereg is an interpreted function with a JSScript. ++ masm.branchIfFunctionHasNoScript(calleereg, &invoke); + + // Knowing that calleereg is a non-native function, load the JSScript. + masm.loadPtr(Address(calleereg, JSFunction::offsetOfNativeOrScript()), objreg); +-- +2.2.1 + diff --git a/gnu/packages/patches/icecat-CVE-2015-0836-pt-09.patch b/gnu/packages/patches/icecat-CVE-2015-0836-pt-09.patch new file mode 100644 index 0000000000..d067d8133d --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-0836-pt-09.patch @@ -0,0 +1,52 @@ +From f7d24f37425d3d9054a7e5657815440a07166d3f Mon Sep 17 00:00:00 2001 +From: Kartikaya Gupta <kgupta@mozilla.com> +Date: Tue, 20 Jan 2015 10:33:27 -0500 +Subject: [PATCH] Bug 1107009 - Additional locking needed for esr31 backport. + r=BenWa a=sledru + +--- + gfx/layers/ipc/CompositorParent.cpp | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +diff --git a/gfx/layers/ipc/CompositorParent.cpp b/gfx/layers/ipc/CompositorParent.cpp +index 97c8693..cb03e71 100644 +--- a/gfx/layers/ipc/CompositorParent.cpp ++++ b/gfx/layers/ipc/CompositorParent.cpp +@@ -1286,13 +1286,19 @@ CrossProcessCompositorParent::ShadowLayersUpdated( + { + uint64_t id = aLayerTree->GetId(); + MOZ_ASSERT(id != 0); ++ const CompositorParent::LayerTreeState* state = CompositorParent::GetIndirectShadowTree(id); ++ if (!state) { ++ return; ++ } ++ MOZ_ASSERT(state->mParent); ++ + Layer* shadowRoot = aLayerTree->GetRoot(); + if (shadowRoot) { + SetShadowProperties(shadowRoot); + } + UpdateIndirectTree(id, shadowRoot, aTargetConfig); + +- sIndirectLayerTrees[id].mParent->NotifyShadowTreeTransaction(id, aIsFirstPaint, aScheduleComposite); ++ state->mParent->NotifyShadowTreeTransaction(id, aIsFirstPaint, aScheduleComposite); + } + + void +@@ -1329,7 +1335,12 @@ AsyncCompositionManager* + CrossProcessCompositorParent::GetCompositionManager(LayerTransactionParent* aLayerTree) + { + uint64_t id = aLayerTree->GetId(); +- return sIndirectLayerTrees[id].mParent->GetCompositionManager(aLayerTree); ++ const CompositorParent::LayerTreeState* state = CompositorParent::GetIndirectShadowTree(id); ++ if (!state) { ++ return nullptr; ++ } ++ MOZ_ASSERT(state->mParent); ++ return state->mParent->GetCompositionManager(aLayerTree); + } + + void +-- +2.2.1 + diff --git a/gnu/packages/patches/icecat-CVE-2015-0836-pt-10.patch b/gnu/packages/patches/icecat-CVE-2015-0836-pt-10.patch new file mode 100644 index 0000000000..9a4668b2dc --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-0836-pt-10.patch @@ -0,0 +1,219 @@ +From 66e65b2138c6db20288ef4cf78d15995f382a7e2 Mon Sep 17 00:00:00 2001 +From: Kartikaya Gupta <kgupta@mozilla.com> +Date: Tue, 13 Jan 2015 13:26:26 -0500 +Subject: [PATCH] Bug 1107009. r=BenWa, a=sledru + +--- + gfx/layers/ipc/CompositorParent.cpp | 57 ++++++++++++++++++++++++++++++------- + 1 file changed, 46 insertions(+), 11 deletions(-) + +diff --git a/gfx/layers/ipc/CompositorParent.cpp b/gfx/layers/ipc/CompositorParent.cpp +index ce50277..cbbb2ef 100644 +--- a/gfx/layers/ipc/CompositorParent.cpp ++++ b/gfx/layers/ipc/CompositorParent.cpp +@@ -22,6 +22,7 @@ + #include "gfxPrefs.h" // for gfxPrefs + #include "ipc/ShadowLayersManager.h" // for ShadowLayersManager + #include "mozilla/AutoRestore.h" // for AutoRestore ++#include "mozilla/ClearOnShutdown.h" // for ClearOnShutdown + #include "mozilla/DebugOnly.h" // for DebugOnly + #include "mozilla/gfx/2D.h" // for DrawTarget + #include "mozilla/gfx/Point.h" // for IntSize +@@ -70,6 +71,16 @@ CompositorParent::LayerTreeState::LayerTreeState() + + typedef map<uint64_t, CompositorParent::LayerTreeState> LayerTreeMap; + static LayerTreeMap sIndirectLayerTrees; ++static StaticAutoPtr<mozilla::Monitor> sIndirectLayerTreesLock; ++ ++static void EnsureLayerTreeMapReady() ++{ ++ MOZ_ASSERT(NS_IsMainThread()); ++ if (!sIndirectLayerTreesLock) { ++ sIndirectLayerTreesLock = new Monitor("IndirectLayerTree"); ++ mozilla::ClearOnShutdown(&sIndirectLayerTreesLock); ++ } ++} + + // FIXME/bug 774386: we're assuming that there's only one + // CompositorParent, but that's not always true. This assumption only +@@ -132,6 +143,7 @@ void CompositorParent::StartUp() + return; + } + MOZ_ASSERT(!sCompositorLoop); ++ EnsureLayerTreeMapReady(); + CreateCompositorMap(); + CreateThread(); + sMainLoop = MessageLoop::current(); +@@ -206,7 +218,11 @@ CompositorParent::CompositorParent(nsIWidget* aWidget, + this, &mCompositorID)); + + mRootLayerTreeID = AllocateLayerTreeId(); +- sIndirectLayerTrees[mRootLayerTreeID].mParent = this; ++ ++ { // scope lock ++ MonitorAutoLock lock(*sIndirectLayerTreesLock); ++ sIndirectLayerTrees[mRootLayerTreeID].mParent = this; ++ } + + mApzcTreeManager = new APZCTreeManager(); + ++sCompositorThreadRefCount; +@@ -249,7 +265,10 @@ CompositorParent::Destroy() + mCompositionManager = nullptr; + mApzcTreeManager->ClearTree(); + mApzcTreeManager = nullptr; +- sIndirectLayerTrees.erase(mRootLayerTreeID); ++ { // scope lock ++ MonitorAutoLock lock(*sIndirectLayerTreesLock); ++ sIndirectLayerTrees.erase(mRootLayerTreeID); ++ } + } + + void +@@ -266,6 +285,7 @@ CompositorParent::RecvWillStop() + + // Ensure that the layer manager is destroyed before CompositorChild. + if (mLayerManager) { ++ MonitorAutoLock lock(*sIndirectLayerTreesLock); + for (LayerTreeMap::iterator it = sIndirectLayerTrees.begin(); + it != sIndirectLayerTrees.end(); it++) + { +@@ -380,7 +400,10 @@ CompositorParent::ActorDestroy(ActorDestroyReason why) + if (mLayerManager) { + mLayerManager->Destroy(); + mLayerManager = nullptr; +- sIndirectLayerTrees[mRootLayerTreeID].mLayerManager = nullptr; ++ { // scope lock ++ MonitorAutoLock lock(*sIndirectLayerTreesLock); ++ sIndirectLayerTrees[mRootLayerTreeID].mLayerManager = nullptr; ++ } + mCompositionManager = nullptr; + mCompositor = nullptr; + } +@@ -696,6 +719,7 @@ CompositorParent::DidComposite() + { + unused << SendDidComposite(0); + ++ MonitorAutoLock lock(*sIndirectLayerTreesLock); + for (LayerTreeMap::iterator it = sIndirectLayerTrees.begin(); + it != sIndirectLayerTrees.end(); it++) { + LayerTreeState* lts = &it->second; +@@ -867,6 +891,7 @@ CompositorParent::InitializeLayerManager(const nsTArray<LayersBackend>& aBackend + mLayerManager = layerManager; + MOZ_ASSERT(compositor); + mCompositor = compositor; ++ MonitorAutoLock lock(*sIndirectLayerTreesLock); + sIndirectLayerTrees[mRootLayerTreeID].mLayerManager = layerManager; + return; + } +@@ -969,6 +994,7 @@ CompositorParent::RecvNotifyChildCreated(const uint64_t& child) + void + CompositorParent::NotifyChildCreated(uint64_t aChild) + { ++ MonitorAutoLock lock(*sIndirectLayerTreesLock); + sIndirectLayerTrees[aChild].mParent = this; + sIndirectLayerTrees[aChild].mLayerManager = mLayerManager; + } +@@ -985,6 +1011,7 @@ CompositorParent::AllocateLayerTreeId() + static void + EraseLayerState(uint64_t aId) + { ++ MonitorAutoLock lock(*sIndirectLayerTreesLock); + sIndirectLayerTrees.erase(aId); + } + +@@ -1001,6 +1028,7 @@ UpdateControllerForLayersId(uint64_t aLayersId, + GeckoContentController* aController) + { + // Adopt ref given to us by SetControllerForLayerTree() ++ MonitorAutoLock lock(*sIndirectLayerTreesLock); + sIndirectLayerTrees[aLayersId].mController = + already_AddRefed<GeckoContentController>(aController); + } +@@ -1010,12 +1038,15 @@ ScopedLayerTreeRegistration::ScopedLayerTreeRegistration(uint64_t aLayersId, + GeckoContentController* aController) + : mLayersId(aLayersId) + { ++ EnsureLayerTreeMapReady(); ++ MonitorAutoLock lock(*sIndirectLayerTreesLock); + sIndirectLayerTrees[aLayersId].mRoot = aRoot; + sIndirectLayerTrees[aLayersId].mController = aController; + } + + ScopedLayerTreeRegistration::~ScopedLayerTreeRegistration() + { ++ MonitorAutoLock lock(*sIndirectLayerTreesLock); + sIndirectLayerTrees.erase(mLayersId); + } + +@@ -1175,6 +1206,7 @@ CompositorParent::CloneToplevel(const InfallibleTArray<mozilla::ipc::ProtocolFdM + static void + UpdateIndirectTree(uint64_t aId, Layer* aRoot, const TargetConfig& aTargetConfig) + { ++ MonitorAutoLock lock(*sIndirectLayerTreesLock); + sIndirectLayerTrees[aId].mRoot = aRoot; + sIndirectLayerTrees[aId].mTargetConfig = aTargetConfig; + } +@@ -1182,6 +1214,7 @@ UpdateIndirectTree(uint64_t aId, Layer* aRoot, const TargetConfig& aTargetConfig + /* static */ const CompositorParent::LayerTreeState* + CompositorParent::GetIndirectShadowTree(uint64_t aId) + { ++ MonitorAutoLock lock(*sIndirectLayerTreesLock); + LayerTreeMap::const_iterator cit = sIndirectLayerTrees.find(aId); + if (sIndirectLayerTrees.end() == cit) { + return nullptr; +@@ -1189,12 +1222,6 @@ CompositorParent::GetIndirectShadowTree(uint64_t aId) + return &cit->second; + } + +-static void +-RemoveIndirectTree(uint64_t aId) +-{ +- sIndirectLayerTrees.erase(aId); +-} +- + void + CrossProcessCompositorParent::ActorDestroy(ActorDestroyReason aWhy) + { +@@ -1211,6 +1238,8 @@ CrossProcessCompositorParent::AllocPLayerTransactionParent(const nsTArray<Layers + { + MOZ_ASSERT(aId != 0); + ++ MonitorAutoLock lock(*sIndirectLayerTreesLock); ++ + if (sIndirectLayerTrees[aId].mLayerManager) { + sIndirectLayerTrees[aId].mCrossProcessParent = this; + LayerManagerComposite* lm = sIndirectLayerTrees[aId].mLayerManager; +@@ -1234,7 +1263,7 @@ bool + CrossProcessCompositorParent::DeallocPLayerTransactionParent(PLayerTransactionParent* aLayers) + { + LayerTransactionParent* slp = static_cast<LayerTransactionParent*>(aLayers); +- RemoveIndirectTree(slp->GetId()); ++ EraseLayerState(slp->GetId()); + static_cast<LayerTransactionParent*>(aLayers)->ReleaseIPDLReference(); + return true; + } +@@ -1242,6 +1271,7 @@ CrossProcessCompositorParent::DeallocPLayerTransactionParent(PLayerTransactionPa + bool + CrossProcessCompositorParent::RecvNotifyChildCreated(const uint64_t& child) + { ++ MonitorAutoLock lock(*sIndirectLayerTreesLock); + sIndirectLayerTrees[child].mParent->NotifyChildCreated(child); + return true; + } +@@ -1269,7 +1299,12 @@ CrossProcessCompositorParent::ForceComposite(LayerTransactionParent* aLayerTree) + { + uint64_t id = aLayerTree->GetId(); + MOZ_ASSERT(id != 0); +- sIndirectLayerTrees[id].mParent->ForceComposite(aLayerTree); ++ CompositorParent* parent; ++ { // scope lock ++ MonitorAutoLock lock(*sIndirectLayerTreesLock); ++ parent = sIndirectLayerTrees[id].mParent; ++ } ++ parent->ForceComposite(aLayerTree); + } + + bool +-- +2.2.1 + diff --git a/gnu/packages/patches/icecat-CVE-2015-0836-pt-11.patch b/gnu/packages/patches/icecat-CVE-2015-0836-pt-11.patch new file mode 100644 index 0000000000..869feaf7c6 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2015-0836-pt-11.patch @@ -0,0 +1,104 @@ +From 3f0f685829445ae82974d61f6017fdb67349c32b Mon Sep 17 00:00:00 2001 +From: Dan Gohman <sunfish@mozilla.com> +Date: Fri, 9 Jan 2015 09:04:12 -0500 +Subject: [PATCH] Bug 1096138 - IonMonkey: Augment Nops with Mops to avoid + collisions with fixed live ranges. r=jandem, a=sledru + +--- + js/src/jit/CodeGenerator.cpp | 6 ++++++ + js/src/jit/CodeGenerator.h | 1 + + js/src/jit/LIR-Common.h | 6 ++++++ + js/src/jit/LOpcodes.h | 1 + + js/src/jit/Lowering.cpp | 12 ++++++++++++ + 5 files changed, 26 insertions(+) + +diff --git a/js/src/jit/CodeGenerator.cpp b/js/src/jit/CodeGenerator.cpp +index 4f07524..ba14f86 100644 +--- a/js/src/jit/CodeGenerator.cpp ++++ b/js/src/jit/CodeGenerator.cpp +@@ -1077,6 +1077,12 @@ CodeGenerator::visitNop(LNop *lir) + } + + bool ++CodeGenerator::visitMop(LMop *lir) ++{ ++ return true; ++} ++ ++bool + CodeGenerator::visitOsiPoint(LOsiPoint *lir) + { + // Note: markOsiPoint ensures enough space exists between the last +diff --git a/js/src/jit/CodeGenerator.h b/js/src/jit/CodeGenerator.h +index 03677a5..dce095d 100644 +--- a/js/src/jit/CodeGenerator.h ++++ b/js/src/jit/CodeGenerator.h +@@ -58,6 +58,7 @@ class CodeGenerator : public CodeGeneratorSpecific + + bool visitLabel(LLabel *lir); + bool visitNop(LNop *lir); ++ bool visitMop(LMop *lir); + bool visitOsiPoint(LOsiPoint *lir); + bool visitGoto(LGoto *lir); + bool visitTableSwitch(LTableSwitch *ins); +diff --git a/js/src/jit/LIR-Common.h b/js/src/jit/LIR-Common.h +index c90aef9..e7a0e4c 100644 +--- a/js/src/jit/LIR-Common.h ++++ b/js/src/jit/LIR-Common.h +@@ -42,6 +42,12 @@ class LNop : public LInstructionHelper<0, 0, 0> + LIR_HEADER(Nop) + }; + ++class LMop : public LInstructionHelper<0, 0, 0> ++{ ++ public: ++ LIR_HEADER(Mop) ++}; ++ + // An LOsiPoint captures a snapshot after a call and ensures enough space to + // patch in a call to the invalidation mechanism. + // +diff --git a/js/src/jit/LOpcodes.h b/js/src/jit/LOpcodes.h +index a32d64f..cd7eef8 100644 +--- a/js/src/jit/LOpcodes.h ++++ b/js/src/jit/LOpcodes.h +@@ -10,6 +10,7 @@ + #define LIR_COMMON_OPCODE_LIST(_) \ + _(Label) \ + _(Nop) \ ++ _(Mop) \ + _(OsiPoint) \ + _(MoveGroup) \ + _(Integer) \ +diff --git a/js/src/jit/Lowering.cpp b/js/src/jit/Lowering.cpp +index d5f8227..48b7fa9 100644 +--- a/js/src/jit/Lowering.cpp ++++ b/js/src/jit/Lowering.cpp +@@ -3616,12 +3616,24 @@ LIRGenerator::visitInstruction(MInstruction *ins) + ins->setInWorklistUnchecked(); + #endif + ++ // If we added a Nop for this instruction, we'll also add a Mop, so that ++ // that live-ranges for fixed register defs, which with LSRA extend through ++ // the Nop so that they can extend through the OsiPoint don't, with their ++ // one-extra extension, extend into a position where they use the input ++ // move group for the following instruction. ++ bool needsMop = !current->instructions().empty() && current->rbegin()->isNop(); ++ + // If no safepoint was created, there's no need for an OSI point. + if (LOsiPoint *osiPoint = popOsiPoint()) { + if (!add(osiPoint)) + return false; + } + ++ if (needsMop) { ++ if (!add(new(alloc()) LMop)) ++ return false; ++ } ++ + return true; + } + +-- +2.2.1 + diff --git a/gnu/packages/patches/luajit-no_ldconfig.patch b/gnu/packages/patches/luajit-no_ldconfig.patch new file mode 100644 index 0000000000..8000e8e4e5 --- /dev/null +++ b/gnu/packages/patches/luajit-no_ldconfig.patch @@ -0,0 +1,31 @@ +From 629200f48e18dc1a3a5229739748bad0e2a6a0a2 Mon Sep 17 00:00:00 2001 +From: =?utf8?q?Tom=C3=A1=C5=A1=20=C4=8Cech?= <sleep_walker@suse.cz> +Date: Wed, 4 Feb 2015 11:37:16 +0100 +Subject: [PATCH] Do not silently and prematurely end install when ldconfig is + missing + +--- + Makefile | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/Makefile b/Makefile +index 343ecb5..4667146 100644 +--- a/Makefile ++++ b/Makefile +@@ -112,9 +112,10 @@ install: $(INSTALL_DEP) + $(RM) $(INSTALL_TSYM) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2) + cd src && test -f $(FILE_SO) && \ + $(INSTALL_X) $(FILE_SO) $(INSTALL_DYN) && \ +- $(LDCONFIG) $(INSTALL_LIB) && \ +- $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT1) && \ +- $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT2) || : ++ ( $(LDCONFIG) $(INSTALL_LIB) ; \ ++ $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT1) && \ ++ $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT2) || : \ ++ ) + cd etc && $(INSTALL_F) $(FILE_MAN) $(INSTALL_MAN) + cd etc && $(SED_PC) $(FILE_PC) > $(FILE_PC).tmp && \ + $(INSTALL_F) $(FILE_PC).tmp $(INSTALL_PC) && \ +-- +2.2.2 + diff --git a/gnu/packages/patches/luajit-symlinks.patch b/gnu/packages/patches/luajit-symlinks.patch new file mode 100644 index 0000000000..2466c34144 --- /dev/null +++ b/gnu/packages/patches/luajit-symlinks.patch @@ -0,0 +1,25 @@ +From 0a54a8f125d7ab508c7c88d5ad4ed1b0c63cb5b6 Mon Sep 17 00:00:00 2001 +From: =?utf8?q?Tom=C3=A1=C5=A1=20=C4=8Cech?= <sleep_walker@suse.cz> +Date: Wed, 4 Feb 2015 11:32:55 +0100 +Subject: [PATCH 1/2] Provide two symlinks for dynamic library during install + +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 0891b71..343ecb5 100644 +--- a/Makefile ++++ b/Makefile +@@ -56,7 +56,7 @@ INSTALL_PCNAME= luajit.pc + INSTALL_STATIC= $(INSTALL_LIB)/$(INSTALL_ANAME) + INSTALL_DYN= $(INSTALL_LIB)/$(INSTALL_SONAME) + INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT) +-INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT) ++INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT).$(MAJVER) + INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME) + INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME) + INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME) +-- +2.2.2 + diff --git a/gnu/packages/patches/openexr-missing-samples.patch b/gnu/packages/patches/openexr-missing-samples.patch new file mode 100644 index 0000000000..16cc9bb625 --- /dev/null +++ b/gnu/packages/patches/openexr-missing-samples.patch @@ -0,0 +1,23 @@ +This patch comments out tests that rely on files that are missing +from the source tarball. + +--- openexr-2.2.0/IlmImfTest/testSampleImages.cpp 2015-02-25 16:19:21.565105625 +0100 ++++ openexr-2.2.0/IlmImfTest/testSampleImages.cpp 2015-02-25 16:21:46.394128206 +0100 +@@ -162,16 +162,6 @@ testSampleImages (const std::string&) + compareImages (ILM_IMF_TEST_IMAGEDIR "comp_b44.exr", + ILM_IMF_TEST_IMAGEDIR "comp_b44_piz.exr"); + +- compareImages (ILM_IMF_TEST_IMAGEDIR "comp_dwaa_v1.exr", +- ILM_IMF_TEST_IMAGEDIR "comp_dwaa_piz.exr"); +- compareImages (ILM_IMF_TEST_IMAGEDIR "comp_dwaa_v2.exr", +- ILM_IMF_TEST_IMAGEDIR "comp_dwaa_piz.exr"); +- +- compareImages (ILM_IMF_TEST_IMAGEDIR "comp_dwab_v1.exr", +- ILM_IMF_TEST_IMAGEDIR "comp_dwab_piz.exr"); +- compareImages (ILM_IMF_TEST_IMAGEDIR "comp_dwab_v2.exr", +- ILM_IMF_TEST_IMAGEDIR "comp_dwab_piz.exr"); +- + + cout << "ok\n" << endl; + } + diff --git a/gnu/packages/patches/python2-rdflib-drop-sparqlwrapper.patch b/gnu/packages/patches/python2-rdflib-drop-sparqlwrapper.patch new file mode 100644 index 0000000000..53f8fde9de --- /dev/null +++ b/gnu/packages/patches/python2-rdflib-drop-sparqlwrapper.patch @@ -0,0 +1,16 @@ +Drop SPARQLWrapper from the required install inputs under Python 2, as it +creates a circular dependency. + +diff -u rdflib-4.1.2.alt/setup.py rdflib-4.1.2/setup.py +--- rdflib-4.1.2.alt/setup.py 2014-03-04 12:40:26.000000000 +0100 ++++ rdflib-4.1.2/setup.py 2015-01-23 21:52:59.000000000 +0100 +@@ -52,7 +52,7 @@ + kwargs['test_suite'] = "nose.collector" + kwargs['install_requires'] = [ + 'isodate', +- 'pyparsing', 'SPARQLWrapper'] ++ 'pyparsing'] + + if sys.version_info[1]<7: # Python 2.6 + kwargs['install_requires'].append('ordereddict') + diff --git a/gnu/packages/patches/weex-vacopy.patch b/gnu/packages/patches/weex-vacopy.patch new file mode 100644 index 0000000000..f593e86c08 --- /dev/null +++ b/gnu/packages/patches/weex-vacopy.patch @@ -0,0 +1,13 @@ +Taken from the Debian 2.8.0 package. + +--- weex-2.6.1.5/src/strlib.c 2003-08-18 11:52:38.000000000 +0200 ++++ weex-2.8.0/src/strlib.c 2007-12-04 14:22:02.000000000 +0100 +@@ -42,6 +42,8 @@ + # define G_VA_COPY(ap1, ap2) (*(ap1) = *(ap2)) + # elif defined (G_VA_COPY_AS_ARRAY) + # define G_VA_COPY(ap1, ap2) g_memmove ((ap1), (ap2), sizeof (va_list)) ++# elif defined (__x86_64__) ++# define G_VA_COPY(ap1, ap2) memmove ((ap1), (ap2), sizeof (va_list)) + # else /* va_list is a pointer */ + # define G_VA_COPY(ap1, ap2) ((ap1) = (ap2)) + # endif /* va_list is a pointer */ diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 1ce4c0cb13..7b4f2ab055 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2014 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2014, 2015 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,6 +33,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages openssl) #:use-module (gnu packages xorg) + #:use-module (gnu packages gnome) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages lua) @@ -281,3 +282,31 @@ manipulate the list of pages in a PDF file. It is not a PDF viewer or a program capable of converting PDF into other formats.") (license license:clarified-artistic) (home-page "http://qpdf.sourceforge.net/"))) + +(define-public xournal + (package + (name "xournal") + (version "0.4.8") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/xournal/xournal-" + version ".tar.gz")) + (sha256 + (base32 + "0c7gjcqhygiyp0ypaipdaxgkbivg6q45vhsj8v5jsi9nh6iqff13")))) + (build-system gnu-build-system) + (inputs + `(("gtk" ,gtk+-2) + ("pango" ,pango) + ("poppler" ,poppler) + ("glib" ,glib) + ("libgnomecanvas" ,libgnomecanvas))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://xournal.sourceforge.net/") + (synopsis "Notetaking using a stylus") + (description + "Xournal is an application for notetaking, sketching, keeping a journal +using a stylus.") + (license license:gpl2+))) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 699fe751de..214ab3e951 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -208,6 +209,53 @@ but don't want to go all out and profile your code.") "Benchmark-Timer-" version)) (license gpl2))) +(define-public perl-capture-tiny + (package + (name "perl-capture-tiny") + (version "0.28") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/D/DA/DAGOLDEN/Capture-Tiny-" + version ".tar.gz")) + (sha256 + (base32 + "117gmwipql1y5xnw9jil3lhdsrf2wsm9wjdzqj66x971n3fwm573")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Capture-Tiny") + (synopsis "Capture STDOUT and STDERR from Perl, XS or external programs") + (description + "Capture::Tiny provides a simple, portable way to capture almost anything +sent to STDOUT or STDERR, regardless of whether it comes from Perl, from XS +code or from an external program. Optionally, output can be teed so that it +is captured while being passed through to the original file handles.") + (license asl2.0))) + +(define-public perl-data-optlist + (package + (name "perl-data-optlist") + (version "0.109") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/R/RJ/RJBS/Data-OptList-" + version ".tar.gz")) + (sha256 + (base32 + "1j44rm2spprlq3bc80cxni3dzs3gfjiqv1qc9q7820n1qj0wgmqw")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-sub-install" ,perl-sub-install))) + (inputs + `(("perl-params-util" ,perl-params-util))) + (home-page "http://search.cpan.org/dist/Data-OptList") + (synopsis "Parse and validate simple name/value option pairs") + (description + "Data::OptList provides a simple syntax for name/value option pairs.") + (license (package-license perl)))) + (define-public perl-exporter-lite (package (name "perl-exporter-lite") @@ -229,6 +277,27 @@ import(), @EXPORT and @EXPORT_OK and not a whole lot else.") "Exporter-Lite-" version)) (license (package-license perl)))) +(define-public perl-params-util + (package + (name "perl-params-util") + (version "1.07") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/A/AD/ADAMK/Params-Util-" + version ".tar.gz")) + (sha256 + (base32 + "0v67sx93yhn7xa0nh9mnbf8mixf54czk6wzrjsp6dzzr5hzyrw9h")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Params-Util") + (synopsis "Simple, compact and correct param-checking functions") + (description + "Params::Util provides a basic set of importable functions that makes +checking parameters easier.") + (license (package-license perl)))) + (define-public perl-probe-perl (package (name "perl-probe-perl") @@ -274,6 +343,52 @@ Perlish API and none of the bloat and rarely used features of IPC::Run.") ;; licenses, any version." (license (list bsd-3 gpl3+)))) +(define-public perl-sub-exporter + (package + (name "perl-sub-exporter") + (version "0.987") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-" + version ".tar.gz")) + (sha256 + (base32 + "1ml3n1ck4ln9qjm2mcgkczj1jb5n1fkscz9c4x23v4db0glb4g2l")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-data-optlist" ,perl-data-optlist) + ("perl-params-util" ,perl-params-util))) + (home-page "http://search.cpan.org/dist/Sub-Exporter") + (synopsis "Sophisticated exporter for custom-built routines") + (description + "Sub::Exporter provides a sophisticated alternative to Exporter.pm for +custom-built routines.") + (license (package-license perl)))) + +(define-public perl-sub-install + (package + (name "perl-sub-install") + (version "0.928") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Install-" + version ".tar.gz")) + (sha256 + (base32 + "03zgk1yh128gciyx3q77zxzxg9kf8yy2gm46gdxqi24mcykngrb1")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Sub-Install") + (synopsis "Install subroutines into packages easily") + (description + "Sub::Install makes it easy to install subroutines into packages without +the unsightly mess of C<no strict> or typeglobs lying about where just anyone +can see them.") + (license (package-license perl)))) + (define-public perl-test-deep (package (name "perl-test-deep") @@ -365,6 +480,31 @@ bin as is also commonly used) paths of your Perl distribution.") "Test-Simple-" version)) (license (package-license perl)))) +(define-public perl-test-output + (package + (name "perl-test-output") + (version "1.03") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/B/BD/BDFOY/" + "Test-Output-" version ".tar.gz")) + (sha256 + (base32 + "12991jnzj4cbw9whhprmqvnzd1ayii84g2mh8vxbjngwqrjsy41i")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-capture-tiny" ,perl-capture-tiny) + ("perl-test-tester" ,perl-test-tester) + ("perl-sub-exporter" ,perl-sub-exporter))) + (synopsis "Utilities to test STDOUT and STDERR messages") + (description + "Test::Output provides a simple interface for testing output sent to +STDOUT or STDERR. A number of different utilities are included to try and be +as flexible as possible to the tester.") + (home-page (string-append "http://search.cpan.org/~bdfoy/" + "Test-Output-" version)) + (license (package-license perl)))) + (define-public perl-test-tester (package (name "perl-test-tester") diff --git a/gnu/packages/pumpio.scm b/gnu/packages/pumpio.scm new file mode 100644 index 0000000000..4a6375f3f2 --- /dev/null +++ b/gnu/packages/pumpio.scm @@ -0,0 +1,68 @@ +;;; 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 pumpio) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages aspell) + #:use-module (gnu packages kde) + #:use-module (gnu packages qt) + #:use-module (gnu packages web)) + +(define-public pumpa + (package + (name "pumpa") + (version "0.9") + (source (origin + (method git-fetch) ; no source tarballs + (uri (git-reference + (url "https://gitorious.org/pumpa/pumpa.git") + (commit (string-append "v" version)))) + (sha256 + (base32 + "0v55xq17wnc9mvpmrm5r3rjrsg9npnjv1lznbz8ppk77ba8pwimy")))) + (build-system gnu-build-system) + (arguments + '(#:phases (alist-replace + 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Fix dependency tests. + (substitute* "pumpa.pro" + (("/usr/include/tidy\\.h") + (string-append (assoc-ref inputs "tidy") + "/include/tidy.h")) + (("/usr/include/aspell.h") + (string-append (assoc-ref inputs "aspell") + "/include/aspell.h"))) + ;; Run qmake with proper installation prefix. + (let ((prefix (string-append "PREFIX=" + (assoc-ref outputs "out")))) + (zero? (system* "qmake" prefix)))) + %standard-phases))) + (inputs + `(("aspell" ,aspell) + ("qt" ,qt) + ("qjson" ,qjson) + ("tidy" ,tidy))) + (synopsis "Qt-based pump.io client") + (description "Pumpa is a simple pump.io client written in C++ and Qt.") + (home-page "https://pumpa.branchable.com/") + (license gpl3+))) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 36acfc0ed3..bbff241833 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -26,38 +26,37 @@ (define-module (gnu packages python) #:use-module ((guix licenses) - #:select (asl2.0 bsd-3 bsd-2 bsd-style cc0 expat x11 x11-style + #:select (asl2.0 bsd-3 bsd-2 bsd-style cc0 x11 x11-style gpl2 gpl2+ gpl3+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+ - psfl public-domain)) - #:use-module ((guix licenses) #:select (zlib) #:prefix license:) + psfl public-domain x11-style)) + #:use-module ((guix licenses) #:select (expat zlib) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages compression) + #:use-module (gnu packages databases) + #:use-module (gnu packages elf) + #: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) + #:use-module (gnu packages gtk) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) #:use-module (gnu packages libffi) - #:use-module (gnu packages readline) - #:use-module (gnu packages openssl) - #:use-module (gnu packages elf) #:use-module (gnu packages maths) + #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) - #:use-module (gnu packages gcc) + #:use-module (gnu packages openssl) + #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages databases) - #:use-module (gnu packages zip) - #:use-module (gnu packages ghostscript) - #:use-module (gnu packages multiprecision) + #:use-module (gnu packages readline) #:use-module (gnu packages texlive) #:use-module (gnu packages texinfo) - #:use-module (gnu packages image) - #:use-module (gnu packages imagemagick) - #:use-module (gnu packages fontutils) #:use-module (gnu packages which) - #:use-module (gnu packages perl) + #:use-module (gnu packages xml) #:use-module (gnu packages xorg) - #:use-module (gnu packages glib) - #:use-module (gnu packages gtk) - #:use-module (gnu packages pkg-config) + #:use-module (gnu packages zip) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -343,7 +342,7 @@ etc. ") (description "The lockfile package exports a LockFile class which provides a simple API for locking files.") - (license expat))) + (license license:expat))) (define-public python2-lockfile (package-with-python2 python-lockfile)) @@ -368,7 +367,7 @@ API for locking files.") "Mock is a library for testing in Python. It allows you to replace parts of your system under test with mock objects and make assertions about how they have been used.") - (license expat))) + (license license:expat))) (define-public python2-mock (package-with-python2 python-mock)) @@ -377,7 +376,7 @@ have been used.") (define-public python-setuptools (package (name "python-setuptools") - (version "1.1.4") + (version "12.1") (source (origin (method url-fetch) @@ -385,14 +384,12 @@ have been used.") version ".tar.gz")) (sha256 (base32 - "0hl9sa5xr9bi2ifq51wy1bawsjv5nzvpbac7m9z1ciz778874csf")))) + "04bfk7si1pwj3b5k2b1x9b1zkiclybmzpw6alrs5bciri56lg9zs")))) (build-system python-build-system) + ;; FIXME: Tests require pytest, which itself relies on setuptools. + ;; One could bootstrap with an internal untested setuptools. (arguments `(#:tests? #f)) - ;;FIXME: test_sdist_with_utf8_encoded_filename fails in - ;; /tmp/nix-build-python2-setuptools-1.1.4.drv-0/setuptools-1.1.4/setuptools/tests/test_sdist.py" - ;; line 354 - ;; The tests pass with Python 2.7.5. (home-page "https://pypi.python.org/pypi/setuptools") (synopsis "Library designed to facilitate packaging Python projects") @@ -510,6 +507,9 @@ Six supports every Python version since 2.5. It is contained in only one Python file, so it can be easily copied into your project.") (license x11))) +(define-public python2-six + (package-with-python2 python-six)) + (define-public python-dateutil-2 (package (name "python-dateutil") @@ -655,7 +655,7 @@ under several distributions that's hard or impossible to figure out.") "Pysam is a Python module for reading and manipulating files in the SAM/BAM format. Pysam is a lightweight wrapper of the SAMtools C API. It also includes an interface for tabix.") - (license expat))) + (license license:expat))) (define-public python2-pysam (package-with-python2 python-pysam)) @@ -1025,7 +1025,7 @@ software.") (synopsis "Useful extensions to the Python standard library") (description "Extras is a set of extensions to the Python standard library.") - (license expat))) + (license license:expat))) (define-public python2-extras (package-with-python2 python-extras)) @@ -1054,7 +1054,7 @@ software.") (description "Mimeparse provides basic functions for parsing MIME type names and matching them against a list of media-ranges.") - (license expat))) + (license license:expat))) (define-public python2-mimeparse (package-with-python2 python-mimeparse)) @@ -1149,7 +1149,7 @@ standard library.") (description "Py is a Python library for file name parsing, .ini file parsing, I/O, code introspection, and logging.") - (license expat))) + (license license:expat))) (define-public python2-py (package-with-python2 python-py)) @@ -1185,7 +1185,7 @@ code introspection, and logging.") "Pytest is a testing tool that provides auto-discovery of test modules and functions, detailed info on failing assert statements, modular fixtures, and many external plugins.") - (license expat))) + (license license:expat))) (define-public python2-pytest (package-with-python2 python-pytest)) @@ -1212,7 +1212,7 @@ and many external plugins.") (description "Scripttest is a Python helper library for testing interactive command-line applications. With it you can run a script in a subprocess and see the output as well as any file modifications.") - (license expat))) + (license license:expat))) (define-public python2-scripttest (package-with-python2 python-scripttest)) @@ -1600,7 +1600,7 @@ than Python’s urllib2 library.") (synopsis "Implementation of JSON Schema for Python") (description "Jsonschema is an implementation of JSON Schema for Python.") - (license expat))) + (license license:expat))) (define-public python2-jsonschema (package-with-python2 python-jsonschema)) @@ -1656,7 +1656,7 @@ somewhat intelligeble.") (synopsis "JSON Web Token implementation in Python") (description "PyJWT is a JSON Web Token implementation written in Python.") - (license expat))) + (license license:expat))) (define-public python2-pyjwt (package-with-python2 python-pyjwt)) @@ -1692,17 +1692,6 @@ OAuth request-signing logic.") (let ((base (package-with-python2 python-oauthlib))) (package (inherit base) - (name "python2-oauthlib") - (version "0.6.3") - (source (origin - (method url-fetch) - (uri - (string-append - "https://pypi.python.org/packages/source/o/oauthlib/oauthlib-" - version ".tar.gz")) - (sha256 - (base32 - "1yaj3j64la4arwsbhbfmpnickzh3jpg9nlpyg409v8pp24isn48a")))) (inputs (append (package-inputs base) `(("python2-unittest2" ,python2-unittest2))))))) @@ -1755,7 +1744,7 @@ environments and back.") (synopsis "Virtual Python environment builder") (description "Virtualenv is a tool to create isolated Python environments.") - (license expat))) + (license license:expat))) (define-public python2-virtualenv (package-with-python2 python-virtualenv)) @@ -1926,7 +1915,7 @@ sources.") (home-page "https://github.com/snide/sphinx_rtd_theme/") (synopsis "ReadTheDocs.org theme for Sphinx") (description "A theme for Sphinx used by ReadTheDocs.org.") - (license expat))) + (license license:expat))) (define-public python2-sphinx-rtd-theme (package-with-python2 python-sphinx-rtd-theme)) @@ -1997,25 +1986,25 @@ writing C extensions for Python as easy as Python itself.") 'build 'set-environment-variables (lambda* (#:key inputs #:allow-other-keys) (let* ((atlas-threaded - (string-append (assoc-ref inputs "atlas") + (string-append (assoc-ref inputs "atlas") "/lib/libtatlas.so")) ;; On single core CPUs only the serial library is created. (atlas-lib (if (file-exists? atlas-threaded) atlas-threaded - (string-append (assoc-ref inputs "atlas") + (string-append (assoc-ref inputs "atlas") "/lib/libsatlas.so")))) (setenv "ATLAS" atlas-lib))) ;; Tests can only be run after the library has been installed and not ;; within the source directory. (alist-cons-after 'install 'check - (lambda _ + (lambda _ (with-directory-excursion "/tmp" - (zero? (system* "python" "-c" + (zero? (system* "python" "-c" "import numpy; numpy.test(verbose=2)")))) - (alist-delete - 'check + (alist-delete + 'check %standard-phases))))) (home-page "http://www.numpy.org/") (synopsis "Fundamental package for scientific computing with Python") @@ -2033,7 +2022,7 @@ capabilities.") (package (inherit python-numpy-bootstrap) (name "python-numpy") (outputs '("out" "doc")) - (inputs + (inputs `(("which" ,which) ("python-setuptools" ,python-setuptools) ("python-matplotlib" ,python-matplotlib) @@ -2048,15 +2037,15 @@ capabilities.") ("perl" ,perl) ,@(package-native-inputs python-numpy-bootstrap))) (arguments - `(,@(substitute-keyword-arguments + `(,@(substitute-keyword-arguments (package-arguments python-numpy-bootstrap) ((#:phases phases) `(alist-cons-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) (let* ((data (string-append (assoc-ref outputs "doc") "/share")) - (doc (string-append - data "/doc/" ,name "-" + (doc (string-append + data "/doc/" ,name "-" ,(package-version python-numpy-bootstrap))) (info (string-append data "/info")) (html (string-append doc "/html")) @@ -2065,7 +2054,7 @@ capabilities.") (mkdir-p html) (system* "make" "html" pyver) (system* "make" "latex" "PAPER=a4" pyver) - (system* "make" "-C" "build/latex" + (system* "make" "-C" "build/latex" "all-pdf" "PAPER=a4" pyver) ;; FIXME: Generation of the info file fails. ;; (system* "make" "info" pyver) @@ -2094,7 +2083,7 @@ capabilities.") ;; import the right version of 'matplotlib' as well. (inputs `(("python2-numpydoc" ,python2-numpydoc) ("python2-matplotlib" ,python2-matplotlib) - ,@(alist-delete "python-numpydoc" + ,@(alist-delete "python-numpydoc" (alist-delete "python-matplotlib" (package-inputs numpy)))))))) @@ -2120,15 +2109,15 @@ capabilities.") (alist-cons-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) - (let* ((doc (string-append (assoc-ref outputs "doc") + (let* ((doc (string-append (assoc-ref outputs "doc") "/share/doc/" ,name "-" ,version)) (html-doc (string-append doc "/html")) (examples (string-append doc "/examples"))) (mkdir-p html-doc) (mkdir-p examples) - (for-each + (for-each (lambda (dir tgt) - (map (lambda (file) + (map (lambda (file) (copy-file file (string-append tgt "/" (basename file)))) (find-files dir ".*"))) (list "docs" "htmldoc" "examples") @@ -2141,7 +2130,7 @@ capabilities.") executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions. The pyparsing module provides a library of classes that client code uses to construct the grammar directly in Python code.") - (license expat))) + (license license:expat))) (define-public python2-pyparsing (package-with-python2 python-pyparsing)) @@ -2153,7 +2142,7 @@ that client code uses to construct the grammar directly in Python code.") (source (origin (method url-fetch) - (uri (string-append + (uri (string-append "https://pypi.python.org/packages/source/n/numpydoc/numpydoc-" version ".tar.gz")) (sha256 @@ -2173,7 +2162,7 @@ that client code uses to construct the grammar directly in Python code.") (license bsd-2))) (define-public python2-numpydoc - (package + (package (inherit (package-with-python2 python-numpydoc)) ;; With python-2 1 test (out of 30) fails because it doesn't find ;; matplotlib. With python-3 it seems to detect at run-time the absence @@ -2262,7 +2251,11 @@ backend = GTK3Agg~%"))))) (info (string-append data "/info")) (html (string-append doc "/html"))) (with-directory-excursion "doc" - ;; Without setting this variable we get an encoding error. + ;; Install and set UTF-8 locale to avoid an encoding error. + (setenv "LOCPATH" (getcwd)) + (system* "localedef" "--no-archive" + "--prefix" (getcwd) "-i" "en_US" + "-f" "UTF-8" "./en_US.UTF-8") (setenv "LANG" "en_US.UTF-8") ;; Produce pdf in 'A4' format. (substitute* (find-files "." "conf\\.py") @@ -2296,16 +2289,16 @@ toolkits.") (package (inherit matplotlib) ;; Make sure we use exactly PYTHON2-NUMPYDOC, which is ;; customized for Python 2. - (propagated-inputs + (propagated-inputs `(("python2-py2cairo" ,python2-py2cairo) ("python2-pygobject-2" ,python2-pygobject-2) ,@(alist-delete "python-pycairo" (alist-delete "python-pygobject" - (package-propagated-inputs + (package-propagated-inputs matplotlib))))) - (inputs + (inputs `(("python2-numpydoc" ,python2-numpydoc) - ,@(alist-delete "python-numpydoc" + ,@(alist-delete "python-numpydoc" (package-inputs matplotlib))))))) (define-public python-scipy @@ -2339,13 +2332,13 @@ toolkits.") 'build 'set-environment-variables (lambda* (#:key inputs #:allow-other-keys) (let* ((atlas-threaded - (string-append (assoc-ref inputs "atlas") + (string-append (assoc-ref inputs "atlas") "/lib/libtatlas.so")) ;; On single core CPUs only the serial library is created. (atlas-lib (if (file-exists? atlas-threaded) atlas-threaded - (string-append (assoc-ref inputs "atlas") + (string-append (assoc-ref inputs "atlas") "/lib/libsatlas.so")))) (setenv "ATLAS" atlas-lib))) (alist-cons-after @@ -2356,7 +2349,11 @@ toolkits.") (html (string-append doc "/html")) (pyver ,(string-append "PYVER="))) (with-directory-excursion "doc" - ;; Without setting this variable we get an encoding error. + ;; Install and set UTF-8 locale to avoid an encoding error. + (setenv "LOCPATH" (getcwd)) + (system* "localedef" "--no-archive" + "--prefix" (getcwd) "-i" "en_US" + "-f" "UTF-8" "./en_US.UTF-8") (setenv "LANG" "en_US.UTF-8") ;; Fix generation of images for mathematical expressions. (substitute* (find-files "source" "conf\\.py") @@ -2380,11 +2377,11 @@ toolkits.") ;; within the source directory. (alist-cons-after 'install 'check - (lambda _ + (lambda _ (with-directory-excursion "/tmp" (zero? (system* "python" "-c" "import scipy; scipy.test()")))) - (alist-delete - 'check + (alist-delete + 'check %standard-phases)))))) (home-page "http://www.scipy.org/") (synopsis "The Scipy library provides efficient numerical routines") @@ -2399,8 +2396,8 @@ routines such as routines for numerical integration and optimization.") ;; Use packages customized for python-2. (inputs `(("python2-matplotlib" ,python2-matplotlib) ("python2-numpy" ,python2-numpy) - ,@(alist-delete "python-matplotlib" - (alist-delete "python-numpy" + ,@(alist-delete "python-matplotlib" + (alist-delete "python-numpy" (package-inputs scipy)))))))) (define-public python-sqlalchemy @@ -2567,7 +2564,7 @@ a general image processing tool.") `(("pkg-config" ,pkg-config) ("python-setuptools" ,python-setuptools))) (arguments - `(#:phases + `(#:phases (alist-replace 'check (lambda _ @@ -2606,7 +2603,7 @@ a front-end for C compilers or analysis tools.") (method url-fetch) (uri (string-append "https://pypi.python.org/packages/source/c/" "cffi/cffi-" version ".tar.gz")) - (sha256 + (sha256 (base32 "0406j3sgndmx88idv5zxkkrwfqxmjl18pj8gf47nsg4ymzixjci5")))) (build-system python-build-system) (outputs '("out" "doc")) @@ -2620,7 +2617,7 @@ a front-end for C compilers or analysis tools.") ("python-setuptools" ,python-setuptools))) (arguments `(#:tests? #f ; FIXME: requires pytest - #:phases + #:phases (alist-cons-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) @@ -2637,7 +2634,7 @@ a front-end for C compilers or analysis tools.") (synopsis "Foreign function interface for Python") (description "Foreign Function Interface for Python calling C code.") - (license expat))) + (license license:expat))) (define-public python2-cffi (package-with-python2 python-cffi)) @@ -2663,7 +2660,7 @@ a front-end for C compilers or analysis tools.") (propagated-inputs `(("python-cffi" ,python-cffi))) ; used at run time (arguments - `(#:phases + `(#:phases (alist-cons-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) @@ -2678,7 +2675,7 @@ a front-end for C compilers or analysis tools.") (description "Xcffib is a replacement for xpyb, an XCB Python bindings. It adds support for Python 3 and PyPy. It is based on cffi.") - (license expat))) + (license license:expat))) (define-public python2-xcffib (package-with-python2 python-xcffib)) @@ -2709,14 +2706,14 @@ support for Python 3 and PyPy. It is based on cffi.") (propagated-inputs `(("python-xcffib" ,python-xcffib))) ; used at run time (arguments - `(#:phases + `(#:phases (alist-cons-after 'install 'install-doc (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((data (string-append (assoc-ref outputs "doc") "/share")) (doc (string-append data "/doc/" ,name "-" ,version)) (html (string-append doc "/html"))) - (setenv "LD_LIBRARY_PATH" + (setenv "LD_LIBRARY_PATH" (string-append (assoc-ref inputs "cairo") "/lib" ":" (assoc-ref inputs "gdk-pixbuf") "/lib")) (setenv "LANG" "en_US.UTF-8") @@ -2767,7 +2764,7 @@ PNG, PostScript, PDF, and SVG file output.") ("texinfo" ,texinfo) ("python-setuptools" ,python-setuptools))) (arguments - `(#:phases + `(#:phases (alist-cons-after 'install 'install-doc (lambda* (#:key inputs outputs #:allow-other-keys) @@ -2803,8 +2800,8 @@ PNG, PostScript, PDF, and SVG file output.") ;; (zero? (system* (string-append (assoc-ref outputs "out") ;; "/bin/iptest")))) #t) - (alist-delete - 'check + (alist-delete + 'check %standard-phases))))) (home-page "http://ipython.org") (synopsis "IPython is a tool for interactive computing in Python") @@ -2819,7 +2816,7 @@ computing.") (let ((ipython (package-with-python2 python-ipython))) (package (inherit ipython) ;; Make sure we use custom python2-NAME packages. - (inputs + (inputs `(("python2-numpydoc" ,python2-numpydoc) ("python2-matplotlib" ,python2-matplotlib) ,@(alist-delete "python-numpydoc" @@ -2870,6 +2867,8 @@ ISO 8601 dates, time and duration.") (base32 "1l5i6xzckzx4hnh9qzv9q3kyhkgjx2hsi2k9srgci3qizjmvp6ln")))) (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six))) ; required to "import html5lib" (inputs `(("python-setuptools" ,python-setuptools))) (arguments @@ -2881,7 +2880,7 @@ ISO 8601 dates, time and duration.") (description "Html5lib is an HTML parser based on the WHATWG HTML specifcation and written in Python.") - (license expat))) + (license license:expat))) (define-public python2-html5lib (package-with-python2 python-html5lib)) @@ -2935,7 +2934,7 @@ features useful for text console applications.") (description "python-dbus provides bindings for libdbus, the reference implementation of D-Bus.") (home-page "http://www.freedesktop.org/wiki/Software/DBusBindings/") - (license expat))) + (license license:expat))) (define-public python2-dbus (package (inherit python-dbus) @@ -2947,3 +2946,264 @@ implementation of D-Bus.") ;; FIXME: on Python 2, the test_utf8 fails with: ;; "ValueError: unichr() arg not in range(0x10000) (narrow Python build)" (arguments `(#:tests? #f)))) + +(define-public python-apsw + (package + (name "python-apsw") + (version "3.8.7.3-r1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/a/apsw/apsw-" + version + ".tar.gz")) + (sha256 + (base32 + "1rgxdypg7hym0qny15rx5khrghx9fkppfgsfa2s8lg917924mv7l")))) + (build-system python-build-system) + (inputs + `(("python-setuptools" ,python-setuptools) + ("sqlite" ,sqlite))) + (arguments + `(#:phases + ;; swap check and install phases + (alist-cons-after + 'install 'check + (assoc-ref %standard-phases 'check) + (alist-delete + 'check + %standard-phases)))) + (home-page "https://github.com/rogerbinns/apsw/") + (synopsis "Another Python SQLite Wrapper") + (description "APSW is a Python wrapper for the SQLite +embedded relational database engine. In contrast to other wrappers such as +pysqlite it focuses on being a minimal layer over SQLite attempting just to +translate the complete SQLite API into Python.") + (license license:zlib))) + +(define-public python2-apsw + (package-with-python2 python-apsw)) + +(define-public python-lxml + (package + (name "python-lxml") + (version "3.4.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/l/lxml/lxml-" + version + ".tar.gz")) + (sha256 + (base32 + "0pd23qz8vms1mgm41p96h4vac5y91igs4wr9640gnvxgk019kmf7")))) + (build-system python-build-system) + (inputs + `(("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("python-setuptools" ,python-setuptools))) + (home-page "http://lxml.de/") + (synopsis + "Python XML processing library") + (description + "The lxml XML toolkit is a Pythonic binding for the C libraries +libxml2 and libxslt.") + (license bsd-3))) ; and a few more, see LICENSES.txt + +(define-public python2-lxml + (package-with-python2 python-lxml)) + +(define-public python-pillow + (package + (name "python-pillow") + (version "2.7.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/P/Pillow/Pillow-" + version + ".tar.gz")) + (sha256 + (base32 + "1y0rysgd7vqpl5lh0lsra7j2k30azwxqlh5jnqk1i0pmfc735s96")))) + (build-system python-build-system) + (inputs + `(("freetype" ,freetype) + ("lcms" ,lcms) + ("libjpeg" ,libjpeg) + ("libtiff" ,libtiff) + ("openjpeg" ,openjpeg) + ("python-setuptools" ,python-setuptools) + ("zlib" ,zlib))) + (arguments + `(#:tests? #f)) ; no check target + (home-page "http://python-pillow.github.io/") + (synopsis "Pillow fork of Python Imaging Library") + (description "Pillow is a fork of the Python Imaging Library (PIL).") + ;; PIL license, see + ;; http://www.pythonware.com/products/pil/license.htm + (license (x11-style + "file://PKG-INFO" + "See http://www.pythonware.com/products/pil/license.htm")))) + +(define-public python2-pillow + (package-with-python2 python-pillow)) + +(define-public python2-pil + (package + (name "python2-pil") + (version "1.1.7") + (source + (origin + (method url-fetch) + (uri (string-append + "http://effbot.org/downloads/Imaging-" + version ".tar.gz")) + (sha256 + (base32 + "04aj80jhfbmxqzvmq40zfi4z3cw6vi01m3wkk6diz3lc971cfnw9")))) + (build-system python-build-system) + (inputs + `(("freetype" ,freetype) + ("libjpeg" ,libjpeg) + ("libtiff" ,libtiff) + ("python-setuptools" ,python-setuptools) + ("zlib" ,zlib))) + (arguments + ;; Only the fork python-pillow works with Python 3. + `(#:python ,python-2 + #:tests? #f ; no check target + #:phases + (alist-cons-before + 'build 'configure + ;; According to README and setup.py, manual configuration is + ;; the preferred way of "searching" for inputs. + ;; lcms is not found, TCL_ROOT refers to the unavailable tkinter. + (lambda* (#:key inputs #:allow-other-keys) + (let ((jpeg (assoc-ref inputs "libjpeg")) + (zlib (assoc-ref inputs "zlib")) + (tiff (assoc-ref inputs "libtiff")) + (freetype (assoc-ref inputs "freetype"))) + (substitute* "setup.py" + (("JPEG_ROOT = None") + (string-append "JPEG_ROOT = libinclude(\"" jpeg "\")")) + (("ZLIB_ROOT = None") + (string-append "ZLIB_ROOT = libinclude(\"" zlib "\")")) + (("TIFF_ROOT = None") + (string-append "TIFF_ROOT = libinclude(\"" tiff "\")")) + (("FREETYPE_ROOT = None") + (string-append "FREETYPE_ROOT = libinclude(\"" + freetype "\")"))))) + %standard-phases))) + (home-page "http://www.pythonware.com/products/pil/") + (synopsis "Python Imaging Library") + (description "The Python Imaging Library (PIL) adds image processing +capabilities to the Python interpreter.") + (license (x11-style + "file://README" + "See 'README' in the distribution.")))) + +(define-public python2-cssutils + (package + (name "python2-cssutils") + (version "1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/c/cssutils/cssutils-" + version + ".zip")) + (sha256 + (base32 + "1bwim1353r4hqiir73sn4sc43y7ymh09qx0kly7vj048blppc125")))) + (build-system python-build-system) + (native-inputs + `(("python2-mock" ,python2-mock) ; for the tests + ("unzip" ,unzip))) ; for unpacking the source + (inputs + `(("python2-setuptools" ,python2-setuptools))) + (arguments + `(#:python ,python-2 ; Otherwise tests fail with a syntax error. + #:tests? #f ; The tests apparently download an external URL. + #:phases + (alist-replace + 'unpack + (lambda* (#:key source #:allow-other-keys) + (and (zero? (system* "unzip" source)) + (chdir "cssutils-1.0"))) + %standard-phases))) + (home-page "http://cthedot.de/cssutils/") + (synopsis + "CSS Cascading Style Sheets library for Python") + (description + "Cssutils is a Python package for parsing and building CSS +Cascading Style Sheets. Currently it provides a DOM only and no rendering +options.") + (license lgpl3+))) + +(define-public python-cssselect + (package + (name "python-cssselect") + (version "0.9.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/c/cssselect/cssselect-" + version + ".tar.gz")) + (sha256 + (base32 + "10h623qnp6dp1191jri7lvgmnd4yfkl36k9smqklp1qlf3iafd85")))) + (build-system python-build-system) + (inputs + `(("python-setuptools" ,python-setuptools))) + (arguments + ;; tests fail with message + ;; AttributeError: 'module' object has no attribute 'tests' + `(#:tests? #f)) + (home-page + "https://pythonhosted.org/cssselect/") + (synopsis + "CSS3 selector parser and translator to XPath 1.0") + (description + "Cssselect ia a Python module that parses CSS3 Selectors and translates +them to XPath 1.0 expressions. Such expressions can be used in lxml or +another XPath engine to find the matching elements in an XML or HTML document.") + (license bsd-3))) + +(define-public python2-cssselect + (package-with-python2 python-cssselect)) + +(define-public python-netifaces + (package + (name "python-netifaces") + (version "0.10.4") + (source + (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/source/n/netifaces/netifaces-" + version + ".tar.gz")) + (sha256 + (base32 + "1plw237a4zib4z8s62g0mrs8gm3kjfrp5sxh6bbk9nl3rdls2mln")))) + (build-system python-build-system) + (inputs + `(("python-setuptools" ,python-setuptools))) + (home-page + "https://bitbucket.org/al45tair/netifaces") + (synopsis + "Python module for portable network interface information") + (description + "Netifaces is a Python module providing information on network +interfaces in an easy and portable manner.") + (license license:expat))) + +(define-public python2-netifaces + (package-with-python2 python-netifaces)) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index cb7e367c5a..725ac8a2fa 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -18,7 +18,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages qt) - #:use-module ((guix licenses) #:select (gpl3 lgpl2.1 x11-style)) + #:use-module ((guix licenses) #:select (gpl2 gpl3 lgpl2.1 x11-style)) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build utils) @@ -398,3 +398,53 @@ contain over 620 classes.") ("qt" ,qt))) (inputs `(("python" ,python-2))))) + +(define-public python-pyqt-4 + (package (inherit python-pyqt) + (name "python-pyqt") + (version "4.11.3") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://sourceforge/pyqt/PyQt4/" + "PyQt-" version "/PyQt-x11-gpl-" + version ".tar.gz")) + (sha256 + (base32 + "11jnfjw79s0b0qdd9s6kd69w87vf16dhagbhbmwbmrp2vgf80dw5")))) + (native-inputs + `(("python-sip" ,python-sip) + ("qt" ,qt-4))) + (arguments + `(#:tests? #f ; no check target + #:phases + (alist-replace + 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (sip (string-append out "/share/sip")) + (python-version + (string-take + (string-take-right (assoc-ref inputs "python") 5) + 3)) + (lib (string-append out "/lib/python" + python-version + "/site-packages"))) + (zero? (system* "python" "configure.py" + "--confirm-license" + "--bindir" bin + "--destdir" lib + "--sipdir" sip)))) + %standard-phases))) + (license (list gpl2 gpl3)))) ; choice of either license + +(define-public python2-pyqt-4 + (package (inherit python-pyqt-4) + (name "python2-pyqt") + (native-inputs + `(("python-sip" ,python2-sip) + ("qt" ,qt-4))) + (inputs + `(("python" ,python-2))))) diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm index ff74b2f08b..5102ebe921 100644 --- a/gnu/packages/rdf.scm +++ b/gnu/packages/rdf.scm @@ -19,12 +19,13 @@ (define-module (gnu packages rdf) #:use-module ((guix licenses) - #:select (bsd-style gpl2 lgpl2.0+ lgpl2.1 lgpl2.1+)) + #:select (bsd-style isc gpl2 lgpl2.0+ lgpl2.1 lgpl2.1+)) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system python) + #:use-module (guix build-system waf) #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages databases) @@ -88,7 +89,7 @@ HTML and JSON.") (sha256 (base32 "1arffdwivig88kkx685pldr784njm0249k0rb1f1plwavlrw9zfx")) - (patches (list + (patches (list (search-patch "clucene-pkgconfig.patch") (search-patch "clucene-contribs-lib.patch"))))) (build-system cmake-build-system) @@ -228,6 +229,55 @@ Turtle/N3 and read them in SPARQL XML, RDF/XML and Turtle/N3.") and triple stores.") (license lgpl2.1+))) ; or any choice of gpl2+ or asl2.0 +(define-public serd + (package + (name "serd") + (version "0.20.0") + (source (origin + (method url-fetch) + (uri (string-append "http://download.drobilla.net/serd-" + version + ".tar.bz2")) + (sha256 + (base32 + "1gxbzqsm212wmn8qkdd3lbl6wbv7fwmaf9qh2nxa4yxjbr7mylb4")))) + (build-system waf-build-system) + (arguments `(#:tests? #f)) ; no check target + (home-page "http://drobilla.net/software/serd/") + (synopsis "Library for RDF syntax supporting Turtle and NTriples") + (description + "Serd is a lightweight C library for RDF syntax which supports reading +and writing Turtle and NTriples. Serd is not intended to be a swiss-army +knife of RDF syntax, but rather is suited to resource limited or performance +critical applications (e.g. converting many gigabytes of NTriples to Turtle), +or situations where a simple reader/writer with minimal dependencies is +ideal (e.g. in LV2 implementations or embedded applications).") + (license isc))) + +(define-public sord + (package + (name "sord") + (version "0.12.2") + (source (origin + (method url-fetch) + (uri (string-append "http://download.drobilla.net/sord-" + version + ".tar.bz2")) + (sha256 + (base32 + "0rq7vafdv4vsxi6xk9zf5shr59w3kppdhqbj78185rz5gp9kh1dx")))) + (build-system waf-build-system) + (arguments `(#:tests? #f)) ; no check target + (inputs + `(("serd" ,serd))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://drobilla.net/software/sord/") + (synopsis "C library for storing RDF data in memory") + (description + "Sord is a lightweight C library for storing RDF data in memory.") + (license isc))) + (define-public soprano (package (name "soprano") @@ -269,12 +319,15 @@ system.") "https://pypi.python.org/packages/source/r/rdflib/rdflib-" version ".tar.gz")) + (patches + ;; The patch has no effect under Python 3. + (list (search-patch "python2-rdflib-drop-sparqlwrapper.patch"))) (sha256 (base32 "0kvaf332cqbi47rqzlpdx4mbkvw12mkrzkj8n9l19wk713d4py9w")))) (build-system python-build-system) (inputs - `(("python-htm5lib" ,python-html5lib) + `(("python-html5lib" ,python-html5lib) ("python-isodate" ,python-isodate) ("python-pyparsing" ,python-pyparsing) ("python-setuptools" ,python-setuptools))) @@ -286,3 +339,14 @@ system.") powerful language for representing information.") (license (bsd-style "file://LICENSE" "See LICENSE in the distribution.")))) + +(define-public python2-rdflib + (let ((base (package-with-python2 python-rdflib))) + (package + (inherit base) + (inputs + (append (package-inputs base) + `(("python2-nose" ,python2-nose)))) + (arguments + `(#:python ,python-2 + #:tests? #f))))) ; 3 tests fail, also outside Guix diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index f8276db698..7fc799311c 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -37,7 +37,7 @@ (define-public ruby (package (name "ruby") - (version "2.1.5") + (version "2.2.0") (source (origin (method url-fetch) @@ -46,7 +46,7 @@ "/ruby-" version ".tar.xz")) (sha256 (base32 - "18z9mwhzgh4gqc0c6ydbjg0a87jc0j38sha10mzfvjbmsjw1xfi2")))) + "1jpq7r48pmkll5lfw933013ijv750sr61c63p96v8pzwh3i191w4")))) (build-system gnu-build-system) (arguments `(#:test-target "test" diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index c6fef6154d..46b97215ba 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -94,14 +95,14 @@ anywhere.") (define-public samba (package (name "samba") - (version "3.6.8") + (version "3.6.25") (source (origin (method url-fetch) - (uri (string-append "http://us3.samba.org/samba/ftp/stable/samba-" + (uri (string-append "https://www.samba.org/samba/ftp/stable/samba-" version ".tar.gz")) (sha256 (base32 - "1phl6mmrc72jyvbyrw6cv6b92cxq3v2pbn1fh97nnb4hild1fnjg")))) + "0l9pz2m67vf398q3c2dwn8jwdxsjb20igncf4byhv6yq5dzqlb4g")))) (build-system gnu-build-system) (arguments '(#:phases (alist-cons-before diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index 8afc0ab425..4d759fa11a 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +22,7 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (gnu packages m4) #:use-module (gnu packages multiprecision) @@ -428,3 +430,82 @@ R6RS) and related languages, such as Typed Racket. It features a compiler and a virtual machine with just-in-time native compilation, as well as a large set of libraries.") (license lgpl2.0+))) + +(define-public gambit-c + (package + (name "gambit-c") + (version "4.7.4") + (source + (origin + (method url-fetch) + (uri (string-append + "http://www.iro.umontreal.ca/~gambit/download/gambit/v" + (version-major+minor version) "/source/gambc-v" + (string-map (lambda (c) (if (char=? c #\.) #\_ c)) version) + ".tgz")) + (sha256 + (base32 "0y2pklh4k65yrmxv63ass76xckrk9wqimbdad2gha35v2mi7blhs")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags + ;; According to the ./configure script, this makes the build slower and + ;; use >= 1 GB memory, but makes Gambit much faster. + '("--enable-single-host") + #:phases + (alist-cons-before + 'check 'fix-tests + (lambda _ + (substitute* '("tests/makefile") + ;; '-:' is how run-time options are set. 'tl' sets some terminal + ;; option, which makes it fail in our build environment. It + ;; recommends using 'd-' as a solution, which sets the REPL + ;; interaction channel to stdin/stdout. + (("gsi -:tl") "gsi -:d-,tl"))) + %standard-phases))) + (home-page "http://www.iro.umontreal.ca/~gambit/") + (synopsis "Efficient Scheme interpreter and compiler") + (description + "Gambit consists of two main programs: gsi, the Gambit Scheme +interpreter, and gsc, the Gambit Scheme compiler. The interpreter contains +the complete execution and debugging environment. The compiler is the +interpreter extended with the capability of generating executable files. The +compiler can produce standalone executables or compiled modules which can be +loaded at run time. Interpreted code and compiled code can be freely +mixed.") + ;; Dual license. + (license (list lgpl2.1+ asl2.0)))) + +(define-public chibi-scheme + (package + (name "chibi-scheme") + (version "0.7.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://abrek.synthcode.com/chibi-scheme-" version ".tgz")) + (sha256 + (base32 "0h6k2gdb4xk2pzhdipffcg2w3kfr4zh1va556k1hvng2did6prds")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (alist-delete + 'configure + (alist-cons-before + 'build 'set-cc + (lambda _ + (setenv "CC" "gcc")) + %standard-phases)) + #:make-flags (let ((out (assoc-ref %outputs "out"))) + (list (string-append "PREFIX=" out) + (string-append "LDFLAGS=-Wl,-rpath=" out "/lib"))) + #:test-target "test")) + (home-page "https://code.google.com/p/chibi-scheme/") + (synopsis "Small embeddable Scheme implementation") + (description + "Chibi-Scheme is a very small library with no external dependencies +intended for use as an extension and scripting language in C programs. In +addition to support for lightweight VM-based threads, each VM itself runs in +an isolated heap allowing multiple VMs to run simultaneously in different OS +threads.") + (license bsd-3))) diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index ee18c1b5d0..c9b82f4b62 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -158,6 +158,12 @@ other supporting functions for SDL.") (base32 "16an9slbb8ci7d89wakkmyfvp7c0cval8xw4hkg0842nhhlp540b")))) (build-system gnu-build-system) + (arguments + ;; Explicitly link against shared libraries instead of dlopening them. + '(#:configure-flags '("--disable-jpg-shared" + "--disable-png-shared" + "--disable-tif-shared" + "--disable-webp-shared"))) (native-inputs `(("pkg-config" ,pkg-config))) ;; FIXME: Add webp ;; @@ -191,8 +197,14 @@ WEBP, XCF, XPM, and XV.") (build-system gnu-build-system) ;; no check target ;; use libmad instead of smpeg + ;; explicitly link against shared libraries instead of dlopening them (arguments `(#:tests? #f - #:configure-flags '("--enable-music-mp3-mad-gpl"))) + #:configure-flags '("--enable-music-mp3-mad-gpl" + "--disable-music-mod-shared" + "--disable-music-fluidsynth-shared" + "--disable-music-ogg-shared" + "--disable-music-flac-shared" + "--disable-music-mp3-shared"))) (inputs `(("libvorbis" ,libvorbis) ("libflac" ,flac) ("libmad" ,libmad) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm new file mode 100644 index 0000000000..acf7b7851d --- /dev/null +++ b/gnu/packages/statistics.scm @@ -0,0 +1,108 @@ +;;; 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 statistics) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages gcc) + #:use-module (gnu packages gtk) + #:use-module (gnu packages icu4c) + #:use-module (gnu packages image) + #:use-module (gnu packages java) + #:use-module (gnu packages maths) + #:use-module (gnu packages pcre) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages readline) + #:use-module (gnu packages texlive) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages which) + #:use-module (gnu packages xorg)) + +(define-public r + (package + (name "r") + (version "3.1.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cran/src/base/R-" + (version-prefix version 1) "/R-" + version ".tar.gz")) + (sha256 + (base32 + "0ypsm11c7n49pgh2ricyhhpfhas3famscdazzdp2zq70rapm1ldw")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (alist-cons-before + 'check 'set-timezone + ;; Some tests require the timezone to be set. + (lambda _ (setenv "TZ" "UTC")) + %standard-phases) + #:configure-flags + '("--with-blas" + "--with-lapack" + "--with-cairo" + "--with-libpng" + "--with-jpeglib" + "--with-libtiff" + "--with-ICU" + "--enable-R-shlib" + "--enable-BLAS-shlib" + "--with-system-zlib" + "--with-system-bzlib" + "--with-system-pcre" + "--with-system-tre" + "--with-system-xz"))) + (native-inputs + `(("bzip2" ,bzip2) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("texlive" ,texlive) ; needed to make vignettes + ("texinfo" ,texinfo) ; for building HTML manuals + ("which" ,which) ; for tests/Examples/base-Ex.R + ("xz" ,xz))) + (inputs + `(("atlas" ,atlas) ; --with-blas + ("cairo" ,cairo) + ("gfortran" ,gfortran-4.8) + ("icu4c" ,icu4c) + ("icedtea6" ,icedtea6) + ("lapack" ,lapack) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libtiff" ,libtiff) + ("libxt" ,libxt) + ("pcre" ,pcre) + ("readline" ,readline) + ("zlib" ,zlib))) + (home-page "http://www.r-project.org/") + (synopsis "Environment for statistical computing and graphics") + (description + "R is a language and environment for statistical computing and graphics. +It provides a variety of statistical techniques, such as linear and nonlinear +modeling, classical statistical tests, time-series analysis, classification +and clustering. It also provides robust support for producing +publication-quality data plots. A large amount of 3rd-party packages are +available, greatly increasing its breadth and scope.") + (license license:gpl3+))) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 31e5d708b8..ee86b67a44 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.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 © 2014, 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; @@ -24,21 +24,26 @@ #:select (gpl2 gpl2+ gpl3+ bsd-3 public-domain)) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages algebra) + #:use-module (gnu packages audio) #:use-module (gnu packages avahi) #:use-module (gnu packages cdrom) #:use-module (gnu packages compression) - #:use-module (gnu packages zip) + #:use-module (gnu packages databases) #:use-module (gnu packages elf) #:use-module (gnu packages fontutils) + #:use-module (gnu packages fribidi) + #:use-module (gnu packages gettext) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages guile) #:use-module (gnu packages gnupg) #:use-module (gnu packages gnutls) + #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages linux) #:use-module (gnu packages lua) @@ -55,19 +60,20 @@ #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) - #:use-module (gnu packages yasm)) + #:use-module (gnu packages yasm) + #:use-module (gnu packages zip)) (define-public ffmpeg (package (name "ffmpeg") - (version "2.5.3") + (version "2.5.4") (source (origin (method url-fetch) (uri (string-append "http://www.ffmpeg.org/releases/ffmpeg-" version ".tar.bz2")) (sha256 (base32 - "06j1cgw9h9ya5z8gpcf9v9zik3l4xz7sr4wshj06kznzz5z3sf4x")))) + "11m2hbhdgphjxjp6hk438cxmipqjg5ixbr1kqnn9mbdhq9kc34fc")))) (build-system gnu-build-system) (inputs `(("fontconfig" ,fontconfig) @@ -78,7 +84,9 @@ ("libvorbis" ,libvorbis) ("libvpx" ,libvpx) ("patchelf" ,patchelf) + ("soxr" ,soxr) ("speex" ,speex) + ("twolame" ,twolame) ("zlib", zlib))) (native-inputs `(("bc" ,bc) @@ -128,7 +136,6 @@ ;; --enable-libiec61883 enable iec61883 via libiec61883 [no] ;; --enable-libilbc enable iLBC de/encoding via libilbc [no] ;; --enable-libmodplug enable ModPlug via libmodplug [no] -;; --enable-libmp3lame enable MP3 encoding via libmp3lame [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] @@ -140,11 +147,9 @@ ;; --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-libsoxr enable Include libsoxr resampling [no] ;; --enable-libssh enable SFTP protocol via libssh [no] ;; (libssh2 does not work) ;; --enable-libstagefright-h264 enable H.264 decoding via libstagefright [no] -;; --enable-libtwolame enable MP2 encoding via libtwolame [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] @@ -170,8 +175,10 @@ "--enable-libfreetype" "--enable-libmp3lame" "--enable-libopus" + "--enable-libsoxr" "--enable-libspeex" "--enable-libtheora" + "--enable-libtwolame" "--enable-libvorbis" "--enable-libvpx" @@ -204,14 +211,14 @@ audio/video codec library.") ;; We need this older ffmpeg because vlc-2.1.5 doesn't work with ffmpeg-2.4. (define-public ffmpeg-2.2 (package (inherit ffmpeg) - (version "2.2.11") + (version "2.2.13") (source (origin (method url-fetch) (uri (string-append "http://www.ffmpeg.org/releases/ffmpeg-" version ".tar.bz2")) (sha256 (base32 - "06sli7xvihh97ss6a2mkdq4dcj3rg1w8zffrmjfc1hvyjxhc8f2r")))))) + "1vva8ffwxi3rg44byy09qlbiqrrd1h4rmsl5b1mbmvzvwl1lq1l0")))))) (define-public vlc (package @@ -514,3 +521,208 @@ encapsulated.") for use with HTML5 video.") (home-page "http://dthompson.us/pages/software/srt2vtt") (license gpl3+))) + +(define-public avidemux + (package + (name "avidemux") + (version "2.6.8") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/avidemux/avidemux_" + version ".tar.gz")) + (sha256 + (base32 + "10p60wjkzf1bxqcb6i7bx4hbqy3vqg598p3l9lc4v2c9b8iqr682")))) + (build-system cmake-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + ;; FIXME: Once packaged, add libraries not found during the build. + (inputs + `(("alsa-lib" ,alsa-lib) + ("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("fribidi" ,fribidi) + ("glu" ,glu) + ("gtk+" ,gtk+) + ("jack" ,jack-1) + ("lame" ,lame) + ("libvorbis" ,libvorbis) + ("libvpx" ,libvpx) + ("libxv" ,libxv) + ("perl" ,perl) + ("pulseaudio" ,pulseaudio) + ("python" ,python-wrapper) + ("qt" ,qt-4) + ("sdl" ,sdl) + ("sqlite" ,sqlite) + ("yasm" ,yasm) + ("zlib" ,zlib))) + (arguments + `(#:tests? #f ; no check target + #:phases + ;; Make sure files inside the included ffmpeg tarball are + ;; patch-shebanged. + (alist-cons-before + 'patch-source-shebangs 'unpack-ffmpeg + (lambda _ + (with-directory-excursion "avidemux_core/ffmpeg_package" + (system* "tar" "xf" "ffmpeg-1.2.1.tar.bz2") + (delete-file "ffmpeg-1.2.1.tar.bz2"))) + (alist-cons-after + 'patch-source-shebangs 'repack-ffmpeg + (lambda _ + (with-directory-excursion "avidemux_core/ffmpeg_package" + (substitute* "ffmpeg-1.2.1/configure" + (("#! /bin/sh") (string-append "#!" (which "bash")))) + (system* "tar" "cjf" "ffmpeg-1.2.1.tar.bz2" "ffmpeg-1.2.1") + (delete-file-recursively "ffmpeg-1.2.1"))) + (alist-replace 'configure + (lambda _ + ;; Copy-paste settings from the cmake build system. + (setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH")) + (setenv "CMAKE_INCLUDE_PATH" (getenv "CPATH"))) + (alist-replace 'build + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* + ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib64")) + (top (getcwd)) + (sdl (assoc-ref inputs "sdl")) + (build_component + (lambda* (component srcdir #:optional (args '())) + (let ((builddir (string-append "build_" component))) + (mkdir builddir) + (with-directory-excursion builddir + (zero? (and + (apply system* "cmake" + "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE" + (string-append "-DCMAKE_INSTALL_PREFIX=" out) + (string-append "-DCMAKE_INSTALL_RPATH=" lib) + (string-append "-DAVIDEMUX_SOURCE_DIR=" top) + (string-append "-DSDL_INCLUDE_DIR=" + sdl "/include/SDL") + (string-append "../" srcdir) + args) + (system* "make" "-j" + (number->string (parallel-job-count))) + (system* "make" "install")))))))) + (mkdir out) + (and (build_component "core" "avidemux_core") + (build_component "cli" "avidemux/cli") + (build_component "qt4" "avidemux/qt4") + (build_component "gtk" "avidemux/gtk") + (build_component "plugins_common" "avidemux_plugins" + '("-DPLUGIN_UI=COMMON")) + (build_component "plugins_cli" "avidemux_plugins" + '("-DPLUGIN_UI=CLI")) + (build_component "plugins_qt4" "avidemux_plugins" + '("-DPLUGIN_UI=QT4")) + (build_component "plugins_gtk" "avidemux_plugins" + '("-DPLUGIN_UI=GTK")) + (build_component "plugins_settings" "avidemux_plugins" + '("-DPLUGIN_UI=SETTINGS"))) + ;; Remove .exe and .dll file. + (delete-file-recursively + (string-append out "/share/ADM6_addons")))) + (alist-delete 'install + %standard-phases))))))) + (home-page "http://fixounet.free.fr/avidemux/") + (synopsis "Video editor") + (description "Avidemux is a video editor designed for simple cutting, +filtering and encoding tasks. It supports many file types, including AVI, +DVD compatible MPEG files, MP4 and ASF, using a variety of codecs. Tasks +can be automated using projects, job queue and powerful scripting +capabilities.") + ;; Software with various licenses is included, see License.txt. + (license gpl2+))) + +(define-public avidemux-2.5 + (package (inherit avidemux) + (version "2.5.6") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/avidemux/avidemux_" + version ".tar.gz")) + (sha256 + (base32 + "12wvxz0n2g85f079d8mdkkp2zm279d34m9v7qgcqndh48cn7znnn")))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("gettext" ,gnu-gettext) + ("gtk+" ,gtk+-2) + ("jack" ,jack-1) + ("lame" ,lame) + ("libvorbis" ,libvorbis) + ("libvpx" ,libvpx) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("libxv" ,libxv) + ("perl" ,perl) + ("pulseaudio" ,pulseaudio) + ("qt" ,qt-4) + ("sdl" ,sdl) + ("yasm" ,yasm) + ("zlib" ,zlib))) + (arguments + `(#:tests? #f + #:phases + (alist-cons-before + 'patch-source-shebangs 'unpack-ffmpeg + (lambda _ + (with-directory-excursion "avidemux/ADM_libraries" + (system* "tar" "xf" "ffmpeg-0.9.tar.bz2") + (delete-file "ffmpeg-0.9.tar.bz2"))) + (alist-cons-after + 'patch-source-shebangs 'repack-ffmpeg + (lambda _ + (with-directory-excursion "avidemux/ADM_libraries" + (substitute* "ffmpeg-0.9/configure" + (("#! /bin/sh") (string-append "#!" (which "bash")))) + (system* "tar" "cjf" "ffmpeg-0.9.tar.bz2" "ffmpeg-0.9") + (delete-file-recursively "ffmpeg-0.9"))) + (alist-replace 'configure + (lambda _ + (setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH")) + (setenv "CMAKE_INCLUDE_PATH" (getenv "CPATH"))) + (alist-replace 'build + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* + ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (top (getcwd)) + (sdl (assoc-ref inputs "sdl")) + (build_component + (lambda* (component srcdir) + (let ((builddir (string-append "build_" component))) + (mkdir builddir) + (with-directory-excursion builddir + (zero? (and + (system* "cmake" + "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE" + (string-append "-DCMAKE_INSTALL_PREFIX=" + out) + (string-append "-DCMAKE_INSTALL_RPATH=" + lib) + (string-append "-DAVIDEMUX_SOURCE_DIR=" + top) + (string-append "-DAVIDEMUX_CORECONFIG_DIR=" + top "/build_main/config") + (string-append "-DAVIDEMUX_INSTALL_PREFIX=" + out) + (string-append "-DSDL_INCLUDE_DIR=" + sdl "/include/SDL") + (string-append "../" srcdir)) + (system* "make" "-j" + (number->string (parallel-job-count))) + (system* "make" "install")))))))) + (mkdir out) + (and (build_component "main" ".") + (build_component "plugins" "plugins")) + (delete-file-recursively + (string-append out "/share/ADM_addons")))) + (alist-delete 'install + %standard-phases))))))))) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 419e531fb6..5296c43c53 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013 Aljosha Papsch <misc@rpapsch.de> ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> @@ -49,14 +49,14 @@ (define-public httpd (package (name "httpd") - (version "2.4.6") + (version "2.4.12") (source (origin (method url-fetch) (uri (string-append "mirror://apache/httpd/httpd-" version ".tar.bz2")) (sha256 (base32 - "1sig08xxq1kqxr2a42ndwr9g4mm6zdqnxldhxraym2y0xcjkd7yw")))) + "1r7a63ka41vlswrqbb21vall6sc7svwgd497kb6dh8a6zvnkjvdd")))) (build-system gnu-build-system) (inputs `(("apr" ,apr) ("apr-util" ,apr-util) @@ -799,3 +799,23 @@ select or poll.") server). It was primarily designed to be used by one person or a small group of people.") (license l:expat))) + +(define-public libyaml + (package + (name "libyaml") + (version "0.1.5") + (source + (origin + (method url-fetch) + (uri (string-append + "http://pyyaml.org/download/libyaml/yaml-" + version ".tar.gz")) + (sha256 + (base32 + "1vrv5ly58bkmcyc049ad180f2m8iav6l9h3v8l2fqdmrny7yx1zs")))) + (build-system gnu-build-system) + (home-page "http://pyyaml.org/wiki/LibYAML") + (synopsis "YAML 1.1 parser and emitter written in C") + (description + "LibYAML is a YAML 1.1 parser and emitter written in C.") + (license l:expat))) diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm new file mode 100644 index 0000000000..5406aedc6e --- /dev/null +++ b/gnu/packages/wxwidgets.scm @@ -0,0 +1,97 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages wxwidgets) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module ((guix licenses) #:prefix l:) + #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build utils) + #:use-module (gnu packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages databases) + #:use-module (gnu packages gl) + #:use-module (gnu packages gstreamer) + #:use-module (gnu packages gtk) + #:use-module (gnu packages image) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages sdl) + #:use-module (gnu packages xorg)) + +(define-public wxwidgets + (package + (name "wxwidgets") + (version "3.0.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/wxwindows/" version + "/wxWidgets-" version ".tar.bz2")) + (sha256 + (base32 "0paq27brw4lv8kspxh9iklpa415mxi8zc117vbbbhfjgapf7js1l")))) + (build-system glib-or-gtk-build-system) + ;; TODO: add WebKit + (inputs + `(("glu" ,glu) + ;; XXX gstreamer-0.10 builds fail + ;; ("gstreamer" ,gstreamer-0.10) + ("gtk" ,gtk+) + ("libjpeg" ,libjpeg) + ("libmspack" ,libmspack) + ("libsm" ,libsm) + ("libtiff" ,libtiff) + ("mesa" ,mesa) + ("sdl" ,sdl))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (arguments + '(#:configure-flags + '("--with-regex=sys" "--with-libmspack" "--with-sdl") + ;; No 'check' target. + #:tests? #f)) + (home-page "https://www.wxwidgets.org/") + (synopsis "Widget toolkit for creating graphical user interfaces") + (description + "wxWidgets is a C++ library that lets developers create applications with +a graphical user interface. It has language bindings for Python, Perl, Ruby +and many other languages.") + (license (list l:lgpl2.0+ (l:fsf-free "file://doc/license.txt"))))) + +(define-public wxwidgets-2 + (package + (inherit wxwidgets) + (version "2.8.12") + (source + (origin + (method url-fetch) + (uri (string-append "https://sourceforge.net/projects/wxwindows/files/" + version "/wxGTK-" version ".tar.gz")) + (sha256 + (base32 "1gjs9vfga60mk4j4ngiwsk9h6c7j22pw26m3asxr1jwvqbr8kkqk")))) + (inputs + `(("gtk" ,gtk+-2) + ("libjpeg" ,libjpeg) + ("libtiff" ,libtiff) + ("libmspack" ,libmspack) + ("sdl" ,sdl) + ("unixodbc" ,unixodbc))) + (arguments + `(#:configure-flags + '("--enable-unicode" "--with-regex=sys" "--with-sdl") + ;; No 'check' target. + #:tests? #f)))) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index b48563227c..d0c983dc78 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> -;;; Copyright © 2014 Alex Kost <alezost@gmail.com> +;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com> ;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -392,3 +392,31 @@ X Window System.") (license (license:bsd-style #f "See xlock.c.") ;; + GPLv2 in modes/glx/biof.c. ))) + +(define-public xosd + (package + (name "xosd") + (version "2.2.14") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/libxosd/xosd-" + version ".tar.gz")) + (sha256 + (base32 + "025m7ha89q29swkc7s38knnbn8ysl24g2h5s7imfxflm91psj7sg")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags + (list (string-append "--mandir=" %output "/share/man")))) + (inputs + `(("libx11" ,libx11) + ("libxt" ,libxt) + ("libxext" ,libxext) + ("libxinerama" ,libxinerama))) + (home-page "http://sourceforge.net/projects/libxosd/") + (synopsis "X On Screen Display") + (description + "XOSD provides a C library and a simple utility (osd_cat) for displaying +transparent text on your screen.") + (license license:gpl2+))) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 10801fe52c..2f5d59a54e 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4451,7 +4451,7 @@ graphics cards.") (define-public xorg-server (package (name "xorg-server") - (version "1.16.3") + (version "1.16.4") (source (origin (method url-fetch) @@ -4460,7 +4460,7 @@ graphics cards.") name "-" version ".tar.bz2")) (sha256 (base32 - "1yxhc3aw2cadf77w48d2glc5j6w6hairiskfiys7h45g70r483sy")))) + "0wf8xykcjhvpk9ppjcixvf60p6kkyrpmfj0z29d93a8kjb6f3dmb")))) (build-system gnu-build-system) (propagated-inputs `(("dri2proto" ,dri2proto) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 94abef65c8..40d4740d46 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -506,7 +506,8 @@ given @var{config}---an @code{<nscd-configuration>} object. Optionally, (activate #~(begin (use-modules (guix build utils)) - (mkdir-p "/var/run/nscd"))) + (mkdir-p "/var/run/nscd") + (mkdir-p "/var/db/nscd"))) ;for the persistent cache (start #~(make-forkexec-constructor (list (string-append #$glibc "/sbin/nscd") diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index 7cb9012b68..69a89584e0 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -207,23 +207,33 @@ which should be passed to this script as the first argument. If not, the (list %windowmaker-session-type %ratpoison-session-type)) (define (xsessions-directory sessions) - "Return a directory containing SESSIONS, a list of <session-type> objects." + "Return a directory containing SESSIONS, a list of <session-type> objects. +The alphabetical order of the files in that directory match the order of the +elements in SESSIONS." (define builder #~(begin + (use-modules (srfi srfi-1) + (ice-9 format)) + (mkdir #$output) (chdir #$output) - (for-each (lambda (name executable) - (let ((file (string-append (string-downcase name) - ".desktop"))) - (call-with-output-file file - (lambda (port) - (format port "[Desktop Entry] + (fold (lambda (name executable number) + ;; Create file names such that the order of the items in + ;; SESSION is respected. SLiM gets them in lexicographic + ;; order and uses the first one as the default session. + (let ((file (format #f "~2,'0d-~a.desktop" + number (string-downcase name)))) + (call-with-output-file file + (lambda (port) + (format port "[Desktop Entry] Name=~a Exec=~a Type=Application~%" - name executable))))) - '#$(map session-type-name sessions) - (list #$@(map session-type-executable sessions))))) + name executable))) + (+ 1 number))) + 1 + '#$(map session-type-name sessions) + (list #$@(map session-type-executable sessions))))) (gexp->derivation "xsessions-dir" builder)) @@ -260,7 +270,8 @@ theme to use. In that case, @var{theme-name} specifies the name of the theme. Last, @var{session} is a list of @code{<session-type>} objects denoting the -available session types that can be chosen from the log-in screen." +available session types that can be chosen from the log-in screen. The first +one is chosen by default." (define (slim.cfg) (mlet %store-monad ((startx (or startx (xorg-start-command))) @@ -278,6 +289,7 @@ authfile /var/run/slim.auth # of the names specified in the 'sessions' setting: 'wmaker', 'xfce', etc. login_cmd exec " xinitrc " %session sessiondir " sessiondir " +session_msg session (F1 to change): halt_cmd " dmd "/sbin/halt reboot_cmd " dmd "/sbin/reboot diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm index ecffee3112..17b08aa9b7 100644 --- a/gnu/system/grub.scm +++ b/gnu/system/grub.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> ;;; ;;; This file is part of GNU Guix. ;;; @@ -80,13 +80,13 @@ (define %background-image (grub-image (aspect-ratio 4/3) - (file #~(string-append #$%artwork-repository "/grub/guix-4-3.svg")))) + (file #~(string-append #$%artwork-repository "/grub/GuixSD-4-3.svg")))) (define %default-theme ;; Default theme contributed by Felipe López. (grub-theme (images (list %background-image)) - (color-highlight '((fg . cyan) (bg . black))) ;XXX: fg should be #x3bb7f5 + (color-highlight '((fg . yellow) (bg . black))) (color-normal '((fg . light-gray) (bg . black))))) ;XXX: #x303030 (define-record-type* <grub-configuration> diff --git a/guix/build-system/perl.scm b/guix/build-system/perl.scm index c488adb500..e0f86438a8 100644 --- a/guix/build-system/perl.scm +++ b/guix/build-system/perl.scm @@ -75,7 +75,9 @@ (tests? #t) (parallel-build? #t) (parallel-tests? #t) + (make-maker? #f) (make-maker-flags ''()) + (module-build-flags ''()) (phases '(@ (guix build perl-build-system) %standard-phases)) (outputs '("out")) @@ -101,7 +103,9 @@ provides a `Makefile.PL' file as its build system." source)) #:search-paths ',(map search-path-specification->sexp search-paths) + #:make-maker? ,make-maker? #:make-maker-flags ,make-maker-flags + #:module-build-flags ,module-build-flags #:phases ,phases #:system ,system #:test-target "test" diff --git a/guix/build/download.scm b/guix/build/download.scm index 5928ccd154..e8d61e0d92 100644 --- a/guix/build/download.scm +++ b/guix/build/download.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,6 +30,7 @@ #:use-module (ice-9 match) #:use-module (ice-9 format) #:export (open-connection-for-uri + resolve-uri-reference maybe-expand-mirrors url-fetch progress-proc @@ -204,6 +206,86 @@ which is not available during bootstrap." (module-define! (resolve-module '(web client)) 'shutdown (const #f)) +;; XXX: Work around <http://bugs.gnu.org/19840>, present in Guile +;; up to 2.0.11. +(unless (or (> (string->number (major-version)) 2) + (> (string->number (minor-version)) 0) + (> (string->number (micro-version)) 11)) + (let ((var (module-variable (resolve-module '(web http)) + 'declare-relative-uri-header!))) + ;; If 'declare-relative-uri-header!' doesn't exist, forget it. + (when (and var (variable-bound? var)) + (let ((declare-relative-uri-header! (variable-ref var))) + (declare-relative-uri-header! "Location"))))) + +(define (resolve-uri-reference ref base) + "Resolve the URI reference REF, interpreted relative to the BASE URI, into a +target URI, according to the algorithm specified in RFC 3986 section 5.2.2. +Return the resulting target URI." + + (define (merge-paths base-path rel-path) + (let* ((base-components (string-split base-path #\/)) + (base-directory-components (match base-components + ((components ... last) components) + (() '()))) + (base-directory (string-join base-directory-components "/"))) + (string-append base-directory "/" rel-path))) + + (define (remove-dot-segments path) + (let loop ((in + ;; Drop leading "." and ".." components from a relative path. + ;; (absolute paths will start with a "" component) + (drop-while (match-lambda + ((or "." "..") #t) + (_ #f)) + (string-split path #\/))) + (out '())) + (match in + (("." . rest) + (loop rest out)) + ((".." . rest) + (match out + ((or () ("")) + (error "remove-dot-segments: too many '..' components" path)) + (_ + (loop rest (cdr out))))) + ((component . rest) + (loop rest (cons component out))) + (() + (string-join (reverse out) "/"))))) + + (cond ((or (uri-scheme ref) + (uri-host ref)) + (build-uri (or (uri-scheme ref) + (uri-scheme base)) + #:userinfo (uri-userinfo ref) + #:host (uri-host ref) + #:port (uri-port ref) + #:path (remove-dot-segments (uri-path ref)) + #:query (uri-query ref) + #:fragment (uri-fragment ref))) + ((string-null? (uri-path ref)) + (build-uri (uri-scheme base) + #:userinfo (uri-userinfo base) + #:host (uri-host base) + #:port (uri-port base) + #:path (remove-dot-segments (uri-path base)) + #:query (or (uri-query ref) + (uri-query base)) + #:fragment (uri-fragment ref))) + (else + (build-uri (uri-scheme base) + #:userinfo (uri-userinfo base) + #:host (uri-host base) + #:port (uri-port base) + #:path (remove-dot-segments + (if (string-prefix? "/" (uri-path ref)) + (uri-path ref) + (merge-paths (uri-path base) + (uri-path ref)))) + #:query (uri-query ref) + #:fragment (uri-fragment ref))))) + (define (http-fetch uri file) "Fetch data from URI and write it to FILE. Return FILE on success." @@ -260,7 +342,7 @@ which is not available during bootstrap." file)) ((301 ; moved permanently 302) ; found (redirection) - (let ((uri (response-location resp))) + (let ((uri (resolve-uri-reference (response-location resp) uri))) (format #t "following redirection to `~a'...~%" (uri->string uri)) (close connection) diff --git a/guix/build/perl-build-system.scm b/guix/build/perl-build-system.scm index 904daf7ac2..7eb944ccd1 100644 --- a/guix/build/perl-build-system.scm +++ b/guix/build/perl-build-system.scm @@ -29,22 +29,57 @@ ;; ;; Code: -(define* (configure #:key outputs (make-maker-flags '()) +(define* (configure #:key outputs make-maker? + (make-maker-flags '()) (module-build-flags '()) #:allow-other-keys) "Configure the given Perl package." - (let ((out (assoc-ref outputs "out"))) - (if (file-exists? "Makefile.PL") - (let ((args `("Makefile.PL" ,(string-append "PREFIX=" out) - "INSTALLDIRS=site" ,@make-maker-flags))) - (format #t "running `perl' with arguments ~s~%" args) - (zero? (apply system* "perl" args))) - (error "no Makefile.PL found")))) + (let* ((out (assoc-ref outputs "out")) + (args (cond + ;; Prefer to use Module::Build unless otherwise told + ((and (file-exists? "Build.PL") + (not make-maker?)) + `("Build.PL" ,(string-append "--prefix=" out) + "--installdirs=site" ,@module-build-flags)) + ((file-exists? "Makefile.PL") + `("Makefile.PL" ,(string-append "PREFIX=" out) + "INSTALLDIRS=site" ,@make-maker-flags)) + (else (error "no Build.PL or Makefile.PL found"))))) + (format #t "running `perl' with arguments ~s~%" args) + (zero? (apply system* "perl" args)))) + +(define-syntax-rule (define-w/gnu-fallback* (name args ...) body ...) + (define* (name args ... #:rest rest) + (if (access? "Build" X_OK) + (begin body ...) + (apply (assoc-ref gnu:%standard-phases 'name) rest)))) + +(define-w/gnu-fallback* (build) + (zero? (system* "./Build"))) + +(define-w/gnu-fallback* (check #:key target + (tests? (not target)) (test-flags '()) + #:allow-other-keys) + (if tests? + (zero? (apply system* "./Build" "test" test-flags)) + (begin + (format #t "test suite not run~%") + #t))) + +(define-w/gnu-fallback* (install) + (zero? (system* "./Build" "install"))) (define %standard-phases - ;; Everything is as with the GNU Build System except for the `configure' - ;; phase. - (alist-replace 'configure configure - gnu:%standard-phases)) + ;; Everything is as with the GNU Build System except for the `configure', + ;; `build', `check', and `install' phases. + (alist-replace + 'configure configure + (alist-replace + 'build build + (alist-replace + 'check check + (alist-replace + 'install install + gnu:%standard-phases))))) (define* (perl-build #:key inputs (phases %standard-phases) #:allow-other-keys #:rest args) diff --git a/guix/derivations.scm b/guix/derivations.scm index 678550a39e..e5922365a0 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -96,11 +96,8 @@ build-derivations built-derivations - imported-modules - compiled-modules - build-expression->derivation - imported-files) + build-expression->derivation) ;; Re-export it from here for backward compatibility. #:re-export (%guile-for-build)) @@ -942,7 +939,7 @@ recursively." (remove (cut string=? <> ".") (string-tokenize (dirname file-name) not-slash)))))) -(define* (imported-files store files +(define* (imported-files store files ;deprecated #:key (name "file-import") (system (%current-system)) (guile (%guile-for-build))) @@ -982,7 +979,7 @@ system, imported, and appears under FINAL-PATH in the resulting store path." ;; up looking for the same files over and over again. (memoize search-path)) -(define* (%imported-modules store modules +(define* (%imported-modules store modules ;deprecated #:key (name "module-import") (system (%current-system)) (guile (%guile-for-build)) @@ -1001,7 +998,7 @@ search path." (imported-files store files #:name name #:system system #:guile guile))) -(define* (%compiled-modules store modules +(define* (%compiled-modules store modules ;deprecated #:key (name "module-import-compiled") (system (%current-system)) (guile (%guile-for-build)) @@ -1124,7 +1121,7 @@ applied." #:outputs output-names #:local-build? #t))))) -(define* (build-expression->derivation store name exp +(define* (build-expression->derivation store name exp ;deprecated #:key (system (%current-system)) (inputs '()) @@ -1290,9 +1287,3 @@ ALLOWED-REFERENCES, and LOCAL-BUILD?." (define built-derivations (store-lift build-derivations)) - -(define imported-modules - (store-lift %imported-modules)) - -(define compiled-modules - (store-lift %compiled-modules)) diff --git a/guix/download.scm b/guix/download.scm index 9a1897525b..d87d02e2af 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -164,6 +164,16 @@ "ftp://ftp.nara.wide.ad.jp/pub/CPAN/" "http://mirrors.163.com/cpan/" "ftp://cpan.mirror.ac.za/") + (cran + ;; Arbitrary mirrors from http://cran.r-project.org/mirrors.html + ;; This one automatically redirects to servers worldwide + "http://cran.rstudio.com/" + "http://cran.univ-lyon1.fr/" + "http://cran.r-mirror.de/" + "http://cran.ism.ac.jp/" + "http://cran.stat.auckland.ac.nz/" + "http://cran.mirror.ac.za/" + "http://cran.csie.ntu.edu.tw/") (imagemagick ;; from http://www.imagemagick.org/script/download.php ;; (without mirrors that are unavailable or not up to date) diff --git a/guix/gexp.scm b/guix/gexp.scm index fa712a8b9b..a8349c7d6e 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -21,6 +21,7 @@ #:use-module (guix monads) #:use-module (guix derivations) #:use-module (guix packages) + #:use-module (guix utils) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-9 gnu) @@ -31,7 +32,10 @@ gexp->derivation gexp->file gexp->script - text-file*)) + text-file* + imported-files + imported-modules + compiled-modules)) ;;; Commentary: ;;; @@ -149,6 +153,7 @@ names and file names suitable for the #:allowed-references argument to (modules '()) (module-path %load-path) (guile-for-build (%guile-for-build)) + (graft? (%graft?)) references-graphs allowed-references local-build?) @@ -161,6 +166,9 @@ names of Guile modules searched in MODULE-PATH to be copied in the store, compiled, and made available in the load path during the execution of EXP---e.g., '((guix build utils) (guix build gnu-build-system)). +GRAFT? determines whether packages referred to by EXP should be grafted when +applicable. + When REFERENCES-GRAPHS is true, it must be a list of tuples of one of the following forms: @@ -194,10 +202,10 @@ The other arguments are as for 'derivation'." (cons file-name thing))) graphs)) - (mlet* %store-monad (;; The following binding is here to force - ;; '%current-system' and '%current-target-system' to be - ;; looked up at >>= time. - (unused (return #f)) + (mlet* %store-monad (;; The following binding forces '%current-system' and + ;; '%current-target-system' to be looked up at >>= + ;; time. + (graft? (set-grafting graft?)) (system -> (or system (%current-system))) (target -> (if (eq? target 'current) @@ -241,30 +249,32 @@ The other arguments are as for 'derivation'." (return guile-for-build) (package->derivation (default-guile) system)))) - (raw-derivation name - (string-append (derivation->output-path guile) - "/bin/guile") - `("--no-auto-compile" - ,@(if (pair? %modules) - `("-L" ,(derivation->output-path modules) - "-C" ,(derivation->output-path compiled)) - '()) - ,builder) - #:outputs outputs - #:env-vars env-vars - #:system system - #:inputs `((,guile) - (,builder) - ,@(if modules - `((,modules) (,compiled) ,@inputs) - inputs) - ,@(match graphs - (((_ . inputs) ...) inputs) - (_ '()))) - #:hash hash #:hash-algo hash-algo #:recursive? recursive? - #:references-graphs (and=> graphs graphs-file-names) - #:allowed-references allowed - #:local-build? local-build?))) + (mbegin %store-monad + (set-grafting graft?) ;restore the initial setting + (raw-derivation name + (string-append (derivation->output-path guile) + "/bin/guile") + `("--no-auto-compile" + ,@(if (pair? %modules) + `("-L" ,(derivation->output-path modules) + "-C" ,(derivation->output-path compiled)) + '()) + ,builder) + #:outputs outputs + #:env-vars env-vars + #:system system + #:inputs `((,guile) + (,builder) + ,@(if modules + `((,modules) (,compiled) ,@inputs) + inputs) + ,@(match graphs + (((_ . inputs) ...) inputs) + (_ '()))) + #:hash hash #:hash-algo hash-algo #:recursive? recursive? + #:references-graphs (and=> graphs graphs-file-names) + #:allowed-references allowed + #:local-build? local-build?)))) (define* (gexp-inputs exp #:optional (references gexp-references)) "Return the input list for EXP, using REFERENCES to get its list of @@ -502,6 +512,157 @@ package/derivation references." ;;; +;;; Module handling. +;;; + +(define %mkdir-p-definition + ;; The code for 'mkdir-p' is copied from (guix build utils). We use it in + ;; derivations that cannot use the #:modules argument of 'gexp->derivation' + ;; precisely because they implement that functionality. + (gexp + (define (mkdir-p dir) + (define absolute? + (string-prefix? "/" dir)) + + (define not-slash + (char-set-complement (char-set #\/))) + + (let loop ((components (string-tokenize dir not-slash)) + (root (if absolute? "" "."))) + (match components + ((head tail ...) + (let ((path (string-append root "/" head))) + (catch 'system-error + (lambda () + (mkdir path) + (loop tail path)) + (lambda args + (if (= EEXIST (system-error-errno args)) + (loop tail path) + (apply throw args)))))) + (() #t)))))) + +(define* (imported-files files + #:key (name "file-import") + (system (%current-system)) + (guile (%guile-for-build))) + "Return a derivation that imports FILES into STORE. FILES must be a list +of (FINAL-PATH . FILE-NAME) pairs; each FILE-NAME is read from the file +system, imported, and appears under FINAL-PATH in the resulting store path." + (define file-pair + (match-lambda + ((final-path . file-name) + (mlet %store-monad ((file (interned-file file-name + (basename final-path)))) + (return (list final-path file)))))) + + (mlet %store-monad ((files (sequence %store-monad + (map file-pair files)))) + (define build + (gexp + (begin + (use-modules (ice-9 match)) + + (ungexp %mkdir-p-definition) + + (mkdir (ungexp output)) (chdir (ungexp output)) + (for-each (match-lambda + ((final-path store-path) + (mkdir-p (dirname final-path)) + (symlink store-path final-path))) + '(ungexp files))))) + + ;; TODO: Pass FILES as an environment variable so that BUILD remains + ;; exactly the same regardless of FILES: less disk space, and fewer + ;; 'add-to-store' RPCs. + (gexp->derivation name build + #:system system + #:guile-for-build guile + #:local-build? #t))) + +(define search-path* + ;; A memoizing version of 'search-path' so 'imported-modules' does not end + ;; up looking for the same files over and over again. + (memoize search-path)) + +(define* (imported-modules modules + #:key (name "module-import") + (system (%current-system)) + (guile (%guile-for-build)) + (module-path %load-path)) + "Return a derivation that contains the source files of MODULES, a list of +module names such as `(ice-9 q)'. All of MODULES must be in the MODULE-PATH +search path." + ;; TODO: Determine the closure of MODULES, build the `.go' files, + ;; canonicalize the source files through read/write, etc. + (let ((files (map (lambda (m) + (let ((f (string-append + (string-join (map symbol->string m) "/") + ".scm"))) + (cons f (search-path* module-path f)))) + modules))) + (imported-files files #:name name #:system system + #:guile guile))) + +(define* (compiled-modules modules + #:key (name "module-import-compiled") + (system (%current-system)) + (guile (%guile-for-build)) + (module-path %load-path)) + "Return a derivation that builds a tree containing the `.go' files +corresponding to MODULES. All the MODULES are built in a context where +they can refer to each other." + (mlet %store-monad ((modules (imported-modules modules + #:system system + #:guile guile + #:module-path + module-path))) + (define build + (gexp + (begin + (use-modules (ice-9 ftw) + (ice-9 match) + (srfi srfi-26) + (system base compile)) + + (ungexp %mkdir-p-definition) + + (define (regular? file) + (not (member file '("." "..")))) + + (define (process-directory directory output) + (let ((entries (map (cut string-append directory "/" <>) + (scandir directory regular?)))) + (for-each (lambda (entry) + (if (file-is-directory? entry) + (let ((output (string-append output "/" + (basename entry)))) + (mkdir-p output) + (process-directory entry output)) + (let* ((base (string-drop-right + (basename entry) + 4)) ;.scm + (output (string-append output "/" base + ".go"))) + (compile-file entry + #:output-file output + #:opts + %auto-compilation-options)))) + entries))) + + (set! %load-path (cons (ungexp modules) %load-path)) + (mkdir (ungexp output)) + (chdir (ungexp modules)) + (process-directory "." (ungexp output))))) + + ;; TODO: Pass MODULES as an environment variable. + (gexp->derivation name build + #:system system + #:guile-for-build guile + #:local-build? #t))) + + +;;; ;;; Convenience procedures. ;;; @@ -562,7 +723,6 @@ and store file names; the resulting store file holds references to all these." (gexp->derivation name builder)) - ;;; ;;; Syntactic sugar. diff --git a/guix/http-client.scm b/guix/http-client.scm index 4770628e45..aad7656e19 100644 --- a/guix/http-client.scm +++ b/guix/http-client.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2012 Free Software Foundation, Inc. ;;; ;;; This file is part of GNU Guix. @@ -29,6 +30,7 @@ #:use-module (rnrs bytevectors) #:use-module (guix ui) #:use-module (guix utils) + #:use-module ((guix build download) #:select (resolve-uri-reference)) #:export (&http-get-error http-get-error? http-get-error-uri @@ -227,7 +229,7 @@ Raise an '&http-get-error' condition if downloading fails." (values data len))))) ((301 ; moved permanently 302) ; found (redirection) - (let ((uri (response-location resp))) + (let ((uri (resolve-uri-reference (response-location resp) uri))) (close-port port) (format #t (_ "following redirection to `~a'...~%") (uri->string uri)) diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm index 5f4602a8d2..37dd3b162c 100644 --- a/guix/import/cpan.scm +++ b/guix/import/cpan.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +20,8 @@ (define-module (guix import cpan) #:use-module (ice-9 match) #:use-module (ice-9 regex) + #:use-module ((ice-9 popen) #:select (open-pipe* close-pipe)) + #:use-module ((ice-9 rdelim) #:select (read-line)) #:use-module (srfi srfi-1) #:use-module (json) #:use-module (guix hash) @@ -27,6 +30,9 @@ #:use-module ((guix download) #:select (download-to-store)) #:use-module (guix import utils) #:use-module (guix import json) + #:use-module (guix packages) + #:use-module (guix derivations) + #:use-module (gnu packages perl) #:export (cpan->guix-package)) ;;; Commentary: @@ -44,7 +50,7 @@ ;; apache_1_1 ("apache_2_0" 'asl2.0) ;; artistic_1_0 - ;; artistic_2_0 + ("artistic_2_0" 'artistic2.0) ("bsd" 'bsd-3) ("freebsd" 'bsd-2) ;; gfdl_1_2 @@ -58,7 +64,7 @@ ;; mozilla_1_0 ("mozilla_1_1" 'mpl1.1) ("openssl" 'openssl) - ("perl_5" 'gpl1+) ;and Artistic 1 + ("perl_5" '(package-license perl)) ;GPL1+ and Artistic 1 ("qpl_1_0" 'qpl) ;; ssleay ;; sun @@ -71,6 +77,14 @@ "Transform a 'module' name into a 'release' name" (regexp-substitute/global #f "::" module 'pre "-" 'post)) +(define (module->dist-name module) + "Return the base distribution module for a given module. E.g. the 'ok' +module is distributed with 'Test::Simple', so (module->dist-name \"ok\") would +return \"Test-Simple\"" + (assoc-ref (json-fetch (string-append "http://api.metacpan.org/module/" + module)) + "distribution")) + (define (cpan-fetch module) "Return an alist representation of the CPAN metadata for the perl module MODULE, or #f on failure. MODULE should be e.g. \"Test::Script\"" @@ -84,6 +98,15 @@ or #f on failure. MODULE should be e.g. \"Test::Script\"" (define (cpan-home name) (string-append "http://search.cpan.org/dist/" name)) +(define %corelist + (delay + (let* ((perl (with-store store + (derivation->output-path + (package-derivation store perl)))) + (core (string-append perl "/bin/corelist"))) + (and (access? core X_OK) + core)))) + (define (cpan-module->sexp meta) "Return the `package' s-expression for a CPAN module from the metadata in META." @@ -98,6 +121,17 @@ META." (define version (assoc-ref meta "version")) + (define (core-module? name) + (and (force %corelist) + (parameterize ((current-error-port (%make-void-port "w"))) + (let* ((corelist (open-pipe* OPEN_READ (force %corelist) name))) + (let loop ((line (read-line corelist))) + (if (eof-object? line) + (begin (close-pipe corelist) #f) + (if (string-contains line "first released with perl") + (begin (close-pipe corelist) #t) + (loop (read-line corelist))))))))) + (define (convert-inputs phases) ;; Convert phase dependencies into a list of name/variable pairs. (match (flatten @@ -109,19 +143,22 @@ META." (#f '()) ((inputs ...) - (delete-duplicates - ;; Listed dependencies may include core modules. Filter those out. - (filter-map (match-lambda - ((or (module . "0") ("perl" . _)) - ;; TODO: A stronger test might to run MODULE through - ;; `corelist' from our perl package. This current test - ;; seems to be only a loose convention. - #f) - ((module . _) - (let ((name (guix-name (module->name module)))) - (list name - (list 'unquote (string->symbol name)))))) - inputs))))) + (sort + (delete-duplicates + ;; Listed dependencies may include core modules. Filter those out. + (filter-map (match-lambda + (("perl" . _) ;implicit dependency + #f) + ((module . _) + (and (not (core-module? module)) + (let ((name (guix-name (module->dist-name module)))) + (list name + (list 'unquote (string->symbol name))))))) + inputs)) + (lambda args + (match args + (((a _ ...) (b _ ...)) + (string<? a b)))))))) (define (maybe-inputs guix-name inputs) (match inputs @@ -132,7 +169,9 @@ META." (list 'quasiquote inputs)))))) (define source-url - (assoc-ref meta "download_url")) + (regexp-substitute/global #f "http://cpan.metacpan.org" + (assoc-ref meta "download_url") + 'pre "mirror://cpan" 'post)) (let ((tarball (with-store store (download-to-store store source-url)))) @@ -147,12 +186,12 @@ META." ,(bytevector->nix-base32-string (file-sha256 tarball)))))) (build-system perl-build-system) ,@(maybe-inputs 'native-inputs - ;; "runtime" and "test" may also be needed here. See + ;; "runtime" may also be needed here. See ;; https://metacpan.org/pod/CPAN::Meta::Spec#Phases, ;; which says they are required during building. We ;; have not yet had a need for cross-compiled perl - ;; modules, however, so we leave them out. - (convert-inputs '("configure" "build"))) + ;; modules, however, so we leave it out. + (convert-inputs '("configure" "build" "test"))) ,@(maybe-inputs 'inputs (convert-inputs '("runtime"))) (home-page ,(string-append "http://search.cpan.org/dist/" name)) diff --git a/guix/licenses.scm b/guix/licenses.scm index 86f3ae4e82..157e74bf37 100644 --- a/guix/licenses.scm +++ b/guix/licenses.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2014 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org> ;;; ;;; This file is part of GNU Guix. @@ -28,7 +28,7 @@ cc0 cddl1.0 cecill-c - clarified-artistic + artistic2.0 clarified-artistic cpl1.0 epl1.0 expat @@ -39,6 +39,7 @@ ijg ibmpl1.0 imlib2 + ipa lgpl2.0 lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3 lgpl3+ mpl1.1 mpl2.0 ncsa @@ -129,6 +130,11 @@ which may be a file:// URI pointing the package's tree." "http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.html" "https://www.gnu.org/licenses/license-list.html#CeCILL")) +(define artistic2.0 + (license "Artistic License 2.0" + "http://www.perlfoundation.org/artistic_license_2_0" + "http://www.gnu.org/licenses/license-list.html#ArtisticLicense2")) + (define clarified-artistic (license "Clarified Artistic" ;; http://directory.fsf.org/wiki/User:Jgay/license-categorization#Clarified_Artistic_License @@ -210,6 +216,11 @@ which may be a file:// URI pointing the package's tree." "http://directory.fsf.org/wiki/License:Imlib2" "https://www.gnu.org/licenses/license-list#imlib")) +(define ipa + (license "IPA Font License" + "http://directory.fsf.org/wiki/License:IPA_Font_License" + "https://www.gnu.org/licenses/license-list#IPAFONT")) + (define lgpl2.0 (license "LGPL 2.0" "https://www.gnu.org/licenses/old-licenses/lgpl-2.0.html" diff --git a/guix/packages.scm b/guix/packages.scm index 96f3adfc32..5b686a122f 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -114,6 +114,7 @@ default-guile set-guile-for-build + set-grafting package-file package->derivation package->cross-derivation @@ -906,6 +907,12 @@ code of derivations to GUILE, a package object." (let ((guile (package-derivation store guile))) (values (%guile-for-build guile) store)))) +(define (set-grafting enable?) + "This monadic procedure enables grafting when ENABLE? is true, and disables +it otherwise. It returns the previous setting." + (lambda (store) + (values (%graft? enable?) store))) + (define* (package-file package #:optional file #:key diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm index b85119a0ff..ea6801a6eb 100644 --- a/guix/scripts/archive.scm +++ b/guix/scripts/archive.scm @@ -297,20 +297,6 @@ the input port." (cut write-acl acl <>))))) (define (guix-archive . args) - (define (parse-options) - ;; Return the alist of option values. - (append (parse-options-from args) - (parse-options-from (environment-build-options)))) - - (define (parse-options-from args) - ;; Actual parsing takes place here. - (args-fold* args %options - (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) - (lambda (arg result) - (alist-cons 'argument arg result)) - %default-options)) - (define (lines port) ;; Return lines read from PORT. (let loop ((line (read-line port)) @@ -324,7 +310,7 @@ the input port." ;; Ask for absolute file names so that .drv file names passed from the ;; user to 'read-derivation' are absolute when it returns. (with-fluids ((%file-port-name-canonicalization 'absolute)) - (let ((opts (parse-options))) + (let ((opts (parse-command-line args %options (list %default-options)))) (cond ((assoc-ref opts 'generate-key) => generate-key-pair) diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 07ced30484..370c2a37ff 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -405,25 +405,12 @@ arguments with packages that use the specified source." ;;; (define (guix-build . args) - (define (parse-options) - ;; Return the alist of option values. - (append (parse-options-from args) - (parse-options-from (environment-build-options)))) - - (define (parse-options-from args) - ;; Actual parsing takes place here. - (args-fold* args %options - (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) - (lambda (arg result) - (alist-cons 'argument arg result)) - %default-options)) - (with-error-handling ;; Ask for absolute file names so that .drv file names passed from the ;; user to 'read-derivation' are absolute when it returns. (with-fluids ((%file-port-name-canonicalization 'absolute)) - (let* ((opts (parse-options)) + (let* ((opts (parse-command-line args %options + (list %default-options))) (store (open-connection)) (drv (options->derivations store opts)) (roots (filter-map (match-lambda diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index bb2ce53caf..c96ca351c4 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -217,22 +217,12 @@ packages." ;; Entry point. (define (guix-environment . args) - (define (parse-options) - ;; Return the alist of option values. - (append (parse-options-from args) - (parse-options-from (environment-build-options)))) - - (define (parse-options-from args) - ;; Actual parsing takes place here. - (args-fold* args %options - (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) - (lambda (arg result) - (alist-cons 'package arg result)) - %default-options)) + (define (handle-argument arg result) + (alist-cons 'package arg result)) (with-store store - (let* ((opts (parse-options)) + (let* ((opts (parse-command-line args %options (list %default-options) + #:argument-handler handle-argument)) (pure? (assoc-ref opts 'pure)) (command (assoc-ref opts 'exec)) (inputs (packages->transitive-inputs diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index fc116d8f6c..c27207f29a 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -692,22 +692,11 @@ doesn't need it." ;;; (define (guix-package . args) - (define (parse-options) - ;; Return the alist of option values. - (append (parse-options-from args) - (parse-options-from (environment-build-options)))) - - (define (parse-options-from args) - ;; Actual parsing takes place here. - (args-fold* args %options - (lambda (opt name arg result arg-handler) - (leave (_ "~A: unrecognized option~%") name)) - (lambda (arg result arg-handler) - (if arg-handler - (arg-handler arg result) - (leave (_ "~A: extraneous argument~%") arg))) - %default-options - #f)) + (define (handle-argument arg result arg-handler) + ;; Process non-option argument ARG by calling back ARG-HANDLER. + (if arg-handler + (arg-handler arg result) + (leave (_ "~A: extraneous argument~%") arg))) (define (ensure-default-profile) ;; Ensure the default profile symlink and directory exist and are @@ -987,7 +976,8 @@ more information.~%")) (_ #f)))) - (let ((opts (parse-options))) + (let ((opts (parse-command-line args %options (list %default-options #f) + #:argument-handler handle-argument))) (with-error-handling (or (process-query opts) (parameterize ((%store (open-connection))) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 3eea872fe8..1b64e6fb92 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -446,7 +446,7 @@ Build the operating system declared in FILE according to ACTION.\n")) result))) (option '("no-grub") #f #f (lambda (opt name arg result) - (alist-delete 'install-grub? result))) + (alist-cons 'install-grub? #f result))) (option '("full-boot") #f #f (lambda (opt name arg result) (alist-cons 'full-boot? #t result))) @@ -487,26 +487,15 @@ Build the operating system declared in FILE according to ACTION.\n")) ;;; (define (guix-system . args) - (define (parse-options) - ;; Return the alist of option values. - (append (parse-options-from args) - (parse-options-from (environment-build-options)))) - - (define (parse-options-from args) - ;; Actual parsing takes place here. - (args-fold* args %options - (lambda (opt name arg result) - (leave (_ "~A: unrecognized option~%") name)) - (lambda (arg result) - (if (assoc-ref result 'action) - (alist-cons 'argument arg result) - (let ((action (string->symbol arg))) - (case action - ((build vm vm-image disk-image reconfigure init) - (alist-cons 'action action result)) - (else (leave (_ "~a: unknown action~%") - action)))))) - %default-options)) + (define (parse-sub-command arg result) + ;; Parse sub-command ARG and augment RESULT accordingly. + (if (assoc-ref result 'action) + (alist-cons 'argument arg result) + (let ((action (string->symbol arg))) + (case action + ((build vm vm-image disk-image reconfigure init) + (alist-cons 'action action result)) + (else (leave (_ "~a: unknown action~%") action)))))) (define (match-pair car) ;; Return a procedure that matches a pair with CAR. @@ -534,7 +523,10 @@ Build the operating system declared in FILE according to ACTION.\n")) args)) (with-error-handling - (let* ((opts (parse-options)) + (let* ((opts (parse-command-line args %options + (list %default-options) + #:argument-handler + parse-sub-command)) (args (option-arguments opts)) (file (first args)) (action (assoc-ref opts 'action)) diff --git a/guix/store.scm b/guix/store.scm index 02d84eb517..d88fb3ea54 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -890,11 +890,13 @@ taking the store as its first argument." ;; Store monad operators. ;; -(define* (text-file name text) +(define* (text-file name text + #:optional (references '())) "Return as a monadic value the absolute file name in the store of the file -containing TEXT, a string." +containing TEXT, a string. REFERENCES is a list of store items that the +resulting text file refers to; it defaults to the empty list." (lambda (store) - (values (add-text-to-store store name text '()) + (values (add-text-to-store store name text references) store))) (define* (interned-file file #:optional name diff --git a/guix/tests.scm b/guix/tests.scm index 451c1ba4bb..0896e842da 100644 --- a/guix/tests.scm +++ b/guix/tests.scm @@ -23,6 +23,7 @@ #:use-module (guix base32) #:use-module (guix serialization) #:use-module (guix hash) + #:use-module (guix build-system gnu) #:use-module (gnu packages bootstrap) #:use-module (srfi srfi-34) #:use-module (rnrs bytevectors) @@ -30,6 +31,8 @@ #:export (open-connection-for-tests random-text random-bytevector + network-reachable? + shebang-too-long? mock %substitute-directory with-derivation-narinfo @@ -76,6 +79,10 @@ (loop (1+ i))) bv)))) +(define (network-reachable?) + "Return true if we can reach the Internet." + (false-if-exception (getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV))) + (define-syntax-rule (mock (module proc replacement) body ...) "Within BODY, replace the definition of PROC from MODULE with the definition given by REPLACEMENT." @@ -179,6 +186,17 @@ CONTENTS." (delete-file (string-append dir "/example.out")) (delete-file (string-append dir "/example.nar"))))) +(define (shebang-too-long?) + "Return true if the typical shebang in the current store would exceed +Linux's static limit---the BINPRM_BUF_SIZE constant, normally 128 characters +all included." + (define shebang + (string-append "#!" (%store-prefix) "/" + (make-string 32 #\a) + "-bootstrap-binaries-0/bin/bash\0")) + + (> (string-length shebang) 128)) + (define-syntax with-derivation-substitute (syntax-rules (sha256 =>) "Evaluate BODY in a context where DRV is substitutable with the given diff --git a/guix/ui.scm b/guix/ui.scm index 382b5b1e0d..ae37c8e6ca 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2013 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2014 Alex Kost <alezost@gmail.com> +;;; Copyright © 2014 Deck Pickard <deck.r.pickard@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -66,7 +67,7 @@ string->generations string->duration args-fold* - environment-build-options + parse-command-line run-guix-command program-name guix-warning-port @@ -754,6 +755,36 @@ reporting." "Return additional build options passed as environment variables." (arguments-from-environment-variable "GUIX_BUILD_OPTIONS")) +(define %default-argument-handler + ;; The default handler for non-option command-line arguments. + (lambda (arg result) + (alist-cons 'argument arg result))) + +(define* (parse-command-line args options seeds + #:key + (argument-handler %default-argument-handler)) + "Parse the command-line arguments ARGS as well as arguments passed via the +'GUIX_BUILD_OPTIONS' environment variable according to OPTIONS (a list of +SRFI-37 options) and return the result, seeded by SEEDS. +Command-line options take precedence those passed via 'GUIX_BUILD_OPTIONS'. + +ARGUMENT-HANDLER is called for non-option arguments, like the 'operand-proc' +parameter of 'args-fold'." + (define (parse-options-from args seeds) + ;; Actual parsing takes place here. + (apply args-fold* args options + (lambda (opt name arg . rest) + (leave (_ "~A: unrecognized option~%") name)) + argument-handler + seeds)) + + (call-with-values + (lambda () + (parse-options-from (environment-build-options) seeds)) + (lambda seeds + ;; ARGS take precedence over what the environment variable specifies. + (parse-options-from args seeds)))) + (define (show-guix-usage) (format (current-error-port) (_ "Try `guix --help' for more information.~%")) diff --git a/m4/guix.m4 b/m4/guix.m4 index d4415598b0..445ce857dd 100644 --- a/m4/guix.m4 +++ b/m4/guix.m4 @@ -1,5 +1,5 @@ dnl GNU Guix --- Functional package management for GNU -dnl Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org> +dnl Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> dnl Copyright © 2014 Mark H Weaver <mhw@netris.org> dnl dnl This file is part of GNU Guix. @@ -162,3 +162,59 @@ AC_DEFUN([GUIX_CHECK_UNBUFFERED_CBIP], [ ac_cv_guix_cbips_support_setvbuf=no fi]) ]) + +dnl GUIX_TEST_ROOT_DIRECTORY +AC_DEFUN([GUIX_TEST_ROOT_DIRECTORY], [ + AC_CACHE_CHECK([for unit test root directory], + [ac_cv_guix_test_root], + [ac_cv_guix_test_root="`pwd`/test-tmp"]) +]) + +dnl 'BINPRM_BUF_SIZE' constant in Linux. The Hurd has a limit +dnl of about a page (see exec/hashexec.c.) +m4_define([LINUX_HASH_BANG_LIMIT], 128) + +dnl Hardcoded 'sun_path' length in <sys/un.h>. +m4_define([SOCKET_FILE_NAME_LIMIT], 108) + +dnl GUIX_SOCKET_FILE_NAME_LENGTH +AC_DEFUN([GUIX_SOCKET_FILE_NAME_LENGTH], [ + AC_CACHE_CHECK([the length of the installed socket file name], + [ac_cv_guix_socket_file_name_length], + [ac_cv_guix_socket_file_name_length="`echo -n "$guix_localstatedir/guix/daemon-socket/socket" | wc -c`"]) +]) + +dnl GUIX_TEST_SOCKET_FILE_NAME_LENGTH +AC_DEFUN([GUIX_TEST_SOCKET_FILE_NAME_LENGTH], [ + AC_REQUIRE([GUIX_TEST_ROOT_DIRECTORY]) + AC_CACHE_CHECK([the length of the socket file name used in tests], + [ac_cv_guix_test_socket_file_name_length], + [ac_cv_guix_test_socket_file_name_length="`echo -n "$ac_cv_guix_test_root/var/123456/daemon-socket/socket" | wc -c`"]) +]) + +dnl GUIX_HASH_BANG_LENGTH +AC_DEFUN([GUIX_HASH_BANG_LENGTH], [ + AC_CACHE_CHECK([the length of a typical hash bang line], + [ac_cv_guix_hash_bang_length], + [ac_cv_guix_hash_bang_length=`echo -n "$storedir/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-bootstrap-binaries-0/bin/bash" | wc -c`]) +]) + +dnl GUIX_CHECK_FILE_NAME_LIMITS +dnl +dnl GNU/Linux has a couple of silly limits that we can easily run into. +dnl Make sure everything is fine with the current settings. +AC_DEFUN([GUIX_CHECK_FILE_NAME_LIMITS], [ + AC_REQUIRE([GUIX_SOCKET_FILE_NAME_LENGTH]) + AC_REQUIRE([GUIX_TEST_SOCKET_FILE_NAME_LENGTH]) + AC_REQUIRE([GUIX_HASH_BANG_LENGTH]) + + if test "$ac_cv_guix_socket_file_name_length" -ge ]SOCKET_FILE_NAME_LIMIT[; then + AC_MSG_ERROR([socket file name would exceed the maxium allowed length]) + fi + if test "$ac_cv_guix_test_socket_file_name_length" -ge ]SOCKET_FILE_NAME_LIMIT[; then + AC_MSG_WARN([socket file name limit may be exceeded when running tests]) + fi + if test "$ac_cv_guix_hash_bang_length" -ge ]LINUX_HASH_BANG_LIMIT[; then + AC_MSG_ERROR([store directory '$storedir' would lead to overly long hash-bang lines]) + fi +]) diff --git a/test-env.in b/test-env.in index f66a0db555..a7f506ec19 100644 --- a/test-env.in +++ b/test-env.in @@ -1,7 +1,7 @@ #!/bin/sh # GNU Guix --- Functional package management for GNU -# Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org> +# Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> # # This file is part of GNU Guix. # @@ -52,6 +52,13 @@ then # Currently, in Nix builds, we're at ~106 chars... NIX_STATE_DIR="@GUIX_TEST_ROOT@/var/$$" + # We can't exit when we reach the limit, because perhaps the test doesn't + # actually rely on the daemon, but at least warn. + if test "`echo -n "$NIX_STATE_DIR/daemon-socket/socket" | wc -c`" -ge 108 + then + echo "warning: exceeding socket file name limit; test may fail!" >&2 + fi + # The configuration directory, for import/export signing keys. NIX_CONF_DIR="@GUIX_TEST_ROOT@/etc" if [ ! -d "$NIX_CONF_DIR" ] diff --git a/tests/builders.scm b/tests/builders.scm index e5acc3e038..a7c3e42830 100644 --- a/tests/builders.scm +++ b/tests/builders.scm @@ -56,16 +56,13 @@ (package-native-search-paths package))) (@@ (gnu packages commencement) %boot0-inputs))) -(define network-reachable? - (false-if-exception (getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV))) - (define url-fetch* (store-lower url-fetch)) (test-begin "builders") -(unless network-reachable? (test-skip 1)) +(unless (network-reachable?) (test-skip 1)) (test-assert "url-fetch" (let* ((url '("http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz" "ftp://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz")) @@ -97,7 +94,8 @@ (test-assert "gnu-build-system" (build-system? gnu-build-system)) -(unless network-reachable? (test-skip 1)) +(when (or (not (network-reachable?)) (shebang-too-long?)) + (test-skip 1)) (test-assert "gnu-build" (let* ((url "http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz") (hash (nix-base32-string->bytevector diff --git a/tests/cpan.scm b/tests/cpan.scm index af7b36e684..2f9513519e 100644 --- a/tests/cpan.scm +++ b/tests/cpan.scm @@ -28,15 +28,8 @@ "{ \"metadata\" : { \"prereqs\" : { - \"configure\" : { - \"requires\" : { - \"ExtUtils::MakeMaker\" : \"0\", - \"Module::Build\" : \"0.28\" - } - }, \"runtime\" : { \"requires\" : { - \"Getopt::Std\" : \"0\", \"Test::Script\" : \"1.05\", } } @@ -70,6 +63,8 @@ (match url ("http://api.metacpan.org/release/Foo-Bar" test-json) + ("http://api.metacpan.org/module/Test::Script" + "{ \"distribution\" : \"Test-Script\" }") ("http://example.com/Foo-Bar-0.1.tar.gz" test-source) (_ (error "Unexpected URL: " url)))))))) @@ -85,16 +80,13 @@ ('base32 (? string? hash))))) ('build-system 'perl-build-system) - ('native-inputs - ('quasiquote - (("perl-module-build" ('unquote 'perl-module-build))))) ('inputs ('quasiquote (("perl-test-script" ('unquote 'perl-test-script))))) ('home-page "http://search.cpan.org/dist/Foo-Bar") ('synopsis "Fizzle Fuzz") ('description 'fill-in-yourself!) - ('license 'gpl1+)) + ('license (package-license perl))) (string=? (bytevector->nix-base32-string (call-with-input-string test-source port-sha256)) hash)) diff --git a/tests/derivations.scm b/tests/derivations.scm index 80aabad3a8..72d253c465 100644 --- a/tests/derivations.scm +++ b/tests/derivations.scm @@ -463,7 +463,7 @@ (define %coreutils (false-if-exception - (and (getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV) + (and (network-reachable?) (or (package-derivation %store %bootstrap-coreutils&co) (nixpkgs-derivation "coreutils"))))) @@ -670,23 +670,6 @@ (let ((p (derivation->output-path drv))) (string-contains (call-with-input-file p read-line) "GNU"))))) -(test-assert "imported-files" - (let* ((files `(("x" . ,(search-path %load-path "ice-9/q.scm")) - ("a/b/c" . ,(search-path %load-path - "guix/derivations.scm")) - ("p/q" . ,(search-path %load-path "guix.scm")) - ("p/z" . ,(search-path %load-path "guix/store.scm")))) - (drv (imported-files %store files))) - (and (build-derivations %store (list drv)) - (let ((dir (derivation->output-path drv))) - (every (match-lambda - ((path . source) - (equal? (call-with-input-file (string-append dir "/" path) - get-bytevector-all) - (call-with-input-file source - get-bytevector-all)))) - files))))) - (test-assert "build-expression->derivation with modules" (let* ((builder `(begin (use-modules (guix build utils)) diff --git a/tests/gexp.scm b/tests/gexp.scm index 03722e4669..0b189b570b 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -249,6 +249,23 @@ (equal? refs (list (dirname (dirname guile)))) (equal? refs2 (list file)))))) +(test-assertm "gexp->derivation vs. grafts" + (mlet* %store-monad ((p0 -> (dummy-package "dummy" + (arguments + '(#:implicit-inputs? #f)))) + (r -> (package (inherit p0) (name "DuMMY"))) + (p1 -> (package (inherit p0) (replacement r))) + (exp0 -> (gexp (frob (ungexp p0) (ungexp output)))) + (exp1 -> (gexp (frob (ungexp p1) (ungexp output)))) + (void (set-guile-for-build %bootstrap-guile)) + (drv0 (gexp->derivation "t" exp0)) + (drv1 (gexp->derivation "t" exp1)) + (drv1* (gexp->derivation "t" exp1 #:graft? #f))) + (return (and (not (string=? (derivation->output-path drv0) + (derivation->output-path drv1))) + (string=? (derivation->output-path drv0) + (derivation->output-path drv1*)))))) + (test-assertm "gexp->derivation, composed gexps" (mlet* %store-monad ((exp0 -> (gexp (begin (mkdir (ungexp output)) @@ -360,6 +377,40 @@ (string=? (readlink (string-append out "/" two "/one")) one))))))) +(test-assertm "imported-files" + (mlet* %store-monad + ((files -> `(("x" . ,(search-path %load-path "ice-9/q.scm")) + ("a/b/c" . ,(search-path %load-path + "guix/derivations.scm")) + ("p/q" . ,(search-path %load-path "guix.scm")) + ("p/z" . ,(search-path %load-path "guix/store.scm")))) + (drv (imported-files files))) + (mbegin %store-monad + (built-derivations (list drv)) + (let ((dir (derivation->output-path drv))) + (return + (every (match-lambda + ((path . source) + (equal? (call-with-input-file (string-append dir "/" path) + get-bytevector-all) + (call-with-input-file source + get-bytevector-all)))) + files)))))) + +(test-assertm "gexp->derivation #:modules" + (mlet* %store-monad + ((build -> #~(begin + (use-modules (guix build utils)) + (mkdir-p (string-append #$output "/guile/guix/nix")) + #t)) + (drv (gexp->derivation "test-with-modules" build + #:modules '((guix build utils))))) + (mbegin %store-monad + (built-derivations (list drv)) + (let* ((p (derivation->output-path drv)) + (s (stat (string-append p "/guile/guix/nix")))) + (return (eq? (stat:type s) 'directory)))))) + (test-assertm "gexp->derivation #:references-graphs" (mlet* %store-monad ((one (text-file "one" "hello, world")) diff --git a/tests/guix-package.sh b/tests/guix-package.sh index d4917bbf90..94cf927420 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -28,6 +28,14 @@ readlink_base () basename `readlink "$1"` } +# Return true if a typical shebang in the store would not exceed Linux's +# default static limit. +shebang_not_too_long () +{ + test `echo $NIX_STORE_DIR/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-bootstrap-binaries-0/bin/bash | wc -c` \ + -lt 128 +} + module_dir="t-guix-package-$$" profile="t-profile-$$" rm -f "$profile" @@ -55,8 +63,9 @@ test -f "$profile/bin/guile" guix package --search-paths -p "$profile" test "`guix package --search-paths -p "$profile" | wc -l`" = 0 -# Check whether we have network access. -if guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null +# Check whether we have network access and an acceptable shebang length. +if guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null \ + && shebang_not_too_long then boot_make="(@@ (gnu packages commencement) gnu-make-boot0)" boot_make_drv="`guix build -e "$boot_make" | grep -v -e -debug`" diff --git a/tests/packages.scm b/tests/packages.scm index 851520b343..d6371b3b49 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -176,8 +176,7 @@ (and (direct-store-path? source) (string-suffix? "utils.scm" source)))) -(unless (false-if-exception (getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)) - (test-skip 1)) +(unless (network-reachable?) (test-skip 1)) (test-equal "package-source-derivation, snippet" "OK" (let* ((file (search-bootstrap-binary "guile-2.0.9.tar.xz" @@ -532,7 +531,7 @@ (%current-target-system "foo64-linux-gnu")) (equal? drv (bag->derivation %store bag)))))) -(unless (false-if-exception (getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)) +(when (or (not (network-reachable?)) (shebang-too-long?)) (test-skip 1)) (test-assert "GNU Make, bootstrap" ;; GNU Make is the first program built during bootstrap; we choose it diff --git a/tests/ui.scm b/tests/ui.scm index 25fc709431..1478fe213e 100644 --- a/tests/ui.scm +++ b/tests/ui.scm @@ -22,6 +22,8 @@ #:use-module (guix profiles) #:use-module (guix store) #:use-module (guix derivations) + #:use-module ((guix scripts build) + #:select (%standard-build-options)) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-19) @@ -52,9 +54,43 @@ interface, and powerful string processing.") (item "/gnu/store/...") (output "out"))) +(define-syntax-rule (with-environment-variable variable value body ...) + "Run BODY with VARIABLE set to VALUE." + (let ((orig (getenv variable))) + (dynamic-wind + (lambda () + (setenv variable value)) + (lambda () + body ...) + (lambda () + (if orig + (setenv variable orig) + (unsetenv variable)))))) + (test-begin "ui") +(test-equal "parse-command-line" + '((argument . "bar") (argument . "foo") + (cores . 10) ;takes precedence + (substitutes? . #f) (keep-failed? . #t) + (max-jobs . 77) (cores . 42)) + + (with-environment-variable "GUIX_BUILD_OPTIONS" "-c 42 -M 77" + (parse-command-line '("--keep-failed" "--no-substitutes" + "--cores=10" "foo" "bar") + %standard-build-options + (list '())))) + +(test-equal "parse-command-line and --no options" + '((argument . "foo") + (substitutes? . #f)) ;takes precedence + + (with-environment-variable "GUIX_BUILD_OPTIONS" "--no-substitutes" + (parse-command-line '("foo") + %standard-build-options + (list '((substitutes? . #t)))))) + (test-assert "fill-paragraph" (every (lambda (column) (every (lambda (width) @@ -246,3 +282,7 @@ Second line" 24)) (exit (= (test-runner-fail-count (test-runner-current)) 0)) + +;;; Local Variables: +;;; eval: (put 'with-environment-variable 'scheme-indent-function 2) +;;; End: diff --git a/tests/union.scm b/tests/union.scm index 7e55670b86..22ba67ce99 100644 --- a/tests/union.scm +++ b/tests/union.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -84,9 +84,7 @@ (call-with-input-file "bar/two" get-string-all)) (not (file-exists? "bar/one"))))))) -(test-skip (if (and %store - (false-if-exception - (getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV))) +(test-skip (if (and %store (network-reachable?)) 0 1)) |