From 043a51c0c2a025b84b0fb14c157add7236d7a526 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 2 Oct 2016 18:48:56 +0200 Subject: guix: python-build-system: Fix an outdated comment. --- guix/build/python-build-system.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm index 9109fb4ac7..e906e60699 100644 --- a/guix/build/python-build-system.scm +++ b/guix/build/python-build-system.scm @@ -137,8 +137,7 @@ installed with setuptools." #t)) (define %standard-phases - ;; 'configure' and 'build' phases are not needed. Everything is done during - ;; 'install'. + ;; 'configure' phase is not needed. (modify-phases gnu:%standard-phases (add-after 'unpack 'ensure-no-mtimes-pre-1980 ensure-no-mtimes-pre-1980) (delete 'configure) -- cgit v1.2.3 From aaf75c890b5242d3ab3671766226bc53ab07049a Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Wed, 28 Sep 2016 10:36:45 +0200 Subject: gnu: ensure pip and setuptools are installed even for Python 2. * gnu/packages/python.scm (python-2.7): Add "--with-ensurepip=install" to configure-flags. * doc/guix.texi (Python Modules): Document it. --- doc/guix.texi | 9 ++++++--- gnu/packages/python.scm | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index a3eba5811e..2691e24faf 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -13579,7 +13579,6 @@ for instance, the module python-dateutil is packaged under the names starts with @code{py} (e.g. @code{pytz}), we keep it and prefix it as described above. - @subsubsection Specifying Dependencies @cindex inputs, for Python packages @@ -13595,6 +13594,11 @@ following check list to determine which dependency goes where. @itemize +@item +We currently package Python 2 with @code{setuptools} and @code{pip} +installed like Python 3.4 has per default. Thus you don't need to +specify either of these as an input. + @item Python dependencies required at run time go into @code{propagated-inputs}. They are typically defined with the @@ -13609,8 +13613,7 @@ testing---e.g., those in @code{tests_require}---go into propagated because they are not needed at run time, and (2) in a cross-compilation context, it's the ``native'' input that we'd want. -Examples are @code{setuptools}, which is usually needed only at build -time, or the @code{pytest}, @code{mock}, and @code{nose} test +Examples are the @code{pytest}, @code{mock}, and @code{nose} test frameworks. Of course if any of these packages is also required at run-time, it needs to go to @code{propagated-inputs}. diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 18e485ab2e..b6aeb8c032 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -162,6 +162,7 @@ #:configure-flags (list "--enable-shared" ;allow embedding "--with-system-ffi" ;build ctypes + "--with-ensurepip=install" ;install pip and setuptools (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")) -- cgit v1.2.3 From 7db40bce58e149ecb541d295e01cfbfe953d39a3 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Wed, 28 Sep 2016 10:42:35 +0200 Subject: guix: build all Python packages with --single-version-externally-managed. This requires setuptools to be installed together with python, which is the case for Python 3 anyway and which we do for our build of Python 2 (see last commit). * guix/build/python-build-system.scm (install): Add "--single-version-externally-managed" and "--root=/" to params to be passed to call-setuppy. Remove thus needless manipulation of PYTHONPATH. Remove now unused argument "inputs". --- guix/build/python-build-system.scm | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm index e906e60699..2424fed310 100644 --- a/guix/build/python-build-system.scm +++ b/guix/build/python-build-system.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2015 Mark H Weaver +;;; Copyright © 2016 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -60,25 +61,15 @@ (major+minor (take components 2))) (string-join major+minor "."))) -(define* (install #:key outputs inputs (configure-flags '()) +(define* (install #:key outputs (configure-flags '()) #:allow-other-keys) "Install a given Python package." (let* ((out (assoc-ref outputs "out")) - (params (append (list (string-append "--prefix=" out)) - configure-flags)) - (python-version (get-python-version (assoc-ref inputs "python"))) - (old-path (getenv "PYTHONPATH")) - (add-path (string-append out "/lib/python" python-version - "/site-packages/"))) - ;; create the module installation directory and add it to PYTHONPATH - ;; to make setuptools happy - (mkdir-p add-path) - (setenv "PYTHONPATH" - (string-append (if old-path - (string-append old-path ":") - "") - add-path)) - (call-setuppy "install" params))) + (params (append (list (string-append "--prefix=" out) + "--single-version-externally-managed" + "--root=/") + configure-flags))) + (call-setuppy "install" params))) (define* (wrap #:key inputs outputs #:allow-other-keys) (define (list-of-files dir) -- cgit v1.2.3 From 46bcdcc287ecfc1db8b7a0429e72517f407b580d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 29 Sep 2016 18:41:35 +0100 Subject: guix: python-build-system: Import setuptools before calling `setup.py'. This is needed for packages using "distutils" instead of "setuptools" since the former does not understand the "--single-version-externally-managed" flag. Also export __file__ since it will be unset when setup.py is called from python "exec". * guix/build/python-build-system.scm (call-setuppy): extend "python setup.py" call to import setuptools, export __file__, and call setup.py from setuptools python environment. Co-Authored-By: Hartmut Goebel --- guix/build/python-build-system.scm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm index 2424fed310..6086df3e82 100644 --- a/guix/build/python-build-system.scm +++ b/guix/build/python-build-system.scm @@ -36,13 +36,25 @@ ;; ;; Code: +(define setuptools-shim + ;; Run setup.py with "setuptools" being imported, which will patch + ;; "distutils". This is needed for packages using "distutils" instead of + ;; "setuptools" since the former does not understand the + ;; "--single-version-externally-managed" flag. + ;; Python code taken from pip 9.0.1 pip/utils/setuptools_build.py + (string-append + "import setuptools, tokenize;__file__='setup.py';" + "f=getattr(tokenize, 'open', open)(__file__);" + "code=f.read().replace('\\r\\n', '\\n');" + "f.close();" + "exec(compile(code, __file__, 'exec'))")) (define (call-setuppy command params) (if (file-exists? "setup.py") (begin (format #t "running \"python setup.py\" with command ~s and parameters ~s~%" command params) - (zero? (apply system* "python" "setup.py" command params))) + (zero? (apply system* "python" "-c" setuptools-shim command params))) (error "no setup.py found"))) (define* (build #:rest empty) -- cgit v1.2.3 From 5f7565d190cf380b7bae2ce12dba38aff98c4eb9 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 2 Oct 2016 14:03:32 +0200 Subject: guix: python-build-system: Add option "#:use-setuptools?" (default true). * guix/build-system/python.scm (python-build): New keyword argument "#:use-setuptools?", defaulting to #t. * guix/build/python-build-system.scm (call-setup-py): New positional parameter "use-setuptools?". If false, do not use the shim-wrapper for addin setuptools. (build, check): accept keyword- parameter, and pass to call-setuppy. (install): same; if "use-setuptools?" is false, do not use options "--root" and "--single-version-externally-managed" for setup.py. * doc/guix.texi (Build Systems): Document it. --- doc/guix.texi | 5 +++++ guix/build-system/python.scm | 2 ++ guix/build/python-build-system.scm | 28 +++++++++++++++++----------- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 2691e24faf..5f2807654b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3137,6 +3137,11 @@ the @code{#:python} parameter. This is a useful way to force a package to be built for a specific version of the Python interpreter, which might be necessary if the package is only compatible with a single interpreter version. + +By default guix calls @code{setup.py} under control of +@code{setuptools}, much like @command{pip} does. Some packages are not +compatible with setuptools (and pip), thus you can disable this by +setting the @code{#:use-setuptools} parameter to @code{#f}. @end defvr @defvr {Scheme Variable} perl-build-system diff --git a/guix/build-system/python.scm b/guix/build-system/python.scm index adeceb4a89..d4d3d28f2a 100644 --- a/guix/build-system/python.scm +++ b/guix/build-system/python.scm @@ -177,6 +177,7 @@ pre-defined variants." #:key (tests? #t) (test-target "test") + (use-setuptools? #t) (configure-flags ''()) (phases '(@ (guix build python-build-system) %standard-phases)) @@ -204,6 +205,7 @@ provides a 'setup.py' file as its build system." #:system ,system #:test-target ,test-target #:tests? ,tests? + #:use-setuptools? ,use-setuptools? #:phases ,phases #:outputs %outputs #:search-paths ',(map search-path-specification->sexp diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm index 6086df3e82..7ccc9386cf 100644 --- a/guix/build/python-build-system.scm +++ b/guix/build/python-build-system.scm @@ -49,22 +49,25 @@ "f.close();" "exec(compile(code, __file__, 'exec'))")) -(define (call-setuppy command params) +(define (call-setuppy command params use-setuptools?) (if (file-exists? "setup.py") (begin (format #t "running \"python setup.py\" with command ~s and parameters ~s~%" command params) - (zero? (apply system* "python" "-c" setuptools-shim command params))) + (if use-setuptools? + (zero? (apply system* "python" "-c" setuptools-shim + command params)) + (zero? (apply system* "python" "./setup.py" command params)))) (error "no setup.py found"))) -(define* (build #:rest empty) +(define* (build #:key use-setuptools? #:allow-other-keys) "Build a given Python package." - (call-setuppy "build" '())) + (call-setuppy "build" '() use-setuptools?)) -(define* (check #:key tests? test-target #:allow-other-keys) +(define* (check #:key tests? test-target use-setuptools? #:allow-other-keys) "Run the test suite of a given Python package." (if tests? - (call-setuppy test-target '()) + (call-setuppy test-target '() use-setuptools?) #t)) (define (get-python-version python) @@ -73,15 +76,18 @@ (major+minor (take components 2))) (string-join major+minor "."))) -(define* (install #:key outputs (configure-flags '()) +(define* (install #:key outputs (configure-flags '()) use-setuptools? #:allow-other-keys) "Install a given Python package." (let* ((out (assoc-ref outputs "out")) - (params (append (list (string-append "--prefix=" out) - "--single-version-externally-managed" - "--root=/") + (params (append (list (string-append "--prefix=" out)) + (if use-setuptools? + ;; distutils does not accept these flags + (list "--single-version-externally-managed" + "--root=/") + '()) configure-flags))) - (call-setuppy "install" params))) + (call-setuppy "install" params use-setuptools?))) (define* (wrap #:key inputs outputs #:allow-other-keys) (define (list-of-files dir) -- cgit v1.2.3 From a2ff4f0240f0fac484836bb8ffb2f86917369666 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sat, 8 Oct 2016 12:04:20 +0200 Subject: guix: python-build-system: Add helpers for getting and setting PYTHONPATH. * guix/build/python-build-system.scm (add-installed-pythonpath, site-packages): New exported procedures. --- guix/build/python-build-system.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm index 7ccc9386cf..22c4f7d38a 100644 --- a/guix/build/python-build-system.scm +++ b/guix/build/python-build-system.scm @@ -28,6 +28,8 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:export (%standard-phases + add-installed-pythonpath + site-packages python-build)) ;; Commentary: @@ -76,6 +78,24 @@ (major+minor (take components 2))) (string-join major+minor "."))) +(define (site-packages inputs outputs) + "Return the path of the current output's Python site-package." + (let* ((out (assoc-ref outputs "out")) + (python (assoc-ref inputs "python"))) + (string-append out "/lib/python" + (get-python-version python) + "/site-packages/"))) + +(define (add-installed-pythonpath inputs outputs) + "Prepend the Python site-package of OUTPUT to PYTHONPATH. This is useful +when running checks after installing the package." + (let ((old-path (getenv "PYTHONPATH")) + (add-path (site-packages inputs outputs))) + (setenv "PYTHONPATH" + (string-append add-path + (if old-path (string-append ":" old-path) ""))) + #t)) + (define* (install #:key outputs (configure-flags '()) use-setuptools? #:allow-other-keys) "Install a given Python package." -- cgit v1.2.3 From b002f964bb3d69c77856ea7dcadfe82383050512 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Fri, 7 Oct 2016 17:17:00 +0200 Subject: guix: python-build-system: Delete .egg-info file created in phase check. * guix/build/python-build-system.scm (check): Delete .egg-info dirs which did not exist prior to calling setup.py but afterwards. --- guix/build/python-build-system.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm index 22c4f7d38a..310ba8aa2e 100644 --- a/guix/build/python-build-system.scm +++ b/guix/build/python-build-system.scm @@ -69,7 +69,15 @@ (define* (check #:key tests? test-target use-setuptools? #:allow-other-keys) "Run the test suite of a given Python package." (if tests? - (call-setuppy test-target '() use-setuptools?) + ;; Running `setup.py test` creates an additional .egg-info directory in + ;; build/lib in some cases, e.g. if the source is in a sub-directory + ;; (given with `package_dir`). This will by copied to the output, too, + ;; so we need to remove. + (let ((before (find-files "build" "\\.egg-info$" #:directories? #t))) + (call-setuppy test-target '() use-setuptools?) + (let* ((after (find-files "build" "\\.egg-info$" #:directories? #t)) + (inter (lset-difference eqv? after before))) + (for-each delete-file-recursively inter))) #t)) (define (get-python-version python) -- cgit v1.2.3 From c1019287a4aab55ebffab4710b9a85b6c9f1b7ed Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Tue, 15 Nov 2016 16:57:21 +0100 Subject: guix: python-build-system: Add background about Python installation methods. --- guix/build/python-build-system.scm | 68 +++++++++++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm index 310ba8aa2e..3f280b0ac0 100644 --- a/guix/build/python-build-system.scm +++ b/guix/build/python-build-system.scm @@ -36,7 +36,70 @@ ;; ;; Builder-side code of the standard Python package build procedure. ;; -;; Code: +;; +;; Backgound about the Python installation methods +;; +;; In Python there are different ways to install packages: distutils, +;; setuptools, easy_install and pip. All of these are sharing the file +;; setup.py, introduced with distutils in Python 2.0. The setup.py file can be +;; considered as a kind of Makefile accepting targets (or commands) like +;; "build" and "install". As of autumn 2016 the recommended way to install +;; Python packages is using pip. +;; +;; For both distutils and setuptools, running "python setup.py install" is the +;; way to install Python packages. With distutils the "install" command +;; basically copies all packages into /lib/pythonX.Y/site-packages. +;; +;; Some time later "setuptools" was established to enhance distutils. To use +;; setuptools, the developer imports setuptools in setup.py. When importing +;; setuptools, the original "install" command gets overwritten by setuptools' +;; "install" command. +;; +;; The command-line tools easy_install and pip are both capable of finding and +;; downloading the package source from PyPI (the Python Package Index). Both +;; of them import setuptools and execute the "setup.py" file under their +;; control. Thus the "setup.py" behaves as if the developer had imported +;; setuptools within setup.py - even is still using only distutils. +;; +;; Setuptools' "install" command (to be more precise: the "easy_install" +;; command which is called by "install") will put the path of the currently +;; installed version of each package and it's dependencies (as declared in +;; setup.py) into an "easy-install.pth" file. In Guix each packages gets its +;; own "site-packages" directory and thus an "easy-install.pth" of its own. +;; To avoid conflicts, the python build system renames the file to +;; .pth in the phase rename-pth-file. To ensure that Python will +;; process the .pth file, easy_install also creates a basic "site.py" in each +;; "site-packages" directory. The file is the same for all packages, thus +;; there is no need to rename it. For more information about .pth files and +;; the site module, please refere to +;; https://docs.python.org/3/library/site.html. +;; +;; The .pth files contain the file-system paths (pointing to the store) of all +;; dependencies. So the dependency is hidden in the .pth file but is not +;; visible in the file-system. Now if packages A and B both required packages +;; P, but in different versions, Guix will not detect this when installing +;; both A and B to a profile. (For details and example see +;; https://lists.gnu.org/archive/html/guix-devel/2016-10/msg01233.html.) +;; +;; Pip behaves a bit different then easy_install: it always executes +;; "setup.py" with the option "--single-version-externally-managed" set. This +;; makes setuptools' "install" command run the original "install" command +;; instead of the "easy_install" command, so no .pth file (and no site.py) +;; will be created. The "site-packages" directory only contains the package +;; and the related .egg-info directory. +;; +;; This is exactly what we need for Guix and this is what we mimic in the +;; install phase below. +;; +;; As a draw back, the magic of the .pth file of linking to the other required +;; packages is gone and these packages have now to be declared as +;; "propagated-inputs". +;; +;; Note: Importing setuptools also adds two sub-commands: "install_egg_info" +;; and "install_scripts". These sub-commands are executed even if +;; "--single-version-externally-managed" is set, thus the .egg-info directory +;; and the scripts defined in entry-points will always be created. + (define setuptools-shim ;; Run setup.py with "setuptools" being imported, which will patch @@ -149,6 +212,9 @@ when running checks after installing the package." (define* (rename-pth-file #:key name inputs outputs #:allow-other-keys) "Rename easy-install.pth to NAME.pth to avoid conflicts between packages installed with setuptools." + ;; Even if the "easy-install.pth" is not longer created, we kept this phase. + ;; There still may be packages creating an "easy-install.pth" manually for + ;; some good reason. (let* ((out (assoc-ref outputs "out")) (python (assoc-ref inputs "python")) (site-packages (string-append out "/lib/python" -- cgit v1.2.3 From 15e57f576291d9233ab25e1614c6218579db170a Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Tue, 18 Oct 2016 00:11:05 +0200 Subject: gnu: python-2.7: Add all guix prefixes in PYTHONPATH to site-prefixes. * gnu/packages/patches/python-2.7-site-prefixes.patch: New file. * gnu/packages/python.scm (python-2)[source]: Use it. * gnu/local.mk (dist_patch_DATA): Add patch. --- gnu/local.mk | 1 + .../patches/python-2.7-site-prefixes.patch | 26 ++++++++++++++++++++++ gnu/packages/python.scm | 1 + 3 files changed, 28 insertions(+) create mode 100644 gnu/packages/patches/python-2.7-site-prefixes.patch diff --git a/gnu/local.mk b/gnu/local.mk index 08f99c4836..5142f51e1b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -803,6 +803,7 @@ dist_patch_DATA = \ %D%/packages/patches/pyqt-configure.patch \ %D%/packages/patches/python-2-deterministic-build-info.patch \ %D%/packages/patches/python-2.7-search-paths.patch \ + %D%/packages/patches/python-2.7-site-prefixes.patch \ %D%/packages/patches/python-2.7-source-date-epoch.patch \ %D%/packages/patches/python-3-deterministic-build-info.patch \ %D%/packages/patches/python-3-search-paths.patch \ diff --git a/gnu/packages/patches/python-2.7-site-prefixes.patch b/gnu/packages/patches/python-2.7-site-prefixes.patch new file mode 100644 index 0000000000..9e3066508f --- /dev/null +++ b/gnu/packages/patches/python-2.7-site-prefixes.patch @@ -0,0 +1,26 @@ +Add all /gnu/store/ prefixes found in PYTHONPATH to the prefixes where +site-packages (and .pth files) are searched. + +*** Python-2.7.11/Lib/site.py.orig 2016-10-17 23:27:23.746149690 +0200 +--- Python-2.7.11/Lib/site.py 2016-10-17 23:44:51.930871644 +0200 +*************** +*** 65,70 **** +--- 65,82 ---- + + # Prefixes for site-packages; add additional prefixes like /usr/local here + PREFIXES = [sys.prefix, sys.exec_prefix] ++ # Guix: Add all /gnu/store-paths in PYTHONPATH--these are all ++ # "prefixes". This is required to search .pth files in all python ++ # packages contained in /gnu/store which is required to make ++ # .pth-defined namespace packages work. ++ # This is necessary if the packages are not merged into a single ++ # `site-packages` directory (like when using `guix environment`) but ++ # listed in PYTHONPATH (like when running `guix build`). ++ for p in sys.path: ++ if p.startswith('/gnu/store/'): ++ PREFIXES.append(p[:p.find('/', 44)]) # find first pathsep after hash ++ del p ++ + # Enable per user site-packages directory + # set it to False to disable the feature or True to force the feature + ENABLE_USER_SITE = None diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index b6aeb8c032..ca40fe8c29 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -122,6 +122,7 @@ "0y7rl603vmwlxm6ilkhc51rx2mfj14ckcz40xxgs0ljnvlhp30yp")) (patches (search-patches "python-2.7-search-paths.patch" "python-2-deterministic-build-info.patch" + "python-2.7-site-prefixes.patch" "python-2.7-source-date-epoch.patch")) (modules '((guix build utils))) ;; suboptimal to delete failing tests here, but if we delete them in the -- cgit v1.2.3 From 891a843d5184f696618af6fcbb9791ef6b574504 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Wed, 28 Sep 2016 11:36:35 +0200 Subject: guix: Add lint-checker for packages which should be no inputs at all. Also refactor some common code into a new function. Examples for these pacakges are python(2)-setuptools and python(2)-pip, which are installed together with python itself. * guix/scripts/lint.scm (warn-if-package-has-input): New procedure. (check-inputs-should-be-native package): Use it; rename and clean-up variables. (check-inputs-should-not-be-an-input-at-all): New procedure. (%checkers) Add it. * doc/guix.texi (Python Modules): Document it. * tests/lint.scm: ("inputs: python-setuptools should not be an input at all (input)", "inputs: python-setuptools should not be an input at all (native-input)" "inputs: python-setuptools should not be an input at all (propagated-input)"): Add tests. --- doc/guix.texi | 3 ++- guix/scripts/lint.scm | 63 ++++++++++++++++++++++++++++++++++++--------------- tests/lint.scm | 34 +++++++++++++++++++++++++++ 3 files changed, 81 insertions(+), 19 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 5f2807654b..40a1a8760c 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -13602,7 +13602,8 @@ following check list to determine which dependency goes where. @item We currently package Python 2 with @code{setuptools} and @code{pip} installed like Python 3.4 has per default. Thus you don't need to -specify either of these as an input. +specify either of these as an input. @command{guix lint} will warn you +if you do. @item Python dependencies required at run time go into diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index 6e6f550941..e68ee29e07 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2015, 2016 Mathieu Lirzin ;;; Copyright © 2016 Danny Milosavljevic +;;; Copyright © 2016 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -59,6 +60,7 @@ #:export (guix-lint check-description-style check-inputs-should-be-native + check-inputs-should-not-be-an-input-at-all check-patch-file-names check-synopsis-style check-derivation @@ -228,34 +230,55 @@ by two spaces; possible infraction~p at ~{~a~^, ~}") (format #f (_ "invalid description: ~s") description) 'description)))) +(define (warn-if-package-has-input linted inputs-to-check input-names message) + ;; Emit a warning MESSAGE if some of the inputs named in INPUT-NAMES are + ;; contained in INPUTS-TO-CHECK, which are assumed to be inputs of package + ;; LINTED. + (match inputs-to-check + (((labels packages . outputs) ...) + (for-each (lambda (package output) + (when (package? package) + (let ((input (string-append + (package-name package) + (if (> (length output) 0) + (string-append ":" (car output)) + "")))) + (when (member input input-names) + (emit-warning linted + (format #f (_ message) input) + 'inputs-to-check))))) + packages outputs)))) + (define (check-inputs-should-be-native package) ;; Emit a warning if some inputs of PACKAGE are likely to belong to its ;; native inputs. - (let ((linted package) + (let ((message "'~a' should probably be a native input") (inputs (package-inputs package)) - (native-inputs + (input-names '("pkg-config" "extra-cmake-modules" "glib:bin" "intltool" "itstool" "qttools"))) - (match inputs - (((labels packages . outputs) ...) - (for-each (lambda (package output) - (when (package? package) - (let ((input (string-append - (package-name package) - (if (> (length output) 0) - (string-append ":" (car output)) - "")))) - (when (member input native-inputs) - (emit-warning linted - (format #f (_ "'~a' should probably \ -be a native input") - input) - 'inputs))))) - packages outputs))))) + (warn-if-package-has-input package inputs input-names message))) + +(define (check-inputs-should-not-be-an-input-at-all package) + ;; Emit a warning if some inputs of PACKAGE are likely to should not be + ;; an input at all. + (let ((message "'~a' should probably not be an input at all") + (inputs (package-inputs package)) + (input-names + '("python-setuptools" + "python2-setuptools" + "python-pip" + "python2-pip"))) + (warn-if-package-has-input package (package-inputs package) + input-names message) + (warn-if-package-has-input package (package-native-inputs package) + input-names message) + (warn-if-package-has-input package (package-propagated-inputs package) + input-names message))) (define (package-name-regexp package) "Return a regexp that matches PACKAGE's name as a word at the beginning of a @@ -844,6 +867,10 @@ them for PACKAGE." (name 'inputs-should-be-native) (description "Identify inputs that should be native inputs") (check check-inputs-should-be-native)) + (lint-checker + (name 'inputs-should-not-be-input) + (description "Identify inputs that should be inputs at all") + (check check-inputs-should-not-be-an-input-at-all)) (lint-checker (name 'patch-file-names) (description "Validate file names and availability of patches") diff --git a/tests/lint.scm b/tests/lint.scm index fa2d19b2a6..b66cd29312 100644 --- a/tests/lint.scm +++ b/tests/lint.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014, 2015, 2016 Eric Bavier ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2015, 2016 Mathieu Lirzin +;;; Copyright © 2016 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,6 +34,7 @@ #:use-module (gnu packages) #:use-module (gnu packages glib) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (web server) #:use-module (web server http) #:use-module (web response) @@ -354,6 +356,38 @@ string) on HTTP requests." (check-inputs-should-be-native pkg))) "'glib:bin' should probably be a native input"))) +(test-assert + "inputs: python-setuptools should not be an input at all (input)" + (->bool + (string-contains + (with-warnings + (let ((pkg (dummy-package "x" + (inputs `(("python-setuptools" ,python-setuptools)))))) + (check-inputs-should-not-be-an-input-at-all pkg))) + "'python-setuptools' should probably not be an input at all"))) + +(test-assert + "inputs: python-setuptools should not be an input at all (native-input)" + (->bool + (string-contains + (with-warnings + (let ((pkg (dummy-package "x" + (native-inputs + `(("python-setuptools" ,python-setuptools)))))) + (check-inputs-should-not-be-an-input-at-all pkg))) + "'python-setuptools' should probably not be an input at all"))) + +(test-assert + "inputs: python-setuptools should not be an input at all (propagated-input)" + (->bool + (string-contains + (with-warnings + (let ((pkg (dummy-package "x" + (propagated-inputs + `(("python-setuptools" ,python-setuptools)))))) + (check-inputs-should-not-be-an-input-at-all pkg))) + "'python-setuptools' should probably not be an input at all"))) + (test-assert "patches: file names" (->bool (string-contains -- cgit v1.2.3 From e442246a2f5f73b2484adb340b53d3a0018636b1 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 6 Oct 2016 16:52:31 +0200 Subject: lint: more packages to probably be a native input. * guix/scripts/lint.scm (check-inputs-should-be-native package): Add python packages which are typically used for testing or for building the documentation. --- guix/scripts/lint.scm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index e68ee29e07..be29e36ce1 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -260,7 +260,17 @@ by two spaces; possible infraction~p at ~{~a~^, ~}") "glib:bin" "intltool" "itstool" - "qttools"))) + "qttools" + "python-coverage" "python2-coverage" + "python-cython" "python2-cython" + "python-docutils" "python2-docutils" + "python-mock" "python2-mock" + "python-nose" "python2-nose" + "python-pbr" "python2-pbr" + "python-pytest" "python2-pytest" + "python-pytest-cov" "python2-pytest-cov" + "python-setuptools-scm" "python2-setuptools-scm" + "python-sphinx" "python2-sphinx"))) (warn-if-package-has-input package inputs input-names message))) (define (check-inputs-should-not-be-an-input-at-all package) -- cgit v1.2.3 From f54d6bacbf46f5f25d3f7a5bea578879ee865be1 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Wed, 28 Sep 2016 13:07:24 +0200 Subject: gnu: Remove python-setuptools and python2-setuptools from inputs (part 1a) This patch contains the changes in python.scm where removing setuptools from the inputs could be achieved by removing complete lines. * gnu/packages/python.scm (python-psutil, python2-psutil, python-py-bcrypt, python2-py-bcrypt, python-paramiko, python2-paramiko, python-httplib2, python2-httplib2, python-ecdsa, python2-ecdsa, python-ccm, python2-ccm, python2-backport-ssl-match-hostname, python-pycrypto, python2-pycrypto, python-six, python2-six, python-dateutil, python2-dateutil, python2-mechanize, python-extras, python2-extras, python-mimeparse, python2-mimeparse, python-nose, python2-nose, python-nose2, python2-nose2, python-unittest2, python2-unittest2, python-py, python2-py, python-testresources, python2-testresources, python-fixtures-0.3.16, python-fixtures, python2-fixtures, python-coverage, python2-coverage, python-discover, python2-discover, python-exif-read, python2-exif-read, python-pyld, python2-pyld, python-certifi, python2-certifi, python-click, python2-click, python-vcversioner, python2-vcversioner, python-unidecode, python2-unidecode, python-pyyaml, python2-pyyaml, python-markupsafe, python2-markupsafe, python-pystache, python2-pystache, python-docutils, python2-docutils, python-pygments, python2-pygments, python-sphinx-rtd-theme, python2-sphinx-rtd-theme, python-blinker, python2-blinker, python-rq, python2-rq, python-numpy, python2-numpy, python-distutils-extra, python2-distutils-extra, python2-elib.intl, python-pillow, python2-pillow, python-xcffib, python2-xcffib, python-decorator, python2-decorator, python-gridmap, python2-gridmap, python-pickleshare, python2-pickleshare, python-isodate, python2-isodate, python-html5lib, python2-html5lib, python2-cssutils, python-cssselect, python2-cssselect, python-netifaces, python2-netifaces, python-sympy, python2-sympy, python-testlib, python2-testlib, python2-xlib, python-singledispatch, python2-singledispatch, python-backports-abc, python2-backports-abc, python-pep8, python2-pep8, python-pyflakes, python2-pyflakes, python-fonttools, python2-fonttools, python-ly, python-appdirs, python2-appdirs, python-netaddr, python2-netaddr, python-wrapt, python2-wrapt, python-iso8601, python2-iso8601, python-monotonic, python2-monotonic, python-prettytable, python2-prettytable, python-pyasn1-modules, python2-pyasn1-modules, python-idna, python2-idna, python-pretend, python2-pretend, python-cryptography-vectors, python2-cryptography-vectors, python-cryptography, python2-cryptography, python-pyopenssl, python2-pyopenssl, python-debian, python2-debian, python-chardet, python2-chardet, python-zope-event, python2-zope-event, python-zope-i18nmessageid, python2-zope-i18nmessageid, python-websocket-client, python2-websocket-client, python-args, python2-args, python-astor, python2-astor, python2-functools32, python2-futures, python2-promise, python-colorama, python2-colorama, python-pluggy, python2-pluggy, python-jmespath, python2-jmespath, python-botocore, python2-botocore, awscli, python-pytest-subtesthack, python2-pytest-subtesthack, python-pastedeploy, python2-pastedeploy, python-magic, python2-magic, python2-s3cmd, python2-bz2file, python-cysignals, python2-cysignals, python-py3status, python-tblib, python2-tblib, python-greenlet, python2-greenlet, python-twisted, python2-twisted, python-kazoo, python2-kazoo, python-pykafka, python2-pykafka, python2-jsonrpclib, python-chai, python2-chai, python-inflection, python2-inflection, python-pylev, python2-pylev, python-lazy-object-proxy, python2-lazy-object-proxy, python-dnspython, python2-dnspython, python-email-validator, python2-email-validator, python-ukpostcodeparser, python2-ukpostcodeparser, python-pyaml, python2-pyaml, python-flexmock, python2-flexmock, python-orator, python2-orator, python-bleach, python2-bleach, python-ipywidgets, python2-ipywidgets, python-nbconvert, python2-nbconvert, python-nbformat, python2-nbformat, python-axolotl-curve25519, python-axolotl2-curve25519, python-axolotl, python2-axolotl, python-nautilus, python-s3transfer): Remove python-setuptools and python2-setuptools from [inputs], [native-inputs] or [propagated-inputs]. Remove [inputs], [native-inputs] and [propagated-inputs] where python-setuptools or python2-setuptools were the sole entry. --- gnu/packages/python.scm | 231 +----------------------------------------------- 1 file changed, 2 insertions(+), 229 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index ca40fe8c29..4afe3f4c12 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -435,8 +435,6 @@ instead of @command{python3}."))) (base32 "1w4r09fvn6kd80m5mx4ws1wz100brkaq6hzzpwrns8cgjzjpl6c6")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://www.github.com/giampaolo/psutil") (synopsis "Library for retrieving information on running processes") (description @@ -505,8 +503,6 @@ to providing full-strength password hashing for multi-user application.") (base32 "0y6smdggwi5s72v6p1nn53dg6w05hna3d264cq6kas0lap73p8az")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://code.google.com/p/py-bcrypt") (synopsis "Bcrypt password hashing and key derivation") @@ -540,8 +536,6 @@ John the Ripper).") (base32 "14k8z7ndc3zk5xivnm4d8lncchx475ll5izpf8vmfbq7rp9yp5rj")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (propagated-inputs `(("python-pycrypto" ,python-pycrypto))) (inputs @@ -570,8 +564,6 @@ Python interface around SSH networking concepts.") (base32 "126rsryvw9vhbf3qmsfw9lf4l4xm2srmgs439lgma4cpag4s3ay3")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/jcgregorio/httplib2") (synopsis "Comprehensive HTTP client library") (description @@ -597,8 +589,6 @@ other HTTP libraries.") (base32 "1yj31j0asmrx4an9xvsaj2icdmzy6pw0glfpqrrkrphwdpi1xkv4")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (inputs `(("openssl" ,openssl))) (home-page @@ -628,8 +618,6 @@ making them easy to handle and incorporate into other protocols.") (base32 "177dfxsmk3k4cih6fh6v8d91bh4nqx7ns6pc07w7m7i3cvdx3c8n")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (inputs `(("python-pyyaml" ,python-pyyaml) ("python-six" ,python-six))) @@ -714,8 +702,6 @@ etc. ") (arguments `(#:python ,python-2 #:tests? #f)) ; no test target - (inputs - `(("python2-setuptools" ,python2-setuptools))) (home-page "https://bitbucket.org/brandon/backports.ssl_match_hostname") (synopsis "Backport of ssl.match_hostname() function from Python 3.5") (description @@ -880,8 +866,6 @@ Python 3 support.") (base32 "0g0ayql5b9mkjam8hym6zyg6bv77lbh66rv1fyvgqb17kfc1xkpj")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (inputs `(("python" ,python) ("gmp" ,gmp))) @@ -957,8 +941,6 @@ password storage.") (base32 "0snmb8xffb3vsma0z67i0h0w2g2dy0p3gsgh9gi4i0kgc5l8spqh")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://pypi.python.org/pypi/six/") (synopsis "Python 2 and 3 compatibility utilities") (description @@ -1014,8 +996,6 @@ datetime module, available in Python 2.3+.") (base32 "0fqfglhy5khbvsipr3x7m6bcaqljh8xl5cw33vbfxy7qhmywm2n0")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://dateutil.readthedocs.io/en/stable/") (synopsis "Extensions to the standard datetime module") (description @@ -1156,8 +1136,6 @@ Database API 2.0T.") (base32 "0rj7r166i1dyrq0ihm5rijfmvhs8a04im28lv05c0c3v206v4rrf")))) (build-system python-build-system) - (inputs - `(("python2-setuptools" ,python2-setuptools))) (arguments `(#:python ,python-2 ; apparently incompatible with Python 3 #:tests? #f)) @@ -1469,8 +1447,6 @@ software.") (base32 "1h7zx4dfyclalg0fqnfjijpn0f793a9mx8sy3b27gd31nr6dhq3s")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (arguments ;; error in setup.cfg: command 'test' has no such option 'buffer' '(#:tests? #f)) @@ -1497,8 +1473,6 @@ software.") (base32 "1hyxg09kaj02ri0rmwjqi86wk4nd1akvv7n0dx77azz76wga4s9w")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (arguments '(#:tests? #f)) ; no setup.py test command (home-page @@ -1524,8 +1498,6 @@ matching them against a list of media-ranges.") (base32 "164a43k7k2wsqqk1s6vavcdamvss4mz0vd6pwzv2h9n8rgwzxgzi")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (arguments '(#:tests? #f)) ; FIXME: test suite fails (home-page "http://readthedocs.org/docs/nose/") @@ -1550,8 +1522,6 @@ matching them against a list of media-ranges.") "1x4zjq1zlyrh8b9ba0cmafd3w94pxhid408kibyjd3s6h1lap6s7")))) (build-system python-build-system) (arguments `(#:tests? #f)) ; 'module' object has no attribute 'collector' - (native-inputs - `(("python-setuptools" ,python-setuptools))) (inputs `(("python-cov-core" ,python-cov-core) ("python-pytest-cov" ,python-pytest-cov) @@ -1582,8 +1552,6 @@ interfaces and processes.") (base32 "00yl6lskygcrddx5zspkhr0ibgvpknl4678kkm6s626539grq93q")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://pypi.python.org/pypi/unittest2") (synopsis "Python unit testing library") (description @@ -1604,8 +1572,6 @@ standard library.") (sha256 (base32 "0wbs4i4x3x7klr3v35ss6p9mcqz883i1xgcpkhvl7n2lyv6yhpda")))) - (inputs - `(("python2-setuptools" ,python2-setuptools))) (arguments `(#:python ,python-2 #:tests? #f)))) ; no setup.py test command @@ -1644,8 +1610,6 @@ standard library.") (base32 "0561gz2w3i825gyl42mcq14y3dcgkapfiv5zv9a2bz15qxiijl56")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://pylib.readthedocs.org/") (synopsis "Python library for parsing, I/O, instrospection, and logging") (description @@ -1979,8 +1943,6 @@ style tests.") (base32 "0cbj3plbllyz42c4b5xxgwaa7mml54lakslrn4kkhinxhdri22md")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://launchpad.net/testresources") (synopsis "Pyunit extension for managing test resources") @@ -2042,8 +2004,6 @@ protocol.") (base32 "0x9r2gwilcig5g54k60bxzg96zabizq1855lrprlb4zckalp9asc")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (arguments '(#:tests? #f)) ; no setup.py test command (home-page "https://launchpad.net/python-fixtures") @@ -2145,7 +2105,6 @@ and sensible default behaviors into your setuptools run.") ("python-pbr-0.11" ,python-pbr-0.11))) (inputs `(("python-pip" ,python-pip) - ("python-setuptools" ,python-setuptools) ;; Tests ("python-testtools" ,python-testtools))) (arguments @@ -2203,8 +2162,6 @@ have failed since the last commit or what tests are currently failing.") (base32 "01rbr4br4lsk0lwn8fb96zwd2xr4f0mg1w7iq3j11i8f5ig2nqs1")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://nedbatchelder.com/code/coverage") (synopsis "Code coverage measurement for Python") (description @@ -2260,8 +2217,6 @@ It is useful for developing coverage plugins for these testing frameworks.") (base32 "0y8d0zwiqar51kxj8lzmkvwc3b8kazb04gk5zcb4nzg5k68zmhq5")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://pypi.python.org/pypi/discover/") (synopsis "Python test discovery for unittest") @@ -2312,8 +2267,6 @@ tests written in a natural language style, backed up by Python code.") (base32 "1b90jf6m9vxh9nanhpyvqdq7hmfx5iggw1l8kq10jrs6xgr49qkr")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (arguments `(#:tests? #f)) ; no tests (home-page "https://github.com/ianare/exif-py") (synopsis "Python library to extract EXIF data from image files") @@ -2336,8 +2289,6 @@ files.") (base32 "0k881ffazpf8q1z8862g4bb3pzwpnz9whrci2mf311mvn1qbyqad")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (arguments `(#:tests? #f)) ; no tests (home-page "http://github.com/digitalbazaar/pyld") (synopsis "Python implementation of the JSON-LD specification") @@ -2359,8 +2310,6 @@ files.") (base32 "06c9dcyv8ss050gkv5xjivbxhm6qm0s9vzy4r33wqabgv118lw7p")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (arguments `(#:tests? #f)) ; no tests (home-page "http://python-requests.org/") (synopsis "Python CA certificate bundle") @@ -2395,8 +2344,6 @@ is used by the Requests library to verify HTTPS requests.") (("'locale'") (string-append "'" glibc "/bin/locale'")))) #t))))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://click.pocoo.org") (synopsis "Command line library for Python") (description @@ -2562,8 +2509,6 @@ version numbers.") (base32 "12hhblqy1ajvidm38im4171x4arg83pfmziyn53nizp29p3m14gi")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://pypi.python.org/pypi/Unidecode") (synopsis "ASCII transliterations of Unicode text") (description @@ -2684,8 +2629,6 @@ environments and back.") (build-system python-build-system) (inputs `(("libyaml" ,libyaml))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://pyyaml.org/wiki/PyYAML") (synopsis "YAML parser and emitter for Python") (description @@ -2748,8 +2691,6 @@ object.") (base32 "1hvip33wva3fnmvfp9x5klqri7hpl1hkgqmjbss18nmrb7zimv54")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://github.com/mitsuhiko/markupsafe") (synopsis "XML/HTML/XHTML markup safe string implementation for Python") (description @@ -2796,8 +2737,6 @@ written in pure Python.") (base32 "0nmqsfmiw4arjxqkmf9z66ml950pcdjk6aq4gin4sywmzdjw5fzp")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://defunkt.io/pystache/") (synopsis "Python logic-less template engine") (description @@ -2870,8 +2809,6 @@ logging and tracing of the execution.") (base32 "1ylnjnw1x4b2y7blr6x35ncdzn69k253kw4cdkv6asdb21w73ny7")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (arguments '(#:tests? #f)) ; no setup.py test command (home-page "http://docutils.sourceforge.net/") @@ -2899,8 +2836,6 @@ reStructuredText.") (base32 "0lagrwifsgn0s8bzqahpr87p7gd38xja8f06akscinp6hj89283k")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://pygments.org/") (synopsis "Syntax highlighting") (description @@ -2959,8 +2894,6 @@ sources.") ;; before 1980' #:configure-flags '("--single-version-externally-managed" "--record=sphinx-rtd-theme.txt"))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (inputs `(("python-docutils" ,python-docutils) ("python-sphinx" ,python-sphinx))) @@ -3011,8 +2944,6 @@ which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.") (base32 "1dpq0vb01p36jjwbhhd08ylvrnyvcc82yxx3mwjx6awrycjyw6j7")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) ;; No "test" command supplied to setuptools, so unless there's another way ;; to run tests, we're skipping them! (arguments '(#:tests? #f)) @@ -3204,8 +3135,6 @@ mining and data analysis.") (propagated-inputs `(("python-click" ,python-click) ("python-redis" ,python-redis))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://python-rq.org/") (synopsis "Simple job queues for Python") (description @@ -3391,7 +3320,6 @@ association studies (GWAS) on extremely large data sets.") (outputs '("out" "doc")) (inputs `(("which" ,which) - ("python-setuptools" ,python-setuptools) ("python-matplotlib" ,python-matplotlib) ("python-sphinx" ,python-sphinx) ("python-pyparsing" ,python-pyparsing) @@ -4164,8 +4092,6 @@ SQLAlchemy Database Toolkit for Python.") (base32 "0lx15kcbby9zisx33p2h5hgakgwh2bvh0ibag8z0px4j6ifhs41x")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://launchpad.net/python-distutils-extra/") (synopsis "Enhancements to Python's distutils") (description @@ -4193,8 +4119,6 @@ Python's distutils.") (base32 "0y7vzff9xgbnaay7m0va1arl6g68ncwrvbgwl7jqlclsahzzb09d")))) (build-system python-build-system) - (native-inputs - `(("python2-setuptools" ,python2-setuptools))) (arguments ;; incompatible with Python 3 (exception syntax) `(#:python ,python-2 @@ -4234,9 +4158,7 @@ services for your Python modules and applications.") ("openjpeg" ,openjpeg) ("libtiff" ,libtiff) ("libwebp" ,libwebp))) - (propagated-inputs - `(;; Used at runtime for pkg_resources - ("python-setuptools" ,python-setuptools))) + ;; Note: setuptools used at runtime for pkg_resources (arguments `(#:phases (modify-phases %standard-phases (add-before @@ -4382,8 +4304,6 @@ a front-end for C compilers or analysis tools.") (inputs `(("libxcb" ,libxcb) ("python-six" ,python-six))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (propagated-inputs `(("python-cffi" ,python-cffi))) ; used at run time (arguments @@ -4477,8 +4397,6 @@ PNG, PostScript, PDF, and SVG file output.") (base32 "1a5vwhflfd9sh3rfb40xlyipldgdzfff6brman57hqv3661jw0lh")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; no test target - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://pypi.python.org/pypi/decorator/") (synopsis "Python module to simplify usage of decorators") (description @@ -4540,8 +4458,6 @@ Python language binding specification.") `(("python-psutil" ,python-psutil) ("python-drmaa" ,python-drmaa) ("python-pyzmq" ,python-pyzmq))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/pygridtools/gridmap") (synopsis "Create jobs on a cluster directly from Python") (description @@ -4594,7 +4510,6 @@ child application and control it as if a human were typing commands.") (base32 "1gqr73i150yzj3mz32854vj93x07yr52kn8fdckwa41ll8wgficc")))) (build-system python-build-system) - (native-inputs `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/pypa/setuptools_scm/") (synopsis "Manage Python package versions in SCM metadata") (description @@ -4649,8 +4564,6 @@ common operations on files to be invoked on those path objects directly.") (build-system python-build-system) (propagated-inputs `(("python-pathpy" ,python-pathpy))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/vivainio/pickleshare") (synopsis "Tiny key value database with concurrency support") (description @@ -5002,8 +4915,6 @@ computing.") (base32 "0cafaiwixgpxwh9dsd28qb0dbzsj6xpxjdkyk30ns91ps10mq422")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://cheeseshop.python.org/pypi/isodate") (synopsis @@ -5030,8 +4941,6 @@ ISO 8601 dates, time and duration.") (build-system python-build-system) (propagated-inputs `(("python-six" ,python-six))) ; required to "import html5lib" - (inputs - `(("python-setuptools" ,python-setuptools))) (arguments `(#:test-target "check")) (home-page @@ -5085,7 +4994,6 @@ and written in Python.") (substitute* "urwid/tests/test_event_loops.py" (("test_remove_watch_file") "disable_remove_watch_file"))))))) - (native-inputs `(("python-setuptools" ,python-setuptools))) (home-page "http://urwid.org") (synopsis "Console user interface library for Python") (description @@ -5291,8 +5199,6 @@ converts incoming documents to Unicode and outgoing documents to UTF-8.") (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. @@ -5318,8 +5224,6 @@ options.") (base32 "1xg6gbva1yswghiycmgincv6ab4bn7hpm720ndbj40h8xycmnfvi")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (arguments ;; tests fail with message ;; AttributeError: 'module' object has no attribute 'tests' @@ -5352,8 +5256,6 @@ another XPath engine to find the matching elements in an XML or HTML document.") (base32 "1plw237a4zib4z8s62g0mrs8gm3kjfrp5sxh6bbk9nl3rdls2mln")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://bitbucket.org/al45tair/netifaces") (synopsis @@ -5406,7 +5308,6 @@ of the structure, dynamics, and functions of complex networks.") (sha256 (base32 "0fi4b63sj60hvi7rfydvmz2icl4wj74djw5sn2gl8hxd02qw4b91")))) (build-system python-build-system) - (inputs `(("python-setuptools" ,python-setuptools))) (home-page "https://bitbucket.org/johanneskoester/snakemake") (synopsis "Python-based execution environment for make-like workflows") (description @@ -5462,8 +5363,6 @@ and statistical routines from scipy and statsmodels.") (sha256 (base32 "19yp0gy4i7p4g6l3b8vaqkj9qj7yqb5kqy0qgbdagpzgkdz958yz")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://www.sympy.org/") (synopsis "Python library for symbolic mathematics") (description @@ -5517,8 +5416,6 @@ falling into the Python interpreter.") (sha256 (base32 "1mz26cxn4x8bbgv0rn0mvj2z05y31rkc8009nvdlb3lam5b4mj3y")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (native-inputs `(("unzip" ,unzip))) (arguments @@ -5556,8 +5453,6 @@ falling into the Python interpreter.") (arguments `(#:python ,python-2 ;Python 2 only #:tests? #f)) ;no tests - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://python-xlib.sourceforge.net/") (synopsis "Python X11 client library") (description @@ -5578,8 +5473,6 @@ It is written entirely in Python.") (base32 "171b7ip0hsq5qm83np40h3phlr36ym18w0lay0a8v08kvy3sy1jv")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (inputs `(("python-six" ,python-six))) (home-page @@ -5644,8 +5537,6 @@ connection to each user.") (base32 "19fh75lni9pb673n2fn505m1rckm0af0szcv5xx1qm1xpa940glb")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/cython/backports_abc") (synopsis "Backport of additions to the 'collections.abc' module") (description @@ -5734,8 +5625,6 @@ applications.") (base32 "002rkl4lsn6x2mxmf8ar00l0m8i3mzrc6pnzz77blyksmpsxa4x1")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://pep8.readthedocs.org/") (synopsis "Python style guide checker") (description @@ -5758,8 +5647,6 @@ PEP 8.") (base32 "0qs2sgqszq7wcplis8509wk2ygqcrwzbs1ghfj3svvivq2j377pk")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/pyflakes/pyflakes") (synopsis "Passive checker of Python programs") @@ -6050,9 +5937,6 @@ term.js Javascript terminal emulator library.") "08ay3x4ijarwhl60gqx2i9jzq6pxs20p4snc2d1q5jagh4rn39lb")))) (build-system python-build-system) (arguments '(#:test-target "check")) - (propagated-inputs - ;; XXX: module not found if setuptools is not available. - `(("python-setuptools" ,python-setuptools))) (home-page "http://github.com/behdad/fonttools") (synopsis "Tools to manipulate font files") (description @@ -6082,8 +5966,6 @@ from an XML-based format.") (base32 "0g6n288l83sfwavxh1aryi0aqvsr3sp7v6f903mckwqa4scpky62")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (synopsis "Tool and library for manipulating LilyPond files") (description "This package provides a Python library to parse, manipulate or create documents in LilyPond format. A command line program ly is also @@ -6106,8 +5988,6 @@ provided that can be used to do various manipulations with LilyPond files.") (base32 "1iddva7v3fq0aqzsahkazxr7vpw28mqcrsy818z4wyiqnkplbhlg")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://github.com/ActiveState/appdirs") (synopsis "Determine platform-specific dirs, e.g. a \"user data dir\"") @@ -6207,8 +6087,6 @@ reading and writing MessagePack data.") "06dxjlbcicq7q3vqy8agq11ra01kvvd47j4mk6dmghjsyzyckxd1")))) (build-system python-build-system) (arguments `(#:tests? #f)) ;; No tests. - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/drkjam/netaddr/") (synopsis "Pythonic manipulation of network addresses") (description @@ -6238,8 +6116,6 @@ and MAC network addresses.") ;; Tests are not included in the tarball, they are only available in the ;; git repository. `(#:tests? #f)) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/GrahamDumpleton/wrapt") (synopsis "Module for decorators, wrappers and monkey patching") (description @@ -6263,8 +6139,6 @@ and MAC network addresses.") (base32 "0c7gh3lsdjds262h0v1sqc66l7hqgfwbakn96qrhdbl0i3vm5yz8")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://bitbucket.org/micktwomey/pyiso8601") (synopsis "Module to parse ISO 8601 dates") (description @@ -6290,8 +6164,6 @@ and MAC network addresses.") (base32 "0yz0bcbwx8r2c01czzfpbrxddynxyk9k95jj8h6sgcb7xmfvl998")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/atdt/monotonic") (synopsis "Implementation of time.monotonic() for Python 2 & < 3.3") (description @@ -6371,8 +6243,6 @@ Unicode-aware. It is not intended as an end-user tool.") (base32 "0diwsicwmiq2cpzpxri7cyl5fmsvicafw6nfqf6p6p322dji2g45")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://code.google.com/p/prettytable/") (synopsis "Display tabular data in an ASCII table format") (description @@ -6476,8 +6346,6 @@ suitable for a wide range of protocols based on the ASN.1 specification.") (base32 "0drqgw81xd3fxdlg89kgd79zzrabvfncvkbybi2wr6w2y4s1jmhh")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (propagated-inputs `(("python-pyasn1" ,python-pyasn1))) (home-page "http://sourceforge.net/projects/pyasn1/") @@ -6560,8 +6428,6 @@ versions of Python.") (base32 "0frxgmgi234lr9hylg62j69j4ik5zhg0wz05w5dhyacbjfnrl68n")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/kjd/idna") (synopsis "Internationalized domain names in applications") (description @@ -6590,8 +6456,6 @@ specification.") (base32 "0r5r7ygz9m6d2bklflbl84cqhjkc2q12xgis8268ygjh30g2q3wk")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/alex/pretend") (synopsis "Library for stubbing in Python") (description @@ -6616,8 +6480,6 @@ responses, rather than doing any computation.") (base32 "1bnd1bricyhxa27rhr0ljk0kacxzvysd3ar2j2hlv13a2k6zw4z5")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/pyca/cryptography") (synopsis "Test vectors for the cryptography package") (description @@ -6665,7 +6527,6 @@ responses, rather than doing any computation.") (native-inputs `(("python-cryptography-vectors" ,python-cryptography-vectors) ("python-hypothesis" ,python-hypothesis) - ("python-setuptools" ,python-setuptools) ("python-pretend" ,python-pretend) ("python-pyasn1" ,python-pyasn1) ("python-pyasn1-modules" ,python-pyasn1-modules) @@ -6711,8 +6572,6 @@ message digests and key derivation functions.") ("python-six" ,python-six))) (inputs `(("openssl" ,openssl))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/pyca/pyopenssl") (synopsis "Python wrapper module around the OpenSSL library") (description @@ -6923,8 +6782,6 @@ serve the same purpose: provide Python bindings for libmagic.") (build-system python-build-system) (inputs `(("python-six" ,python-six))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://packages.debian.org/sid/python-debian") (synopsis "Debian package related modules") (description @@ -6967,8 +6824,6 @@ Debian-related files, such as: ("python-jsonschema" ,python-jsonschema) ("python-jupyter-core" ,python-jupyter-core) ("python-traitlets" ,python-traitlets))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://jupyter.org") (synopsis "Jupyter Notebook format") (description "This package provides the reference implementation of the @@ -6992,7 +6847,6 @@ Jupyter Notebook format and Python APIs for working with notebooks.") (build-system python-build-system) (propagated-inputs `(("python-html5lib" ,python-html5lib-0.9) - ("python-setuptools" ,python-setuptools) ("python-six" ,python-six))) (native-inputs `(("python-nose" ,python-nose))) @@ -7067,7 +6921,6 @@ functions to find and load entry points.") ("python-mistune" ,python-mistune) ("python-nbformat" ,python-nbformat) ("python-pygments" ,python-pygments) - ("python-setuptools" ,python-setuptools) ("python-traitlets" ,python-traitlets))) (home-page "http://jupyter.org") (synopsis "Converting Jupyter Notebooks") @@ -7170,7 +7023,6 @@ notebooks.") (propagated-inputs `(("python-ipykernel" ,python-ipykernel) ("python-ipython" ,python-ipython) - ("python-setuptools" ,python-setuptools) ("python-traitlets" ,python-traitlets) ("python-widgetsnbextension" ,python-widgetsnbextension))) (home-page "http://ipython.org") @@ -7260,8 +7112,6 @@ simulation, statistical modeling, machine learning and much more.") (base32 "1ak87ikcw34fivcgiz2xvi938dmclh078az65l9x3rmgljrkhgp5")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/chardet/chardet") (synopsis "Universal encoding detector for Python 2 and 3") (description @@ -7320,8 +7170,6 @@ programatically with command-line parsers like @code{getopt} and (base32 "11p75zpfz3ffhz21nzx9wb23xs993ck5s6hkjcvhswwizni5jynw")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://pypi.python.org/pypi/zope.event") (synopsis "Event publishing system for Python") (description "Zope.event provides an event publishing API, intended for @@ -7469,8 +7317,6 @@ tests.") (base32 "1rslyph0klk58dmjjy4j0jxy21k03azksixc3x2xhqbkv97cmzml")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://pypi.python.org/pypi/zope.i18nmessageid") (synopsis "Message identifiers for internationalization") (description "Zope.i18nmessageid provides facilities for declaring @@ -7910,8 +7756,6 @@ tables.") (build-system python-build-system) (native-inputs `(("python-six" ,python-six))) ; for tests - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/liris/websocket-client") (synopsis "WebSocket client for Python") (description "The Websocket-client module provides the low level APIs for @@ -8250,8 +8094,6 @@ Blog, News or Announcements section to a Sphinx website.") (base32 "057qzi46h5dmxdqknsbrssn78lmqjlnm624iqdhrnpk26zcbi1d7")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/kennethreitz/args") (synopsis "Command-line argument parser") (description @@ -8297,8 +8139,6 @@ output, progress bar display, and pipes.") (base32 "1fdafq5hkis1fxqlmhw0sn44zp2ar46nxhbc22cvwg7hsd8z5gsa")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/berkerpeksag/astor") (synopsis "Read and write Python ASTs") (description @@ -8409,8 +8249,6 @@ authenticated session objects providing things like keep-alive.") (arguments `(#:python ,python-2 #:tests? #f)) ; no test target - (native-inputs - `(("python2-setuptools" ,python2-setuptools))) (home-page "https://github.com/MiCHiLU/python-functools32") (synopsis "Backport of the functools module from Python 3.2.3") @@ -8432,8 +8270,6 @@ authenticated session objects providing things like keep-alive.") "1vcb34dqhzkhbq1957vdjszhhm5y3j9ba88dgwhqx2zynhmk9qig")))) (build-system python-build-system) (arguments `(#:python ,python-2)) - (native-inputs - `(("python2-setuptools" ,python2-setuptools))) (home-page "https://github.com/agronholm/pythonfutures") (synopsis "Backport of the concurrent.futures package from Python 3.2") @@ -8474,7 +8310,6 @@ concurrent.futures package from Python 3.2") (native-inputs `(("python2-futures" ,python2-futures) ("python2-pytest" ,python2-pytest) - ("python2-setuptools" ,python2-setuptools) ,@(package-native-inputs promise)))))) (define-public python-urllib3 @@ -8525,8 +8360,6 @@ supports url redirection and retries, and also gzip and deflate decoding.") (base32 "1716z9pq1r5ys3nkg7wdrb3h2f9rmd0zdxpxzmx3bgwgf6xg48gb")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (synopsis "colored terminal text rendering for Python") (description "Colorama is a Python library for rendering colored terminal text.") @@ -8574,8 +8407,6 @@ library as well as on the command line.") (base32 "18qfzfm40bgx672lkg8q9x5hdh76n7vax99aank7vh2nw21wg70m")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (synopsis "Plugin and hook calling mechanism for Python") (description "Pluggy is an extraction of the plugin manager as used by Pytest but stripped of Pytest specific details.") @@ -8631,8 +8462,6 @@ servers.") (base32 "0g9xvl69y7nr3w7ag4fsp6sm4fqf6vrqjw7504x2hzrrsh3ampq8")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (synopsis "JSON Matching Expressions") (description "JMESPath (pronounced “james path”) is a Python library that allows one to declaratively specify how to extract elements from a JSON @@ -8660,7 +8489,6 @@ document.") ("python-docutils" ,python-docutils) ("python-mock" ,python-mock) ("python-nose" ,python-nose) - ("python-setuptools" ,python-setuptools) ("python-tox" ,python-tox) ("python-wheel" ,python-wheel) ("python-jmespath" ,python-jmespath))) @@ -8691,7 +8519,6 @@ interface to the Amazon Web Services (AWS) API.") ("python-mock" ,python-mock) ("python-nose" ,python-nose) ("python-rsa" ,python-rsa) - ("python-setuptools" ,python-setuptools) ("python-sphinx" ,python-sphinx) ("python-tox" ,python-tox) ("python-wheel" ,python-wheel) @@ -8745,9 +8572,6 @@ seamlessly into your existing Python unit testing work flow.") (base32 "15kzcr5pchf3id4ikdvlv752rc0j4d912n589l4rifp8qsj19l1x")))) (build-system python-build-system) - (native-inputs - `(;; setuptools required for python-2 variant - ("python-setuptools" ,python-setuptools))) (propagated-inputs `(("python-pytest" ,python-pytest))) (synopsis "Set-up and tear-down fixtures for unit tests") @@ -8942,10 +8766,7 @@ and to spawn subprocesses to handle requests.") (build-system python-build-system) (native-inputs `(("python-nose" ,python-nose))) - (propagated-inputs - ;; This package uses pkg_resources, part of setuptools, during runtime, - ;; hence why not a native-input. - `(("python-setuptools" ,python-setuptools))) + ;; Note: setuptools used at runtime for pkg_resources (home-page "http://pythonpaste.org/deploy/") (synopsis "Load, configure, and compose WSGI applications and servers") @@ -9864,8 +9685,6 @@ is made as zipfile like as possible.") port) (close-port port) #t)))))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (inputs ;; python-magic needs to be able to find libmagic.so. `(("file" ,file))) @@ -9900,8 +9719,6 @@ the same purpose: to provide Python bindings for libmagic.") ;; s3cmd is written for python2 only and contains no tests. `(#:python ,python-2 #:tests? #f)) - (native-inputs - `(("python2-setuptools" ,python2-setuptools))) (inputs `(("python2-dateutil" ,python2-dateutil) ;; The python-file package also provides a magic.py module. @@ -9996,8 +9813,6 @@ development version of CPython that are not available in older releases.") (strip-python2-variant python-bz2file)))) (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools))) (arguments `(#:python ,python-2 #:phases @@ -10054,7 +9869,6 @@ to support both Python 2 and Python 3 with minimal overhead.") (build-system python-build-system) (native-inputs `(("python-cython" ,python-cython) - ("python-setuptools" ,python-setuptools) ("python-sphinx" ,python-sphinx))) (inputs `(("pari-gp" ,pari-gp))) @@ -10116,7 +9930,6 @@ respectively.") " line += ' -L" pcre "/lib" " -L " libgc "/lib'"))) #t)))))) - (native-inputs `(("python2-setuptools" ,python2-setuptools))) (inputs `(("pcre" ,pcre) ("libgc" ,libgc))) (home-page "https://shedskin.github.io/") @@ -10164,8 +9977,6 @@ to occurences in strings and comments.") (base32 "0i283z1pivmir61z8kbiycigc94l61v33ygzkhczf1ifq7cppyds")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/ultrabug/py3status") (synopsis "Extensible i3status wrapper written in Python") (description "py3status is an i3status wrapper which extends i3status @@ -10197,7 +10008,6 @@ own code, responding to click events and updating clock every second.") (zero? (system* "py.test" "-vv" "tests" "README.rst"))))))) (native-inputs `(("python-pytest" ,python-pytest) - ("python-setuptools" ,python-setuptools) ("python-six" ,python-six))) (home-page "https://github.com/ionelmc/python-tblib") (synopsis "Traceback serialization library") @@ -10261,8 +10071,6 @@ provides support for parsing, splitting and formatting SQL statements.") (base32 "04h0m54dyqg49vyarq26mry6kbivnpl47rnmmrk9qn8wpfxviybr")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://greenlet.readthedocs.io/") (synopsis "Lightweight in-process concurrent programming") (description @@ -10325,8 +10133,6 @@ to provide a high-level synchronous API on top of the libev event loop.") (base32 "0ydxrp9myw1mvsz3qfzx5579y5llmqa82pxvqchgp5syczffi450")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (propagated-inputs `(("python-zope-interface" ,python-zope-interface))) (home-page "https://twistedmatrix.com/") @@ -10439,8 +10245,6 @@ data in Python.") "10pb864if9qi2pq9lfb9m8f7z7ss6rml80gf1d9h64lap5crjnjj")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; XXX: needs zookeeper - (native-inputs - `(("python-setuptools" ,python-setuptools))) (propagated-inputs `(("python-six" ,python-six))) (home-page "https://kazoo.readthedocs.org") @@ -10469,8 +10273,6 @@ programming errors.") "1id6sr159p6aa13bxcqyr9gln8sqg1l0ddzns5iws8kk5q1p5cfv")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; XXX: needs zookeeper, kafka, etc. - (native-inputs - `(("python-setuptools" ,python-setuptools))) (propagated-inputs `(("python-gevent" ,python-gevent) ("python-kazoo" ,python-kazoo) @@ -10532,8 +10334,6 @@ specified in POSIX.1-2001 and POSIX.1-2008.") (base32 "02vgirw2bcgvpcxhv5hf3yvvb4h5wzd1lpjx8na5psdmaffj6l3z")))) (build-system python-build-system) - (native-inputs - `(("python2-setuptools" ,python2-setuptools))) (arguments `(#:tests? #f #:python ,python-2)) @@ -10557,8 +10357,6 @@ etc.") (base32 "016kf3irrclpkpvcm7q0gmkfibq7jgy30a9v73pp42bq9h9a32bl")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/agoragames/chai") (synopsis "Mocking framework for Python") (description @@ -10609,8 +10407,6 @@ datetime type.") (base32 "1jhnxgnw8y3mbzjssixh6qkc7a3afc4fygajhqrqalnilyvpzshq")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://github.com/jpvanhal/inflection") (synopsis "Python string transformation library") (description @@ -10633,8 +10429,6 @@ underscored string.") (base32 "1hz1x9blsbxya1y9nnhnwwdnqmakxi9mc0jkwj0rn6b1h44i0f86")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://github.com/toastdriven/pylev") (synopsis "Levenshtein distance implementation in Python") (description "Pure Python Levenshtein implementation, based off the @@ -10685,8 +10479,6 @@ docstring and colored output.") (base32 "0s22aqqkdscyh8sjspyyax7qa1aiz8p4midrnyf39717fhfczm6x")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/ionelmc/python-lazy-object-proxy") (synopsis "Lazy object proxy for python") (description @@ -10710,8 +10502,6 @@ until the object is actually required, and caches the result of said call.") "0jr4v2pd90i6l1xxbss2m05psbjaxvyvvvpq44wycijpfgjqln8i")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; XXX: requires internet access - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://www.dnspython.org") (synopsis "DNS toolkit for Python") (description @@ -10742,8 +10532,6 @@ It supports TSIG authenticated messages and EDNS0.") (substitute* "setup.py" (("dnspython3") "dnspython")) #t))))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (propagated-inputs `(("python-dnspython" ,python-dnspython) ("python-idna" ,python-idna))) @@ -10767,8 +10555,6 @@ It supports TSIG authenticated messages and EDNS0.") (base32 "1jwg9z4rz51mcka1821rwgycsd0mcicyp1kiwjfa2kvg8bm9p2qd")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/hamstah/ukpostcodeparser") (synopsis "UK Postcode parser for Python") (description @@ -10827,8 +10613,6 @@ addresses, and phone numbers.") (base32 "1f5m28vkh4ksq3d80d8mmd2z8wxvc3mgy2pmrv2751dm2xgznm4w")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (propagated-inputs `(("python-pyyaml" ,python-pyyaml))) (home-page "https://github.com/mk-fg/pretty-yaml") @@ -10852,8 +10636,6 @@ YAML-serialized data.") (base32 "0arc6njvs6i9v9hgvzk5m50296g7zy5m9d7pyb43vdsdgxrci5gy")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://flexmock.readthedocs.org") (synopsis "Testing library for Python") (description @@ -10876,8 +10658,6 @@ mocks, stubs and fakes.") "1li49irsqha17nrda4nsb48biyy0rarp9pphf0jpqwm5zr8hv569")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; no tests - (native-inputs - `(("python-setuptools" ,python-setuptools))) (propagated-inputs `(("python-arrow" ,python-arrow) ("python-blinker" ,python-blinker) @@ -11885,8 +11665,6 @@ with an associated set of resolve methods that know how to fetch data.") "01hwzjc1zshk4vvxrcghm398fpy4jls66dyz06g07mrwqif8878p")))) (build-system python-build-system) (arguments `(#:tests? #f)) ; fails to import test modules - (native-inputs - `(("python-setuptools" ,python-setuptools))) (inputs `(("python-bcrypt" ,python-bcrypt) ("python-click" ,python-click) @@ -11980,7 +11758,6 @@ transfers.") (inherit base) (native-inputs `(("python2-futures" ,python2-futures) - ("python2-setuptools" ,python2-setuptools) ,@(package-native-inputs base)))))) (define-public python-setproctitle @@ -12272,8 +12049,6 @@ PNG, JPEG, JPEG2000 and GIF files in pure Python.") `(;; Prevent creation of the egg. This works around ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765 #:configure-flags '("--root=/"))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/tgalal/python-axolotl-curve25519") (synopsis "Python wrapper for curve25519 library") (description "This is a python wrapper for the curve25519 library @@ -12312,8 +12087,6 @@ python-axolotl.") ;; Prevent creation of the egg. This works around ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765 #:configure-flags '("--root=/"))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (propagated-inputs `(("python-axolotl-curve25519" ,python-axolotl-curve25519) ("python-dateutil" ,python-dateutil) -- cgit v1.2.3 From 5d8549328483978bf04dd2c710ef6a06614d4776 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Wed, 28 Sep 2016 13:18:19 +0200 Subject: gnu: Remove python-setuptools and python2-setuptools from inputs (part 1b) This patch contains the changes in all modules beside python.scm where removing setuptools from the inputs could be achieved by removing complete lines. * gnu/packages/admin.scm (graphios, thefuck): Remove all [inputs], [native-inputs] and [propagated-inputs] where python-setuptools or python2-setuptools are the sole entries. Remove python-setuptools and python2-setuptools listed on a line by its own from [inputs], [native-inputs] and [propagated-inputs]. * gnu/packages/backup.scm (rdiff-backup): Likewise. * gnu/packages/bioinformatics.scm (htseq, macs, python2-pbcore, rseqc, multiqc): Likewise. * gnu/packages/django.scm (python-django, python2-django, python-django-simple-math-captcha, python2-django-simple-math-captcha): Likewise. * gnu/packages/docker.scm (python-docker-py, docker-compose): Likewise. * gnu/packages/game-development.scm (python-pygame): Likewise. * gnu/packages/key-mon.scm (key-mon): Likewise. * gnu/packages/mail.scm (khard): Likewise. * gnu/packages/music.scm (beets, python2-pyechonest): Likewise. * gnu/packages/openstack.scm (python-bandit, python2-bandit, python-debtcollector, python2-debtcollector, python-mox3, python2-mox3, python-os-client-config, python2-os-client-config, python-oslo.config, python2-oslo.config, python-oslo.context, python2-oslo.context, python-oslo.i18n, python2-oslo.i18n, python-oslo.serialization, python2-oslo.serialization, python-oslosphinx, python2-oslosphinx, python-oslotest, python2-oslotest, python-oslo.utils, python2-oslo.utils, python-swiftclient, python2-swiftclient): Likewise. * gnu/packages/pdf.scm (pdfposter): Likewise. * gnu/packages/tls.scm (python-acme, python2-acme): Likewise. --- gnu/packages/admin.scm | 4 ---- gnu/packages/backup.scm | 2 -- gnu/packages/bioinformatics.scm | 8 -------- gnu/packages/django.scm | 6 ------ gnu/packages/docker.scm | 2 -- gnu/packages/game-development.scm | 2 -- gnu/packages/key-mon.scm | 2 -- gnu/packages/mail.scm | 2 -- gnu/packages/music.scm | 2 -- gnu/packages/openstack.scm | 12 ------------ gnu/packages/pdf.scm | 2 -- gnu/packages/tls.scm | 1 - 12 files changed, 45 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 5adde6cc4a..b0edc69cad 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1332,8 +1332,6 @@ specified directories.") (("/usr") out) (("distro_ver = .*") "distro_ver = ''")) #t)))))) - (inputs - `(("python-setuptools" ,python2-setuptools))) (home-page "https://github.com/shawn-sterling/graphios") (synopsis "Emit Nagios metrics to Graphite, Statsd, and Librato") (description @@ -1699,8 +1697,6 @@ throughput (in the same interval).") (base32 "04q2cn8c83f6z6wn1scla1ilrpi5ssjc64987hvmwfvwvb82bvkp")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (inputs `(("python-colorama" ,python-colorama) ("python-decorator" ,python-decorator) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 203ff4c9dc..5b1706ea12 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -339,8 +339,6 @@ errors.") (base32 "1nwmmh816f96h0ff1jxk95ad38ilbhbdl5dgibx1d4cl81dsi48d")))) (build-system python-build-system) - (native-inputs - `(("python2-setuptools" ,python2-setuptools))) (inputs `(("python" ,python-2) ("librsync" ,librsync))) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 5444f0a2a1..8377e811db 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2814,8 +2814,6 @@ HMMs).") `(("python-numpy" ,python2-numpy))) (inputs `(("python-pysam" ,python2-pysam))) - (native-inputs - `(("python-setuptools" ,python2-setuptools))) (home-page "http://www-huber.embl.de/users/anders/HTSeq/") (synopsis "Analysing high-throughput sequencing data with Python") (description @@ -3094,8 +3092,6 @@ data.") #:tests? #f)) ; no test target (inputs `(("python-numpy" ,python2-numpy))) - (native-inputs - `(("python-setuptools" ,python2-setuptools))) (home-page "http://github.com/taoliu/MACS/") (synopsis "Model based analysis for ChIP-Seq data") (description @@ -3521,7 +3517,6 @@ interrupted by stop codons. OrfM finds and prints these ORFs.") (native-inputs `(("python-docutils" ,python2-docutils) ("python-nose" ,python2-nose) - ("python-setuptools" ,python2-setuptools) ("python-sphinx" ,python2-sphinx))) (propagated-inputs `(("python-pyxb" ,python2-pyxb))) @@ -4028,7 +4023,6 @@ BAM and Wiggle files in both transcript-coordinate and genomic-coordinate.") `(("python-cython" ,python2-cython) ("python-pysam" ,python2-pysam) ("python-numpy" ,python2-numpy) - ("python-setuptools" ,python2-setuptools) ("zlib" ,zlib))) (native-inputs `(("python-nose" ,python2-nose))) @@ -7696,8 +7690,6 @@ replacement for strverscmp.") ("python-click" ,python-click) ("python-matplotlib" ,python-matplotlib) ("python-numpy" ,python-numpy))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://multiqc.info") (synopsis "Aggregate bioinformatics analysis reports") (description diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index f56ed58363..1ab2094dce 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -54,10 +54,6 @@ (string-append ".:" (getenv "PYTHONPATH"))) (zero? (system* "python" "tests/runtests.py"))))))) ;; TODO: Install extras/django_bash_completion. - (propagated-inputs - ;; Django uses 'pkg_resources' (part of setuptools) to locate templates - ;; at run-time. - `(("python-setuptools" ,python-setuptools))) (native-inputs `(("tzdata", tzdata) ;; bcrypt and argon2-cffi are extra requirements not yet in guix @@ -112,8 +108,6 @@ to the @dfn{don't repeat yourself} (DRY) principle.") (build-system python-build-system) (propagated-inputs `(("python-django" ,python-django))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/alsoicode/django-simple-math-captcha") (synopsis "Easy-to-use math field/widget captcha for Django forms") (description diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index 0760001da7..3cfdb7ef55 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -42,7 +42,6 @@ (arguments '(#:tests? #f)) (inputs `(("python-requests" ,python-requests) - ("python-setuptools" ,python-setuptools) ("python-six" ,python-six) ("python-websocket-client" ,python-websocket-client))) (home-page "https://github.com/docker/docker-py/") @@ -93,7 +92,6 @@ client.") ("python-jsonschema" ,python-jsonschema) ("python-pyyaml" ,python-pyyaml) ("python-requests" ,python-requests-2.7) - ("python-setuptools" ,python-setuptools) ("python-six" ,python-six) ("python-texttable" ,python-texttable) ("python-websocket-client" ,python-websocket-client))) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 76c06ecc72..e83294d9c4 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -591,8 +591,6 @@ interface (API).") (string-append v4l-ref "/include/libv4l1-videodev.h") "linux/videodev.h") (system* "ln" "--symbolic" "Setup.in" "Setup"))))))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (inputs `(("sdl" ,sdl) ("sdl-image" ,sdl-image) diff --git a/gnu/packages/key-mon.scm b/gnu/packages/key-mon.scm index c76360ce08..6237a1765a 100644 --- a/gnu/packages/key-mon.scm +++ b/gnu/packages/key-mon.scm @@ -42,8 +42,6 @@ (arguments `(#:python ,python-2 ;uses the Python 2 'print' syntax #:tests? #f)) ;no tests - (native-inputs - `(("python2-setuptools" ,python2-setuptools))) (inputs `(("python2-xlib" ,python2-xlib) ("python2-pygtk" ,python2-pygtk) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index a485c1f5c3..a152d50c36 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1367,8 +1367,6 @@ maintained.") (let* ((out (assoc-ref outputs "out")) (doc (string-append out "/share/doc/khard"))) (copy-recursively "misc/khard" doc))))))) - (native-inputs - `(("python2-setuptools" ,python2-setuptools))) (propagated-inputs `(("python2-vobject" ,python2-vobject) ("python2-pyyaml" ,python2-pyyaml) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index abcc498599..d25c9c419a 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1787,7 +1787,6 @@ MusicBrainz database.") `(;; Python 3 is not supported: ;; https://github.com/echonest/pyechonest/issues/42 #:python ,python-2)) - (native-inputs `(("python2-setuptools" ,python2-setuptools))) (home-page "https://github.com/echonest/pyechonest") (synopsis "Python interface to The Echo Nest APIs") (description "Pyechonest is a Python library for the Echo Nest API. With @@ -1863,7 +1862,6 @@ websites such as Libre.fm.") (native-inputs `(("python2-beautifulsoup4" ,python2-beautifulsoup4) ("python2-flask" ,python2-flask) - ("python2-setuptools" ,python2-setuptools) ("python2-mock" ,python2-mock) ("python2-mpd2" ,python2-mpd2) ("python2-nose" ,python2-nose) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 43a6490b22..e216ed06f0 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -51,7 +51,6 @@ ("python-stevedore" ,python-stevedore))) (inputs `(("python-pbr" ,python-pbr) - ("python-setuptools" ,python-setuptools) ;; Tests ("python-fixtures" ,python-fixtures) ("python-mock" ,python-mock) @@ -88,7 +87,6 @@ all the files it generates a report.") (inputs `(("python-babel" ,python-babel) ("python-pbr" ,python-pbr) - ("python-setuptools" ,python-setuptools) ;; Tests. ("python-oslotest" ,python-oslotest))) (home-page "http://www.openstack.org/") @@ -152,7 +150,6 @@ guidelines}.") (native-inputs `(("python-fixtures" ,python-fixtures) ("python-pbr" ,python-pbr) - ("python-setuptools" ,python-setuptools) ("python-six" ,python-six) ("python-testtools" ,python-testtools))) (home-page "http://www.openstack.org/") @@ -188,7 +185,6 @@ tested on Python version 3.2, 2.7 and 2.6.") ("python-pbr" ,python-pbr) ("python-pyyaml" ,python-pyyaml) ("python-testrepository" ,python-testrepository) - ("python-setuptools" ,python-setuptools) ("python-testscenarios" ,python-testscenarios) ("python-testtools" ,python-testtools))) (home-page "http://www.openstack.org/") @@ -384,7 +380,6 @@ common features used in Tempest.") ("python-stevedore" ,python-stevedore))) (inputs `(("python-pbr" ,python-pbr) - ("python-setuptools" ,python-setuptools) ;; Tests ("python-oslo.i18n" ,python-oslo.i18n) ("python-mock" ,python-mock) @@ -415,7 +410,6 @@ common features used in Tempest.") (inputs `(("python-babel" ,python-babel) ("python-pbr" ,python-pbr) - ("python-setuptools" ,python-setuptools) ;; Tests. ("python-oslotest" ,python-oslotest))) (home-page "http://launchpad.net/oslo") @@ -446,7 +440,6 @@ pipeline and used by various modules such as logging.") ("python-six" ,python-six))) (inputs `(("python-pbr" ,python-pbr) - ("python-setuptools" ,python-setuptools) ;; Tests ("python-mock" ,python-mock) ("python-mox3" ,python-mox3) @@ -526,7 +519,6 @@ handlers and support for context specific logging (like resource id’s etc).") (inputs `(("python-babel" ,python-babel) ("python-pbr" ,python-pbr) - ("python-setuptools" ,python-setuptools) ;; Tests. ("python-mock" ,python-mock) ("python-oslo.i18n" ,python-oslo.i18n) @@ -559,7 +551,6 @@ in transmittable and storable formats, such as JSON and MessagePack.") `(("python-pbr" ,python-pbr) ("python-docutils" ,python-docutils) ("python-hacking" ,python-hacking) - ("python-setuptools" ,python-setuptools) ("python-sphinx" ,python-sphinx))) (home-page "http://www.openstack.org/") (synopsis "OpenStack sphinx extensions and theme") @@ -594,7 +585,6 @@ from the OpenStack project.") (inputs `(("python-pbr" ,python-pbr) ("python-os-client-config" ,python-os-client-config) - ("python-setuptools" ,python-setuptools) ("python-subunit" ,python-subunit) ("python-testrepository" ,python-testrepository) ("python-testscenarios" ,python-testscenarios) @@ -638,7 +628,6 @@ and better support for mocking results.") (inputs `(("python-babel" ,python-babel) ("python-pbr" ,python-pbr) - ("python-setuptools" ,python-setuptools) ;; Tests. ("python-oslotest" ,python-oslotest) ("python-mock" ,python-mock) @@ -744,7 +733,6 @@ LDAP.") (build-system python-build-system) (native-inputs `(("python-pbr" ,python-pbr) - ("python-setuptools" ,python-setuptools) ("python-sphinx" ,python-sphinx) ;; The folloing packages are needed for the tests. ("python-coverage" ,python-coverage) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 9c6e9a967e..171f1990f7 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -874,8 +874,6 @@ python-pypdf2 instead.") (inputs ;; pdfposter 0.6.0 still uses the old pyPdf `(("python2-pypdf" ,python2-pypdf))) - (native-inputs - `(("python2-setuptools" ,python2-setuptools))) (home-page "https://pythonhosted.org/pdftools.pdfposter/") (synopsis "Scale and tile PDF images/pages to print on multiple pages") (description "@command{pdfposter} can be used to create a large poster by diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 74cc25bb67..608fd6a080 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -462,7 +462,6 @@ security, and applying best practice development processes.") ("python-sphinx" ,python-sphinx) ("python-sphinxcontrib-programoutput" ,python-sphinxcontrib-programoutput) ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme) - ("python-setuptools" ,python-setuptools) ("texinfo" ,texinfo))) (propagated-inputs `(("python-ndg-httpsclient" ,python-ndg-httpsclient) -- cgit v1.2.3 From f3b98f4fec43c951a9e28c67561395992bf190a7 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Wed, 28 Sep 2016 13:30:54 +0200 Subject: gnu: Remove python-setuptools and python2-setuptools from inputs (part 2) This patch contains the changes where removing setuptools from the inputs affected some code-lines beside. * gnu/packages/admin.scm (ansible): Remove all [inputs], [native-inputs] and [propagated-inputs] where python-setuptools or python2-setuptools are the sole entries. Remove python-setuptools and python2-setuptools listed on a line by its own from [inputs], [native-inputs] and [propagated-inputs]. * gnu/packages/backup.scm (duplicity): Likewise. * gnu/packages/bioinformatics.scm (bamm, python2-pybedtools, python2-bx-python, python2-dendropy, python-pysam, python2-pysam, clipper, crossmap, cutadapt, deeptools, grit, idr, python2-warpedlmm, pbtranscript-tofu, seqmagick): Likewise. * gnu/packages/docbook.scm (dblatex): Likewise. * gnu/packages/freedesktop.scm (python-pyxdg, python2-pyxdg): Likewise. * gnu/packages/lirc.scm (python2-lirc): Likewise. * gnu/packages/mp3.scm (eyed3): Likewise. * gnu/packages/nutrition.scm (gourmet): Likewise. * gnu/packages/openstack.scm (python-hacking, python2-hacking, python-os-testr, python2-os-testr, python-stevedore, python2-stevedore, python-tempest-lib, python2-tempest-lib, python-oslo.log, python2-oslo.log, python-keystoneclient, python2-keystoneclient): Likewise. * gnu/packages/password-utils.scm (assword): Likewise. * gnu/packages/python.scm (python-passlib, python2-passlib, python-babel, python2-babel, python-parse-type, python-pytest, python2-pytest, python-scripttest, python2-scripttest, python-testtools, python2-testtools, python-testscenarios, python2-testscenarios, python-subunit, python2-subunit, python-pbr-0.11, python-pbr, python2-pbr, python-testrepository, python2-testrepository, behave, python-wheel, python2-wheel, python-requests, python2-requests, python-jsonschema, python2-jsonschema, python-pyjwt, python2-pyjwt, python-virtualenv, python2-virtualenv, python-jinja2, python2-jinja2, python-joblib, python2-joblib, python-sphinx, python2-sphinx, python-feedgenerator, python2-feedgenerator, python-scikit-image, python2-scikit-image, python-redis, python2-redis, python2-fastlmm, python-numpydoc, python2-numpydoc, python-matplotlib, python2-matplotlib, python2-pysnptools, python-rpy2, python2-rpy2, python-pillow, python2-pillow, python-pycparser, python2-pycparser, python-cffi, python2-cffi, python-cairocffi, python2-cairocffi, python-drmaa, python2-drmaa, python-pathpy, python2-pathpy, python-simplegeneric, python2-simplegeneric, python-ipython, python2-ipython, python-apsw, python2-apsw, python-lxml, python2-lxml, python-networkx, python2-networkx, python-pyzmq, python2-pyzmq, python-mccabe, python2-mccabe, python-mccabe-0.2.1, python-flake8, python2-flake8, python-flake8-2.2.4, python-mistune, python2-mistune, python-ptyprocess, python2-ptyprocess, python-llfuse, python2-llfuse, python-webob, python2-webob, python-xlrd, python2-xlrd, python-tables, python2-tables, python-pip, python2-pip, python-libarchive-c, python2-libarchive-c, python-docopt, python2-docopt, python-pyrfc3339, python2-pyrfc3339, python-configobj, python2-configobj, python-clint, python2-clint, python-rply, python2-rply, python2-rpython, python-widgetsnbextension, python2-widgetsnbextension jupyter, python-jupyter-console, python2-jupyter-console, python-hy, python2-hy, python-urllib3, python2-urllib3, python-rsa, python2-rsa, python-tox, python2-tox, python2-hypothesis, python-paste, python2-paste, python-pastescript, python2-pastescript, python2-unicodecsv, python-pkgconfig, python2-pkgconfig, python2-rope, python-sqlparse, python2-sqlparse, python-gevent, python2-gevent, python-tabulate, python2-tabulate, python-arrow, python2-arrow, python-cleo, python2-cleo, python-fake-factory, python2-fake-factory, ptpython): Likewise. * gnu/packages/rdf.scm (python-rdflib, python2-rdflib): Likewise. * gnu/packages/terminals.scm (asciinema): Likewise. * gnu/packages/version-control.scm (git-annex-remote-hubic): Likewise. * gnu/packages/xdisorg.scm (arandr): Likewise. --- gnu/packages/admin.scm | 3 +- gnu/packages/backup.scm | 3 +- gnu/packages/bioinformatics.scm | 49 +++----- gnu/packages/docbook.scm | 3 +- gnu/packages/freedesktop.scm | 3 +- gnu/packages/lirc.scm | 3 +- gnu/packages/mp3.scm | 3 +- gnu/packages/nutrition.scm | 6 +- gnu/packages/openstack.scm | 18 +-- gnu/packages/password-utils.scm | 3 +- gnu/packages/python.scm | 243 +++++++++++++-------------------------- gnu/packages/rdf.scm | 3 +- gnu/packages/terminals.scm | 3 +- gnu/packages/version-control.scm | 3 +- gnu/packages/xdisorg.scm | 3 +- 15 files changed, 116 insertions(+), 233 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index b0edc69cad..ee07b3be8a 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1354,8 +1354,7 @@ of supported upstream metrics systems simultaneously.") "1bfc2xiplpad6f2nwi48y0kps7xqnsll85dlz63cy8k5bysl6d20")))) (build-system python-build-system) (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ("python2-pycrypto" ,python2-pycrypto) + `(("python2-pycrypto" ,python2-pycrypto) ("python2-httplib2" ,python2-httplib2) ("python2-passlib" ,python2-passlib) ("python2-nose" ,python2-nose) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 5b1706ea12..94b2e82242 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -66,8 +66,7 @@ "duplicity-test_selection-tmp.patch")))) (build-system python-build-system) (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ("util-linux" ,util-linux))) ;setsid command, for the tests + `(("util-linux" ,util-linux))) ;setsid command, for the tests (inputs `(("python" ,python-2) ("librsync" ,librsync) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 8377e811db..e90281fb5f 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -215,8 +215,7 @@ structure of the predicted RNA.") ("libtool" ,libtool) ("zlib" ,zlib) ("python-nose" ,python2-nose) - ("python-pysam" ,python2-pysam) - ("python-setuptools" ,python2-setuptools))) + ("python-pysam" ,python2-pysam))) (inputs `(("htslib" ,htslib) ("samtools" ,samtools) @@ -530,8 +529,7 @@ intended to behave exactly the same as the original BWK awk.") ("samtools" ,samtools))) (native-inputs `(("python-pyyaml" ,python2-pyyaml) - ("python-nose" ,python2-nose) - ("python-setuptools" ,python2-setuptools))) + ("python-nose" ,python2-nose))) (home-page "https://pythonhosted.org/pybedtools/") (synopsis "Python wrapper for BEDtools programs") (description @@ -1342,8 +1340,7 @@ well as many of the command line options.") `(("python-numpy" ,python2-numpy) ("zlib" ,zlib))) (native-inputs - `(("python-nose" ,python2-nose) - ("python-setuptools" ,python2-setuptools))) + `(("python-nose" ,python2-nose))) (home-page "http://bitbucket.org/james_taylor/bx-python/") (synopsis "Tools for manipulating biological data") (description @@ -1407,7 +1404,6 @@ multiple sequence alignments.") ("zlib" ,zlib))) (native-inputs `(("python-cython" ,python-cython) - ("python-setuptools" ,python-setuptools) ;; Dependencies below are are for tests only. ("samtools" ,samtools) ("bcftools" ,bcftools) @@ -1583,9 +1579,8 @@ databases.") ("python-numpy" ,python2-numpy) ("python-scipy" ,python2-scipy))) (native-inputs - `(("python-mock" ,python2-mock) ; for tests - ("python-pytz" ,python2-pytz) ; for tests - ("python-setuptools" ,python2-setuptools))) + `(("python-mock" ,python2-mock) ; for tests + ("python-pytz" ,python2-pytz))) ; for tests (home-page "https://github.com/YeoLab/clipper") (synopsis "CLIP peak enrichment recognition") (description @@ -1758,8 +1753,7 @@ time.") ("zlib" ,zlib))) (native-inputs `(("python-cython" ,python2-cython) - ("python-nose" ,python2-nose) - ("python-setuptools" ,python2-setuptools))) + ("python-nose" ,python2-nose))) (home-page "http://crossmap.sourceforge.net/") (synopsis "Convert genome coordinates between assemblies") (description @@ -1857,8 +1851,7 @@ preparation protocols.") (alist-delete 'check %standard-phases)))) (native-inputs `(("python-cython" ,python-cython) - ("python-nose" ,python-nose) - ("python-setuptools" ,python-setuptools))) + ("python-nose" ,python-nose))) (home-page "https://code.google.com/p/cutadapt/") (synopsis "Remove adapter sequences from nucleotide sequencing reads") (description @@ -2000,8 +1993,7 @@ trees (phylogenies) and characters.") ;; There is currently a test failure that only happens on some ;; systems, and only using "setup.py test" (lambda _ (zero? (system* "nosetests"))))))) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ("python2-nose" ,python2-nose) + (native-inputs `(("python2-nose" ,python2-nose) ,@(package-native-inputs base)))))) @@ -2029,9 +2021,8 @@ trees (phylogenies) and characters.") ("python-pysam" ,python2-pysam) ("python-pybigwig" ,python2-pybigwig))) (native-inputs - `(("python-mock" ,python2-mock) ;for tests - ("python-pytz" ,python2-pytz) ;for tests - ("python-setuptools" ,python2-setuptools))) + `(("python-mock" ,python2-mock) ;for tests + ("python-pytz" ,python2-pytz))) ;for tests (home-page "https://github.com/fidelram/deepTools") (synopsis "Tools for normalizing and visualizing deep-sequencing data") (description @@ -2687,8 +2678,7 @@ comment or quality sections.") ("python-pysam" ,python2-pysam) ("python-networkx" ,python2-networkx))) (native-inputs - `(("python-cython" ,python2-cython) - ("python-setuptools" ,python2-setuptools))) + `(("python-cython" ,python2-cython))) (home-page "http://grit-bio.org") (synopsis "Tool for integrative analysis of RNA-seq type assays") (description @@ -2934,8 +2924,7 @@ data. It also provides the bgzip, htsfile, and tabix utilities.") ("python-numpy" ,python-numpy) ("python-matplotlib" ,python-matplotlib))) (native-inputs - `(("python-cython" ,python-cython) - ("python-setuptools" ,python-setuptools))) + `(("python-cython" ,python-cython))) (home-page "https://github.com/nboley/idr") (synopsis "Tool to measure the irreproducible discovery rate (IDR)") (description @@ -3423,9 +3412,8 @@ linker_so='gcc -shared'); defines"))))) ("python-scipy" ,python2-scipy) ("python-matplotlib" ,python2-matplotlib))) (native-inputs - `(("python-mock" ,python2-mock) ;for tests - ("python-pytz" ,python2-pytz) ;for tests - ("python-setuptools" ,python2-setuptools))) + `(("python-mock" ,python2-mock) ;for tests + ("python-pytz" ,python2-pytz))) ;for tests (home-page "http://genes.mit.edu/burgelab/miso/index.html") (synopsis "Mixture of Isoforms model for RNA-Seq isoform quantitation") (description @@ -3562,8 +3550,7 @@ files and writing bioinformatics applications.") ("python-pandas" ,python2-pandas) ("python-pysnptools" ,python2-pysnptools))) (native-inputs - `(("python-setuptools" ,python2-setuptools) - ("python-mock" ,python2-mock) + `(("python-mock" ,python2-mock) ("python-nose" ,python2-nose) ("unzip" ,unzip))) (home-page "https://github.com/PMBio/warpedLMM") @@ -3625,8 +3612,7 @@ the phenotype as it models the data.") ("python-h5py" ,python2-h5py))) (native-inputs `(("python-cython" ,python2-cython) - ("python-nose" ,python2-nose) - ("python-setuptools" ,python2-setuptools))) + ("python-nose" ,python2-nose))) (home-page "https://github.com/PacificBiosciences/cDNA_primer") (synopsis "Analyze transcriptome data generated with the Iso-Seq protocol") (description @@ -4750,8 +4736,7 @@ bioinformatics file formats, sequence alignment, and more.") ;; should be removed. `(("python-biopython" ,python2-biopython-1.66))) (native-inputs - `(("python-setuptools" ,python2-setuptools) - ("python-nose" ,python2-nose))) + `(("python-nose" ,python2-nose))) (home-page "http://github.com/fhcrc/seqmagick") (synopsis "Tools for converting and modifying sequence files") (description diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm index 3d18d459bd..8efe417054 100644 --- a/gnu/packages/docbook.scm +++ b/gnu/packages/docbook.scm @@ -185,8 +185,7 @@ by no means limited to these applications.) This package provides XML DTDs.") (build-system python-build-system) ;; TODO: Add xfig/transfig for fig2dev utility (inputs - `(("python-setuptools" ,python-setuptools) - ("texlive" ,texlive) + `(("texlive" ,texlive) ("imagemagick" ,imagemagick) ;for convert ("inkscape" ,inkscape) ;for svg conversion ("docbook" ,docbook-xml) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 456d569063..6408c41894 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -256,8 +256,7 @@ of a the system to know what users are logged in, and where.") (native-inputs `(("shared-mime-info" ,shared-mime-info) ;for tests ("hicolor-icon-theme" ,hicolor-icon-theme) ;for tests - ("python-nose" ,python-nose) - ("python-setuptools" ,python-setuptools))) + ("python-nose" ,python-nose))) (home-page "http://freedesktop.org/wiki/Software/pyxdg") (synopsis "Implementations of freedesktop.org standards in Python") (description diff --git a/gnu/packages/lirc.scm b/gnu/packages/lirc.scm index b8fbeb61ba..d4c2d18ccc 100644 --- a/gnu/packages/lirc.scm +++ b/gnu/packages/lirc.scm @@ -134,5 +134,4 @@ on just one button press.") (lambda _ (zero? (system* "make" "py2"))))))) (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ("python2-cython" ,python2-cython)))))) + `(("python2-cython" ,python2-cython)))))) diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index ceef896a13..201f9c46f6 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -472,8 +472,7 @@ compression format (.mpc files).") (arguments `(#:python ,python-2)) (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ("python2-nose" ,python2-nose) + `(("python2-nose" ,python2-nose) ("python2-sphinx" ,python2-sphinx) ("python2-coverage" ,python2-coverage))) (synopsis "MP3 tag ID3 metadata editor") diff --git a/gnu/packages/nutrition.scm b/gnu/packages/nutrition.scm index 636379806c..9e0430b20a 100644 --- a/gnu/packages/nutrition.scm +++ b/gnu/packages/nutrition.scm @@ -52,11 +52,7 @@ `(("pygtk" ,python2-pygtk) ("sqlalchemy" ,python2-sqlalchemy) ("python-pillow" ,python2-pillow) - ("elib.intl" ,python2-elib.intl) - ;; XXX: This really isn't an input for gourmet but of pillow. Making - ;; it a propagated input in pillow doesn't seem to get its site path - ;; into gourmet's wrapper's PYTHONPATH however... - ("python-setuptools" ,python2-setuptools))) + ("elib.intl" ,python2-elib.intl))) (arguments `(#:python ,python-2 ;exception and print syntax #:tests? #f)) ;tests look bitrotted diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index e216ed06f0..930ce9eceb 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -121,8 +121,7 @@ manner.") ("python-pyflakes-0.8.1" ,python-pyflakes-0.8.1) ("python-six" ,python-six))) (inputs - `(("python-setuptools" ,python-setuptools) - ;; Tests + `(;; Tests ("python-testscenarios" ,python-testscenarios))) (home-page "http://github.com/openstack-dev/hacking") (synopsis "OpenStack hacking guideline enforcement") @@ -221,8 +220,7 @@ tested on Python version 3.2, 2.7 and 2.6.") ("python-subunit" ,python-subunit) ("python-testtools" ,python-testtools))) (inputs - `(("python-babel" ,python-babel) - ("python-setuptools" ,python-setuptools))) + `(("python-babel" ,python-babel))) (home-page "https://www.openstack.org/") (synopsis "Testr wrapper to provide functionality for OpenStack projects") (description @@ -291,8 +289,7 @@ portions of your testing code.") (inputs `(("python-pbr" ,python-pbr))) (native-inputs - `(("python-setuptools" ,python-setuptools) - ;; Tests + `(;; Tests ("python-docutils" ,python-docutils) ("python-mock" ,python-mock) ("python-oslotest" ,python-oslotest) @@ -346,8 +343,7 @@ extensions.") `(("python-babel" ,python-babel) ("python-mock" ,python-mock) ("python-os-testr" ,python-os-testr) - ("python-oslotest" ,python-oslotest) - ("python-setuptools" ,python-setuptools))) + ("python-oslotest" ,python-oslotest))) (home-page "https://www.openstack.org/") (synopsis "OpenStack functional testing library") (description @@ -484,8 +480,7 @@ in an application or library.") ("python-iso8601" ,python-iso8601) ("python-mock" ,python-mock) ("python-oslotest" ,python-oslotest) - ("python-pbr" ,python-pbr) - ("python-setuptools" ,python-setuptools))) + ("python-pbr" ,python-pbr))) (home-page "http://launchpad.net/oslo") (synopsis "Python logging library of the Oslo project") (description @@ -657,8 +652,7 @@ handling.") "1w4csvkah67rfpxylxnvs2s3594i0f9isy8pf4gnsqs5zirvjaa4")))) (build-system python-build-system) (native-inputs - `(("python-setuptools" ,python-setuptools) - ("python-sphinx" ,python-sphinx) + `(("python-sphinx" ,python-sphinx) ;; and some packages for the tests ("openssl" ,openssl) ("python-coverage" ,python-coverage) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 55c14762e9..d6bc00c8f2 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -250,8 +250,7 @@ random passwords that pass the checks.") (native-inputs `(("help2man" ,help2man))) (inputs - `(("python-setuptools" ,python2-setuptools) - ("python2-xdo" ,python2-xdo) + `(("python2-xdo" ,python2-xdo) ("python2-pygpgme" ,python2-pygpgme) ("python2-pygtk" ,python2-pygtk))) (propagated-inputs diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 4afe3f4c12..2f999b1b0f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -463,8 +463,7 @@ pidof, tty, taskset, pmap.") "1z27wdxs5rj5xhhqfzvzn3yg682irkxw6dcs5jj7mcf97psk8gd8")))) (build-system python-build-system) (native-inputs - `(("python-nose" ,python-nose) - ("python-setuptools" ,python-setuptools))) + `(("python-nose" ,python-nose))) (inputs `(("python-py-bcrypt" ,python-py-bcrypt))) (arguments @@ -667,8 +666,7 @@ using Python 2.4 or higher and provides access to the Olson timezone database.") "0k43pi0p1dwpds2w0km3fw92wixzxv2vw7p09capxmjz5cfh23lw")))) (build-system python-build-system) (inputs - `(("python-pytz" ,python-pytz) - ("python-setuptools" ,python-setuptools))) + `(("python-pytz" ,python-pytz))) (arguments `(#:tests? #f)) ; no test target (home-page "http://babel.pocoo.org/") (synopsis @@ -1371,8 +1369,7 @@ backported for previous versions of Python from 2.4 to 3.3.") "0iv1c34npr4iynwpgv1vkjx9rjd18a85ir8c01gc5f7wp8iv7l1x")))) (build-system python-build-system) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-six" ,python-six) + `(("python-six" ,python-six) ("python-parse" ,python-parse))) (arguments '(#:tests? #f)) ;TODO: tests require pytest (home-page "https://github.com/jenisys/parse_type") @@ -1641,8 +1638,7 @@ code introspection, and logging.") "@pytest.mark.xfail\n def test_remove_dir_prefix(self):"))))) (build-system python-build-system) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-py" ,python-py) + `(("python-py" ,python-py) ("python-nose" ,python-nose) ("python-mock" ,python-mock))) (home-page "http://pytest.org") @@ -1858,8 +1854,7 @@ result back.") "0f4w84k8ck82syys7yg9maz93mqzc8p5ymis941x034v44jzq74m")))) (build-system python-build-system) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-pytest" ,python-pytest))) + `(("python-pytest" ,python-pytest))) (home-page "http://pythonpaste.org/scripttest/") (synopsis "Python library to test command-line scripts") (description "Scripttest is a Python helper library for testing @@ -1887,8 +1882,7 @@ subprocess and see the output as well as any file modifications.") (propagated-inputs `(("python-mimeparse" ,python-mimeparse))) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-extras" ,python-extras))) + `(("python-extras" ,python-extras))) (home-page "https://github.com/testing-cabal/testtools") (synopsis "Extensions to the Python standard library unit testing framework") @@ -1916,8 +1910,7 @@ compatibility.") "1671jvrvqlmbnc42j7pc5y6vc37q44aiwrq0zic652pxyy2fxvjg")))) (build-system python-build-system) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-testtools" ,python-testtools) + `(("python-testtools" ,python-testtools) ("python-mimeparse" ,python-mimeparse))) (home-page "https://launchpad.net/testscenarios") (synopsis "Pyunit extension for dependency injection") @@ -1969,8 +1962,7 @@ use of resources by test cases.") "1nkw9wfbvizmpajbj3in8ns07g7lwkiv8hip14jjlwk3cacls6jv")))) (build-system python-build-system) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-testtools" ,python-testtools) + `(("python-testtools" ,python-testtools) ("python-mimeparse" ,python-mimeparse) ("python-testscenarios" ,python-testscenarios))) (home-page "http://launchpad.net/subunit") @@ -2033,9 +2025,7 @@ Python tests.") (arguments `(#:tests? #f)) ;; Most tests seem to use the Internet. (inputs - `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16) - ("python-pip" ,python-pip) - ("python-setuptools" ,python-setuptools))) + `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16))) (home-page "https://launchpad.net/pbr") (synopsis "Change the default behavior of Python’s setuptools") (description @@ -2070,8 +2060,7 @@ and sensible default behaviors into your setuptools run.") `(("python-fixtures" ,python-fixtures) ("python-mimeparse" ,python-mimeparse) ("python-mock" ,python-mock) - ("python-setuptools" ,python-setuptools) - ("python-six" ,python-six) + ("python-six" ,python-six) ("python-sphinx" ,python-sphinx) ("python-testrepository" ,python-testrepository) ("python-testresources" ,python-testresources) @@ -2137,8 +2126,7 @@ Python tests.") `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16) ("python-testtools" ,python-testtools))) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-subunit" ,python-subunit) + `(("python-subunit" ,python-subunit) ("python-mimeparse" ,python-mimeparse))) (home-page "https://launchpad.net/testrepository") (synopsis "Database for Python test results") @@ -2240,8 +2228,7 @@ backported from Python 2.7 for Python 2.4+.") "1iypp6z46r19n4xmgx6m1lwmlpfjh8vapq8izigrqlaarvp2y64c")))) (build-system python-build-system) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-six" ,python-six) + `(("python-six" ,python-six) ("python-parse" ,python-parse) ("python-parse-type" ,python-parse-type))) (arguments `(#:tests? #f)) ;TODO: tests require nose>=1.3 and @@ -2369,8 +2356,7 @@ with sensible defaults out of the box.") "0j0n38hg1jvrmyy68f9ikvzq1gs9g0sx4ws7maf8wi3bwbbqmfqy")))) (build-system python-build-system) (native-inputs - `(("python-setuptools" ,python-setuptools) - ("python-jsonschema" ,python-jsonschema) + `(("python-jsonschema" ,python-jsonschema) ("python-pytest-cov" ,python-pytest-cov))) (home-page "https://bitbucket.org/pypa/wheel/") (synopsis "Format for built Python packages") @@ -2405,8 +2391,7 @@ installed with a newer @code{pip} or with wheel's own command line utility.") "0zsqrzlybf25xscgi7ja4s48y2abf9wvjkn47wh984qgs1fq2xy5")))) (build-system python-build-system) (native-inputs - `(("python-setuptools" ,python-setuptools) - ("python-py" ,python-py) + `(("python-py" ,python-py) ("python-pytest" ,python-pytest) ("python-pytest-cov" ,python-pytest-cov) ("python-wheel" ,python-wheel))) @@ -2493,7 +2478,6 @@ version numbers.") (package (inherit jsonschema) (native-inputs `(("python2-mock" ,python2-mock) - ("python2-setuptools" ,python2-setuptools) ,@(package-native-inputs jsonschema))) (propagated-inputs `(("python2-functools32" ,python2-functools32)))))) @@ -2535,8 +2519,7 @@ somewhat intelligeble.") "1556v2jppd8mjkkj66pxb5rcazm35jq81r233mdl8hfmz9n3icp1")))) (build-system python-build-system) (native-inputs - `(("python-setuptools" ,python-setuptools) - ("python-pytest-runner" ,python-pytest-runner))) + `(("python-pytest-runner" ,python-pytest-runner))) (arguments '(#:tests? #f)) ; test suite doesn't work (home-page "http://github.com/progrium/pyjwt") @@ -2665,8 +2648,7 @@ object.") (("skipif.*") "skipif(True, reason=\"Guix\")\n")) (zero? (system* "py.test"))))))) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-mock" ,python-mock) + `(("python-mock" ,python-mock) ("python-pytest" ,python-pytest))) (home-page "https://virtualenv.pypa.io/") (synopsis "Virtual Python environment builder") @@ -2714,8 +2696,7 @@ for Python.") "1x0v41lp5m1pjix3l46zx02b7lqp2hflgpnxwkywxynvi3zz47xw")))) (build-system python-build-system) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-markupsafe" ,python-markupsafe))) + `(("python-markupsafe" ,python-markupsafe))) (home-page "http://jinja.pocoo.org/") (synopsis "Python template engine") (description @@ -2778,8 +2759,7 @@ logic-free templating system Mustache.") (string-append "@SkipTest\n" line))) #t))))) (native-inputs - `(("python-setuptools" ,python-setuptools) - ("python-nose" ,python-nose) + `(("python-nose" ,python-nose) ("python-sphinx" ,python-sphinx) ("python-docutils" ,python-docutils) ("python-numpydoc" ,python-numpydoc))) @@ -2860,8 +2840,7 @@ reStructuredText.") "011xizm3jnmf4cvs5i6kgf6c5nn046h79i8j0vd0f27yw9j3p4wl")))) (build-system python-build-system) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-jinja2" ,python-jinja2) + `(("python-jinja2" ,python-jinja2) ("python-docutils" ,python-docutils) ("python-pygments" ,python-pygments))) (home-page "http://sphinx-doc.org/") @@ -2918,8 +2897,7 @@ sources.") "0mkimp1fpdan4p3882vzcws4l594k71ich4g0wq97jbra7p602n0")))) (build-system python-build-system) (native-inputs - `(("python-setuptools" ,python-setuptools) - ("python-pytz" ,python-pytz) + `(("python-pytz" ,python-pytz) ("python-six" ,python-six))) (home-page "https://github.com/getpelican/feedgenerator") (synopsis @@ -3072,8 +3050,7 @@ mining and data analysis.") ("python-six" ,python-six) ("python-pillow" ,python-pillow))) (native-inputs - `(("python-cython" ,python-cython) - ("python-setuptools" ,python-setuptools))) + `(("python-cython" ,python-cython))) (home-page "http://scikit-image.org/") (synopsis "Image processing in Python") (description @@ -3108,8 +3085,7 @@ mining and data analysis.") ;; Tests require a running Redis server (arguments '(#:tests? #f)) (native-inputs - `(("python-setuptools" ,python-setuptools) - ("python-pytest" ,python-pytest))) + `(("python-pytest" ,python-pytest))) (home-page "https://github.com/andymccurdy/redis-py") (synopsis "Redis Python client") (description @@ -3200,8 +3176,7 @@ writing C extensions for Python as easy as Python itself.") (build-system python-build-system) (arguments `(#:python ,python-2)) (native-inputs - `(("python2-pytest" ,python2-pytest) ; needed for running tests - ("python2-setuptools" ,python2-setuptools))) + `(("python2-pytest" ,python2-pytest))) ; needed for running tests (home-page "https://rpython.readthedocs.org") (synopsis "Framework for implementing interpreters and virtual machines") (description "RPython is a translation and support framework for @@ -3304,8 +3279,7 @@ capabilities.") ("python2-pysnptools" ,python2-pysnptools))) (native-inputs `(("unzip" ,unzip) - ("python2-mock" ,python2-mock) - ("python2-setuptools" ,python2-setuptools))) + ("python2-mock" ,python2-mock))) (home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/fastlmm/") (synopsis "Perform genome-wide association studies on large data sets") (description @@ -3445,8 +3419,7 @@ that client code uses to construct the grammar directly in Python code.") (("3") "2")))))) (build-system python-build-system) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-docutils" ,python-docutils) + `(("python-docutils" ,python-docutils) ("python-sphinx" ,python-sphinx) ("python-nose" ,python-nose))) (home-page "https://pypi.python.org/pypi/numpydoc") @@ -3526,8 +3499,7 @@ transcendental functions).") ("python-pycairo" ,python-pycairo) ("python-cairocffi" ,python-cairocffi))) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-dateutil" ,python-dateutil-2) + `(("python-dateutil" ,python-dateutil-2) ("python-six" ,python-six) ("python-pytz" ,python-pytz) ("python-numpy" ,python-numpy-bootstrap) @@ -3653,8 +3625,7 @@ toolkits.") ("python2-pandas" ,python2-pandas) ("python2-six" ,python2-six))) (native-inputs - `(("unzip" ,unzip) - ("python2-setuptools" ,python2-setuptools))) + `(("unzip" ,unzip))) (home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/") (synopsis "Library for reading and manipulating genetic data") (description @@ -3683,8 +3654,7 @@ operators such as union, intersection, and difference.") ("pcre" ,pcre) ("r" ,r))) (native-inputs - `(("python-setuptools" ,python-setuptools) - ("zlib" ,zlib))) + `(("zlib" ,zlib))) (home-page "http://rpy.sourceforge.net/") (synopsis "Python interface to the R language") (description "rpy2 is a redesign and rewrite of rpy. It is providing a @@ -4148,8 +4118,7 @@ services for your Python modules and applications.") "0xkv0p1d73gz0a1qaasf0ai4262g8f334j07vd60bjrxs2wr3nmj")))) (build-system python-build-system) (native-inputs - `(("python-setuptools" ,python-setuptools) - ("python-nose" ,python-nose))) + `(("python-nose" ,python-nose))) (inputs `(("freetype" ,freetype) ("lcms" ,lcms) @@ -4211,8 +4180,7 @@ a general image processing tool.") (outputs '("out" "doc")) (build-system python-build-system) (native-inputs - `(("pkg-config" ,pkg-config) - ("python-setuptools" ,python-setuptools))) + `(("pkg-config" ,pkg-config))) (arguments `(#:phases (alist-replace @@ -4263,8 +4231,7 @@ a front-end for C compilers or analysis tools.") (native-inputs `(("pkg-config" ,pkg-config) ("python-sphinx" ,python-sphinx) - ("python-pytest" ,python-pytest) - ("python-setuptools" ,python-setuptools))) + ("python-pytest" ,python-pytest))) (arguments `(#:phases (alist-cons-after @@ -4349,8 +4316,7 @@ support for Python 3 and PyPy. It is based on cffi.") (native-inputs `(("pkg-config" ,pkg-config) ("python-sphinx" ,python-sphinx) - ("python-docutils" ,python-docutils) - ("python-setuptools" ,python-setuptools))) + ("python-docutils" ,python-docutils))) (propagated-inputs `(("python-xcffib" ,python-xcffib))) ; used at run time (arguments @@ -4427,8 +4393,7 @@ etc. The core of this module is a decorator factory.") ;; should be set to the path of the libdrmaa library. (arguments '(#:tests? #f)) (native-inputs - `(("python-nose" ,python-nose) - ("python-setuptools" ,python-setuptools))) + `(("python-nose" ,python-nose))) (home-page "https://pypi.python.org/pypi/drmaa") (synopsis "Python bindings for the DRMAA library") (description @@ -4536,8 +4501,7 @@ them as the version argument or in a SCM managed file.") (propagated-inputs `(("python-appdirs" ,python-appdirs))) (native-inputs - `(("python-setuptools" ,python-setuptools) - ("python-setuptools-scm" ,python-setuptools-scm) + `(("python-setuptools-scm" ,python-setuptools-scm) ("python-pytest" ,python-pytest) ("python-pytest-runner" ,python-pytest-runner))) (home-page "http://github.com/jaraco/path.py") @@ -4592,8 +4556,7 @@ PickleShare.") (base32 "0wwi1c6md4vkbcsfsf8dklf3vr4mcdj4mpxkanwgb6jb1432x5yw")))) (build-system python-build-system) (native-inputs - `(("python-setuptools" ,python-setuptools) - ("unzip" ,unzip))) + `(("unzip" ,unzip))) (home-page "http://cheeseshop.python.org/pypi/simplegeneric") (synopsis "Python module for simple generic functions") (description @@ -4828,8 +4791,7 @@ tools for mocking system commands and recording calls to those.") ("python-nose" ,python-nose) ("python-sphinx" ,python-sphinx) ("texlive" ,texlive) - ("texinfo" ,texinfo) - ("python-setuptools" ,python-setuptools))) + ("texinfo" ,texinfo))) (arguments `(#:phases (modify-phases %standard-phases @@ -5091,8 +5053,7 @@ implementation of D-Bus.") "0w4jb0wpx785qw42r3h4fh7gl5w2968q48i7gygybsfxck8nzffs")))) (build-system python-build-system) (inputs - `(("python-setuptools" ,python-setuptools) - ("sqlite" ,sqlite))) + `(("sqlite" ,sqlite))) (arguments `(#:phases ;; swap check and install phases @@ -5127,8 +5088,7 @@ translate the complete SQLite API into Python.") (build-system python-build-system) (inputs `(("libxml2" ,libxml2) - ("libxslt" ,libxslt) - ("python-setuptools" ,python-setuptools))) + ("libxslt" ,libxslt))) (home-page "http://lxml.de/") (synopsis "Python XML processing library") @@ -5283,8 +5243,7 @@ interfaces in an easy and portable manner.") (propagated-inputs `(("python-decorator" ,python-decorator))) (native-inputs - `(("python-setuptools" ,python-setuptools) - ("python-nose" ,python-nose))) + `(("python-nose" ,python-nose))) (home-page "http://networkx.github.io/") (synopsis "Python module for creating and manipulating graphs and networks") (description @@ -5602,8 +5561,7 @@ applications.") `(("zeromq" ,zeromq))) (native-inputs `(("pkg-config" ,pkg-config) - ("python-nose" ,python-nose) - ("python-setuptools" ,python-setuptools))) + ("python-nose" ,python-nose))) (home-page "http://github.com/zeromq/pyzmq") (synopsis "Python bindings for 0MQ") (description @@ -5671,8 +5629,7 @@ PEP 8.") (build-system python-build-system) (inputs `(("python-pytest" ,python-pytest) - ("python-pytest-runner" ,python-pytest-runner) - ("python-setuptools" ,python-setuptools))) + ("python-pytest-runner" ,python-pytest-runner))) (home-page "https://github.com/flintwork/mccabe") (synopsis "McCabe checker, plugin for flake8") (description @@ -5692,8 +5649,7 @@ complexity of Python source code.") (uri (pypi-uri "mccabe" version)) (sha256 (base32 - "0fi4a81kr5bcv5p4xgibqr595hyj5dafkqgsmfk96mfy8w71fajs")))) - (inputs `(("python-setuptools" ,python-setuptools))))) + "0fi4a81kr5bcv5p4xgibqr595hyj5dafkqgsmfk96mfy8w71fajs")))))) (define-public python2-mccabe-0.2.1 (package-with-python2 python-mccabe-0.2.1)) @@ -5749,8 +5705,7 @@ complexity of Python source code.") "0bs9cz4fr99r2rwig1b8jwaadl1nan7kgpdzqwj0bwbckwbmh7nc")))) (build-system python-build-system) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-pep8" ,python-pep8) + `(("python-pep8" ,python-pep8) ("python-pyflakes" ,python-pyflakes) ("python-mccabe" ,python-mccabe) ("python-mock" ,python-mock) @@ -5770,8 +5725,7 @@ complexity of Python source code.") (define-public python-flake8-2.2.4 (package (inherit python-flake8) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-pep8" ,python-pep8-1.5.7) + `(("python-pep8" ,python-pep8-1.5.7) ("python-pyflakes" ,python-pyflakes-0.8.1) ("python-mccabe" ,python-mccabe-0.2.1) ("python-mock" ,python-mock) @@ -5804,8 +5758,7 @@ complexity of Python source code.") "17zqjp9m4d1w3jf2rbbq5xshcw24q1vlcv24gkgfqqyyymajxahx")))) (build-system python-build-system) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-nose" ,python-nose) + `(("python-nose" ,python-nose) ("python-cython" ,python-cython))) (home-page "https://github.com/lepture/mistune") (synopsis "Markdown parser in pure Python") @@ -5864,8 +5817,7 @@ markdown_py is also provided to convert Markdown files to HTML.") "0nggns5kikn32yyda2zrj1xdmh49pi3v0drggcdwljbv36r8zdyw")))) (build-system python-build-system) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-nose" ,python-nose))) + `(("python-nose" ,python-nose))) (arguments `(#:phases (modify-phases %standard-phases @@ -6016,8 +5968,7 @@ should be stored on various operating systems.") `(("fuse" ,fuse) ("attr" ,attr))) (native-inputs - `(("pkg-config" ,pkg-config) - ("python-setuptools" ,python-setuptools))) + `(("pkg-config" ,pkg-config))) (synopsis "Python bindings for FUSE") (description "Python-LLFUSE is a set of Python bindings for the low level FUSE API.") @@ -6187,8 +6138,7 @@ fractional seconds) of a clock which never goes backwards.") "02bhhzijfhv8hmi1i54d4b0v43liwhnywhflvxsv4x3zax9s3afq")))) (build-system python-build-system) (inputs - `(("python-nose" ,python-nose) - ("python-setuptools" ,python-setuptools))) + `(("python-nose" ,python-nose))) (home-page "http://webob.org/") (synopsis "WSGI request and response object") (description @@ -6216,8 +6166,7 @@ object to help create WSGI responses.") ;; Current test in setup.py does not work as of 1.0.0, so use nose to ;; run tests instead for now. (replace 'check (lambda _ (zero? (system* "nosetests"))))))) - (native-inputs `(("python-nose" ,python-nose) - ("python-setuptools" ,python-setuptools))) + (native-inputs `(("python-nose" ,python-nose))) (home-page "http://www.python-excel.org/") (synopsis "Library for extracting data from Excel files") (description "This packages provides a library to extract data from @@ -6296,8 +6245,7 @@ printing of sub-tables by specifying a row range.") `(("python-numexpr" ,python-numexpr) ("python-numpy" ,python-numpy))) (native-inputs - `(("python-setuptools" ,python-setuptools) - ("python-cython" ,python-cython) + `(("python-cython" ,python-cython) ("pkg-config" ,pkg-config))) (inputs `(("hdf5" ,hdf5) @@ -6595,8 +6543,7 @@ library.") "08cm8d4228fj0qnrysy3qv1a6022zr3dcs25amd14lgxil6vvx26")))) (build-system python-build-system) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-virtualenv" ,python-virtualenv) + `(("python-virtualenv" ,python-virtualenv) ;; Tests ("python-mock" ,python-mock) ("python-pytest" ,python-pytest) @@ -6712,8 +6659,7 @@ a hash value.") (close-port port) #t)))))) (inputs - `(("python-setuptools" ,python-setuptools) - ("libarchive" ,libarchive))) + `(("libarchive" ,libarchive))) (home-page "https://github.com/Changaco/python-libarchive-c") (synopsis "Python interface to libarchive") (description @@ -6995,8 +6941,7 @@ interactive computing.") (propagated-inputs `(("python-notebook" ,python-notebook))) (native-inputs - `(("python-nose" ,python-nose) - ("python-setuptools" ,python-setuptools))) + `(("python-nose" ,python-nose))) (home-page "http://ipython.org") (synopsis "IPython HTML widgets for Jupyter") (description "This package provides interactive HTML widgets for Jupyter @@ -7055,8 +7000,7 @@ in the data.") ("python-ipython" ,python-ipython) ("python-jupyter-client" ,python-jupyter-client) ("python-prompt-toolkit" ,python-prompt-toolkit) - ("python-pygments" ,python-pygments) - ("python-setuptools" ,python-setuptools))) + ("python-pygments" ,python-pygments))) (home-page "https://jupyter.org") (synopsis "Jupyter terminal console") (description "This package provides a terminal-based console frontend for @@ -7086,8 +7030,7 @@ Jupyter kernels such as IJulia and IRKernel.") ("python-ipywidgets" ,python-ipywidgets) ("python-jupyter-console" ,python-jupyter-console) ("python-nbconvert" ,python-nbconvert) - ("python-notebook" ,python-notebook) - ("python-setuptools" ,python-setuptools))) + ("python-notebook" ,python-notebook))) (home-page "http://jupyter.org") (synopsis "Web application for interactive documents") (description @@ -7139,8 +7082,7 @@ automatically detect a wide range of file encodings.") "16bf890xbdz3m30rsv2qacklh2rdn1zrfspfnwzx9g7vwz8yw4r1")))) (build-system python-build-system) (native-inputs - `(("python-pytest" ,python-pytest) - ("python-setuptools" ,python-setuptools))) + `(("python-pytest" ,python-pytest))) (arguments `(#:phases (alist-replace 'check @@ -7561,8 +7503,7 @@ This allows one to make simple text-mode user interfaces on Unix-like systems") (propagated-inputs `(("python-pytz" ,python-pytz))) (native-inputs - `(("python-nose" ,python-nose) - ("python-setuptools" ,python-setuptools))) + `(("python-nose" ,python-nose))) (home-page "https://github.com/kurtraschke/pyRFC3339") (synopsis "Python timestamp library") (description "Python library for generating and parsing RFC 3339-compliant @@ -7615,8 +7556,7 @@ addon modules.") (patches (search-patches "python-configobj-setuptools.patch")))) (build-system python-build-system) (native-inputs - `(("python-setuptools" ,python-setuptools) - ("python-six" ,python-six))) + `(("python-six" ,python-six))) (synopsis "Config file reading, writing and validation") (description "ConfigObj is a simple but powerful config file reader and writer: an ini file round tripper. Its main feature is that it is very easy to @@ -8115,8 +8055,7 @@ Blog, News or Announcements section to a Sphinx website.") "1an5lkkqk1zha47198p42ji3m94xmzx1a03dn7866m87n4r4q8h5")))) (build-system python-build-system) (inputs - `(("python-args" ,python-args) - ("python-setuptools" ,python-setuptools))) + `(("python-args" ,python-args))) (home-page "https://github.com/kennethreitz/clint") (synopsis "Command-line interface tools") (description @@ -8161,8 +8100,7 @@ Abstract Syntax Tree.") "12rp1d9ba7nvd5rhaxi6xzx1rm67r1k1ylsrkzhpwnphqpb06cvj")))) (build-system python-build-system) (inputs - `(("python-appdirs" ,python-appdirs) - ("python-setuptools" ,python-setuptools))) + `(("python-appdirs" ,python-appdirs))) (home-page "https://github.com/alex/rply") (synopsis "Parser generator for Python") (description @@ -8188,8 +8126,7 @@ with a new public API, and RPython support.") (inputs `(("python-astor" ,python-astor) ("python-clint" ,python-clint) - ("python-rply" ,python-rply) - ("python-setuptools" ,python-setuptools))) + ("python-rply" ,python-rply))) (home-page "http://hylang.org/") (synopsis "Lisp frontend to Python") (description @@ -8326,8 +8263,7 @@ concurrent.futures package from Python 3.2") (build-system python-build-system) (arguments `(#:tests? #f)) (native-inputs - `(("python-setuptools" ,python-setuptools) - ;; some packages for tests + `(;; some packages for tests ("python-nose" ,python-nose) ("python-mock" ,python-mock) ("python-tornado" ,python-tornado))) @@ -8382,8 +8318,7 @@ text.") "1dcxvszbikgzh99ybdc7jq0zb9wspy2ds8z9mjsqiyv3q884xpr5")))) (build-system python-build-system) (inputs - `(("python-pyasn1" ,python-pyasn1) - ("python-setuptools" ,python-setuptools))) + `(("python-pyasn1" ,python-pyasn1))) (synopsis "Pure-Python RSA implementation") (description "Python-RSA is a pure-Python RSA implementation. It supports encryption and decryption, signing and verifying signatures, and key @@ -8433,8 +8368,7 @@ Pytest but stripped of Pytest specific details.") ;; pytest breaks other packages. '(#:tests? #f)) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-pluggy" ,python-pluggy) + `(("python-pluggy" ,python-pluggy) ("python-py" ,python-py) ("python-virtualenv" ,python-virtualenv) ("python-pytest" ,python-pytest))) @@ -8558,8 +8492,7 @@ seamlessly into your existing Python unit testing work flow.") (strip-python2-variant python-hypothesis)))) (package (inherit hypothesis) (native-inputs - `(("python2-enum34" ,python2-enum34) - ("python2-setuptools" ,python2-setuptools)))))) + `(("python2-enum34" ,python2-enum34)))))) (define-public python-pytest-subtesthack (package @@ -8796,10 +8729,9 @@ file.") (build-system python-build-system) (native-inputs `(("python-nose" ,python-nose))) + ;; Note: setuptools used at runtime for pkg_resources (propagated-inputs - `(;; Uses pkg_resources provided by setuptools internally. - ("python-setuptools" ,python-setuptools) - ("python-six" ,python-six))) + `(("python-six" ,python-six))) (arguments '(;; Tests don't pass on Python 3, but work fine on Python 2. ;; (As of 2.0.2, Python 3 support in Paste is presently a bit broken, @@ -8840,10 +8772,9 @@ follows ideas flowing from WSGI (Web Standard Gateway Interface).") (build-system python-build-system) (native-inputs `(("python-nose" ,python-nose))) + ;; Note: setuptools used at runtime for pkg_resources (propagated-inputs - `(;; Uses pkg_resources provided by setuptools internally. - ("python-setuptools" ,python-setuptools) - ("python-paste" ,python-paste) + `(("python-paste" ,python-paste) ("python-pastedeploy" ,python-pastedeploy))) (home-page "http://pythonpaste.org/script/") (arguments @@ -9456,8 +9387,7 @@ library.") "10qsqdjpbc85fykc1vgcs8xwbgn4l2l52c8d83xf1q59pwyn79bw")))) (build-system python-build-system) (native-inputs - `(("python-setuptools" ,python-setuptools) - ("python-pytest" ,python-pytest))) + `(("python-pytest" ,python-pytest))) (home-page "http://bitbucket.org/mchaput/whoosh") (synopsis "Full text indexing, search, and spell checking library") (description @@ -9527,8 +9457,7 @@ anymore.") (arguments `(#:python ,python-2)) (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ("python2-six" ,python2-six))) + `(("python2-six" ,python2-six))) (home-page "http://pypi.python.org/pypi/pathlib2/") (synopsis "Object-oriented file system paths - backport of standard pathlib module") @@ -9596,8 +9525,7 @@ encoding algorithms to do fuzzy string matching.") `(;; It supports Python 3, but Python 3 can already do Unicode CSV. #:python ,python-2)) (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ("python2-unittest2" ,python2-unittest2))) + `(("python2-unittest2" ,python2-unittest2))) (home-page "https://github.com/jdunck/python-unicodecsv") (synopsis "Unicode CSV module for Python 2") (description "Unicodecsv is a drop-in replacement for Python 2.7's CSV @@ -9752,8 +9680,7 @@ CloudFront content delivery network.") "1pw0kmvc57sjmaxi6c54fqsnihqj6hvhc9y1vaz36axafzqam7bh")))) (build-system python-build-system) (native-inputs - `(("python-nose" ,python-nose) - ("python-setuptools" ,python-setuptools))) + `(("python-nose" ,python-nose))) (inputs `(("pkg-config" ,pkg-config))) (arguments @@ -9955,8 +9882,7 @@ Python. It generates C++ code and a Makefile.")) `(#:python ,python-2)) (build-system python-build-system) (native-inputs - `(("python2-unittest2" ,python2-unittest2) - ("python2-setuptools" ,python2-setuptools))) + `(("python2-unittest2" ,python2-unittest2))) (home-page "https://github.com/python-rope/rope") (synopsis "Refactoring library for Python") (description "Rope is a refactoring library for Python. It facilitates @@ -10049,8 +9975,7 @@ multiple processes (imagine multiprocessing, billiard, futures, celery etc). (system* "2to3" "--no-diff" "-wn" "sqlparse" "tests")) (zero? (system* "py.test"))))))) (native-inputs - `(("python-pytest" ,python-pytest) - ("python-setuptools" ,python-setuptools))) + `(("python-pytest" ,python-pytest))) (home-page "https://github.com/andialbrecht/sqlparse") (synopsis "Non-validating SQL parser") (description "Sqlparse is a non-validating SQL parser for Python. It @@ -10107,8 +10032,7 @@ are synchronized with data exchanges on \"channels\".") (propagated-inputs `(("python-greenlet" ,python-greenlet))) (native-inputs - `(("python-setuptools" ,python-setuptools) - ("python-six" ,python-six))) + `(("python-six" ,python-six))) (inputs `(("c-ares" ,c-ares) ("libev" ,libev))) @@ -10219,8 +10143,7 @@ It uses LR parsing and does extensive error checking.") (("from common") "from nose.tools"))))) (build-system python-build-system) (native-inputs - `(("python-setuptools" ,python-setuptools) - ;; For testing + `(;; For testing ("python-nose" ,python-nose))) (home-page "https://bitbucket.org/astanin/python-tabulate") (synopsis "Pretty-print tabular data") @@ -10379,8 +10302,7 @@ objects, patterned after the Mocha library for Ruby.") "1bz7hkdgpqcjs866y58z8jywpy7al0f4rxdr00bh2l5qddyw245j")))) (build-system python-build-system) (native-inputs - `(("python-setuptools" ,python-setuptools) - ;; For testing + `(;; For testing ("python-chai" ,python-chai) ("python-simplejson" ,python-simplejson))) (propagated-inputs @@ -10451,8 +10373,7 @@ Wikipedia code samples at "1k2dcl6mqpn5bljyl6w42rqyd9mb3y9kh2mg7m2x3kfjwvg0rpva")))) (build-system python-build-system) (native-inputs - `(("python-setuptools" ,python-setuptools) - ;; For testing + `(;; For testing ("python-mock" ,python-mock) ("python-pytest" ,python-pytest))) (propagated-inputs @@ -10577,8 +10498,7 @@ parsing UK postcodes.") "0vs0dkmg0dlaxf8w6q2i3k0i03gmp56ablldv7ci9x3nbadkn71g")))) (build-system python-build-system) (native-inputs - `(("python-setuptools" ,python-setuptools) - ;; For testing + `(;; For testing ("python-email-validator" ,python-email-validator) ("python-mock" ,python-mock) ("python-ukpostcodeparser" ,python-ukpostcodeparser))) @@ -10763,8 +10683,7 @@ characters, mouse support, and auto suggestions.") `(("python-docopt" ,python-docopt) ("python-jedi" ,python-jedi) ("python-prompt-toolkit" ,python-prompt-toolkit) - ("python-pygments" ,python-pygments) - ("python-setuptools" ,python-setuptools))) + ("python-pygments" ,python-pygments))) (home-page "https://github.com/jonathanslenders/ptpython") (synopsis "Python Read-Eval-Print-Loop with nice IDE-like features") (description diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm index d0a362c3a0..1a8d13369b 100644 --- a/gnu/packages/rdf.scm +++ b/gnu/packages/rdf.scm @@ -318,8 +318,7 @@ ideal (e.g. in LV2 implementations or embedded applications).") (inputs `(("python-html5lib" ,python-html5lib) ("python-isodate" ,python-isodate) - ("python-pyparsing" ,python-pyparsing) - ("python-setuptools" ,python-setuptools))) + ("python-pyparsing" ,python-pyparsing))) (home-page "https://github.com/RDFLib/rdflib") (synopsis "Python RDF library") diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 97dd0a82bd..e1076c7c60 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -161,8 +161,7 @@ insert mode and command mode where keybindings have different functions.") (("'tput'") (string-append "'" ncurses "/bin/tput'")))) #t))))) - (inputs `(("ncurses" ,ncurses) - ("python-setuptools" ,python-setuptools))) + (inputs `(("ncurses" ,ncurses))) (home-page "https://asciinema.org") (synopsis "Terminal session recorder") (description diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index e06a611164..5909a9f9db 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -1156,8 +1156,7 @@ Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.") (build-system python-build-system) (arguments `(#:python ,python-2)) (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ;; for the tests + `(;; for the tests ("python2-six" ,python2-six))) (propagated-inputs `(("python2-dateutil" ,python2-dateutil-2) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index a26c716866..c38bf9da78 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -91,8 +91,7 @@ (inputs `(("pygtk" ,python2-pygtk) ("xrandr" ,xrandr))) (native-inputs `(("gettext" ,gettext-minimal) - ("python-docutils" ,python2-docutils) - ("python-setuptools" ,python2-setuptools))) + ("python-docutils" ,python2-docutils))) (home-page "https://christian.amsuess.com/tools/arandr/") (synopsis "Another RandR graphical user interface") ;; TRANSLATORS: "X11 resize-and-rotate" should not be translated. -- cgit v1.2.3 From 00e10c6e674f0f292d5821bc4a513d48f4d1d164 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Wed, 28 Sep 2016 13:31:42 +0200 Subject: gnu: Remove python-setuptools and python2-setuptools from inputs (part 3) This patch contains the changes where setuptools are used in an inherited package and removing this input keeps the need for inheriting the package. * gnu/packages/bioinformatics.scm (python2-biom-format): Remove python-setuptools respective python2-setuptools from [inputs], [native-inputs] and [propagated-inputs] in Python 2 packages inheriting from a Python 3 package. * gnu/packages/python.scm (python2-pytest-mock, python2-oauthlib, python2-seaborn, python2-tornado, python2-terminado, python2-rauth, python2-anyjson, python2-amqp, python2-kombu, python2-billiard, python2-celery, python2-jellyfish, python2-binaryornot, python2-natsort, python2-graphene): Likewise. * gnu/packages/statistics.scm (python2-statsmodels): Likewise. --- gnu/packages/bioinformatics.scm | 4 +--- gnu/packages/python.scm | 51 +++++++++++------------------------------ gnu/packages/statistics.scm | 5 +--- 3 files changed, 15 insertions(+), 45 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index e90281fb5f..a552686328 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -584,9 +584,7 @@ e.g. microbiome samples, genomes, metagenomes.") (substitute* "setup.py" (("install_requires.append\\(\"pyqi\"\\)") "pass")) #t))) - ,@(package-arguments base))) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + ,@(package-arguments base)))))) (define-public bioperl-minimal (let* ((inputs `(("perl-module-build" ,perl-module-build) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 2f999b1b0f..66c01d1dd9 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1782,9 +1782,6 @@ same arguments.") (let ((base (package-with-python2 (strip-python2-variant python-pytest-mock)))) (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base))) (inputs `(("python2-mock" ,python2-mock) ,@(package-inputs base)))))) @@ -2562,8 +2559,7 @@ OAuth request-signing logic.") (let ((base (package-with-python2 (strip-python2-variant python-oauthlib)))) (package (inherit base) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ("python2-unittest2" ,python2-unittest2) + (native-inputs `(("python2-unittest2" ,python2-unittest2) ,@(package-native-inputs base)))))) (define-public python-itsdangerous @@ -5305,9 +5301,7 @@ and statistical routines from scipy and statsmodels.") (package (inherit base) (propagated-inputs `(("python2-pytz" ,python2-pytz) - ,@(package-propagated-inputs base))) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + ,@(package-propagated-inputs base)))))) (define-public python-sympy (package @@ -5478,10 +5472,7 @@ connection to each user.") `(("python2-backport-ssl-match-hostname" ,python2-backport-ssl-match-hostname) ("python2-singledispatch" ,python2-singledispatch) - ,@(package-inputs tornado))) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs tornado)))))) + ,@(package-inputs tornado)))))) ;; the python- version can be removed with python-3.5 (define-public python-backports-abc @@ -5870,10 +5861,7 @@ term.js Javascript terminal emulator library.") (propagated-inputs `(("python2-backport-ssl-match-hostname" ,python2-backport-ssl-match-hostname) - ,@(package-propagated-inputs terminado))) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs terminado)))))) + ,@(package-propagated-inputs terminado)))))) (define-public python-fonttools (package @@ -8167,8 +8155,7 @@ authenticated session objects providing things like keep-alive.") (let ((base (package-with-python2 (strip-python2-variant python-rauth)))) (package (inherit base) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ("python2-unittest2" ,python2-unittest2) + (native-inputs `(("python2-unittest2" ,python2-unittest2) ,@(package-native-inputs base)))))) (define-public python2-functools32 @@ -8918,8 +8905,7 @@ and provides a uniform API regardless of which JSON implementation is used.") (arguments `(;; Unlike the python 3 variant, we do run tests. See above! #:tests? #t ,@(package-arguments anyjson))) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ("python2-nose" ,python2-nose)))))) + (native-inputs `(("python2-nose" ,python2-nose)))))) (define-public python-amqp (package @@ -8955,9 +8941,7 @@ alternative when librabbitmq is not available.") ;; unmaintained. Weirdly, does not do this on the python 3 ;; version? #:tests? #f - ,@(package-arguments amqp))) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs amqp)))))) + ,@(package-arguments amqp)))))) (define-public python-kombu (package @@ -8994,8 +8978,7 @@ RabbitMQ messaging server is the most popular implementation.") (strip-python2-variant python-kombu)))) (package (inherit kombu) - (inputs `(("python2-setuptools" ,python2-setuptools) - ("python2-unittest2" ,python2-unittest2) + (inputs `(("python2-unittest2" ,python2-unittest2) ,@(package-inputs kombu)))))) (define-public python-billiard @@ -9028,8 +9011,7 @@ Python 2.4 and 2.5, and will draw its fixes/improvements from python-trunk.") (strip-python2-variant python-billiard)))) (package (inherit billiard) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ("python2-unittest2" ,python2-unittest2) + (native-inputs `(("python2-unittest2" ,python2-unittest2) ("python2-mock" ,python2-mock) ,@(package-native-inputs billiard)))))) @@ -9078,8 +9060,7 @@ synchronously (wait until ready).") (strip-python2-variant python-celery)))) (package (inherit celery) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ("python2-unittest2" ,python2-unittest2) + (native-inputs `(("python2-unittest2" ,python2-unittest2) ("python2-mock" ,python2-mock) ,@(package-native-inputs celery)))))) @@ -9502,8 +9483,7 @@ encoding algorithms to do fuzzy string matching.") (let ((jellyfish (package-with-python2 (strip-python2-variant python-jellyfish)))) (package (inherit jellyfish) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ("python2-unicodecsv" ,python2-unicodecsv) + (native-inputs `(("python2-unicodecsv" ,python2-unicodecsv) ,@(package-native-inputs jellyfish)))))) (define-public python2-unicodecsv @@ -10896,9 +10876,6 @@ binary or text.") (define-public python2-binaryornot (let ((base (package-with-python2 (strip-python2-variant python-binaryornot)))) (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base))) (inputs `(("python2-enum34" ,python2-enum34) ,@(package-inputs base)))))) @@ -11407,8 +11384,7 @@ functionality in the command line.") (let ((base (package-with-python2 (strip-python2-variant python-natsort)))) (package (inherit base) (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ("python2-pathlib" ,python2-pathlib) + `(("python2-pathlib" ,python2-pathlib) ("python2-mock" ,python2-mock) ("python2-enum34" ,python2-enum34) ,@(package-native-inputs base)))))) @@ -11567,8 +11543,7 @@ with an associated set of resolve methods that know how to fetch data.") (strip-python2-variant python-graphene)))) (package (inherit base) (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ("python2-sqlalchemy" ,python2-sqlalchemy) + `(("python2-sqlalchemy" ,python2-sqlalchemy) ,@(package-native-inputs base)))))) (define-public python-nautilus diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 700a8957cc..a19d6000d4 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1487,10 +1487,7 @@ inference for statistical models.") ("python2-scipy" ,python2-scipy) ("python2-pandas" ,python2-pandas) ("python2-patsy" ,python2-patsy) - ("python2-matplotlib" ,python2-matplotlib))) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs stats)))))) + ("python2-matplotlib" ,python2-matplotlib)))))) (define-public r-coda (package -- cgit v1.2.3 From 5c31f4aa7c11fcf720c0ce0e26d55788e2df1044 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Wed, 28 Sep 2016 13:57:21 +0200 Subject: gnu: Remove python-setuptools and python2-setuptools from inputs (part 4a) This patch contains the changes for all modules beside python.scm where setuptools are used in an inherited package and removing this input also removes the need for inheriting the package. This is the case if adding setuptools in the inherited package was the only change. Change this to not inherit and remove the new needless call to "strip-python2-variant (if applicable). * gnu/packages/bioinformatics.scm (python-biopython, python2-biopython, python-twobitreader, python2-twobitreader, python-plastid, python2-plastid, python2-pybigwig, python2-screed, sra-tools): No longer "inherit" Python 2 packages inheriting from a Python 3 package if the sole reason for inheriting was adding python-setuptools respective python2-setuptools to [inputs], [native-inputs] or [propagated-inputs]. Remove now needless [properties] "python2-variant" where applicable. * gnu/packages/django.scm (python-pytest-django, python2-pytest-django, python-django-filter, python2-django-filter): Likewise. * gnu/packages/gnupg.scm (python2-pygpgme): Likewise. * gnu/packages/mail.scm (python-mailmanclient, python2-mailmanclient): Likewise. * gnu/packages/mpd.scm (python-msp, python2-mpd2): Likewise. * gnu/packages/music.scm (python-pylast, python2-pylast): Likewise. * gnu/packages/openstack.scm (python-requests-mock, python2-requests-mock, python2-git-review): Likewise. * gnu/packages/password-utils.scm (python2-bcrypt): Likewise. * gnu/packages/protobuf.scm (python-protobuf, python2-protobuf): Likewise. * gnu/packages/statistics.scm (python-patsy, python2-patsy): Likewise. * gnu/packages/web.scm (python2-feedparser): Likewise. --- gnu/packages/bioinformatics.scm | 35 ++++++----------------------------- gnu/packages/django.scm | 16 ++-------------- gnu/packages/gnupg.scm | 7 +------ gnu/packages/mail.scm | 7 +------ gnu/packages/mpd.scm | 9 ++------- gnu/packages/music.scm | 10 ++-------- gnu/packages/openstack.scm | 16 +++------------- gnu/packages/password-utils.scm | 6 +----- gnu/packages/protobuf.scm | 7 ++----- gnu/packages/statistics.scm | 9 ++------- gnu/packages/web.scm | 6 +----- 11 files changed, 23 insertions(+), 105 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index a552686328..481a2a3bcb 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -680,15 +680,10 @@ bioinformatics programs; a standard sequence class and tools for performing common operations on them; code to perform data classification; code for dealing with alignments; code making it easy to split up parallelizable tasks into separate processes; and more.") - (license (license:non-copyleft "http://www.biopython.org/DIST/LICENSE")) - (properties `((python2-variant . ,(delay python2-biopython)))))) + (license (license:non-copyleft "http://www.biopython.org/DIST/LICENSE")))) (define-public python2-biopython - (let ((base (package-with-python2 (strip-python2-variant python-biopython)))) - (package - (inherit base) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-biopython)) ;; An outdated version of biopython is required for seqmagick, see ;; https://github.com/fhcrc/seqmagick/issues/59 @@ -1427,7 +1422,6 @@ also includes an interface for tabix.") (sha256 (base32 "1q8wnj2kga9nz1lwc4w7qv52smfm536hp6mc8w6s53lhyj0mpi22")))) - (properties `((python2-variant . ,(delay python2-twobitreader)))) (build-system python-build-system) (arguments '(;; Tests are not distributed in the PyPi release. @@ -1444,11 +1438,7 @@ UCSC genome browser.") (license license:artistic2.0))) (define-public python2-twobitreader - (let ((base (package-with-python2 (strip-python2-variant python-twobitreader)))) - (package - (inherit base) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-twobitreader)) (define-public python-plastid (package @@ -1460,7 +1450,6 @@ UCSC genome browser.") (sha256 (base32 "1sqkz5d3b9kf688mp7k771c87ins42j7j0whmkb49cb3fsg8s8lj")))) - (properties `((python2-variant . ,(delay python2-plastid)))) (build-system python-build-system) (arguments ;; Some test files are not included. @@ -1485,12 +1474,7 @@ high-throughput sequencing data – with an emphasis on simplicity.") (license license:bsd-3))) (define-public python2-plastid - (let ((base (package-with-python2 (strip-python2-variant python-plastid)))) - (package - (inherit base) - ;; setuptools is required at runtime - (propagated-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-propagated-inputs base)))))) + (package-with-python2 python-plastid)) (define-public cd-hit (package @@ -1939,10 +1923,7 @@ accessing bigWig files.") (license license:expat))) (define-public python2-pybigwig - (let ((pybigwig (package-with-python2 python-pybigwig))) - (package (inherit pybigwig) - (native-inputs - `(("python-setuptools" ,python2-setuptools)))))) + (package-with-python2 python-pybigwig)) (define-public python-dendropy (package @@ -4568,11 +4549,7 @@ sequence itself can be retrieved from these databases.") (license license:bsd-3))) (define-public python2-screed - (let ((base (package-with-python2 (strip-python2-variant python-screed)))) - (package - (inherit base) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-screed)) (define-public sra-tools (package diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 1ab2094dce..804f681e59 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -148,16 +148,10 @@ with arguments to the field constructor.") (synopsis "Django plugin for py.test") (description "Pytest-django is a plugin for py.test that provides a set of useful tools for testing Django applications and projects.") - (properties `((python2-variant . ,(delay python2-pytest-django)))) (license license:bsd-3))) (define-public python2-pytest-django - (let ((base (package-with-python2 - (strip-python2-variant python-pytest-django)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-pytest-django)) (define-public python-django-filter (package @@ -180,13 +174,7 @@ useful tools for testing Django applications and projects.") some of the more mundane bits of view code. Specifically, it allows users to filter down a queryset based on a model’s fields, displaying the form to let them do this.") - (properties `((python2-variant . ,(delay python2-django-filter)))) (license license:bsd-3))) (define-public python2-django-filter - (let ((base (package-with-python2 - (strip-python2-variant python-django-filter)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-django-filter)) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 82932489de..b160d04ff7 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -417,12 +417,7 @@ decrypt messages using the OpenPGP format by making use of GPGME.") (license license:lgpl2.1+))) (define-public python2-pygpgme - (let ((base (package-with-python2 python-pygpgme))) - (package - (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-pygpgme)) (define-public python-gnupg (package diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index a152d50c36..b44555c04d 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1741,12 +1741,7 @@ for OpenSMTPD to extend its functionality.") (description "The mailmanclient library provides official Python bindings for the GNU Mailman 3 REST API.") - (properties `((python2-variant . ,(delay python2-mailmanclient)))) (license lgpl3+))) (define-public python2-mailmanclient - (let ((base (package-with-python2 - (strip-python2-variant python-mailmanclient)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools)))))) + (package-with-python2 python-mailmanclient)) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index ec0861db11..83d99778ed 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -257,15 +257,10 @@ information about tracks being played to a scrobbler, such as Libre.FM.") (synopsis "Python MPD client library") (description "Python-mpd2 is a Python library which provides a client interface for the Music Player Daemon.") - (license license:lgpl3+) - (properties `((python2-variant . ,(delay python2-mpd2)))))) + (license license:lgpl3+))) (define-public python2-mpd2 - (let ((mpd2 (package-with-python2 - (strip-python2-variant python-mpd2)))) - (package (inherit mpd2) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs mpd2)))))) + (package-with-python2 python-mpd2)) (define-public sonata (package diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index d25c9c419a..61bcd3785b 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1829,16 +1829,10 @@ detailed track info including timbre, pitch, rhythm and loudness information. (synopsis "Python interface to Last.fm and Libre.fm") (description "A Python interface to Last.fm and other API-compatible websites such as Libre.fm.") - (license license:asl2.0) - (properties `((python2-variant . ,(delay python2-pylast)))))) + (license license:asl2.0))) (define-public python2-pylast - (let ((pylast (package-with-python2 - (strip-python2-variant python-pylast)))) - (package (inherit pylast) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs pylast)))))) + (package-with-python2 python-pylast)) (define-public beets (package diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 930ce9eceb..8cf3b957a7 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -261,16 +261,10 @@ tested on Python version 3.2, 2.7 and 2.6.") (description "This module provides a building block to stub out the HTTP requests portions of your testing code.") - (license asl2.0) - (properties `((python2-variant . ,(delay python2-requests-mock)))))) + (license asl2.0))) (define-public python2-requests-mock - (let ((base (package-with-python2 - (strip-python2-variant python-requests-mock)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-requests-mock)) (define-public python-stevedore (package @@ -808,8 +802,4 @@ Gerrit for review, or fetching existing ones.") (license asl2.0))) (define-public python2-git-review - (let ((base (package-with-python2 (strip-python2-variant python-git-review)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-git-review)) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index d6bc00c8f2..2e3c3b0632 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -375,8 +375,4 @@ Password Scheme\"} by Niels Provos and David Mazieres.") (license license:asl2.0))) (define-public python2-bcrypt - (let ((bcrypt (package-with-python2 python-bcrypt))) - (package (inherit bcrypt) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs bcrypt)))))) + (package-with-python2 python-bcrypt)) diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm index 586e532746..f4e9e88233 100644 --- a/gnu/packages/protobuf.scm +++ b/gnu/packages/protobuf.scm @@ -70,10 +70,7 @@ internal RPC protocols and file formats.") (description "Protocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data.") - (license bsd-3) - (properties `((python2-variant . ,(delay python2-protobuf)))))) + (license bsd-3))) (define-public python2-protobuf - (package (inherit (package-with-python2 - (strip-python2-variant python-protobuf))) - (native-inputs `(("python2-setuptools" ,python2-setuptools))))) + (package-with-python2 python-protobuf)) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index a19d6000d4..950c3ec64f 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1416,15 +1416,10 @@ building design matrices.") ;; The majority of the code is distributed under BSD-2. The module ;; patsy.compat contains code derived from the Python standard library, ;; and is covered by the PSFL. - (license (list license:bsd-2 license:psfl)) - (properties `((python2-variant . ,(delay python2-patsy)))))) + (license (list license:bsd-2 license:psfl)))) (define-public python2-patsy - (let ((patsy (package-with-python2 (strip-python2-variant python-patsy)))) - (package (inherit patsy) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs patsy)))))) + (package-with-python2 python-patsy)) (define-public python-statsmodels (package diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 81f861a905..e0c09ed396 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -3172,11 +3172,7 @@ CDF, Atom 0.3, and Atom 1.0 feeds.") l:freebsd-doc)))) ; documentation (define-public python2-feedparser - (let ((base (package-with-python2 - (strip-python2-variant python-feedparser)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools)))))) + (package-with-python2 python-feedparser)) (define-public r-httpuv (package -- cgit v1.2.3 From f210e94432fcb8d6c03589287833f7594f270522 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Wed, 28 Sep 2016 14:54:59 +0200 Subject: gnu: Remove python-setuptools and python2-setuptools from inputs (part 4b) This patch contains the changes in python.scm where setuptools are used in an inherited package and removing this input also removes the need for inheriting the package. This is the case if adding setuptools in the inherited packge was the only change. Change this to not inherit and remove the new needless call to "strip-python2-variant (where applicable). * gnu/packages/python.scm.scm: Remove inheriting Python 2 packages inheriting from a Python 3 package if adding python-setuptools respective python2-setuptools to [inputs], [native-inputs] and [propagated-inputs] have been the sole reason for inheriting. Remove now needless [properties] "python2-variant" where applicable. (python2-lockfile, python2-keyring, python2-dateutil-2, python2-parsedatetime, python2-pandas, python2-pyicu, python2-pytest-cov, python2-pytest-runner, python2-pytest-xdist, python2-cov-core, python2-itsdangerous, python2-numexpr, python2-q, python2-sqlalchemy-utils, python2-alembic, python2-beautifulsoup4, python2-msgpack, python2-ipaddress, python2-atomicwrites, python2-apipkg, python2-execnet, python2-pytest-cache, python2-wtforms, python2-mako, python2-waitress, python2-wsgiproxy2, python2-pyquery, python2-webtest, python2-translitcodec, python2-editor, python2-sphinxcontrib-programoutput, python2-psycopg2, python2-vobject, python2-flask, python2-cookies, python2-responses, python2-future, python2-ply, python2-wcwidth, python2-prompt-toolkit, python2-jedi, python2-requests-oauthlib, python2-pyserial, python2-nltk, python2-pymongo, python2-sh, python2-schematics, python2-publicsuffix, python2-publicsuffix2, python2-url, python2-freezegun, python2-cachecontrol, python2-lit, python2-pytest-pep8, python2-pytest-flakes, python2-glances, python2-betamax, python2-file, python2-flask-babel, python2-furl, python2-imagesize python2-orderedmultidict, python2-pycodestyle, python2-vcversioner, python2-graphql-core, python2-graphql-relay, python2-validictory): Remove neesless input "python2-setuptools", don't inherit, don't call strip-python2-variant. (python-lockfile, python-keyring, python-dateutil-2, python-parsedatetime, python-pandas, python-pyicu, python-pytest-cov, python-pytest-runner, python-pytest-xdist, python-cov-core, python-itsdangerous, python-numexpr, python-q, python-sqlalchemy-utils, python-alembic, python-beautifulsoup4, python-msgpack, python-ipaddress, python-atomicwrites, python-apipkg, python-execnet, python-pytest-cache, python-wtforms, python-mako, python-waitress, python-wsgiproxy2, python-pyquery, python-webtest, python-translitcodec, python-editor, python-sphinxcontrib-programoutput, python-psycopg2, python-vobject, python-flask, python-cookies, python-responses, python-future, python-ply, python-wcwidth, python-prompt-toolkit, python-jedi, python-requests-oauthlib, python-pyserial, python-nltk, python-pymongo, python-sh, python-schematics, python-nltk, python-publicsuffix2, python-cachecontrol, python-lit, python-pytest-pep8, python-pytest-flakes, python-glances, python-betamax, python-file, python-flask-babel, python-furl, python-imagesize, python-orderedmultidict, python-pycodestyle, python-vcversioner, python-graphql-core, python-graphql-relay, python-validictory): Remove "python2-variant" property. --- gnu/packages/python.scm | 604 +++++++++++------------------------------------- 1 file changed, 130 insertions(+), 474 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 66c01d1dd9..02e2900d2c 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -780,15 +780,10 @@ concepts.") (description "The lockfile package exports a LockFile class which provides a simple API for locking files.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-lockfile)))))) + (license license:expat))) (define-public python2-lockfile - (let ((base (package-with-python2 (strip-python2-variant python-lockfile)))) - (package - (inherit base) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-lockfile)) (define-public python-mock (package @@ -917,15 +912,10 @@ etc.). The package is structured to make adding new modules easy.") service from python. It can be used in any application that needs safe password storage.") ;; "MIT" and PSF dual license - (license license:x11) - (properties `((python2-variant . ,(delay python2-keyring)))))) + (license license:x11))) (define-public python2-keyring - (let ((base (package-with-python2 (strip-python2-variant python-keyring)))) - (package - (inherit base) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-keyring)) (define-public python-six (package @@ -971,15 +961,10 @@ Python file, so it can be easily copied into your project.") (description "The dateutil module provides powerful extensions to the standard datetime module, available in Python 2.3+.") - (license license:bsd-3) - (properties `((python2-variant . ,(delay python2-dateutil-2)))))) + (license license:bsd-3))) (define-public python2-dateutil-2 - (let ((base (package-with-python2 (strip-python2-variant python-dateutil-2)))) - (package - (inherit base) - (inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-inputs base)))))) + (package-with-python2 python-dateutil-2)) (define-public python-dateutil (package @@ -1024,15 +1009,10 @@ datetime module, available in Python 2.3+.") "Parse human-readable date/time text") (description "Parse human-readable date/time text.") - (license license:asl2.0) - (properties `((python2-variant . ,(delay python2-parsedatetime)))))) + (license license:asl2.0))) (define-public python2-parsedatetime - (let ((base (package-with-python2 (strip-python2-variant python-parsedatetime)))) - (package - (inherit base) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-parsedatetime)) (define-public python-pandas (package @@ -1063,15 +1043,10 @@ structures designed to make working with structured (tabular, multidimensional, potentially heterogeneous) and time series data both easy and intuitive. It aims to be the fundamental high-level building block for doing practical, real world data analysis in Python.") - (license license:bsd-3) - (properties `((python2-variant . ,(delay python2-pandas)))))) + (license license:bsd-3))) (define-public python2-pandas - (let ((base (package-with-python2 (strip-python2-variant python-pandas)))) - (package - (inherit base) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-pandas)) (define-public python-tzlocal (package @@ -1206,14 +1181,10 @@ Python 3.3+.") (synopsis "Python extension wrapping the ICU C++ API") (description "PyICU is a python extension wrapping the ICU C++ API.") - (license license:x11) - (properties `((python2-variant . ,(delay python2-pyicu)))))) + (license license:x11))) (define-public python2-pyicu - (package - (inherit (package-with-python2 - (strip-python2-variant python-pyicu))) - (native-inputs `(("python2-setuptools" ,python2-setuptools))))) + (package-with-python2 python-pyicu)) (define-public python2-dogtail ;; Python 2 only, as it leads to "TabError: inconsistent use of tabs and @@ -1698,15 +1669,10 @@ and many external plugins.") "Pytest-cov produces coverage reports. It supports centralised testing and distributed testing in both @code{load} and @code{each} modes. It also supports coverage of subprocesses.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-pytest-cov)))))) + (license license:expat))) (define-public python2-pytest-cov - (let ((base (package-with-python2 (strip-python2-variant python-pytest-cov)))) - (package - (inherit base) - (inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-inputs base)))))) + (package-with-python2 python-pytest-cov)) (define-public python-pytest-runner (package @@ -1739,16 +1705,10 @@ supports coverage of subprocesses.") (description "This package provides a @command{pytest-runner} command that @file{setup.py} files can use to run tests.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-pytest-runner)))))) + (license license:expat))) (define-public python2-pytest-runner - (let ((base (package-with-python2 - (strip-python2-variant python-pytest-runner)))) - (package - (inherit base) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-pytest-runner)) (define-public python-pytest-mock (package @@ -1825,16 +1785,10 @@ to run tests repeatedly when failed, and the ability to run tests on multiple Python interpreters or platforms. It uses rsync to copy the existing program code to a remote location, executes there, and then syncs the result back.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-pytest-xdist)))))) + (license license:expat))) (define-public python2-pytest-xdist - (let ((base (package-with-python2 - (strip-python2-variant python-pytest-xdist)))) - (package - (inherit base) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-pytest-xdist)) (define-public python-scripttest (package @@ -2178,15 +2132,10 @@ executed.") (description "This is a library package for use by pytest-cov, nose-cov and nose2-cov. It is useful for developing coverage plugins for these testing frameworks.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-cov-core)))))) + (license license:expat))) (define-public python2-cov-core - (let ((cov-core (package-with-python2 (strip-python2-variant python-cov-core)))) - (package (inherit cov-core) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs cov-core)))))) + (package-with-python2 python-cov-core)) (define-public python-discover (package @@ -2431,15 +2380,10 @@ than Python’s urllib2 library.") information in a variety of version control systems in order to discover version numbers.") (home-page "https://github.com/habnabit/vcversioner") - (license license:isc) - (properties `((python2-variant . ,(delay python2-vcversioner)))))) + (license license:isc))) (define-public python2-vcversioner - (let ((vcversioner (package-with-python2 - (strip-python2-variant python-vcversioner)))) - (package (inherit vcversioner) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs vcversioner)))))) + (package-with-python2 python-vcversioner)) (define-public python-jsonschema (package @@ -2581,16 +2525,10 @@ OAuth request-signing logic.") (description "Itsdangerous provides various helpers to pass trusted data to untrusted environments and back.") - (license license:bsd-3) - (properties `((python2-variant . ,(delay python2-itsdangerous)))))) + (license license:bsd-3))) (define-public python2-itsdangerous - (let ((base (package-with-python2 - (strip-python2-variant python-itsdangerous)))) - (package - (inherit base) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-itsdangerous)) (define-public python-pyyaml (package @@ -3452,11 +3390,10 @@ doing the same calculation in Python. In addition, its multi-threaded capabilities can make use of all your cores, which may accelerate computations, most specially if they are not memory-bounded (e.g. those using transcendental functions).") - (license license:expat) - (properties `((python2-variant . ,(delay python2-numexpr)))))) + (license license:expat))) (define-public python2-numexpr - (package-with-python2 (strip-python2-variant python-numexpr))) + (package-with-python2 python-numexpr)) (define-public python-matplotlib (package @@ -3845,16 +3782,10 @@ simple and Pythonic domain language.") (description "@code{pycodestyle} (formerly pep8) is a tool to check Python code against some of the style conventions in @url{http://www.python.org/dev/peps/pep-0008/,PEP 8}.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-pycodestyle)))))) + (license license:expat))) (define-public python2-pycodestyle - (let ((base (package-with-python2 (strip-python2-variant - python-pycodestyle)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-pycodestyle)) (define-public python-orderedmultidict (package @@ -3887,16 +3818,10 @@ Python code against some of the style conventions in dictionaries. A multivalue dictionary is a dictionary that can store multiple values for the same key. An ordered multivalue dictionary is a multivalue dictionary that retains the order of insertions and deletions.") - (license license:unlicense) - (properties `((python2-variant . ,(delay python2-orderedmultidict)))))) + (license license:unlicense))) (define-public python2-orderedmultidict - (let ((base (package-with-python2 (strip-python2-variant - python-orderedmultidict)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-orderedmultidict)) (define-public python-furl (package @@ -3919,16 +3844,10 @@ multivalue dictionary that retains the order of insertions and deletions.") (synopsis "URL manipulation in Python") (description "Furl provides an easy-to-use alternative to the @code{urllib} and @code{urlparse} modules for manipulating URLs.") - (license license:unlicense) - (properties `((python2-variant . ,(delay python2-furl)))))) + (license license:unlicense))) (define-public python2-furl - (let ((base (package-with-python2 (strip-python2-variant - python-furl)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-furl)) (define-public python-flask-babel (package @@ -3952,16 +3871,10 @@ multivalue dictionary that retains the order of insertions and deletions.") (description "This package implements internationalization and localization support for Flask. This is based on the Python babel module as well as pytz - both of which are installed automatically if you install this library.") - (license license:bsd-3) - (properties `((python2-variant . ,(delay python2-flask-babel)))))) + (license license:bsd-3))) (define-public python2-flask-babel - (let ((base (package-with-python2 (strip-python2-variant - python-flask-babel)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-flask-babel)) (define-public python-sqlalchemy-utils (package @@ -3997,16 +3910,10 @@ You might also want to install the following optional dependencies: @item @code{python-flask-babel} @end enumerate ") - (properties `((python2-variant . ,(delay python2-sqlalchemy-utils)))) (license license:bsd-3))) (define-public python2-sqlalchemy-utils - (let ((base (package-with-python2 - (strip-python2-variant python-sqlalchemy-utils)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-sqlalchemy-utils)) (define-public python-alembic (package @@ -4033,16 +3940,10 @@ You might also want to install the following optional dependencies: (description "Alembic is a lightweight database migration tool for usage with the SQLAlchemy Database Toolkit for Python.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-alembic)))))) + (license license:expat))) (define-public python2-alembic - (let ((alembic (package-with-python2 - (strip-python2-variant python-alembic)))) - (package - (inherit alembic) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs alembic)))))) + (package-with-python2 python-alembic)) (define-public python-distutils-extra (package @@ -5130,14 +5031,12 @@ screen-scraping projects. It offers Pythonic idioms for navigating, searching, and modifying a parse tree, providing a toolkit for dissecting a document and extracting what you need. It automatically converts incoming documents to Unicode and outgoing documents to UTF-8.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-beautifulsoup4)))))) + (license license:expat))) (define-public python2-beautifulsoup4 (package (inherit (package-with-python2 (strip-python2-variant python-beautifulsoup4))) - (native-inputs `(("python2-setuptools" ,python2-setuptools))) (arguments `(#:python ,python-2)))) (define-public python2-cssutils @@ -5345,16 +5244,10 @@ as possible in order to be comprehensible and easily extensible.") "q is a Python module for \"print\" style of debugging Python code. It provides convenient short API for print out of values, tracebacks, and falling into the Python interpreter.") - (license license:asl2.0) - (properties `((python2-variant . ,(delay python2-q)))))) + (license license:asl2.0))) (define-public python2-q - (let ((base (package-with-python2 (strip-python2-variant python-q)))) - (package - (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-q)) (define-public python-testlib (package @@ -6001,14 +5894,10 @@ should be stored on various operating systems.") suitable for similar data to JSON. This package provides CPython bindings for reading and writing MessagePack data.") (home-page "https://pypi.python.org/pypi/msgpack-python/") - (license license:asl2.0) - (properties `((python2-variant . ,(delay python2-msgpack)))))) + (license license:asl2.0))) (define-public python2-msgpack - (package (inherit (package-with-python2 - (strip-python2-variant python-msgpack))) - (native-inputs - `(("python2-setuptools" ,python2-setuptools))))) + (package-with-python2 python-msgpack)) (define-public python-netaddr (package @@ -6312,15 +6201,10 @@ implementations of ASN.1-based codecs and protocols.") in Python. This library is used to create, poke at, and manipulate IPv4 and IPv6 addresses and networks. This is a port of the Python 3.3 ipaddress module to older versions of Python.") - (license license:psfl) - (properties `((python2-variant . ,(delay python2-ipaddress)))))) + (license license:psfl))) (define-public python2-ipaddress - (let ((base (package-with-python2 (strip-python2-variant python-ipaddress)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-ipaddress)) (define-public python2-ipaddr (package @@ -6688,17 +6572,10 @@ Python's @code{ctypes} foreign function interface (FFI).") (synopsis "Python bindings to the libmagic file type guesser. Note that this module and the python-magic module both provide a \"magic.py\" file; these two modules, which are different and were developed separately, both -serve the same purpose: provide Python bindings for libmagic.") - (properties `((python2-variant . ,(delay python2-file)))))) +serve the same purpose: provide Python bindings for libmagic."))) (define-public python2-file - (let ((base (package-with-python2 (strip-python2-variant python-file)))) - (package - (inherit base) - (source (package-source file)) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-file)) (define-public python-debian (package @@ -7708,14 +7585,10 @@ WebSocket usage in Python programs.") (description "Library for atomic file writes using platform dependent tools for atomic file system operations.") (home-page "https://github.com/untitaker/python-atomicwrites") - (license license:expat) - (properties `((python2-variant . ,(delay python2-atomicwrites)))))) + (license license:expat))) (define-public python2-atomicwrites - (package (inherit (package-with-python2 - (strip-python2-variant python-atomicwrites))) - (native-inputs - `(("python2-setuptools" ,python2-setuptools))))) + (package-with-python2 python-atomicwrites)) (define-public python-requests-toolbelt (package @@ -7802,15 +7675,10 @@ applications.") package and greatly reduce the number of imports for your users. It is a small pure Python module that works on virtually all Python versions.") (home-page "https://bitbucket.org/hpk42/apipkg") - (license license:expat) - (properties `((python2-variant . ,(delay python2-apipkg)))))) + (license license:expat))) (define-public python2-apipkg - (package - (inherit (package-with-python2 - (strip-python2-variant python-apipkg))) - (native-inputs - `(("python2-setuptools" ,python2-setuptools))))) + (package-with-python2 python-apipkg)) (define-public python-execnet (package @@ -7844,17 +7712,10 @@ minimal and fast API targetting the following uses: @item write scripts to administer multiple environments @end enumerate") (home-page "http://codespeak.net/execnet/") - (license license:expat) - (properties `((python2-variant . ,(delay python2-execnet)))))) + (license license:expat))) (define-public python2-execnet - (let ((execnet (package-with-python2 - (strip-python2-variant python-execnet)))) - (package - (inherit execnet) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs execnet)))))) + (package-with-python2 python-execnet)) ;;; The software provided by this package was integrated into pytest 2.8. (define-public python-pytest-cache @@ -7877,17 +7738,10 @@ minimal and fast API targetting the following uses: (description "The pytest-cache plugin provides tools to rerun failures from the last py.test invocation.") (home-page "https://bitbucket.org/hpk42/pytest-cache/") - (license license:expat) - (properties `((python2-variant . ,(delay python2-pytest-cache)))))) + (license license:expat))) (define-public python2-pytest-cache - (let ((pytest-cache (package-with-python2 - (strip-python2-variant python-pytest-cache)))) - (package - (inherit pytest-cache) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs pytest-cache)))))) + (package-with-python2 python-pytest-cache)) (define-public python-pytest-localserver (package @@ -8564,14 +8418,10 @@ python-xdo for newer bindings.)") "WTForms is a flexible forms validation and rendering library for Python web development. It is very similar to the web form API available in Django, but is a standalone package.") - (license license:bsd-3) - (properties `((python2-variant . ,(delay python2-wtforms)))))) + (license license:bsd-3))) (define-public python2-wtforms - (package - (inherit (package-with-python2 - (strip-python2-variant python-wtforms))) - (inputs `(("python2-setuptools" ,python2-setuptools))))) + (package-with-python2 python-wtforms)) (define-public python-mako (package @@ -8593,17 +8443,10 @@ available in Django, but is a standalone package.") (synopsis "Templating language for Python") (description "Mako is a templating language for Python that compiles templates into Python modules.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-mako)))))) + (license license:expat))) (define-public python2-mako - (let ((base (package-with-python2 - (strip-python2-variant python-mako)))) - (package - (inherit base) - (native-inputs - (cons `("python2-setuptools" ,python2-setuptools) - (package-native-inputs base)))))) + (package-with-python2 python-mako)) (define-public python-waitress (package @@ -8621,14 +8464,10 @@ templates into Python modules.") (synopsis "Waitress WSGI server") (description "Waitress is meant to be a production-quality pure-Python WSGI server with very acceptable performance.") - (license license:zpl2.1) - (properties `((python2-variant . ,(delay python2-waitress)))))) + (license license:zpl2.1))) (define-public python2-waitress - (package - (inherit (package-with-python2 - (strip-python2-variant python-waitress))) - (native-inputs `(("python2-setuptools" ,python2-setuptools))))) + (package-with-python2 python-waitress)) (define-public python-wsgiproxy2 (package @@ -8661,16 +8500,10 @@ server with very acceptable performance.") WSGIProxy turns WSGI function calls into HTTP requests. It also includes code to sign requests and pass private data, and to spawn subprocesses to handle requests.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-wsgiproxy2)))))) + (license license:expat))) (define-public python2-wsgiproxy2 - (let ((wsgiproxy2 (package-with-python2 - (strip-python2-variant python-wsgiproxy2)))) - (package - (inherit wsgiproxy2) - (inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-inputs wsgiproxy2)))))) + (package-with-python2 python-wsgiproxy2)) (define-public python-pastedeploy (package @@ -8805,16 +8638,10 @@ layouts.") (description "pyquery allows you to make jQuery queries on xml documents. The API is as much as possible the similar to jQuery. pyquery uses lxml for fast xml and html manipulation.") - (license license:bsd-3) - (properties `((python2-variant . ,(delay python2-pyquery)))))) + (license license:bsd-3))) (define-public python2-pyquery - (let ((pyquery (package-with-python2 - (strip-python2-variant python-pyquery)))) - (package - (inherit pyquery) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs pyquery)))))) + (package-with-python2 python-pyquery)) (define-public python-webtest (package @@ -8857,16 +8684,10 @@ fast xml and html manipulation.") (description "Webtest allows you to test your Python web applications without starting an HTTP server. It supports anything that supports the minimum of WSGI.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-webtest)))))) + (license license:expat))) (define-public python2-webtest - (let ((webtest (package-with-python2 - (strip-python2-variant python-webtest)))) - (package - (inherit webtest) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs webtest)))))) + (package-with-python2 python-webtest)) (define-public python-anyjson (package @@ -9086,14 +8907,10 @@ synchronously (wait until ready).") "This package contains codecs for transliterating ISO 10646 texts into best-effort representations using smaller coded character sets (ASCII, ISO 8859, etc.).") - (license license:expat) - (properties `((python2-variant . ,(delay python2-translitcodec)))))) + (license license:expat))) (define-public python2-translitcodec - (package - (inherit (package-with-python2 - (strip-python2-variant python-translitcodec))) - (native-inputs `(("python2-setuptools" ,python2-setuptools))))) + (package-with-python2 python-translitcodec)) (define-public python-editor (package @@ -9114,14 +8931,10 @@ ISO 8859, etc.).") (description "python-editor is a library that provides the editor module for programmatically interfacing with your system's $EDITOR.") - (license license:asl2.0) - (properties `((python2-variant . ,(delay python2-editor)))))) + (license license:asl2.0))) (define-public python2-editor - (package - (inherit (package-with-python2 - (strip-python2-variant python-editor))) - (inputs `(("python2-setuptools" ,python2-setuptools))))) + (package-with-python2 python-editor)) (define-public python-sphinxcontrib-programoutput (package @@ -9141,14 +8954,10 @@ programmatically interfacing with your system's $EDITOR.") (description "A Sphinx extension to literally insert the output of arbitrary commands into documents, helping you to keep your command examples up to date.") (home-page "https://github.com/lunaryorn/sphinxcontrib-programoutput") - (license license:bsd-2) - (properties `((python2-variant . ,(delay python2-sphinxcontrib-programoutput)))))) + (license license:bsd-2))) (define-public python2-sphinxcontrib-programoutput - (package - (inherit (package-with-python2 - (strip-python2-variant python-sphinxcontrib-programoutput))) - (native-inputs `(("python2-setuptools" ,python2-setuptools))))) + (package-with-python2 python-sphinxcontrib-programoutput)) (define-public python-sphinx-repoze-autointerface (package @@ -9197,14 +9006,10 @@ introspection of @code{zope.interface} instances in code.") (synopsis "Python PostgreSQL adapter") (description "psycopg2 is a thread-safe PostgreSQL adapter that implements DB-API 2.0. ") - (license license:lgpl3+) - (properties `((python2-variant . ,(delay python2-psycopg2)))))) + (license license:lgpl3+))) (define-public python2-psycopg2 - (package - (inherit (package-with-python2 - (strip-python2-variant python-psycopg2))) - (native-inputs `(("python2-setuptools" ,python2-setuptools))))) + (package-with-python2 python-psycopg2)) (define-public python-vobject (package @@ -9230,14 +9035,10 @@ are supported and well tested. vCard 3.0 files are supported, and all data should be imported, but only a few components are understood in a sophisticated way.") (home-page "http://eventable.github.io/vobject/") - (license license:asl2.0) - (properties `((python2-variant . ,(delay python2-vobject)))))) + (license license:asl2.0))) (define-public python2-vobject - (package - (inherit (package-with-python2 - (strip-python2-variant python-vobject))) - (native-inputs `(("python2-setuptools" ,python2-setuptools))))) + (package-with-python2 python-vobject)) (define-public python-munkres (package @@ -9282,13 +9083,10 @@ useful for solving the Assignment Problem.") (description "Flask is a micro web framework based on the Werkzeug toolkit and Jinja2 template engine. It is called a micro framework because it does not presume or force a developer to use a particular tool or library.") - (license license:bsd-3) - (properties `((python2-variant . ,(delay python2-flask)))))) + (license license:bsd-3))) (define-public python2-flask - (package (inherit (package-with-python2 - (strip-python2-variant python-flask))) - (native-inputs `(("python2-setuptools" ,python2-setuptools))))) + (package-with-python2 python-flask)) (define-public python-cookies (package @@ -9310,15 +9108,10 @@ presume or force a developer to use a particular tool or library.") (description "A RFC 6265-compliant HTTP cookie parser and renderer in Python.") (home-page "https://gitlab.com/sashahart/cookies") - (license license:expat) - (properties `((python2-variant . ,(delay python2-cookies)))))) + (license license:expat))) (define-public python2-cookies - (let ((cookies (package-with-python2 - (strip-python2-variant python-cookies)))) - (package (inherit cookies) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs cookies)))))) + (package-with-python2 python-cookies)) (define-public python-responses (package @@ -9345,15 +9138,10 @@ Python.") (synopsis "Utility for mocking out the `requests` Python library") (description "A utility library for mocking out the `requests` Python library.") - (license license:asl2.0) - (properties `((python2-variant . ,(delay python2-responses)))))) + (license license:asl2.0))) (define-public python2-responses - (let ((responses (package-with-python2 - (strip-python2-variant python-responses)))) - (package (inherit responses) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs responses)))))) + (package-with-python2 python-responses)) (define-public python-whoosh (package @@ -9752,15 +9540,10 @@ development version of CPython that are not available in older releases.") "@code{python-future} is the missing compatibility layer between Python 2 and Python 3. It allows you to use a single, clean Python 3.x-compatible codebase to support both Python 2 and Python 3 with minimal overhead.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-future)))))) + (license license:expat))) (define-public python2-future - (let ((base (package-with-python2 - (strip-python2-variant python-future)))) - (package - (inherit base) - (native-inputs `(("python2-setuptools" ,python2-setuptools)))))) + (package-with-python2 python-future)) (define-public python-cysignals (package @@ -10095,14 +9878,10 @@ network support library.") (synopsis "Python Lex & Yacc") (description "PLY is a @code{lex}/@code{yacc} implemented purely in Python. It uses LR parsing and does extensive error checking.") - (license license:bsd-3) - (properties `((python2-variant . ,(delay python2-ply)))))) + (license license:bsd-3))) (define-public python2-ply - (package - (inherit (package-with-python2 - (strip-python2-variant python-ply))) - (native-inputs `(("python2-setuptools" ,python2-setuptools))))) + (package-with-python2 python-ply)) (define-public python-tabulate (package @@ -10215,14 +9994,10 @@ wide-character codes. It is useful for those implementing a terminal emulator, or programs that carefully produce output to be interpreted by one. It is a Python implementation of the @code{wcwidth} and @code{wcswidth} C functions specified in POSIX.1-2001 and POSIX.1-2008.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-wcwidth)))))) + (license license:expat))) (define-public python2-wcwidth - (package - (inherit (package-with-python2 - (strip-python2-variant python-wcwidth))) - (native-inputs `(("python2-setuptools" ,python2-setuptools))))) + (package-with-python2 python-wcwidth)) (define-public python2-jsonrpclib (package @@ -10609,16 +10384,10 @@ interfaces in Python. It's like GNU Readline but it also features syntax highlighting while typing, out-of-the-box multi-line input editing, advanced code completion, incremental search, support for Chinese double-width characters, mouse support, and auto suggestions.") - (license license:bsd-3) - (properties `((python2-variant . ,(delay python2-prompt-toolkit)))))) + (license license:bsd-3))) (define-public python2-prompt-toolkit - (let ((base (package-with-python2 (strip-python2-variant python-prompt-toolkit)))) - (package - (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-prompt-toolkit)) (define-public python-jedi (package @@ -10637,16 +10406,10 @@ characters, mouse support, and auto suggestions.") "Autocompletion for Python that can be used for text editors") (description "Jedi is an autocompletion tool for Python that can be used for text editors.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-jedi)))))) + (license license:expat))) (define-public python2-jedi - (let ((base (package-with-python2 (strip-python2-variant python-jedi)))) - (package - (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-jedi)) (define-public ptpython (package @@ -10713,15 +10476,10 @@ etc.") (description "Requests-OAuthlib uses the Python Requests and OAuthlib libraries to provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients.") - (license license:isc) - (properties `((python2-variant . ,(delay python2-requests-oauthlib)))))) + (license license:isc))) (define-public python2-requests-oauthlib - (let ((base (package-with-python2 (strip-python2-variant python-requests-oauthlib)))) - (package - (inherit base) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-requests-oauthlib)) (define-public python-stem (package @@ -10777,16 +10535,10 @@ relays publish about themselves.") (description "@code{pyserial} provide serial port bindings for Python. It supports different byte sizes, stop bits, parity and flow control with RTS/CTS and/or Xon/Xoff. The port is accessed in RAW mode.") - (license license:bsd-3) - (properties `((python2-variant . ,(delay python2-pyserial)))))) + (license license:bsd-3))) (define-public python2-pyserial - (let ((base (package-with-python2 (strip-python2-variant python-pyserial)))) - (package - (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-pyserial)) (define-public python-kivy (package @@ -10901,15 +10653,10 @@ binary or text.") resources such as WordNet, along with a suite of text processing libraries for classification, tokenization, stemming, tagging, parsing, and semantic reasoning, wrappers for natural language processing libraries.") - (license license:asl2.0) - (properties `((python2-variant . ,(delay python2-nltk)))))) + (license license:asl2.0))) (define-public python2-nltk - (let ((base (package-with-python2 (strip-python2-variant python-nltk)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-nltk)) (define-public python-pymongo (package @@ -10927,15 +10674,10 @@ reasoning, wrappers for natural language processing libraries.") (home-page "http://github.com/mongodb/mongo-python-driver") (synopsis "Python driver for MongoDB") (description "Python driver for MongoDB.") - (license license:asl2.0) - (properties `((python2-variant . ,(delay python2-pymongo)))))) + (license license:asl2.0))) (define-public python2-pymongo - (let ((base (package-with-python2 (strip-python2-variant python-pymongo)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-pymongo)) (define-public python-sh (package @@ -10954,15 +10696,10 @@ reasoning, wrappers for natural language processing libraries.") (synopsis "Python subprocess interface") (description "Abstracts process invocation by providing a function interface for programs.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-sh)))))) + (license license:expat))) (define-public python2-sh - (let ((base (package-with-python2 (strip-python2-variant python-sh)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-sh)) (define-public python-consul (package @@ -10988,11 +10725,7 @@ discovery, monitoring and configuration.") (license license:expat))) (define-public python2-consul - (let ((consul (package-with-python2 python-consul))) - (package (inherit consul) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs consul)))))) + (package-with-python2 python-consul)) (define-public python-schematics (package @@ -11016,15 +10749,10 @@ discovery, monitoring and configuration.") (home-page "https://github.com/schematics/schematics") (synopsis "Python Data Structures for Humans") (description "Python Data Structures for Humans.") - (license license:bsd-3) - (properties `((python2-variant . ,(delay python2-schematics)))))) + (license license:bsd-3))) (define-public python2-schematics - (let ((base (package-with-python2 (strip-python2-variant python-schematics)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-schematics)) (define-public python-publicsuffix (package @@ -11043,15 +10771,10 @@ discovery, monitoring and configuration.") (synopsis "Get suffix for a domain name") (description "Get a public suffix for a domain name using the Public Suffix List.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-nltk)))))) + (license license:expat))) (define-public python2-publicsuffix - (let ((base (package-with-python2 (strip-python2-variant python-publicsuffix)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-publicsuffix)) (define-public python-publicsuffix2 (package @@ -11071,15 +10794,10 @@ List.") (synopsis "Get a public suffix for a domain name using the Public Suffix List") (description "Get a public suffix for a domain name using the Public Suffix List. Forked from and using the same API as the publicsuffix package.") - (license (list license:expat license:mpl2.0)) - (properties `((python2-variant . ,(delay python2-publicsuffix2)))))) + (license (list license:expat license:mpl2.0)))) (define-public python2-publicsuffix2 - (let ((base (package-with-python2 (strip-python2-variant python-publicsuffix2)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-publicsuffix2)) (define-public python-url (package @@ -11109,10 +10827,7 @@ List. Forked from and using the same API as the publicsuffix package.") (let ((base (package-with-python2 (strip-python2-variant python-url)))) (package (inherit base) (inputs - `(("python2-publicsuffix" ,python2-publicsuffix))) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + `(("python2-publicsuffix" ,python2-publicsuffix)))))) (define-public python-freezegun (package @@ -11148,11 +10863,8 @@ time by mocking the datetime module.") (license license:asl2.0))) (define-public python2-freezegun - (let ((base (package-with-python2 (strip-python2-variant python-freezegun)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-freezegun)) + (define-public python-odfpy (package @@ -11229,15 +10941,10 @@ Python to manipulate OpenDocument 1.2 files.") (synopsis "The httplib2 caching algorithms for use with requests") (description "CacheControl is a port of the caching algorithms in @code{httplib2} for use with @code{requests} session objects.") - (license license:asl2.0) - (properties `((python2-variant . ,(delay python2-cachecontrol)))))) + (license license:asl2.0))) (define-public python2-cachecontrol - (let ((base (package-with-python2 (strip-python2-variant python-cachecontrol)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-cachecontrol)) (define-public python-lit (package @@ -11256,16 +10963,10 @@ Python to manipulate OpenDocument 1.2 files.") (description "@code{lit} is a portable tool for executing LLVM and Clang style test suites, summarizing their results, and providing indication of failures.") - (license license:ncsa) - (properties `((python2-variant . ,(delay python2-lit)))))) + (license license:ncsa))) (define-public python2-lit - (let ((base (package-with-python2 (strip-python2-variant python-lit)))) - (package - (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-lit)) (define-public python-pytest-pep8 (package @@ -11290,15 +10991,10 @@ failures.") (home-page "https://bitbucket.org/pytest-dev/pytest-pep8") (synopsis "Py.test plugin to check PEP8 requirements") (description "Pytest plugin for checking PEP8 compliance.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-pytest-pep8)))))) + (license license:expat))) (define-public python2-pytest-pep8 - (let ((base (package-with-python2 (strip-python2-variant python-pytest-pep8)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-pytest-pep8)) (define-public python-pytest-flakes (package @@ -11331,15 +11027,10 @@ failures.") (home-page "https://github.com/fschulze/pytest-flakes") (synopsis "Py.test plugin to check source code with pyflakes") (description "Pytest plugin for checking Python source code with pyflakes.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-pytest-flakes)))))) + (license license:expat))) (define-public python2-pytest-flakes - (let ((base (package-with-python2 (strip-python2-variant python-pytest-flakes)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-pytest-flakes)) (define-public python-natsort (package @@ -11411,16 +11102,10 @@ functionality in the command line.") "Glances is a curses-based monitoring tool for a wide variety of platforms. Glances uses the PsUtil library to get information from your system. It monitors CPU, load, memory, network bandwidth, disk I/O, disk use, and more.") - (license license:lgpl3+) - (properties `((python2-variant . ,(delay python2-glances)))))) + (license license:lgpl3+))) (define-public python2-glances - (let ((base (package-with-python2 (strip-python2-variant python-glances)))) - (package - (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-glances)) (define-public python-graphql-core (package @@ -11457,16 +11142,10 @@ CPU, load, memory, network bandwidth, disk I/O, disk use, and more.") runtime designed and used to request and deliver data to mobile and web apps. This library is a port of @url{https://github.com/graphql/graphql-js,graphql-js} to Python.") - (properties `((python2-variant . ,(delay python2-graphql-core)))) (license license:expat))) (define-public python2-graphql-core - (let ((base (package-with-python2 - (strip-python2-variant python-graphql-core)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-graphql-core)) (define-public python-graphql-relay (package @@ -11494,16 +11173,10 @@ using the GraphQL Python reference implementation of a GraphQL server. It should be noted that the code is a exact port of the original @url{https://github.com/graphql/graphql-relay-js,graphql-relay js implementation} from Facebook.") - (properties `((python2-variant . ,(delay python2-graphql-relay)))) (license license:expat))) (define-public python2-graphql-relay - (let ((base (package-with-python2 - (strip-python2-variant python-graphql-relay)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-graphql-relay)) (define-public python-graphene (package @@ -11603,16 +11276,10 @@ focus on building massively scalable web applications.") (synopsis "Record HTTP interactions with python-requests") (description "Betamax will record your test suite's HTTP interactions and replay them during future tests. It is designed to work with python-requests.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-betamax)))))) + (license license:expat))) (define-public python2-betamax - (let ((base (package-with-python2 (strip-python2-variant python-betamax)))) - (package - (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-betamax)) (define-public python-s3transfer (package @@ -11751,16 +11418,10 @@ is used by PostgreSQL and the OpenSSH Server for example.") The schema format is based on the JSON Schema proposal (http://json-schema.org), so combined with json the library is also useful as a validator for JSON data.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-validictory)))))) + (license license:expat))) (define-public python2-validictory - (let ((base (package-with-python2 - (strip-python2-variant python-validictory)))) - (package - (inherit base) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-validictory)) (define-public python-aniso8601 (package @@ -11914,15 +11575,10 @@ useful as a validator for JSON data.") (description "This package allows determination of image size from PNG, JPEG, JPEG2000 and GIF files in pure Python.") - (license license:expat) - (properties `((python2-variant . ,(delay python2-imagesize)))))) + (license license:expat))) (define-public python2-imagesize - (let ((base (package-with-python2 (strip-python2-variant python-imagesize)))) - (package - (inherit base) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-imagesize)) (define-public python-axolotl-curve25519 (package -- cgit v1.2.3 From d8013ee221bd599474340899ffb5974796091955 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Wed, 28 Sep 2016 14:36:46 +0200 Subject: gnu: Remove needless inputs python-pip and python2-pip. This is installed together with Python 3 anyway and for our build of Python 2. * gnu/packages/python.scm (python2-fixtures): [inputs] remove "python-pip". * gnu/packages/pdf.scm (python2-reportlab): [native-inputs] remove "python2-pip". (python-reportlab)[properties]: remove "python2-variant". --- gnu/packages/pdf.scm | 8 ++------ gnu/packages/python.scm | 3 +-- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 171f1990f7..e447ef1603 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -650,14 +650,10 @@ using a stylus.") (description "This is the ReportLab PDF Toolkit. It allows rapid creation of rich PDF documents, and also creation of charts in a variety of bitmap and vector formats.") - (license license:bsd-3) - (properties `((python2-variant . ,(delay python2-reportlab)))))) + (license license:bsd-3))) (define-public python2-reportlab - (package - (inherit (package-with-python2 - (strip-python2-variant python-reportlab))) - (native-inputs `(("python2-pip" ,python2-pip))))) + (package-with-python2 python-reportlab)) (define-public impressive (package diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 02e2900d2c..f103706533 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2044,8 +2044,7 @@ and sensible default behaviors into your setuptools run.") `(("python-six" ,python-six) ("python-pbr-0.11" ,python-pbr-0.11))) (inputs - `(("python-pip" ,python-pip) - ;; Tests + `(;; Tests ("python-testtools" ,python-testtools))) (arguments '(#:tests? #f)) ; no setup.py test command -- cgit v1.2.3 From b41a05ce497d5ecc682cf46ce61aa2215193f9f6 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Wed, 28 Sep 2016 15:23:10 +0200 Subject: gnu: Remove work-arounds for bug 20765 (ensure uncompressed eggs). Bug 20765 is solved since we build all Python packages using option "--single-version-externally-managed". * gnu/packages/bioinformatics.scm (pbtranscript-tofu): Remove configure-flags. (pepr): remove phase "disable-egg-generation". * gnu/packages/pdf.scm (reportlab): Remove configure-flags. * gnu/packages/python.scm (python-sphinx-rtd-theme, python2-elib.intl, python-pkgconfig, python-pytest-pep8, python-pytest-flakes): Remove configure-flags. (python-pillow) remove phase "disable-egg-generation". (python-libarchive-c) Remove patching setup.cfg. * gnu/packages/statistics.scm (python-patsy): remove phase "prevent-generation-of-egg-archive". * gnu/packages/tls.scm (python-acme): remove phase "disable-egg-compression". * gnu/packages/tor.scm (onionshare): Remove configure-flags. --- gnu/packages/bioinformatics.scm | 19 +---------------- gnu/packages/pdf.scm | 5 ----- gnu/packages/python.scm | 47 ++++------------------------------------- gnu/packages/statistics.scm | 8 +------ gnu/packages/tls.scm | 9 -------- gnu/packages/tor.scm | 6 +----- 6 files changed, 7 insertions(+), 87 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 481a2a3bcb..9872933693 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -3563,11 +3563,6 @@ the phenotype as it models the data.") (build-system python-build-system) (arguments `(#:python ,python-2 - ;; With standard flags, the install phase attempts to create a zip'd - ;; egg file, and fails with an error: 'ZIP does not support timestamps - ;; before 1980' - #:configure-flags '("--single-version-externally-managed" - "--record=pbtranscript-tofu.txt") #:phases (modify-phases %standard-phases (add-after 'unpack 'enter-directory @@ -7576,19 +7571,7 @@ may optionally be provided to further inform the peak-calling process.") (build-system python-build-system) (arguments `(#:python ,python-2 ; python2 only - #:tests? #f ; no tests included - #:phases - (modify-phases %standard-phases - ;; When setuptools is used a ".egg" archive is generated and - ;; installed. This makes it hard to actually run PePr. This issue - ;; has been reported upstream: - ;; https://github.com/shawnzhangyx/PePr/issues/9 - (add-after 'unpack 'disable-egg-generation - (lambda _ - (substitute* "setup.py" - (("from setuptools import setup") - "from distutils.core import setup")) - #t))))) + #:tests? #f)) ; no tests included (propagated-inputs `(("python2-numpy" ,python2-numpy) ("python2-scipy" ,python2-scipy) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index e447ef1603..b86f5efbfa 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -638,11 +638,6 @@ using a stylus.") (base32 "0rz2pg04wnzjjm2f5a8ik9v8s54mv4xrjhv5liqjijqv6awh12gl")))) (build-system python-build-system) - (arguments - ;; Prevent creation of the egg. Without this flag, various artifacts - ;; from the build inputs end up in the final python3 output. It also - ;; works around https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765 . - `(#:configure-flags '("--single-version-externally-managed" "--root=/"))) (propagated-inputs `(("python-pillow" ,python-pillow))) (home-page "http://www.reportlab.com") diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index f103706533..3fcd92dc83 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2800,12 +2800,6 @@ sources.") (base32 "19nw3rn7awplcdrz63kg1njqwkbymfg9lwn7l2grhdyhyr2gaa8g")))) (build-system python-build-system) - (arguments - `(;; With standard flags, the install phase attempts to create a zip'd - ;; egg file, and fails with an error: 'ZIP does not support timestamps - ;; before 1980' - #:configure-flags '("--single-version-externally-managed" - "--record=sphinx-rtd-theme.txt"))) (inputs `(("python-docutils" ,python-docutils) ("python-sphinx" ,python-sphinx))) @@ -3988,12 +3982,7 @@ Python's distutils.") (arguments ;; incompatible with Python 3 (exception syntax) `(#:python ,python-2 - #:tests? #f - ;; With standard flags, the install phase attempts to create a zip'd - ;; egg file, and fails with an error: 'ZIP does not support timestamps - ;; before 1980' - #:configure-flags '("--single-version-externally-managed" - "--record=elib.txt"))) + #:tests? #f)) (home-page "https://github.com/dieterv/elib.intl") (synopsis "Enhanced internationalization for Python") (description @@ -4026,17 +4015,6 @@ services for your Python modules and applications.") ;; Note: setuptools used at runtime for pkg_resources (arguments `(#:phases (modify-phases %standard-phases - (add-before - 'install 'disable-egg-compression - (lambda _ - ;; Leave the .egg uncompressed since compressing it would - ;; prevent the GC from identifying run-time dependencies. - ;; See . - (let ((port (open-file "setup.cfg" "a"))) - (display "\n[easy_install]\nzip_ok = 0\n" - port) - (close-port port) - #t))) (add-after 'install 'check-installed (lambda _ @@ -6520,15 +6498,7 @@ a hash value.") (substitute* "libarchive/ffi.py" (("find_library\\('archive'\\)") (string-append "'" libarchive - "/lib/libarchive.so'")))) - - ;; Do not make a compressed egg (see - ;; ). - (let ((port (open-file "setup.cfg" "a"))) - (display "\n[easy_install]\nzip_ok = 0\n" - port) - (close-port port) - #t)))))) + "/lib/libarchive.so'"))))))))) (inputs `(("libarchive" ,libarchive))) (home-page "https://github.com/Changaco/python-libarchive-c") @@ -9454,9 +9424,6 @@ CloudFront content delivery network.") `(;; Tests fail with "ValueError: _type_ 'v' not supported" on Python 3, ;; and on Python 2 they need the dl module deprecated since Python 2.6. #:tests? #f - ;; Prevent creation of the egg. This works around - ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765 . - #:configure-flags '("--single-version-externally-managed" "--root=/") ;; Hard-code the path to pkg-config. #:phases (modify-phases %standard-phases @@ -10979,10 +10946,7 @@ failures.") "06032agzhw1i9d9qlhfblnl3dw5hcyxhagn7b120zhrszbjzfbh3")))) (build-system python-build-system) (arguments - `(#:tests? #f ; Fails with recent pytest and pep8. See upstream issues #8 and #12. - ;; Prevent creation of the egg. This works around - ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765 . - #:configure-flags '("--single-version-externally-managed" "--root=/"))) + `(#:tests? #f)) ; Fails with recent pytest and pep8. See upstream issues #8 and #12. (native-inputs `(("python-pytest" ,python-pytest))) (propagated-inputs @@ -11007,10 +10971,7 @@ failures.") "0flag3n33kbhyjrhzmq990rvg4yb8hhhl0i48q9hw0ll89jp28lw")))) (build-system python-build-system) (arguments - `(;; Prevent creation of the egg. This works around - ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765 . - #:configure-flags '("--single-version-externally-managed" "--root=/") - #:phases + `(#:phases (modify-phases %standard-phases (delete 'check) (add-after 'install 'check diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 950c3ec64f..cca08d26a8 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1394,13 +1394,7 @@ and fast file reading.") (arguments `(#:phases (modify-phases %standard-phases - (replace 'check (lambda _ (zero? (system* "nosetests" "-v")))) - (add-after 'unpack 'prevent-generation-of-egg-archive - (lambda _ - (substitute* "setup.py" - (("from setuptools import setup") - "from distutils.core import setup")) - #t))))) + (replace 'check (lambda _ (zero? (system* "nosetests" "-v"))))))) (propagated-inputs `(("python-numpy" ,python-numpy) ("python-scipy" ,python-scipy) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 608fd6a080..607fa33b27 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -437,15 +437,6 @@ security, and applying best practice development processes.") (arguments `(#:phases (modify-phases %standard-phases - (add-before 'install 'disable-egg-compression - (lambda _ - ;; Do not compress the egg. - ;; See . - (let ((port (open-file "setup.cfg" "a"))) - (display "\n[easy_install]\nzip_ok = 0\n" - port) - (close-port port) - #t))) (add-after 'install 'docs (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index e6fbf6e005..fe079fb104 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -208,11 +208,7 @@ networks.") ;; After all the patching we run the tests after installing. ;; This is also a known issue: ;; https://github.com/micahflee/onionshare/issues/284 - (lambda _ (zero? (system* "nosetests" "test"))))) - ;; can't compress the egg because it expects to find all the resources - ;; inside the egg as though it were a folder. - #:configure-flags '("--single-version-externally-managed" "--root=/") - )) + (lambda _ (zero? (system* "nosetests" "test"))))))) (native-inputs `(("python-nose" ,python-nose))) (inputs -- cgit v1.2.3 From f22efa0152356da4755241de3726b6a254b49d11 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 13 Oct 2016 13:33:43 +0200 Subject: gnu: Fix python inputs, part 1: all inputs become propagated-inputs. This patch contains the changes where all [inputs] are changed to [propagated-inputs] * gnu/packages/python.scm (python-passlib, python-paramiko, python-ccm, python-babel, python-keyring python-pandas, python-tzlocal, python-parse-type, python-nose2, python-pytest, python-pytest-mock, python-pytest-xdist, python-scripttest, python-testtools, python-pytest-cov, python-testscenarios, python-pbr-0.11, python-oauthlib, python-jinja2, python-sphinx, python-tzlocal, python-bugz, python2-pytest-mock, behave, pelican, sqlalchemy-utils, python-pygridtools, python-urwidtrees, python-tornado, python2-tornado, python-debian, python-execnet, python-pytest-cache, pytest-localserver, python-clint, python-rply, python-hy, python-rauth, python-rsa, python-celery, python-vobject, s3cmd, python-prompt-toolkit, ptpython, python-requests-oauthlib, python-stem, python-binaryornot, python2-binaryornot, python-nltk, python-pymongo, python-schematics, python-url, python2-url, python-freezegun, python-glances, python-graphql-core, python-graphql-relay, python-graphene, python-nautilus, python-s3transfer): All [inputs] become [propagated-inputs]. * gnu/packages/bioinformatics.scm (python-biopython): Likewise. * gnu/packages/django.scm (pytest-django): Likewise. * gnu/packages/mail.scm (python-mailmanclient): Likewise. * gnu/packages/password-utils.scm (python-bcrypt): Likewise. * gnu/packages/propbuf.scm (python-protobuf): Likewise. * gnu/packages/rdf.scm (python-rdflib): Likewise. SQACH all become propagated --- gnu/packages/bioinformatics.scm | 2 +- gnu/packages/django.scm | 2 +- gnu/packages/mail.scm | 2 +- gnu/packages/password-utils.scm | 2 +- gnu/packages/protobuf.scm | 2 +- gnu/packages/python.scm | 136 ++++++++++++++++++++-------------------- gnu/packages/rdf.scm | 2 +- 7 files changed, 74 insertions(+), 74 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 9872933693..9cfb30023f 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -669,7 +669,7 @@ provide a coordinated and extensible framework to do computational biology.") (add-before 'check 'set-home ;; Some tests require a home directory to be set. (lambda _ (setenv "HOME" "/tmp") #t))))) - (inputs + (propagated-inputs `(("python-numpy" ,python-numpy))) (home-page "http://biopython.org/") (synopsis "Tools for biological computation in Python") diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 804f681e59..2de80353f8 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -141,7 +141,7 @@ with arguments to the field constructor.") (native-inputs `(("python-django" ,python-django) ("python-setuptools-scm" ,python-setuptools-scm))) - (inputs + (propagated-inputs `(("python-py" ,python-py) ("python-pytest" ,python-pytest))) (home-page "http://pytest-django.readthedocs.org/") diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index b44555c04d..bb7d16ce27 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1733,7 +1733,7 @@ for OpenSMTPD to extend its functionality.") (build-system python-build-system) (arguments `(#:tests? #f)) ; Requires mailman running - (inputs + (propagated-inputs `(("python-six" ,python-six) ("python-httplib2" ,python-httplib2))) (home-page "https://launchpad.net/mailman.client") diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 2e3c3b0632..cf030ecc82 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -361,7 +361,7 @@ winner of the 2015 Password Hashing Competition.") (native-inputs `(("python-pycparser" ,python-pycparser) ("python-pytest" ,python-pytest))) - (inputs + (propagated-inputs `(("python-cffi" ,python-cffi) ("python-six" ,python-six))) (home-page "https://github.com/pyca/bcrypt/") diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm index f4e9e88233..12f6f70521 100644 --- a/gnu/packages/protobuf.scm +++ b/gnu/packages/protobuf.scm @@ -63,7 +63,7 @@ internal RPC protocols and file formats.") (base32 "1xbgbfg4g43bihkyw1a2giqa2gxmqc5wkh0fzqcb90qi1z1hpi7c")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-six" ,python-six))) (home-page "https://github.com/google/protobuf") (synopsis "Protocol buffers is a data interchange format") diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 3fcd92dc83..3de73c76a5 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -464,7 +464,7 @@ pidof, tty, taskset, pmap.") (build-system python-build-system) (native-inputs `(("python-nose" ,python-nose))) - (inputs + (propagated-inputs `(("python-py-bcrypt" ,python-py-bcrypt))) (arguments `(#:phases @@ -536,9 +536,8 @@ John the Ripper).") "14k8z7ndc3zk5xivnm4d8lncchx475ll5izpf8vmfbq7rp9yp5rj")))) (build-system python-build-system) (propagated-inputs - `(("python-pycrypto" ,python-pycrypto))) - (inputs - `(("python-ecdsa" ,python-ecdsa))) + `(("python-pycrypto" ,python-pycrypto) + ("python-ecdsa" ,python-ecdsa))) (home-page "http://www.paramiko.org/") (synopsis "SSHv2 protocol library") (description "Paramiko is a python implementation of the SSHv2 protocol, @@ -617,7 +616,7 @@ making them easy to handle and incorporate into other protocols.") (base32 "177dfxsmk3k4cih6fh6v8d91bh4nqx7ns6pc07w7m7i3cvdx3c8n")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-pyyaml" ,python-pyyaml) ("python-six" ,python-six))) (home-page "https://github.com/pcmanus/ccm") @@ -665,7 +664,7 @@ using Python 2.4 or higher and provides access to the Olson timezone database.") (base32 "0k43pi0p1dwpds2w0km3fw92wixzxv2vw7p09capxmjz5cfh23lw")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-pytz" ,python-pytz))) (arguments `(#:tests? #f)) ; no test target (home-page "http://babel.pocoo.org/") @@ -901,7 +900,7 @@ etc.). The package is structured to make adding new modules easy.") (build-system python-build-system) (native-inputs `(("python-setuptools-scm" ,python-setuptools-scm))) - (inputs + (propagated-inputs `(("python-pycrypto" ,python-pycrypto))) (arguments `(#:tests? #f)) ;TODO: tests require pytest @@ -954,7 +953,7 @@ Python file, so it can be easily copied into your project.") (base32 "0jrfpcgvgya6hs45dhrd9yiqgdgz9qp9aa07zsw8gqgn8zphff86")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-six" ,python-six))) (home-page "https://dateutil.readthedocs.io/en/stable/") (synopsis "Extensions to the standard datetime module") @@ -1029,9 +1028,8 @@ datetime module, available in Python 2.3+.") (base32 "1ckpxrvvjj6zxmn68icd9hib8qcpx9b35f6izxnr25br5ilq7r6j")))) (build-system python-build-system) (propagated-inputs - `(("python-numpy" ,python-numpy))) - (inputs - `(("python-pytz" ,python-pytz) + `(("python-numpy" ,python-numpy) + ("python-pytz" ,python-pytz) ("python-dateutil" ,python-dateutil-2))) (native-inputs `(("python-nose" ,python-nose))) @@ -1060,7 +1058,8 @@ doing practical, real world data analysis in Python.") (base32 "0paj7vlsb0np8b5sp4bv64wxv7qk2piyp7xg29pkhdjwsbls9fnb")))) (build-system python-build-system) - (inputs `(("python-pytz" ,python-pytz))) + (propagated-inputs + `(("python-pytz" ,python-pytz))) (home-page "https://github.com/regebro/tzlocal") (synopsis "Local timezone information for Python") @@ -1289,7 +1288,8 @@ commands.") (arguments `(#:python ,python-2 ; SyntaxError with Python 3 #:tests? #f)) ; no 'test' sub-command - (inputs `(("element-tree" ,python2-element-tree))) + (propagated-inputs + `(("element-tree" ,python2-element-tree))) (synopsis "Python and command-line interface to Bugzilla") (description "PyBugz is a Python library and command-line tool to query the Bugzilla @@ -1339,7 +1339,7 @@ backported for previous versions of Python from 2.4 to 3.3.") (base32 "0iv1c34npr4iynwpgv1vkjx9rjd18a85ir8c01gc5f7wp8iv7l1x")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-six" ,python-six) ("python-parse" ,python-parse))) (arguments '(#:tests? #f)) ;TODO: tests require pytest @@ -1490,7 +1490,7 @@ matching them against a list of media-ranges.") "1x4zjq1zlyrh8b9ba0cmafd3w94pxhid408kibyjd3s6h1lap6s7")))) (build-system python-build-system) (arguments `(#:tests? #f)) ; 'module' object has no attribute 'collector' - (inputs + (propagated-inputs `(("python-cov-core" ,python-cov-core) ("python-pytest-cov" ,python-pytest-cov) ("python-six" ,python-six))) @@ -1660,7 +1660,7 @@ and many external plugins.") (base32 "1yl4nbhzfgsxqlsyk4clafgp9x11zvgrkprm9i2p3fgkwx9jxcm8")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-coverage" ,python-coverage) ("python-pytest" ,python-pytest))) (home-page "https://github.com/pytest-dev/pytest-cov") @@ -1724,7 +1724,7 @@ supports coverage of subprocesses.") (build-system python-build-system) (native-inputs `(("unzip" ,unzip))) - (inputs + (propagated-inputs `(("python-py" ,python-py) ("python-pytest" ,python-pytest))) (home-page "https://github.com/pytest-dev/pytest-mock/") @@ -1742,9 +1742,9 @@ same arguments.") (let ((base (package-with-python2 (strip-python2-variant python-pytest-mock)))) (package (inherit base) - (inputs + (propagated-inputs `(("python2-mock" ,python2-mock) - ,@(package-inputs base)))))) + ,@(package-propagated-inputs base)))))) (define-public python-pytest-xdist (package @@ -1769,7 +1769,7 @@ same arguments.") (native-inputs `(("unzip" ,unzip) ("python-setuptools-scm" ,python-setuptools-scm))) - (inputs + (propagated-inputs `(("python-apipkg" ,python-apipkg) ("python-execnet" ,python-execnet) ("python-pytest" ,python-pytest) @@ -1804,7 +1804,7 @@ result back.") (base32 "0f4w84k8ck82syys7yg9maz93mqzc8p5ymis941x034v44jzq74m")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-pytest" ,python-pytest))) (home-page "http://pythonpaste.org/scripttest/") (synopsis "Python library to test command-line scripts") @@ -1831,9 +1831,8 @@ subprocess and see the output as well as any file modifications.") "1dyml28ykpl5jb9khdmcdvhy1cxqingys6qvj2k04fzlaj6z3bbx")))) (build-system python-build-system) (propagated-inputs - `(("python-mimeparse" ,python-mimeparse))) - (inputs - `(("python-extras" ,python-extras))) + `(("python-mimeparse" ,python-mimeparse) + ("python-extras" ,python-extras))) (home-page "https://github.com/testing-cabal/testtools") (synopsis "Extensions to the Python standard library unit testing framework") @@ -1860,7 +1859,7 @@ compatibility.") (base32 "1671jvrvqlmbnc42j7pc5y6vc37q44aiwrq0zic652pxyy2fxvjg")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-testtools" ,python-testtools) ("python-mimeparse" ,python-mimeparse))) (home-page "https://launchpad.net/testscenarios") @@ -1912,7 +1911,7 @@ use of resources by test cases.") (base32 "1nkw9wfbvizmpajbj3in8ns07g7lwkiv8hip14jjlwk3cacls6jv")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-testtools" ,python-testtools) ("python-mimeparse" ,python-mimeparse) ("python-testscenarios" ,python-testscenarios))) @@ -1975,7 +1974,7 @@ Python tests.") (build-system python-build-system) (arguments `(#:tests? #f)) ;; Most tests seem to use the Internet. - (inputs + (propagated-inputs `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16))) (home-page "https://launchpad.net/pbr") (synopsis "Change the default behavior of Python’s setuptools") @@ -2172,7 +2171,7 @@ backported from Python 2.7 for Python 2.4+.") (base32 "1iypp6z46r19n4xmgx6m1lwmlpfjh8vapq8izigrqlaarvp2y64c")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-six" ,python-six) ("python-parse" ,python-parse) ("python-parse-type" ,python-parse-type))) @@ -2486,7 +2485,7 @@ somewhat intelligeble.") `(("python-coverage" ,python-coverage) ("python-nose" ,python-nose) ("python-mock" ,python-mock))) - (inputs + (propagated-inputs `(("python-blinker" ,python-blinker) ("python-cryptography" ,python-cryptography) ("python-pyjwt" ,python-pyjwt))) @@ -2628,7 +2627,7 @@ for Python.") (base32 "1x0v41lp5m1pjix3l46zx02b7lqp2hflgpnxwkywxynvi3zz47xw")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-markupsafe" ,python-markupsafe))) (home-page "http://jinja.pocoo.org/") (synopsis "Python template engine") @@ -2772,7 +2771,7 @@ reStructuredText.") (base32 "011xizm3jnmf4cvs5i6kgf6c5nn046h79i8j0vd0f27yw9j3p4wl")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-jinja2" ,python-jinja2) ("python-docutils" ,python-docutils) ("python-pygments" ,python-pygments))) @@ -2874,7 +2873,7 @@ interested parties to subscribe to events, or \"signals\".") (base32 "1hn94rb4q3zmcq16in055xikal4dba5hfx3zznq7warllcgc9f8k")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-feedgenerator" ,python-feedgenerator) ("python-jinja2" ,python-jinja2) ("python-pygments" ,python-pygments) @@ -4293,7 +4292,7 @@ Python language binding specification.") (sha256 (base32 "1gzjg2k6f14i1msm2b0ax8d9ds1hvk6qd5nlaivg8m4cxqp4cp1x")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-psutil" ,python-psutil) ("python-drmaa" ,python-drmaa) ("python-pyzmq" ,python-pyzmq))) @@ -4858,7 +4857,7 @@ features useful for text console applications.") (build-system python-build-system) (arguments '(#:tests? #f)) ; no tests - (inputs `(("python-urwid" ,python-urwid))) + (propagated-inputs `(("python-urwid" ,python-urwid))) (home-page "https://github.com/pazz/urwidtrees") (synopsis "Tree widgets for urwid") (description "Urwidtrees is a Widget Container API for the @code{urwid} @@ -5322,7 +5321,7 @@ It is written entirely in Python.") (build-system python-build-system) (native-inputs `(("python-certifi" ,python-certifi))) - (inputs + (propagated-inputs `(("python-backports-abc" ,python-backports-abc))) (home-page "http://www.tornadoweb.org/") (synopsis "Python web framework and asynchronous networking library") @@ -5338,11 +5337,11 @@ connection to each user.") (define-public python2-tornado (let ((tornado (package-with-python2 (strip-python2-variant python-tornado)))) (package (inherit tornado) - (inputs + (propagated-inputs `(("python2-backport-ssl-match-hostname" ,python2-backport-ssl-match-hostname) ("python2-singledispatch" ,python2-singledispatch) - ,@(package-inputs tornado)))))) + ,@(package-propagated-inputs tornado)))))) ;; the python- version can be removed with python-3.5 (define-public python-backports-abc @@ -6560,7 +6559,7 @@ serve the same purpose: provide Python bindings for libmagic."))) (base32 "193faznwnjc3n5991wyzim6h9gyq1zxifmfrnpm3avgkh7ahyynh")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-six" ,python-six))) (home-page "http://packages.debian.org/sid/python-debian") (synopsis "Debian package related modules") @@ -7668,7 +7667,7 @@ pure Python module that works on virtually all Python versions.") (native-inputs `(("python-pytest" ,python-pytest) ("python-setuptools-scm" ,python-setuptools-scm))) - (inputs + (propagated-inputs `(("python-apipkg" ,python-apipkg))) (synopsis "Rapid multi-Python deployment") (description "Execnet provides a share-nothing model with @@ -7698,7 +7697,7 @@ minimal and fast API targetting the following uses: (base32 "1a873fihw4rhshc722j4h6j7g3nj7xpgsna9hhg3zn6ksknnhx5y")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-apipkg" ,python-apipkg) ("python-execnet" ,python-execnet) ("python-py" ,python-py) @@ -7733,7 +7732,7 @@ the last py.test invocation.") `(("python-pytest" ,python-pytest) ("python-requests" ,python-requests) ("python-six" ,python-six))) - (inputs + (propagated-inputs `(("python-werkzeug" ,python-werkzeug))) (synopsis "Py.test plugin to test server connections locally") (description "Pytest-localserver is a plugin for the pytest testing @@ -7865,7 +7864,7 @@ Blog, News or Announcements section to a Sphinx website.") (base32 "1an5lkkqk1zha47198p42ji3m94xmzx1a03dn7866m87n4r4q8h5")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-args" ,python-args))) (home-page "https://github.com/kennethreitz/clint") (synopsis "Command-line interface tools") @@ -7910,7 +7909,7 @@ Abstract Syntax Tree.") (base32 "12rp1d9ba7nvd5rhaxi6xzx1rm67r1k1ylsrkzhpwnphqpb06cvj")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-appdirs" ,python-appdirs))) (home-page "https://github.com/alex/rply") (synopsis "Parser generator for Python") @@ -7934,7 +7933,7 @@ with a new public API, and RPython support.") (base32 "1msqv747iz12r73mz4qvsmlwkddwjvrahlrk7ysrcz07h7dsscxs")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-astor" ,python-astor) ("python-clint" ,python-clint) ("python-rply" ,python-rply))) @@ -7963,7 +7962,7 @@ Python at your fingertips, in Lisp form.") (build-system python-build-system) (arguments `(#:test-target "check")) - (inputs + (propagated-inputs `(("python-requests" ,python-requests))) (home-page "https://github.com/litl/rauth") (synopsis "Python library for OAuth 1.0/a, 2.0, and Ofly") @@ -8127,7 +8126,7 @@ text.") (base32 "1dcxvszbikgzh99ybdc7jq0zb9wspy2ds8z9mjsqiyv3q884xpr5")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-pyasn1" ,python-pyasn1))) (synopsis "Pure-Python RSA implementation") (description "Python-RSA is a pure-Python RSA implementation. It supports @@ -8828,7 +8827,7 @@ Python 2.4 and 2.5, and will draw its fixes/improvements from python-trunk.") (system* "nosetests" "--exclude=^test_safe_to_remove.*"))))))) (native-inputs `(("python-nose" ,python-nose))) - (inputs + (propagated-inputs `(("python-pytz" ,python-pytz) ("python-amqp" ,python-amqp) ("python-anyjson" ,python-anyjson) @@ -8994,7 +8993,7 @@ introspection of @code{zope.interface} instances in code.") (arguments '(;; The test suite relies on some non-portable Windows interfaces. #:tests? #f)) - (inputs + (propagated-inputs `(("python-dateutil-2" ,python-dateutil-2) ("python-pyicu" ,python-pyicu))) (synopsis "Parse and generate vCard and vCalendar files") @@ -9384,7 +9383,7 @@ the same purpose: to provide Python bindings for libmagic.") ;; s3cmd is written for python2 only and contains no tests. `(#:python ,python-2 #:tests? #f)) - (inputs + (propagated-inputs `(("python2-dateutil" ,python2-dateutil) ;; The python-file package also provides a magic.py module. ;; This is an unfortunate state of affairs; however, s3cmd @@ -10339,8 +10338,9 @@ implementation for Python.") (build-system python-build-system) (arguments '(#:tests? #f)) ; The test suite uses some Windows-specific data types. - (inputs `(("python-wcwidth" ,python-wcwidth) - ("python-pygments" ,python-pygments))) + (propagated-inputs + `(("python-wcwidth" ,python-wcwidth) + ("python-pygments" ,python-pygments))) (native-inputs `(("python-six" ,python-six))) (home-page "https://github.com/jonathanslenders/python-prompt-toolkit") (synopsis "Library for building command line interfaces in Python") @@ -10388,7 +10388,7 @@ characters, mouse support, and auto suggestions.") (base32 "1mmbiyzf0n8hm7z2a562x7w5cbl6jc0zsk6vp40q1z4cyblv1k13")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-docopt" ,python-docopt) ("python-jedi" ,python-jedi) ("python-prompt-toolkit" ,python-prompt-toolkit) @@ -10432,7 +10432,7 @@ etc.") (native-inputs `(("python-requests-mock" ,python-requests-mock) ("python-mock" ,python-mock))) - (inputs + (propagated-inputs `(("python-oauthlib" ,python-oauthlib) ("python-requests" ,python-requests))) (home-page @@ -10469,7 +10469,7 @@ provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients." `(("python-mock" ,python-mock) ("python-pep8" ,python-pep8) ("python-pyflakes" ,python-pyflakes))) - (inputs + (propagated-inputs `(("python-pycrypto" ,python-pycrypto))) (home-page "https://stem.torproject.org/") (synopsis @@ -10581,7 +10581,7 @@ hardware-accelerated multitouch applications.") (base32 "1j4f51dxic39mdwf6alj7gd769wy6mhk916v031wjali51xkh3xb")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-chardet" ,python-chardet) ("python-hypothesis" ,python-hypothesis))) (home-page "https://github.com/audreyr/binaryornot") @@ -10594,9 +10594,9 @@ binary or text.") (define-public python2-binaryornot (let ((base (package-with-python2 (strip-python2-variant python-binaryornot)))) (package (inherit base) - (inputs + (propagated-inputs `(("python2-enum34" ,python2-enum34) - ,@(package-inputs base)))))) + ,@(package-propagated-inputs base)))))) (define-public python-nltk (package @@ -10635,7 +10635,7 @@ reasoning, wrappers for natural language processing libraries.") (base32 "07mra6w86wjqy4lx5fvimidjhhfzd562gfjn8grsnbv2q8pk0i9x")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-certifi" ,python-certifi))) (home-page "http://github.com/mongodb/mongo-python-driver") (synopsis "Python driver for MongoDB") @@ -10707,7 +10707,7 @@ discovery, monitoring and configuration.") (base32 "19v1i69bf3bzarfxmbv0v6ivpcn758x3shvbiy9l2hy0lvqwnp6l")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-six" ,python-six))) (arguments `(#:tests? #f)) ; requires a bunch of not very nice packages with fixed @@ -10776,7 +10776,7 @@ List. Forked from and using the same API as the publicsuffix package.") (base32 "0v879yadcz9qxfl41ak6wkga1kimp9cflla9ddz03hjjvgkqy5ki")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-publicsuffix" ,python-publicsuffix))) (native-inputs `(("python-coverage" ,python-coverage) @@ -10792,7 +10792,7 @@ List. Forked from and using the same API as the publicsuffix package.") (define-public python2-url (let ((base (package-with-python2 (strip-python2-variant python-url)))) (package (inherit base) - (inputs + (propagated-inputs `(("python2-publicsuffix" ,python2-publicsuffix)))))) (define-public python-freezegun @@ -10812,7 +10812,7 @@ List. Forked from and using the same API as the publicsuffix package.") ("python-nose" ,python-nose) ("python-coverage" ,python-coverage) ("python-dateutil-2" ,python-dateutil-2))) - (inputs + (propagated-inputs `(("python-six" ,python-six))) (arguments `(#:phases (modify-phases %standard-phases @@ -11052,7 +11052,7 @@ functionality in the command line.") (base32 "11jbq40g8alsbirnd4kiagznqg270247i0m8qhi48ldf2i5xppxg")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-psutil" ,python-psutil))) (home-page "https://github.com/nicolargo/glances") @@ -11092,7 +11092,7 @@ CPU, load, memory, network bandwidth, disk I/O, disk use, and more.") `(("python-gevent" ,python-gevent) ("python-mock" ,python-mock) ("python-pytest-mock" ,python-pytest-mock))) - (inputs + (propagated-inputs `(("python-promise" ,python-promise) ("python-six" ,python-six))) (home-page "https://github.com/graphql-python/graphql-core") @@ -11121,7 +11121,7 @@ to Python.") (build-system python-build-system) (native-inputs `(("python-pytest" ,python-pytest))) - (inputs + (propagated-inputs `(("python-graphql-core" ,python-graphql-core) ("python-promise" ,python-promise) ("python-six" ,python-six))) @@ -11156,7 +11156,7 @@ from Facebook.") ("python-psycopg2" ,python-psycopg2) ("python-pytest-django" ,python-pytest-django) ("python-sqlalchemy-utils" ,python-sqlalchemy-utils))) - (inputs + (propagated-inputs `(("python-graphql-core" ,python-graphql-core) ("python-graphql-relay" ,python-graphql-relay) ("python-iso8601" ,python-iso8601) @@ -11192,7 +11192,7 @@ with an associated set of resolve methods that know how to fetch data.") "01hwzjc1zshk4vvxrcghm398fpy4jls66dyz06g07mrwqif8878p")))) (build-system python-build-system) (arguments `(#:tests? #f)) ; fails to import test modules - (inputs + (propagated-inputs `(("python-bcrypt" ,python-bcrypt) ("python-click" ,python-click) ("python-consul" ,python-consul) @@ -11264,7 +11264,7 @@ replay them during future tests. It is designed to work with python-requests.") `(("python-docutils" ,python-docutils) ("python-mock" ,python-mock) ("python-nose" ,python-nose))) - (inputs + (propagated-inputs `(("python-botocore" ,python-botocore))) (synopsis "Amazon S3 Transfer Manager") (description "S3transfer is a Python library for managing Amazon S3 diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm index 1a8d13369b..1dd23c28e3 100644 --- a/gnu/packages/rdf.scm +++ b/gnu/packages/rdf.scm @@ -315,7 +315,7 @@ ideal (e.g. in LV2 implementations or embedded applications).") (base32 "0kvaf332cqbi47rqzlpdx4mbkvw12mkrzkj8n9l19wk713d4py9w")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-html5lib" ,python-html5lib) ("python-isodate" ,python-isodate) ("python-pyparsing" ,python-pyparsing))) -- cgit v1.2.3 From e7881f3db4dfddf46c3cd61ee684a2efd629ce1b Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 13 Oct 2016 13:35:55 +0200 Subject: gnu: Fix python inputs, part 2: all inputs become native-inputs. This patch contains the changes where all [inputs] are changed to [native-inputs]. * gnu/packages/python.scm (python-pytest, python-fixtures, python-testrepository, python-virtualenv): All [inputs] are changed to [native-inputs]. * gnu/packages/openstack.scm (python-bandit, python-debtcollector, python-hacking, python-tempest-lib, python-oslo.config, python-oslo.context, python-oslo.i18n, python-oslo.log, python-oslo.serialization, python-oslosphinx, python-oslotest, python-oslo.utils): Likewise. --- gnu/packages/openstack.scm | 24 ++++++++++++------------ gnu/packages/python.scm | 8 ++++---- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 8cf3b957a7..327c4f984e 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -49,7 +49,7 @@ ("python-pyyaml" ,python-pyyaml) ("python-six" ,python-six) ("python-stevedore" ,python-stevedore))) - (inputs + (native-inputs `(("python-pbr" ,python-pbr) ;; Tests ("python-fixtures" ,python-fixtures) @@ -84,7 +84,7 @@ all the files it generates a report.") (propagated-inputs `(("python-six" ,python-six) ("python-wrapt" ,python-wrapt))) - (inputs + (native-inputs `(("python-babel" ,python-babel) ("python-pbr" ,python-pbr) ;; Tests. @@ -120,7 +120,7 @@ manner.") ("python-pep8-1.5.7" ,python-pep8-1.5.7) ("python-pyflakes-0.8.1" ,python-pyflakes-0.8.1) ("python-six" ,python-six))) - (inputs + (native-inputs `(;; Tests ("python-testscenarios" ,python-testscenarios))) (home-page "http://github.com/openstack-dev/hacking") @@ -333,7 +333,7 @@ extensions.") ("python-paramiko" ,python-paramiko) ("python-pbr" ,python-pbr) ("python-six" ,python-six))) - (inputs + (native-inputs `(("python-babel" ,python-babel) ("python-mock" ,python-mock) ("python-os-testr" ,python-os-testr) @@ -368,7 +368,7 @@ common features used in Tempest.") `(("python-netaddr" ,python-netaddr) ("python-six" ,python-six) ("python-stevedore" ,python-stevedore))) - (inputs + (native-inputs `(("python-pbr" ,python-pbr) ;; Tests ("python-oslo.i18n" ,python-oslo.i18n) @@ -397,7 +397,7 @@ common features used in Tempest.") (base32 "0kvha0rs9295njyl2z6n6zm5dapi5mrl5zwjm0m6ldqrvccyf8c3")))) (build-system python-build-system) - (inputs + (native-inputs `(("python-babel" ,python-babel) ("python-pbr" ,python-pbr) ;; Tests. @@ -428,7 +428,7 @@ pipeline and used by various modules such as logging.") (propagated-inputs `(("python-babel" ,python-babel) ("python-six" ,python-six))) - (inputs + (native-inputs `(("python-pbr" ,python-pbr) ;; Tests ("python-mock" ,python-mock) @@ -469,7 +469,7 @@ in an application or library.") ("python-oslo.utils" ,python-oslo.utils) ("python-oslo.serialization" ,python-oslo.serialization) ("python-six" ,python-six))) - (inputs + (native-inputs `(("python-babel" ,python-babel) ("python-iso8601" ,python-iso8601) ("python-mock" ,python-mock) @@ -505,7 +505,7 @@ handlers and support for context specific logging (like resource id’s etc).") ("python-simplejson" ,python-simplejson) ("python-six" ,python-six) ("python-pytz" ,python-pytz))) - (inputs + (native-inputs `(("python-babel" ,python-babel) ("python-pbr" ,python-pbr) ;; Tests. @@ -536,7 +536,7 @@ in transmittable and storable formats, such as JSON and MessagePack.") (build-system python-build-system) (propagated-inputs `(("python-requests" ,python-requests))) - (inputs + (native-inputs `(("python-pbr" ,python-pbr) ("python-docutils" ,python-docutils) ("python-hacking" ,python-hacking) @@ -571,7 +571,7 @@ from the OpenStack project.") ("python-mock" ,python-mock) ("python-mox3" ,python-mox3) ("python-six" ,python-six))) - (inputs + (native-inputs `(("python-pbr" ,python-pbr) ("python-os-client-config" ,python-os-client-config) ("python-subunit" ,python-subunit) @@ -614,7 +614,7 @@ and better support for mocking results.") ("python-netifaces" ,python-netifaces) ("python-pytz" ,python-pytz) ("python-six" ,python-six))) - (inputs + (native-inputs `(("python-babel" ,python-babel) ("python-pbr" ,python-pbr) ;; Tests. diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 3de73c76a5..8714cc1d31 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1608,7 +1608,7 @@ code introspection, and logging.") (("def test_remove_dir_prefix\\(self\\):") "@pytest.mark.xfail\n def test_remove_dir_prefix(self):"))))) (build-system python-build-system) - (inputs + (native-inputs `(("python-py" ,python-py) ("python-nose" ,python-nose) ("python-mock" ,python-mock))) @@ -2042,7 +2042,7 @@ and sensible default behaviors into your setuptools run.") (propagated-inputs `(("python-six" ,python-six) ("python-pbr-0.11" ,python-pbr-0.11))) - (inputs + (native-inputs `(;; Tests ("python-testtools" ,python-testtools))) (arguments @@ -2074,7 +2074,7 @@ Python tests.") (propagated-inputs `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16) ("python-testtools" ,python-testtools))) - (inputs + (native-inputs `(("python-subunit" ,python-subunit) ("python-mimeparse" ,python-mimeparse))) (home-page "https://launchpad.net/testrepository") @@ -2579,7 +2579,7 @@ object.") (substitute* "tests/test_virtualenv.py" (("skipif.*") "skipif(True, reason=\"Guix\")\n")) (zero? (system* "py.test"))))))) - (inputs + (native-inputs `(("python-mock" ,python-mock) ("python-pytest" ,python-pytest))) (home-page "https://virtualenv.pypa.io/") -- cgit v1.2.3 From dae73d9b9a4db932e8c7c1b7607981dc6cb401a5 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 13 Oct 2016 13:36:55 +0200 Subject: gnu: Fix python inputs, part 3: all native-inputs become propagated-inputs. This patch contains the changes in python.scm where all [native-inputs] are changed to [propagated-inputs]. * gnu/packages/python.scm.scm (python-feedgenerator): All [native-inputs] are changed to [propagated-inputs]. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 8714cc1d31..ace0ac3aaf 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2822,7 +2822,7 @@ sources.") (base32 "0mkimp1fpdan4p3882vzcws4l594k71ich4g0wq97jbra7p602n0")))) (build-system python-build-system) - (native-inputs + (propagated-inputs `(("python-pytz" ,python-pytz) ("python-six" ,python-six))) (home-page "https://github.com/getpelican/feedgenerator") -- cgit v1.2.3 From 482d95918e2a9de05ee224d979c15759e54febf0 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 13 Oct 2016 14:05:11 +0200 Subject: gnu: Fix python inputs, part 5: some inputs become propagated-inputs * gnu/packages/openstack.scm (python-os-client-config)[inputs] change to [native-inputs]. [propagated-inputs]: New element, move python-appdirs, python-pyyaml here. (python-git-review)[propagated-inputs]: New element, move python-requests here. * gnu/packages/python.scm (python-rpy2)[propagated-inputs]: New element, move python-six here. (python-xcffib)[inputs] move python-six to [propagated-inputs]. (python-flake8)[propagated-inputs]: New element, move python-pep8, python-pyflakes, python-mccabe here. (python-flake8-2.2.4)[propagated-inputs]: New element, move python-pep8, python-pyflakes, python-mccabe here. (python-pytest)[propagated-inputs]: New element, move python-py here. (python-tox)[propagated-inputs]: New element, move all inputs except of python-pytest here. (python-botocore)[propagated-inputs]: New element, move python-dateutil, python-docutils, python-jmespath here. (awscli)[propagated-inputs]: New element, move python-colorama, python-botocore, python-s3transfer, python-docutils, python-rsa here. (python-mako)[propagated-inputs]: New element, move python-markupsafe here. * gnu/packages/qemu.scm(python-libvirt)[propagated-inputs]: New element, move python-lxml here. --- gnu/packages/openstack.scm | 12 +++++---- gnu/packages/python.scm | 67 ++++++++++++++++++++++++++-------------------- gnu/packages/qemu.scm | 5 ++-- 3 files changed, 48 insertions(+), 36 deletions(-) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 327c4f984e..55fd005f9b 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -177,12 +177,13 @@ tested on Python version 3.2, 2.7 and 2.6.") (build-system python-build-system) (arguments `(#:tests? #f)) ;; Circular dependency with python-oslotest - (inputs + (propagated-inputs `(("python-appdirs" ,python-appdirs) + ("python-pyyaml" ,python-pyyaml))) + (native-inputs + `(("python-pbr" ,python-pbr) ("python-fixtures" ,python-fixtures) ("python-mimeparse" ,python-mimeparse) - ("python-pbr" ,python-pbr) - ("python-pyyaml" ,python-pyyaml) ("python-testrepository" ,python-testrepository) ("python-testscenarios" ,python-testscenarios) ("python-testtools" ,python-testtools))) @@ -790,9 +791,10 @@ permanence.") (list git openssh)))))))))) (native-inputs `(("python-pbr" ,python-pbr))) + (propagated-inputs + `(("python-requests" ,python-requests))) (inputs - `(("python-requests" ,python-requests) - ("git" ,git) + `(("git" ,git) ("openssh" ,openssh))) (home-page "http://docs.openstack.org/infra/git-review/") (synopsis "Command-line tool for Gerrit") diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index ace0ac3aaf..0ac7db9265 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1608,9 +1608,10 @@ code introspection, and logging.") (("def test_remove_dir_prefix\\(self\\):") "@pytest.mark.xfail\n def test_remove_dir_prefix(self):"))))) (build-system python-build-system) + (propagated-inputs + `(("python-py" ,python-py))) (native-inputs - `(("python-py" ,python-py) - ("python-nose" ,python-nose) + `(("python-nose" ,python-nose) ("python-mock" ,python-mock))) (home-page "http://pytest.org") (synopsis "Python testing library") @@ -3572,9 +3573,10 @@ operators such as union, intersection, and difference.") (base32 "0nhan2qvrw7b7gg5zddwa22kybdv3x1g26vkd7q8lvnkgzrs4dga")))) (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six))) (inputs - `(("python-six" ,python-six) - ("readline" ,readline) + `(("readline" ,readline) ("icu4c" ,icu4c) ("pcre" ,pcre) ("r" ,r))) @@ -4142,10 +4144,10 @@ a front-end for C compilers or analysis tools.") "0655hzxv57h1a9ja9kwp0ichbkhf3djw32k33d66xp0q37dq2y81")))) (build-system python-build-system) (inputs - `(("libxcb" ,libxcb) - ("python-six" ,python-six))) + `(("libxcb" ,libxcb))) (propagated-inputs - `(("python-cffi" ,python-cffi))) ; used at run time + `(("python-cffi" ,python-cffi) ; used at run time + ("python-six" ,python-six))) (arguments `(#:phases (alist-cons-after @@ -5564,11 +5566,12 @@ complexity of Python source code.") (base32 "0bs9cz4fr99r2rwig1b8jwaadl1nan7kgpdzqwj0bwbckwbmh7nc")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-pep8" ,python-pep8) ("python-pyflakes" ,python-pyflakes) - ("python-mccabe" ,python-mccabe) - ("python-mock" ,python-mock) + ("python-mccabe" ,python-mccabe))) + (inputs + `(("python-mock" ,python-mock) ("python-nose" ,python-nose))) (home-page "https://gitlab.com/pycqa/flake8") (synopsis @@ -5584,11 +5587,12 @@ complexity of Python source code.") ;; necessary once python-hacking > 0.10.2 is released. (define-public python-flake8-2.2.4 (package (inherit python-flake8) - (inputs + (propagated-inputs `(("python-pep8" ,python-pep8-1.5.7) ("python-pyflakes" ,python-pyflakes-0.8.1) - ("python-mccabe" ,python-mccabe-0.2.1) - ("python-mock" ,python-mock) + ("python-mccabe" ,python-mccabe-0.2.1))) + (inputs + `(("python-mock" ,python-mock) ("python-nose" ,python-nose))) (version "2.2.4") (source @@ -8176,11 +8180,12 @@ Pytest but stripped of Pytest specific details.") ;; FIXME: Tests require a newer version of pytest, but upgrading our ;; pytest breaks other packages. '(#:tests? #f)) - (inputs - `(("python-pluggy" ,python-pluggy) + (propagated-inputs + `(("python-pluggy" ,python-pluggy) ; >=0.3.0,<0.4.0 ("python-py" ,python-py) - ("python-virtualenv" ,python-virtualenv) - ("python-pytest" ,python-pytest))) + ("python-virtualenv" ,python-virtualenv))) + (inputs + `(("python-pytest" ,python-pytest))) (home-page "http://tox.testrun.org/") (synopsis "Virtualenv-based automation of test activities") (description "Tox is a generic virtualenv management and test command line @@ -8227,14 +8232,16 @@ document.") (base32 "1zxczlwqy9bl27d9bc5x99mb5mcsxm350240lp5nx7014xb311lj")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-dateutil" ,python-dateutil-2) ("python-docutils" ,python-docutils) - ("python-mock" ,python-mock) + ("python-jmespath" ,python-jmespath))) + (inputs + `(("python-mock" ,python-mock) ("python-nose" ,python-nose) + ("behave" ,behave) ("python-tox" ,python-tox) - ("python-wheel" ,python-wheel) - ("python-jmespath" ,python-jmespath))) + ("python-wheel" ,python-wheel))) (home-page "https://github.com/boto/botocore") (synopsis "Low-level interface to AWS") (description "Botocore is a Python library that provides a low-level @@ -8256,17 +8263,18 @@ interface to the Amazon Web Services (AWS) API.") (base32 "0lclasm0wnayd3b8zl9l91i32nbgrhh0ncf9lksss4cv0myfwmfg")))) (build-system python-build-system) - (inputs + (propagated-inputs `(("python-colorama" ,python-colorama) + ("python-botocore" ,python-botocore) + ("python-s3transfer" ,python-s3transfer) ("python-docutils" ,python-docutils) - ("python-mock" ,python-mock) + ("python-rsa" ,python-rsa))) + (inputs + `(("python-mock" ,python-mock) ("python-nose" ,python-nose) - ("python-rsa" ,python-rsa) ("python-sphinx" ,python-sphinx) ("python-tox" ,python-tox) - ("python-wheel" ,python-wheel) - ("python-botocore" ,python-botocore) - ("python-s3transfer" ,python-s3transfer))) + ("python-wheel" ,python-wheel))) (home-page "http://aws.amazon.com/cli/") (synopsis "Command line client for AWS") (description "AWS CLI provides a unified command line interface to the @@ -8403,9 +8411,10 @@ available in Django, but is a standalone package.") (base32 "136kcjbs0s98qkx8a418b05dfblqp0kiiqyx8vhx4rarwc7bqi3n")))) (build-system python-build-system) + (propagated-inputs + `(("python-markupsafe" ,python-markupsafe))) (native-inputs - `(("python-markupsafe" ,python-markupsafe) - ("python-mock" ,python-mock) + `(("python-mock" ,python-mock) ("python-nose" ,python-nose))) (home-page "http://www.makotemplates.org/") (synopsis "Templating language for Python") diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm index f6e34cace4..332e2ad0ef 100644 --- a/gnu/packages/qemu.scm +++ b/gnu/packages/qemu.scm @@ -395,8 +395,9 @@ three libraries: (which "nosetests") "\""))) #t))))) (inputs - `(("libvirt" ,libvirt) - ("python-lxml" ,python-lxml))) + `(("libvirt" ,libvirt))) + (propagated-inputs + `(("python-lxml" ,python-lxml))) (native-inputs `(("pkg-config" ,pkg-config) ("python-nose" ,python-nose))) -- cgit v1.2.3 From 328bb95d3507682f5e06fb2880c632252f59ee57 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Fri, 7 Oct 2016 21:27:08 +0200 Subject: gnu: Fix python inputs, part 6: some inputs become native-inputs. This patch handles the inputs which are native-inputs almost always like nose, sphinx, and pytest. * gnu/packages/python.scm (python-jsonschema, python-numpydoc, python-mccabe, python-mistune, python-ptyprocess, python-webob, python-apipkg, python-flake8-2.2.4)[inputs] change to [native-inputs]. (python-flake8, tox) Likewise, add a comment. (python-scikit-learn, python-numpy)[native-inputs] New element, move python-nose here. (python2-kombu)[inputs] change to [native-inputs], use python-kombu's package-native-inputs. --- gnu/packages/python.scm | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 0ac7db9265..3442488d29 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2940,8 +2940,9 @@ and is very extensible.") (system* "nosetests" "-v" "sklearn"))) (alist-delete 'check %standard-phases))))) (inputs - `(("openblas" ,openblas) - ("python-nose" ,python-nose))) + `(("openblas" ,openblas))) + (native-inputs + `(("python-nose" ,python-nose))) (propagated-inputs `(("python-numpy" ,python-numpy) ("python-scipy" ,python-scipy))) @@ -3126,9 +3127,10 @@ between language specification and implementation aspects.") (base32 "1bjjhvncraka5s6i4lg644jrxij6bvycxy7an20gcz3a0m11iygp")))) (build-system python-build-system) + (native-inputs + `(("python-nose" ,python-nose))) (inputs - `(("python-nose" ,python-nose) - ("openblas" ,openblas) + `(("openblas" ,openblas) ("lapack" ,lapack))) (native-inputs `(("gfortran" ,gfortran))) @@ -3345,7 +3347,7 @@ that client code uses to construct the grammar directly in Python code.") (substitute* "numpydoc/tests/test_plot_directive.py" (("3") "2")))))) (build-system python-build-system) - (inputs + (native-inputs `(("python-docutils" ,python-docutils) ("python-sphinx" ,python-sphinx) ("python-nose" ,python-nose))) @@ -5489,7 +5491,7 @@ PEP 8.") (base32 "0yr08a36h8lqlif10l4xcikbbig7q8f41gqywir7rrvnv3mi4aws")))) (build-system python-build-system) - (inputs + (native-inputs `(("python-pytest" ,python-pytest) ("python-pytest-runner" ,python-pytest-runner))) (home-page "https://github.com/flintwork/mccabe") @@ -5570,8 +5572,8 @@ complexity of Python source code.") `(("python-pep8" ,python-pep8) ("python-pyflakes" ,python-pyflakes) ("python-mccabe" ,python-mccabe))) - (inputs - `(("python-mock" ,python-mock) + (native-inputs + `(("python-mock" ,python-mock) ; TODO: only required for < 3.3 ("python-nose" ,python-nose))) (home-page "https://gitlab.com/pycqa/flake8") (synopsis @@ -5591,7 +5593,7 @@ complexity of Python source code.") `(("python-pep8" ,python-pep8-1.5.7) ("python-pyflakes" ,python-pyflakes-0.8.1) ("python-mccabe" ,python-mccabe-0.2.1))) - (inputs + (native-inputs `(("python-mock" ,python-mock) ("python-nose" ,python-nose))) (version "2.2.4") @@ -5621,7 +5623,7 @@ complexity of Python source code.") (base32 "17zqjp9m4d1w3jf2rbbq5xshcw24q1vlcv24gkgfqqyyymajxahx")))) (build-system python-build-system) - (inputs + (native-inputs `(("python-nose" ,python-nose) ("python-cython" ,python-cython))) (home-page "https://github.com/lepture/mistune") @@ -5680,7 +5682,7 @@ markdown_py is also provided to convert Markdown files to HTML.") (base32 "0nggns5kikn32yyda2zrj1xdmh49pi3v0drggcdwljbv36r8zdyw")))) (build-system python-build-system) - (inputs + (native-inputs `(("python-nose" ,python-nose))) (arguments `(#:phases @@ -5994,7 +5996,7 @@ fractional seconds) of a clock which never goes backwards.") (base32 "02bhhzijfhv8hmi1i54d4b0v43liwhnywhflvxsv4x3zax9s3afq")))) (build-system python-build-system) - (inputs + (native-inputs `(("python-nose" ,python-nose))) (home-page "http://webob.org/") (synopsis "WSGI request and response object") @@ -7640,7 +7642,7 @@ applications.") (base32 "1iks5701qnp3dlr3q1d9qm68y2plp2m029irhpz92a44psfkjf1f")))) (build-system python-build-system) - (inputs + (native-inputs `(("python-pytest" ,python-pytest))) (synopsis "Namespace control and lazy-import mechanism") (description "With apipkg you can control the exported namespace of a Python @@ -8184,8 +8186,8 @@ Pytest but stripped of Pytest specific details.") `(("python-pluggy" ,python-pluggy) ; >=0.3.0,<0.4.0 ("python-py" ,python-py) ("python-virtualenv" ,python-virtualenv))) - (inputs - `(("python-pytest" ,python-pytest))) + (native-inputs + `(("python-pytest" ,python-pytest))) ; >= 2.3.5 (home-page "http://tox.testrun.org/") (synopsis "Virtualenv-based automation of test activities") (description "Tox is a generic virtualenv management and test command line @@ -8776,8 +8778,8 @@ RabbitMQ messaging server is the most popular implementation.") (strip-python2-variant python-kombu)))) (package (inherit kombu) - (inputs `(("python2-unittest2" ,python2-unittest2) - ,@(package-inputs kombu)))))) + (native-inputs `(("python2-unittest2" ,python2-unittest2) + ,@(package-native-inputs kombu)))))) (define-public python-billiard (package -- cgit v1.2.3 From f2516de2fc7459d8ceed1779f0f24840075d08d6 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 13 Oct 2016 14:33:55 +0200 Subject: gnu: Fix python inputs, part 7: Ensure python-cython is a native-input. * gnu/packages/audio.scm (python-pyliblo): [inputs] Move python-cyton to [native-inputs]. * gnu/packages/bioinformatics.scm (python2-pybedtools): dito. * gnu/packages/music.scm (beast, python-pyportmidi): dito. * gnu/packages/python.scm (python2-fastlmm, python-kivy): dito. --- gnu/packages/audio.scm | 5 +++-- gnu/packages/bioinformatics.scm | 6 +++--- gnu/packages/music.scm | 8 ++++---- gnu/packages/python.scm | 6 +++--- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 7d2e2d2a4b..5e32081293 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1434,9 +1434,10 @@ implementation of the Open Sound Control (OSC) protocol.") "13vry6xhxm7adnbyj28w1kpwrh0kf7nw83cz1yq74wl21faz2rzw")))) (build-system python-build-system) (arguments `(#:tests? #f)) ;no tests + (native-inputs + `(("python-cython" ,python-cython))) (inputs - `(("python-cython" ,python-cython) - ("liblo" ,liblo))) + `(("liblo" ,liblo))) (home-page "http://das.nasophon.de/pyliblo/") (synopsis "Python bindings for liblo") (description diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 9cfb30023f..9b47dc3d51 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -522,13 +522,13 @@ intended to behave exactly the same as the original BWK awk.") (build-system python-build-system) (arguments `(#:python ,python-2)) ; no Python 3 support (inputs - `(("python-cython" ,python2-cython) - ("python-matplotlib" ,python2-matplotlib))) + `(("python-matplotlib" ,python2-matplotlib))) (propagated-inputs `(("bedtools" ,bedtools) ("samtools" ,samtools))) (native-inputs - `(("python-pyyaml" ,python2-pyyaml) + `(("python-cython" ,python2-cython) + ("python-pyyaml" ,python2-pyyaml) ("python-nose" ,python2-nose))) (home-page "https://pythonhosted.org/pybedtools/") (synopsis "Python wrapper for BEDtools programs") diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 61bcd3785b..caebe70dd6 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1022,7 +1022,6 @@ Laurens Hammond and Don Leslie.") `(("rapicorn" ,rapicorn) ("guile" ,guile-1.8) ("python" ,python-2) - ("cython" ,python2-cython) ("libgnomecanvas" ,libgnomecanvas) ("libogg" ,libogg) ("libmad" ,libmad) @@ -1033,6 +1032,7 @@ Laurens Hammond and Don Leslie.") (native-inputs `(("pkg-config" ,pkg-config) ("glib:bin" ,glib "bin") + ("cython" ,python2-cython) ("perl" ,perl) ("perl-xml-parser" ,perl-xml-parser))) (home-page "https://testbit.eu/wiki/Beast_Home") @@ -1315,10 +1315,10 @@ using a system-independent interface.") #t))))) (inputs `(("portmidi" ,portmidi) - ("alsa-lib" ,alsa-lib) - ("python-cython" ,python-cython))) + ("alsa-lib" ,alsa-lib))) (native-inputs - `(("unzip" ,unzip))) + `(("python-cython" ,python-cython) + ("unzip" ,unzip))) (home-page "http://portmedia.sourceforge.net/portmidi/") (synopsis "Python bindings to PortMidi") (description diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 3442488d29..35d9021165 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -10542,10 +10542,10 @@ and/or Xon/Xoff. The port is accessed in RAW mode.") "/include/SDL2")) #t))))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("python-cython" ,python-cython))) (inputs - `(("python-cython" ,python-cython) - ("gstreamer" ,gstreamer) + `(("gstreamer" ,gstreamer) ("mesa" ,mesa) ("sdl-union" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf))))) -- cgit v1.2.3 From b3e8b4bd0f390784c710944c9962a0e13b25ed02 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 2 Oct 2016 14:13:56 +0200 Subject: gnu: scons: Do not use setuptools for building. * gnu/packages/python.scm (scons): Set "#:use-setuptools" to #f. --- gnu/packages/python.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 35d9021165..2f7ae95fa4 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1390,6 +1390,7 @@ syntax.") (arguments ;; With Python 3.x, fails to build with a syntax error. `(#:python ,python-2 + #:use-setuptools? #f ; still relies on distutils #:tests? #f)) ; no 'python setup.py test' command (home-page "http://scons.org/") (synopsis "Software construction tool written in Python") -- cgit v1.2.3 From ce40b3839535c4858bec61ac23a557fca4c79cc0 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 2 Oct 2016 23:15:14 +0200 Subject: gnu: python-pytest-cov: Use upstream options for testing. * gnu/packages/python.scm (python-pytest-cov): Replace phase "check" by one passing the options found in upstream's tox.ini-file to "python setup.py check". --- gnu/packages/python.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 2f7ae95fa4..b0c1411c22 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1662,6 +1662,16 @@ and many external plugins.") (base32 "1yl4nbhzfgsxqlsyk4clafgp9x11zvgrkprm9i2p3fgkwx9jxcm8")))) (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; options taken from tox.ini + ;; TODO: make "--restructuredtext" tests pass. They currently fail + ;; with "Duplicate implicit target name" + (zero? (system* "python" "./setup.py" "check" + "--strict" "--metadata"))))))) (propagated-inputs `(("python-coverage" ,python-coverage) ("python-pytest" ,python-pytest))) -- cgit v1.2.3 From ef7451131a13b48adf8eea5d402caee8a5e5c344 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Tue, 4 Oct 2016 00:33:14 +0200 Subject: gnu: python-sphinx-rtd-theme: Remove inputs. This package is a plugin for python-sphinx, it does not require python-sphinx nor docutils, but is an add-on for python-sphinx and should not be installed by it's own. * gnu/packages/python/.scm (python-sphinx-rtd-theme)[inputs]: Remove. --- gnu/packages/python.scm | 3 --- 1 file changed, 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index b0c1411c22..77e4298d49 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2811,9 +2811,6 @@ sources.") (base32 "19nw3rn7awplcdrz63kg1njqwkbymfg9lwn7l2grhdyhyr2gaa8g")))) (build-system python-build-system) - (inputs - `(("python-docutils" ,python-docutils) - ("python-sphinx" ,python-sphinx))) (home-page "https://github.com/snide/sphinx_rtd_theme/") (synopsis "ReadTheDocs.org theme for Sphinx") (description "A theme for Sphinx used by ReadTheDocs.org.") -- cgit v1.2.3 From e165f137d8f5ace7bcfa03dc096b0793a1e45267 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 13 Oct 2016 14:54:38 +0200 Subject: gnu: python-ccm: Add missing input python-psutil. * gnu/packages/python.scm (python-ccm) [propagated-inouts]: Add python-psutil. --- gnu/packages/python.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 77e4298d49..578207920a 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -618,6 +618,9 @@ making them easy to handle and incorporate into other protocols.") (build-system python-build-system) (propagated-inputs `(("python-pyyaml" ,python-pyyaml) + ;; Not listed in setup.py, but used in ccmlib/node.py for full + ;; functionality + ("python-psutil" ,python-psutil) ("python-six" ,python-six))) (home-page "https://github.com/pcmanus/ccm") (synopsis "Cassandra Cluster Manager") -- cgit v1.2.3 From d9a6e221e2082248c46a145422f36d21529c6716 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 13 Oct 2016 15:01:18 +0200 Subject: gnu: python-ccm: Update synopsis and description. * gnu/packages/python.scm (python-ccm): Update synopsis and description. --- gnu/packages/python.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 578207920a..bdcd1e39aa 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -623,9 +623,11 @@ making them easy to handle and incorporate into other protocols.") ("python-psutil" ,python-psutil) ("python-six" ,python-six))) (home-page "https://github.com/pcmanus/ccm") - (synopsis "Cassandra Cluster Manager") - (description "A script/library to create, launch and remove an Apache -Cassandra cluster on localhost.") + (synopsis "Cassandra Cluster Manager for Apache Cassandra clusters on +localhost") + (description "Cassandra Cluster Manager is a development tool for testing +local Cassandra clusters. It creates, launches and removes Cassandra clusters +on localhost.") (license license:asl2.0))) (define-public python2-ccm -- cgit v1.2.3 From 9820a02858840d6f0aef6d13541aaf7148e50651 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Wed, 28 Sep 2016 14:38:54 +0200 Subject: gnu: python-h5py: Remove needless "python2-variant" property. * gnu/packages/python.scm (python-h5py) [python2-variant]: Remove property. (python2-h5py): Don't strip property "strip-python2-variant". --- gnu/packages/python.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index bdcd1e39aa..defec4963f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -757,11 +757,10 @@ HDF5 library from Python. The low-level interface is intended to be a complete wrapping of the HDF5 API, while the high-level component supports access to HDF5 files, datasets and groups using established Python and NumPy concepts.") - (license license:bsd-3) - (properties `((python2-variant . ,(delay python2-h5py)))))) + (license license:bsd-3))) (define-public python2-h5py - (package-with-python2 (strip-python2-variant python-h5py))) + (package-with-python2 python-h5py)) (define-public python-lockfile (package -- cgit v1.2.3 From 69866690128615bea022080138d91da4789948db Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 6 Oct 2016 15:38:20 +0200 Subject: gnu: python-hdf5: Correct inputs. According to setup.py python-six is requried at run-time, thus has to be a propagated input. * gnu/packages/python.scm (python-hdf5) [inputs]: Move `python-six` to [propagated-inputs]. --- gnu/packages/python.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index defec4963f..13bc5ff43b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -742,10 +742,10 @@ and verifies that it matches the intended target hostname.") (string-append "['" prefix "/lib" "']"))) #t)))))) (propagated-inputs - `(("python-numpy" ,python-numpy))) + `(("python-six" ,python-six) + ("python-numpy" ,python-numpy))) (inputs - `(("hdf5" ,hdf5) - ("python-six" ,python-six))) + `(("hdf5" ,hdf5))) (native-inputs `(("python-cython" ,python-cython) ("python-pkgconfig" ,python-pkgconfig))) -- cgit v1.2.3 From ae92caddc5a292b31bb7fc6e4e7c974880f482c0 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 13 Oct 2016 14:43:57 +0200 Subject: gnu: python-fixture: Correct inputs. python-pbr is required only for building. * gnu/packages/python.scm (python-fixtures) [propagated-inputs] move python-pbr-0.11 to [native-inputs]. --- gnu/packages/python.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 13bc5ff43b..8d1acb343b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2056,10 +2056,9 @@ and sensible default behaviors into your setuptools run.") "0djxvdwm8s60dbfn7bhf40x6g818p3b3mlwijm1c3bqg7msn271y")))) (build-system python-build-system) (propagated-inputs - `(("python-six" ,python-six) - ("python-pbr-0.11" ,python-pbr-0.11))) + `(("python-six" ,python-six))) (native-inputs - `(;; Tests + `(("python-pbr-0.11" ,python-pbr-0.11) ("python-testtools" ,python-testtools))) (arguments '(#:tests? #f)) ; no setup.py test command -- cgit v1.2.3 From 424f0a41756486c10ec285f34daaa2f9a2ce04ce Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 13 Oct 2016 14:44:53 +0200 Subject: gnu: python-fixture: Enable tests. * gnu/packages/python.scm (python-fixtures) [arguments] remove keyword `#:tests?`. --- gnu/packages/python.scm | 2 -- 1 file changed, 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 8d1acb343b..ecaf537d72 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2060,8 +2060,6 @@ and sensible default behaviors into your setuptools run.") (native-inputs `(("python-pbr-0.11" ,python-pbr-0.11) ("python-testtools" ,python-testtools))) - (arguments - '(#:tests? #f)) ; no setup.py test command (home-page "https://launchpad.net/python-fixtures") (synopsis "Python test fixture library") (description -- cgit v1.2.3 From b2e66edf52c75e845b982c91c849141d11f86b2d Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 13 Oct 2016 14:46:12 +0200 Subject: gnu: python-testrepositoryfixture: Correct inputs. python-fixtures is required only for building. * gnu/packages/python.scm (python-testrepository) [propagated-inputs] move python-fixtures to [native-inputs]. --- gnu/packages/python.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index ecaf537d72..d01b13a644 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2085,10 +2085,10 @@ Python tests.") "1ssqb07c277010i6gzzkbdd46gd9mrj0bi0i8vn560n2k2y4j93m")))) (build-system python-build-system) (propagated-inputs - `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16) - ("python-testtools" ,python-testtools))) + `(("python-testtools" ,python-testtools))) (native-inputs - `(("python-subunit" ,python-subunit) + `(("python-fixtures" ,python-fixtures) + ("python-subunit" ,python-subunit) ("python-mimeparse" ,python-mimeparse))) (home-page "https://launchpad.net/testrepository") (synopsis "Database for Python test results") -- cgit v1.2.3 From d2a8db92feb6ee2864ee3c6981dd43055ea91339 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 13 Oct 2016 14:46:35 +0200 Subject: gnu: python-pbr: Rework bootstrapping. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For breaking the cyclic build, formerly a separate (older) version was used for bootstrapping. Now we use the same version just without tests and without test dependencies. * gnu/packages/python.scm (python-pbr-0.11, python2-pbr-0.11): replace by … (python-pbr-minimal, python2-pbr-minimal). (python-pbr) inherit from python-pbr-minimal, adding the requirements for testing and building the documentation. (python-fixtures) [native-inputs] Use python-pbr-minimal here. (python-testrepository): [native-inputs] Add it here, it was a missing dependency. --- gnu/packages/python.scm | 106 ++++++++++++++++-------------------------------- 1 file changed, 34 insertions(+), 72 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index d01b13a644..40e6ac9c08 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1941,104 +1941,65 @@ protocol.") (define-public python2-subunit (package-with-python2 python-subunit)) -;; Recent versions of python-fixtures need a recent version of python-pbr, -;; which needs a recent version of python-fixtures. To fix this circular -;; dependency, we keep old versions of python-fixtures and python-pbr to -;; bootstrap the whole thing: -;; - python-fixtures-0.3.16 is used to build python-pbr-0.11 -;; - python-pbr-0.11 is used to build python-fixtures -;; - python-fixtures is used to build python-pbr -(define-public python-fixtures-0.3.16 - (package - (name "python-fixtures") - (version "0.3.16") - (source - (origin - (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/f/fixtures/fixtures-" - version ".tar.gz")) - (sha256 - (base32 - "0x9r2gwilcig5g54k60bxzg96zabizq1855lrprlb4zckalp9asc")))) - (build-system python-build-system) - (arguments - '(#:tests? #f)) ; no setup.py test command - (home-page "https://launchpad.net/python-fixtures") - (synopsis "Python test fixture library") - (description - "Fixtures provides a way to create reusable state, useful when writing -Python tests.") - (license (list license:bsd-3 license:asl2.0)))) ; at user's option - -(define-public python2-fixtures-0.3.16 - (package-with-python2 python-fixtures-0.3.16)) - -(define-public python-pbr-0.11 - (package - (name "python-pbr") - (version "0.11.0") +;; Recent versions of python-fixtures and python-testrepository need +;; python-pbr for packaging, which itself needs these two packages for +;; testing. +;; To fix this circular dependency, we use a build of python-pbr, based on the +;; same source, just without any test dependencies and with tests disabled. +;; python-pbr-minmal is then used to package python-fixtures and +;; python-testrepository. +;; Strictly speaking we currently could remove the test-requirements from the +;; normal python-pbr package (and save this package) since test are disabled +;; there anyway. But this may change in future. +(define python-pbr-minimal + (package + (name "python-pbr-minimal") + (version "1.8.1") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/p/pbr/pbr-" - version ".tar.gz")) + (uri (pypi-uri "pbr" version)) (sha256 (base32 - "0v9gb7gyqf7q9s99l0nnjj9ww9b0jvyqlwm4d56pcyinxydddw6p")))) + "0jcny36cf3s8ar5r4a575npz080hndnrfs4np1fqhv0ym4k7c4p2")))) (build-system python-build-system) (arguments - `(#:tests? #f)) ;; Most tests seem to use the Internet. - (propagated-inputs - `(("python-fixtures-0.3.16" ,python-fixtures-0.3.16))) - (home-page "https://launchpad.net/pbr") - (synopsis "Change the default behavior of Python’s setuptools") + `(#:tests? #f)) + (home-page "http://docs.openstack.org/developer/pbr/") + (synopsis "Minimal build of python-pbr used for bootstrapping") (description - "Python Build Reasonableness (PBR) is a library that injects some useful -and sensible default behaviors into your setuptools run.") + "Used only for bootstrapping python2-pbr, you should not need this.") (license license:asl2.0))) -(define-public python2-pbr-0.11 - (package-with-python2 python-pbr-0.11)) +(define python2-pbr-minimal + (package-with-python2 python-pbr-minimal)) (define-public python-pbr (package + (inherit python-pbr-minimal) (name "python-pbr") - (version "1.8.1") - (source - (origin - (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/p/pbr/pbr-" - version - ".tar.gz")) - (sha256 - (base32 - "0jcny36cf3s8ar5r4a575npz080hndnrfs4np1fqhv0ym4k7c4p2")))) - (build-system python-build-system) (arguments `(#:tests? #f)) ;; Most tests seem to use the Internet. (propagated-inputs - `(("python-testrepository" ,python-testrepository) - ("git" ,git))) ;; pbr actually uses the "git" binary. - (inputs + `(("git" ,git))) ;; pbr actually uses the "git" binary. + (native-inputs `(("python-fixtures" ,python-fixtures) - ("python-mimeparse" ,python-mimeparse) + ;; discover, coverage, hacking, subunit ("python-mock" ,python-mock) - ("python-six" ,python-six) + ("python-six" ,python-six) ("python-sphinx" ,python-sphinx) ("python-testrepository" ,python-testrepository) ("python-testresources" ,python-testresources) ("python-testscenarios" ,python-testscenarios) ("python-testtools" ,python-testtools) ("python-virtualenv" ,python-virtualenv))) - (home-page "https://launchpad.net/pbr") - (synopsis "Change the default behavior of Python’s setuptools") + (synopsis "Enhance the default behavior of Python’s setuptools") (description "Python Build Reasonableness (PBR) is a library that injects some useful -and sensible default behaviors into your setuptools run.") - (license license:asl2.0))) +and sensible default behaviors into your setuptools run. It will set +versions, process requirements files and generate AUTHORS and ChangeLog file +from git information. +"))) (define-public python2-pbr (package-with-python2 python-pbr)) @@ -2058,7 +2019,7 @@ and sensible default behaviors into your setuptools run.") (propagated-inputs `(("python-six" ,python-six))) (native-inputs - `(("python-pbr-0.11" ,python-pbr-0.11) + `(("python-pbr-minimal" ,python-pbr-minimal) ("python-testtools" ,python-testtools))) (home-page "https://launchpad.net/python-fixtures") (synopsis "Python test fixture library") @@ -2088,6 +2049,7 @@ Python tests.") `(("python-testtools" ,python-testtools))) (native-inputs `(("python-fixtures" ,python-fixtures) + ("python-pbr-minimal" ,python-pbr-minimal) ;; same as for building fixture ("python-subunit" ,python-subunit) ("python-mimeparse" ,python-mimeparse))) (home-page "https://launchpad.net/testrepository") -- cgit v1.2.3 From 5e1c9d242abe6c992c4435d7cfb035d2b6583679 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 6 Oct 2016 18:14:29 +0200 Subject: gnu: python-singledispatch: correct inputs. python-six is only required for conversion, not at run-time * gnu/packages/python.scm (python-singledispatch, python2-singledispatch): [inputs] Move python-six to [native-inputs]. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 40e6ac9c08..ea6fc83bbf 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5270,8 +5270,8 @@ It is written entirely in Python.") (base32 "171b7ip0hsq5qm83np40h3phlr36ym18w0lay0a8v08kvy3sy1jv")))) (build-system python-build-system) - (inputs - `(("python-six" ,python-six))) + (native-inputs + `(("python-six" ,python-six))) ; required for conversion, not at run-time (home-page "http://docs.python.org/3/library/functools.html#functools.singledispatch") (synopsis "Backport of singledispatch feature from Python 3.4") -- cgit v1.2.3 From 6151120a71507017bfea82693c7e614b341e50e7 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Fri, 7 Oct 2016 20:32:47 +0200 Subject: gnu: python-pillow: Fix build. * gnu/packages/python.scm (python-pillow)[check-installed]: Add installed site-package to PYTHONPATH. --- gnu/packages/python.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index ea6fc83bbf..fb5d2fd16a 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3991,9 +3991,12 @@ services for your Python modules and applications.") `(#:phases (modify-phases %standard-phases (add-after 'install 'check-installed - (lambda _ + (lambda* (#:key outputs inputs #:allow-other-keys) (begin (setenv "HOME" (getcwd)) + ;; Make installed package available for running the + ;; tests + (add-installed-pythonpath inputs outputs) (and (zero? (system* "python" "selftest.py" "--installed")) (zero? (system* "python" "test-installed.py")))))) -- cgit v1.2.3 From 05c2fd3685adc7f4257606e9a7f6d28753047352 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Fri, 7 Oct 2016 21:48:36 +0200 Subject: gnu: python-pytest-flakes: Fix build. * python.scm (python-pytest-flakes): Set PYTHONPATH prior to running tests. --- gnu/packages/python.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index fb5d2fd16a..a22be5c794 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -10960,7 +10960,10 @@ failures.") (modify-phases %standard-phases (delete 'check) (add-after 'install 'check - (lambda _ ; It's easier to run tests after install. + (lambda* (#:key outputs inputs #:allow-other-keys) + ;; It's easier to run tests after install. + ;; Make installed package available for running the tests + (add-installed-pythonpath inputs outputs) (zero? (system* "py.test" "-vv"))))))) (native-inputs `(("python-coverage" ,python-coverage) -- cgit v1.2.3 From 47f77210fcd2a4da49348419515d77471adfee0a Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Fri, 7 Oct 2016 21:45:52 +0200 Subject: gnu: python-zope-schema: Add missing inputs. * gnu/packages.python.scm (python-zope-schema): Add python-coverage and python-nose to native-inputs. --- gnu/packages/python.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a22be5c794..7f14abe091 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7098,7 +7098,9 @@ internationalized messages within program source text.") `(("python-zope-event" ,python-zope-event) ("python-zope-interface" ,python-zope-interface))) (native-inputs - `(("python-zope-testing" ,python-zope-testing))) + `(("python-zope-testing" ,python-zope-testing) + ("python-coverage" ,python-coverage) + ("python-nose" ,python-nose))) (home-page "http://pypi.python.org/pypi/zope.schema") (synopsis "Zope data schemas") (description "Zope.scheme provides extensions to zope.interface for -- cgit v1.2.3 From e408ffc302f4381bcb198fbd83e210a4a1ce5dbc Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Fri, 7 Oct 2016 21:47:02 +0200 Subject: gnu: python-zope-testing: Remove needless input. * gnu/packages.python.scm (python-zope-testing): Remove python-zope-interface from native-imports. --- gnu/packages/python.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 7f14abe091..c090ed5730 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7037,6 +7037,7 @@ forms, HTTP servers, regular expressions, and more.") (build-system python-build-system) (native-inputs `(("python-six" ,python-six) + ;("python-zope-interface" ,python-zope-interface) ("python-zope-exceptions" ,python-zope-exceptions) ("python-zope-testing" ,python-zope-testing) ("unzip" ,unzip))) -- cgit v1.2.3 From b72ac1b54b5a4e94f2c57c5ee026133c0160ee60 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Fri, 7 Oct 2016 22:03:39 +0200 Subject: gnu: python2-pysnptools: Correct inputs. dateutil, pytz, and six do not occur in the code. Remove python-dateutil, python-pytz, python-six from inputs; Move python-cython to native-inputs; move python-pandas to propagated-inputs. --- gnu/packages/python.scm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c090ed5730..bf1a8251ba 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3517,12 +3517,9 @@ toolkits.") (propagated-inputs `(("python2-numpy" ,python2-numpy) ("python2-scipy" ,python2-scipy) - ("python2-pytz" ,python2-pytz) - ("python2-cython" ,python2-cython))) - (inputs - `(("python2-dateutil-2" ,python2-dateutil-2) - ("python2-pandas" ,python2-pandas) - ("python2-six" ,python2-six))) + ("python2-pandas" ,python2-pandas))) + (native-inputs + `(("python2-cython" ,python2-cython))) (native-inputs `(("unzip" ,unzip))) (home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/") -- cgit v1.2.3 From 9e8c6a37dbded0ee721067b4c4066df5f987203a Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sat, 8 Oct 2016 14:54:39 +0200 Subject: gnu: python-fonttools: Remove intervening directory in site-packges. * gnu/packages/python.scm (python-fonttools): Add phase patch-setuppy. --- gnu/packages/python.scm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index bf1a8251ba..b160ef5874 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5722,12 +5722,23 @@ term.js Javascript terminal emulator library.") (base32 "08ay3x4ijarwhl60gqx2i9jzq6pxs20p4snc2d1q5jagh4rn39lb")))) (build-system python-build-system) - (arguments '(#:test-target "check")) + (arguments + '(#:test-target "check" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-setuppy + ;; Remove the undocumented "extra_path" argument, which adds an + ;; intervening directories between site-packages and the package + ;; directory. + (lambda _ + (substitute* "setup.py" + (("^[ \t]*extra_path *= *'FontTools',") "")) + #t))))) (home-page "http://github.com/behdad/fonttools") (synopsis "Tools to manipulate font files") (description "FontTools/TTX is a library to manipulate font files from Python. It -supports reading and writinfg of TrueType/OpenType fonts, reading and writing +supports reading and writing of TrueType/OpenType fonts, reading and writing of AFM files, reading (and partially writing) of PS Type 1 fonts. The package also contains a tool called “TTX” which converts TrueType/OpenType fonts to and from an XML-based format.") -- cgit v1.2.3 From 2efabc5589dc641dce75702b99253a3fb40bb2eb Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 13 Oct 2016 14:34:13 +0200 Subject: gnu: python-numpy-bootstrap, python-numpy: Fix build. * gnu/packages/python.scm (python-numpy-bootstrap): Correct inputs, use modify-phases, add dummy newlines character to string to make emacs happy, set PYTHONPATH prior to running tests. (python-numpy): propagate inputs, set PYTHONPATH prior to building docs. --- gnu/packages/python.scm | 45 ++++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index b160ef5874..092378c1ba 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3098,18 +3098,17 @@ between language specification and implementation aspects.") (base32 "1bjjhvncraka5s6i4lg644jrxij6bvycxy7an20gcz3a0m11iygp")))) (build-system python-build-system) - (native-inputs - `(("python-nose" ,python-nose))) (inputs `(("openblas" ,openblas) ("lapack" ,lapack))) (native-inputs - `(("gfortran" ,gfortran))) + `(("python-nose" ,python-nose) + ("gfortran" ,gfortran))) (arguments `(#:phases - (alist-cons-before - 'build 'set-environment-variables - (lambda* (#:key inputs #:allow-other-keys) + (modify-phases %standard-phases + (add-before 'build 'set-environment-variables + (lambda* (#:key inputs #:allow-other-keys) (call-with-output-file "site.cfg" (lambda (port) (format port @@ -3118,7 +3117,8 @@ libraries = openblas library_dirs = ~a/lib include_dirs = ~a/include -[lapack] +# backslash-n to make emacs happy +\n[lapack] lapack_libs = lapack library_dirs = ~a/lib include_dirs = ~a/include @@ -3131,18 +3131,17 @@ include_dirs = ~a/include (substitute* "numpy/distutils/system_info.py" (("c = distutils\\.ccompiler\\.new_compiler\\(\\)") "c = distutils.ccompiler.new_compiler(); c.set_executables(compiler='gcc',compiler_so='gcc',linker_exe='gcc',linker_so='gcc -shared')")) - #t) + #t)) ;; Tests can only be run after the library has been installed and not ;; within the source directory. - (alist-cons-after - 'install 'check - (lambda _ + (delete 'check) + (add-after 'install 'check + (lambda* (#:key outputs inputs #:allow-other-keys) + ;; Make installed package available for running the tests + (add-installed-pythonpath inputs outputs) (with-directory-excursion "/tmp" (zero? (system* "python" "-c" - "import numpy; numpy.test(verbose=2)")))) - (alist-delete - 'check - %standard-phases))))) + "import numpy; numpy.test(verbose=2)")))))))) (home-page "http://www.numpy.org/") (synopsis "Fundamental package for scientific computing with Python") (description "NumPy is the fundamental package for scientific computing @@ -3175,10 +3174,10 @@ capabilities.") ("python2-matplotlib" ,python2-matplotlib) ("python2-pandas" ,python2-pandas) ("python2-scikit-learn" ,python2-scikit-learn) - ("python2-cython" ,python2-cython) ("python2-pysnptools" ,python2-pysnptools))) (native-inputs `(("unzip" ,unzip) + ("python2-cython" ,python2-cython) ("python2-mock" ,python2-mock))) (home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/fastlmm/") (synopsis "Perform genome-wide association studies on large data sets") @@ -3193,14 +3192,15 @@ association studies (GWAS) on extremely large data sets.") (name "python-numpy") (outputs '("out" "doc")) (inputs - `(("which" ,which) - ("python-matplotlib" ,python-matplotlib) - ("python-sphinx" ,python-sphinx) + `(("which" ,which))) + (propagated-inputs + `(("python-matplotlib" ,python-matplotlib) ("python-pyparsing" ,python-pyparsing) - ("python-numpydoc" ,python-numpydoc) ,@(package-inputs python-numpy-bootstrap))) (native-inputs `(("pkg-config" ,pkg-config) + ("python-sphinx" ,python-sphinx) + ("python-numpydoc" ,python-numpydoc) ("texlive" ,texlive) ("texinfo" ,texinfo) ("perl" ,perl) @@ -3211,7 +3211,10 @@ association studies (GWAS) on extremely large data sets.") ((#:phases phases) `(alist-cons-after 'install 'install-doc - (lambda* (#:key outputs #:allow-other-keys) + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Make installed package available for building the + ;; documentation + (add-installed-pythonpath inputs outputs) (let* ((data (string-append (assoc-ref outputs "doc") "/share")) (doc (string-append data "/doc/" ,name "-" -- cgit v1.2.3 From ca33a3ad970db4fa7ede5d977db576ae98e67406 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 9 Oct 2016 13:19:50 +0200 Subject: gnu: python-matplotlib: Fix build. * gnu/packages/python.scm (python-matplotlib, python2-matplotlib): Correct inputs. [install-doc] set PYTHONPATH prior to building docs. --- gnu/packages/python.scm | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 092378c1ba..0c5450bec4 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3385,6 +3385,11 @@ transcendental functions).") ("python-pygobject" ,python-pygobject) ("gobject-introspection" ,gobject-introspection) ("python-tkinter" ,python "tk") + ("python-dateutil" ,python-dateutil-2) + ("python-numpy" ,python-numpy-bootstrap) + ("python-pillow" ,python-pillow) + ("python-pytz" ,python-pytz) + ("python-six" ,python-six) ;; The 'gtk+' package (and 'gdk-pixbuf', 'atk' and 'pango' propagated ;; from 'gtk+') provides the required 'typelib' files used by ;; 'gobject-introspection'. The location of these files is set with the @@ -3401,20 +3406,11 @@ transcendental functions).") ("python-pycairo" ,python-pycairo) ("python-cairocffi" ,python-cairocffi))) (inputs - `(("python-dateutil" ,python-dateutil-2) - ("python-six" ,python-six) - ("python-pytz" ,python-pytz) - ("python-numpy" ,python-numpy-bootstrap) - ("python-sphinx" ,python-sphinx) - ("python-numpydoc" ,python-numpydoc) - ("python-nose" ,python-nose) - ("python-mock" ,python-mock) - ("libpng" ,libpng) + `(("libpng" ,libpng) ("imagemagick" ,imagemagick) ("freetype" ,freetype) ("cairo" ,cairo) ("glib" ,glib) - ("python-pillow" ,python-pillow) ;; FIXME: Add backends when available. ;("python-wxpython" ,python-wxpython) ;("python-pyqt" ,python-pyqt) @@ -3422,6 +3418,10 @@ transcendental functions).") ("tk" ,tk))) (native-inputs `(("pkg-config" ,pkg-config) + ("python-sphinx" ,python-sphinx) + ("python-numpydoc" ,python-numpydoc) + ("python-nose" ,python-nose) + ("python-mock" ,python-mock) ("texlive" ,texlive) ("texinfo" ,texinfo))) (arguments @@ -3446,11 +3446,14 @@ backend = TkAgg~%" (assoc-ref inputs "tk")))))) (alist-cons-after 'install 'install-doc - (lambda* (#:key outputs #:allow-other-keys) + (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((data (string-append (assoc-ref outputs "doc") "/share")) (doc (string-append data "/doc/" ,name "-" ,version)) (info (string-append data "/info")) (html (string-append doc "/html"))) + ;; Make installed package available for building the + ;; documentation + (add-installed-pythonpath inputs outputs) (with-directory-excursion "doc" ;; Produce pdf in 'A4' format. (substitute* (find-files "." "conf\\.py") -- cgit v1.2.3 From d548e6aa06702793471ae764bd4df3265dbcfb7f Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 9 Oct 2016 16:05:24 +0200 Subject: gnu: python-scipy: Fix build. * gnu/packages/python.scm (python-scipy) Use add-installed-pythonpath. Add dummy newlines character to string to make emacs happy. --- gnu/packages/python.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 0c5450bec4..e0d0843839 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3614,7 +3614,9 @@ functions.") libraries = openblas library_dirs = ~a/lib include_dirs = ~a/include -[atlas] + +# backslash-n to make emacs happy +\n[atlas] library_dirs = ~a/lib atlas_libs = openblas " @@ -3624,11 +3626,14 @@ atlas_libs = openblas #t) (alist-cons-after 'install 'install-doc - (lambda* (#:key outputs #:allow-other-keys) + (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")) (pyver ,(string-append "PYVER="))) + ;; Make installed package available for building the + ;; documentation + (add-installed-pythonpath inputs outputs) (with-directory-excursion "doc" ;; Fix generation of images for mathematical expressions. (substitute* (find-files "source" "conf\\.py") -- cgit v1.2.3 From eee5cd04405dc499fcdce20f9219a9bded5720ce Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 9 Oct 2016 16:09:13 +0200 Subject: gnu: python-ipython: Fix build. * gnu/packages/python.scm (python-ipython, python2-ipython) [check, install-doc] set PYTHONPATH prior to running tests. --- gnu/packages/python.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index e0d0843839..a3fd374a6f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4664,6 +4664,8 @@ tools for mocking system commands and recording calls to those.") (info (string-append data "/info")) (examples (string-append doc "/examples"))) (setenv "LANG" "en_US.utf8") + ;; Make installed package available for running the tests + (add-installed-pythonpath inputs outputs) (with-directory-excursion "docs" ;; FIXME: pdf fails to build ;;(system* "make" "pdf" "PAPER=a4") @@ -4683,9 +4685,11 @@ tools for mocking system commands and recording calls to those.") (delete 'check) (add-after 'install 'check - (lambda* (#:key outputs tests? #:allow-other-keys) + (lambda* (#:key inputs outputs tests? #:allow-other-keys) (if tests? (with-directory-excursion "/tmp" + ;; Make installed package available for running the tests + (add-installed-pythonpath inputs outputs) (setenv "HOME" "/tmp/") ;; required by a test (zero? (system* (string-append (assoc-ref outputs "out") "/bin/iptest")))) -- cgit v1.2.3 From a08a8350343145b18301ba0926787c0e28ee24fc Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 10 Oct 2016 11:03:37 +0200 Subject: gnu: vdirsyncer: Fix build by setting correct PYTHONPATH. For thus, use add-installed-pythonpath. * gnu/packages/dav.scm (vdirsyncer): set PYTHONPATH using add-installed-pythonpath. --- gnu/packages/dav.scm | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm index 835b8fcf39..a06878dc92 100644 --- a/gnu/packages/dav.scm +++ b/gnu/packages/dav.scm @@ -73,11 +73,8 @@ clients.") ;; vdirsyncer requires itself to be installed in order to build ;; the manpage. (add-after 'install 'manpage - (lambda* (#:key outputs #:allow-other-keys) - (setenv "PYTHONPATH" - (string-append - (getenv "PYTHONPATH") - ":" (assoc-ref outputs "out"))) + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) (zero? (system* "make" "--directory=docs/" "man")) (install-file "docs/_build/man/vdirsyncer.1" -- cgit v1.2.3 From 48160559a1a443f8d3024376ab79a925b25ebc42 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 10 Oct 2016 11:13:36 +0200 Subject: gnu: thefuck: Fix build. Requires setuptools >= 17.1 due to some features used, while our python currently only includes 12.0. * gnu/packages/admin.scm (thefuck): Add setuptools to native-inputs. --- gnu/packages/admin.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index ee07b3be8a..f1c283c7c2 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1701,6 +1701,10 @@ throughput (in the same interval).") ("python-decorator" ,python-decorator) ("python-psutil" ,python-psutil) ("python-six" ,python-six))) + (inputs + ;; Requires setuptools >= 17.1 due to some features used, while our + ;; python currently only includes 12.0. TODO: Remove this input. + `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/nvbn/thefuck") (synopsis "Correct mistyped console command") (description -- cgit v1.2.3 From e116d100fd8f87c65bab91a5a599804d5fb64708 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 10 Oct 2016 11:37:52 +0200 Subject: gnu: openstack: Correct inputs. * gnu/packages/openstack.scm (python-os-testr) Propagate input python-subunit, change all other inputs to native-inputs. (python-mox3): Remove needless input python-six. (python-stevedore, python-requests-mock): Move python-pbr to native-inputs. --- gnu/packages/openstack.scm | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 55fd005f9b..e2672668d8 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -149,7 +149,6 @@ guidelines}.") (native-inputs `(("python-fixtures" ,python-fixtures) ("python-pbr" ,python-pbr) - ("python-six" ,python-six) ("python-testtools" ,python-testtools))) (home-page "http://www.openstack.org/") (synopsis "Mock object framework for Python") @@ -217,11 +216,11 @@ tested on Python version 3.2, 2.7 and 2.6.") ;; when building the package. Skip the tests for now. `(#:tests? #f)) (propagated-inputs + `(("python-subunit" ,python-subunit))) + (native-inputs `(("python-pbr" ,python-pbr) - ("python-subunit" ,python-subunit) - ("python-testtools" ,python-testtools))) - (inputs - `(("python-babel" ,python-babel))) + ("python-testtools" ,python-testtools) + ("python-babel" ,python-babel))) (home-page "https://www.openstack.org/") (synopsis "Testr wrapper to provide functionality for OpenStack projects") (description @@ -247,10 +246,9 @@ tested on Python version 3.2, 2.7 and 2.6.") (propagated-inputs `(("python-requests" ,python-requests) ("python-six" ,python-six))) - (inputs - `(("python-pbr" ,python-pbr))) (native-inputs - `(("python-discover" ,python-discover) + `(("python-pbr" ,python-pbr) + ("python-discover" ,python-discover) ("python-docutils" ,python-docutils) ("python-fixtures" ,python-fixtures) ("python-mock" ,python-mock) @@ -281,10 +279,9 @@ portions of your testing code.") (build-system python-build-system) (propagated-inputs `(("python-six" ,python-six))) - (inputs - `(("python-pbr" ,python-pbr))) (native-inputs - `(;; Tests + `(("python-pbr" ,python-pbr) + ;; Tests ("python-docutils" ,python-docutils) ("python-mock" ,python-mock) ("python-oslotest" ,python-oslotest) -- cgit v1.2.3 From abcc7a0eb9ddb975689a56d818c6a44605211b43 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 10 Oct 2016 11:39:29 +0200 Subject: gnu: python-pandas: Fix build. * gnu/packages/python.scm (python-pandas): Add python-cython to native-inputs. --- gnu/packages/python.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a3fd374a6f..234f85672f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1036,7 +1036,8 @@ datetime module, available in Python 2.3+.") ("python-pytz" ,python-pytz) ("python-dateutil" ,python-dateutil-2))) (native-inputs - `(("python-nose" ,python-nose))) + `(("python-nose" ,python-nose) + ("python-cython" ,python-cython))) (home-page "http://pandas.pydata.org") (synopsis "Data structures for data analysis, time series, and statistics") (description -- cgit v1.2.3 From 521b77729e6383b1de10838395625a4b2aa5ff9e Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 10 Oct 2016 12:14:10 +0200 Subject: gnu: python-scripttest: Correct inputs. python-pytest is only required for testing, not at run-time. * gnu/packages/python.scm (python-singledispatch, python2-singledispatch): [propagated-inputs] Move python-pytest to [native-inputs]. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 234f85672f..b349e3f552 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1821,7 +1821,7 @@ result back.") (base32 "0f4w84k8ck82syys7yg9maz93mqzc8p5ymis941x034v44jzq74m")))) (build-system python-build-system) - (propagated-inputs + (native-inputs `(("python-pytest" ,python-pytest))) (home-page "http://pythonpaste.org/scripttest/") (synopsis "Python library to test command-line scripts") -- cgit v1.2.3 From b52ad3714a44db81a739069f8286f005923707a3 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 10 Oct 2016 12:15:04 +0200 Subject: gnu: python-subunit, python-testrepository: Fix inputs * gnu/packages/python.scm (python-subunit, python2-subunit): [propagated-inputs]:: Add python-extras, remove python-testtools, move python-testscenarios to [native-inputs]. (python-testrepository, python2-testrepository): [native-inputs] move python-fixtures and python-subunit to [propagated-inputs] --- gnu/packages/python.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index b349e3f552..4410af2b49 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1929,9 +1929,10 @@ use of resources by test cases.") "1nkw9wfbvizmpajbj3in8ns07g7lwkiv8hip14jjlwk3cacls6jv")))) (build-system python-build-system) (propagated-inputs - `(("python-testtools" ,python-testtools) - ("python-mimeparse" ,python-mimeparse) - ("python-testscenarios" ,python-testscenarios))) + `(("python-extras" ,python-extras) + ("python-mimeparse" ,python-mimeparse))) + (native-inputs + `(("python-testscenarios" ,python-testscenarios))) (home-page "http://launchpad.net/subunit") (synopsis "Python implementation of the subunit protocol") (description @@ -2047,11 +2048,11 @@ Python tests.") "1ssqb07c277010i6gzzkbdd46gd9mrj0bi0i8vn560n2k2y4j93m")))) (build-system python-build-system) (propagated-inputs - `(("python-testtools" ,python-testtools))) - (native-inputs `(("python-fixtures" ,python-fixtures) - ("python-pbr-minimal" ,python-pbr-minimal) ;; same as for building fixture ("python-subunit" ,python-subunit) + ("python-testtools" ,python-testtools))) + (native-inputs + `(("python-pbr-minimal" ,python-pbr-minimal) ;; same as for building fixture ("python-mimeparse" ,python-mimeparse))) (home-page "https://launchpad.net/testrepository") (synopsis "Database for Python test results") -- cgit v1.2.3 From c4516ad206ab8558b3de5695fd62851855a31439 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 10 Oct 2016 12:00:11 +0200 Subject: gnu: python-pytest-xdist: Remove needless input python-apipkg. * gnu/packages/python.scm (python-pytest-xdist): Remove input python-apipkg. --- gnu/packages/python.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 4410af2b49..e091ceff65 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1787,8 +1787,7 @@ same arguments.") `(("unzip" ,unzip) ("python-setuptools-scm" ,python-setuptools-scm))) (propagated-inputs - `(("python-apipkg" ,python-apipkg) - ("python-execnet" ,python-execnet) + `(("python-execnet" ,python-execnet) ("python-pytest" ,python-pytest) ("python-py" ,python-py))) (home-page -- cgit v1.2.3 From e0ed457944d1166d8d2bb53dab6e724989d1576c Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Wed, 28 Sep 2016 11:40:26 +0200 Subject: gnu: python-setuptools: remove pre-built binaries from source. These are used to build self-extracting installers for Windows. * gnu/packages/python.scm (python-setuptools, python2-setuptools) [source]: Add snippet to delete *.exe files. --- gnu/packages/python.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index e091ceff65..1ecfb6ccbc 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -825,7 +825,15 @@ have been used.") version ".tar.gz")) (sha256 (base32 - "0kc7rbav00ks6iaw14p38y81q12fx0lpkhgf5m97xc04f5r318ig")))) + "0kc7rbav00ks6iaw14p38y81q12fx0lpkhgf5m97xc04f5r318ig")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove included binaries which are used to build self-extracting + ;; installers for Windows. + ;; TODO: Find some way to build them ourself so we can include them. + (for-each delete-file (find-files "setuptools" "^(cli|gui).*\\.exe$")) + #t)))) (build-system python-build-system) ;; FIXME: Tests require pytest, which itself relies on setuptools. ;; One could bootstrap with an internal untested setuptools. -- cgit v1.2.3 From 8e73d3baabbf17eb4e0fab56063c6d9b9c14aab2 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 6 Oct 2016 16:59:36 +0200 Subject: gnu: python-testscenarios: remove needless input "mimetools". This does not occur in the source. * gnu/packages/python.scm (python-testscenarios, python2-testscenarios) [propagated-inputs]: Remove python-mimeparse. --- gnu/packages/python.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 1ecfb6ccbc..770603db58 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1884,8 +1884,7 @@ compatibility.") "1671jvrvqlmbnc42j7pc5y6vc37q44aiwrq0zic652pxyy2fxvjg")))) (build-system python-build-system) (propagated-inputs - `(("python-testtools" ,python-testtools) - ("python-mimeparse" ,python-mimeparse))) + `(("python-testtools" ,python-testtools))) (home-page "https://launchpad.net/testscenarios") (synopsis "Pyunit extension for dependency injection") (description -- cgit v1.2.3 From d5e41cf28ca400cc1ce060945518f77cc9efc818 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 6 Oct 2016 17:00:28 +0200 Subject: gnu: pytest-mock: remove needless propagated input "python-py". This is not listed as an requirement and is already propagated by python-pytest. * gnu/packages/python.scm (python-pytest-mock, python2-pytest-mock): [propagated-inputs]: Remove python-py. --- gnu/packages/python.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 770603db58..d50a4bdf4e 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1750,8 +1750,7 @@ supports coverage of subprocesses.") (native-inputs `(("unzip" ,unzip))) (propagated-inputs - `(("python-py" ,python-py) - ("python-pytest" ,python-pytest))) + `(("python-pytest" ,python-pytest))) (home-page "https://github.com/pytest-dev/pytest-mock/") (synopsis "Thin-wrapper around the mock package for easier use with py.test") (description -- cgit v1.2.3 From 25b2c47d753efd0761a4e16519dce38d828789f5 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 18:40:58 +0200 Subject: gnu: python-statsmodels: Fix build * gnu/packages/statistics.scm (python-statsmodels): [check] set PYTHONPATH prior to running tests. --- gnu/packages/statistics.scm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index cca08d26a8..3461799420 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1444,11 +1444,13 @@ building design matrices.") line))) #t)) (add-after 'install 'check - (lambda _ - (with-directory-excursion "/tmp" - (zero? (system* "nosetests" - "--stop" - "-v" "statsmodels")))))))) + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Make installed package available for running the tests + (add-installed-pythonpath inputs outputs) + (with-directory-excursion "/tmp" + (zero? (system* "nosetests" + "--stop" + "-v" "statsmodels")))))))) (propagated-inputs `(("python-numpy" ,python-numpy) ("python-scipy" ,python-scipy) -- cgit v1.2.3 From f78e1c27ef8b3ea82c38c689f6b2b819c47aa6e6 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 18:56:15 +0200 Subject: gnu: python-cov-core: Fix imports. * gnu/packages/python.scm (python-cov-core) [inputs]: change to [propagated-inputs]. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index d50a4bdf4e..a14c15776f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2105,7 +2105,7 @@ executed.") (base32 "0k3np9ymh06yv1ib96sb6wfsxjkqhmik8qfsn119vnhga9ywc52a")))) (build-system python-build-system) - (native-inputs + (propagated-inputs `(("python-coverage" ,python-coverage))) (home-page "https://github.com/schlamar/cov-core") (synopsis "plugin core for use by pytest-cov, nose-cov and nose2-cov") -- cgit v1.2.3 From 130fe99410e52eb647c8fcff8e2de1c6b0b7575a Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 19:19:33 +0200 Subject: gnu: python-pyjwt: Add missing inputs and enable test-suite. * gnu/packages/python.scm (python-pyjwt) [native-inputs]: Add python-pytest and python-pytest-cov. [arguments]. Remove. --- gnu/packages/python.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a14c15776f..8213e83fb1 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2440,9 +2440,9 @@ somewhat intelligeble.") "1556v2jppd8mjkkj66pxb5rcazm35jq81r233mdl8hfmz9n3icp1")))) (build-system python-build-system) (native-inputs - `(("python-pytest-runner" ,python-pytest-runner))) - (arguments - '(#:tests? #f)) ; test suite doesn't work + `(("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-runner" ,python-pytest-runner))) (home-page "http://github.com/progrium/pyjwt") (synopsis "JSON Web Token implementation in Python") (description -- cgit v1.2.3 From bb06aa344656b044f83cc2f0ac4c7bcbf5cd10e6 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 19:26:33 +0200 Subject: gnu: python-oauthlib, python-oauthlib2: Correct inputs. * gnu/packages/python.scm (python-oauthlib) [propagated-inputs] Move all to [native-inputs]. [native-inputs]: Remove python-mock, python-coverage. (python2-oauthlib)[native-inputs]: Add python2-mock. --- gnu/packages/python.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 8213e83fb1..117e845672 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2464,13 +2464,10 @@ somewhat intelligeble.") "1bfrj70vdjxjw74khbyh6f0dksv7p5rh2346jnlrffyacd3gwjzg")))) (build-system python-build-system) (native-inputs - `(("python-coverage" ,python-coverage) - ("python-nose" ,python-nose) - ("python-mock" ,python-mock))) - (propagated-inputs - `(("python-blinker" ,python-blinker) + `(("python-nose" ,python-nose) ("python-cryptography" ,python-cryptography) - ("python-pyjwt" ,python-pyjwt))) + ("python-pyjwt" ,python-pyjwt) + ("python-blinker" ,python-blinker))) (home-page "https://github.com/idan/oauthlib") (synopsis "OAuth implementation for Python") (description @@ -2484,6 +2481,7 @@ OAuth request-signing logic.") (package (inherit base) (native-inputs `(("python2-unittest2" ,python2-unittest2) + ("python2-mock" ,python2-mock) ,@(package-native-inputs base)))))) (define-public python-itsdangerous -- cgit v1.2.3 From 6aa5f1ca240b6daf4dbc5c3031fdd697119a49ea Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 19:32:06 +0200 Subject: gnu: python-joblib: Remove python byte-code files from source. * gnu/packages/python.scm (python-joblib, python2-joblib)[source]: Add snippet. --- gnu/packages/python.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 117e845672..8190a3bd2b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2649,7 +2649,15 @@ logic-free templating system Mustache.") (uri (pypi-uri "joblib" version)) (sha256 (base32 - "0787k919zlfmgymprz5bzv0v1df5bbirlf3awrghmjgvkrd9dci9")))) + "0787k919zlfmgymprz5bzv0v1df5bbirlf3awrghmjgvkrd9dci9")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove pre-compiled .pyc files from source. + (for-each delete-file-recursively + (find-files "." "__pycache__" #:directories? #t)) + (for-each delete-file (find-files "." "\\.pyc$")) + #t)))) (build-system python-build-system) (arguments `(#:phases -- cgit v1.2.3 From f052ec9a509d78aa5f0f1034241435a91a0a246f Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 19:32:41 +0200 Subject: gnu: python-joblib: Add comment. * gnu/packages/python.scm (python-joblib): Add comment. --- gnu/packages/python.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 8190a3bd2b..7555711607 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2678,6 +2678,7 @@ logic-free templating system Mustache.") (("def test_parallel_with_interactively_defined_functions" line) (string-append "@SkipTest\n" line))) #t))))) + ;; Provide nose to enable tests command (native-inputs `(("python-nose" ,python-nose) ("python-sphinx" ,python-sphinx) -- cgit v1.2.3 From 7c88bcf4bb585050448d275dd0bb72fad660dda6 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 19:34:57 +0200 Subject: gnu: python-feedgenerator: Remove python byte-code files from source. * gnu/packages/python.scm (python-feedgenerator, python2-feedgenerator) [source]: Add snippet. --- gnu/packages/python.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 7555711607..d05035ea81 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2806,7 +2806,15 @@ sources.") (uri (pypi-uri "feedgenerator" version)) (sha256 (base32 - "0mkimp1fpdan4p3882vzcws4l594k71ich4g0wq97jbra7p602n0")))) + "0mkimp1fpdan4p3882vzcws4l594k71ich4g0wq97jbra7p602n0")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove pre-compiled .pyc files from source. + (for-each delete-file-recursively + (find-files "." "__pycache__" #:directories? #t)) + (for-each delete-file (find-files "." "\\.pyc$")) + #t)))) (build-system python-build-system) (propagated-inputs `(("python-pytz" ,python-pytz) -- cgit v1.2.3 From 9fbe7b2bca101835b2e456af1aecd2be9ec9f182 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 19:38:41 +0200 Subject: gnu: python-blinker: No longer disable tests. The package does not provide tests, but there is no need to disable them. Having them enabled allows running them if some newer version may provide tests. * gnu/package/python.scm (python-blinker, python2-blinker): [arguments]: Remove. --- gnu/packages/python.scm | 3 --- 1 file changed, 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index d05035ea81..88d99710ac 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2842,9 +2842,6 @@ which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.") (base32 "1dpq0vb01p36jjwbhhd08ylvrnyvcc82yxx3mwjx6awrycjyw6j7")))) (build-system python-build-system) - ;; No "test" command supplied to setuptools, so unless there's another way - ;; to run tests, we're skipping them! - (arguments '(#:tests? #f)) (home-page "http://pythonhosted.org/blinker/") (synopsis "Fast, simple object-to-object and broadcast signaling") (description -- cgit v1.2.3 From b83e23337bcd13b880e3f8bacc371815efec4633 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 20:27:53 +0200 Subject: gnu: python-scikit-image: Correct inputs. * gnu/packages/python.scm: (python-scikit-image, python2-scikit-image) [propagated-inputs]: Move python-numpy and python-six to [native-inputs]. Add comment. --- gnu/packages/python.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 88d99710ac..f3ac670f9f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2960,15 +2960,16 @@ mining and data analysis.") (sha256 (base32 "0jz416fqvpahqyffw8plmszzfj669w8wvf3y9clnr5lr6a7md3kn")))) (build-system python-build-system) + ;; See DEPENDS.txt for the list of build and run time requiremnts (propagated-inputs `(("python-matplotlib" ,python-matplotlib) ("python-networkx" ,python-networkx) - ("python-numpy" ,python-numpy) ("python-scipy" ,python-scipy) - ("python-six" ,python-six) ("python-pillow" ,python-pillow))) (native-inputs - `(("python-cython" ,python-cython))) + `(("python-numpy" ,python-numpy) + ("python-cython" ,python-cython) + ("python-six" ,python-six))) (home-page "http://scikit-image.org/") (synopsis "Image processing in Python") (description -- cgit v1.2.3 From ddd1dc3d2d6728bfe55fb7d9f562556c4992b4f8 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 20:32:13 +0200 Subject: gnu: python2-scikit-image: Remove needless propagated-input. * gnu/packages/python.scm: (python2-scikit-image) [propagated-inputs]: Remove python-pytz, it does not occur anywhere in the source. --- gnu/packages/python.scm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index f3ac670f9f..00a323fb37 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2983,10 +2983,7 @@ mining and data analysis.") (package (inherit scikit-image) (native-inputs `(("python2-mock" ,python2-mock) - ,@(package-native-inputs scikit-image))) - (propagated-inputs - `(("python2-pytz" ,python2-pytz) - ,@(package-propagated-inputs scikit-image)))))) + ,@(package-native-inputs scikit-image)))))) (define-public python-redis (package -- cgit v1.2.3 From 1273359455379895e2ae29ddeb9bcaf3f5001a6d Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 20:37:14 +0200 Subject: gnu: python2-scikit-image: Remove needless native-input and inheritance. Remove last additional [native-inputs] python-mock, thus there is no need to inherit python-scikit-image package. Simply use package-with-python2. * gnu/packages/python.scm: (python-scikit-image): [properties]: Remove python2-variant. (python2-scikit-image) Use simply "package-with-python2" after removing last [native-inputs] python-mock. --- gnu/packages/python.scm | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 00a323fb37..2da510aff2 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2974,16 +2974,10 @@ mining and data analysis.") (synopsis "Image processing in Python") (description "Scikit-image is a collection of algorithms for image processing.") - (license license:bsd-3) - (properties `((python2-variant . ,(delay python2-scikit-image)))))) + (license license:bsd-3))) (define-public python2-scikit-image - (let ((scikit-image (package-with-python2 - (strip-python2-variant python-scikit-image)))) - (package (inherit scikit-image) - (native-inputs - `(("python2-mock" ,python2-mock) - ,@(package-native-inputs scikit-image)))))) + (package-with-python2 python-scikit-image)) (define-public python-redis (package -- cgit v1.2.3 From cf8124b0177136598b07a8d7d0c68570e182b04b Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 20:41:36 +0200 Subject: gnu: python-redis: Remove unused input. * gnu/packages/python.scm (python-redis, python2-redis) Comment out [native-inputs] since these are used only for running tests, which is disabled since it requires a Redis server. --- gnu/packages/python.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 2da510aff2..b7640dbda0 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2994,8 +2994,9 @@ mining and data analysis.") (build-system python-build-system) ;; Tests require a running Redis server (arguments '(#:tests? #f)) - (native-inputs - `(("python-pytest" ,python-pytest))) + ;; As long as we are not running test, we do not need this input :-) + ;;(native-inputs + ;; `(("python-pytest" ,python-pytest))) (home-page "https://github.com/andymccurdy/redis-py") (synopsis "Redis Python client") (description -- cgit v1.2.3 From 213d1745c6adbfd274b1edc575529e026b0ab743 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 20:48:19 +0200 Subject: gnu: python-numpydoc: Correct inputs. * gnu/packages/python.scm (python-numpydoc, python-numpydoc) [native-inputs]: Remove python-docutils. Move python-shpinx to [propagated-inputs]. --- gnu/packages/python.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index b7640dbda0..36317cf1ec 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3334,9 +3334,9 @@ that client code uses to construct the grammar directly in Python code.") (("3") "2")))))) (build-system python-build-system) (native-inputs - `(("python-docutils" ,python-docutils) - ("python-sphinx" ,python-sphinx) - ("python-nose" ,python-nose))) + `(("python-sphinx" ,python-sphinx))) + (native-inputs + `(("python-nose" ,python-nose))) (home-page "https://pypi.python.org/pypi/numpydoc") (synopsis "Numpy's Sphinx extensions") -- cgit v1.2.3 From fe94cf0cdd8f94599fa79f163257a1feea4946e8 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 21:49:55 +0200 Subject: gnu: Add python-rst.linker, python2-rst.linker. * gnu/packages/python.scm (python-rst.linker, python2-rst.linker): New variables. --- gnu/packages/python.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 36317cf1ec..a261400383 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2796,6 +2796,36 @@ sources.") (define-public python2-sphinx-rtd-theme (package-with-python2 python-sphinx-rtd-theme)) +(define-public python-rst.linker + (package + (name "python-rst.linker") + (version "1.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "rst.linker" version)) + (sha256 + (base32 + "0bh4lnj2p1nh0wf5pgxgfbrp27xhb1rinahkb5j7s3qprq6qn0sr")))) + (build-system python-build-system) + (propagated-inputs + `(("python-dateutil" ,python-dateutil-2) + ("python-six" ,python-six))) + (native-inputs + `(("python-setuptools-scm" ,python-setuptools-scm))) + ;; Test would require path.py, which would introduce a cyclic dependence. + (arguments `(#:tests? #f)) + ;; Note: As of version 1.7 the documentation is not worth building. + (home-page "https://github.com/jaraco/rst.linker") + (synopsis "Sphinx plugin to add links and timestamps") + (description "rst.linker allows to automatically replace text by a +reStructuredText external reference or timestamps. It's primary purpose is to +augment the changelog, but it can be used for other documents, too.") + (license license:expat))) + +(define-public python2-rst.linker + (package-with-python2 python-rst.linker)) + (define-public python-feedgenerator (package (name "python-feedgenerator") -- cgit v1.2.3 From 2887700e4d6e9d43df97d9b11d9aba935951a3e8 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 21:48:40 +0200 Subject: gnu: python-pathpy: Build documentation. * gnu/packages/python.scm (python-pathpy, python2-pathpy) [output] Add output "doc". [native-inputs]: Add python-sphinx and python-rst.linker [build-doc], [install-doc]: New build phases. --- gnu/packages/python.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a261400383..62c5ecae6e 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4398,13 +4398,33 @@ them as the version argument or in a SCM managed file.") "path.py/path.py-" version ".tar.gz")) (sha256 (base32 "1p8s1l2vfkqhqxdhqlj0g1jjw4f1as2frr35sjcpjjpd5a89y41f")))) + (outputs '("out" "doc")) (build-system python-build-system) (propagated-inputs `(("python-appdirs" ,python-appdirs))) (native-inputs `(("python-setuptools-scm" ,python-setuptools-scm) + ("python-sphinx" ,python-sphinx) + ("python-rst.linker" ,python-rst.linker) ("python-pytest" ,python-pytest) ("python-pytest-runner" ,python-pytest-runner))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'build 'build-doc + (lambda _ + (setenv "LANG" "en_US.UTF-8") + (zero? (system* "python" "setup.py" "build_sphinx")))) + (add-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 "-" ,version)) + (html (string-append doc "/html"))) + (mkdir-p html) + (for-each (lambda (file) + (copy-file file (string-append doc "/" file))) + '("README.rst" "CHANGES.rst")) + (copy-recursively "build/sphinx/html" html))))))) (home-page "http://github.com/jaraco/path.py") (synopsis "Python module wrapper for built-in os.path") (description -- cgit v1.2.3 From 38d480a8a66f99443d76e30428406fb149d9a7b5 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 22:39:22 +0200 Subject: gnu: python-zope-interface: Correct inputs. * gnu/packages/python.scm(python-zope-interface)[propagated-inputs] change to [native-inputs]. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 62c5ecae6e..f5deb44188 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7034,7 +7034,7 @@ dispatching systems can be built.") (base32 "0ks8h73b2g4bkad821qbv0wzjppdrwys33i7ka45ik3wxjg1l8if")))) (build-system python-build-system) - (propagated-inputs + (native-inputs `(("python-zope-event" ,python-zope-event))) (home-page "https://github.com/zopefoundation/zope.interface") (synopsis "Python implementation of the \"design by contract\" -- cgit v1.2.3 From d27f176a7231b63b721f8ac49cdb431fdf095221 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 23:14:30 +0200 Subject: gnu: python-zope-location: Correct inputs. * gnu/packages/python.scm(python-zope-location)[native-inputs] change to [propagated-inputs]. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index f5deb44188..ced74808da 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7261,7 +7261,7 @@ brokering, etc.) for which the proxy is responsible.") (base32 "1nj9da4ksiyv3h8n2vpzwd0pb03mdsh7zy87hfpx72b6p2zcwg74")))) (build-system python-build-system) - (native-inputs + (propagated-inputs `(("python-zope-proxy" ,python-zope-proxy) ("python-zope-schema" ,python-zope-schema))) (home-page "http://pypi.python.org/pypi/zope.location/") -- cgit v1.2.3 From 861f70c9da94e43e9fa175f214751d0aba641b2b Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 23:26:16 +0200 Subject: gnu: python-configobj: Correct inputs. * gnu/packages/python.scm(python-configobj)[native-inputs] change to [propagated-inputs]. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index ced74808da..d0862491fb 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7456,7 +7456,7 @@ addon modules.") ;; required to parse the keyword 'install_requires' in setup.py. (patches (search-patches "python-configobj-setuptools.patch")))) (build-system python-build-system) - (native-inputs + (propagated-inputs `(("python-six" ,python-six))) (synopsis "Config file reading, writing and validation") (description "ConfigObj is a simple but powerful config file reader and -- cgit v1.2.3 From fd8e23b7b3ba095abd51e8ab41e35671e0bbc21d Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 23:28:36 +0200 Subject: gnu: python-zope-security: Correct inputs. * gnu/packages/python.scm(python-zope-security)[native-inputs] New element, move python-zope-component, python-zope-configuration, python-zope-location, python-zope-testrunner, python-zope-testing here. --- gnu/packages/python.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index d0862491fb..9d609226c9 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7288,10 +7288,12 @@ Zope3, which are are special objects that have a structural location.") (build-system python-build-system) (propagated-inputs `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid) - ("python-zope-component" ,python-zope-component) - ("python-zope-location" ,python-zope-location) ("python-zope-proxy" ,python-zope-proxy) - ("python-zope-schema" ,python-zope-schema) + ("python-zope-schema" ,python-zope-schema))) + (native-inputs + `(("python-zope-component" ,python-zope-component) + ("python-zope-configuration" ,python-zope-configuration) + ("python-zope-location" ,python-zope-location) ("python-zope-testrunner" ,python-zope-testrunner) ("python-zope-testing" ,python-zope-testing))) (home-page "http://pypi.python.org/pypi/zope.security") -- cgit v1.2.3 From a5333f7c61507e25657c7a5dd251f9b084ced886 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 23:28:48 +0200 Subject: gnu: python-websocket-client: Correct inputs. * gnu/packages/python.scm (python-websocket-client)[native-inputs] change to [propagated-inputs], remove a wrong comment. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 9d609226c9..e7338cbcfb 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7597,8 +7597,8 @@ tables.") (base32 "0h9glp1jll3z76ly3kg08aqgxqk0a68p4zi9yn50353bh5nj92v7")))) (build-system python-build-system) - (native-inputs - `(("python-six" ,python-six))) ; for tests + (propagated-inputs + `(("python-six" ,python-six))) (home-page "https://github.com/liris/websocket-client") (synopsis "WebSocket client for Python") (description "The Websocket-client module provides the low level APIs for -- cgit v1.2.3 From b9fc496ff65a1f5656c3e7f62220b44c23f17406 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 23:37:21 +0200 Subject: gnu: python-wsgi-intercept: Correct inputs. * gnu/packages/python.scm(python-wsgi-intercept): [native-inputs]: move python-six to [propagated-inputs]. [propagated-inputs] move python-httplib2, python-requests to [native-inputs]. --- gnu/packages/python.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index e7338cbcfb..57b89efd05 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7824,13 +7824,13 @@ framework which enables you to test server connections locally.") (base32 "0kjj2v2dvmnpdd5h5gk9rzz0f54rhjb0yiz3zg65bmp65slfw65d")))) (build-system python-build-system) + (propagated-inputs + `(("python-six" ,python-six))) (native-inputs `(("python-pytest" ,python-pytest) - ("python-six" ,python-six) + ("python-httplib2" ,python-httplib2) + ("python-requests" ,python-requests) ("python-urllib3" ,python-urllib3))) - (propagated-inputs - `(("python-httplib2" ,python-httplib2) - ("python-requests" ,python-requests))) (synopsis "Puts a WSGI application in place of a real URI for testing") (description "Wsgi_intercept installs a WSGI application in place of a real URI for testing. Testing a WSGI application normally involves starting a -- cgit v1.2.3 From 8322749a1cf7ad2ae64dab6367bc8ca4d380f778 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 23:46:06 +0200 Subject: gnu: python-urllib3: update comment. * gnu/packages/python.scm(python-urllib3)[propagated-inputs]: Update comment. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 57b89efd05..8d0d03a92e 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8147,7 +8147,7 @@ concurrent.futures package from Python 3.2") ("python-mock" ,python-mock) ("python-tornado" ,python-tornado))) (propagated-inputs - `(;; packages for https security + `(;; extra packages for https security ("python-certifi" ,python-certifi) ("python-ndg-httpsclient" ,python-ndg-httpsclient) ("python-pyasn1" ,python-pyasn1) -- cgit v1.2.3 From 7ba07edfb1600b808987448bb64b43f875b40d32 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Tue, 25 Oct 2016 19:19:22 +0200 Subject: gnu: python-tox: Update FIXME comments. * gnu/packages/python.scm(python-tox)[arguments]: Update FIXME comment. [inputs]: Add FIXME comment. --- gnu/packages/python.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 8d0d03a92e..e126708638 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8243,15 +8243,16 @@ Pytest but stripped of Pytest specific details.") "1vj73ar4rimq3fwy5r2z3jv4g9qbh8rmpmncsc00g0k310acqzxz")))) (build-system python-build-system) (arguments - ;; FIXME: Tests require a newer version of pytest, but upgrading our - ;; pytest breaks other packages. + ;; FIXME: Tests require pytest-timeout, which itself requires + ;; pytest>=2.8.0 for installation. '(#:tests? #f)) (propagated-inputs `(("python-pluggy" ,python-pluggy) ; >=0.3.0,<0.4.0 ("python-py" ,python-py) ("python-virtualenv" ,python-virtualenv))) (native-inputs - `(("python-pytest" ,python-pytest))) ; >= 2.3.5 + `(; FIXME: Missing: ("python-pytest-timeout" ,python-pytest-timeout) + ("python-pytest" ,python-pytest))) ; >= 2.3.5 (home-page "http://tox.testrun.org/") (synopsis "Virtualenv-based automation of test activities") (description "Tox is a generic virtualenv management and test command line -- cgit v1.2.3 From f7989b8bb0e66c9f631dbca425abd092a0a49c5c Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 17 Oct 2016 00:11:04 +0200 Subject: gnu: Remove some outdated comments. These comments were about setuptools used at runtime for pkg_resources. * gnu/packages/python.scm: Remove some outdated comments. --- gnu/packages/python.scm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index e126708638..c1c666f423 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4036,7 +4036,6 @@ services for your Python modules and applications.") ("openjpeg" ,openjpeg) ("libtiff" ,libtiff) ("libwebp" ,libwebp))) - ;; Note: setuptools used at runtime for pkg_resources (arguments `(#:phases (modify-phases %standard-phases (add-after @@ -8563,7 +8562,6 @@ and to spawn subprocesses to handle requests.") (build-system python-build-system) (native-inputs `(("python-nose" ,python-nose))) - ;; Note: setuptools used at runtime for pkg_resources (home-page "http://pythonpaste.org/deploy/") (synopsis "Load, configure, and compose WSGI applications and servers") @@ -8593,7 +8591,6 @@ file.") (build-system python-build-system) (native-inputs `(("python-nose" ,python-nose))) - ;; Note: setuptools used at runtime for pkg_resources (propagated-inputs `(("python-six" ,python-six))) (arguments @@ -8636,7 +8633,6 @@ follows ideas flowing from WSGI (Web Standard Gateway Interface).") (build-system python-build-system) (native-inputs `(("python-nose" ,python-nose))) - ;; Note: setuptools used at runtime for pkg_resources (propagated-inputs `(("python-paste" ,python-paste) ("python-pastedeploy" ,python-pastedeploy))) -- cgit v1.2.3 From 06f1d73ed4583836095ee3b04f4295ed2f432498 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 17 Oct 2016 00:18:28 +0200 Subject: gnu: python-celery: Remove needless inputs. These are indirect requirements and propagated by python-kombu. * gnu/packages/python.scm(python-celery)[propagated-inputs] Remove python-amqp and python-anyjson. --- gnu/packages/python.scm | 2 -- 1 file changed, 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c1c666f423..c2f34f54de 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8901,8 +8901,6 @@ Python 2.4 and 2.5, and will draw its fixes/improvements from python-trunk.") `(("python-nose" ,python-nose))) (propagated-inputs `(("python-pytz" ,python-pytz) - ("python-amqp" ,python-amqp) - ("python-anyjson" ,python-anyjson) ("python-billiard" ,python-billiard) ("python-kombu" ,python-kombu))) (home-page "http://celeryproject.org") -- cgit v1.2.3 From 47c7dc4a3f1af7b1e9c64c476f4c190fb44fe5ff Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 17 Oct 2016 00:21:37 +0200 Subject: gnu: python-sphinx-repoze-autointerface: Remove needless input. This is an indirect requirement and propagated by python-sphinx already. * gnu/packages/python.scm(python-sphinx-repoze-autointerface) [propagated-inputs]: Remove python-docutils. --- gnu/packages/python.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c2f34f54de..bd3e62b3fb 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9009,8 +9009,7 @@ commands into documents, helping you to keep your command examples up to date.") "08ycivzf7bh4a1zcyp31hbyqs1b2c9r26raa3vxjwwmbfqr3iw4f")))) (build-system python-build-system) (propagated-inputs - `(("python-docutils" ,python-docutils) - ("python-sphinx" ,python-sphinx) + `(("python-sphinx" ,python-sphinx) ("python-zope-interface" ,python-zope-interface))) (synopsis "Auto-generate Sphinx API docs from Zope interfaces") (description "This package defines an extension for the Sphinx documentation -- cgit v1.2.3 From a0a09859789fb92d452816478e244baa2645ce6f Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 17 Oct 2016 00:22:09 +0200 Subject: gnu: python-sphinxcontrib-programoutput: Remove needless input. This is an indirect requirement and propagated by python-sphinx already. * gnu/packages/python.scm(python-sphinxcontrib-programoutput) [propagated-inputs]: Remove python-docutils. --- gnu/packages/python.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index bd3e62b3fb..1de70014ae 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8986,8 +8986,7 @@ programmatically interfacing with your system's $EDITOR.") "098as6z1s0gb4dh5xcr1fd2vpm91zj93jzvgawspxf5s4hqs0xhp")))) (build-system python-build-system) (propagated-inputs - `(("python-docutils" ,python-docutils) - ("python-sphinx" ,python-sphinx))) + `(("python-sphinx" ,python-sphinx))) (synopsis "Sphinx extension to include program output") (description "A Sphinx extension to literally insert the output of arbitrary commands into documents, helping you to keep your command examples up to date.") -- cgit v1.2.3 From d8ea5f2f27a7ec4cc9974eadadd88c59458bb8ce Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 17 Oct 2016 00:26:20 +0200 Subject: gnu: python-responses: Correct inputs * gnu/packages/python.scm(python-responses)[native-inputs] move python-cookies to [propagated-inputs] --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 1de70014ae..ef8a78f27a 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9165,10 +9165,10 @@ Python.") ;; https://github.com/getsentry/responses/issues/38 #:tests? #f)) (native-inputs - `(("python-cookies" ,python-cookies) - ("python-mock" ,python-mock))) + `(("python-mock" ,python-mock))) (propagated-inputs `(("python-requests" ,python-requests) + ("python-cookies" ,python-cookies) ("python-six" ,python-six))) (home-page "https://github.com/getsentry/responses") (synopsis "Utility for mocking out the `requests` Python library") -- cgit v1.2.3 From 2c199b5527b89fbfa036308d9b6764e36e8cef1c Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 17 Oct 2016 00:44:22 +0200 Subject: gnu: python-prompt-toolkit: Correct inputs * gnu/packages/python.scm(python-prompt-toolkit)[native-inputs] move python-six to [propagated-inputs]. Remove now empty [native-inputs]. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index ef8a78f27a..20b0b60ad1 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -10408,8 +10408,8 @@ implementation for Python.") '(#:tests? #f)) ; The test suite uses some Windows-specific data types. (propagated-inputs `(("python-wcwidth" ,python-wcwidth) + ("python-six" ,python-six) ("python-pygments" ,python-pygments))) - (native-inputs `(("python-six" ,python-six))) (home-page "https://github.com/jonathanslenders/python-prompt-toolkit") (synopsis "Library for building command line interfaces in Python") (description -- cgit v1.2.3 From fd1d6de729efde0907fe50d9a711a48ac450c82d Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 17 Oct 2016 00:48:02 +0200 Subject: gnu: python-consul: Correct inputs. * gnu/packages/python.scm(python-consul)[native-inuts] move python-requests and python-six to [propagated-inputs]. --- gnu/packages/python.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 20b0b60ad1..b3f2ad3433 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -10748,8 +10748,9 @@ interface for programs.") "0rfyxcy4cr3x848vhx876ifalxd5ghq6l5x813m49h4vq2d4jiq8")))) (build-system python-build-system) (native-inputs - `(("python-pytest" ,python-pytest) - ("python-requests" ,python-requests) + `(("python-pytest" ,python-pytest))) + (propagated-inputs + `(("python-requests" ,python-requests) ("python-six" ,python-six))) (home-page "https://github.com/cablehead/python-consul") (synopsis "Python client for Consul") -- cgit v1.2.3 From 4e0969686cf005105b5a2f9718f0a2bdde9a6b4c Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 17 Oct 2016 00:51:32 +0200 Subject: gnu: python-freezegun: Correct input. * u/packages/python.scm(python-freezegun)[native-inputs] move python-dateutils-2 to [propagated-inputs]. --- gnu/packages/python.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index b3f2ad3433..f3a5ddf6ce 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -10879,10 +10879,10 @@ List. Forked from and using the same API as the publicsuffix package.") (native-inputs `(("python-mock" ,python-mock) ("python-nose" ,python-nose) - ("python-coverage" ,python-coverage) - ("python-dateutil-2" ,python-dateutil-2))) + ("python-coverage" ,python-coverage))) (propagated-inputs - `(("python-six" ,python-six))) + `(("python-six" ,python-six) + ("python-dateutil-2" ,python-dateutil-2))) (arguments `(#:phases (modify-phases %standard-phases ;; The tests are normally executed via `make test`, but the PyPi -- cgit v1.2.3 From 38ceb106bd12bcf52f5d277d93393f284c83cc1f Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Mon, 17 Oct 2016 01:22:48 +0200 Subject: gnu: python-nautilus: Correct inputs * gnu/packages/python.scm(python-nautilus, python2-nautilus): [propagated-inputs] remove python-graphql-core, python-graphql-relay, python-requests: not listed and already propagated by others. Remove pycparser: not listed, not used in source. Move python-nose2 to [native-inputs] (used for tests only). --- gnu/packages/python.scm | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index f3a5ddf6ce..0d7fcf1c86 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -11268,17 +11268,14 @@ with an associated set of resolve methods that know how to fetch data.") `(("python-bcrypt" ,python-bcrypt) ("python-click" ,python-click) ("python-consul" ,python-consul) - ("python-graphql-core" ,python-graphql-core) - ("python-graphql-relay" ,python-graphql-relay) ("python-graphene" ,python-graphene) ("python-jinja2" ,python-jinja2) - ("python-nose2" ,python-nose2) ("python-peewee" ,python-peewee) ("python-pika" ,python-pika) - ("python-pycparser" ,python-pycparser) - ("python-requests" ,python-requests) ("python-tornado" ,python-tornado) ("python-wtforms" ,python-wtforms))) + (native-inputs + `(("python-nose2" ,python-nose2))) (home-page "https://github.com/AlecAivazis/nautilus") (synopsis "Library for creating microservice applications") (description -- cgit v1.2.3 From 251ed7f2fe61f46d216dff20f19c53dc9cac05ab Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 23:40:42 +0200 Subject: gnu: python-sphinxcontrib-newsfeed: Remove needless input. * gnu/packages/python.scm (python-sphinxcontrib-newsfeed) [propagated-inputs]: Remove python-docutils, already porpagated by python-sphinx. --- gnu/packages/python.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 0d7fcf1c86..c8b3584a80 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7894,8 +7894,7 @@ files for use with Python.") "1d7gam3mn8v4in4p16yn3v10vps7nnaz6ilw99j4klij39dqd37p")))) (build-system python-build-system) (propagated-inputs - `(("python-docutils" ,python-docutils) - ("python-sphinx" ,python-sphinx))) + `(("python-sphinx" ,python-sphinx))) (synopsis "News Feed extension for Sphinx") (description "Sphinxcontrib-newsfeed is an extension for adding a simple Blog, News or Announcements section to a Sphinx website.") -- cgit v1.2.3 From 632735f215f5b136ae79914af2eb42b15eebaa11 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 16 Oct 2016 22:16:58 +0200 Subject: gnu: python-testlib: Remove useless self-defined phase "unpack". Unzipping is now done by standard-phase "unpack" automatically. * gnu/packages/python.scm (python-testlib, python2-testlib)[phases] No longer replace "unpack". --- gnu/packages/python.scm | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c8b3584a80..a2aebbd829 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5290,18 +5290,7 @@ falling into the Python interpreter.") (base32 "1mz26cxn4x8bbgv0rn0mvj2z05y31rkc8009nvdlb3lam5b4mj3y")))) (build-system python-build-system) (native-inputs - `(("unzip" ,unzip))) - (arguments - `(#:phases - (alist-replace - 'unpack - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((unzip (string-append (assoc-ref inputs "unzip") - "/bin/unzip")) - (source (assoc-ref inputs "source"))) - (and (zero? (system* unzip source)) - (chdir (string-append "testlib-" ,version))))) - %standard-phases))) + `(("unzip" ,unzip))) ; for unpacking the source (synopsis "Python micro test suite harness") (description "A micro unittest suite harness for Python.") (home-page "https://github.com/trentm/testlib") -- cgit v1.2.3 From 3221207417fa48d0b954520450980812932b804c Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Wed, 19 Oct 2016 23:19:26 +0200 Subject: gnu: khal: Fix build. The old one was plain wrong and only worked by luck since the old python build system did manipulate PYTHONPATH. * gnu/packages/calendar.scm(khal)[phase manpage]: Use add-installed-pythonpath. --- gnu/packages/calendar.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 306c949066..447dcd698e 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -96,10 +96,9 @@ data units.") `(#:phases (modify-phases %standard-phases ;; Building the manpage requires khal to be installed. (add-after 'install 'manpage - (lambda* (#:key outputs #:allow-other-keys) - (setenv "PYTHONPATH" - (string-append - (getenv "PYTHONPATH") ":" (assoc-ref outputs "out"))) + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Make installed package available for running the tests + (add-installed-pythonpath inputs outputs) (zero? (system* "make" "--directory=doc/" "man")) (install-file "doc/build/man/khal.1" -- cgit v1.2.3 From 54c85e12fda033ef01bb2c649b540d9694a368f3 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Wed, 19 Oct 2016 23:45:12 +0200 Subject: gnu: python2-warpedlmm: Remove phase remove-bin-directory. This directory did contain contain wrappers for `nose`, which should not be there anyway (since nose already was a native-input). The new python build system no longer creates this directory, while the old one did. (This difference is due to the bloody details of how packages are installed.) * gnu/packages/bioinformatics.scm (python2-warpedlmm) [modify-phases] Remove, since remove-bin-directory was the only modification here. --- gnu/packages/bioinformatics.scm | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 9b47dc3d51..0d5d8ff32a 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -3509,18 +3509,7 @@ files and writing bioinformatics applications.") "1agfz6zqa8nc6cw47yh0s3y14gkpa9wqazwcj7mwwj3ffnw39p3j")))) (build-system python-build-system) (arguments - `(#:python ,python-2 ; requires Python 2.7 - #:phases - (modify-phases %standard-phases - (add-after - 'install 'remove-bin-directory - (lambda* (#:key outputs #:allow-other-keys) - ;; The "bin" directory only contains wrappers for running - ;; the module tests. They are not needed after the - ;; "check" phase. - (delete-file-recursively - (string-append (assoc-ref outputs "out") "/bin")) - #t))))) + `(#:python ,python-2)) ; requires Python 2.7 (propagated-inputs `(("python-scipy" ,python2-scipy) ("python-numpy" ,python2-numpy) -- cgit v1.2.3 From de5bc89093895744e9d0cdcf26c9b3bc971a8f0e Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 23 Oct 2016 21:20:46 +0200 Subject: gnu: python2-pbcore: Fix inputs: * gnu/packages/bioinformatics.scm (python2-pbcore) [inputs] change to [propagated-inputs]. [native-inputs]: Remove python-docutils, which comes with sphinx. [former propagated-inputs]: move all (which is only pyxb) to [inputs]. --- gnu/packages/bioinformatics.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 0d5d8ff32a..f9929dfa4f 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -3476,17 +3476,15 @@ interrupted by stop codons. OrfM finds and prints these ORFs.") "1kjmv891d6qbpp4shhhvkl02ff4q5xlpnls2513sm2cjcrs52f1i")))) (build-system python-build-system) (arguments `(#:python ,python-2)) ; pbcore requires Python 2.7 - (inputs + (propagated-inputs `(("python-cython" ,python2-cython) ("python-numpy" ,python2-numpy) ("python-pysam" ,python2-pysam) ("python-h5py" ,python2-h5py))) (native-inputs - `(("python-docutils" ,python2-docutils) - ("python-nose" ,python2-nose) - ("python-sphinx" ,python2-sphinx))) - (propagated-inputs - `(("python-pyxb" ,python2-pyxb))) + `(("python-nose" ,python2-nose) + ("python-sphinx" ,python2-sphinx) + ("python-pyxb" ,python2-pyxb))) (home-page "http://pacificbiosciences.github.io/pbcore/") (synopsis "Library for reading and writing PacBio data files") (description -- cgit v1.2.3 From bac6816879248864d28f71c02414e89f071a81fe Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 23 Oct 2016 22:22:34 +0200 Subject: gnu: python-pytest-django: Remove needless propagated input "python-py". This is already propagated by python-pytest. * gnu/packages/python.scm (python-pytest-django) [propagated-inputs]: Remove python-py. --- gnu/packages/django.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 2de80353f8..bbb2d71db1 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -142,8 +142,7 @@ with arguments to the field constructor.") `(("python-django" ,python-django) ("python-setuptools-scm" ,python-setuptools-scm))) (propagated-inputs - `(("python-py" ,python-py) - ("python-pytest" ,python-pytest))) + `(("python-pytest" ,python-pytest))) (home-page "http://pytest-django.readthedocs.org/") (synopsis "Django plugin for py.test") (description "Pytest-django is a plugin for py.test that provides a set of -- cgit v1.2.3 From 011271c769552b284cf7cf2081eb28e999f42e41 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Tue, 25 Oct 2016 18:15:29 +0200 Subject: gnu: python-flake8: Remove python byte-code files from source. * gnu/packages/python.scm (python-flake8)[source]: Add snippet. --- gnu/packages/python.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a2aebbd829..823624fc1b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5602,7 +5602,15 @@ complexity of Python source code.") (uri (pypi-uri "flake8" version)) (sha256 (base32 - "0bs9cz4fr99r2rwig1b8jwaadl1nan7kgpdzqwj0bwbckwbmh7nc")))) + "0bs9cz4fr99r2rwig1b8jwaadl1nan7kgpdzqwj0bwbckwbmh7nc")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove pre-compiled .pyc files from source. + (for-each delete-file-recursively + (find-files "." "__pycache__" #:directories? #t)) + (for-each delete-file (find-files "." "\\.pyc$")) + #t)))) (build-system python-build-system) (propagated-inputs `(("python-pep8" ,python-pep8) -- cgit v1.2.3 From b9c8ccce049cd4e5cd6e3800eb7f3033e0b09050 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Tue, 25 Oct 2016 17:37:24 +0200 Subject: gnu: python-flake8-2.2.4: Remove python byte-code files from source. * gnu/packages/python.scm (python-flake8-2.2.4)[source]: Add snippet. --- gnu/packages/python.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 823624fc1b..9f07ead921 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5647,7 +5647,15 @@ complexity of Python source code.") (uri (pypi-uri "flake8" version)) (sha256 (base32 - "1r9wsry4va45h1rck5hxd3vzsg2q3y6lnl6pym1bxvz8ry19jwx8")))))) + "1r9wsry4va45h1rck5hxd3vzsg2q3y6lnl6pym1bxvz8ry19jwx8")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove pre-compiled .pyc files from source. + (for-each delete-file-recursively + (find-files "." "__pycache__" #:directories? #t)) + (for-each delete-file (find-files "." "\\.pyc$")) + #t)))))) (define-public python2-flake8-2.2.4 (package-with-python2 python-flake8-2.2.4)) -- cgit v1.2.3 From bac23672ee6db3d24c75b7a18077b9318fdb81c9 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Tue, 25 Oct 2016 17:37:43 +0200 Subject: gnu: python-tables: Remove python byte-code files from source. * gnu/packages/python.scm (python-tables)[source]: Add snippet. --- gnu/packages/python.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 9f07ead921..48d75f0943 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6136,7 +6136,15 @@ printing of sub-tables by specifying a row range.") (uri (pypi-uri "tables" version)) (sha256 (base32 - "117s6w7s3yxafpmf3zz3svana7xfrsviw01va1xp7h8ylx8v6r1m")))) + "117s6w7s3yxafpmf3zz3svana7xfrsviw01va1xp7h8ylx8v6r1m")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove pre-compiled .pyc files from source. + (for-each delete-file-recursively + (find-files "." "__pycache__" #:directories? #t)) + (for-each delete-file (find-files "." "\\.pyc$")) + #t)))) (build-system python-build-system) (arguments `(;; FIXME: python-build-system does not pass configure-flags to "build" -- cgit v1.2.3 From 1b5241c5153e0c3039f01f520c8cca28063bbaf6 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sun, 23 Oct 2016 20:25:22 +0200 Subject: gnu: python-scikit-learn: Remove useless property "python2-variant". The Python 2 packages does not change the definition, thus the propery is useless. * gnu/packages/python.scm (python-scikit-learn): [properties]: Remove "python2-variant". (python2-scikit-learn): Remove now needless "strip-python2-variant". --- gnu/packages/python.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 48d75f0943..589fd048cd 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2971,11 +2971,10 @@ and is very extensible.") (description "Scikit-learn provides simple and efficient tools for data mining and data analysis.") - (license license:bsd-3) - (properties `((python2-variant . ,(delay python2-scikit-learn)))))) + (license license:bsd-3))) (define-public python2-scikit-learn - (package-with-python2 (strip-python2-variant python-scikit-learn))) + (package-with-python2 python-scikit-learn)) (define-public python-scikit-image (package -- cgit v1.2.3 From 5b1416d9834182989da3f11b7475c81e06b0c52b Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Tue, 15 Nov 2016 21:24:31 +0100 Subject: gnu: python-betamax: fix inputs. * gnu/packages/python.scm (python-betamax): [inputs] change to [propagated-inputs]. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 589fd048cd..2e6f5a6b63 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -11310,7 +11310,7 @@ focus on building massively scalable web applications.") (arguments '(;; Many tests fail because they require networking. #:tests? #f)) - (inputs + (progated-inputs `(("python-requests" ,python-requests))) (home-page "https://github.com/sigmavirus24/betamax") (synopsis "Record HTTP interactions with python-requests") -- cgit v1.2.3 From e62600feb6a3aca2304925ed8c0bb5a9060e38dd Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Tue, 15 Nov 2016 21:25:56 +0100 Subject: gnu: python2-ipython: fix inputs. * gnu/packages/python.scm (python2-ipython): [inputs] change to [native-inputs]. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 2e6f5a6b63..c195bb6da0 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4784,7 +4784,7 @@ computing.") (arguments `(#:tests? #f ,@(package-arguments ipython))) ;; FIXME: add pyreadline once available. - (inputs + (native-inputs `(("python2-mock" ,python2-mock) ,@(package-inputs ipython)))))) -- cgit v1.2.3 From 05e2e4cf005142ea18b3615209ffb585decb3880 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Tue, 15 Nov 2016 22:20:04 +0100 Subject: gnu: python-pip: fix inputs. * gnu/packages/python.scm (python-pip): [inputs] change to [native-inputs]. --- gnu/packages/python.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c195bb6da0..f2e226a53a 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6466,9 +6466,9 @@ library.") (base32 "08cm8d4228fj0qnrysy3qv1a6022zr3dcs25amd14lgxil6vvx26")))) (build-system python-build-system) - (inputs - `(("python-virtualenv" ,python-virtualenv) - ;; Tests + (native-inputs + `(;; Tests + ("python-virtualenv" ,python-virtualenv) ("python-mock" ,python-mock) ("python-pytest" ,python-pytest) ("python-scripttest" ,python-scripttest))) -- cgit v1.2.3 From 8fa6890b6c5c0fca98fc52c85942ef0ff0b65921 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Tue, 15 Nov 2016 21:28:21 +0100 Subject: gnu: python-botocore: fix inputs. * gnu/packages/python.scm (python-botocore): [inputs] change to [native-inputs]. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index f2e226a53a..b09ef5b0b3 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8313,7 +8313,7 @@ document.") `(("python-dateutil" ,python-dateutil-2) ("python-docutils" ,python-docutils) ("python-jmespath" ,python-jmespath))) - (inputs + (native-inputs `(("python-mock" ,python-mock) ("python-nose" ,python-nose) ("behave" ,behave) -- cgit v1.2.3 From d46491779e18cf614caeeb1b4becbd9171c64416 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Tue, 15 Nov 2016 21:28:45 +0100 Subject: gnu: python-awscli: fix inputs. * gnu/packages/python.scm (python-awscli): [inputs] change to [native-inputs]. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index b09ef5b0b3..60b94b51e0 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8346,7 +8346,7 @@ interface to the Amazon Web Services (AWS) API.") ("python-s3transfer" ,python-s3transfer) ("python-docutils" ,python-docutils) ("python-rsa" ,python-rsa))) - (inputs + (native-inputs `(("python-mock" ,python-mock) ("python-nose" ,python-nose) ("python-sphinx" ,python-sphinx) -- cgit v1.2.3 From f25c9ebc805565ae517c87c6b904bde0661bee46 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 23 Nov 2016 11:04:28 +0100 Subject: marionette: Delay synchronization with the host's REPL. * gnu/build/marionette.scm ()[marionette-repl]: Rename to... [%marionette-repl]: ... this. (marionette-repl): New macro. (make-marionette): Wrap last 'read' call into 'delay', making the last argument to 'marionette' a promise of a port. (marionette-eval): Use 'force' in 'match' clause. --- gnu/build/marionette.scm | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm index d36e1c8d09..70b737fc57 100644 --- a/gnu/build/marionette.scm +++ b/gnu/build/marionette.scm @@ -45,7 +45,10 @@ (command marionette-command) ;list of strings (pid marionette-pid) ;integer (monitor marionette-monitor) ;port - (repl marionette-repl)) ;port + (repl %marionette-repl)) ;promise of a port + +(define-syntax-rule (marionette-repl marionette) + (force (%marionette-repl marionette))) (define* (wait-for-monitor-prompt port #:key (quiet? #t)) "Read from PORT until we have seen all of QEMU's monitor prompt. When @@ -131,21 +134,29 @@ QEMU monitor and to the guest's backdoor REPL." (close-port monitor) (wait-for-monitor-prompt monitor-conn) (display "read QEMU monitor prompt\n") - (match (accept* repl) - ((repl-conn . addr) - (display "connected to guest REPL\n") - (close-port repl) - (match (read repl-conn) - ('ready - (alarm 0) - (display "marionette is ready\n") - (marionette (append command extra-options) pid - monitor-conn repl-conn))))))))))) + + (marionette (append command extra-options) pid + monitor-conn + + ;; The following 'accept' call connects immediately, but + ;; we don't know whether the guest has connected until + ;; we actually receive the 'ready' message. + (match (accept* repl) + ((repl-conn . addr) + (display "connected to guest REPL\n") + (close-port repl) + ;; Delay reception of the 'ready' message so that the + ;; caller can already send monitor commands. + (delay + (match (read repl-conn) + ('ready + (display "marionette is ready\n") + repl-conn)))))))))))) (define (marionette-eval exp marionette) "Evaluate EXP in MARIONETTE's backdoor REPL. Return the result." (match marionette - (($ command pid monitor repl) + (($ command pid monitor (= force repl)) (write exp repl) (newline repl) (read repl)))) -- cgit v1.2.3 From fe933833504c90eb40b0d2c71847675b31c142b4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 23 Nov 2016 13:56:42 +0100 Subject: marionette: Add 'marionette-screen-text' using OCR. * gnu/build/marionette.scm (marionette-screen-text): New procedure. * gnu/tests/base.scm (run-basic-test)["screen text"]: New test. --- gnu/build/marionette.scm | 33 +++++++++++++++++++++++++++++++++ gnu/tests/base.scm | 16 ++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm index 70b737fc57..8070b6b439 100644 --- a/gnu/build/marionette.scm +++ b/gnu/build/marionette.scm @@ -21,10 +21,12 @@ #:use-module (srfi srfi-26) #:use-module (rnrs io ports) #:use-module (ice-9 match) + #:use-module (ice-9 popen) #:export (marionette? make-marionette marionette-eval marionette-control + marionette-screen-text %qwerty-us-keystrokes marionette-type)) @@ -171,6 +173,37 @@ pcsys_monitor\")." (newline monitor) (wait-for-monitor-prompt monitor)))) +(define* (marionette-screen-text marionette + #:key + (ocrad "ocrad")) + "Take a screenshot of MARIONETTE, perform optical character +recognition (OCR), and return the text read from the screen as a string. Do +this by invoking OCRAD (file name for GNU Ocrad's command)" + (define (random-file-name) + (string-append "/tmp/marionette-screenshot-" + (number->string (random (expt 2 32)) 16) + ".ppm")) + + (let ((image (random-file-name))) + (dynamic-wind + (const #t) + (lambda () + (marionette-control (string-append "screendump " image) + marionette) + + ;; Tell Ocrad to invert the image colors (make it black on white) and + ;; to scale the image up, which significantly improves the quality of + ;; the result. In spite of this, be aware that OCR confuses "y" and + ;; "V" and sometimes erroneously introduces white space. + (let* ((pipe (open-pipe* OPEN_READ ocrad + "-i" "-s" "10" image)) + (text (get-string-all pipe))) + (unless (zero? (close-pipe pipe)) + (error "'ocrad' failed" ocrad)) + text)) + (lambda () + (false-if-exception (delete-file image)))))) + (define %qwerty-us-keystrokes ;; Maps "special" characters to their keystrokes. '((#\newline . "ret") diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 9a265309c0..3be1c55b41 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -31,6 +31,8 @@ #:use-module (gnu services mcron) #:use-module (gnu services shepherd) #:use-module (gnu services networking) + #:use-module (gnu packages imagemagick) + #:use-module (gnu packages ocr) #:use-module (guix gexp) #:use-module (guix store) #:use-module (guix monads) @@ -241,6 +243,20 @@ info --version") marionette) (file-exists? "tty1.ppm"))) + (test-assert "screen text" + (let ((text (marionette-screen-text marionette + #:ocrad + #$(file-append ocrad + "/bin/ocrad")))) + ;; Check whether the welcome message and shell prompt are + ;; displayed. Note: OCR confuses "y" and "V" for instance, so + ;; we cannot reliably match the whole text. + (and (string-contains text "This is the GNU") + (string-contains text + (string-append + "root@" + #$(operating-system-host-name os)))))) + (test-end) (exit (= (test-runner-fail-count (test-runner-current)) 0))))) -- cgit v1.2.3 From b7d408ec1b591853b4a2fc209e577d60b147e03b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 23 Nov 2016 20:50:41 +0100 Subject: mapped-devices: Use 'cryptsetup-static' in 'luks-device-mapping'. * gnu/system/mapped-devices.scm (open-luks-device): Use CRYPTSETUP-STATIC instead of CRYPTSETUP. Use 'file-append'. (close-luks-device): Likewise. --- gnu/system/mapped-devices.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm index e44f2693a7..8ab861bf73 100644 --- a/gnu/system/mapped-devices.scm +++ b/gnu/system/mapped-devices.scm @@ -23,7 +23,7 @@ #:use-module (guix modules) #:use-module (gnu services) #:use-module (gnu services shepherd) - #:autoload (gnu packages cryptsetup) (cryptsetup) + #:autoload (gnu packages cryptsetup) (cryptsetup-static) #:autoload (gnu packages linux) (mdadm-static) #:use-module (srfi srfi-1) #:use-module (ice-9 match) @@ -104,7 +104,9 @@ ((gnu build file-systems) #:select (find-partition-by-luks-uuid))) - (zero? (system* (string-append #$cryptsetup "/sbin/cryptsetup") + ;; Use 'cryptsetup-static', not 'cryptsetup', to avoid pulling the + ;; whole world inside the initrd (for when we're in an initrd). + (zero? (system* #$(file-append cryptsetup-static "/sbin/cryptsetup") "open" "--type" "luks" ;; Note: We cannot use the "UUID=source" syntax here @@ -120,7 +122,7 @@ (define (close-luks-device source target) "Return a gexp that closes TARGET, a LUKS device." - #~(zero? (system* (string-append #$cryptsetup "/sbin/cryptsetup") + #~(zero? (system* #$(file-append cryptsetup-static "/sbin/cryptsetup") "close" #$target))) (define luks-device-mapping -- cgit v1.2.3 From f7f292d359e0eb77617f4ecf6b3164f868ec1784 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 23 Nov 2016 20:59:13 +0100 Subject: install: Enable "cryptodisk" handling in GRUB. This allows 'grub-install' to do the right thing when / or /boot is a LUKS-encrypted partition. Fixes . * gnu/build/install.scm (install-grub): Add 'setenv' to set 'GRUB_ENABLE_CRYPTODISK'. (wait-for-screen-text): New test. * gnu/tests/base.scm (run-basic-test): Add #:initialization parameter and honor it. * gnu/tests/install.scm (%encrypted-root-os)[kernel-arguments]: Remove. (%encrypted-root-installation-script): Pass '--uuid' to 'cryptsetup luksFormat'. Remove 'sed' invocation. (enter-luks-passphrase): New procedure. (%test-encrypted-os)[value]: Pass #:initialization to 'run-basic-test'. --- gnu/build/install.scm | 5 ++++ gnu/build/marionette.scm | 19 ++++++++++++++ gnu/tests/base.scm | 13 ++++++++-- gnu/tests/install.scm | 66 ++++++++++++++++++++++++++++++++++++++++-------- 4 files changed, 90 insertions(+), 13 deletions(-) diff --git a/gnu/build/install.scm b/gnu/build/install.scm index 3d1594e203..5c2b35632d 100644 --- a/gnu/build/install.scm +++ b/gnu/build/install.scm @@ -46,6 +46,11 @@ Note that the caller must make sure that GRUB.CFG is registered as a GC root so that the fonts, background images, etc. referred to by GRUB.CFG are not GC'd." (install-grub-config grub.cfg mount-point) + + ;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or root + ;; partition. + (setenv "GRUB_ENABLE_CRYPTODISK" "y") + (unless (zero? (system* "grub-install" "--no-floppy" "--boot-directory" (string-append mount-point "/boot") diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm index 8070b6b439..506d6da420 100644 --- a/gnu/build/marionette.scm +++ b/gnu/build/marionette.scm @@ -27,6 +27,7 @@ marionette-eval marionette-control marionette-screen-text + wait-for-screen-text %qwerty-us-keystrokes marionette-type)) @@ -204,6 +205,24 @@ this by invoking OCRAD (file name for GNU Ocrad's command)" (lambda () (false-if-exception (delete-file image)))))) +(define* (wait-for-screen-text marionette predicate + #:key (timeout 30) (ocrad "ocrad")) + "Wait for TIMEOUT seconds or until the screen text on MARIONETTE matches +PREDICATE, whichever comes first. Raise an error when TIMEOUT is exceeded." + (define start + (car (gettimeofday))) + + (define end + (+ start timeout)) + + (let loop () + (if (> (car (gettimeofday)) end) + (error "'wait-for-screen-text' timeout" predicate) + (or (predicate (marionette-screen-text marionette #:ocrad ocrad)) + (begin + (sleep 1) + (loop)))))) + (define %qwerty-us-keystrokes ;; Maps "special" characters to their keystrokes. '((#\newline . "ret") diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 3be1c55b41..86242d9665 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -67,10 +67,16 @@ %base-user-accounts)))) -(define* (run-basic-test os command #:optional (name "basic")) +(define* (run-basic-test os command #:optional (name "basic") + #:key initialization) "Return a derivation called NAME that tests basic features of the OS started using COMMAND, a gexp that evaluates to a list of strings. Compare some -properties of running system to what's declared in OS, an ." +properties of running system to what's declared in OS, an . + +When INITIALIZATION is true, it must be a one-argument procedure that is +passed a gexp denoting the marionette, and it must return gexp that is +inserted before the first test. This is used to introduce an extra +initialization step, such as entering a LUKS passphrase." (define test (with-imported-modules '((gnu build marionette)) #~(begin @@ -88,6 +94,9 @@ properties of running system to what's declared in OS, an ." (test-begin "basic") + #$(and initialization + (initialization #~marionette)) + (test-assert "uname" (match (marionette-eval '(uname) marionette) (#("Linux" host-name version _ architecture) diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm index 98f8649af8..ecf1ac1923 100644 --- a/gnu/tests/install.scm +++ b/gnu/tests/install.scm @@ -24,6 +24,7 @@ #:use-module (gnu system install) #:use-module (gnu system vm) #:use-module ((gnu build vm) #:select (qemu-command)) + #:use-module (gnu packages ocr) #:use-module (gnu packages qemu) #:use-module (gnu packages package-management) #:use-module (guix store) @@ -398,17 +399,20 @@ by 'mdadm'.") (locale "en_US.UTF-8") (bootloader (grub-configuration (device "/dev/vdb"))) - (kernel-arguments '("console=ttyS0")) + + ;; Note: Do not pass "console=ttyS0" so we can use our passphrase prompt + ;; detection logic in 'enter-luks-passphrase'. + + (mapped-devices (list (mapped-device + (source (uuid "12345678-1234-1234-1234-123456789abc")) + (target "the-root-device") + (type luks-device-mapping)))) (file-systems (cons (file-system (device "/dev/mapper/the-root-device") (title 'device) (mount-point "/") (type "ext4")) %base-file-systems)) - (mapped-devices (list (mapped-device - (source "REPLACE-WITH-LUKS-UUID") - (target "the-root-device") - (type luks-device-mapping)))) (users (cons (user-account (name "charlie") (group "users") @@ -435,7 +439,8 @@ parted --script /dev/vdb mklabel gpt \\ mkpart primary ext2 3M 1G \\ set 1 boot on \\ set 1 bios_grub on -echo -n thepassphrase | cryptsetup luksFormat -q /dev/vdb2 - +echo -n thepassphrase | \\ + cryptsetup luksFormat --uuid=12345678-1234-1234-1234-123456789abc -q /dev/vdb2 - echo -n thepassphrase | \\ cryptsetup open --type luks --key-file - /dev/vdb2 the-root-device mkfs.ext4 -L my-root /dev/mapper/the-root-device @@ -443,15 +448,53 @@ mount LABEL=my-root /mnt herd start cow-store /mnt mkdir /mnt/etc cp /etc/target-config.scm /mnt/etc/config.scm -cat /mnt/etc/config -luks_uuid=`cryptsetup luksUUID /dev/vdb2` -sed -i /mnt/etc/config.scm \\ - -e \"s/\\\"REPLACE-WITH-LUKS-UUID\\\"/(uuid \\\"$luks_uuid\\\")/g\" guix system build /mnt/etc/config.scm guix system init /mnt/etc/config.scm /mnt --no-substitutes sync reboot\n") +(define (enter-luks-passphrase marionette) + "Return a gexp to be inserted in the basic system test running on MARIONETTE +to enter the LUKS passphrase." + (let ((ocrad (file-append ocrad "/bin/ocrad"))) + #~(begin + (define (passphrase-prompt? text) + (string-contains (pk 'screen-text text) "Enter pass")) + + (define (bios-boot-screen? text) + ;; Return true if TEXT corresponds to the boot screen, before GRUB's + ;; menu. + (string-prefix? "SeaBIOS" text)) + + (test-assert "enter LUKS passphrase for GRUB" + (begin + ;; At this point we have no choice but to use OCR to determine + ;; when the passphrase should be entered. + (wait-for-screen-text #$marionette passphrase-prompt? + #:ocrad #$ocrad) + (marionette-type "thepassphrase\n" #$marionette) + + ;; Now wait until we leave the boot screen. This is necessary so + ;; we can then be sure we match the "Enter passphrase" prompt from + ;; 'cryptsetup', in the initrd. + (wait-for-screen-text #$marionette (negate bios-boot-screen?) + #:ocrad #$ocrad + #:timeout 20))) + + (test-assert "enter LUKS passphrase for the initrd" + (begin + ;; XXX: Here we use OCR as well but we could instead use QEMU + ;; '-serial stdio' and run it in an input pipe, + (wait-for-screen-text #$marionette passphrase-prompt? + #:ocrad #$ocrad + #:timeout 60) + (marionette-type "thepassphrase\n" #$marionette) + + ;; Take a screenshot for debugging purposes. + (marionette-control (string-append "screendump " #$output + "/post-initrd-passphrase.ppm") + #$marionette)))))) + (define %test-encrypted-os (system-test (name "encrypted-root-os") @@ -465,6 +508,7 @@ build (current-guix) and then store a couple of full system images.") #:script %encrypted-root-installation-script)) (command (qemu-command/writable-image image))) - (run-basic-test %encrypted-root-os command "encrypted-root-os"))))) + (run-basic-test %encrypted-root-os command "encrypted-root-os" + #:initialization enter-luks-passphrase))))) ;;; install.scm ends here -- cgit v1.2.3 From cc73339b97901cf1e50f07a6f0114974b34592c4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 23 Nov 2016 21:10:49 +0100 Subject: tests: Remove 'GUIX_LOCPATH' hack that had been added for glibc@2.23. * gnu/tests/base.scm (run-basic-test)[test]("locale"): Remove 'GUIX_LOCPATH' hack, which is no longer needed since commit 9f58fe3d1c32e3f0ced065e286532a10cad1b5e3. --- gnu/tests/base.scm | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 86242d9665..6370d6951b 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -199,14 +199,8 @@ info --version") (test-equal "locale" "en_US.utf8" - (marionette-eval '(begin - ;; XXX: This 'setenv' call wouldn't be needed - ;; but our glibc@2.23 currently ignores - ;; /run/current-system/locale. - (setenv "GUIX_LOCPATH" - "/run/current-system/locale") - (let ((before (setlocale LC_ALL "en_US.utf8"))) - (setlocale LC_ALL before))) + (marionette-eval '(let ((before (setlocale LC_ALL "en_US.utf8"))) + (setlocale LC_ALL before)) marionette)) (test-assert "/run/current-system is a GC root" -- cgit v1.2.3 From 2df984f2787917168afc3eda92817c77dec5bddc Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 24 Nov 2016 06:29:31 +0100 Subject: gnu: ir: Use ‘modify-phases’ syntax. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/audio.scm (ir)[arguments]: Use ‘modify-phases’. --- gnu/packages/audio.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 492f716ca9..2ecc9a570d 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2016 Alex Griffin ;;; Copyright © 2016 ng0 ;;; Copyright © 2016 Lukas Gradl +;;; Copyright © 2016 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -1185,11 +1186,10 @@ well suited to all musical instruments and vocals.") "1jh2z01l9m4ar7yz0n911df07dygc7n4cl59p7qdjbh0nvkm747g")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ;no "check" target + `(#:tests? #f ; no tests #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) - #:phases - ;; no configure script - (alist-delete 'configure %standard-phases))) + #:phases (modify-phases %standard-phases + (delete 'configure)))) ; no configure script (inputs `(("libsndfile" ,libsndfile) ("libsamplerate" ,libsamplerate) -- cgit v1.2.3 From c50f2af9f800ae1b24e7b245b4a2ab137b18a664 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 24 Nov 2016 06:33:46 +0100 Subject: gnu: ir: Use archived tarball and home page. * gnu/packages/audio.scm (ir)[source]: Use a list of archive mirrors. [home-page]: Link to an Internet Archive snapshot. --- gnu/packages/audio.scm | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 2ecc9a570d..b535448af1 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1178,9 +1178,15 @@ well suited to all musical instruments and vocals.") (version "1.3.2") (source (origin (method url-fetch) - (uri (string-append - "http://factorial.hu/system/files/ir.lv2-" - version ".tar.gz")) + ;; The original home-page is gone. Download the tarball from an + ;; archive mirror instead. + (uri (list (string-append + "https://web.archive.org/web/20150803095032/" + "http://factorial.hu/system/files/ir.lv2-" + version ".tar.gz") + (string-append + "https://mirrors.kernel.org/gentoo/distfiles/ir.lv2-" + version ".tar.gz"))) (sha256 (base32 "1jh2z01l9m4ar7yz0n911df07dygc7n4cl59p7qdjbh0nvkm747g")))) @@ -1203,7 +1209,9 @@ well suited to all musical instruments and vocals.") (list (search-path-specification (variable "LV2_PATH") (files '("lib/lv2"))))) - (home-page "http://factorial.hu/plugins/lv2/ir") + ;; Link to an archived copy of the home-page since the original is gone. + (home-page (string-append "https://web.archive.org/web/20150803095032/" + "http://factorial.hu/plugins/lv2/ir")) (synopsis "LV2 convolution reverb") (description "IR is a low-latency, real-time, high performance signal convolver -- cgit v1.2.3 From b7230de54b493da5a78922b4226255763b525a98 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Fri, 18 Nov 2016 00:49:09 +0100 Subject: doc: Symlink daemon start-up files. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch ensures that always the current profile's daemon will be used. The .service file contains the path to the guix-daemon within the store. Thus when copying the file, it will point to the very version of guix-daemon used at the time of copying – even after system upgrade or when this version has been garbage collected from the store. * doc/guix.texi (Binary Installation): Change example code for installing the systemd and Upstart files to use symbolic links instead of copying the files. --- doc/guix.texi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 7381c2c6ba..347361ca74 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -453,7 +453,7 @@ If your host distro uses the systemd init system, this can be achieved with these commands: @example -# cp ~root/.guix-profile/lib/systemd/system/guix-daemon.service \ +# ln -s ~root/.guix-profile/lib/systemd/system/guix-daemon.service \ /etc/systemd/system/ # systemctl start guix-daemon && systemctl enable guix-daemon @end example @@ -461,7 +461,7 @@ with these commands: If your host distro uses the Upstart init system: @example -# cp ~root/.guix-profile/lib/upstart/system/guix-daemon.conf /etc/init/ +# ln -s ~root/.guix-profile/lib/upstart/system/guix-daemon.conf /etc/init/ # start guix-daemon @end example -- cgit v1.2.3 From 332d7903f52c2bf3741b04ac2d01cd9018b70800 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 24 Nov 2016 09:23:11 +0100 Subject: Add system start-up files for "guix publish". * .gitignore: add etc/guix-publish.conf and /etc/guix-publish.service. * etc/guix-publish.conf.in: New file. * etc/guix-publish.service.in: New file. * nix/local.mk (etc/guix-%.service, etc/guix-%.conf): Generalized former build-rules for by using patterns. (nodist_systemdservice_DATA): Add etc/guix-publish.service, update comment. (nodist_upstartjob_DATA): Add etc/guix-publish.conf, update comment. * doc/guix.texi (Invoking guix publish): Add description for enabling "guix publish" on host distros using the new files. --- .gitignore | 2 ++ doc/guix.texi | 24 ++++++++++++++++++++++++ etc/guix-publish.conf.in | 12 ++++++++++++ etc/guix-publish.service.in | 19 +++++++++++++++++++ nix/local.mk | 16 ++++++++-------- 5 files changed, 65 insertions(+), 8 deletions(-) create mode 100644 etc/guix-publish.conf.in create mode 100644 etc/guix-publish.service.in diff --git a/.gitignore b/.gitignore index 329d489713..b64f5ef4b0 100644 --- a/.gitignore +++ b/.gitignore @@ -50,6 +50,8 @@ /emacs/guix-helper.scm /etc/guix-daemon.conf /etc/guix-daemon.service +/etc/guix-publish.conf +/etc/guix-publish.service /guix-daemon /guix-register /guix/config.scm diff --git a/doc/guix.texi b/doc/guix.texi index 347361ca74..0055d094e8 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6055,6 +6055,30 @@ add a call to @code{guix-publish-service} in the @code{services} field of the @code{operating-system} declaration (@pxref{guix-publish-service, @code{guix-publish-service}}). +If you are instead running Guix on a ``foreign distro'', follow these +instructions:” + +@itemize +@item +If your host distro uses the systemd init system: + +@example +# ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \ + /etc/systemd/system/ +# systemctl start guix-publish && systemctl enable guix-publish +@end example + +@item +If your host distro uses the Upstart init system: + +@example +# ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/ +# start guix-publish +@end example + +@item +Otherwise, proceed similarly with your distro's init system. +@end itemize @node Invoking guix challenge @section Invoking @command{guix challenge} diff --git a/etc/guix-publish.conf.in b/etc/guix-publish.conf.in new file mode 100644 index 0000000000..498fa295be --- /dev/null +++ b/etc/guix-publish.conf.in @@ -0,0 +1,12 @@ +# This is a "job" for the Upstart init system to launch 'guix-daemon'. +# Drop it in /etc/init to have 'guix-daemon' automatically started. + +description "Publish the GNU Guix store" + +start on runlevel [2345] + +stop on runlevel [016] + +task + +exec @bindir@/guix publish --user=nobody --port=8181 diff --git a/etc/guix-publish.service.in b/etc/guix-publish.service.in new file mode 100644 index 0000000000..fc4e3c21f3 --- /dev/null +++ b/etc/guix-publish.service.in @@ -0,0 +1,19 @@ +# This is a "service unit file" for the systemd init system to launch +# 'guix publish'. Drop it in /etc/systemd/system or similar to have +# 'guix publish' automatically started. + +[Unit] +Description=Publish the GNU Guix store + +[Service] +ExecStart=@bindir@/guix publish --user=nobody --port=8181 +Environment=GUIX_LOCPATH=/root/.guix-profile/lib/locale +RemainAfterExit=yes +StandardOutput=syslog +StandardError=syslog + +# See . +TasksMax=1024 + +[Install] +WantedBy=multi-user.target diff --git a/nix/local.mk b/nix/local.mk index 86ef769549..79667ed49e 100644 --- a/nix/local.mk +++ b/nix/local.mk @@ -183,26 +183,26 @@ endif BUILD_DAEMON_OFFLOAD nodist_libexec_SCRIPTS = \ %D%/scripts/guix-authenticate -# The '.service' file for systemd. +# The '.service' files for systemd. systemdservicedir = $(libdir)/systemd/system -nodist_systemdservice_DATA = etc/guix-daemon.service +nodist_systemdservice_DATA = etc/guix-daemon.service etc/guix-publish.service -etc/guix-daemon.service: etc/guix-daemon.service.in \ +etc/guix-%.service: etc/guix-%.service.in \ $(top_builddir)/config.status $(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \ $(SED) -e 's|@''bindir''@|$(bindir)|' < \ - "$(srcdir)/etc/guix-daemon.service.in" > "$@.tmp"; \ + "$(srcdir)/$<" > "$@.tmp"; \ mv "$@.tmp" "$@" -# The '.conf' job for Upstart. +# The '.conf' jobs for Upstart. upstartjobdir = $(libdir)/upstart/system -nodist_upstartjob_DATA = etc/guix-daemon.conf +nodist_upstartjob_DATA = etc/guix-daemon.conf etc/guix-publish.conf -etc/guix-daemon.conf: etc/guix-daemon.conf.in \ +etc/guix-%.conf: etc/guix-%.conf.in \ $(top_builddir)/config.status $(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \ $(SED) -e 's|@''bindir''@|$(bindir)|' < \ - "$(srcdir)/etc/guix-daemon.conf.in" > "$@.tmp"; \ + "$(srcdir)/$<" > "$@.tmp"; \ mv "$@.tmp" "$@" EXTRA_DIST += \ -- cgit v1.2.3 From 6f09c100d90590ca4914a9fe78908dbbbb0850c6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 24 Nov 2016 16:56:46 +0100 Subject: gnu: vim: Update to 8.0.0096. * gnu/packages/vim.scm (vim, vim-full): Update to 8.0.0096. --- gnu/packages/vim.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 678f895917..1161cd1bc8 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -49,7 +49,7 @@ (define-public vim (package (name "vim") - (version "8.0.0095") + (version "8.0.0096") (source (origin (method url-fetch) (uri (string-append "https://github.com/vim/vim/archive/v" @@ -57,7 +57,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1whib2zzqdpgfhpr7ymqxj3das6iyiapvx0izw4147mkg9yanmp7")))) + "03f1kdz024k5r1ag3ns8y5lnx5n8cwksiw9q5b2rjl8rnn824c6p")))) (build-system gnu-build-system) (arguments `(#:test-target "test" -- cgit v1.2.3 From 62126576fc7f6009682629b5a24d4527a9a09dfa Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 24 Nov 2016 11:55:15 +0100 Subject: gnu: hdf5: Build the C++ interface. * gnu/packages/maths.scm (hdf5)[arguments]: Add #:configure-flags. --- gnu/packages/maths.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 0c51f6d54f..e432ed5c05 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -563,7 +563,10 @@ incompatible with HDF5.") (inputs `(("zlib" ,zlib))) (arguments - `(#:phases + `(;; Some of the users, notably Flann, need the C++ interface. + #:configure-flags '("--enable-cxx") + + #:phases (modify-phases %standard-phases (add-before 'configure 'patch-configure (lambda _ -- cgit v1.2.3 From 2e328698248b4b5d7ed07af89796acd9bfadbaff Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 24 Nov 2016 21:27:21 +0100 Subject: services: Move polkit to (gnu services dbus). * gnu/services/desktop.scm (, %polkit-accounts) (%polkit-pam-services, polkit-directory, polkit-etc-files) (polkit-setuid-programs, polkit-service-type, polkit-service): Move to... * gnu/services/dbus.scm: ... here. --- gnu/services/dbus.scm | 94 +++++++++++++++++++++++++++++++++++++++++++++++- gnu/services/desktop.scm | 93 ----------------------------------------------- 2 files changed, 93 insertions(+), 94 deletions(-) diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm index 876f56d45f..26390a4acd 100644 --- a/gnu/services/dbus.scm +++ b/gnu/services/dbus.scm @@ -21,7 +21,9 @@ #:use-module (gnu services) #:use-module (gnu services shepherd) #:use-module (gnu system shadow) + #:use-module (gnu system pam) #:use-module ((gnu packages glib) #:select (dbus)) + #:use-module (gnu packages polkit) #:use-module (gnu packages admin) #:use-module (guix gexp) #:use-module (guix records) @@ -30,7 +32,10 @@ #:export (dbus-configuration dbus-configuration? dbus-root-service-type - dbus-service)) + dbus-service + + polkit-service-type + polkit-service)) ;;; ;;; D-Bus. @@ -218,4 +223,91 @@ and policy files. For example, to allow avahi-daemon to use the system bus, (dbus-configuration (dbus dbus) (services services)))) + +;;; +;;; Polkit privilege management service. +;;; + +(define-record-type* + polkit-configuration make-polkit-configuration + polkit-configuration? + (polkit polkit-configuration-polkit ; + (default polkit)) + (actions polkit-configuration-actions ;list of + (default '()))) + +(define %polkit-accounts + (list (user-group (name "polkitd") (system? #t)) + (user-account + (name "polkitd") + (group "polkitd") + (system? #t) + (comment "Polkit daemon user") + (home-directory "/var/empty") + (shell "/run/current-system/profile/sbin/nologin")))) + +(define %polkit-pam-services + (list (unix-pam-service "polkit-1"))) + +(define (polkit-directory packages) + "Return a directory containing an @file{actions} and possibly a +@file{rules.d} sub-directory, for use as @file{/etc/polkit-1}." + (with-imported-modules '((guix build union)) + (computed-file "etc-polkit-1" + #~(begin + (use-modules (guix build union) (srfi srfi-26)) + + (union-build #$output + (map (cut string-append <> + "/share/polkit-1") + (list #$@packages))))))) + +(define polkit-etc-files + (match-lambda + (($ polkit packages) + `(("polkit-1" ,(polkit-directory (cons polkit packages))))))) + +(define polkit-setuid-programs + (match-lambda + (($ polkit) + (list (file-append polkit "/lib/polkit-1/polkit-agent-helper-1") + (file-append polkit "/bin/pkexec"))))) + +(define polkit-service-type + (service-type (name 'polkit) + (extensions + (list (service-extension account-service-type + (const %polkit-accounts)) + (service-extension pam-root-service-type + (const %polkit-pam-services)) + (service-extension dbus-root-service-type + (compose + list + polkit-configuration-polkit)) + (service-extension etc-service-type + polkit-etc-files) + (service-extension setuid-program-service-type + polkit-setuid-programs))) + + ;; Extensions are lists of packages that provide polkit rules + ;; or actions under share/polkit-1/{actions,rules.d}. + (compose concatenate) + (extend (lambda (config actions) + (polkit-configuration + (inherit config) + (actions + (append (polkit-configuration-actions config) + actions))))))) + +(define* (polkit-service #:key (polkit polkit)) + "Return a service that runs the +@uref{http://www.freedesktop.org/wiki/Software/polkit/, Polkit privilege +management service}, which allows system administrators to grant access to +privileged operations in a structured way. By querying the Polkit service, a +privileged system component can know when it should grant additional +capabilities to ordinary users. For example, an ordinary user can be granted +the capability to suspend the system if the user is logged in locally." + (service polkit-service-type + (polkit-configuration (polkit polkit)))) + ;;; dbus.scm ends here diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index dfd1ea6e92..7555780ade 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -37,7 +37,6 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages xfce) #:use-module (gnu packages avahi) - #:use-module (gnu packages polkit) #:use-module (gnu packages xdisorg) #:use-module (gnu packages suckless) #:use-module (gnu packages linux) @@ -68,11 +67,6 @@ bluetooth-service - polkit-configuration - polkit-configuration? - polkit-service - polkit-service-type - elogind-configuration elogind-configuration? elogind-service @@ -413,93 +407,6 @@ Users need to be in the @code{lp} group to access the D-Bus service. " (service bluetooth-service-type bluez)) - -;;; -;;; Polkit privilege management service. -;;; - -(define-record-type* - polkit-configuration make-polkit-configuration - polkit-configuration? - (polkit polkit-configuration-polkit ; - (default polkit)) - (actions polkit-configuration-actions ;list of - (default '()))) - -(define %polkit-accounts - (list (user-group (name "polkitd") (system? #t)) - (user-account - (name "polkitd") - (group "polkitd") - (system? #t) - (comment "Polkit daemon user") - (home-directory "/var/empty") - (shell "/run/current-system/profile/sbin/nologin")))) - -(define %polkit-pam-services - (list (unix-pam-service "polkit-1"))) - -(define (polkit-directory packages) - "Return a directory containing an @file{actions} and possibly a -@file{rules.d} sub-directory, for use as @file{/etc/polkit-1}." - (with-imported-modules '((guix build union)) - (computed-file "etc-polkit-1" - #~(begin - (use-modules (guix build union) (srfi srfi-26)) - - (union-build #$output - (map (cut string-append <> - "/share/polkit-1") - (list #$@packages))))))) - -(define polkit-etc-files - (match-lambda - (($ polkit packages) - `(("polkit-1" ,(polkit-directory (cons polkit packages))))))) - -(define polkit-setuid-programs - (match-lambda - (($ polkit) - (list (file-append polkit "/lib/polkit-1/polkit-agent-helper-1") - (file-append polkit "/bin/pkexec"))))) - -(define polkit-service-type - (service-type (name 'polkit) - (extensions - (list (service-extension account-service-type - (const %polkit-accounts)) - (service-extension pam-root-service-type - (const %polkit-pam-services)) - (service-extension dbus-root-service-type - (compose - list - polkit-configuration-polkit)) - (service-extension etc-service-type - polkit-etc-files) - (service-extension setuid-program-service-type - polkit-setuid-programs))) - - ;; Extensions are lists of packages that provide polkit rules - ;; or actions under share/polkit-1/{actions,rules.d}. - (compose concatenate) - (extend (lambda (config actions) - (polkit-configuration - (inherit config) - (actions - (append (polkit-configuration-actions config) - actions))))))) - -(define* (polkit-service #:key (polkit polkit)) - "Return a service that runs the -@uref{http://www.freedesktop.org/wiki/Software/polkit/, Polkit privilege -management service}, which allows system administrators to grant access to -privileged operations in a structured way. By querying the Polkit service, a -privileged system component can know when it should grant additional -capabilities to ordinary users. For example, an ordinary user can be granted -the capability to suspend the system if the user is logged in locally." - (service polkit-service-type - (polkit-configuration (polkit polkit)))) - ;;; ;;; Colord D-Bus service. -- cgit v1.2.3 From 89007a0bb76fb4e0404e0baf72b939f5d91f08f0 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 24 Nov 2016 21:29:13 +0100 Subject: services: network-manager: Install polkit actions. Reported by Chris Marusich at . * gnu/services/networking.scm (network-manager-service-type)[extensions]: Add POLKIT-SERVICE-TYPE. --- gnu/services/networking.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 5a83240d77..7d3626b935 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -695,6 +695,7 @@ and @command{wicd-curses} user interfaces." (list (service-extension shepherd-root-service-type network-manager-shepherd-service) (service-extension dbus-root-service-type list) + (service-extension polkit-service-type list) (service-extension activation-service-type (const %network-manager-activation)) ;; Add network-manager to the system profile. -- cgit v1.2.3 From 030f59fac939b4c747f3fa8037b2db6c1030f0eb Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 24 Nov 2016 21:35:57 +0100 Subject: services: network-manager: Depend on 'wpa-supplicant'. Suggested by Chris Marusich . * gnu/services/networking.scm (network-manager-shepherd-service) [requirement]: Add 'wpa-supplicant'. --- gnu/services/networking.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 7d3626b935..bbb9053008 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -682,7 +682,7 @@ and @command{wicd-curses} user interfaces." (list (shepherd-service (documentation "Run the NetworkManager.") (provision '(networking)) - (requirement '(user-processes dbus-system loopback)) + (requirement '(user-processes dbus-system wpa-supplicant loopback)) (start #~(make-forkexec-constructor (list (string-append #$network-manager "/sbin/NetworkManager") -- cgit v1.2.3 From cbf1024e9907c7402e66c0c225dba7406fbd82e8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 24 Nov 2016 21:53:57 +0100 Subject: doc: Document 'wpa-supplicant-service-type'. Reported by Chris Marusich . * doc/guix.texi (Networking Services): Remove 'wpa-supplicant-service' procedure, which doesn't exist, and document 'wpa-supplicant-service-type'. --- doc/guix.texi | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 0055d094e8..4d9c107a9c 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -8431,13 +8431,22 @@ configure networking." @end deffn @cindex WPA Supplicant -@deffn {Scheme Procedure} wpa-supplicant-service @ - [#:wpa-supplicant @var{wpa-supplicant}] -Return a service that runs @url{https://w1.fi/wpa_supplicant/,WPA +@defvr {Scheme Variable} wpa-supplicant-service-type +This is the service type to run @url{https://w1.fi/wpa_supplicant/,WPA supplicant}, an authentication daemon required to authenticate against -encrypted WiFi or ethernet networks. Service is started to listen for +encrypted WiFi or ethernet networks. It is configured to listen for requests on D-Bus. -@end deffn + +The value of this service is the @code{wpa-supplicant} package to use. +Thus, it can be instantiated like this: + +@lisp +(use-modules (gnu services networking) + (gnu packages admin)) + +(service wpa-supplicant-type wpa-supplicant) +@end lisp +@end defvr @cindex NTP @cindex real time clock -- cgit v1.2.3 From 13fb1bd94e77ca231faaae25e8c9e3c4bde1b0f2 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 24 Nov 2016 23:03:04 +0100 Subject: doc: Document encrypted root partitions. This is a followup to f7f292d359e0eb77617f4ecf6b3164f868ec1784. * doc/guix.texi (Preparing for Installation): Give commands for encrypted root installation. (Proceeding with the Installation): Add item about mapped devices. (File Systems): Mention that 'dependencies' can list objects. * gnu/system/examples/desktop.tmpl (mapped-devices): New field. (file-systems): Add 'dependencies' field. --- doc/guix.texi | 48 +++++++++++++++++++++++----------------- gnu/system/examples/desktop.tmpl | 15 +++++++++++-- 2 files changed, 41 insertions(+), 22 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 4d9c107a9c..e488c5a553 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6665,27 +6665,26 @@ partition lives at @file{/dev/sda1}, a file system with the label mkfs.ext4 -L my-root /dev/sda1 @end example -@c FIXME: Uncomment this once GRUB fully supports encrypted roots. -@c A typical command sequence may be: -@c -@c @example -@c # fdisk /dev/sdX -@c @dots{} Create partitions etc.@dots{} -@c # cryptsetup luksFormat /dev/sdX1 -@c # cryptsetup open --type luks /dev/sdX1 my-partition -@c # mkfs.ext4 -L my-root /dev/mapper/my-partition -@c @end example - -In addition to e2fsprogs, the suite of tools to manipulate -ext2/ext3/ext4 file systems, the installation image includes -Cryptsetup/LUKS for disk encryption. +@cindex encrypted disk +If you are instead planning to encrypt the root partition, you can use +the Cryptsetup/LUKS utilities to do that (see @inlinefmtifelse{html, +@uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, +@code{man cryptsetup}} for more information.) Assuming you want to +store the root partition on @file{/dev/sda1}, the command sequence would +be along these lines: + +@example +cryptsetup luksFormat /dev/sda1 +cryptsetup open --type luks /dev/sda1 my-partition +mkfs.ext4 -L my-root /dev/mapper/my-partition +@end example Once that is done, mount the target root partition under @file{/mnt} -with a command like (again, assuming @file{/dev/sda1} is the root -partition): +with a command like (again, assuming @code{my-root} is the label of the +root partition): @example -mount /dev/sda1 /mnt +mount LABEL=my-root /mnt @end example Finally, if you plan to use one or more swap partitions (@pxref{Memory @@ -6748,6 +6747,10 @@ Be sure that your partition labels match the value of their respective @code{device} fields in your @code{file-system} configuration, assuming your @code{file-system} configuration sets the value of @code{title} to @code{'label}. + +@item +If there are encrypted or RAID partitions, make sure to add a +@code{mapped-devices} field to describe them (@pxref{Mapped Devices}). @end itemize Once you are done preparing the configuration file, the new system must @@ -6992,7 +6995,9 @@ desired configuration. In particular, notice how we use @code{inherit} to create a new configuration which has the same values as the old configuration, but with a few modifications. -The configuration for a typical ``desktop'' usage, with the X11 display +@cindex encrypted disk +The configuration for a typical ``desktop'' usage, with an encrypted +root partition, the X11 display server, GNOME and Xfce (users can choose which of these desktop environments to use at the log-in screen by pressing @kbd{F1}), network management, power management, and more, would look like this: @@ -7317,13 +7322,16 @@ errors before being mounted. When true, the mount point is created if it does not exist yet. @item @code{dependencies} (default: @code{'()}) -This is a list of @code{} objects representing file systems -that must be mounted before (and unmounted after) this one. +This is a list of @code{} or @code{} objects +representing file systems that must be mounted or mapped devices that +must be opened before (and unmounted or closed after) this one. As an example, consider a hierarchy of mounts: @file{/sys/fs/cgroup} is a dependency of @file{/sys/fs/cgroup/cpu} and @file{/sys/fs/cgroup/memory}. +Another example is a file system that depends on a mapped device, for +example for an encrypted partition (@pxref{Mapped Devices}). @end table @end deftp diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl index 2fcf90f8b1..82687e740b 100644 --- a/gnu/system/examples/desktop.tmpl +++ b/gnu/system/examples/desktop.tmpl @@ -1,5 +1,6 @@ ;; This is an operating system configuration template -;; for a "desktop" setup with GNOME and Xfce. +;; for a "desktop" setup with GNOME and Xfce where the +;; root partition is encrypted with LUKS. (use-modules (gnu) (gnu system nss)) (use-service-modules desktop) @@ -13,11 +14,21 @@ ;; Assuming /dev/sdX is the target hard disk, and "my-root" ;; is the label of the target root file system. (bootloader (grub-configuration (device "/dev/sdX"))) + + ;; Specify a mapped device for the encrypted root partition. + ;; The UUID is that returned by 'cryptsetup luksUUID'. + (mapped-devices + (list (mapped-device + (source (uuid "12345678-1234-1234-1234-123456789abc")) + (target "the-root-device") + (type luks-device-mapping)))) + (file-systems (cons (file-system (device "my-root") (title 'label) (mount-point "/") - (type "ext4")) + (type "ext4") + (dependencies mapped-devices)) %base-file-systems)) (users (cons (user-account -- cgit v1.2.3 From df31e36a403ac8ff3d86813b88f02f816a936687 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 24 Nov 2016 23:21:08 +0100 Subject: doc: Fix typos in "Kerberos Services". * doc/guix.texi (Kerberos Services): Fix typos. --- doc/guix.texi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index e488c5a553..ebb138e15d 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -11412,13 +11412,13 @@ could instantiate a dovecot service like this: @subsubsection Kerberos Services @cindex Kerberos -The @code{(gnu services Kerberos)} module provides services relating to +The @code{(gnu services kerberos)} module provides services relating to the authentication protocol @dfn{Kerberos}. @subsubheading PAM krb5 Service @cindex pam-krb5 -The pam-krb5 service allows for login authentication and password +The @code{pam-krb5} service allows for login authentication and password management via Kerberos. You will need this service if you want PAM enabled applications to authenticate users using Kerberos. -- cgit v1.2.3 From ade584857659e207e25bbd38fb9aa3d2f9f7a8dd Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 24 Nov 2016 17:43:05 +0100 Subject: gnu: vim: Update to 8.0.0101. * gnu/packages/vim.scm (vim, vim-full): Update to 8.0.0101. --- gnu/packages/vim.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 1161cd1bc8..83c21249b4 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -49,7 +49,7 @@ (define-public vim (package (name "vim") - (version "8.0.0096") + (version "8.0.0101") (source (origin (method url-fetch) (uri (string-append "https://github.com/vim/vim/archive/v" @@ -57,7 +57,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "03f1kdz024k5r1ag3ns8y5lnx5n8cwksiw9q5b2rjl8rnn824c6p")))) + "0kzk1p5vnqr8j5jwb3p745zx3dki5jwlsp7rh6nli0ci2w6vg3r8")))) (build-system gnu-build-system) (arguments `(#:test-target "test" -- cgit v1.2.3 From 2d3b0203f40ac70b2e6fdb734605515b0a4cac24 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 24 Nov 2016 18:46:27 +0100 Subject: gnu: miniupnpc: Update to 2.0. * gnu/packages/upnp.scm (miniupnpc): Update to 2.0. --- gnu/packages/upnp.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm index c46e905c42..67c479a39b 100644 --- a/gnu/packages/upnp.scm +++ b/gnu/packages/upnp.scm @@ -27,7 +27,7 @@ (define-public miniupnpc (package (name "miniupnpc") - (version "1.9") + (version "2.0") (source (origin (method url-fetch) @@ -35,7 +35,7 @@ "http://miniupnp.tuxfamily.org/files/miniupnpc-" version ".tar.gz")) (sha256 - (base32 "0r24jdqcyf839n30ppimdna0hvybscyziaad7ng99fw0x19y88r9")))) + (base32 "0fzrc6fs8vzb2yvk01bd3q5jkarysl7gjlyaqncy3yvfk2wcwd6l")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-2))) -- cgit v1.2.3 From cdbdaf7b6b2c232bca5f2e84af3dca097a3f5ce6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 24 Nov 2016 18:47:09 +0100 Subject: gnu: miniupnpc: Use ‘modify-phases’ syntax. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/upnp.scm (miniupnpc)[arguments]: Use ‘modify-phases’. --- gnu/packages/upnp.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm index 67c479a39b..35bacc75f6 100644 --- a/gnu/packages/upnp.scm +++ b/gnu/packages/upnp.scm @@ -54,7 +54,8 @@ (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")) #:phases - (alist-delete 'configure %standard-phases))) + (modify-phases %standard-phases + (delete 'configure)))) (home-page "http://miniupnp.free.fr/") (synopsis "Library implementing the client side UPnP protocol") (description -- cgit v1.2.3 From 5af82630feb1c6b65edc3dd14bf05d025b77b209 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 24 Nov 2016 18:48:15 +0100 Subject: gnu: miniupnpc: Use the correct ‘upnpc’ in ‘external-ip’. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/upnp.scm (miniupnpc)[arguments]: Add ‘qualify-paths’ phase. --- gnu/packages/upnp.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm index 35bacc75f6..ffb671bf4c 100644 --- a/gnu/packages/upnp.scm +++ b/gnu/packages/upnp.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Sree Harsha Totakura +;;; Copyright © 2016 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -55,7 +56,12 @@ (assoc-ref %outputs "out") "/lib")) #:phases (modify-phases %standard-phases - (delete 'configure)))) + (delete 'configure) + (add-before 'install 'qualify-paths + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "external-ip.sh" + (("upnpc") + (string-append (assoc-ref outputs "out") "/bin/upnpc")))))))) (home-page "http://miniupnp.free.fr/") (synopsis "Library implementing the client side UPnP protocol") (description -- cgit v1.2.3 From e0f8a520eda6b86a71f99eddf2c6968a95c8de0e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 24 Nov 2016 19:28:52 +0100 Subject: gnu: miniupnpc: Improve synopsis and description. * gnu/packages/upnp.scm (miniupnp)[synopsis, description]: Edit, fix typos, add some relevant (search) terms from the home page, and expand acronyms. --- gnu/packages/upnp.scm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/gnu/packages/upnp.scm b/gnu/packages/upnp.scm index ffb671bf4c..f680a52881 100644 --- a/gnu/packages/upnp.scm +++ b/gnu/packages/upnp.scm @@ -63,12 +63,14 @@ (("upnpc") (string-append (assoc-ref outputs "out") "/bin/upnpc")))))))) (home-page "http://miniupnp.free.fr/") - (synopsis "Library implementing the client side UPnP protocol") + (synopsis "UPnP protocol client library") (description - "MiniUPnPc is a library is useful whenever an application needs to listen -for incoming connections but is run behind a UPnP enabled router or firewall. -Examples for such applications include: P2P applications, FTP clients for -active mode, IRC (for DCC) or IM applications, network games, any server -software.") + "The MiniUPnPc client library facilitates access to the services provided +by any Universal Plug and Play (UPnP) Internet Gateway Device (IGD) present on +the network. In UPnP terminology, MiniUPnPc is a UPnP Control Point. It is +useful whenever an application needs to listen for incoming connections while +running behind a UPnP-enabled router or firewall. Such applications include +peer-to-peer applications, active-mode FTP clients, DCC file transfers over +IRC, instant messaging, network games, and most server software.") (license (x11-style "file://LICENSE" "See 'LICENSE' file in the distribution")))) -- cgit v1.2.3 From 88d45b74c17377e0bf27c823f87ef3e642bcc451 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 24 Nov 2016 23:20:24 -0500 Subject: gnu: nginx: Update to 1.11.6. * gnu/packages/web.scm (nginx): Update to 1.11.6. [arguments]: Remove the obsolete option --with-ipv6 from #:configure-flags. --- gnu/packages/web.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 063a8a9a15..753a81625c 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -123,14 +123,14 @@ and its related documentation.") (define-public nginx (package (name "nginx") - (version "1.11.4") + (version "1.11.6") (source (origin (method url-fetch) (uri (string-append "https://nginx.org/download/nginx-" version ".tar.gz")) (sha256 (base32 - "0fvb09ycxz3xnyynav6ybj6miwh9kv8jcb2vzrmvqhzn8cgiq8h6")))) + "1gc5phrzm2hbpvryaya6rlvasa00vjips4hv5q1rqbcfa6xsnlri")))) (build-system gnu-build-system) (inputs `(("pcre" ,pcre) ("openssl" ,openssl) @@ -150,7 +150,6 @@ and its related documentation.") (list (string-append "--prefix=" (assoc-ref outputs "out")) "--with-http_ssl_module" "--with-pcre-jit" - "--with-ipv6" "--with-debug" ;; Even when not cross-building, we pass the ;; --crossbuild option to avoid customizing for the -- cgit v1.2.3 From 2cd3b6fd03b987eb55b2ab9fd3817696d4f1a4d5 Mon Sep 17 00:00:00 2001 From: Theodoros Foradis Date: Tue, 15 Nov 2016 22:53:21 +0200 Subject: gnu: Add wxwidgets-gtk2. * gnu/packages/wxwidgets.scm (wxwidgets-gtk2): New variable. Signed-off-by: Leo Famulari --- gnu/packages/wxwidgets.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index 31da2a9eed..4efe7a13bc 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2016 Theodoros Foradis ;;; ;;; This file is part of GNU Guix. ;;; @@ -109,3 +110,11 @@ and many other languages.") (assoc-ref %outputs "out") "/lib")) ;; No 'check' target. #:tests? #f)))) + +(define-public wxwidgets-gtk2 + (package (inherit wxwidgets) + (inputs `(("gtk+" ,gtk+-2) + ,@(alist-delete + "gtk+" + (package-inputs wxwidgets)))) + (name "wxwidgets-gtk2"))) -- cgit v1.2.3 From b353c7d201fa964be1c5b86c8d8d6a7bbc7b5398 Mon Sep 17 00:00:00 2001 From: Theodoros Foradis Date: Tue, 15 Nov 2016 22:53:22 +0200 Subject: gnu: Add python2-wxpython. * gnu/packages/wxwidgets.scm (python2-wxpython): New variable. Signed-off-by: Leo Famulari --- gnu/packages/wxwidgets.scm | 72 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index 4efe7a13bc..b72567f259 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2016 Theodoros Foradis +;;; Copyright © 2016 Danny Milosavljevic ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,6 +24,7 @@ #:use-module (guix download) #:use-module ((guix licenses) #:prefix l:) #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system python) #:use-module (guix build utils) #:use-module (gnu packages) #:use-module (gnu packages compression) @@ -32,6 +34,7 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages sdl) #:use-module (gnu packages webkit) #:use-module (gnu packages xorg)) @@ -118,3 +121,72 @@ and many other languages.") "gtk+" (package-inputs wxwidgets)))) (name "wxwidgets-gtk2"))) + +(define-public python2-wxpython + (package + (name "python2-wxpython") + (version "3.0.2.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/wxpython/wxPython/" + version "/wxPython-src-" version ".tar.bz2")) + (sha256 + (base32 + "0qfzx3sqx4mwxv99sfybhsij4b5pc03ricl73h4vhkzazgjjjhfm")) + (modules '((guix build utils))) + (snippet + '(begin + (lambda (folder) + (delete-file-recursively (string-append "src/" folder)) + '("expat" "jpeg" "png" "tiff" "zlib" "msw" "osx" "msdos")) + (substitute* '("wxPython/setup.py") + ;; setup.py tries to keep its own license the same as wxwidget's + ;; license (which it expects under $WXWIN/docs). + (("'preamble.txt', 'licence.txt', 'licendoc.txt', 'lgpl.txt'") + "")))))) + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:tests? #f ; tests fail + #:configure-flags (list "WXPORT=gtk2" + "UNICODE=1") + #:phases + (modify-phases %standard-phases + (add-before 'build 'chdir + (lambda _ + (chdir "wxPython") + #t)) + (add-after 'chdir 'set-wx-out-dir + (lambda* (#:key outputs #:allow-other-keys) + ;; By default, install phase tries to copy the wxPython headers in + ;; gnu/store/...-wxwidgets-3.0.2 , which it can't, so they are + ;; redirected to the output directory by setting WXPREFIX. + (substitute* "config.py" + (("= getWxConfigValue\\('--prefix'\\)") + (string-append "= '" (assoc-ref outputs "out") "'"))) + (substitute* "wx/build/config.py" + (("= getWxConfigValue\\('--prefix'\\)") + (string-append "= '" (assoc-ref outputs "out") "'"))) + #t)) + (add-after 'set-wx-out-dir 'setenv + (lambda* (#:key inputs outputs #:allow-other-keys) + (setenv "WXWIN" (assoc-ref inputs "wxwidgets")) + (use-modules (ice-9 popen) (ice-9 rdelim)) + (let ((port (open-pipe* OPEN_READ + (string-append (assoc-ref inputs "wxwidgets") + "/bin/wx-config") "--cppflags"))) + (setenv "CPPFLAGS" (read-string port)) + (close-pipe port)) + #t))))) + (native-inputs + `(("mesa" ,mesa) ; for glcanvas + ("pkg-config" ,pkg-config) + ("python2-setuptools" ,python2-setuptools))) + (inputs + `(("gtk+" ,gtk+-2) ; for wxPython/src/helpers.cpp + ("wxwidgets" ,wxwidgets-gtk2))) + (synopsis "Python 2 Bindings for wxWidgets") + (description "@code{wxpython} provides Python 2 bindings for wxWidgets.") + (home-page "http://wxpython.org/") + (license (package-license wxwidgets)))) -- cgit v1.2.3 From befc9ff64349e772fe6d1da2301e308277bbc24c Mon Sep 17 00:00:00 2001 From: Theodoros Foradis Date: Tue, 15 Nov 2016 22:53:23 +0200 Subject: gnu: Add kicad. * gnu/packages/engineering.scm (kicad): New variable. Signed-off-by: Leo Famulari --- gnu/packages/engineering.scm | 92 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index f720906534..fce90055cb 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 David Thompson ;;; Copyright © 2016 Ludovic Courtès +;;; Copyright © 2016 Theodoros Foradis ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,6 +30,7 @@ #:use-module (guix store) #:use-module (guix utils) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) #:use-module (gnu packages) @@ -39,6 +41,7 @@ #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages curl) #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) #:use-module (gnu packages gd) @@ -55,9 +58,14 @@ #:use-module (gnu packages maths) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages qt) + #:use-module (gnu packages swig) #:use-module (gnu packages tcl) + #:use-module (gnu packages tls) #:use-module (gnu packages tex) + #:use-module (gnu packages wxwidgets) + #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) (define-public librecad @@ -588,3 +596,87 @@ fundamental, primitive shapes are represented as code in the user-level language.") (license (list license:lgpl2.1+ ;library license:gpl2+))))) ;Guile bindings + +;; We use kicad from a git commit, because support for boost 1.61.0 has been +;; recently added. +(define-public kicad + (let ((commit "4ee344e150bfaf3a6f3f7bf935fb96ae07c423fa") + (revision "1")) + (package + (name "kicad") + (version (string-append "4.0-" revision "." + (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.launchpad.net/kicad") + (commit commit))) + (sha256 + (base32 "0kf6r92nps0658i9n3p9vp5dzbssmc22lvjv5flyvnlf83l63s4n")) + (file-name (string-append name "-" version "-checkout")))) + (build-system cmake-build-system) + (arguments + `(#:out-of-source? #t + #:tests? #f ; no tests + #:configure-flags + (list "-DKICAD_STABLE_VERSION=ON" + "-DKICAD_REPO_NAME=stable" + ,(string-append "-DKICAD_BUILD_VERSION=4.0-" + (string-take commit 7)) + "-DCMAKE_BUILD_TYPE=Release" + "-DKICAD_SKIP_BOOST=ON"; Use our system's boost library. + "-DKICAD_SCRIPTING=ON" + "-DKICAD_SCRIPTING_MODULES=ON" + "-DKICAD_SCRIPTING_WXPYTHON=ON" + ;; Has to be set explicitely, as we don't have the wxPython + ;; headers in the wxwidgets store item, but in wxPython. + (string-append "-DCMAKE_CXX_FLAGS=-I" + (assoc-ref %build-inputs "wxpython") + "/include/wx-3.0") + "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE" + ;; TODO: Enable this when CA certs are working with curl. + "-DBUILD_GITHUB_PLUGIN=OFF") + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-program + ;; Ensure correct Python at runtime. + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (python (assoc-ref inputs "python")) + (file (string-append out "/bin/kicad")) + (path (string-append + out + "/lib/python2.7/site-packages:" + (getenv "PYTHONPATH")))) + (wrap-program file + `("PYTHONPATH" ":" prefix (,path)) + `("PATH" ":" prefix + (,(string-append python "/bin:"))))) + #t))))) + (native-inputs + `(("boost" ,boost) + ("gettext" ,gnu-gettext) + ("pkg-config" ,pkg-config) + ("swig" ,swig) + ("zlib" ,zlib))) + (inputs + `(("cairo" ,cairo) + ("curl" ,curl) + ("desktop-file-utils" ,desktop-file-utils) + ("glew" ,glew) + ("glm" ,glm) + ("hicolor-icon-theme" ,hicolor-icon-theme) + ("libsm" ,libsm) + ("mesa" ,mesa) + ("openssl" ,openssl) + ("python" ,python-2) + ("wxwidgets" ,wxwidgets-gtk2) + ("wxpython" ,python2-wxpython))) + (home-page "http://kicad-pcb.org/") + (synopsis "Electronics Design Automation Suite") + (description "Kicad is a program for the formation of printed circuit +boards and electrical circuits. The software has a number of programs that +perform specific functions, for example, pcbnew (Editing PCB), eeschema (editing +electrical diagrams), gerbview (viewing Gerber files) and others.") + (license license:gpl3+)))) -- cgit v1.2.3 From 8f528bd4426fdb3e6e571316b185e70d30485c7e Mon Sep 17 00:00:00 2001 From: Theodoros Foradis Date: Tue, 15 Nov 2016 22:53:24 +0200 Subject: gnu: Add kicad-library. * gnu/packages/engineering.scm (kicad-library): New variable. Signed-off-by: Leo Famulari --- gnu/packages/engineering.scm | 62 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index fce90055cb..831e63beda 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -680,3 +680,65 @@ boards and electrical circuits. The software has a number of programs that perform specific functions, for example, pcbnew (Editing PCB), eeschema (editing electrical diagrams), gerbview (viewing Gerber files) and others.") (license license:gpl3+)))) + +(define-public kicad-library + (let ((version "4.0.4")) + (package + (name "kicad-library") + (version version) + (source (origin + (method url-fetch) + (uri (string-append + "http://downloads.kicad-pcb.org/libraries/kicad-library-" + version ".tar.gz")) + (sha256 + (base32 + "1wyda58y39lhxml0xv1ngvddi0nqihx9bnlza46ajzms38ajvh12")))) + (build-system cmake-build-system) + (arguments + `(#:out-of-source? #t + #:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-footprints ; from footprints tarball + (lambda* (#:key inputs outputs #:allow-other-keys) + (zero? (system* "tar" "xvf" + (assoc-ref inputs "kicad-footprints") + "-C" (string-append (assoc-ref outputs "out") + "/share/kicad/modules") + "--strip-components=1")))) + ;; We change the default global footprint file, which is generated if + ;; it doesn't exist in user's home directory, from the one using the + ;; github plugin, to the one using the KISYSMOD environment path. + (add-after 'install-footprints 'use-pretty-footprint-table + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (template-dir (string-append out "/share/kicad/template")) + (fp-lib-table (string-append template-dir "/fp-lib-table"))) + (delete-file fp-lib-table) + (copy-file (string-append fp-lib-table ".for-pretty") + fp-lib-table)) + #t))))) + (native-search-paths + (list (search-path-specification + (variable "KISYSMOD") ; footprint path + (files '("share/kicad/modules"))) + (search-path-specification + (variable "KISYS3DMOD") ; 3D model path + (files '("share/kicad/modules/packages3d"))))) + ;; Kicad distributes footprints in a separate tarball + (native-inputs + `(("kicad-footprints" + ,(origin + (method url-fetch) + (uri (string-append + "http://downloads.kicad-pcb.org/libraries/kicad-footprints-" + version ".tar.gz")) + (sha256 + (base32 + "0ya4gg6clz3vp2wrb67xwg0bhwh5q8ag39jjmpcp4zjcqs1f48rb")))))) + (home-page "http://kicad-pcb.org/") + (synopsis "Libraries for kicad") + (description "This package provides Kicad component, footprint and 3D +render model libraries.") + (license license:lgpl2.0+)))) -- cgit v1.2.3 From 1e347214352ea0dc39944f809b9bb041a77c02d3 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Wed, 23 Nov 2016 23:25:27 +0300 Subject: gnu: qemu: Install all required info files. * gnu/packages/qemu.scm (qemu)[arguments]: Adjust 'install-info' phase to find all info files (including "*.info-N"). --- gnu/packages/qemu.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm index 3c48b7a278..e429c04244 100644 --- a/gnu/packages/qemu.scm +++ b/gnu/packages/qemu.scm @@ -119,7 +119,7 @@ (let ((infodir (string-append out "/share/info"))) (for-each (lambda (info) (install-file info infodir)) - (find-files "." "\\.info$")) + (find-files "." "\\.info")) #t)))))) (add-before 'check 'make-gtester-verbose (lambda _ -- cgit v1.2.3 From aaaf8b384492c84f99a6e47631dee06575dbcd2e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 11:10:42 +0100 Subject: gnu: qtractor: Update to 0.8.0. * gnu/packages/music.scm (qtractor): Update to 0.8.0. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 64e7455603..14839c1b6e 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1638,14 +1638,14 @@ computer's keyboard.") (define-public qtractor (package (name "qtractor") - (version "0.7.9") + (version "0.8.0") (source (origin (method url-fetch) (uri (string-append "http://downloads.sourceforge.net/qtractor/" "qtractor-" version ".tar.gz")) (sha256 (base32 - "0pp459kfgrnngj373gnwwl43xjz32lmyf7v62p2nnjh6c7wr1ryq")))) + "17v563liyqcvil204ry1qfp09d91944nqz2ig33f5c3pyg4z2427")))) (build-system gnu-build-system) (arguments `(#:tests? #f)) ; no "check" target (inputs -- cgit v1.2.3 From dead1067c3213429197ece3f5423230524ba9bd9 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 24 Nov 2016 20:22:25 +0100 Subject: gnu: hplip: Update to 3.16.11. * gnu/packages/cups.scm (hplip): Update to 3.16.11. --- gnu/packages/cups.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index 802accf6c6..0a8a10ecb4 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -317,14 +317,14 @@ device-specific programs to convert and print many types of files.") (define-public hplip (package (name "hplip") - (version "3.16.10") + (version "3.16.11") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/hplip/hplip/" version "/hplip-" version ".tar.gz")) (sha256 (base32 - "117f1p0splg51ljn4nn97c0mbl0jba440ahb3d8njq7p6h1lxd25")))) + "094vkyr0rjng72m13dgr824cdl7q20x23qjxzih4w7l9njn0rqpn")))) (build-system gnu-build-system) (home-page "http://hplipopensource.com/") (synopsis "HP Printer Drivers") -- cgit v1.2.3 From fc89cb691d5d56c121ee17277ee94c0d934240f0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 24 Nov 2016 20:22:25 +0100 Subject: gnu: lz4: Update to 1.7.4.2. * gnu/packages/compression.scm (lz4): Update to 1.7.4.2. --- gnu/packages/compression.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index b6c8604a23..bdf87562e4 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -603,24 +603,24 @@ writing of compressed data created with the zlib and bzip2 libraries.") (define-public lz4 (package (name "lz4") - (version "131") + (version "1.7.4.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/Cyan4973/lz4/archive/" - "r" version ".tar.gz")) + "v" version ".tar.gz")) (sha256 - (base32 "1vfg305zvj50hwscad24wan9jar6nqj14gdk2hqyr7bb9mhh0kcx")) + (base32 "0l39bymif15rmmfz7h6wvrr853rix4wj8wbqq8z8fm49xa7gx9fb")) (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) - (native-inputs `(("valgrind" ,valgrind))) + (native-inputs `(("valgrind" ,valgrind))) ; for tests (arguments `(#:test-target "test" #:parallel-tests? #f ; tests fail if run in parallel #:make-flags (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases - (delete 'configure)))) + (delete 'configure)))) ; no configure script (home-page "https://github.com/Cyan4973/lz4") (synopsis "Compression algorithm focused on speed") (description "LZ4 is a lossless compression algorithm, providing -- cgit v1.2.3 From d66cbd1adc799b08e66cd912822c6220499b4876 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 25 Nov 2016 17:00:51 +0100 Subject: gnu: btrfs-progs: Update to 4.8.4. * gnu/packages/linux.scm (btrfs-progs): Update to 4.8.4. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index e562213058..a4639bdd59 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2664,7 +2664,7 @@ and copy/paste text in the console and in xterm.") (define-public btrfs-progs (package (name "btrfs-progs") - (version "4.8.3") + (version "4.8.4") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -2672,7 +2672,7 @@ and copy/paste text in the console and in xterm.") "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "1wlflrygnpndppil9g12pk184f75g9qx1lkr0x1gijigglqhr9n1")))) + "1ib1ybpjhcymcycjiraz1vk01qlyvpwcg7mwfhmacdy3cvbfl9mz")))) (build-system gnu-build-system) (outputs '("out" "static")) ; static versions of binaries in "out" (~16MiB!) -- cgit v1.2.3 From c415f76302a4c4ba3d8f9279e0b5142f111b21af Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 25 Nov 2016 11:22:27 -0500 Subject: gnu: python-betamax: Fix typo. * gnu/packages/python.scm (python-betamax): Fix typo. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index ec672a5544..33ab81ac77 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -11312,7 +11312,7 @@ focus on building massively scalable web applications.") (arguments '(;; Many tests fail because they require networking. #:tests? #f)) - (progated-inputs + (propagated-inputs `(("python-requests" ,python-requests))) (home-page "https://github.com/sigmavirus24/betamax") (synopsis "Record HTTP interactions with python-requests") -- cgit v1.2.3 From 7276b5604d863d1de4f932c3a2e29e0fedaa3005 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 25 Nov 2016 21:43:17 +0100 Subject: gnu: hydrogen: Update to 0.9.7. * gnu/packages/music.scm (hydrogen): Update to 0.9.7. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 14839c1b6e..78ca558b2d 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -234,7 +234,7 @@ many input formats and provides a customisable Vi-style user interface.") (define-public hydrogen (package (name "hydrogen") - (version "0.9.6.1") + (version "0.9.7") (source (origin (method url-fetch) (uri (string-append @@ -242,7 +242,7 @@ many input formats and provides a customisable Vi-style user interface.") version ".tar.gz")) (sha256 (base32 - "0vxnaqfmcv7hhk0cj67imdcqngspnck7f0wfmvhfgfqa7x1xznll")))) + "1dy2jfkdw0nchars4xi4isrz66fqn53a9qk13bqza7lhmsg3s3qy")))) (build-system cmake-build-system) (arguments `(#:test-target "tests")) -- cgit v1.2.3 From 6634180f9eabc70cdc5bc8e9ce2ff0f9250625bc Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 25 Nov 2016 17:30:32 +0100 Subject: gnu: guile-ssh: Update to 0.10.2. * gnu/packages/ssh.scm (guile-ssh): Update to 0.10.2. [home-page]: Update. [source]: Use the 'url-fetch' method and a GitHub generated tarball. [arguments] : Remove now unneeded 'chmod' call. --- gnu/packages/ssh.scm | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 5fdeeb74a4..ea5ec811d1 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -204,24 +204,24 @@ Additionally, various channel-specific options can be negotiated.") (define-public guile-ssh (package (name "guile-ssh") - (version "0.10.1") + (version "0.10.2") + (home-page "https://github.com/artyom-poptsov/guile-ssh") (source (origin ;; ftp://memory-heap.org/software/guile-ssh/guile-ssh-VERSION.tar.gz ;; exists, but the server appears to be too slow and unreliable. - (method git-fetch) - (uri (git-reference - (url "https://github.com/artyom-poptsov/libguile-ssh.git") - (commit (string-append "v" version)))) - (file-name (string-append name "-" version "-checkout")) + ;; Also, using this URL allows the GitHub updater to work. + (method url-fetch) + (uri (string-append home-page "/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0ky77kr7rnkhbq938bir61mlr8b86lfjcjjb1bxx1y1fhimsiz72")))) + "0pkiq3fm15pr4w1r420rrwwfmi4jz492r6l6vzjk6v73xlyfyfl3")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (add-after 'unpack 'autoreconf (lambda* (#:key inputs #:allow-other-keys) - (chmod "doc/version.texi" #o777) ;make it writable (zero? (system* "autoreconf" "-vfi")))) (add-before 'build 'fix-libguile-ssh-file-name (lambda* (#:key outputs #:allow-other-keys) @@ -255,7 +255,6 @@ Additionally, various channel-specific options can be negotiated.") "Guile-SSH is a library that provides access to the SSH protocol for programs written in GNU Guile interpreter. It is a wrapper to the underlying libssh library.") - (home-page "https://github.com/artyom-poptsov/libguile-ssh") (license license:gpl3+))) (define-public corkscrew -- cgit v1.2.3 From 21531add3205e400707c8fbfd841845f9a71863a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 2 Mar 2014 22:39:48 +0100 Subject: offload: Use Guile-SSH instead of GNU lsh. * guix/scripts/offload.scm ()[ssh-options]: Remove. [host-key, host-key-type]: New fields. (%lsh-command, %lshg-command, user-lsh-private-key): Remove. (user-openssh-private-key, private-key-from-file*): New procedures. (host-key->type+key, open-ssh-session): New procedures. (remote-pipe): Remove 'mode' parameter. Rewrite in terms of 'open-ssh-session' etc. Update users. (send-files)[missing-files]: Rewrite using the bidirectional channel port. Remove call to 'call-with-compressed-output-port'. (retrieve-files): Remove call to 'call-with-decompressed-port'. (machine-load): Remove exit status logic. * doc/guix.texi (Requirements): Mention Guile-SSH. (Daemon Offload Setup): Document 'host-key' and 'private-key'. Show the default value on each @item line. * m4/guix.m4 (GUIX_CHECK_GUILE_SSH): New macro. * config-daemon.ac: Use 'GUIX_CHECK_GUILE_SSH'. Set 'HAVE_DAEMON_OFFLOAD_HOOK' as a function of that. --- config-daemon.ac | 18 ++- doc/guix.texi | 69 ++++++++---- guix/scripts/offload.scm | 279 ++++++++++++++++++++++------------------------- m4/guix.m4 | 18 +++ 4 files changed, 213 insertions(+), 171 deletions(-) diff --git a/config-daemon.ac b/config-daemon.ac index 8a3e6d8b60..056c939e39 100644 --- a/config-daemon.ac +++ b/config-daemon.ac @@ -128,12 +128,20 @@ if test "x$guix_build_daemon" = "xyes"; then dnl 'restore-file-set', which requires unbuffered custom binary input dnl ports from Guile >= 2.0.10.) GUIX_CHECK_UNBUFFERED_CBIP - guix_build_daemon_offload="$ac_cv_guix_cbips_support_setvbuf" - if test "x$guix_build_daemon_offload" = "xyes"; then - AC_DEFINE([HAVE_DAEMON_OFFLOAD_HOOK], [1], - [Define if the daemon's 'offload' build hook is being built.]) - fi + dnl Check for Guile-SSH, which is required by 'guix offload'. + GUIX_CHECK_GUILE_SSH + + case "x$ac_cv_guix_cbips_support_setvbuf$guix_cv_have_recent_guile_ssh" in + xyesyes) + guix_build_daemon_offload="yes" + AC_DEFINE([HAVE_DAEMON_OFFLOAD_HOOK], [1], + [Define if the daemon's 'offload' build hook is being built (requires Guile-SSH).]) + ;; + *) + guix_build_daemon_offload="no" + ;; + esac dnl Temporary directory used to store the daemon's data. GUIX_TEST_ROOT_DIRECTORY diff --git a/doc/guix.texi b/doc/guix.texi index ebb138e15d..f1cb007aa9 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -566,6 +566,12 @@ allow you to use the @command{guix import pypi} command (@pxref{Invoking guix import}). It is of interest primarily for developers and not for casual users. +@item +@c Note: We need at least 0.10.2 for 'channel-send-eof'. +Support for build offloading (@pxref{Daemon Offload Setup}) depends on +@uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}, +version 0.10.2 or later. + @item When @url{http://zlib.net, zlib} is available, @command{guix publish} can compress build byproducts (@pxref{Invoking guix publish}). @@ -814,9 +820,11 @@ available on the system---making it much harder to view them as @cindex offloading @cindex build hook -When desired, the build daemon can @dfn{offload} -derivation builds to other machines -running Guix, using the @code{offload} @dfn{build hook}. When that +When desired, the build daemon can @dfn{offload} derivation builds to +other machines running Guix, using the @code{offload} @dfn{build +hook}@footnote{This feature is available only when +@uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is +present.}. When that feature is enabled, a list of user-specified build machines is read from @file{/etc/guix/machines.scm}; every time a build is requested, for instance via @code{guix build}, the daemon attempts to offload it to one @@ -832,16 +840,18 @@ The @file{/etc/guix/machines.scm} file typically looks like this: (list (build-machine (name "eightysix.example.org") (system "x86_64-linux") + (host-key "ssh-ed25519 AAAAC3Nza@dots{}") (user "bob") - (speed 2.)) ; incredibly fast! + (speed 2.)) ;incredibly fast! (build-machine (name "meeps.example.org") (system "mips64el-linux") + (host-key "ssh-rsa AAAAB3Nza@dots{}") (user "alice") (private-key (string-append (getenv "HOME") - "/.lsh/identity-for-guix")))) + "/.ssh/identity-for-guix")))) @end example @noindent @@ -875,31 +885,50 @@ The user account to use when connecting to the remote machine over SSH. Note that the SSH key pair must @emph{not} be passphrase-protected, to allow non-interactive logins. +@item host-key +This must be the machine's SSH @dfn{public host key} in OpenSSH format. +This is used to authenticate the machine when we connect to it. It is a +long string that looks like this: + +@example +ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org +@end example + +If the machine is running the OpenSSH daemon, @command{sshd}, the host +key can be found in a file such as +@file{/etc/ssh/ssh_host_ed25519_key.pub}. + +If the machine is running the SSH daemon of GNU@tie{}lsh, +@command{lshd}, the host key is in @file{/etc/lsh/host-key.pub} or a +similar file. It can be converted to the OpenSSH format using +@command{lsh-export-key} (@pxref{Converting keys,,, lsh, LSH Manual}): + +@example +$ lsh-export-key --openssh < /etc/lsh/host-key.pub +ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{} +@end example + @end table A number of optional fields may be specified: -@table @code - -@item port -Port number of SSH server on the machine (default: 22). +@table @asis -@item private-key -The SSH private key file to use when connecting to the machine. +@item @code{port} (default: @code{22}) +Port number of SSH server on the machine. -Currently offloading uses GNU@tie{}lsh as its SSH client -(@pxref{Invoking lsh,,, GNU lsh Manual}). Thus, the key file here must -be an lsh key file. This may change in the future, though. +@item @code{private-key} (default: @file{~/.ssh/id_rsa}) +The SSH private key file to use when connecting to the machine, in +OpenSSH format. -@item parallel-builds -The number of builds that may run in parallel on the machine (1 by -default.) +@item @code{parallel-builds} (default: @code{1}) +The number of builds that may run in parallel on the machine. -@item speed +@item @code{speed} (default: @code{1.0}) A ``relative speed factor''. The offload scheduler will tend to prefer machines with a higher speed factor. -@item features +@item @code{features} (default: @code{'()}) A list of strings denoting specific features supported by the machine. An example is @code{"kvm"} for machines that have the KVM Linux modules and corresponding hardware support. Derivations can request features by @@ -915,7 +944,7 @@ machines, since offloading works by invoking the @code{guix archive} and this is the case by running: @example -lsh build-machine guile -c "'(use-modules (guix config))'" +ssh build-machine guile -c "'(use-modules (guix config))'" @end example There is one last thing to do once @file{machines.scm} is in place. As diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm index 33d141e7ef..327c99dfea 100644 --- a/guix/scripts/offload.scm +++ b/guix/scripts/offload.scm @@ -17,6 +17,10 @@ ;;; along with GNU Guix. If not, see . (define-module (guix scripts offload) + #:use-module (ssh key) + #:use-module (ssh auth) + #:use-module (ssh session) + #:use-module (ssh channel) #:use-module (guix config) #:use-module (guix records) #:use-module (guix store) @@ -65,14 +69,13 @@ (system build-machine-system) ; string (user build-machine-user) ; string (private-key build-machine-private-key ; file name - (default (user-lsh-private-key))) + (default (user-openssh-private-key))) + (host-key build-machine-host-key) ; string (parallel-builds build-machine-parallel-builds ; number (default 1)) (speed build-machine-speed ; inexact real (default 1.0)) (features build-machine-features ; list of strings - (default '())) - (ssh-options build-machine-ssh-options ; list of strings (default '()))) (define-record-type* @@ -86,19 +89,11 @@ ;; File that lists machines available as build slaves. (string-append %config-directory "/machines.scm")) -(define %lsh-command - "lsh") - -(define %lshg-command - ;; FIXME: 'lshg' fails to pass large amounts of data, see - ;; . - "lsh") - -(define (user-lsh-private-key) - "Return the user's default lsh private key, or #f if it could not be +(define (user-openssh-private-key) + "Return the user's default SSH private key, or #f if it could not be determined." (and=> (getenv "HOME") - (cut string-append <> "/.lsh/identity"))) + (cut string-append <> "/.ssh/id_rsa"))) (define %user-module ;; Module in which the machine description file is loaded. @@ -134,60 +129,79 @@ determined." (leave (_ "failed to load machine file '~a': ~s~%") file args)))))) -;;; FIXME: The idea was to open the connection to MACHINE once for all, but -;;; lshg is currently non-functional. -;; (define (open-ssh-gateway machine) -;; "Initiate an SSH connection gateway to MACHINE, and return the PID of the -;; running lsh gateway upon success, or #f on failure." -;; (catch 'system-error -;; (lambda () -;; (let* ((port (open-pipe* OPEN_READ %lsh-command -;; "-l" (build-machine-user machine) -;; "-i" (build-machine-private-key machine) -;; ;; XXX: With lsh 2.1, passing '--write-pid' -;; ;; last causes the PID not to be printed. -;; "--write-pid" "--gateway" "--background" -;; (build-machine-name machine))) -;; (line (read-line port)) -;; (status (close-pipe port))) -;; (if (zero? status) -;; (let ((pid (string->number line))) -;; (if (integer? pid) -;; pid -;; (begin -;; (warning (_ "'~a' did not write its PID on stdout: ~s~%") -;; %lsh-command line) -;; #f))) -;; (begin -;; (warning (_ "failed to initiate SSH connection to '~a':\ -;; '~a' exited with ~a~%") -;; (build-machine-name machine) -;; %lsh-command -;; (status:exit-val status)) -;; #f)))) -;; (lambda args -;; (leave (_ "failed to execute '~a': ~a~%") -;; %lsh-command (strerror (system-error-errno args)))))) - -(define-syntax with-error-to-port - (syntax-rules () - ((_ port exp0 exp ...) - (let ((new port) - (old (current-error-port))) - (dynamic-wind - (lambda () - (set-current-error-port new)) - (lambda () - exp0 exp ...) - (lambda () - (set-current-error-port old))))))) - -(define* (remote-pipe machine mode command - #:key (error-port (current-error-port)) (quote? #t)) - "Run COMMAND (a string list) on MACHINE, assuming an lsh gateway has been -set up. When QUOTE? is true, perform shell-quotation of all the elements of -COMMAND. Return either a pipe opened with MODE, or #f if the lsh client could -not be started." +(define (host-key->type+key host-key) + "Destructure HOST-KEY, an OpenSSH host key string, and return two values: +its key type as a symbol, and the actual base64-encoded string." + (define (type->symbol type) + (and (string-prefix? "ssh-" type) + (string->symbol (string-drop type 4)))) + + (match (string-tokenize host-key) + ((type key _) + (values (type->symbol type) key)) + ((type key) + (values (type->symbol type) key)))) + +(define (private-key-from-file* file) + "Like 'private-key-from-file', but raise an error that 'with-error-handling' +can interpret meaningfully." + (catch 'guile-ssh-error + (lambda () + (private-key-from-file file)) + (lambda (key proc str . rest) + (raise (condition + (&message (message (format #f (_ "failed to load SSH \ +private key from '~a': ~a") + file str)))))))) + +(define (open-ssh-session machine) + "Open an SSH session for MACHINE and return it. Throw an error on failure." + (let ((private (private-key-from-file* (build-machine-private-key machine))) + (public (public-key-from-file + (string-append (build-machine-private-key machine) + ".pub"))) + (session (make-session #:user (build-machine-user machine) + #:host (build-machine-name machine) + #:port (build-machine-port machine) + #:timeout 5 ;seconds + ;; #:log-verbosity 'protocol + #:identity (build-machine-private-key machine) + + ;; We need lightweight compression when + ;; exchanging full archives. + #:compression "zlib" + #:compression-level 3))) + (connect! session) + + ;; Authenticate the server. XXX: Guile-SSH 0.10.1 doesn't know about + ;; ed25519 keys and 'get-key-type' returns #f in that case. + (let-values (((server) (get-server-public-key session)) + ((type key) (host-key->type+key + (build-machine-host-key machine)))) + (unless (and (or (not (get-key-type server)) + (eq? (get-key-type server) type)) + (string=? (public-key->string server) key)) + ;; Key mismatch: something's wrong. XXX: It could be that the server + ;; provided its Ed25519 key when we where expecting its RSA key. + (leave (_ "server at '~a' returned host key '~a' of type '~a' \ +instead of '~a' of type '~a'~%") + (build-machine-name machine) + (public-key->string server) (get-key-type server) + key type))) + + (let ((auth (userauth-public-key! session private))) + (unless (eq? 'success auth) + (disconnect! session) + (leave (_ "SSH public key authentication failed for '~a': ~a~%") + (build-machine-name machine) (get-error session)))) + + session)) + +(define* (remote-pipe machine command + #:key (quote? #t)) + "Run COMMAND (a list) on MACHINE, and return an open input/output port, +which is also an SSH channel. When QUOTE? is true, perform shell-quotation of +all the elements of COMMAND." (define (shell-quote str) ;; Sort-of shell-quote STR so it can be passed as an argument to the ;; shell. @@ -195,20 +209,15 @@ not be started." (lambda () (write str)))) - ;; Let the child inherit ERROR-PORT. - (with-error-to-port error-port - (apply open-pipe* mode %lshg-command - "-l" (build-machine-user machine) - "-p" (number->string (build-machine-port machine)) - - ;; XXX: Remove '-i' when %LSHG-COMMAND really is lshg. - "-i" (build-machine-private-key machine) - - (append (build-machine-ssh-options machine) - (list (build-machine-name machine)) - (if quote? - (map shell-quote command) - command))))) + ;; TODO: Use (ssh popen) instead. + (let* ((session (open-ssh-session machine)) + (channel (make-channel session))) + (channel-open-session channel) + (channel-request-exec channel + (string-join (if quote? + (map shell-quote command) + command))) + channel)) ;;; @@ -335,10 +344,11 @@ hook." (unless (= EEXIST (system-error-errno args)) (apply throw args))))))) - (let ((pipe (remote-pipe machine OPEN_READ + (let ((pipe (remote-pipe machine `("guile" "-c" ,(object->string script))))) (read-string pipe) - (let ((status (close-pipe pipe))) + (let ((status (channel-get-exit-status pipe))) + (close-port pipe) (unless (zero? status) ;; Better be safe than sorry: if we ignore the error here, then FILE ;; may be GC'd just before we start using it. @@ -367,10 +377,10 @@ hook." (false-if-exception (delete-file file))) roots))))) - (let ((pipe (remote-pipe machine OPEN_READ + (let ((pipe (remote-pipe machine `("guile" "-c" ,(object->string script))))) (read-string pipe) - (close-pipe pipe))) + (close-port pipe))) (define* (offload drv machine #:key print-build-trace? (max-silent-time 3600) @@ -384,7 +394,7 @@ there, and write the build log to LOG-PORT. Return the exit status." ;; Normally DRV has already been protected from GC when it was transferred. ;; The '-r' flag below prevents the build result from being GC'd. - (let ((pipe (remote-pipe machine OPEN_READ + (let ((pipe (remote-pipe machine `("guix" "build" "-r" ,%gc-root-file ,(format #f "--max-silent-time=~a" @@ -397,14 +407,20 @@ there, and write the build log to LOG-PORT. Return the exit status." ;; Since 'guix build' writes the build log to its ;; stderr, everything will go directly to LOG-PORT. - #:error-port log-port))) + ;; #:error-port log-port ;; FIXME + ))) + ;; Make standard error visible. + (channel-set-stream! pipe 'stderr) + (let loop ((line (read-line pipe))) (unless (eof-object? line) (display line log-port) (newline log-port) (loop (read-line pipe)))) - (close-pipe pipe))) + (let loop ((status (channel-get-exit-status pipe))) + (close-port pipe) + status))) (define* (transfer-and-offload drv machine #:key @@ -438,7 +454,7 @@ MACHINE." with exit code ~a~%" (derivation-file-name drv) (build-machine-name machine) - (status:exit-val status)) + status) ;; Use exit code 100 for a permanent build failure. The daemon ;; interprets other non-zero codes as transient build failures. @@ -448,24 +464,14 @@ with exit code ~a~%" "Send the subset of FILES that's missing to MACHINE's store. Return #t on success, #f otherwise." (define (missing-files files) - ;; Return the subset of FILES not already on MACHINE. - (let*-values (((files) - (format #f "~{~a~%~}" files)) - ((missing pids) - (filtered-port - (append (list (which %lshg-command) - "-l" (build-machine-user machine) - "-p" (number->string - (build-machine-port machine)) - "-i" (build-machine-private-key machine)) - (build-machine-ssh-options machine) - (cons (build-machine-name machine) - '("guix" "archive" "--missing"))) - (open-input-string files))) - ((result) - (read-string missing))) - (for-each waitpid pids) - (string-tokenize result))) + ;; Return the subset of FILES not already on MACHINE. Use 'head' as a + ;; hack to make sure the remote end stops reading when we're done. + (let* ((pipe (remote-pipe machine + `("guix" "archive" "--missing") + #:quote? #f))) + (format pipe "~{~a~%~}" files) + (channel-send-eof pipe) + (string-tokenize (read-string pipe)))) (with-store store (guard (c ((nix-protocol-error? c) @@ -476,40 +482,28 @@ success, #f otherwise." ;; Compute the subset of FILES missing on MACHINE, and send them in ;; topologically sorted order so that they can actually be imported. - ;; - ;; To reduce load on the machine that's offloading (since it's typically - ;; already quite busy, see hydra.gnu.org), compress with gzip rather - ;; than xz: For a compression ratio 2 times larger, it is 20 times - ;; faster. (let* ((files (missing-files (topologically-sorted store files))) - (pipe (remote-pipe machine OPEN_WRITE - '("gzip" "-dc" "|" - "guix" "archive" "--import") + (pipe (remote-pipe machine + '("guix" "archive" "--import") #:quote? #f))) (format #t (_ "sending ~a store files to '~a'...~%") (length files) (build-machine-name machine)) - (call-with-compressed-output-port 'gzip pipe - (lambda (compressed) - (catch 'system-error - (lambda () - (export-paths store files compressed)) - (lambda args - (warning (_ "failed while exporting files to '~a': ~a~%") - (build-machine-name machine) - (strerror (system-error-errno args)))))) - #:options '("--fast")) - - ;; Wait for the 'lsh' process to complete. - (zero? (close-pipe pipe)))))) + + (export-paths store files pipe) + (channel-send-eof pipe) + + ;; Wait for the remote process to complete. + (let ((status (channel-get-exit-status pipe))) + (close pipe) + status))))) (define (retrieve-files files machine) "Retrieve FILES from MACHINE's store, and import them." (define host (build-machine-name machine)) - (let ((pipe (remote-pipe machine OPEN_READ - `("guix" "archive" "--export" ,@files - "|" "xz" "-c") + (let ((pipe (remote-pipe machine + `("guix" "archive" "--export" ,@files) #:quote? #f))) (and pipe (with-store store @@ -522,14 +516,11 @@ success, #f otherwise." ;; We cannot use the 'import-paths' RPC here because we already ;; hold the locks for FILES. - (call-with-decompressed-port 'xz pipe - (lambda (decompressed) - (restore-file-set decompressed - #:log-port (current-error-port) - #:lock? #f))) + (restore-file-set pipe + #:log-port (current-error-port) + #:lock? #f) - ;; Wait for the 'lsh' process to complete. - (zero? (close-pipe pipe))))))) + (close-port pipe)))))) ;;; @@ -547,13 +538,9 @@ success, #f otherwise." (define (machine-load machine) "Return the load of MACHINE, divided by the number of parallel builds allowed on MACHINE." - (let* ((pipe (remote-pipe machine OPEN_READ `("cat" "/proc/loadavg"))) - (line (read-line pipe)) - (status (close-pipe pipe))) - (unless (eqv? 0 (status:exit-val status)) - (warning (_ "failed to obtain load of '~a': SSH client exited with ~a~%") - (build-machine-name machine) - (status:exit-val status))) + (let* ((pipe (remote-pipe machine '("cat" "/proc/loadavg"))) + (line (read-line pipe))) + (close-port pipe) (if (eof-object? line) +inf.0 ;MACHINE does not respond, so assume it is infinitely loaded diff --git a/m4/guix.m4 b/m4/guix.m4 index 6d8ec2e4e0..6630598416 100644 --- a/m4/guix.m4 +++ b/m4/guix.m4 @@ -171,6 +171,24 @@ AC_DEFUN([GUIX_CHECK_UNBUFFERED_CBIP], [ fi]) ]) +dnl GUIX_CHECK_GUILE_SSH +dnl +dnl Check whether a recent-enough Guile-SSH is available. +AC_DEFUN([GUIX_CHECK_GUILE_SSH], [ + dnl Check whether 'channel-send-eof' (introduced in 0.10.2) is present. + AC_CACHE_CHECK([whether Guile-SSH is available and recent enough], + [guix_cv_have_recent_guile_ssh], + [GUILE_CHECK([retval], + [(and (@ (ssh channel) channel-send-eof) + (@ (ssh popen) open-remote-pipe) + (@ (ssh dist node) node-eval))]) + if test "$retval" = 0; then + guix_cv_have_recent_guile_ssh="yes" + else + guix_cv_have_recent_guile_ssh="no" + fi]) +]) + dnl GUIX_TEST_ROOT_DIRECTORY AC_DEFUN([GUIX_TEST_ROOT_DIRECTORY], [ AC_CACHE_CHECK([for unit test root directory], -- cgit v1.2.3 From 9e76eed37fc4cb0f70c1cc1441dfba92b25c33eb Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 2 Nov 2016 12:00:47 +0100 Subject: offload: Reuse SSH session during 'transfer-and-offload'. * guix/scripts/offload.scm (remote-pipe): Replace 'machine' parameter with 'session'. Remove 'open-ssh-session' call. (register-gc-root): Replace 'machine' with 'session'. Use ' session-get' instead of 'build-machine-name'. (remove-gc-roots, offload, send-files, retrieve-files): Likewise. (transfer-and-offload): Add 'open-ssh-session' call. Handle 'offload' errors here. (machine-load): Add call to 'open-ssh-session'. --- guix/scripts/offload.scm | 84 +++++++++++++++++++++++++----------------------- 1 file changed, 43 insertions(+), 41 deletions(-) diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm index 327c99dfea..8704743a7f 100644 --- a/guix/scripts/offload.scm +++ b/guix/scripts/offload.scm @@ -197,9 +197,9 @@ instead of '~a' of type '~a'~%") session)) -(define* (remote-pipe machine command +(define* (remote-pipe session command #:key (quote? #t)) - "Run COMMAND (a list) on MACHINE, and return an open input/output port, + "Run COMMAND (a list) on SESSION, and return an open input/output port, which is also an SSH channel. When QUOTE? is true, perform shell-quotation of all the elements of COMMAND." (define (shell-quote str) @@ -209,9 +209,7 @@ all the elements of COMMAND." (lambda () (write str)))) - ;; TODO: Use (ssh popen) instead. - (let* ((session (open-ssh-session machine)) - (channel (make-channel session))) + (let* ((channel (make-channel session))) (channel-open-session channel) (channel-request-exec channel (string-join (if quote? @@ -312,8 +310,9 @@ hook." ;; File name of the temporary GC root we install. (format #f "offload-~a-~a" (gethostname) (getpid))) -(define (register-gc-root file machine) - "Mark FILE, a store item, as a garbage collector root on MACHINE." +(define (register-gc-root file session) + "Mark FILE, a store item, as a garbage collector root in SESSION. Return +the exit status, zero on success." (define script `(begin (use-modules (guix config)) @@ -344,7 +343,7 @@ hook." (unless (= EEXIST (system-error-errno args)) (apply throw args))))))) - (let ((pipe (remote-pipe machine + (let ((pipe (remote-pipe session `("guile" "-c" ,(object->string script))))) (read-string pipe) (let ((status (channel-get-exit-status pipe))) @@ -353,10 +352,10 @@ hook." ;; Better be safe than sorry: if we ignore the error here, then FILE ;; may be GC'd just before we start using it. (leave (_ "failed to register GC root for '~a' on '~a' (status: ~a)~%") - file (build-machine-name machine) status))))) + file (session-get session 'host) status))))) -(define (remove-gc-roots machine) - "Remove from MACHINE the GC roots previously installed with +(define (remove-gc-roots session) + "Remove in SESSION the GC roots previously installed with 'register-gc-root'." (define script `(begin @@ -377,24 +376,19 @@ hook." (false-if-exception (delete-file file))) roots))))) - (let ((pipe (remote-pipe machine + (let ((pipe (remote-pipe session `("guile" "-c" ,(object->string script))))) (read-string pipe) (close-port pipe))) -(define* (offload drv machine +(define* (offload drv session #:key print-build-trace? (max-silent-time 3600) build-timeout (log-port (build-log-port))) - "Perform DRV on MACHINE, assuming DRV and its prerequisites are available + "Perform DRV in SESSION, assuming DRV and its prerequisites are available there, and write the build log to LOG-PORT. Return the exit status." - (format (current-error-port) "offloading '~a' to '~a'...~%" - (derivation-file-name drv) (build-machine-name machine)) - (format (current-error-port) "@ build-remote ~a ~a~%" - (derivation-file-name drv) (build-machine-name machine)) - ;; Normally DRV has already been protected from GC when it was transferred. ;; The '-r' flag below prevents the build result from being GC'd. - (let ((pipe (remote-pipe machine + (let ((pipe (remote-pipe session `("guix" "build" "-r" ,%gc-root-file ,(format #f "--max-silent-time=~a" @@ -432,23 +426,31 @@ there, and write the build log to LOG-PORT. Return the exit status." "Offload DRV to MACHINE. Prior to the actual offloading, transfer all of INPUTS to MACHINE; if building DRV succeeds, retrieve all of OUTPUTS from MACHINE." + (define session + (open-ssh-session machine)) + (when (begin - (register-gc-root (derivation-file-name drv) machine) + (register-gc-root (derivation-file-name drv) session) (send-files (cons (derivation-file-name drv) inputs) - machine)) - (let ((status (offload drv machine + session)) + (format (current-error-port) "offloading '~a' to '~a'...~%" + (derivation-file-name drv) (build-machine-name machine)) + (format (current-error-port) "@ build-remote ~a ~a~%" + (derivation-file-name drv) (build-machine-name machine)) + + (let ((status (offload drv session #:print-build-trace? print-build-trace? #:max-silent-time max-silent-time #:build-timeout build-timeout))) (if (zero? status) (begin - (retrieve-files outputs machine) - (remove-gc-roots machine) + (retrieve-files outputs session) + (remove-gc-roots session) (format (current-error-port) "done with offloaded '~a'~%" (derivation-file-name drv))) (begin - (remove-gc-roots machine) + (remove-gc-roots session) (format (current-error-port) "derivation '~a' offloaded to '~a' failed \ with exit code ~a~%" @@ -460,13 +462,13 @@ with exit code ~a~%" ;; interprets other non-zero codes as transient build failures. (primitive-exit 100)))))) -(define (send-files files machine) - "Send the subset of FILES that's missing to MACHINE's store. Return #t on +(define (send-files files session) + "Send the subset of FILES that's missing to SESSION's store. Return #t on success, #f otherwise." (define (missing-files files) - ;; Return the subset of FILES not already on MACHINE. Use 'head' as a + ;; Return the subset of FILES not already on SESSION. Use 'head' as a ;; hack to make sure the remote end stops reading when we're done. - (let* ((pipe (remote-pipe machine + (let* ((pipe (remote-pipe session `("guix" "archive" "--missing") #:quote? #f))) (format pipe "~{~a~%~}" files) @@ -476,18 +478,17 @@ success, #f otherwise." (with-store store (guard (c ((nix-protocol-error? c) (warning (_ "failed to export files for '~a': ~s~%") - (build-machine-name machine) - c) + (session-get session 'host) c) #f)) - ;; Compute the subset of FILES missing on MACHINE, and send them in + ;; Compute the subset of FILES missing on SESSION, and send them in ;; topologically sorted order so that they can actually be imported. (let* ((files (missing-files (topologically-sorted store files))) - (pipe (remote-pipe machine + (pipe (remote-pipe session '("guix" "archive" "--import") #:quote? #f))) (format #t (_ "sending ~a store files to '~a'...~%") - (length files) (build-machine-name machine)) + (length files) (session-get session 'host)) (export-paths store files pipe) (channel-send-eof pipe) @@ -497,12 +498,12 @@ success, #f otherwise." (close pipe) status))))) -(define (retrieve-files files machine) - "Retrieve FILES from MACHINE's store, and import them." +(define (retrieve-files files session) + "Retrieve FILES from SESSION's store, and import them." (define host - (build-machine-name machine)) + (session-get session 'host)) - (let ((pipe (remote-pipe machine + (let ((pipe (remote-pipe session `("guix" "archive" "--export" ,@files) #:quote? #f))) (and pipe @@ -538,8 +539,9 @@ success, #f otherwise." (define (machine-load machine) "Return the load of MACHINE, divided by the number of parallel builds allowed on MACHINE." - (let* ((pipe (remote-pipe machine '("cat" "/proc/loadavg"))) - (line (read-line pipe))) + (let* ((session (open-ssh-session machine)) + (pipe (remote-pipe session '("cat" "/proc/loadavg"))) + (line (read-line pipe))) (close-port pipe) (if (eof-object? line) -- cgit v1.2.3 From 6230d6f04f4bde9ad834f97c5c950db89dde0496 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 2 Nov 2016 22:50:31 +0100 Subject: store: 'open-connection' can taken an open port. * guix/store.scm (open-unix-domain-socket): New procedure. (open-connection): Add #:port parameter and honor it. --- guix/store.scm | 58 +++++++++++++++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/guix/store.scm b/guix/store.scm index 7f54b87db1..689a94c636 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -345,50 +345,58 @@ (message nix-protocol-error-message) (status nix-protocol-error-status)) -(define* (open-connection #:optional (file (%daemon-socket-file)) - #:key (reserve-space? #t) cpu-affinity) - "Connect to the daemon over the Unix-domain socket at FILE. When -RESERVE-SPACE? is true, instruct it to reserve a little bit of extra space on -the file system so that the garbage collector can still operate, should the -disk become full. When CPU-AFFINITY is true, it must be an integer -corresponding to an OS-level CPU number to which the daemon's worker process -for this connection will be pinned. Return a server object." +(define (open-unix-domain-socket file) + "Connect to the Unix-domain socket at FILE and return it. Raise a +'&nix-connection-error' upon error." (let ((s (with-fluids ((%default-port-encoding #f)) ;; This trick allows use of the `scm_c_read' optimization. (socket PF_UNIX SOCK_STREAM 0))) (a (make-socket-address PF_UNIX file))) (catch 'system-error - (cut connect s a) + (lambda () + (connect s a) + s) (lambda args ;; Translate the error to something user-friendly. (let ((errno (system-error-errno args))) (raise (condition (&nix-connection-error (file file) - (errno errno))))))) + (errno errno))))))))) - (write-int %worker-magic-1 s) - (let ((r (read-int s))) +(define* (open-connection #:optional (file (%daemon-socket-file)) + #:key port (reserve-space? #t) cpu-affinity) + "Connect to the daemon over the Unix-domain socket at FILE, or, if PORT is +not #f, use it as the I/O port over which to communicate to a build daemon. + +When RESERVE-SPACE? is true, instruct it to reserve a little bit of extra +space on the file system so that the garbage collector can still operate, +should the disk become full. When CPU-AFFINITY is true, it must be an integer +corresponding to an OS-level CPU number to which the daemon's worker process +for this connection will be pinned. Return a server object." + (let ((port (or port (open-unix-domain-socket file)))) + (write-int %worker-magic-1 port) + (let ((r (read-int port))) (and (eqv? r %worker-magic-2) - (let ((v (read-int s))) + (let ((v (read-int port))) (and (eqv? (protocol-major %protocol-version) (protocol-major v)) (begin - (write-int %protocol-version s) + (write-int %protocol-version port) (when (>= (protocol-minor v) 14) - (write-int (if cpu-affinity 1 0) s) + (write-int (if cpu-affinity 1 0) port) (when cpu-affinity - (write-int cpu-affinity s))) + (write-int cpu-affinity port))) (when (>= (protocol-minor v) 11) - (write-int (if reserve-space? 1 0) s)) - (let ((s (%make-nix-server s - (protocol-major v) - (protocol-minor v) - (make-hash-table 100) - (make-hash-table 100)))) - (let loop ((done? (process-stderr s))) - (or done? (process-stderr s))) - s)))))))) + (write-int (if reserve-space? 1 0) port)) + (let ((conn (%make-nix-server port + (protocol-major v) + (protocol-minor v) + (make-hash-table 100) + (make-hash-table 100)))) + (let loop ((done? (process-stderr conn))) + (or done? (process-stderr conn))) + conn)))))))) (define (close-connection server) "Close the connection to SERVER." -- cgit v1.2.3 From e8a5db80d5fe2e603d7b72c3b3cc5ba6ea6d99d9 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 5 Nov 2016 00:46:04 +0100 Subject: offload: Remove 'with-nar-error-handling' macro. * guix/scripts/offload.scm (with-nar-error-handling): Remove. (guix-offload): Use 'with-error-handling' instead. --- guix/scripts/offload.scm | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm index 8704743a7f..35286ab9d5 100644 --- a/guix/scripts/offload.scm +++ b/guix/scripts/offload.scm @@ -664,17 +664,6 @@ defines a total order on machines.)" ;; Not now, all the machines are busy. (display "# postpone\n"))))))) -(define-syntax-rule (with-nar-error-handling body ...) - "Execute BODY with any &nar-error suitably reported to the user." - (guard (c ((nar-error? c) - (let ((file (nar-error-file c))) - (if (condition-has-type? c &message) - (leave (_ "while importing file '~a': ~a~%") - file (gettext (condition-message c))) - (leave (_ "failed to import file '~a'~%") - file))))) - body ...)) - ;;; ;;; Entry point. @@ -705,7 +694,7 @@ defines a total order on machines.)" (cond ((regexp-exec request-line-rx line) => (lambda (match) - (with-nar-error-handling + (with-error-handling (process-request (equal? (match:substring match 1) "1") (match:substring match 2) ; system (call-with-input-file -- cgit v1.2.3 From cf283dd92eb5ef2dee4b761bb23f6dca2525cd55 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 5 Nov 2016 00:47:34 +0100 Subject: offload: Rewrite to make direct RPCs to the remote daemon. * guix/scripts/offload.scm ()[daemon-socket]: New field. (connect-to-remote-daemon): New procedure. (%gc-root-file, register-gc-root, remove-gc-roots, offload): Remove. (transfer-and-offload): Rewrite using 'connect-to-remote-daemon' and RPCs over SSH. (store-import-channel, store-export-channel): New procedures. (send-files, retrieve-files): Rewrite using these. --- doc/guix.texi | 4 + guix/scripts/offload.scm | 371 ++++++++++++++++++++++------------------------- 2 files changed, 175 insertions(+), 200 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index f1cb007aa9..b8e37055e6 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -921,6 +921,10 @@ Port number of SSH server on the machine. The SSH private key file to use when connecting to the machine, in OpenSSH format. +@item @code{daemon-socket} (default: @code{"/var/guix/daemon-socket/socket"}) +File name of the Unix-domain socket @command{guix-daemon} is listening +to on that machine. + @item @code{parallel-builds} (default: @code{1}) The number of builds that may run in parallel on the machine. diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm index 35286ab9d5..1821bb5b7a 100644 --- a/guix/scripts/offload.scm +++ b/guix/scripts/offload.scm @@ -21,6 +21,9 @@ #:use-module (ssh auth) #:use-module (ssh session) #:use-module (ssh channel) + #:use-module (ssh popen) + #:use-module (ssh dist) + #:use-module (ssh dist node) #:use-module (guix config) #:use-module (guix records) #:use-module (guix store) @@ -71,6 +74,8 @@ (private-key build-machine-private-key ; file name (default (user-openssh-private-key))) (host-key build-machine-host-key) ; string + (daemon-socket build-machine-daemon-socket ; string + (default "/var/guix/daemon-socket/socket")) (parallel-builds build-machine-parallel-builds ; number (default 1)) (speed build-machine-speed ; inexact real @@ -197,6 +202,53 @@ instead of '~a' of type '~a'~%") session)) +(define* (connect-to-remote-daemon session + #:optional + (socket-name "/var/guix/daemon-socket/socket")) + "Connect to the remote build daemon listening on SOCKET-NAME over SESSION, +an SSH session. Return a object." + (define redirect + ;; Code run in SESSION to redirect the remote process' stdin/stdout to the + ;; daemon's socket, à la socat. The SSH protocol supports forwarding to + ;; Unix-domain sockets but libssh doesn't have an API for that, hence this + ;; hack. + `(begin + (use-modules (ice-9 match) (rnrs io ports)) + + (let ((sock (socket AF_UNIX SOCK_STREAM 0)) + (stdin (current-input-port)) + (stdout (current-output-port))) + (setvbuf stdin _IONBF) + (setvbuf stdout _IONBF) + (connect sock AF_UNIX ,socket-name) + + (let loop () + (match (select (list stdin sock) '() (list stdin stdout sock)) + ((reads writes ()) + (when (memq stdin reads) + (match (get-bytevector-some stdin) + ((? eof-object?) + (primitive-exit 0)) + (bv + (put-bytevector sock bv)))) + (when (memq sock reads) + (match (get-bytevector-some sock) + ((? eof-object?) + (primitive-exit 0)) + (bv + (put-bytevector stdout bv)))) + (loop)) + (_ + (primitive-exit 1))))))) + + (let ((channel + (open-remote-pipe* session OPEN_BOTH + ;; Sort-of shell-quote REDIRECT. + "guile" "-c" + (object->string + (object->string redirect))))) + (open-connection #:port channel))) + (define* (remote-pipe session command #:key (quote? #t)) "Run COMMAND (a list) on SESSION, and return an open input/output port, @@ -306,116 +358,6 @@ hook." (set-port-revealed! port 1) port)) -(define %gc-root-file - ;; File name of the temporary GC root we install. - (format #f "offload-~a-~a" (gethostname) (getpid))) - -(define (register-gc-root file session) - "Mark FILE, a store item, as a garbage collector root in SESSION. Return -the exit status, zero on success." - (define script - `(begin - (use-modules (guix config)) - - ;; Note: we can't use 'add-indirect-root' because dangling links under - ;; gcroots/auto are automatically deleted by the GC. This strategy - ;; doesn't have this problem, but it requires write access to that - ;; directory. - (let ((root-directory (string-append %state-directory - "/gcroots/tmp"))) - (catch 'system-error - (lambda () - (mkdir root-directory)) - (lambda args - (unless (= EEXIST (system-error-errno args)) - (error "failed to create remote GC root directory" - root-directory (system-error-errno args))))) - - (catch 'system-error - (lambda () - (symlink ,file - (string-append root-directory "/" ,%gc-root-file))) - (lambda args - ;; If FILE already exists, we can assume that either it's a stale - ;; reference (which is fine), or another process is already - ;; building the derivation represented by FILE (which is fine - ;; too.) Thus, do nothing in that case. - (unless (= EEXIST (system-error-errno args)) - (apply throw args))))))) - - (let ((pipe (remote-pipe session - `("guile" "-c" ,(object->string script))))) - (read-string pipe) - (let ((status (channel-get-exit-status pipe))) - (close-port pipe) - (unless (zero? status) - ;; Better be safe than sorry: if we ignore the error here, then FILE - ;; may be GC'd just before we start using it. - (leave (_ "failed to register GC root for '~a' on '~a' (status: ~a)~%") - file (session-get session 'host) status))))) - -(define (remove-gc-roots session) - "Remove in SESSION the GC roots previously installed with -'register-gc-root'." - (define script - `(begin - (use-modules (guix config) (ice-9 ftw) - (srfi srfi-1) (srfi srfi-26)) - - (let ((root-directory (string-append %state-directory - "/gcroots/tmp"))) - (false-if-exception - (delete-file - (string-append root-directory "/" ,%gc-root-file))) - - ;; These ones were created with 'guix build -r' (there can be more - ;; than one in case of multiple-output derivations.) - (let ((roots (filter (cut string-prefix? ,%gc-root-file <>) - (scandir ".")))) - (for-each (lambda (file) - (false-if-exception (delete-file file))) - roots))))) - - (let ((pipe (remote-pipe session - `("guile" "-c" ,(object->string script))))) - (read-string pipe) - (close-port pipe))) - -(define* (offload drv session - #:key print-build-trace? (max-silent-time 3600) - build-timeout (log-port (build-log-port))) - "Perform DRV in SESSION, assuming DRV and its prerequisites are available -there, and write the build log to LOG-PORT. Return the exit status." - ;; Normally DRV has already been protected from GC when it was transferred. - ;; The '-r' flag below prevents the build result from being GC'd. - (let ((pipe (remote-pipe session - `("guix" "build" - "-r" ,%gc-root-file - ,(format #f "--max-silent-time=~a" - max-silent-time) - ,@(if build-timeout - (list (format #f "--timeout=~a" - build-timeout)) - '()) - ,(derivation-file-name drv)) - - ;; Since 'guix build' writes the build log to its - ;; stderr, everything will go directly to LOG-PORT. - ;; #:error-port log-port ;; FIXME - ))) - ;; Make standard error visible. - (channel-set-stream! pipe 'stderr) - - (let loop ((line (read-line pipe))) - (unless (eof-object? line) - (display line log-port) - (newline log-port) - (loop (read-line pipe)))) - - (let loop ((status (channel-get-exit-status pipe))) - (close-port pipe) - status))) - (define* (transfer-and-offload drv machine #:key (inputs '()) @@ -429,99 +371,128 @@ MACHINE." (define session (open-ssh-session machine)) - (when (begin - (register-gc-root (derivation-file-name drv) session) - (send-files (cons (derivation-file-name drv) inputs) - session)) - (format (current-error-port) "offloading '~a' to '~a'...~%" - (derivation-file-name drv) (build-machine-name machine)) - (format (current-error-port) "@ build-remote ~a ~a~%" - (derivation-file-name drv) (build-machine-name machine)) - - (let ((status (offload drv session - #:print-build-trace? print-build-trace? - #:max-silent-time max-silent-time - #:build-timeout build-timeout))) - (if (zero? status) - (begin - (retrieve-files outputs session) - (remove-gc-roots session) - (format (current-error-port) - "done with offloaded '~a'~%" - (derivation-file-name drv))) - (begin - (remove-gc-roots session) - (format (current-error-port) - "derivation '~a' offloaded to '~a' failed \ -with exit code ~a~%" - (derivation-file-name drv) - (build-machine-name machine) - status) - - ;; Use exit code 100 for a permanent build failure. The daemon - ;; interprets other non-zero codes as transient build failures. - (primitive-exit 100)))))) - -(define (send-files files session) - "Send the subset of FILES that's missing to SESSION's store. Return #t on -success, #f otherwise." - (define (missing-files files) - ;; Return the subset of FILES not already on SESSION. Use 'head' as a - ;; hack to make sure the remote end stops reading when we're done. - (let* ((pipe (remote-pipe session - `("guix" "archive" "--missing") - #:quote? #f))) - (format pipe "~{~a~%~}" files) - (channel-send-eof pipe) - (string-tokenize (read-string pipe)))) + (define store + (connect-to-remote-daemon session + (build-machine-daemon-socket machine))) + + (set-build-options store + #:print-build-trace print-build-trace? + #:max-silent-time max-silent-time + #:timeout build-timeout) + + ;; Protect DRV from garbage collection. + (add-temp-root store (derivation-file-name drv)) + + (send-files (cons (derivation-file-name drv) inputs) + store) + (format (current-error-port) "offloading '~a' to '~a'...~%" + (derivation-file-name drv) (build-machine-name machine)) + (format (current-error-port) "@ build-remote ~a ~a~%" + (derivation-file-name drv) (build-machine-name machine)) + + (guard (c ((nix-protocol-error? c) + (format (current-error-port) + (_ "derivation '~a' offloaded to '~a' failed: ~a~%") + (derivation-file-name drv) + (build-machine-name machine) + (nix-protocol-error-message c)) + ;; Use exit code 100 for a permanent build failure. The daemon + ;; interprets other non-zero codes as transient build failures. + (primitive-exit 100))) + (build-derivations store (list drv))) + + (retrieve-files outputs store) + (format (current-error-port) "done with offloaded '~a'~%" + (derivation-file-name drv))) + +(define (store-import-channel session) + "Return an output port to which archives to be exported to SESSION's store +can be written." + ;; Using the 'import-paths' RPC on a remote store would be slow because it + ;; makes a round trip every time 32 KiB have been transferred. This + ;; procedure instead opens a separate channel to use the remote + ;; 'import-paths' procedure, which consumes all the data in a single round + ;; trip. + (define import + `(begin + (use-modules (guix)) + + (with-store store + (setvbuf (current-input-port) _IONBF) + (import-paths store (current-input-port))))) + + (open-remote-output-pipe session + (string-join + `("guile" "-c" + ,(object->string + (object->string import)))))) + +(define (store-export-channel session files) + "Return an input port from which an export of FILES from SESSION's store can +be read." + ;; Same as above: this is more efficient than calling 'export-paths' on a + ;; remote store. + (define export + `(begin + (use-modules (guix)) + + (with-store store + (setvbuf (current-output-port) _IONBF) + (export-paths store ',files (current-output-port))))) + + (open-remote-input-pipe session + (string-join + `("guile" "-c" + ,(object->string + (object->string export)))))) +(define (send-files files remote) + "Send the subset of FILES that's missing to REMOTE, a remote store." (with-store store - (guard (c ((nix-protocol-error? c) - (warning (_ "failed to export files for '~a': ~s~%") - (session-get session 'host) c) - #f)) - - ;; Compute the subset of FILES missing on SESSION, and send them in - ;; topologically sorted order so that they can actually be imported. - (let* ((files (missing-files (topologically-sorted store files))) - (pipe (remote-pipe session - '("guix" "archive" "--import") - #:quote? #f))) - (format #t (_ "sending ~a store files to '~a'...~%") - (length files) (session-get session 'host)) - - (export-paths store files pipe) - (channel-send-eof pipe) - - ;; Wait for the remote process to complete. - (let ((status (channel-get-exit-status pipe))) - (close pipe) - status))))) - -(define (retrieve-files files session) + ;; Compute the subset of FILES missing on SESSION, and send them in + ;; topologically sorted order so that they can actually be imported. + (let* ((sorted (topologically-sorted store files)) + (session (channel-get-session (nix-server-socket remote))) + (node (make-node session)) + (missing (node-eval node + `(begin + (use-modules (guix) + (srfi srfi-1) (srfi srfi-26)) + + (with-store store + (remove (cut valid-path? store <>) + ',sorted))))) + (port (store-import-channel session))) + (format #t (_ "sending ~a store files to '~a'...~%") + (length missing) (session-get session 'host)) + + (export-paths store missing port) + + ;; Tell the remote process that we're done. (In theory the + ;; end-of-archive mark of 'export-paths' would be enough, but in + ;; practice it's not.) + (channel-send-eof port) + + ;; Wait for completion of the remote process. + (let ((result (zero? (channel-get-exit-status port)))) + (close-port port) + result)))) + +(define (retrieve-files files remote) "Retrieve FILES from SESSION's store, and import them." - (define host - (session-get session 'host)) - - (let ((pipe (remote-pipe session - `("guix" "archive" "--export" ,@files) - #:quote? #f))) - (and pipe - (with-store store - (guard (c ((nix-protocol-error? c) - (warning (_ "failed to import files from '~a': ~s~%") - host c) - #f)) - (format (current-error-port) "retrieving ~a files from '~a'...~%" - (length files) host) - - ;; We cannot use the 'import-paths' RPC here because we already - ;; hold the locks for FILES. - (restore-file-set pipe - #:log-port (current-error-port) - #:lock? #f) - - (close-port pipe)))))) + (let* ((session (channel-get-session (nix-server-socket remote))) + (host (session-get session 'host)) + (port (store-export-channel session files))) + (format #t (_ "retrieving ~a files from '~a'...~%") + (length files) host) + + ;; We cannot use the 'import-paths' RPC here because we already + ;; hold the locks for FILES. + (let ((result (restore-file-set port + #:log-port (current-error-port) + #:lock? #f))) + (close-port port) + result))) ;;; -- cgit v1.2.3 From bc1ad4e334fbf5239ed8d617751e9fa7dbe0ab23 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 25 Nov 2016 22:47:37 +0100 Subject: offload: Drop 'remote-pipe'. * guix/scripts/offload.scm (remote-pipe): Remove. (machine-load): Use 'open-remote-pipe*' instead of 'remote-pipe'. --- guix/scripts/offload.scm | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm index 1821bb5b7a..2e0268020c 100644 --- a/guix/scripts/offload.scm +++ b/guix/scripts/offload.scm @@ -249,26 +249,6 @@ an SSH session. Return a object." (object->string redirect))))) (open-connection #:port channel))) -(define* (remote-pipe session command - #:key (quote? #t)) - "Run COMMAND (a list) on SESSION, and return an open input/output port, -which is also an SSH channel. When QUOTE? is true, perform shell-quotation of -all the elements of COMMAND." - (define (shell-quote str) - ;; Sort-of shell-quote STR so it can be passed as an argument to the - ;; shell. - (with-output-to-string - (lambda () - (write str)))) - - (let* ((channel (make-channel session))) - (channel-open-session channel) - (channel-request-exec channel - (string-join (if quote? - (map shell-quote command) - command))) - channel)) - ;;; ;;; Synchronization. @@ -511,7 +491,8 @@ be read." "Return the load of MACHINE, divided by the number of parallel builds allowed on MACHINE." (let* ((session (open-ssh-session machine)) - (pipe (remote-pipe session '("cat" "/proc/loadavg"))) + (pipe (open-remote-pipe* session OPEN_READ + "cat" "/proc/loadavg")) (line (read-line pipe))) (close-port pipe) -- cgit v1.2.3 From e44b511298590ecc87c2c85d1cbc043a638dd1e0 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 24 Nov 2016 21:58:40 +0100 Subject: gnu: ldc: Update to 0.17.2. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/ldc.scm (ldc): Update to 0.17.2. * gnu/packages/patches/ldc-disable-tests.patch: Fix timezone file name. Signed-off-by: Ludovic Courtès --- gnu/packages/ldc.scm | 19 ++++++----- gnu/packages/patches/ldc-disable-tests.patch | 50 ++++++++++------------------ 2 files changed, 27 insertions(+), 42 deletions(-) diff --git a/gnu/packages/ldc.scm b/gnu/packages/ldc.scm index 560fa497fb..8d3368a58b 100644 --- a/gnu/packages/ldc.scm +++ b/gnu/packages/ldc.scm @@ -76,7 +76,7 @@ and freshness without requiring additional information from the user.") (define-public ldc (package (name "ldc") - (version "0.16.1") + (version "0.17.2") (source (origin (method url-fetch) (uri (string-append @@ -85,10 +85,9 @@ and freshness without requiring additional information from the user.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1jvilxx0rpqmkbja4m69fhd5g09697xq7vyqp2hz4hvxmmmv4j40")))) + "0iksl6cvhsiwnlh15b7s9v8f3grxk27jn0vja9n4sad7fvfwmmlc")))) (build-system cmake-build-system) - ;; LDC currently only supports the x86_64 and i686 architectures. - (supported-systems '("x86_64-linux" "i686-linux")) + (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux")) (arguments `(#:phases (modify-phases %standard-phases @@ -127,8 +126,10 @@ and freshness without requiring additional information from the user.") ("tzdata" ,tzdata) ("zlib" ,zlib))) (native-inputs - `(("llvm" ,llvm-3.7) - ("clang" ,clang-3.7) + `(("llvm" ,llvm) + ("clang" ,clang) + ("python-lit" ,python-lit) + ("python-wrapper" ,python-wrapper) ("unzip" ,unzip) ("phobos-src" ,(origin @@ -138,7 +139,7 @@ and freshness without requiring additional information from the user.") version ".tar.gz")) (sha256 (base32 - "0sgdj0536c4nb118yiw1f8lqy5d3g3lpg9l99l165lk9xy45l9z4")) + "07hh3ic3r755mq9hn9gfr0wlc5y8cr91xz2ydb6gqy4zy8jgp5s9")) (patches (search-patches "ldc-disable-tests.patch")))) ("druntime-src" ,(origin @@ -148,7 +149,7 @@ and freshness without requiring additional information from the user.") version ".tar.gz")) (sha256 (base32 - "0z4mkyddx6c4sy1vqgqvavz55083dsxws681qkh93jh1rpby9yg6")))) + "1m1dhday9dl3s04njmd29z7ism2xn2ksb9qlrwzykdgz27b3dk6x")))) ("dmd-testsuite-src" ,(origin (method url-fetch) @@ -157,7 +158,7 @@ and freshness without requiring additional information from the user.") version ".tar.gz")) (sha256 (base32 - "0yc6miidzgl9k33ygk7xcppmfd6kivqj02cvv4fmkbs3qz4yy3z1")))))) + "0n7gvalxwfmia4gag53r9qhcnk2cqrw3n4icj1yri0zkgc27pm60")))))) (home-page "http://wiki.dlang.org/LDC") (synopsis "LLVM compiler for the D programming language") (description diff --git a/gnu/packages/patches/ldc-disable-tests.patch b/gnu/packages/patches/ldc-disable-tests.patch index 3f5e6c29a1..bdd6e5b76c 100644 --- a/gnu/packages/patches/ldc-disable-tests.patch +++ b/gnu/packages/patches/ldc-disable-tests.patch @@ -4,19 +4,9 @@ two others use networking. Not bad out of almost 700 tests! by Pjotr Prins -diff --git a/std/datetime.d b/std/datetime.d -index 8e4ed3b..6c15bc5 100644 ---- a/std/datetime.d -+++ b/std/datetime.d -@@ -28018,6 +28018,7 @@ public: - The default directory where the TZ Database files are. It's empty - for Windows, since Windows doesn't have them. - +/ -+ - enum defaultTZDatabaseDir = "/usr/share/zoneinfo/"; - } - else version(Windows) -@@ -28069,14 +28070,13 @@ assert(tz.dstName == "PDT"); +--- a/std/datetime.d.orig 2016-11-24 01:13:52.584495545 +0100 ++++ b/std/datetime.d 2016-11-24 01:17:09.655306728 +0100 +@@ -28081,22 +28081,24 @@ import std.range : retro; import std.format : format; @@ -25,9 +15,20 @@ index 8e4ed3b..6c15bc5 100644 enforce(tzDatabaseDir.exists(), new DateTimeException(format("Directory %s does not exist.", tzDatabaseDir))); enforce(tzDatabaseDir.isDir, new DateTimeException(format("%s is not a directory.", tzDatabaseDir))); -- immutable file = buildNormalizedPath(tzDatabaseDir, name); -+ auto filename = "./" ~ strip(name); // make sure the prefix is not stripped -+ immutable file = buildNormalizedPath(tzDatabaseDir, filename); + version(Android) + { ++ name = strip(name); + auto tzfileOffset = name in tzdataIndex(tzDatabaseDir); + enforce(tzfileOffset, new DateTimeException(format("The time zone %s is not listed.", name))); + string tzFilename = separate_index ? "zoneinfo.dat" : "tzdata"; + immutable file = buildNormalizedPath(tzDatabaseDir, tzFilename); + } + else +- immutable file = buildNormalizedPath(tzDatabaseDir, name); ++ { ++ auto filename = "./" ~ strip(name); // make sure the prefix is not stripped ++ immutable file = buildNormalizedPath(tzDatabaseDir, filename); ++ } - enforce(file.exists(), new DateTimeException(format("File %s does not exist.", file))); + enforce(file.exists(), new DateTimeException(format("File %s does not exist in %s.", file, tzDatabaseDir))); @@ -54,23 +55,6 @@ diff --git a/std/socket.d b/std/socket.d index b85d1c9..7fbf346 100644 --- a/std/socket.d +++ b/std/socket.d -@@ -517,6 +517,8 @@ class Protocol - - unittest - { -+ pragma(msg, "test disabled on GNU Guix"); -+/* - // getprotobyname,number are unimplemented on Android - softUnittest({ - Protocol proto = new Protocol; -@@ -530,6 +532,7 @@ unittest - assert(proto.name == "tcp"); - assert(proto.aliases.length == 1 && proto.aliases[0] == "TCP"); - }); -+*/ - } - - @@ -859,6 +862,8 @@ class InternetHost unittest -- cgit v1.2.3 From 0959478c726a3117da815f47c0ce92e4588a8ac4 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 25 Nov 2016 23:17:30 -0500 Subject: gnu: Add missing module import to (gnu packages ldc). This is a followup to commit e44b511298590ecc87c2c85d1cbc043a638dd1e0. * gnu/packages/ldc.scm: Import (gnu packages python). --- gnu/packages/ldc.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/ldc.scm b/gnu/packages/ldc.scm index 8d3368a58b..6ea7f664bd 100644 --- a/gnu/packages/ldc.scm +++ b/gnu/packages/ldc.scm @@ -29,6 +29,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages libedit) #:use-module (gnu packages llvm) + #:use-module (gnu packages python) #:use-module (gnu packages textutils) #:use-module (gnu packages zip)) -- cgit v1.2.3 From f88371e86602a9b3d86f2030709f719778613552 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Mon, 21 Nov 2016 20:41:17 +0800 Subject: services: Add opensmtpd service. * gnu/services/mail.scm (): New record type. (%default-opensmtpd-config-file, %opensmtpd-accounts): New variables. (opensmtpd-shepherd-service, opensmtpd-activation): New procedures. (opensmtpd-service-type): New variable. * doc/guix.texi (Mail Services): Document it. --- doc/guix.texi | 42 ++++++++++++++++++++------ gnu/services/mail.scm | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 114 insertions(+), 10 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index b8e37055e6..137fec8d7a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -10075,16 +10075,11 @@ For MariaDB, the root password is empty. @cindex mail @cindex email The @code{(gnu services mail)} module provides Guix service definitions -for mail services. Currently the only implemented service is Dovecot, -an IMAP, POP3, and LMTP server. +for email services: IMAP, POP3, and LMTP servers, as well as mail +transport agents (MTAs). Lots of acronyms! These services are detailed +in the subsections below. -Guix does not yet have a mail transfer agent (MTA), although for some -lightweight purposes the @code{esmtp} relay-only MTA may suffice. Help -is needed to properly integrate a full MTA, such as Postfix. Patches -welcome! - -To add an IMAP/POP3 server to a GuixSD system, add a -@code{dovecot-service} to the operating system definition: +@subsubheading Dovecot Service @deffn {Scheme Procedure} dovecot-service [#:config (dovecot-configuration)] Return a service that runs the Dovecot IMAP/POP3/LMTP mail server. @@ -11440,6 +11435,35 @@ could instantiate a dovecot service like this: (string ""))) @end example +@subsubheading OpenSMTPD Service + +@deffn {Scheme Variable} opensmtpd-service-type +This is the type of the @uref{https://www.opensmtpd.org, OpenSMTPD} +service, whose value should be an @code{opensmtpd-configuration} object +as in this example: + +@example +(service opensmtpd-service-type + (opensmtpd-configuration + (config-file (local-file "./my-smtpd.conf")))) +@end example +@end deffn + +@deftp {Data Type} opensmtpd-configuration +Data type regresenting the configuration of opensmtpd. + +@table @asis +@item @code{package} (default: @var{opensmtpd}) +Package object of the OpenSMTPD SMTP server. + +@item @code{config-file} (default: @var{%default-opensmtpd-file}) +File-like object of the OpenSMTPD configuration file to use. By default +it listens on the loopback network interface, and allows for mail from +users and daemons on the local machine, as well as permitting email to +remote servers. Run @command{man smtpd.conf} for more information. + +@end table +@end deftp @node Kerberos Services @subsubsection Kerberos Services diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm index cb0f119f43..f7ab9516ba 100644 --- a/gnu/services/mail.scm +++ b/gnu/services/mail.scm @@ -51,7 +51,12 @@ protocol-configuration plugin-configuration mailbox-configuration - namespace-configuration)) + namespace-configuration + + opensmtpd-configuration + opensmtpd-configuration? + opensmtpd-service-type + %default-opensmtpd-config-file)) ;;; Commentary: ;;; @@ -1691,3 +1696,78 @@ by @code{dovecot-configuration}. @var{config} may also be created by (format #t "@end deftypevr\n\n"))) fields)))) (generate 'dovecot-configuration)) + + +;;; +;;; OpenSMTPD. +;;; + +(define-record-type* + opensmtpd-configuration make-opensmtpd-configuration + opensmtpd-configuration? + (package opensmtpd-configuration-package + (default opensmtpd)) + (config-file opensmtpd-configuration-config-file + (default %default-opensmtpd-config-file))) + +(define %default-opensmtpd-config-file + (plain-file "smtpd.conf" " +listen on lo +accept from any for local deliver to mbox +accept from local for any relay +")) + +(define opensmtpd-shepherd-service + (match-lambda + (($ package config-file) + (list (shepherd-service + (provision '(smtpd)) + (requirement '(loopback)) + (documentation "Run the OpenSMTPD daemon.") + (start (let ((smtpd (file-append package "/sbin/smtpd"))) + #~(make-forkexec-constructor + (list #$smtpd "-f" #$config-file) + #:pid-file "/var/run/smtpd.pid"))) + (stop #~(make-kill-destructor))))))) + +(define %opensmtpd-accounts + (list (user-group + (name "smtpq") + (system? #t)) + (user-account + (name "smtpd") + (group "nogroup") + (system? #t) + (comment "SMTP Daemon") + (home-directory "/var/empty") + (shell (file-append shadow "/sbin/nologin"))) + (user-account + (name "smtpq") + (group "smtpq") + (system? #t) + (comment "SMTPD Queue") + (home-directory "/var/empty") + (shell (file-append shadow "/sbin/nologin"))))) + +(define opensmtpd-activation + (match-lambda + (($ package config-file) + (let ((smtpd (file-append package "/sbin/smtpd"))) + #~(begin + ;; Create mbox and spool directories. + (mkdir-p "/var/mail") + (mkdir-p "/var/spool/smtpd") + (chmod "/var/spool/smtpd" #o711)))))) + +(define opensmtpd-service-type + (service-type + (name 'opensmtpd) + (extensions + (list (service-extension account-service-type + (const %opensmtpd-accounts)) + (service-extension activation-service-type + opensmtpd-activation) + (service-extension profile-service-type + (compose list opensmtpd-configuration-package)) + (service-extension shepherd-root-service-type + opensmtpd-shepherd-service))))) -- cgit v1.2.3 From c940b8e682ef375f46c69ede4218d0a4d75317b5 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 26 Nov 2016 12:47:14 +0800 Subject: doc: mysql-configuration: Fix typo. * doc/guix.texi (Database Services): Fix typo of 'mysql-configuration'. --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 137fec8d7a..5747484b20 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -10053,7 +10053,7 @@ Return a service that runs @command{mysqld}, the MySQL or MariaDB database server. The optional @var{config} argument specifies the configuration for -@command{mysqld}, which should be a @code{} object. +@command{mysqld}, which should be a @code{} object. @end deffn @deftp {Data Type} mysql-configuration -- cgit v1.2.3 From 53d892dd92d48b5f496af6c581084c38e0b11320 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 26 Nov 2016 00:34:21 -0500 Subject: gnu: imagemagick: Update to 6.9.6-6 [fixes CVE-2016-9556]. * gnu/packages/imagemagick.scm (imagemagick): Update to 6.9.6-6. --- gnu/packages/imagemagick.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 99d8b76299..4e70212133 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -43,14 +43,14 @@ (define-public imagemagick (package (name "imagemagick") - (version "6.9.6-5") + (version "6.9.6-6") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "037lg2m0y5b17lyi34jdlkq4h03ck67j5m6wr84nvwd3jfx240cd")))) + "02hd0xvpm99wrix2didg8xnra4fla04y9vaks2vnijry3l0gxlcw")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch") -- cgit v1.2.3 From 75675e4556fe4779687251d0a792925a11a7305c Mon Sep 17 00:00:00 2001 From: ng0 Date: Wed, 23 Nov 2016 22:23:52 +0000 Subject: mailmap: Associate all commits by ng0 with ng0. Signed-off-by: Leo Famulari --- .mailmap | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.mailmap b/.mailmap index 85f502161b..ada5026ba3 100644 --- a/.mailmap +++ b/.mailmap @@ -30,10 +30,11 @@ Ludovic Courtès Mathieu Lirzin Mathieu Lirzin Nikita Karetnikov -ng0 -ng0 -ng0 -ng0 +ng0 +ng0 +ng0 +ng0 +ng0 Pjotr Prins Pjotr Prins Raimon Grau -- cgit v1.2.3 From fc5dc4e81cacc4e0dcd81863e505ce5b314264c6 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Thu, 24 Nov 2016 08:15:55 +0100 Subject: gnu: Whitespace changes * gnu/services/kerberos.scm: Fold lines to 80 character limit. --- gnu/services/kerberos.scm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gnu/services/kerberos.scm b/gnu/services/kerberos.scm index 144c71bba0..a56f63082c 100644 --- a/gnu/services/kerberos.scm +++ b/gnu/services/kerberos.scm @@ -38,15 +38,17 @@ "Return a PAM service for Kerberos authentication." (lambda (pam) (define pam-krb5-module - #~(string-append #$(pam-krb5-configuration-pam-krb5 config) "/lib/security/pam_krb5.so")) + #~(string-append #$(pam-krb5-configuration-pam-krb5 config) + "/lib/security/pam_krb5.so")) (let ((pam-krb5-sufficient (pam-entry (control "sufficient") (module pam-krb5-module) - (arguments (list - (format #f "minimum_uid=~a" - (pam-krb5-configuration-minimum-uid config))))))) + (arguments + (list + (format #f "minimum_uid=~a" + (pam-krb5-configuration-minimum-uid config))))))) (pam-service (inherit pam) (auth (cons* pam-krb5-sufficient -- cgit v1.2.3 From d3eff97afd08ae2976a3aa80760ef2ba8025e1d6 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 25 Nov 2016 15:29:08 +0100 Subject: gnu: Add python-polib. * gnu/packages/python.scm (python-polib, python2-polib): New variables. Signed-off-by: Marius Bakke --- gnu/packages/python.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 5e8956f946..83ef3727f8 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -31,6 +31,7 @@ ;;; Copyright © 2016 Dylan Jeffers ;;; Copyright © 2016 Alex Vong ;;; Copyright © 2016 Arun Isaac +;;; Copyright © 2016 Julien Lepiller ;;; ;;; This file is part of GNU Guix. ;;; @@ -1426,6 +1427,31 @@ backported for previous versions of Python from 2.4 to 3.3.") syntax.") (license license:x11))) +(define-public python-polib + (package + (name "python-polib") + (version "1.0.8") + (source (origin + (method url-fetch) + (uri (pypi-uri "polib" version)) + (sha256 + (base32 + "1pq2hbm3m2q0cjdszk8mc4qa1vl3wcblh5nfyirlfnzb2pcy7zss")))) + (build-system python-build-system) + (home-page "https://bitbucket.org/izi/polib/wiki/Home") + (synopsis "Manipulate, create and modify gettext files") + (description "Polib can manipulate any gettext format (po, pot and mo) +files. It can be used to create po files from scratch or to modify +existing ones.") + (license license:expat))) + +(define-public python2-polib + (let ((base (package-with-python2 (strip-python2-variant python-polib)))) + (package + (inherit base) + (arguments `(,@(package-arguments base) + ;; Tests don't work with python2. + #:tests? #f))))) (define-public scons (package -- cgit v1.2.3 From 31a9d653ad37c9f00b601cfe4a95d90c35c09223 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 26 Nov 2016 14:59:30 +1000 Subject: gnu: Add proteinortho. * gnu/packages/bioinformatics.scm (proteinortho): New variable. --- gnu/packages/bioinformatics.scm | 52 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 773b5909b6..308931f3d8 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -3693,6 +3693,58 @@ for sequences to be aligned and then, simultaneously with the alignment, predicts the locations of structural units in the sequences.") (license license:gpl2+))) +(define-public proteinortho + (package + (name "proteinortho") + (version "5.15") + (source + (origin + (method url-fetch) + (uri + (string-append + "http://www.bioinf.uni-leipzig.de/Software/proteinortho/proteinortho_v" + version "_src.tar.gz")) + (sha256 + (base32 + "05wacnnbx56avpcwhzlcf6b7s77swcpv3qnwz5sh1z54i51gg2ki")))) + (build-system gnu-build-system) + (arguments + `(#:test-target "test" + #:phases + (modify-phases %standard-phases + (replace 'configure + ;; There is no configure script, so we modify the Makefile directly. + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "Makefile" + (("INSTALLDIR=.*") + (string-append + "INSTALLDIR=" (assoc-ref outputs "out") "/bin\n"))) + #t)) + (add-before 'install 'make-install-directory + ;; The install directory is not created during 'make install'. + (lambda* (#:key outputs #:allow-other-keys) + (mkdir-p (string-append (assoc-ref outputs "out") "/bin")) + #t)) + (add-after 'install 'wrap-programs + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((path (getenv "PATH")) + (out (assoc-ref outputs "out")) + (binary (string-append out "/bin/proteinortho5.pl"))) + (wrap-program binary `("PATH" ":" prefix (,path)))) + #t))))) + (inputs + `(("perl" ,perl) + ("python" ,python-2) + ("blast+" ,blast+))) + (home-page "http://www.bioinf.uni-leipzig.de/Software/proteinortho") + (synopsis "Detect orthologous genes across species") + (description + "Proteinortho is a tool to detect orthologous genes across different +species. For doing so, it compares similarities of given gene sequences and +clusters them to find significant groups. The algorithm was designed to handle +large-scale data and can be applied to hundreds of species at once.") + (license license:gpl2+))) + (define-public pyicoteo (package (name "pyicoteo") -- cgit v1.2.3 From 5e0a0f4226b1f146fe74c8347fc983ef9ac0d271 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 26 Nov 2016 19:00:17 +1000 Subject: gnu: roary: Update to 3.7.0. * gnu/packages/bioinformatics.scm (roary): Update to 3.7.0. --- gnu/packages/bioinformatics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 308931f3d8..8d2cb93c7c 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -3817,7 +3817,7 @@ partial genes, and identifies translation initiation sites.") (define-public roary (package (name "roary") - (version "3.6.8") + (version "3.7.0") (source (origin (method url-fetch) @@ -3826,7 +3826,7 @@ partial genes, and identifies translation initiation sites.") version ".tar.gz")) (sha256 (base32 - "0g0pzcv8y7n2w8q7c9q0a7s2ghkwci6w8smg9mjw4agad5cd7yaw")))) + "0x2hpb3nfsc6x2nq1788w0fhqfzc7cn2dp4xwyva9m3k6xlz0m43")))) (build-system perl-build-system) (arguments `(#:phases -- cgit v1.2.3 From 4f55441fe3cd3ed809f6ba1278eeed3522a333d2 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 25 Nov 2016 03:27:40 +0100 Subject: gnu: transmission: Update to 2.92. * gnu/packages/bittorrent.scm (transmission): Update to 2.92. [inputs]: Add cyrus-sasl. --- gnu/packages/bittorrent.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm index ad67e02270..eff1b5a1c4 100644 --- a/gnu/packages/bittorrent.scm +++ b/gnu/packages/bittorrent.scm @@ -49,7 +49,7 @@ (define-public transmission (package (name "transmission") - (version "2.84") + (version "2.92") (source (origin (method url-fetch) (uri (string-append @@ -57,7 +57,7 @@ version ".tar.xz")) (sha256 (base32 - "1sxr1magqb5s26yvr5yhs1f7bmir8gl09niafg64lhgfnhv1kz59")))) + "0pykmhi7pdmzq47glbj8i2im6iarp4wnj4l1pyvsrnba61f0939s")))) (build-system glib-or-gtk-build-system) (outputs '("out" ; library and command-line interface "gui")) ; graphical user interface @@ -84,6 +84,7 @@ `(("inotify-tools" ,inotify-tools) ("libevent" ,libevent) ("curl" ,curl) + ("cyrus-sasl" ,cyrus-sasl) ("openssl" ,openssl) ("file" ,file) ("zlib" ,zlib) -- cgit v1.2.3 From faa29e4bdb44ff609b73fe0b38ef44322840a876 Mon Sep 17 00:00:00 2001 From: ng0 Date: Tue, 22 Nov 2016 23:31:25 +0000 Subject: gnu: Add mumble. * gnu/packages/telephony.scm (mumble): New variable. Signed-off-by: Marius Bakke --- gnu/packages/telephony.scm | 112 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 3d5e58ec2d..6597d26096 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2015 Efraim Flashner ;;; Copyright © 2016 Lukas Gradl ;;; Copyright © 2016 Francesco Frassinelli +;;; Copyright © 2016 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,13 +25,20 @@ (define-module (gnu packages telephony) #:use-module (gnu packages) #:use-module (gnu packages autotools) + #:use-module (gnu packages avahi) + #:use-module (gnu packages boost) + #:use-module (gnu packages protobuf) #:use-module (gnu packages gnupg) #:use-module (gnu packages linux) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages qt) + #:use-module (gnu packages speech) #:use-module (gnu packages tls) #:use-module (gnu packages xiph) + #:use-module (gnu packages xorg) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) @@ -287,3 +295,107 @@ lists. All you need to join an existing conference is the host name or IP address of one of the participants.") (home-page "http://holdenc.altervista.org/seren/") (license license:gpl3+))) + +(define-public mumble + (package + (name "mumble") + (version "1.2.17") + (source (origin + (method url-fetch) + (uri (string-append "https://mumble.info/snapshot/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "176br3b0pv5sz3zvgzsz9rxr3n79irlm902h7n1wh4f6vbph2dhw")) + (modules '((guix build utils))) + (snippet + `(begin + ;; Remove bundled software. + (for-each delete-file-recursively '("3rdparty" + "speex" + "speexbuild" + "opus-build" + "opus-src" + "sbcelt-helper-build" + "sbcelt-lib-build" + "sbcelt-src")) + ;; TODO: Celt is still bundled. It has been merged into Opus + ;; and will be removed after 1.3.0. + ;; https://github.com/mumble-voip/mumble/issues/1999 + #t)))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no "check" target + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (zero? (system* "qmake" "main.pro" "-recursive" + (string-append "CONFIG+=" + (string-join + (list "no-update" + "no-server" + "no-embed-qt-translations" + "no-bundled-speex" + "pch" + "no-bundled-opus" + "no-celt" + "no-alsa" + "no-oss" + "no-portaudio" + "speechd" + "no-g15" + "no-bonjour" + "release"))) + (string-append "DEFINES+=" + "PLUGIN_PATH=" + (assoc-ref outputs "out") + "/lib/mumble"))))) + (add-before 'configure 'fix-libspeechd-include + (lambda _ + (substitute* "src/mumble/TextToSpeech_unix.cpp" + (("libspeechd.h") "speech-dispatcher/libspeechd.h")))) + (replace 'install ; install phase does not exist + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (services (string-append out "/share/services")) + (applications (string-append out "/share/applications")) + (icons (string-append out "/share/icons/hicolor/scalable/apps")) + (man (string-append out "/share/man/man1")) + (lib (string-append out "/lib/mumble"))) + (install-file "release/mumble" bin) + (install-file "scripts/mumble-overlay" bin) + (install-file "scripts/mumble.protocol" services) + (install-file "scripts/mumble.desktop" applications) + (install-file "icons/mumble.svg" icons) + (install-file "man/mumble-overlay.1" man) + (install-file "man/mumble.1" man) + (for-each (lambda (file) (install-file file lib)) + (find-files "." "\\.so\\.")) + (for-each (lambda (file) (install-file file lib)) + (find-files "release/plugins" "\\.so$")))))))) + (inputs + `(("avahi" ,avahi) + ("protobuf" ,protobuf) + ("openssl" ,openssl) + ("libsndfile" ,libsndfile) + ("boost" ,boost) + ("opus" ,opus) + ("speex" ,speex) + ("speech-dispatcher" ,speech-dispatcher) + ("libx11" ,libx11) + ("libxi" ,libxi) + ("qt-4" ,qt-4) + ("alsa-lib" ,alsa-lib) + ("pulseaudio" ,pulseaudio))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (synopsis "Low-latency, high quality voice chat software") + (description + "Mumble is an low-latency, high quality voice chat +software primarily intended for use while gaming.") + (home-page "https://wiki.mumble.info/wiki/Main_Page") + (license (list license:bsd-3 + ;; The bundled celt is bsd-2. Remove after 1.3.0. + license:bsd-2)))) -- cgit v1.2.3 From 5aed7f10f322e93407b925293e72bcefdbc79599 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 26 Nov 2016 21:44:37 +0800 Subject: pull: Add guile-ssh to the dependencies. Fix regression introduced in 9e76eed. * build-aux/build-self.scm (guile-ssh): New variable. (build)[builder]: Add 'guile-ssh' to %load-path and %load-compiled-path. --- build-aux/build-self.scm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm index 59028305e7..485f91b4c0 100644 --- a/build-aux/build-self.scm +++ b/build-aux/build-self.scm @@ -61,6 +61,8 @@ (define guile-json (first (find-best-packages-by-name "guile-json" #f))) +(define guile-ssh + (first (find-best-packages-by-name "guile-ssh" #f))) ;; The actual build procedure. @@ -103,8 +105,14 @@ files." (use-modules (guix build pull)) (let ((json (string-append #$guile-json "/share/guile/site/2.0"))) - (set! %load-path (cons json %load-path)) - (set! %load-compiled-path (cons json %load-compiled-path))) + (set! %load-path + (cons* json + (string-append #$guile-ssh "/share/guile/site/2.0") + %load-path)) + (set! %load-compiled-path + (cons* json + (string-append #$guile-ssh "/lib/guile/2.0/site-ccache") + %load-compiled-path))) (build-guix #$output #$source -- cgit v1.2.3 From b2e6e150aaa4bf5a3fb5712320b2321768fb29c3 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 26 Nov 2016 14:51:20 +0100 Subject: gnu: python-simplejson: Update to 3.10.0. * gnu/packages/python.scm (python-simplejson): Update to 3.10.0. Signed-off-by: Marius Bakke --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 83ef3727f8..418a644d08 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1181,14 +1181,14 @@ after Andy Lester’s Perl module WWW::Mechanize.") (define-public python-simplejson (package (name "python-simplejson") - (version "3.8.2") + (version "3.10.0") (source (origin (method url-fetch) (uri (pypi-uri "simplejson" version)) (sha256 (base32 - "0zylrnax8b6r0ndgni4w9c599fi6wm9vx5g6k3ddqfj3932kk16m")))) + "1qhwsykjlb85igb4cfl6v6gkprzbbg8gyqdd7zscc8w3x0ifcfwm")))) (build-system python-build-system) (home-page "http://simplejson.readthedocs.org/en/latest/") (synopsis -- cgit v1.2.3 From 61684de28798a4baea952ebfdf398bbc315a7b48 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 26 Nov 2016 14:51:21 +0100 Subject: gnu: python-pyopenssl: Update to 16.2.0. * gnu/packages/python.scm (python-pyopenssl): Update to 16.2.0. Signed-off-by: Marius Bakke --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 418a644d08..ad279347a8 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6723,14 +6723,14 @@ message digests and key derivation functions.") (define-public python-pyopenssl (package (name "python-pyopenssl") - (version "16.1.0") + (version "16.2.0") (source (origin (method url-fetch) (uri (pypi-uri "pyOpenSSL" version)) (sha256 (base32 - "0prm06zz7hl6bk5s2lqzw25lq6smayfv2fgiliw2rbqxlyiavxw8")))) + "0vji4yrfshs15xpczbhzhasnjrwcarsqg87n98ixnyafnyxs6ybp")))) (build-system python-build-system) (propagated-inputs `(("python-cryptography" ,python-cryptography) -- cgit v1.2.3 From c6c80104ab4dcaa8c754b72a3b82735f436e20cc Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 26 Nov 2016 14:51:22 +0100 Subject: gnu: python-flask: Update to 0.11.1. * gnu/packages/python.scm (python-flask): Update to 0.11.1. [native-inputs]: Add python-click. Signed-off-by: Marius Bakke --- gnu/packages/python.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index ad279347a8..497da52264 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9558,18 +9558,20 @@ useful for solving the Assignment Problem.") (define-public python-flask (package (name "python-flask") - (version "0.10.1") + (version "0.11.1") (source (origin (method url-fetch) (uri (pypi-uri "Flask" version)) (sha256 (base32 - "0wrkavjdjndknhp8ya8j850jq7a1cli4g5a93mg8nh1xz2gq50sc")))) + "03kbfll4sj3v5z7r31c7bhfpi11r1np076d4p1k2kg4yzcmkywdl")))) (build-system python-build-system) (propagated-inputs `(("python-itsdangerous" ,python-itsdangerous) ("python-jinja2" ,python-jinja2) ("python-werkzeug" ,python-werkzeug))) + (native-inputs + `(("python-click" ,python-click))) (home-page "https://github.com/mitsuhiko/flask/") (synopsis "Microframework based on Werkzeug, Jinja2 and good intentions") (description "Flask is a micro web framework based on the Werkzeug toolkit -- cgit v1.2.3 From eaa45301f46f13a3f71bcae6089d312f31174801 Mon Sep 17 00:00:00 2001 From: ng0 Date: Sat, 26 Nov 2016 13:18:01 -0500 Subject: gnu: psyclpc: Upgrade to 20160821-2.61cf9aa. This makes the package reproducible. * gnu/packages/psyc.scm (psyclpc): Upgrade to 20160821-2.61cf9aa. Signed-off-by: Leo Famulari --- gnu/packages/psyc.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm index 03df188d1d..1a99a06001 100644 --- a/gnu/packages/psyc.scm +++ b/gnu/packages/psyc.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 ng0 +;;; Copyright © 2016 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -155,8 +155,8 @@ including psyced.") ;; This commit removes the historic bundled pcre, not released as a tarball so far. (define-public psyclpc - (let* ((commit "8bd51f2a4847860ba8b82dc79348ab37d516011e") - (revision "1")) + (let* ((commit "61cf9aa81297085e5c40170fd01221c752f8deba") + (revision "2")) (package (name "psyclpc") (version (string-append "20160821-" revision "." (string-take commit 7))) @@ -168,7 +168,7 @@ including psyced.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "10w4kx9ygcv1lcmd7j4knvjiy8dac1y3hjfv3lhp67jpv6w3iagz")))) + "1viwqymbhn3cwvx0zl58rlzl5gw47zxn0ldg2nbi55ghm5zxl1z5")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; There are no tests/checks. -- cgit v1.2.3 From ebfc2ecc3c6ac4ea2a853154aba34a86c6a06742 Mon Sep 17 00:00:00 2001 From: ng0 Date: Wed, 23 Nov 2016 19:04:37 +0000 Subject: gnu: Move content of (gnu packages psyc) into (gnu packages messaging). * gnu/packages/psyc.scm (perl-net-psyc, libpsyc, psyclpc): Move this ... * gnu/packages/messaging.scm (perl-net-psyc, libpsyc, psyclpc): ... here. * gnu/local.mk (GNU_SYSTEM_MODULES): Remove psyc.scm. Signed-off-by: Leo Famulari --- gnu/local.mk | 1 - gnu/packages/messaging.scm | 196 +++++++++++++++++++++++++++++++++++++- gnu/packages/psyc.scm | 227 --------------------------------------------- 3 files changed, 195 insertions(+), 229 deletions(-) delete mode 100644 gnu/packages/psyc.scm diff --git a/gnu/local.mk b/gnu/local.mk index 49137277f1..1b2bb4786d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -305,7 +305,6 @@ GNU_SYSTEM_MODULES = \ %D%/packages/pumpio.scm \ %D%/packages/pretty-print.scm \ %D%/packages/protobuf.scm \ - %D%/packages/psyc.scm \ %D%/packages/pv.scm \ %D%/packages/python.scm \ %D%/packages/qemu.scm \ diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 72b89067f0..02e51629ac 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; Copyright © 2015 Efraim Flashner -;;; Copyright © 2016 ng0 +;;; Copyright © 2016 ng0 ;;; Copyright © 2016 Andy Patterson ;;; Copyright © 2016 Clément Lassieur ;;; @@ -33,6 +33,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system python) + #:use-module (guix build-system perl) #:use-module (gnu packages) #:use-module (gnu packages aidc) #:use-module (gnu packages autotools) @@ -43,11 +44,13 @@ #:use-module (gnu packages databases) #:use-module (gnu packages documentation) #:use-module (gnu packages enchant) + #:use-module (gnu packages gettext) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) #:use-module (gnu packages xorg) #:use-module (gnu packages xdisorg) #:use-module (gnu packages libcanberra) + #:use-module (gnu packages man) #:use-module (gnu packages networking) #:use-module (gnu packages libidn) #:use-module (gnu packages lua) @@ -57,6 +60,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages glib) #:use-module (gnu packages python) + #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages tcl) #:use-module (gnu packages compression) @@ -67,8 +71,10 @@ #:use-module (gnu packages icu4c) #:use-module (gnu packages qt) #:use-module (gnu packages video) + #:use-module (gnu packages web) #:use-module (gnu packages xiph) #:use-module (gnu packages audio) + #:use-module (gnu packages bison) #:use-module (gnu packages fontutils)) (define-public libotr @@ -859,4 +865,192 @@ into existing applications.") (home-page "https://camaya.net/gloox") (license license:gpl3))) +(define-public perl-net-psyc + (package + (name "perl-net-psyc") + (version "1.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://perlpsyc.psyc.eu/" + "perlpsyc-" version ".zip")) + (file-name (string-append name "-" version ".zip")) + (sha256 + (base32 + "1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42")) + ;; psycmp3 currently depends on MP3::List and rxaudio (shareware), + ;; we can add it back when this is no longer the case. + (snippet '(delete-file "contrib/psycmp3")))) + (build-system perl-build-system) + (inputs + `(("perl-curses" ,perl-curses) + ("perl-io-socket-ssl" ,perl-io-socket-ssl))) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) ; No configure script + ;; There is a Makefile, but it does not install everything + ;; (leaves out psycion) and says + ;; "# Just to give you a rough idea". XXX: Fix it upstream. + (replace 'build + (lambda _ + (zero? (system* "make" "manuals")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/perl-net-psyc")) + (man1 (string-append out "/share/man/man1")) + (man3 (string-append out "/share/man/man3")) + (bin (string-append out "/bin")) + (libpsyc (string-append out "/lib/psyc/ion")) + (libperl (string-append out "/lib/perl5/site_perl/" + ,(package-version perl)))) + + (copy-recursively "lib/perl5" libperl) + (copy-recursively "lib/psycion" libpsyc) + (copy-recursively "bin" bin) + (install-file "cgi/psycpager" (string-append doc "/cgi")) + (copy-recursively "contrib" (string-append doc "/contrib")) + (copy-recursively "hooks" (string-append doc "/hooks")) + (copy-recursively "sdj" (string-append doc "/sdj")) + (install-file "README.txt" doc) + (install-file "TODO.txt" doc) + (copy-recursively "share/man/man1" man1) + (copy-recursively "share/man/man3" man3) + #t))) + (add-after 'install 'wrap-programs + (lambda* (#:key outputs #:allow-other-keys) + ;; Make sure all executables in "bin" find the Perl modules + ;; provided by this package at runtime. + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin/")) + (path (getenv "PERL5LIB"))) + (for-each (lambda (file) + (wrap-program file + `("PERL5LIB" ":" prefix (,path)))) + (find-files bin "\\.*$")) + #t)))))) + (description + "@code{Net::PSYC} with support for TCP, UDP, Event.pm, @code{IO::Select} and +Gtk2 event loops. This package includes 12 applications and additional scripts: +psycion (a @uref{http://about.psyc.eu,PSYC} chat client), remotor (a control console +for @uref{https://torproject.org,tor} router) and many more.") + (synopsis "Perl implementation of PSYC protocol") + (home-page "http://perlpsyc.psyc.eu/") + (license (list license:gpl2 + (package-license perl) + ;; contrib/irssi-psyc.pl: + license:public-domain + ;; bin/psycplay states AGPL with no version: + license:agpl3+)))) + +(define-public libpsyc + (package + (name "libpsyc") + (version "20160913") + (source (origin + (method url-fetch) + (uri (string-append "http://www.psyced.org/files/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "14q89fxap05ajkfn20rnhc6b1h4i3i2adyr7y6hs5zqwb2lcmc1p")))) + (build-system gnu-build-system) + (native-inputs + `(("perl" ,perl) + ("netcat" ,netcat) + ("procps" ,procps))) + (arguments + `(#:make-flags + (list "CC=gcc" + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + ;; The rust bindings are the only ones in use, the lpc bindings + ;; are in psyclpc. The other bindings are not used by anything, + ;; the chances are high that the bindings do not even work, + ;; therefore we do not include them. + ;; TODO: Get a cargo build system in Guix. + (delete 'configure)))) ; no configure script + (home-page "http://about.psyc.eu/libpsyc") + (description + "@code{libpsyc} is a PSYC library in C which implements +core aspects of PSYC, useful for all kinds of clients and servers +including psyced.") + (synopsis "PSYC library in C") + (license license:agpl3+))) + +;; This commit removes the historic bundled pcre, not released as a tarball so far. +(define-public psyclpc + (let* ((commit "61cf9aa81297085e5c40170fd01221c752f8deba") + (revision "2")) + (package + (name "psyclpc") + (version (string-append "20160821-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://git.psyced.org/git/psyclpc") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1viwqymbhn3cwvx0zl58rlzl5gw47zxn0ldg2nbi55ghm5zxl1z5")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There are no tests/checks. + #:configure-flags + ;; If you have questions about this part, look at + ;; "src/settings/psyced" and the ebuild. + (list + "--enable-use-tls=yes" + "--enable-use-mccp" ; Mud Client Compression Protocol, leave this enabled. + (string-append "--prefix=" + (assoc-ref %outputs "out")) + ;; src/Makefile: Set MUD_LIB to the directory which contains + ;; the mud data. defaults to MUD_LIB = @libdir@ + (string-append "--libdir=" + (assoc-ref %outputs "out") + "/opt/psyced/world") + (string-append "--bindir=" + (assoc-ref %outputs "out") + "/opt/psyced/bin") + ;; src/Makefile: Set ERQ_DIR to directory which contains the + ;; stuff which ERQ can execute (hopefully) savely. Was formerly + ;; defined in config.h. defaults to ERQ_DIR= @libexecdir@ + (string-append "--libexecdir=" + (assoc-ref %outputs "out") + "/opt/psyced/run")) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir-to-src + ;; We need to pass this as env variables + ;; and manually change the directory. + (lambda _ + (chdir "src") + (setenv "CONFIG_SHELL" (which "sh")) + (setenv "SHELL" (which "sh")) + #t))) + #:make-flags (list "install-all"))) + (inputs + `(("zlib" ,zlib) + ("openssl" ,openssl) + ("pcre" ,pcre))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("bison" ,bison) + ("gettext" ,gettext-minimal) + ("help2man" ,help2man) + ("autoconf" ,autoconf) + ("automake" ,automake))) + (home-page "http://lpc.psyc.eu/") + (synopsis "psycLPC is a multi-user network server programming language") + (description + "LPC is a bytecode language, invented to specifically implement +multi user virtual environments on the internet. This technology is used for +MUDs and also the psyced implementation of the Protocol for SYnchronous +Conferencing (PSYC). psycLPC is a fork of LDMud with some new features and +many bug fixes.") + (license license:gpl2)))) + ;;; messaging.scm ends here diff --git a/gnu/packages/psyc.scm b/gnu/packages/psyc.scm deleted file mode 100644 index 1a99a06001..0000000000 --- a/gnu/packages/psyc.scm +++ /dev/null @@ -1,227 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 ng0 -;;; -;;; 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 . - -(define-module (gnu packages psyc) - #:use-module (guix download) - #:use-module (guix git-download) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages) - #:use-module (guix build-system perl) - #:use-module (guix build-system gnu) - #:use-module (gnu packages) - #:use-module (gnu packages admin) - #:use-module (gnu packages autotools) - #:use-module (gnu packages bison) - #:use-module (gnu packages compression) - #:use-module (gnu packages gettext) - #:use-module (gnu packages linux) - #:use-module (gnu packages man) - #:use-module (gnu packages ncurses) - #:use-module (gnu packages perl) - #:use-module (gnu packages pcre) - #:use-module (gnu packages pkg-config) - #:use-module (gnu packages tls) - #:use-module (gnu packages web)) - -(define-public perl-net-psyc - (package - (name "perl-net-psyc") - (version "1.1") - (source - (origin - (method url-fetch) - (uri (string-append "http://perlpsyc.psyc.eu/" - "perlpsyc-" version ".zip")) - (file-name (string-append name "-" version ".zip")) - (sha256 - (base32 - "1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42")) - ;; psycmp3 currently depends on MP3::List and rxaudio (shareware), - ;; we can add it back when this is no longer the case. - (snippet '(delete-file "contrib/psycmp3")))) - (build-system perl-build-system) - (inputs - `(("perl-curses" ,perl-curses) - ("perl-io-socket-ssl" ,perl-io-socket-ssl))) - (arguments - `(#:phases - (modify-phases %standard-phases - (delete 'configure) ; No configure script - ;; There is a Makefile, but it does not install everything - ;; (leaves out psycion) and says - ;; "# Just to give you a rough idea". XXX: Fix it upstream. - (replace 'build - (lambda _ - (zero? (system* "make" "manuals")))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (doc (string-append out "/share/doc/perl-net-psyc")) - (man1 (string-append out "/share/man/man1")) - (man3 (string-append out "/share/man/man3")) - (bin (string-append out "/bin")) - (libpsyc (string-append out "/lib/psyc/ion")) - (libperl (string-append out "/lib/perl5/site_perl/" - ,(package-version perl)))) - - (copy-recursively "lib/perl5" libperl) - (copy-recursively "lib/psycion" libpsyc) - (copy-recursively "bin" bin) - (install-file "cgi/psycpager" (string-append doc "/cgi")) - (copy-recursively "contrib" (string-append doc "/contrib")) - (copy-recursively "hooks" (string-append doc "/hooks")) - (copy-recursively "sdj" (string-append doc "/sdj")) - (install-file "README.txt" doc) - (install-file "TODO.txt" doc) - (copy-recursively "share/man/man1" man1) - (copy-recursively "share/man/man3" man3) - #t))) - (add-after 'install 'wrap-programs - (lambda* (#:key outputs #:allow-other-keys) - ;; Make sure all executables in "bin" find the Perl modules - ;; provided by this package at runtime. - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin/")) - (path (getenv "PERL5LIB"))) - (for-each (lambda (file) - (wrap-program file - `("PERL5LIB" ":" prefix (,path)))) - (find-files bin "\\.*$")) - #t)))))) - (description - "@code{Net::PSYC} with support for TCP, UDP, Event.pm, @code{IO::Select} and -Gtk2 event loops. This package includes 12 applications and additional scripts: -psycion (a @uref{http://about.psyc.eu,PSYC} chat client), remotor (a control console -for @uref{https://torproject.org,tor} router) and many more.") - (synopsis "Perl implementation of PSYC protocol") - (home-page "http://perlpsyc.psyc.eu/") - (license (list license:gpl2 - (package-license perl) - ;; contrib/irssi-psyc.pl: - license:public-domain - ;; bin/psycplay states AGPL with no version: - license:agpl3+)))) - -(define-public libpsyc - (package - (name "libpsyc") - (version "20160913") - (source (origin - (method url-fetch) - (uri (string-append "http://www.psyced.org/files/" - name "-" version ".tar.xz")) - (sha256 - (base32 - "14q89fxap05ajkfn20rnhc6b1h4i3i2adyr7y6hs5zqwb2lcmc1p")))) - (build-system gnu-build-system) - (native-inputs - `(("perl" ,perl) - ("netcat" ,netcat) - ("procps" ,procps))) - (arguments - `(#:make-flags - (list "CC=gcc" - (string-append "PREFIX=" (assoc-ref %outputs "out"))) - #:phases - (modify-phases %standard-phases - ;; The rust bindings are the only ones in use, the lpc bindings - ;; are in psyclpc. The other bindings are not used by anything, - ;; the chances are high that the bindings do not even work, - ;; therefore we do not include them. - ;; TODO: Get a cargo build system in Guix. - (delete 'configure)))) ; no configure script - (home-page "http://about.psyc.eu/libpsyc") - (description - "@code{libpsyc} is a PSYC library in C which implements -core aspects of PSYC, useful for all kinds of clients and servers -including psyced.") - (synopsis "PSYC library in C") - (license license:agpl3+))) - -;; This commit removes the historic bundled pcre, not released as a tarball so far. -(define-public psyclpc - (let* ((commit "61cf9aa81297085e5c40170fd01221c752f8deba") - (revision "2")) - (package - (name "psyclpc") - (version (string-append "20160821-" revision "." (string-take commit 7))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "git://git.psyced.org/git/psyclpc") - (commit commit))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "1viwqymbhn3cwvx0zl58rlzl5gw47zxn0ldg2nbi55ghm5zxl1z5")))) - (build-system gnu-build-system) - (arguments - `(#:tests? #f ; There are no tests/checks. - #:configure-flags - ;; If you have questions about this part, look at - ;; "src/settings/psyced" and the ebuild. - (list - "--enable-use-tls=yes" - "--enable-use-mccp" ; Mud Client Compression Protocol, leave this enabled. - (string-append "--prefix=" - (assoc-ref %outputs "out")) - ;; src/Makefile: Set MUD_LIB to the directory which contains - ;; the mud data. defaults to MUD_LIB = @libdir@ - (string-append "--libdir=" - (assoc-ref %outputs "out") - "/opt/psyced/world") - (string-append "--bindir=" - (assoc-ref %outputs "out") - "/opt/psyced/bin") - ;; src/Makefile: Set ERQ_DIR to directory which contains the - ;; stuff which ERQ can execute (hopefully) savely. Was formerly - ;; defined in config.h. defaults to ERQ_DIR= @libexecdir@ - (string-append "--libexecdir=" - (assoc-ref %outputs "out") - "/opt/psyced/run")) - #:phases - (modify-phases %standard-phases - (add-before 'configure 'chdir-to-src - ;; We need to pass this as env variables - ;; and manually change the directory. - (lambda _ - (chdir "src") - (setenv "CONFIG_SHELL" (which "sh")) - (setenv "SHELL" (which "sh")) - #t))) - #:make-flags (list "install-all"))) - (inputs - `(("zlib" ,zlib) - ("openssl" ,openssl) - ("pcre" ,pcre))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("bison" ,bison) - ("gettext" ,gettext-minimal) - ("help2man" ,help2man) - ("autoconf" ,autoconf) - ("automake" ,automake))) - (home-page "http://lpc.psyc.eu/") - (synopsis "psycLPC is a multi-user network server programming language") - (description - "LPC is a bytecode language, invented to specifically implement -multi user virtual environments on the internet. This technology is used for -MUDs and also the psyced implementation of the Protocol for SYnchronous -Conferencing (PSYC). psycLPC is a fork of LDMud with some new features and -many bug fixes.") - (license license:gpl2)))) -- cgit v1.2.3 From cf3678df6e1bdbb4bf80d2fae041be69eec2cd67 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 26 Nov 2016 13:25:08 -0500 Subject: gnu: psyclpc: Update comment. This is a followup to commit eaa45301f46f13a3f71bcae6089d312f31174801. * gnu/packages/messaging.scm (psyclpc): Update comment. --- gnu/packages/messaging.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 02e51629ac..8660915bb0 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -980,7 +980,7 @@ including psyced.") (synopsis "PSYC library in C") (license license:agpl3+))) -;; This commit removes the historic bundled pcre, not released as a tarball so far. +;; This commit removes the historic bundled pcre and makes psyclpc reproducible. (define-public psyclpc (let* ((commit "61cf9aa81297085e5c40170fd01221c752f8deba") (revision "2")) -- cgit v1.2.3 From 5305ed20027a32ff1221cac6a131849852e807ba Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Wed, 23 Nov 2016 21:43:42 +0100 Subject: services: Factorize configuration abstraction. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/services/mail.scm and gnu/services/cups.scm (&configuration-error) (configuration-error, configuration-field-error) (configuration-missing-field, configuration-field, serialize-configuration) (validate-configuration, define-configuration, uglify-field-name) (serialize-field, serialize-package, serialize-string) (serialize-space-separated-string-list, space-separated-string-list?) (serialize-file-name, file-name?, serialize-field-name) (generate-documentation): Move duplicate code... * gnu/services/configuration.scm: ...to this new file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add configuration.scm. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + gnu/services/configuration.scm | 205 +++++++++++++++++++++++++++++++++++++++++ gnu/services/cups.scm | 180 +++--------------------------------- gnu/services/mail.scm | 183 +++--------------------------------- 4 files changed, 233 insertions(+), 336 deletions(-) create mode 100644 gnu/services/configuration.scm diff --git a/gnu/local.mk b/gnu/local.mk index 1b2bb4786d..f3f8772337 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -399,6 +399,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/admin.scm \ %D%/services/avahi.scm \ %D%/services/base.scm \ + %D%/services/configuration.scm \ %D%/services/cups.scm \ %D%/services/databases.scm \ %D%/services/dbus.scm \ diff --git a/gnu/services/configuration.scm b/gnu/services/configuration.scm new file mode 100644 index 0000000000..9f28aabc96 --- /dev/null +++ b/gnu/services/configuration.scm @@ -0,0 +1,205 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Andy Wingo +;;; +;;; 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 . + +(define-module (gnu services configuration) + #:use-module (guix packages) + #:use-module (guix records) + #:use-module (guix gexp) + #:autoload (texinfo) (texi-fragment->stexi) + #:autoload (texinfo serialize) (stexi->texi) + #:use-module (ice-9 match) + #:use-module ((srfi srfi-1) #:select (append-map)) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) + #:export (configuration-field + configuration-field-name + configuration-missing-field + configuration-field-error + serialize-configuration + define-configuration + validate-configuration + generate-documentation + serialize-field + serialize-string + serialize-name + serialize-space-separated-string-list + space-separated-string-list? + serialize-file-name + file-name? + serialize-boolean + serialize-package)) + +;;; Commentary: +;;; +;;; Syntax for creating Scheme bindings to complex configuration files. +;;; +;;; Code: + +(define-condition-type &configuration-error &error + configuration-error?) + +(define (configuration-error message) + (raise (condition (&message (message message)) + (&configuration-error)))) +(define (configuration-field-error field val) + (configuration-error + (format #f "Invalid value for field ~a: ~s" field val))) +(define (configuration-missing-field kind field) + (configuration-error + (format #f "~a configuration missing required field ~a" kind field))) + +(define-record-type* + configuration-field make-configuration-field configuration-field? + (name configuration-field-name) + (type configuration-field-type) + (getter configuration-field-getter) + (predicate configuration-field-predicate) + (serializer configuration-field-serializer) + (default-value-thunk configuration-field-default-value-thunk) + (documentation configuration-field-documentation)) + +(define (serialize-configuration config fields) + (for-each (lambda (field) + ((configuration-field-serializer field) + (configuration-field-name field) + ((configuration-field-getter field) config))) + fields)) + +(define (validate-configuration config fields) + (for-each (lambda (field) + (let ((val ((configuration-field-getter field) config))) + (unless ((configuration-field-predicate field) val) + (configuration-field-error + (configuration-field-name field) val)))) + fields)) + +(define-syntax define-configuration + (lambda (stx) + (define (id ctx part . parts) + (let ((part (syntax->datum part))) + (datum->syntax + ctx + (match parts + (() part) + (parts (symbol-append part + (syntax->datum (apply id ctx parts)))))))) + (syntax-case stx () + ((_ stem (field (field-type def) doc) ...) + (with-syntax (((field-getter ...) + (map (lambda (field) + (id #'stem #'stem #'- field)) + #'(field ...))) + ((field-predicate ...) + (map (lambda (type) + (id #'stem type #'?)) + #'(field-type ...))) + ((field-serializer ...) + (map (lambda (type) + (id #'stem #'serialize- type)) + #'(field-type ...)))) + #`(begin + (define-record-type* #,(id #'stem #'< #'stem #'>) + #,(id #'stem #'% #'stem) + #,(id #'stem #'make- #'stem) + #,(id #'stem #'stem #'?) + (field field-getter (default def)) + ...) + (define #,(id #'stem #'stem #'-fields) + (list (configuration-field + (name 'field) + (type 'field-type) + (getter field-getter) + (predicate field-predicate) + (serializer field-serializer) + (default-value-thunk (lambda () def)) + (documentation doc)) + ...)) + (define-syntax-rule (stem arg (... ...)) + (let ((conf (#,(id #'stem #'% #'stem) arg (... ...)))) + (validate-configuration conf + #,(id #'stem #'stem #'-fields)) + conf)))))))) + +(define (uglify-field-name field-name) + (let ((str (symbol->string field-name))) + (string-concatenate + (map string-titlecase + (string-split (if (string-suffix? "?" str) + (substring str 0 (1- (string-length str))) + str) + #\-))))) + +(define (serialize-field field-name val) + (format #t "~a ~a\n" (uglify-field-name field-name) val)) + +(define (serialize-package field-name val) + #f) + +(define (serialize-string field-name val) + (serialize-field field-name val)) + +(define (space-separated-string-list? val) + (and (list? val) + (and-map (lambda (x) + (and (string? x) (not (string-index x #\space)))) + val))) +(define (serialize-space-separated-string-list field-name val) + (serialize-field field-name (string-join val " "))) + +(define (file-name? val) + (and (string? val) + (string-prefix? "/" val))) +(define (serialize-file-name field-name val) + (serialize-string field-name val)) + +(define (serialize-boolean field-name val) + (serialize-string field-name (if val "yes" "no"))) + +;; A little helper to make it easier to document all those fields. +(define (generate-documentation documentation documentation-name) + (define (str x) (object->string x)) + (define (generate configuration-name) + (match (assq-ref documentation configuration-name) + ((fields . sub-documentation) + `((para "Available " (code ,(str configuration-name)) " fields are:") + ,@(map + (lambda (f) + (let ((field-name (configuration-field-name f)) + (field-type (configuration-field-type f)) + (field-docs (cdr (texi-fragment->stexi + (configuration-field-documentation f)))) + (default (catch #t + (configuration-field-default-value-thunk f) + (lambda _ '%invalid)))) + (define (show-default? val) + (or (string? default) (number? default) (boolean? default) + (and (symbol? val) (not (eq? val '%invalid))) + (and (list? val) (and-map show-default? val)))) + `(deftypevr (% (category + (code ,(str configuration-name)) " parameter") + (data-type ,(str field-type)) + (name ,(str field-name))) + ,@field-docs + ,@(if (show-default? default) + `((para "Defaults to " (samp ,(str default)) ".")) + '()) + ,@(append-map + generate + (or (assq-ref sub-documentation field-name) '()))))) + fields))))) + (stexi->texi `(*fragment* . ,(generate documentation-name)))) diff --git a/gnu/services/cups.scm b/gnu/services/cups.scm index 7542ee26c0..391046a75f 100644 --- a/gnu/services/cups.scm +++ b/gnu/services/cups.scm @@ -19,6 +19,7 @@ (define-module (gnu services cups) #:use-module (gnu services) #:use-module (gnu services shepherd) + #:use-module (gnu services configuration) #:use-module (gnu system shadow) #:use-module (gnu packages admin) #:use-module (gnu packages cups) @@ -26,16 +27,9 @@ #:use-module (guix packages) #:use-module (guix records) #:use-module (guix gexp) - #:use-module (texinfo) - #:use-module (texinfo serialize) #:use-module (ice-9 match) #:use-module ((srfi srfi-1) #:select (append-map)) - #:use-module (srfi srfi-34) - #:use-module (srfi srfi-35) - #:export (&cups-configuation-error - cups-configuration-error? - - cups-service-type + #:export (cups-service-type cups-configuration opaque-cups-configuration @@ -51,91 +45,6 @@ ;;; ;;; Code: -(define-condition-type &cups-configuration-error &error - cups-configuration-error?) - -(define (cups-error message) - (raise (condition (&message (message message)) - (&cups-configuration-error)))) -(define (cups-configuration-field-error field val) - (cups-error - (format #f "Invalid value for field ~a: ~s" field val))) -(define (cups-configuration-missing-field kind field) - (cups-error - (format #f "~a configuration missing required field ~a" kind field))) - -(define-record-type* - configuration-field make-configuration-field configuration-field? - (name configuration-field-name) - (type configuration-field-type) - (getter configuration-field-getter) - (predicate configuration-field-predicate) - (serializer configuration-field-serializer) - (default-value-thunk configuration-field-default-value-thunk) - (documentation configuration-field-documentation)) - -(define (serialize-configuration config fields) - (for-each (lambda (field) - ((configuration-field-serializer field) - (configuration-field-name field) - ((configuration-field-getter field) config))) - fields)) - -(define (validate-configuration config fields) - (for-each (lambda (field) - (let ((val ((configuration-field-getter field) config))) - (unless ((configuration-field-predicate field) val) - (cups-configuration-field-error - (configuration-field-name field) val)))) - fields)) - -(define-syntax define-configuration - (lambda (stx) - (define (id ctx part . parts) - (let ((part (syntax->datum part))) - (datum->syntax - ctx - (match parts - (() part) - (parts (symbol-append part - (syntax->datum (apply id ctx parts)))))))) - (syntax-case stx () - ((_ stem (field (field-type def) doc) ...) - (with-syntax (((field-getter ...) - (map (lambda (field) - (id #'stem #'stem #'- field)) - #'(field ...))) - ((field-predicate ...) - (map (lambda (type) - (id #'stem type #'?)) - #'(field-type ...))) - ((field-serializer ...) - (map (lambda (type) - (id #'stem #'serialize- type)) - #'(field-type ...)))) - #`(begin - (define-record-type* #,(id #'stem #'< #'stem #'>) - #,(id #'stem #'% #'stem) - #,(id #'stem #'make- #'stem) - #,(id #'stem #'stem #'?) - (field field-getter (default def)) - ...) - (define #,(id #'stem #'stem #'-fields) - (list (configuration-field - (name 'field) - (type 'field-type) - (getter field-getter) - (predicate field-predicate) - (serializer field-serializer) - (default-value-thunk (lambda () def)) - (documentation doc)) - ...)) - (define-syntax-rule (stem arg (... ...)) - (let ((conf (#,(id #'stem #'% #'stem) arg (... ...)))) - (validate-configuration conf - #,(id #'stem #'stem #'-fields)) - conf)))))))) - (define %cups-accounts (list (user-group (name "lp") (system? #t)) (user-group (name "lpadmin") (system? #t)) @@ -147,24 +56,6 @@ (home-directory "/var/empty") (shell (file-append shadow "/sbin/nologin"))))) -(define (uglify-field-name field-name) - (let ((str (symbol->string field-name))) - (string-concatenate - (map string-titlecase - (string-split (if (string-suffix? "?" str) - (substring str 0 (1- (string-length str))) - str) - #\-))))) - -(define (serialize-field field-name val) - (format #t "~a ~a\n" (uglify-field-name field-name) val)) - -(define (serialize-package field-name val) - #f) - -(define (serialize-string field-name val) - (serialize-field field-name val)) - (define (multiline-string-list? val) (and (list? val) (and-map (lambda (x) @@ -173,28 +64,11 @@ (define (serialize-multiline-string-list field-name val) (for-each (lambda (str) (serialize-field field-name str)) val)) -(define (space-separated-string-list? val) - (and (list? val) - (and-map (lambda (x) - (and (string? x) (not (string-index x #\space)))) - val))) -(define (serialize-space-separated-string-list field-name val) - (serialize-field field-name (string-join val " "))) - (define (space-separated-symbol-list? val) (and (list? val) (and-map symbol? val))) (define (serialize-space-separated-symbol-list field-name val) (serialize-field field-name (string-join (map symbol->string val) " "))) -(define (file-name? val) - (and (string? val) - (string-prefix? "/" val))) -(define (serialize-file-name field-name val) - (serialize-string field-name val)) - -(define (serialize-boolean field-name val) - (serialize-string field-name (if val "yes" "no"))) - (define (non-negative-integer? val) (and (exact-integer? val) (not (negative? val)))) (define (serialize-non-negative-integer field-name val) @@ -333,7 +207,7 @@ methods. Otherwise apply to only the listed methods.") (define-configuration location-access-control (path - (file-name (cups-configuration-missing-field 'location-access-control 'path)) + (file-name (configuration-missing-field 'location-access-control 'path)) "Specifies the URI path to which the access control applies.") (access-controls (access-control-list '()) @@ -359,7 +233,7 @@ methods. Otherwise apply to only the listed methods.") (define-configuration policy-configuration (name - (string (cups-configuration-missing-field 'policy-configuration 'name)) + (string (configuration-missing-field 'policy-configuration 'name)) "Name of the policy.") (job-private-access (string "@OWNER @SYSTEM") @@ -925,12 +799,12 @@ IPP specifications.") (package-list '()) "Drivers and other extensions to the CUPS package.") (cupsd.conf - (string (cups-configuration-missing-field 'opaque-cups-configuration - 'cupsd.conf)) + (string (configuration-missing-field 'opaque-cups-configuration + 'cupsd.conf)) "The contents of the @code{cupsd.conf} to use.") (cups-files.conf - (string (cups-configuration-missing-field 'opaque-cups-configuration - 'cups-files.conf)) + (string (configuration-missing-field 'opaque-cups-configuration + 'cups-files.conf)) "The contents of the @code{cups-files.conf} to use.")) (define %cups-activation @@ -1117,8 +991,8 @@ extensions that it uses." extensions))))))))) ;; A little helper to make it easier to document all those fields. -(define (generate-documentation) - (define documentation +(define (generate-cups-documentation) + (generate-documentation `((cups-configuration ,cups-configuration-fields (files-configuration files-configuration) @@ -1132,35 +1006,5 @@ extensions that it uses." ,location-access-control-fields (method-access-controls method-access-controls)) (operation-access-controls ,operation-access-control-fields) - (method-access-controls ,method-access-control-fields))) - (define (str x) (object->string x)) - (define (generate configuration-name) - (match (assq-ref documentation configuration-name) - ((fields . sub-documentation) - `((para "Available " (code ,(str configuration-name)) " fields are:") - ,@(map - (lambda (f) - (let ((field-name (configuration-field-name f)) - (field-type (configuration-field-type f)) - (field-docs (cdr (texi-fragment->stexi - (configuration-field-documentation f)))) - (default (catch #t - (configuration-field-default-value-thunk f) - (lambda _ '%invalid)))) - (define (show-default? val) - (or (string? default) (number? default) (boolean? default) - (and (symbol? val) (not (eq? val '%invalid))) - (and (list? val) (and-map show-default? val)))) - `(deftypevr (% (category - (code ,(str configuration-name)) " parameter") - (data-type ,(str field-type)) - (name ,(str field-name))) - ,@field-docs - ,@(if (show-default? default) - `((para "Defaults to " (samp ,(str default)) ".")) - '()) - ,@(append-map - generate - (or (assq-ref sub-documentation field-name) '()))))) - fields))))) - (stexi->texi `(*fragment* . ,(generate 'cups-configuration)))) + (method-access-controls ,method-access-control-fields)) + 'cups-configuration)) diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm index f7ab9516ba..c1381405d8 100644 --- a/gnu/services/mail.scm +++ b/gnu/services/mail.scm @@ -21,6 +21,7 @@ (define-module (gnu services mail) #:use-module (gnu services) #:use-module (gnu services base) + #:use-module (gnu services configuration) #:use-module (gnu services shepherd) #:use-module (gnu system pam) #:use-module (gnu system shadow) @@ -30,13 +31,8 @@ #:use-module (guix records) #:use-module (guix packages) #:use-module (guix gexp) - #:use-module (srfi srfi-34) - #:use-module (srfi srfi-35) #:use-module (ice-9 match) - #:export (&dovecot-configuation-error - dovecot-configuration-error? - - dovecot-service + #:export (dovecot-service dovecot-service-type dovecot-configuration opaque-dovecot-configuration @@ -65,112 +61,6 @@ ;;; ;;; Code: -(define-condition-type &dovecot-configuration-error &error - dovecot-configuration-error?) - -(define (dovecot-error message) - (raise (condition (&message (message message)) - (&dovecot-configuration-error)))) -(define (dovecot-configuration-field-error field val) - (dovecot-error - (format #f "Invalid value for field ~a: ~s" field val))) -(define (dovecot-configuration-missing-field kind field) - (dovecot-error - (format #f "~a configuration missing required field ~a" kind field))) - -(define-record-type* - configuration-field make-configuration-field configuration-field? - (name configuration-field-name) - (type configuration-field-type) - (getter configuration-field-getter) - (predicate configuration-field-predicate) - (serializer configuration-field-serializer) - (default-value-thunk configuration-field-default-value-thunk) - (documentation configuration-field-documentation)) - -(define-syntax define-configuration - (lambda (stx) - (define (id ctx part . parts) - (let ((part (syntax->datum part))) - (datum->syntax - ctx - (match parts - (() part) - (parts (symbol-append part - (syntax->datum (apply id ctx parts)))))))) - (syntax-case stx () - ((_ stem (field (field-type def) doc) ...) - (with-syntax (((field-getter ...) - (map (lambda (field) - (id #'stem #'stem #'- field)) - #'(field ...))) - ((field-predicate ...) - (map (lambda (type) - (id #'stem type #'?)) - #'(field-type ...))) - ((field-serializer ...) - (map (lambda (type) - (id #'stem #'serialize- type)) - #'(field-type ...)))) - #`(begin - (define-record-type* #,(id #'stem #'< #'stem #'>) - stem #,(id #'stem #'make- #'stem) #,(id #'stem #'stem #'?) - (field field-getter (default def)) - ...) - (define #,(id #'stem #'stem #'-fields) - (list (configuration-field - (name 'field) - (type 'field-type) - (getter field-getter) - (predicate field-predicate) - (serializer field-serializer) - (default-value-thunk (lambda () def)) - (documentation doc)) - ...)))))))) - -(define (serialize-configuration config fields) - (for-each (lambda (field) - ((configuration-field-serializer field) - (configuration-field-name field) - ((configuration-field-getter field) config))) - fields)) - -(define (validate-configuration config fields) - (for-each (lambda (field) - (let ((val ((configuration-field-getter field) config))) - (unless ((configuration-field-predicate field) val) - (dovecot-configuration-field-error - (configuration-field-name field) val)))) - fields)) - -(define (validate-package field-name package) - (unless (package? package) - (dovecot-configuration-field-error field-name package))) - -(define (uglify-field-name field-name) - (let ((str (symbol->string field-name))) - (string-join (string-split (if (string-suffix? "?" str) - (substring str 0 (1- (string-length str))) - str) - #\-) - "_"))) - -(define (serialize-package field-name val) - #f) - -(define (serialize-field field-name val) - (format #t "~a=~a\n" (uglify-field-name field-name) val)) - -(define (serialize-string field-name val) - (serialize-field field-name val)) - -(define (space-separated-string-list? val) - (and (list? val) - (and-map (lambda (x) - (and (string? x) (not (string-index x #\space)))) - val))) -(define (serialize-space-separated-string-list field-name val) - (serialize-field field-name (string-join val " "))) (define (comma-separated-string-list? val) (and (list? val) @@ -180,12 +70,6 @@ (define (serialize-comma-separated-string-list field-name val) (serialize-field field-name (string-join val ","))) -(define (file-name? val) - (and (string? val) - (string-prefix? "/" val))) -(define (serialize-file-name field-name val) - (serialize-string field-name val)) - (define (colon-separated-file-name-list? val) (and (list? val) ;; Trailing slashes not needed and not @@ -193,9 +77,6 @@ (define (serialize-colon-separated-file-name-list field-name val) (serialize-field field-name (string-join val ":"))) -(define (serialize-boolean field-name val) - (serialize-string field-name (if val "yes" "no"))) - (define (non-negative-integer? val) (and (exact-integer? val) (not (negative? val)))) (define (serialize-non-negative-integer field-name val) @@ -276,7 +157,7 @@ (define-configuration unix-listener-configuration (path - (file-name (dovecot-configuration-missing-field 'unix-listener 'path)) + (file-name (configuration-missing-field 'unix-listener 'path)) "The file name on which to listen.") (mode (string "0600") @@ -295,7 +176,7 @@ (define-configuration fifo-listener-configuration (path - (file-name (dovecot-configuration-missing-field 'fifo-listener 'path)) + (file-name (configuration-missing-field 'fifo-listener 'path)) "The file name on which to listen.") (mode (string "0600") @@ -314,14 +195,14 @@ (define-configuration inet-listener-configuration (protocol - (string (dovecot-configuration-missing-field 'inet-listener 'protocol)) + (string (configuration-missing-field 'inet-listener 'protocol)) "The protocol to listen for.") (address (string "") "The address on which to listen, or empty for all addresses.") (port (non-negative-integer - (dovecot-configuration-missing-field 'inet-listener 'port)) + (configuration-missing-field 'inet-listener 'port)) "The port on which to listen.") (ssl? (boolean #t) @@ -345,7 +226,7 @@ (serialize-fifo-listener-configuration field-name val)) ((inet-listener-configuration? val) (serialize-inet-listener-configuration field-name val)) - (else (dovecot-configuration-field-error field-name val)))) + (else (configuration-field-error field-name val)))) (define (listener-configuration-list? val) (and (list? val) (and-map listener-configuration? val))) (define (serialize-listener-configuration-list field-name val) @@ -355,7 +236,7 @@ (define-configuration service-configuration (kind - (string (dovecot-configuration-missing-field 'service 'kind)) + (string (configuration-missing-field 'service 'kind)) "The service kind. Valid values include @code{director}, @code{imap-login}, @code{pop3-login}, @code{lmtp}, @code{imap}, @code{pop3}, @code{auth}, @code{auth-worker}, @code{dict}, @@ -393,7 +274,7 @@ this.")) (define-configuration protocol-configuration (name - (string (dovecot-configuration-missing-field 'protocol 'name)) + (string (configuration-missing-field 'protocol 'name)) "The name of the protocol.") (auth-socket-path (string "/var/run/dovecot/auth-userdb") @@ -1497,8 +1378,8 @@ greyed out, instead of only later giving \"not selectable\" popup error. "The dovecot package.") (string - (string (dovecot-configuration-missing-field 'opaque-dovecot-configuration - 'string)) + (string (configuration-missing-field 'opaque-dovecot-configuration + 'string)) "The contents of the @code{dovecot.conf} to use.")) (define %dovecot-accounts @@ -1634,8 +1515,8 @@ by @code{dovecot-configuration}. @var{config} may also be created by (service dovecot-service-type config)) ;; A little helper to make it easier to document all those fields. -(define (generate-documentation) - (define documentation +(define (generate-dovecot-documentation) + (generate-documentation `((dovecot-configuration ,dovecot-configuration-fields (dict dict-configuration) @@ -1660,42 +1541,8 @@ by @code{dovecot-configuration}. @var{config} may also be created by ,service-configuration-fields (listeners unix-listener-configuration fifo-listener-configuration inet-listener-configuration)) - (protocol-configuration ,protocol-configuration-fields))) - (define (generate configuration-name) - (match (assq-ref documentation configuration-name) - ((fields . sub-documentation) - (format #t "\nAvailable @code{~a} fields are:\n\n" configuration-name) - (for-each - (lambda (f) - (let ((field-name (configuration-field-name f)) - (field-type (configuration-field-type f)) - (field-docs (string-trim-both - (configuration-field-documentation f))) - (default (catch #t - (configuration-field-default-value-thunk f) - (lambda _ 'nope)))) - (define (escape-chars str chars escape) - (with-output-to-string - (lambda () - (string-for-each (lambda (c) - (when (char-set-contains? chars c) - (display escape)) - (display c)) - str)))) - (define (show-default? val) - (or (string? default) (number? default) (boolean? default) - (and (list? val) (and-map show-default? val)))) - (format #t "@deftypevr {@code{~a} parameter} ~a ~a\n~a\n" - configuration-name field-type field-name field-docs) - (when (show-default? default) - (format #t "Defaults to @samp{~a}.\n" - (escape-chars (format #f "~s" default) - (char-set #\@ #\{ #\}) - #\@))) - (for-each generate (or (assq-ref sub-documentation field-name) '())) - (format #t "@end deftypevr\n\n"))) - fields)))) - (generate 'dovecot-configuration)) + (protocol-configuration ,protocol-configuration-fields)) + 'dovecot-configuration)) ;;; -- cgit v1.2.3 From 9e46245b89e0f30397f69391a2219a29caa336a2 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 25 Nov 2016 01:47:14 -0500 Subject: gnu: gst-plugins-good: Fix CVE-2016-{9634,9635,9636} and other security issues. * gnu/packages/patches/gst-plugins-good-fix-crashes.patch, gnu/packages/patches/gst-plugins-good-fix-invalid-read.patch, gnu/packages/patches/gst-plugins-good-fix-signedness.patch, gnu/packages/patches/gst-plugins-good-flic-bounds-check.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/gstreamer.scm (gst-plugins-good): Use them. --- gnu/local.mk | 4 + gnu/packages/gstreamer.scm | 5 + .../patches/gst-plugins-good-fix-crashes.patch | 1047 ++++++++++++++++++++ .../gst-plugins-good-fix-invalid-read.patch | 37 + .../patches/gst-plugins-good-fix-signedness.patch | 58 ++ .../gst-plugins-good-flic-bounds-check.patch | 319 ++++++ 6 files changed, 1470 insertions(+) create mode 100644 gnu/packages/patches/gst-plugins-good-fix-crashes.patch create mode 100644 gnu/packages/patches/gst-plugins-good-fix-invalid-read.patch create mode 100644 gnu/packages/patches/gst-plugins-good-fix-signedness.patch create mode 100644 gnu/packages/patches/gst-plugins-good-flic-bounds-check.patch diff --git a/gnu/local.mk b/gnu/local.mk index f3f8772337..8ca4d932d3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -585,6 +585,10 @@ dist_patch_DATA = \ %D%/packages/patches/grub-gets-undeclared.patch \ %D%/packages/patches/grub-freetype.patch \ %D%/packages/patches/gsl-test-i686.patch \ + %D%/packages/patches/gst-plugins-good-fix-crashes.patch \ + %D%/packages/patches/gst-plugins-good-fix-invalid-read.patch \ + %D%/packages/patches/gst-plugins-good-fix-signedness.patch \ + %D%/packages/patches/gst-plugins-good-flic-bounds-check.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-arm-fixes.patch \ %D%/packages/patches/guile-default-utf8.patch \ diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 5fe84ec2fc..86ea690e8b 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015, 2016 Sou Bunnbu ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -207,6 +208,10 @@ for the GStreamer multimedia library.") (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) + (patches (search-patches "gst-plugins-good-flic-bounds-check.patch" + "gst-plugins-good-fix-signedness.patch" + "gst-plugins-good-fix-invalid-read.patch" + "gst-plugins-good-fix-crashes.patch")) (sha256 (base32 "1hkcap9l2603266gyi6jgvx7frbvfmb7xhfhjizbczy1wykjwr57")))) diff --git a/gnu/packages/patches/gst-plugins-good-fix-crashes.patch b/gnu/packages/patches/gst-plugins-good-fix-crashes.patch new file mode 100644 index 0000000000..c36a595608 --- /dev/null +++ b/gnu/packages/patches/gst-plugins-good-fix-crashes.patch @@ -0,0 +1,1047 @@ +Fixes upstream bug #774859 (flic decoder: Invalid memory read in +flx_decode_chunks): + +https://bugzilla.gnome.org/show_bug.cgi?id=774859 + +Patch copied from upstream source repository: + +https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=be670f0daf67304fb92c76aa09c30cae0bfd1fe4 + +From be670f0daf67304fb92c76aa09c30cae0bfd1fe4 Mon Sep 17 00:00:00 2001 +From: Matthew Waters +Date: Wed, 23 Nov 2016 07:09:06 +1100 +Subject: [PATCH] flxdec: rewrite logic based on GstByteReader/Writer + +Solves overreading/writing the given arrays and will error out if the +streams asks to do that. + +Also does more error checking that the stream is valid and won't +overrun any allocated arrays. Also mitigate integer overflow errors +calculating allocation sizes. + +https://bugzilla.gnome.org/show_bug.cgi?id=774859 +--- + gst/flx/flx_color.c | 1 - + gst/flx/flx_fmt.h | 72 ------- + gst/flx/gstflxdec.c | 610 ++++++++++++++++++++++++++++++++++++---------------- + gst/flx/gstflxdec.h | 4 +- + 4 files changed, 427 insertions(+), 260 deletions(-) + +diff --git a/gst/flx/flx_color.c b/gst/flx/flx_color.c +index 047bfdf..3a58135 100644 +--- a/gst/flx/flx_color.c ++++ b/gst/flx/flx_color.c +@@ -101,7 +101,6 @@ flx_set_palette_vector (FlxColorSpaceConverter * flxpal, guint start, guint num, + } else { + memcpy (&flxpal->palvec[start * 3], newpal, grab * 3); + } +- + } + + void +diff --git a/gst/flx/flx_fmt.h b/gst/flx/flx_fmt.h +index 9ab31ba..abff200 100644 +--- a/gst/flx/flx_fmt.h ++++ b/gst/flx/flx_fmt.h +@@ -123,78 +123,6 @@ typedef struct _FlxFrameType + } FlxFrameType; + #define FlxFrameTypeSize 10 + +-#if G_BYTE_ORDER == G_BIG_ENDIAN +-#define LE_TO_BE_16(i16) ((guint16) (((i16) << 8) | ((i16) >> 8))) +-#define LE_TO_BE_32(i32) \ +- (((guint32) (LE_TO_BE_16((guint16) (i32))) << 16) | (LE_TO_BE_16((i32) >> 16))) +- +-#define FLX_FRAME_TYPE_FIX_ENDIANNESS(frm_type_p) \ +- do { \ +- (frm_type_p)->chunks = LE_TO_BE_16((frm_type_p)->chunks); \ +- (frm_type_p)->delay = LE_TO_BE_16((frm_type_p)->delay); \ +- } while(0) +- +-#define FLX_HUFFMAN_TABLE_FIX_ENDIANNESS(hffmn_table_p) \ +- do { \ +- (hffmn_table_p)->codelength = \ +- LE_TO_BE_16((hffmn_table_p)->codelength); \ +- (hffmn_table_p)->numcodes = LE_TO_BE_16((hffmn_table_p)->numcodes); \ +- } while(0) +- +-#define FLX_SEGMENT_TABLE_FIX_ENDIANNESS(sgmnt_table_p) \ +- ((sgmnt_table_p)->segments = LE_TO_BE_16((sgmnt_table_p)->segments)) +- +-#define FLX_PREFIX_CHUNK_FIX_ENDIANNESS(prfx_chnk_p) \ +- do { \ +- (prfx_chnk_p)->chunks = LE_TO_BE_16((prfx_chnk_p)->chunks); \ +- } while(0) +- +-#define FLX_FRAME_CHUNK_FIX_ENDIANNESS(frm_chnk_p) \ +- do { \ +- (frm_chnk_p)->size = LE_TO_BE_32((frm_chnk_p)->size); \ +- (frm_chnk_p)->id = LE_TO_BE_16((frm_chnk_p)->id); \ +- } while(0) +- +-#define FLX_HDR_FIX_ENDIANNESS(hdr_p) \ +- do { \ +- (hdr_p)->size = LE_TO_BE_32((hdr_p)->size); \ +- (hdr_p)->type = LE_TO_BE_16((hdr_p)->type); \ +- (hdr_p)->frames = LE_TO_BE_16((hdr_p)->frames); \ +- (hdr_p)->width = LE_TO_BE_16((hdr_p)->width); \ +- (hdr_p)->height = LE_TO_BE_16((hdr_p)->height); \ +- (hdr_p)->depth = LE_TO_BE_16((hdr_p)->depth); \ +- (hdr_p)->flags = LE_TO_BE_16((hdr_p)->flags); \ +- (hdr_p)->speed = LE_TO_BE_32((hdr_p)->speed); \ +- (hdr_p)->reserved1 = LE_TO_BE_16((hdr_p)->reserved1); \ +- (hdr_p)->created = LE_TO_BE_32((hdr_p)->created); \ +- (hdr_p)->creator = LE_TO_BE_32((hdr_p)->creator); \ +- (hdr_p)->updated = LE_TO_BE_32((hdr_p)->updated); \ +- (hdr_p)->updater = LE_TO_BE_32((hdr_p)->updater); \ +- (hdr_p)->aspect_dx = LE_TO_BE_16((hdr_p)->aspect_dx); \ +- (hdr_p)->aspect_dy = LE_TO_BE_16((hdr_p)->aspect_dy); \ +- (hdr_p)->ext_flags = LE_TO_BE_16((hdr_p)->ext_flags); \ +- (hdr_p)->keyframes = LE_TO_BE_16((hdr_p)->keyframes); \ +- (hdr_p)->totalframes = LE_TO_BE_16((hdr_p)->totalframes); \ +- (hdr_p)->req_memory = LE_TO_BE_32((hdr_p)->req_memory); \ +- (hdr_p)->max_regions = LE_TO_BE_16((hdr_p)->max_regions); \ +- (hdr_p)->transp_num = LE_TO_BE_16((hdr_p)->transp_num); \ +- (hdr_p)->oframe1 = LE_TO_BE_32((hdr_p)->oframe1); \ +- (hdr_p)->oframe2 = LE_TO_BE_32((hdr_p)->oframe2); \ +- } while(0) +-#else +- +-#define LE_TO_BE_16(i16) ((i16)) +-#define LE_TO_BE_32(i32) ((i32)) +- +-#define FLX_FRAME_TYPE_FIX_ENDIANNESS(frm_type_p) +-#define FLX_HUFFMAN_TABLE_FIX_ENDIANNESS(hffmn_table_p) +-#define FLX_SEGMENT_TABLE_FIX_ENDIANNESS(sgmnt_table_p) +-#define FLX_PREFIX_CHUNK_FIX_ENDIANNESS(prfx_chnk_p) +-#define FLX_FRAME_CHUNK_FIX_ENDIANNESS(frm_chnk_p) +-#define FLX_HDR_FIX_ENDIANNESS(hdr_p) +- +-#endif /* G_BYTE_ORDER == G_BIG_ENDIAN */ +- + G_END_DECLS + + #endif /* __GST_FLX_FMT_H__ */ +diff --git a/gst/flx/gstflxdec.c b/gst/flx/gstflxdec.c +index a237976..aa1bed5 100644 +--- a/gst/flx/gstflxdec.c ++++ b/gst/flx/gstflxdec.c +@@ -1,5 +1,6 @@ + /* GStreamer + * Copyright (C) <1999> Erik Walthinsen ++ * Copyright (C) <2016> Matthew Waters + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public +@@ -24,6 +25,7 @@ + /* + * http://www.coolutils.com/Formats/FLI + * http://woodshole.er.usgs.gov/operations/modeling/flc.html ++ * http://www.compuphase.com/flic.htm + */ + + #ifdef HAVE_CONFIG_H +@@ -73,10 +75,14 @@ static GstStateChangeReturn gst_flxdec_change_state (GstElement * element, + static gboolean gst_flxdec_src_query_handler (GstPad * pad, GstObject * parent, + GstQuery * query); + +-static void flx_decode_color (GstFlxDec *, guchar *, guchar *, gint); +-static gboolean flx_decode_brun (GstFlxDec *, guchar *, guchar *); +-static gboolean flx_decode_delta_fli (GstFlxDec *, guchar *, guchar *); +-static gboolean flx_decode_delta_flc (GstFlxDec *, guchar *, guchar *); ++static gboolean flx_decode_color (GstFlxDec * flxdec, GstByteReader * reader, ++ GstByteWriter * writer, gint scale); ++static gboolean flx_decode_brun (GstFlxDec * flxdec, ++ GstByteReader * reader, GstByteWriter * writer); ++static gboolean flx_decode_delta_fli (GstFlxDec * flxdec, ++ GstByteReader * reader, GstByteWriter * writer); ++static gboolean flx_decode_delta_flc (GstFlxDec * flxdec, ++ GstByteReader * reader, GstByteWriter * writer); + + #define rndalign(off) ((off) + ((off) & 1)) + +@@ -204,57 +210,59 @@ gst_flxdec_sink_event_handler (GstPad * pad, GstObject * parent, + } + + static gboolean +-flx_decode_chunks (GstFlxDec * flxdec, gulong count, guchar * data, +- guchar * dest) ++flx_decode_chunks (GstFlxDec * flxdec, gulong n_chunks, GstByteReader * reader, ++ GstByteWriter * writer) + { +- FlxFrameChunk *hdr; + gboolean ret = TRUE; + +- g_return_val_if_fail (data != NULL, FALSE); +- +- while (count--) { +- hdr = (FlxFrameChunk *) data; +- FLX_FRAME_CHUNK_FIX_ENDIANNESS (hdr); +- data += FlxFrameChunkSize; ++ while (n_chunks--) { ++ GstByteReader chunk; ++ guint32 size; ++ guint16 type; ++ ++ if (!gst_byte_reader_get_uint32_le (reader, &size)) ++ goto parse_error; ++ if (!gst_byte_reader_get_uint16_le (reader, &type)) ++ goto parse_error; ++ GST_LOG_OBJECT (flxdec, "chunk has type 0x%02x size %d", type, size); ++ ++ if (!gst_byte_reader_get_sub_reader (reader, &chunk, ++ size - FlxFrameChunkSize)) { ++ GST_ERROR_OBJECT (flxdec, "Incorrect size in the chunk header"); ++ goto error; ++ } + +- switch (hdr->id) { ++ switch (type) { + case FLX_COLOR64: +- flx_decode_color (flxdec, data, dest, 2); +- data += rndalign (hdr->size) - FlxFrameChunkSize; ++ ret = flx_decode_color (flxdec, &chunk, writer, 2); + break; + + case FLX_COLOR256: +- flx_decode_color (flxdec, data, dest, 0); +- data += rndalign (hdr->size) - FlxFrameChunkSize; ++ ret = flx_decode_color (flxdec, &chunk, writer, 0); + break; + + case FLX_BRUN: +- ret = flx_decode_brun (flxdec, data, dest); +- data += rndalign (hdr->size) - FlxFrameChunkSize; ++ ret = flx_decode_brun (flxdec, &chunk, writer); + break; + + case FLX_LC: +- ret = flx_decode_delta_fli (flxdec, data, dest); +- data += rndalign (hdr->size) - FlxFrameChunkSize; ++ ret = flx_decode_delta_fli (flxdec, &chunk, writer); + break; + + case FLX_SS2: +- ret = flx_decode_delta_flc (flxdec, data, dest); +- data += rndalign (hdr->size) - FlxFrameChunkSize; ++ ret = flx_decode_delta_flc (flxdec, &chunk, writer); + break; + + case FLX_BLACK: +- memset (dest, 0, flxdec->size); ++ ret = gst_byte_writer_fill (writer, 0, flxdec->size); + break; + + case FLX_MINI: +- data += rndalign (hdr->size) - FlxFrameChunkSize; + break; + + default: +- GST_WARNING ("Unimplented chunk type: 0x%02x size: %d - skipping", +- hdr->id, hdr->size); +- data += rndalign (hdr->size) - FlxFrameChunkSize; ++ GST_WARNING ("Unimplemented chunk type: 0x%02x size: %d - skipping", ++ type, size); + break; + } + +@@ -263,43 +271,60 @@ flx_decode_chunks (GstFlxDec * flxdec, gulong count, guchar * data, + } + + return ret; ++ ++parse_error: ++ GST_ERROR_OBJECT (flxdec, "Failed to decode chunk"); ++error: ++ return FALSE; + } + + +-static void +-flx_decode_color (GstFlxDec * flxdec, guchar * data, guchar * dest, gint scale) ++static gboolean ++flx_decode_color (GstFlxDec * flxdec, GstByteReader * reader, ++ GstByteWriter * writer, gint scale) + { +- guint packs, count, indx; ++ guint8 count, indx; ++ guint16 packs; + +- g_return_if_fail (flxdec != NULL); +- +- packs = (data[0] + (data[1] << 8)); +- +- data += 2; ++ if (!gst_byte_reader_get_uint16_le (reader, &packs)) ++ goto error; + indx = 0; + +- GST_LOG ("GstFlxDec: cmap packs: %d", packs); ++ GST_LOG ("GstFlxDec: cmap packs: %d", (guint) packs); + while (packs--) { ++ const guint8 *data; ++ guint16 actual_count; ++ + /* color map index + skip count */ +- indx += *data++; ++ if (!gst_byte_reader_get_uint8 (reader, &indx)) ++ goto error; + + /* number of rgb triplets */ +- count = *data++ & 0xff; +- if (count == 0) +- count = 256; ++ if (!gst_byte_reader_get_uint8 (reader, &count)) ++ goto error; + +- GST_LOG ("GstFlxDec: cmap count: %d (indx: %d)", count, indx); +- flx_set_palette_vector (flxdec->converter, indx, count, data, scale); ++ actual_count = count == 0 ? 256 : count; + +- data += (count * 3); ++ if (!gst_byte_reader_get_data (reader, count * 3, &data)) ++ goto error; ++ ++ GST_LOG_OBJECT (flxdec, "cmap count: %d (indx: %d)", actual_count, indx); ++ flx_set_palette_vector (flxdec->converter, indx, actual_count, ++ (guchar *) data, scale); + } ++ ++ return TRUE; ++ ++error: ++ GST_ERROR_OBJECT (flxdec, "Error decoding color palette"); ++ return FALSE; + } + + static gboolean +-flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest) ++flx_decode_brun (GstFlxDec * flxdec, GstByteReader * reader, ++ GstByteWriter * writer) + { +- gulong count, lines, row; +- guchar x; ++ gulong lines, row; + + g_return_val_if_fail (flxdec != NULL, FALSE); + +@@ -310,82 +335,125 @@ flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest) + * contain more then 255 RLE packets. we use the frame + * width instead. + */ +- data++; ++ if (!gst_byte_reader_skip (reader, 1)) ++ goto error; + + row = flxdec->hdr.width; + while (row) { +- count = *data++; ++ gint8 count; ++ ++ if (!gst_byte_reader_get_int8 (reader, &count)) ++ goto error; ++ ++ if (count <= 0) { ++ const guint8 *data; + +- if (count > 0x7f) { + /* literal run */ +- count = 0x100 - count; +- if ((glong) row - (glong) count < 0) { +- GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected."); ++ count = ABS (count); ++ ++ GST_LOG_OBJECT (flxdec, "have literal run of size %d", count); ++ ++ if (count > row) { ++ GST_ERROR_OBJECT (flxdec, "Invalid BRUN line detected. " ++ "bytes to write exceeds the end of the row"); + return FALSE; + } + row -= count; + +- while (count--) +- *dest++ = *data++; +- ++ if (!gst_byte_reader_get_data (reader, count, &data)) ++ goto error; ++ if (!gst_byte_writer_put_data (writer, data, count)) ++ goto error; + } else { +- if ((glong) row - (glong) count < 0) { +- GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected."); ++ guint8 x; ++ ++ GST_LOG_OBJECT (flxdec, "have replicate run of size %d", count); ++ ++ if (count > row) { ++ GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected." ++ "bytes to write exceeds the end of the row"); + return FALSE; + } + + /* replicate run */ + row -= count; +- x = *data++; + +- while (count--) +- *dest++ = x; ++ if (!gst_byte_reader_get_uint8 (reader, &x)) ++ goto error; ++ if (!gst_byte_writer_fill (writer, x, count)) ++ goto error; + } + } + } + + return TRUE; ++ ++error: ++ GST_ERROR_OBJECT (flxdec, "Failed to decode BRUN packet"); ++ return FALSE; + } + + static gboolean +-flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest) ++flx_decode_delta_fli (GstFlxDec * flxdec, GstByteReader * reader, ++ GstByteWriter * writer) + { +- gulong count, packets, lines, start_line; +- guchar *start_p, x; ++ guint16 start_line, lines; ++ guint line_start_i; + + g_return_val_if_fail (flxdec != NULL, FALSE); + g_return_val_if_fail (flxdec->delta_data != NULL, FALSE); + + /* use last frame for delta */ +- memcpy (dest, flxdec->delta_data, flxdec->size); ++ if (!gst_byte_writer_put_data (writer, flxdec->delta_data, flxdec->size)) ++ goto error; ++ ++ if (!gst_byte_reader_get_uint16_le (reader, &start_line)) ++ goto error; ++ if (!gst_byte_reader_get_uint16_le (reader, &lines)) ++ goto error; ++ GST_LOG_OBJECT (flxdec, "height %d start line %d line count %d", ++ flxdec->hdr.height, start_line, lines); + +- start_line = (data[0] + (data[1] << 8)); +- lines = (data[2] + (data[3] << 8)); + if (start_line + lines > flxdec->hdr.height) { + GST_ERROR_OBJECT (flxdec, "Invalid FLI packet detected. too many lines."); + return FALSE; + } +- data += 4; + +- /* start position of delta */ +- dest += (flxdec->hdr.width * start_line); +- start_p = dest; ++ line_start_i = flxdec->hdr.width * start_line; ++ if (!gst_byte_writer_set_pos (writer, line_start_i)) ++ goto error; + + while (lines--) { ++ guint8 packets; ++ + /* packet count */ +- packets = *data++; ++ if (!gst_byte_reader_get_uint8 (reader, &packets)) ++ goto error; ++ GST_LOG_OBJECT (flxdec, "have %d packets", packets); + + while (packets--) { + /* skip count */ +- guchar skip = *data++; +- dest += skip; ++ guint8 skip; ++ gint8 count; ++ if (!gst_byte_reader_get_uint8 (reader, &skip)) ++ goto error; ++ ++ /* skip bytes */ ++ if (!gst_byte_writer_set_pos (writer, ++ gst_byte_writer_get_pos (writer) + skip)) ++ goto error; + + /* RLE count */ +- count = *data++; ++ if (!gst_byte_reader_get_int8 (reader, &count)) ++ goto error; ++ ++ if (count < 0) { ++ guint8 x; + +- if (count > 0x7f) { + /* literal run */ +- count = 0x100 - count; ++ count = ABS (count); ++ GST_LOG_OBJECT (flxdec, "have literal run of size %d at offset %d", ++ count, skip); + + if (skip + count > flxdec->hdr.width) { + GST_ERROR_OBJECT (flxdec, "Invalid FLI packet detected. " +@@ -393,11 +461,16 @@ flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest) + return FALSE; + } + +- x = *data++; +- while (count--) +- *dest++ = x; +- ++ if (!gst_byte_reader_get_uint8 (reader, &x)) ++ goto error; ++ if (!gst_byte_writer_fill (writer, x, count)) ++ goto error; + } else { ++ const guint8 *data; ++ ++ GST_LOG_OBJECT (flxdec, "have replicate run of size %d at offset %d", ++ count, skip); ++ + if (skip + count > flxdec->hdr.width) { + GST_ERROR_OBJECT (flxdec, "Invalid FLI packet detected. " + "line too long."); +@@ -405,45 +478,60 @@ flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest) + } + + /* replicate run */ +- while (count--) +- *dest++ = *data++; ++ if (!gst_byte_reader_get_data (reader, count, &data)) ++ goto error; ++ if (!gst_byte_writer_put_data (writer, data, count)) ++ goto error; + } + } +- start_p += flxdec->hdr.width; +- dest = start_p; ++ line_start_i += flxdec->hdr.width; ++ if (!gst_byte_writer_set_pos (writer, line_start_i)) ++ goto error; + } + + return TRUE; ++ ++error: ++ GST_ERROR_OBJECT (flxdec, "Failed to decode FLI packet"); ++ return FALSE; + } + + static gboolean +-flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest) ++flx_decode_delta_flc (GstFlxDec * flxdec, GstByteReader * reader, ++ GstByteWriter * writer) + { +- gulong count, lines, start_l, opcode; +- guchar *start_p; ++ guint16 lines, start_l; + + g_return_val_if_fail (flxdec != NULL, FALSE); + g_return_val_if_fail (flxdec->delta_data != NULL, FALSE); + + /* use last frame for delta */ +- memcpy (dest, flxdec->delta_data, flxdec->size); ++ if (!gst_byte_writer_put_data (writer, flxdec->delta_data, flxdec->size)) ++ goto error; ++ if (!gst_byte_reader_get_uint16_le (reader, &lines)) ++ goto error; + +- lines = (data[0] + (data[1] << 8)); + if (lines > flxdec->hdr.height) { + GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. too many lines."); + return FALSE; + } +- data += 2; + +- start_p = dest; + start_l = lines; + + while (lines) { +- dest = start_p + (flxdec->hdr.width * (start_l - lines)); ++ guint16 opcode; ++ ++ if (!gst_byte_writer_set_pos (writer, ++ flxdec->hdr.width * (start_l - lines))) ++ goto error; + + /* process opcode(s) */ +- while ((opcode = (data[0] + (data[1] << 8))) & 0xc000) { +- data += 2; ++ while (TRUE) { ++ if (!gst_byte_reader_get_uint16_le (reader, &opcode)) ++ goto error; ++ if ((opcode & 0xc000) == 0) ++ break; ++ + if ((opcode & 0xc000) == 0xc000) { + /* line skip count */ + gulong skip = (0x10000 - opcode); +@@ -453,27 +541,44 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest) + return FALSE; + } + start_l += skip; +- dest += flxdec->hdr.width * skip; ++ if (!gst_byte_writer_set_pos (writer, ++ gst_byte_writer_get_pos (writer) + flxdec->hdr.width * skip)) ++ goto error; + } else { + /* last pixel */ +- dest += flxdec->hdr.width; +- *dest++ = (opcode & 0xff); ++ if (!gst_byte_writer_set_pos (writer, ++ gst_byte_writer_get_pos (writer) + flxdec->hdr.width)) ++ goto error; ++ if (!gst_byte_writer_put_uint8 (writer, opcode & 0xff)) ++ goto error; + } + } +- data += 2; + + /* last opcode is the packet count */ ++ GST_LOG_OBJECT (flxdec, "have %d packets", opcode); + while (opcode--) { + /* skip count */ +- guchar skip = *data++; +- dest += skip; ++ guint8 skip; ++ gint8 count; ++ ++ if (!gst_byte_reader_get_uint8 (reader, &skip)) ++ goto error; ++ if (!gst_byte_writer_set_pos (writer, ++ gst_byte_writer_get_pos (writer) + skip)) ++ goto error; + + /* RLE count */ +- count = *data++; ++ if (!gst_byte_reader_get_int8 (reader, &count)) ++ goto error; ++ ++ if (count < 0) { ++ guint16 x; + +- if (count > 0x7f) { + /* replicate word run */ +- count = 0x100 - count; ++ count = ABS (count); ++ ++ GST_LOG_OBJECT (flxdec, "have replicate run of size %d at offset %d", ++ count, skip); + + if (skip + count > flxdec->hdr.width) { + GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. " +@@ -481,22 +586,31 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest) + return FALSE; + } + ++ if (!gst_byte_reader_get_uint16_le (reader, &x)) ++ goto error; ++ + while (count--) { +- *dest++ = data[0]; +- *dest++ = data[1]; ++ if (!gst_byte_writer_put_uint16_le (writer, x)) { ++ goto error; ++ } + } +- data += 2; + } else { ++ GST_LOG_OBJECT (flxdec, "have literal run of size %d at offset %d", ++ count, skip); ++ + if (skip + count > flxdec->hdr.width) { + GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. " + "line too long."); + return FALSE; + } + +- /* literal word run */ + while (count--) { +- *dest++ = *data++; +- *dest++ = *data++; ++ guint16 x; ++ ++ if (!gst_byte_reader_get_uint16_le (reader, &x)) ++ goto error; ++ if (!gst_byte_writer_put_uint16_le (writer, x)) ++ goto error; + } + } + } +@@ -504,13 +618,91 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest) + } + + return TRUE; ++ ++error: ++ GST_ERROR_OBJECT (flxdec, "Failed to decode FLI packet"); ++ return FALSE; ++} ++ ++static gboolean ++_read_flx_header (GstFlxDec * flxdec, GstByteReader * reader, FlxHeader * flxh) ++{ ++ memset (flxh, 0, sizeof (*flxh)); ++ ++ if (!gst_byte_reader_get_uint32_le (reader, &flxh->size)) ++ goto error; ++ if (flxh->size < FlxHeaderSize) { ++ GST_ERROR_OBJECT (flxdec, "Invalid file size in the header"); ++ return FALSE; ++ } ++ ++ if (!gst_byte_reader_get_uint16_le (reader, &flxh->type)) ++ goto error; ++ if (!gst_byte_reader_get_uint16_le (reader, &flxh->frames)) ++ goto error; ++ if (!gst_byte_reader_get_uint16_le (reader, &flxh->width)) ++ goto error; ++ if (!gst_byte_reader_get_uint16_le (reader, &flxh->height)) ++ goto error; ++ if (!gst_byte_reader_get_uint16_le (reader, &flxh->depth)) ++ goto error; ++ if (!gst_byte_reader_get_uint16_le (reader, &flxh->flags)) ++ goto error; ++ if (!gst_byte_reader_get_uint32_le (reader, &flxh->speed)) ++ goto error; ++ if (!gst_byte_reader_skip (reader, 2)) /* reserved */ ++ goto error; ++ /* FLC */ ++ if (!gst_byte_reader_get_uint32_le (reader, &flxh->created)) ++ goto error; ++ if (!gst_byte_reader_get_uint32_le (reader, &flxh->creator)) ++ goto error; ++ if (!gst_byte_reader_get_uint32_le (reader, &flxh->updated)) ++ goto error; ++ if (!gst_byte_reader_get_uint32_le (reader, &flxh->updater)) ++ goto error; ++ if (!gst_byte_reader_get_uint16_le (reader, &flxh->aspect_dx)) ++ goto error; ++ if (!gst_byte_reader_get_uint16_le (reader, &flxh->aspect_dy)) ++ goto error; ++ /* EGI */ ++ if (!gst_byte_reader_get_uint16_le (reader, &flxh->ext_flags)) ++ goto error; ++ if (!gst_byte_reader_get_uint16_le (reader, &flxh->keyframes)) ++ goto error; ++ if (!gst_byte_reader_get_uint16_le (reader, &flxh->totalframes)) ++ goto error; ++ if (!gst_byte_reader_get_uint32_le (reader, &flxh->req_memory)) ++ goto error; ++ if (!gst_byte_reader_get_uint16_le (reader, &flxh->max_regions)) ++ goto error; ++ if (!gst_byte_reader_get_uint16_le (reader, &flxh->transp_num)) ++ goto error; ++ if (!gst_byte_reader_skip (reader, 24)) /* reserved */ ++ goto error; ++ /* FLC */ ++ if (!gst_byte_reader_get_uint32_le (reader, &flxh->oframe1)) ++ goto error; ++ if (!gst_byte_reader_get_uint32_le (reader, &flxh->oframe2)) ++ goto error; ++ if (!gst_byte_reader_skip (reader, 40)) /* reserved */ ++ goto error; ++ ++ return TRUE; ++ ++error: ++ GST_ERROR_OBJECT (flxdec, "Error reading file header"); ++ return FALSE; + } + + static GstFlowReturn + gst_flxdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) + { ++ GstByteReader reader; ++ GstBuffer *input; ++ GstMapInfo map_info; + GstCaps *caps; +- guint avail; ++ guint available; + GstFlowReturn res = GST_FLOW_OK; + + GstFlxDec *flxdec; +@@ -521,31 +713,50 @@ gst_flxdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) + g_return_val_if_fail (flxdec != NULL, GST_FLOW_ERROR); + + gst_adapter_push (flxdec->adapter, buf); +- avail = gst_adapter_available (flxdec->adapter); ++ available = gst_adapter_available (flxdec->adapter); ++ input = gst_adapter_get_buffer (flxdec->adapter, available); ++ if (!gst_buffer_map (input, &map_info, GST_MAP_READ)) { ++ GST_ELEMENT_ERROR (flxdec, STREAM, DECODE, ++ ("%s", "Failed to map buffer"), (NULL)); ++ goto error; ++ } ++ gst_byte_reader_init (&reader, map_info.data, map_info.size); + + if (flxdec->state == GST_FLXDEC_READ_HEADER) { +- if (avail >= FlxHeaderSize) { +- const guint8 *data = gst_adapter_map (flxdec->adapter, FlxHeaderSize); ++ if (available >= FlxHeaderSize) { ++ GstByteReader header; + GstCaps *templ; + +- memcpy ((gchar *) & flxdec->hdr, data, FlxHeaderSize); +- FLX_HDR_FIX_ENDIANNESS (&(flxdec->hdr)); +- gst_adapter_unmap (flxdec->adapter); ++ if (!gst_byte_reader_get_sub_reader (&reader, &header, FlxHeaderSize)) { ++ GST_ELEMENT_ERROR (flxdec, STREAM, DECODE, ++ ("%s", "Could not read header"), (NULL)); ++ goto unmap_input_error; ++ } + gst_adapter_flush (flxdec->adapter, FlxHeaderSize); ++ available -= FlxHeaderSize; ++ ++ if (!_read_flx_header (flxdec, &header, &flxdec->hdr)) { ++ GST_ELEMENT_ERROR (flxdec, STREAM, DECODE, ++ ("%s", "Failed to parse header"), (NULL)); ++ goto unmap_input_error; ++ } + + flxh = &flxdec->hdr; + + /* check header */ + if (flxh->type != FLX_MAGICHDR_FLI && +- flxh->type != FLX_MAGICHDR_FLC && flxh->type != FLX_MAGICHDR_FLX) +- goto wrong_type; ++ flxh->type != FLX_MAGICHDR_FLC && flxh->type != FLX_MAGICHDR_FLX) { ++ GST_ELEMENT_ERROR (flxdec, STREAM, WRONG_TYPE, (NULL), ++ ("not a flx file (type %x)", flxh->type)); ++ goto unmap_input_error; ++ } + +- GST_LOG ("size : %d", flxh->size); +- GST_LOG ("frames : %d", flxh->frames); +- GST_LOG ("width : %d", flxh->width); +- GST_LOG ("height : %d", flxh->height); +- GST_LOG ("depth : %d", flxh->depth); +- GST_LOG ("speed : %d", flxh->speed); ++ GST_INFO_OBJECT (flxdec, "size : %d", flxh->size); ++ GST_INFO_OBJECT (flxdec, "frames : %d", flxh->frames); ++ GST_INFO_OBJECT (flxdec, "width : %d", flxh->width); ++ GST_INFO_OBJECT (flxdec, "height : %d", flxh->height); ++ GST_INFO_OBJECT (flxdec, "depth : %d", flxh->depth); ++ GST_INFO_OBJECT (flxdec, "speed : %d", flxh->speed); + + flxdec->next_time = 0; + +@@ -573,18 +784,32 @@ gst_flxdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) + gst_pad_set_caps (flxdec->srcpad, caps); + gst_caps_unref (caps); + +- if (flxh->depth <= 8) +- flxdec->converter = +- flx_colorspace_converter_new (flxh->width, flxh->height); ++ /* zero means 8 */ ++ if (flxh->depth == 0) ++ flxh->depth = 8; ++ ++ if (flxh->depth != 8) { ++ GST_ELEMENT_ERROR (flxdec, STREAM, WRONG_TYPE, ++ ("%s", "Don't know how to decode non 8 bit depth streams"), (NULL)); ++ goto unmap_input_error; ++ } ++ ++ flxdec->converter = ++ flx_colorspace_converter_new (flxh->width, flxh->height); + + if (flxh->type == FLX_MAGICHDR_FLC || flxh->type == FLX_MAGICHDR_FLX) { +- GST_LOG ("(FLC) aspect_dx : %d", flxh->aspect_dx); +- GST_LOG ("(FLC) aspect_dy : %d", flxh->aspect_dy); +- GST_LOG ("(FLC) oframe1 : 0x%08x", flxh->oframe1); +- GST_LOG ("(FLC) oframe2 : 0x%08x", flxh->oframe2); ++ GST_INFO_OBJECT (flxdec, "(FLC) aspect_dx : %d", flxh->aspect_dx); ++ GST_INFO_OBJECT (flxdec, "(FLC) aspect_dy : %d", flxh->aspect_dy); ++ GST_INFO_OBJECT (flxdec, "(FLC) oframe1 : 0x%08x", flxh->oframe1); ++ GST_INFO_OBJECT (flxdec, "(FLC) oframe2 : 0x%08x", flxh->oframe2); + } + + flxdec->size = ((guint) flxh->width * (guint) flxh->height); ++ if (flxdec->size >= G_MAXSIZE / 4) { ++ GST_ELEMENT_ERROR (flxdec, STREAM, DECODE, ++ ("%s", "Cannot allocate required memory"), (NULL)); ++ goto unmap_input_error; ++ } + + /* create delta and output frame */ + flxdec->frame_data = g_malloc (flxdec->size); +@@ -596,55 +821,66 @@ gst_flxdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) + GstBuffer *out; + + /* while we have enough data in the adapter */ +- while (avail >= FlxFrameChunkSize && res == GST_FLOW_OK) { +- FlxFrameChunk flxfh; +- guchar *chunk; +- const guint8 *data; +- GstMapInfo map; +- +- chunk = NULL; +- data = gst_adapter_map (flxdec->adapter, FlxFrameChunkSize); +- memcpy (&flxfh, data, FlxFrameChunkSize); +- FLX_FRAME_CHUNK_FIX_ENDIANNESS (&flxfh); +- gst_adapter_unmap (flxdec->adapter); +- +- switch (flxfh.id) { +- case FLX_FRAME_TYPE: +- /* check if we have the complete frame */ +- if (avail < flxfh.size) +- goto need_more_data; +- +- /* flush header */ +- gst_adapter_flush (flxdec->adapter, FlxFrameChunkSize); +- +- chunk = gst_adapter_take (flxdec->adapter, +- flxfh.size - FlxFrameChunkSize); +- FLX_FRAME_TYPE_FIX_ENDIANNESS ((FlxFrameType *) chunk); +- if (((FlxFrameType *) chunk)->chunks == 0) +- break; ++ while (available >= FlxFrameChunkSize && res == GST_FLOW_OK) { ++ guint32 size; ++ guint16 type; + +- /* create 32 bits output frame */ +-// res = gst_pad_alloc_buffer_and_set_caps (flxdec->srcpad, +-// GST_BUFFER_OFFSET_NONE, +-// flxdec->size * 4, GST_PAD_CAPS (flxdec->srcpad), &out); +-// if (res != GST_FLOW_OK) +-// break; ++ if (!gst_byte_reader_get_uint32_le (&reader, &size)) ++ goto parse_error; ++ if (available < size) ++ goto need_more_data; + +- out = gst_buffer_new_and_alloc (flxdec->size * 4); ++ available -= size; ++ gst_adapter_flush (flxdec->adapter, size); ++ ++ if (!gst_byte_reader_get_uint16_le (&reader, &type)) ++ goto parse_error; ++ ++ switch (type) { ++ case FLX_FRAME_TYPE:{ ++ GstByteReader chunks; ++ GstByteWriter writer; ++ guint16 n_chunks; ++ GstMapInfo map; ++ ++ GST_LOG_OBJECT (flxdec, "Have frame type 0x%02x of size %d", type, ++ size); ++ ++ if (!gst_byte_reader_get_sub_reader (&reader, &chunks, ++ size - FlxFrameChunkSize)) ++ goto parse_error; ++ ++ if (!gst_byte_reader_get_uint16_le (&chunks, &n_chunks)) ++ goto parse_error; ++ GST_LOG_OBJECT (flxdec, "Have %d chunks", n_chunks); ++ ++ if (n_chunks == 0) ++ break; ++ if (!gst_byte_reader_skip (&chunks, 8)) /* reserved */ ++ goto parse_error; ++ ++ gst_byte_writer_init_with_data (&writer, flxdec->frame_data, ++ flxdec->size, TRUE); + + /* decode chunks */ +- if (!flx_decode_chunks (flxdec, +- ((FlxFrameType *) chunk)->chunks, +- chunk + FlxFrameTypeSize, flxdec->frame_data)) { ++ if (!flx_decode_chunks (flxdec, n_chunks, &chunks, &writer)) { + GST_ELEMENT_ERROR (flxdec, STREAM, DECODE, + ("%s", "Could not decode chunk"), NULL); +- return GST_FLOW_ERROR; ++ goto unmap_input_error; + } ++ gst_byte_writer_reset (&writer); + + /* save copy of the current frame for possible delta. */ + memcpy (flxdec->delta_data, flxdec->frame_data, flxdec->size); + +- gst_buffer_map (out, &map, GST_MAP_WRITE); ++ out = gst_buffer_new_and_alloc (flxdec->size * 4); ++ if (!gst_buffer_map (out, &map, GST_MAP_WRITE)) { ++ GST_ELEMENT_ERROR (flxdec, STREAM, DECODE, ++ ("%s", "Could not map output buffer"), NULL); ++ gst_buffer_unref (out); ++ goto unmap_input_error; ++ } ++ + /* convert current frame. */ + flx_colorspace_convert (flxdec->converter, flxdec->frame_data, + map.data); +@@ -655,30 +891,32 @@ gst_flxdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) + + res = gst_pad_push (flxdec->srcpad, out); + break; ++ } + default: +- /* check if we have the complete frame */ +- if (avail < flxfh.size) +- goto need_more_data; +- +- gst_adapter_flush (flxdec->adapter, flxfh.size); ++ GST_DEBUG_OBJECT (flxdec, "Unknown frame type 0x%02x, skipping %d", ++ type, size); ++ if (!gst_byte_reader_skip (&reader, size - FlxFrameChunkSize)) ++ goto parse_error; + break; + } +- +- g_free (chunk); +- +- avail = gst_adapter_available (flxdec->adapter); + } + } ++ ++ gst_buffer_unmap (input, &map_info); ++ gst_buffer_unref (input); ++ + need_more_data: + return res; + + /* ERRORS */ +-wrong_type: +- { +- GST_ELEMENT_ERROR (flxdec, STREAM, WRONG_TYPE, (NULL), +- ("not a flx file (type %x)", flxh->type)); +- return GST_FLOW_ERROR; +- } ++parse_error: ++ GST_ELEMENT_ERROR (flxdec, STREAM, DECODE, ++ ("%s", "Failed to parse stream"), (NULL)); ++unmap_input_error: ++ gst_buffer_unmap (input, &map_info); ++ gst_buffer_unref (input); ++error: ++ return GST_FLOW_ERROR; + } + + static GstStateChangeReturn +diff --git a/gst/flx/gstflxdec.h b/gst/flx/gstflxdec.h +index 3f9a0aa..4fd8dfd 100644 +--- a/gst/flx/gstflxdec.h ++++ b/gst/flx/gstflxdec.h +@@ -23,6 +23,8 @@ + #include + + #include ++#include ++#include + #include "flx_color.h" + + G_BEGIN_DECLS +@@ -45,7 +47,7 @@ struct _GstFlxDec { + + guint8 *delta_data, *frame_data; + GstAdapter *adapter; +- gulong size; ++ gsize size; + GstFlxDecState state; + gint64 frame_time; + gint64 next_time; +-- +2.10.2 + diff --git a/gnu/packages/patches/gst-plugins-good-fix-invalid-read.patch b/gnu/packages/patches/gst-plugins-good-fix-invalid-read.patch new file mode 100644 index 0000000000..1daaa2ae15 --- /dev/null +++ b/gnu/packages/patches/gst-plugins-good-fix-invalid-read.patch @@ -0,0 +1,37 @@ +Fixes upstream bug #774897 (flxdec: Unreferences itself one time too many on +invalid files): + +https://bugzilla.gnome.org/show_bug.cgi?id=774897 + +Patch copied from upstream source repository: + +https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=b31c504645a814c59d91d49e4fe218acaf93f4ca + +From b31c504645a814c59d91d49e4fe218acaf93f4ca Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= +Date: Wed, 23 Nov 2016 11:20:49 +0200 +Subject: [PATCH] flxdec: Don't unref() parent in the chain function + +We don't own the reference here, it is owned by the caller and given to +us for the scope of this function. Leftover mistake from 0.10 porting. + +https://bugzilla.gnome.org/show_bug.cgi?id=774897 +--- + gst/flx/gstflxdec.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/gst/flx/gstflxdec.c b/gst/flx/gstflxdec.c +index e675c99..a237976 100644 +--- a/gst/flx/gstflxdec.c ++++ b/gst/flx/gstflxdec.c +@@ -677,7 +677,6 @@ wrong_type: + { + GST_ELEMENT_ERROR (flxdec, STREAM, WRONG_TYPE, (NULL), + ("not a flx file (type %x)", flxh->type)); +- gst_object_unref (flxdec); + return GST_FLOW_ERROR; + } + } +-- +2.10.2 + diff --git a/gnu/packages/patches/gst-plugins-good-fix-signedness.patch b/gnu/packages/patches/gst-plugins-good-fix-signedness.patch new file mode 100644 index 0000000000..a3e20e19dd --- /dev/null +++ b/gnu/packages/patches/gst-plugins-good-fix-signedness.patch @@ -0,0 +1,58 @@ +This is a followup fix for upstream bug #774834 (flic decoder: Buffer overflow +in flx_decode_delta_fli): + +https://bugzilla.gnome.org/show_bug.cgi?id=774834#c2 + +Patch copied from upstream source repository: + +https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=1ab2b26193861b124426e2f8eb62b75b59ec5488 + +From 1ab2b26193861b124426e2f8eb62b75b59ec5488 Mon Sep 17 00:00:00 2001 +From: Matthew Waters +Date: Tue, 22 Nov 2016 23:46:00 +1100 +Subject: [PATCH] flxdec: fix some warnings comparing unsigned < 0 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +bf43f44fcfada5ec4a3ce60cb374340486fe9fac was comparing an unsigned +expression to be < 0 which was always false. + +gstflxdec.c: In function ‘flx_decode_brun’: +gstflxdec.c:322:33: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits] + if ((glong) row - count < 0) { + ^ +gstflxdec.c:332:33: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits] + if ((glong) row - count < 0) { + ^ + +https://bugzilla.gnome.org/show_bug.cgi?id=774834 +--- + gst/flx/gstflxdec.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gst/flx/gstflxdec.c b/gst/flx/gstflxdec.c +index d51a8e6..e675c99 100644 +--- a/gst/flx/gstflxdec.c ++++ b/gst/flx/gstflxdec.c +@@ -319,7 +319,7 @@ flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest) + if (count > 0x7f) { + /* literal run */ + count = 0x100 - count; +- if ((glong) row - count < 0) { ++ if ((glong) row - (glong) count < 0) { + GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected."); + return FALSE; + } +@@ -329,7 +329,7 @@ flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest) + *dest++ = *data++; + + } else { +- if ((glong) row - count < 0) { ++ if ((glong) row - (glong) count < 0) { + GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected."); + return FALSE; + } +-- +2.10.2 + diff --git a/gnu/packages/patches/gst-plugins-good-flic-bounds-check.patch b/gnu/packages/patches/gst-plugins-good-flic-bounds-check.patch new file mode 100644 index 0000000000..f77dca2cd6 --- /dev/null +++ b/gnu/packages/patches/gst-plugins-good-flic-bounds-check.patch @@ -0,0 +1,319 @@ +Fix CVE-2016-{9634,9635,9636}. + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9634 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9635 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9636 + +This fixes upstream bug #774834 (flic decoder: Buffer overflow in +flx_decode_delta_fli): + +https://bugzilla.gnome.org/show_bug.cgi?id=774834 + +Patch copied from upstream source repository: + +https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=2e203a79b7d9af4029307c1a845b3c148d5f5e62 + +From 2e203a79b7d9af4029307c1a845b3c148d5f5e62 Mon Sep 17 00:00:00 2001 +From: Matthew Waters +Date: Tue, 22 Nov 2016 19:05:00 +1100 +Subject: [PATCH] flxdec: add some write bounds checking + +Without checking the bounds of the frame we are writing into, we can +write off the end of the destination buffer. + +https://scarybeastsecurity.blogspot.dk/2016/11/0day-exploit-advancing-exploitation.html + +https://bugzilla.gnome.org/show_bug.cgi?id=774834 +--- + gst/flx/gstflxdec.c | 116 +++++++++++++++++++++++++++++++++++++++++----------- + 1 file changed, 91 insertions(+), 25 deletions(-) + +diff --git a/gst/flx/gstflxdec.c b/gst/flx/gstflxdec.c +index 604be2f..d51a8e6 100644 +--- a/gst/flx/gstflxdec.c ++++ b/gst/flx/gstflxdec.c +@@ -74,9 +74,9 @@ static gboolean gst_flxdec_src_query_handler (GstPad * pad, GstObject * parent, + GstQuery * query); + + static void flx_decode_color (GstFlxDec *, guchar *, guchar *, gint); +-static void flx_decode_brun (GstFlxDec *, guchar *, guchar *); +-static void flx_decode_delta_fli (GstFlxDec *, guchar *, guchar *); +-static void flx_decode_delta_flc (GstFlxDec *, guchar *, guchar *); ++static gboolean flx_decode_brun (GstFlxDec *, guchar *, guchar *); ++static gboolean flx_decode_delta_fli (GstFlxDec *, guchar *, guchar *); ++static gboolean flx_decode_delta_flc (GstFlxDec *, guchar *, guchar *); + + #define rndalign(off) ((off) + ((off) & 1)) + +@@ -203,13 +203,14 @@ gst_flxdec_sink_event_handler (GstPad * pad, GstObject * parent, + return ret; + } + +-static void ++static gboolean + flx_decode_chunks (GstFlxDec * flxdec, gulong count, guchar * data, + guchar * dest) + { + FlxFrameChunk *hdr; ++ gboolean ret = TRUE; + +- g_return_if_fail (data != NULL); ++ g_return_val_if_fail (data != NULL, FALSE); + + while (count--) { + hdr = (FlxFrameChunk *) data; +@@ -228,17 +229,17 @@ flx_decode_chunks (GstFlxDec * flxdec, gulong count, guchar * data, + break; + + case FLX_BRUN: +- flx_decode_brun (flxdec, data, dest); ++ ret = flx_decode_brun (flxdec, data, dest); + data += rndalign (hdr->size) - FlxFrameChunkSize; + break; + + case FLX_LC: +- flx_decode_delta_fli (flxdec, data, dest); ++ ret = flx_decode_delta_fli (flxdec, data, dest); + data += rndalign (hdr->size) - FlxFrameChunkSize; + break; + + case FLX_SS2: +- flx_decode_delta_flc (flxdec, data, dest); ++ ret = flx_decode_delta_flc (flxdec, data, dest); + data += rndalign (hdr->size) - FlxFrameChunkSize; + break; + +@@ -256,7 +257,12 @@ flx_decode_chunks (GstFlxDec * flxdec, gulong count, guchar * data, + data += rndalign (hdr->size) - FlxFrameChunkSize; + break; + } ++ ++ if (!ret) ++ break; + } ++ ++ return ret; + } + + +@@ -289,13 +295,13 @@ flx_decode_color (GstFlxDec * flxdec, guchar * data, guchar * dest, gint scale) + } + } + +-static void ++static gboolean + flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest) + { + gulong count, lines, row; + guchar x; + +- g_return_if_fail (flxdec != NULL); ++ g_return_val_if_fail (flxdec != NULL, FALSE); + + lines = flxdec->hdr.height; + while (lines--) { +@@ -313,12 +319,21 @@ flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest) + if (count > 0x7f) { + /* literal run */ + count = 0x100 - count; ++ if ((glong) row - count < 0) { ++ GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected."); ++ return FALSE; ++ } + row -= count; + + while (count--) + *dest++ = *data++; + + } else { ++ if ((glong) row - count < 0) { ++ GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected."); ++ return FALSE; ++ } ++ + /* replicate run */ + row -= count; + x = *data++; +@@ -328,22 +343,28 @@ flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest) + } + } + } ++ ++ return TRUE; + } + +-static void ++static gboolean + flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest) + { + gulong count, packets, lines, start_line; + guchar *start_p, x; + +- g_return_if_fail (flxdec != NULL); +- g_return_if_fail (flxdec->delta_data != NULL); ++ g_return_val_if_fail (flxdec != NULL, FALSE); ++ g_return_val_if_fail (flxdec->delta_data != NULL, FALSE); + + /* use last frame for delta */ + memcpy (dest, flxdec->delta_data, flxdec->size); + + start_line = (data[0] + (data[1] << 8)); + lines = (data[2] + (data[3] << 8)); ++ if (start_line + lines > flxdec->hdr.height) { ++ GST_ERROR_OBJECT (flxdec, "Invalid FLI packet detected. too many lines."); ++ return FALSE; ++ } + data += 4; + + /* start position of delta */ +@@ -356,7 +377,8 @@ flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest) + + while (packets--) { + /* skip count */ +- dest += *data++; ++ guchar skip = *data++; ++ dest += skip; + + /* RLE count */ + count = *data++; +@@ -364,12 +386,24 @@ flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest) + if (count > 0x7f) { + /* literal run */ + count = 0x100 - count; +- x = *data++; + ++ if (skip + count > flxdec->hdr.width) { ++ GST_ERROR_OBJECT (flxdec, "Invalid FLI packet detected. " ++ "line too long."); ++ return FALSE; ++ } ++ ++ x = *data++; + while (count--) + *dest++ = x; + + } else { ++ if (skip + count > flxdec->hdr.width) { ++ GST_ERROR_OBJECT (flxdec, "Invalid FLI packet detected. " ++ "line too long."); ++ return FALSE; ++ } ++ + /* replicate run */ + while (count--) + *dest++ = *data++; +@@ -378,21 +412,27 @@ flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest) + start_p += flxdec->hdr.width; + dest = start_p; + } ++ ++ return TRUE; + } + +-static void ++static gboolean + flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest) + { + gulong count, lines, start_l, opcode; + guchar *start_p; + +- g_return_if_fail (flxdec != NULL); +- g_return_if_fail (flxdec->delta_data != NULL); ++ g_return_val_if_fail (flxdec != NULL, FALSE); ++ g_return_val_if_fail (flxdec->delta_data != NULL, FALSE); + + /* use last frame for delta */ + memcpy (dest, flxdec->delta_data, flxdec->size); + + lines = (data[0] + (data[1] << 8)); ++ if (lines > flxdec->hdr.height) { ++ GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. too many lines."); ++ return FALSE; ++ } + data += 2; + + start_p = dest; +@@ -405,9 +445,15 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest) + while ((opcode = (data[0] + (data[1] << 8))) & 0xc000) { + data += 2; + if ((opcode & 0xc000) == 0xc000) { +- /* skip count */ +- start_l += (0x10000 - opcode); +- dest += flxdec->hdr.width * (0x10000 - opcode); ++ /* line skip count */ ++ gulong skip = (0x10000 - opcode); ++ if (skip > flxdec->hdr.height) { ++ GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. " ++ "skip line count too big."); ++ return FALSE; ++ } ++ start_l += skip; ++ dest += flxdec->hdr.width * skip; + } else { + /* last pixel */ + dest += flxdec->hdr.width; +@@ -419,7 +465,8 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest) + /* last opcode is the packet count */ + while (opcode--) { + /* skip count */ +- dest += *data++; ++ guchar skip = *data++; ++ dest += skip; + + /* RLE count */ + count = *data++; +@@ -427,12 +474,25 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest) + if (count > 0x7f) { + /* replicate word run */ + count = 0x100 - count; ++ ++ if (skip + count > flxdec->hdr.width) { ++ GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. " ++ "line too long."); ++ return FALSE; ++ } ++ + while (count--) { + *dest++ = data[0]; + *dest++ = data[1]; + } + data += 2; + } else { ++ if (skip + count > flxdec->hdr.width) { ++ GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. " ++ "line too long."); ++ return FALSE; ++ } ++ + /* literal word run */ + while (count--) { + *dest++ = *data++; +@@ -442,6 +502,8 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest) + } + lines--; + } ++ ++ return TRUE; + } + + static GstFlowReturn +@@ -571,9 +633,13 @@ gst_flxdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) + out = gst_buffer_new_and_alloc (flxdec->size * 4); + + /* decode chunks */ +- flx_decode_chunks (flxdec, +- ((FlxFrameType *) chunk)->chunks, +- chunk + FlxFrameTypeSize, flxdec->frame_data); ++ if (!flx_decode_chunks (flxdec, ++ ((FlxFrameType *) chunk)->chunks, ++ chunk + FlxFrameTypeSize, flxdec->frame_data)) { ++ GST_ELEMENT_ERROR (flxdec, STREAM, DECODE, ++ ("%s", "Could not decode chunk"), NULL); ++ return GST_FLOW_ERROR; ++ } + + /* save copy of the current frame for possible delta. */ + memcpy (flxdec->delta_data, flxdec->frame_data, flxdec->size); +-- +2.10.2 + -- cgit v1.2.3 From 439a2f62ceba61b6148df85af952662e1a0a2f33 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sat, 26 Nov 2016 22:53:13 +0200 Subject: gnu: ffmpeg: Update to 3.2.1. * gnu/packages/video.scm (ffmpeg): Update to 3.2.1. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 4eab99b5aa..3b93f27426 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -441,14 +441,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") (define-public ffmpeg (package (name "ffmpeg") - (version "3.2") + (version "3.2.1") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "1nnmd3h9pr2zic08isjcm1cmvcyd0aimpayb9r4qy45bihdhrxw8")))) + "1pxsy9s9n2nvz970rid3j3b45w6s7ziwnrbc16rny7k0bpd97kqy")))) (build-system gnu-build-system) (inputs `(("fontconfig" ,fontconfig) -- cgit v1.2.3 From cd65d600ac6e8701ef9c54f5d09a45cd6c149949 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 26 Nov 2016 15:03:06 -0500 Subject: gnu: cyrus-sasl: Fix CVE-2013-4122. * gnu/packages/patches/cyrus-sasl-CVE-2013-4122.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/cyrus-sasl.scm (cyrus-sasl)[replacement]: New field. (cyrus-sasl/fixed): New variable. [source]: Use patch. --- gnu/local.mk | 1 + gnu/packages/cyrus-sasl.scm | 9 ++ .../patches/cyrus-sasl-CVE-2013-4122.patch | 130 +++++++++++++++++++++ 3 files changed, 140 insertions(+) create mode 100644 gnu/packages/patches/cyrus-sasl-CVE-2013-4122.patch diff --git a/gnu/local.mk b/gnu/local.mk index 8ca4d932d3..dfa9c0077d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -506,6 +506,7 @@ dist_patch_DATA = \ %D%/packages/patches/cssc-missing-include.patch \ %D%/packages/patches/clucene-contribs-lib.patch \ %D%/packages/patches/cursynth-wave-rand.patch \ + %D%/packages/patches/cyrus-sasl-CVE-2013-4122.patch \ %D%/packages/patches/dbus-helper-search-path.patch \ %D%/packages/patches/devil-CVE-2009-3994.patch \ %D%/packages/patches/devil-fix-libpng.patch \ diff --git a/gnu/packages/cyrus-sasl.scm b/gnu/packages/cyrus-sasl.scm index 99ff1e228e..89a4a49797 100644 --- a/gnu/packages/cyrus-sasl.scm +++ b/gnu/packages/cyrus-sasl.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2013 Andreas Enge +;;; Copyright © 2016 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,6 +31,7 @@ (define-public cyrus-sasl (package (name "cyrus-sasl") + (replacement cyrus-sasl/fixed) (version "2.1.26") (source (origin (method url-fetch) @@ -64,3 +66,10 @@ server writers.") (license (license:non-copyleft "file://COPYING" "See COPYING in the distribution.")) (home-page "http://cyrusimap.web.cmu.edu"))) + +(define cyrus-sasl/fixed + (package + (inherit cyrus-sasl) + (source (origin + (inherit (package-source cyrus-sasl)) + (patches (search-patches "cyrus-sasl-CVE-2013-4122.patch")))))) diff --git a/gnu/packages/patches/cyrus-sasl-CVE-2013-4122.patch b/gnu/packages/patches/cyrus-sasl-CVE-2013-4122.patch new file mode 100644 index 0000000000..fc72e42e03 --- /dev/null +++ b/gnu/packages/patches/cyrus-sasl-CVE-2013-4122.patch @@ -0,0 +1,130 @@ +Fix CVE-2013-4122. + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4122 + +Patch copied from upstream source repository: +https://github.com/cyrusimap/cyrus-sasl/commit/dedad73e5e7a75d01a5f3d5a6702ab8ccd2ff40d + +From dedad73e5e7a75d01a5f3d5a6702ab8ccd2ff40d Mon Sep 17 00:00:00 2001 +From: mancha +Date: Thu, 11 Jul 2013 10:08:07 +0100 +Subject: Handle NULL returns from glibc 2.17+ crypt() + +Starting with glibc 2.17 (eglibc 2.17), crypt() fails with EINVAL +(w/ NULL return) if the salt violates specifications. Additionally, +on FIPS-140 enabled Linux systems, DES/MD5-encrypted passwords +passed to crypt() fail with EPERM (w/ NULL return). + +When using glibc's crypt(), check return value to avoid a possible +NULL pointer dereference. + +Patch by mancha1@hush.com. +--- + pwcheck/pwcheck_getpwnam.c | 3 ++- + pwcheck/pwcheck_getspnam.c | 4 +++- + saslauthd/auth_getpwent.c | 4 +++- + saslauthd/auth_shadow.c | 8 +++----- + 4 files changed, 11 insertions(+), 8 deletions(-) + +diff --git a/pwcheck/pwcheck_getpwnam.c b/pwcheck/pwcheck_getpwnam.c +index 4b34222..400289c 100644 +--- a/pwcheck/pwcheck_getpwnam.c ++++ b/pwcheck/pwcheck_getpwnam.c +@@ -32,6 +32,7 @@ char *userid; + char *password; + { + char* r; ++ char* crpt_passwd; + struct passwd *pwd; + + pwd = getpwnam(userid); +@@ -41,7 +42,7 @@ char *password; + else if (pwd->pw_passwd[0] == '*') { + r = "Account disabled"; + } +- else if (strcmp(pwd->pw_passwd, crypt(password, pwd->pw_passwd)) != 0) { ++ else if (!(crpt_passwd = crypt(password, pwd->pw_passwd)) || strcmp(pwd->pw_passwd, (const char *)crpt_passwd) != 0) { + r = "Incorrect password"; + } + else { +diff --git a/pwcheck/pwcheck_getspnam.c b/pwcheck/pwcheck_getspnam.c +index 2b11286..6d607bb 100644 +--- a/pwcheck/pwcheck_getspnam.c ++++ b/pwcheck/pwcheck_getspnam.c +@@ -32,13 +32,15 @@ char *userid; + char *password; + { + struct spwd *pwd; ++ char *crpt_passwd; + + pwd = getspnam(userid); + if (!pwd) { + return "Userid not found"; + } + +- if (strcmp(pwd->sp_pwdp, crypt(password, pwd->sp_pwdp)) != 0) { ++ crpt_passwd = crypt(password, pwd->sp_pwdp); ++ if (!crpt_passwd || strcmp(pwd->sp_pwdp, (const char *)crpt_passwd) != 0) { + return "Incorrect password"; + } + else { +diff --git a/saslauthd/auth_getpwent.c b/saslauthd/auth_getpwent.c +index fc8029d..d4ebe54 100644 +--- a/saslauthd/auth_getpwent.c ++++ b/saslauthd/auth_getpwent.c +@@ -77,6 +77,7 @@ auth_getpwent ( + { + /* VARIABLES */ + struct passwd *pw; /* pointer to passwd file entry */ ++ char *crpt_passwd; /* encrypted password */ + int errnum; + /* END VARIABLES */ + +@@ -105,7 +106,8 @@ auth_getpwent ( + } + } + +- if (strcmp(pw->pw_passwd, (const char *)crypt(password, pw->pw_passwd))) { ++ crpt_passwd = crypt(password, pw->pw_passwd); ++ if (!crpt_passwd || strcmp(pw->pw_passwd, (const char *)crpt_passwd)) { + if (flags & VERBOSE) { + syslog(LOG_DEBUG, "DEBUG: auth_getpwent: %s: invalid password", login); + } +diff --git a/saslauthd/auth_shadow.c b/saslauthd/auth_shadow.c +index 677131b..1988afd 100644 +--- a/saslauthd/auth_shadow.c ++++ b/saslauthd/auth_shadow.c +@@ -210,8 +210,8 @@ auth_shadow ( + RETURN("NO Insufficient permission to access NIS authentication database (saslauthd)"); + } + +- cpw = strdup((const char *)crypt(password, sp->sp_pwdp)); +- if (strcmp(sp->sp_pwdp, cpw)) { ++ cpw = crypt(password, sp->sp_pwdp); ++ if (!cpw || strcmp(sp->sp_pwdp, (const char *)cpw)) { + if (flags & VERBOSE) { + /* + * This _should_ reveal the SHADOW_PW_LOCKED prefix to an +@@ -221,10 +221,8 @@ auth_shadow ( + syslog(LOG_DEBUG, "DEBUG: auth_shadow: pw mismatch: '%s' != '%s'", + sp->sp_pwdp, cpw); + } +- free(cpw); + RETURN("NO Incorrect password"); + } +- free(cpw); + + /* + * The following fields will be set to -1 if: +@@ -286,7 +284,7 @@ auth_shadow ( + RETURN("NO Invalid username"); + } + +- if (strcmp(upw->upw_passwd, crypt(password, upw->upw_passwd)) != 0) { ++ if (!(cpw = crypt(password, upw->upw_passwd)) || (strcmp(upw->upw_passwd, (const char *)cpw) != 0)) { + if (flags & VERBOSE) { + syslog(LOG_DEBUG, "auth_shadow: pw mismatch: %s != %s", + password, upw->upw_passwd); +-- +cgit v0.12 + -- cgit v1.2.3 From c3e2a2471cae95a4f08b97739ee315e14a332986 Mon Sep 17 00:00:00 2001 From: Toni Reina Date: Sat, 26 Nov 2016 15:12:22 +0100 Subject: gnu: Add Mozilla Fira Mono font. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/fonts.scm (font-fira-mono): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/fonts.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 009efd2955..f385559f7e 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2016 Dmitry Nikolaev ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Marius Bakke +;;; Copyright © 2016 Toni Reina ;;; ;;; This file is part of GNU Guix. ;;; @@ -898,3 +899,38 @@ powerline support.") "Source Code Pro is a set of monospaced OpenType fonts that have been designed to work well in user interface environments.") (license license:silofl1.1))) + +(define-public font-fira-mono + (package + (name "font-fira-mono") + (version "3.206") + (source (origin + (method url-fetch) + (uri (string-append "https://carrois.com/downloads/fira_mono_3_2/" + "FiraMonoFonts" + (string-replace-substring version "." "") + ".zip")) + (sha256 + (base32 + "1z65x0dw5dq6rs6p9wyfrir50rlh95vgzsxr8jcd40nqazw4jhpi")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((unzip (string-append (assoc-ref %build-inputs "unzip") + "/bin/unzip")) + (font-dir (string-append %output "/share/fonts/opentype"))) + (mkdir-p font-dir) + (system* unzip + "-j" + (assoc-ref %build-inputs "source") + "*.otf" + "-d" font-dir))))) + (native-inputs + `(("unzip" ,unzip))) + (home-page "http://mozilla.github.io/Fira/") + (synopsis "Mozilla's monospace font") + (description "This is the typeface used by Mozilla in Firefox OS.") + (license license:silofl1.1))) -- cgit v1.2.3 From 1cd1d8a7ea43bfb99aa05c74da5430bb3d8a4309 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 26 Nov 2016 23:00:36 +0100 Subject: offload: Call 'machine-load' only once per machine. This fixes a longstanding issue where 'choose-build-machine' would make on average O(N log(N)) calls to 'machine-load', plus an extra call for the selected machine, instead of N calls. * guix/scripts/offload.scm (machine-load): Add comment. (machine-power-factor, machine-less-loaded-or-faster?): Remove. (choose-build-machine)[machines+slots]: Rename to... [machines+slots+loads]: ... this. [undecorate]: Adjust accordingly. [machine-less-loaded-or-faster?]: New procedure. Remove extra 'machine-load' call in body. --- guix/scripts/offload.scm | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm index 2e0268020c..bc024a8701 100644 --- a/guix/scripts/offload.scm +++ b/guix/scripts/offload.scm @@ -490,6 +490,7 @@ be read." (define (machine-load machine) "Return the load of MACHINE, divided by the number of parallel builds allowed on MACHINE." + ;; Note: This procedure is costly since it creates a new SSH session. (let* ((session (open-ssh-session machine)) (pipe (open-remote-pipe* session OPEN_READ "cat" "/proc/loadavg")) @@ -510,17 +511,6 @@ allowed on MACHINE." (_ +inf.0))))) ;something's fishy about MACHINE, so avoid it -(define (machine-power-factor m) - "Return a factor that aggregates the speed and load of M. The higher the -better." - (/ (build-machine-speed m) - (+ 1 (machine-load m)))) - -(define (machine-less-loaded-or-faster? m1 m2) - "Return #t if M1 is either less loaded or faster than M2. (This relation -defines a total order on machines.)" - (> (machine-power-factor m1) (machine-power-factor m2))) - (define (machine-lock-file machine hint) "Return the name of MACHINE's lock file for HINT." (string-append %state-directory "/offload/" @@ -548,29 +538,39 @@ defines a total order on machines.)" ;; 5. Release the global machine-choice lock. (with-file-lock (machine-choice-lock-file) - (define machines+slots + (define machines+slots+loads (filter-map (lambda (machine) + ;; Call 'machine-load' from here to make sure it is called + ;; only once per machine (it is expensive). (let ((slot (acquire-build-slot machine))) - (and slot (list machine slot)))) + (and slot + (list machine slot (machine-load machine))))) machines)) (define (undecorate pred) (lambda (a b) (match a - ((machine1 slot1) + ((machine1 slot1 load1) (match b - ((machine2 slot2) - (pred machine1 machine2))))))) - - (let loop ((machines+slots - (sort machines+slots + ((machine2 slot2 load2) + (pred machine1 load1 machine2 load2))))))) + + (define (machine-less-loaded-or-faster? m1 l1 m2 l2) + ;; Return #t if M1 is either less loaded or faster than M2, with L1 + ;; being the load of M1 and L2 the load of M2. (This relation defines a + ;; total order on machines.) + (> (/ (build-machine-speed m1) (+ 1 l1)) + (/ (build-machine-speed m2) (+ 1 l2)))) + + (let loop ((machines+slots+loads + (sort machines+slots+loads (undecorate machine-less-loaded-or-faster?)))) - (match machines+slots - (((best slot) others ...) + (match machines+slots+loads + (((best slot load) others ...) ;; Return the best machine unless it's already overloaded. - (if (< (machine-load best) 2.) + (if (< load 2.) (match others - (((machines slots) ...) + (((machines slots loads) ...) ;; Release slots from the uninteresting machines. (for-each release-build-slot slots) -- cgit v1.2.3 From 35c0ad444861362e3b48acea2609bf8951cce5c5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 27 Nov 2016 01:14:33 +0100 Subject: gnu: libgphoto2: Update to 2.5.10. * gnu/packages/photo.scm (libgphoto2): Update to 2.5.10. --- gnu/packages/photo.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index f4d110edbc..e220549711 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -89,14 +89,14 @@ data as produced by digital cameras.") (define-public libgphoto2 (package (name "libgphoto2") - (version "2.5.2") + (version "2.5.10") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gphoto/libgphoto/" version "/libgphoto2-" version ".tar.bz2")) (sha256 (base32 - "0f1818l1vs5fbmrihzyv3qasddbqi3r01jik5crrxddwalsi2bd3")))) + "1wjf79ipqwb5phfjjwf15rwgigakylnfqaj4crs5qnds6ba6i1ld")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs -- cgit v1.2.3 From 9dcc9bbf3b51874d3a3dd30c69aa319d8dc6bc7b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 27 Nov 2016 01:15:38 +0100 Subject: gnu: gphoto2: Update to 2.5.10. * gnu/packages/photo.scm (gphoto2): Update to 2.5.10. --- gnu/packages/photo.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index e220549711..f3f5ffea35 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -119,14 +119,14 @@ from digital cameras.") (define-public gphoto2 (package (name "gphoto2") - (version "2.5.2") + (version "2.5.10") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gphoto/gphoto/" version "/gphoto2-" version ".tar.bz2")) (sha256 (base32 - "16c8k1cxfypg7v5h8xi87grclw7a5ayaamn548ys3zkj727r5fcf")))) + "1436i2chc1xzq1bng48yx52kgqjqbaashij52sifbdslbm9jzk36")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From d32f4800d65837eb28e2d355ebec0430f2096ebd Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 27 Nov 2016 01:25:24 +0100 Subject: gnu: libgphoto2: Add XML support. * gnu/packages/photo.scm (libgphoto2)[inputs]: Add libxml2. --- gnu/packages/photo.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index f3f5ffea35..2b93d7bbf0 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -102,7 +102,8 @@ data as produced by digital cameras.") (inputs `(;; ("libjpeg-turbo" ,libjpeg-turbo) ("libltdl" ,libltdl) - ("libusb" ,libusb))) + ("libusb" ,libusb) + ("libxml2" ,libxml2))) (propagated-inputs `(;; The .pc refers to libexif. ("libexif" ,libexif))) -- cgit v1.2.3 From b46cefc95486c88d50b768443dae7ee8b9d599f8 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 26 Nov 2016 17:01:14 -0500 Subject: gnu: libsodium: Update to 1.0.11. * gnu/packages/crypto.scm (libsodium): Update to 1.0.11. --- gnu/packages/crypto.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index c7445a1eba..e4a8a4bd54 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -56,7 +56,7 @@ (define-public libsodium (package (name "libsodium") - (version "1.0.10") + (version "1.0.11") (source (origin (method url-fetch) (uri (list (string-append @@ -67,7 +67,7 @@ "releases/old/libsodium-" version ".tar.gz"))) (sha256 (base32 - "1gn45g956lyz8l6iq187yc6l627vyivyp8qc5dkr6dnhdnlqddvi")))) + "0rf7z6bgpnf8lyz8sph4h43fbb28pmj4dgybf0hsxxj97kdljid1")))) (build-system gnu-build-system) (synopsis "Portable NaCl-based crypto library") (description -- cgit v1.2.3 From a82f0b36177848eda340d880ae0802c3e26c4ea8 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 26 Nov 2016 13:51:58 +0800 Subject: tests: Add 'opensmtpd-service-type' test. * gnu/tests/mail.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/tests/mail.scm | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 160 insertions(+) create mode 100644 gnu/tests/mail.scm diff --git a/gnu/local.mk b/gnu/local.mk index dfa9c0077d..821533837a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -447,6 +447,7 @@ GNU_SYSTEM_MODULES = \ %D%/tests.scm \ %D%/tests/base.scm \ %D%/tests/install.scm \ + %D%/tests/mail.scm \ %D%/tests/ssh.scm diff --git a/gnu/tests/mail.scm b/gnu/tests/mail.scm new file mode 100644 index 0000000000..47328a54ae --- /dev/null +++ b/gnu/tests/mail.scm @@ -0,0 +1,159 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Sou Bunnbu +;;; +;;; 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 . + +(define-module (gnu tests mail) + #:use-module (gnu tests) + #:use-module (gnu system) + #:use-module (gnu system file-systems) + #:use-module (gnu system grub) + #:use-module (gnu system vm) + #:use-module (gnu services) + #:use-module (gnu services base) + #:use-module (gnu services mail) + #:use-module (gnu services networking) + #:use-module (guix gexp) + #:use-module (guix monads) + #:use-module (guix store) + #:export (%test-opensmtpd)) + +(define %opensmtpd-os + (operating-system + (host-name "komputilo") + (timezone "Europe/Berlin") + (locale "en_US.UTF-8") + (bootloader (grub-configuration (device #f))) + (file-systems %base-file-systems) + (firmware '()) + (services (cons* + (dhcp-client-service) + (service opensmtpd-service-type + (opensmtpd-configuration + (config-file + (plain-file "smtpd.conf" " +listen on 0.0.0.0 +accept from any for local deliver to mbox +")))) + %base-services)))) + +(define (run-opensmtpd-test) + "Return a test of an OS running OpenSMTPD service." + (mlet* %store-monad ((command (system-qemu-image/shared-store-script + (marionette-operating-system + %opensmtpd-os + #:imported-modules '((gnu services herd))) + #:graphic? #f))) + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (rnrs base) + (srfi srfi-64) + (ice-9 rdelim) + (ice-9 regex) + (gnu build marionette)) + + (define marionette + (make-marionette + ;; Enable TCP forwarding of the guest's port 25. + '(#$command "-net" "user,hostfwd=tcp::1025-:25"))) + + (define (read-reply-code port) + "Read a SMTP reply from PORT and return its reply code." + (let* ((line (read-line port)) + (mo (string-match "([0-9]+)([ -]).*" line)) + (code (string->number (match:substring mo 1))) + (finished? (string= " " (match:substring mo 2)))) + (if finished? + code + (read-reply-code port)))) + + (mkdir #$output) + (chdir #$output) + + (test-begin "opensmptd") + + (test-assert "service is running" + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'smtpd) + #t) + marionette)) + + (test-assert "mbox is empty" + (marionette-eval + '(and (file-exists? "/var/mail") + (not (file-exists? "/var/mail/root"))) + marionette)) + + (test-eq "accept an email" + #t + (let* ((smtp (socket AF_INET SOCK_STREAM 0)) + (addr (make-socket-address AF_INET INADDR_LOOPBACK 1025))) + (connect smtp addr) + ;; Be greeted. + (read-reply-code smtp) ;220 + ;; Greet the server. + (write-line "EHLO somehost" smtp) + (read-reply-code smtp) ;250 + ;; Set sender email. + (write-line "MAIL FROM: " smtp) + (read-reply-code smtp) ;250 + ;; Set recipient email. + (write-line "RCPT TO: " smtp) + (read-reply-code smtp) ;250 + ;; Send message. + (write-line "DATA" smtp) + (read-reply-code smtp) ;354 + (write-line "Subject: Hello" smtp) + (newline smtp) + (write-line "Nice to meet you!" smtp) + (write-line "." smtp) + (read-reply-code smtp) ;250 + ;; Say goodbye. + (write-line "QUIT" smtp) + (read-reply-code smtp) ;221 + (close smtp) + #t)) + + (test-assert "mail arrived" + (marionette-eval + '(begin + (use-modules (ice-9 popen) + (ice-9 rdelim)) + + (define (queue-empty?) + (eof-object? + (read-line + (open-input-pipe "smtpctl show queue")))) + + (let wait () + (if (queue-empty?) + (file-exists? "/var/mail/root") + (begin (sleep 1) (wait))))) + marionette)) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "opensmtpd-test" test))) + +(define %test-opensmtpd + (system-test + (name "opensmtpd") + (description "Send an email to a running OpenSMTPD server.") + (value (run-opensmtpd-test)))) -- cgit v1.2.3 From 45591fd7fde1a400a416cb99939f6dd766445f94 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 25 Nov 2016 22:58:10 +0100 Subject: gnu: Add threaded variants of fftw and fftwf for Ardour and mod-host. * gnu/packages/algebra.scm (fftw-with-threads, fftwf-with-threads): New variables. * gnu/packages/audio.scm (ardour)[inputs]: Replace "fftw" and "fftwf" with "fftw-with-threads" and "fftwf-with-threads", respectively. * gnu/packages/music.scm (mod-host)[inputs]: Likewise. --- gnu/packages/algebra.scm | 16 ++++++++++++++++ gnu/packages/audio.scm | 4 ++-- gnu/packages/music.scm | 4 ++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 76f385e340..4288913f78 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -576,6 +576,22 @@ cosine/ sine transforms or DCT/DST).") (string-append (package-description fftw) " Single-precision version.")))) +;; FIXME: These packages are used temporarily by packages like Ardour until +;; "--enable-flags" is added to the fftw and fftwf packages. +(define-public fftw-with-threads + (package (inherit fftw) + (arguments + (substitute-keyword-arguments (package-arguments fftw) + ((#:configure-flags flags) + `(cons "--enable-threads" ,flags)))))) + +(define-public fftwf-with-threads + (package (inherit fftwf) + (arguments + (substitute-keyword-arguments (package-arguments fftwf) + ((#:configure-flags flags) + `(cons "--enable-threads" ,flags)))))) + (define-public fftw-openmpi (package (inherit fftw) (name "fftw-openmpi") diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index b535448af1..66db4c52c6 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -238,8 +238,8 @@ namespace ARDOUR { const char* revision = \"5.4\" ; }")))) ("lv2" ,lv2) ("vamp" ,vamp) ("curl" ,curl) - ("fftw" ,fftw) - ("fftwf" ,fftwf) + ("fftw" ,fftw-with-threads) + ("fftwf" ,fftwf-with-threads) ("jack" ,jack-1) ("serd" ,serd) ("sord" ,sord) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 78ca558b2d..188791976c 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1744,8 +1744,8 @@ analogue-like user interface.") #t))))) (inputs `(("lilv" ,lilv) - ("fftw" ,fftw) - ("fftwf" ,fftwf) + ("fftw" ,fftw-with-threads) + ("fftwf" ,fftwf-with-threads) ("lv2" ,lv2) ("jack" ,jack-1) ("readline" ,readline))) -- cgit v1.2.3 From d4ba9a5f210e62742fbd2e9a0cbcde3c1b504fd6 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 16:00:58 +0100 Subject: gnu: Add perl-mojolicious. * gnu/packages/perl-web.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/packages/perl-web.scm | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 gnu/packages/perl-web.scm diff --git a/gnu/local.mk b/gnu/local.mk index 821533837a..5a9001b6d4 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -294,6 +294,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/pdf.scm \ %D%/packages/pem.scm \ %D%/packages/perl.scm \ + %D%/packages/perl-web.scm \ %D%/packages/photo.scm \ %D%/packages/php.scm \ %D%/packages/pkg-config.scm \ diff --git a/gnu/packages/perl-web.scm b/gnu/packages/perl-web.scm new file mode 100644 index 0000000000..9c92a95dad --- /dev/null +++ b/gnu/packages/perl-web.scm @@ -0,0 +1,47 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Ricardo Wurmus +;;; +;;; 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 . + +(define-module (gnu packages perl-web) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system perl)) + +(define-public perl-mojolicious + (package + (name "perl-mojolicious") + (version "7.10") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-" + version ".tar.gz")) + (sha256 + (base32 + "0811f3wajgf71y02dr2khqnaswjh582pcvhv93k101qpg61syihn")))) + (build-system perl-build-system) + (home-page "http://mojolicious.org/") + (synopsis "Real-time web framework") + (description "Back in the early days of the web, many people learned Perl +because of a wonderful Perl library called @code{CGI}. It was simple enough +to get started without knowing much about the language and powerful enough to +keep you going, learning by doing was much fun. While most of the techniques +used are outdated now, the idea behind it is not. Mojolicious is a new +endeavor to implement this idea using modern technologies.") + (license license:artistic2.0))) -- cgit v1.2.3 From 3f1df54cc059abc326c6691ea305f6676bc89c8a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 16:01:39 +0100 Subject: gnu: Add perl-autovivification. * gnu/packages/perl.scm (perl-autovivification): New variable. --- gnu/packages/perl.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index e9f3dca15a..92d973b7b1 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -266,6 +266,33 @@ manipulate, read, and write Zip archive files.") list manipulation routines.") (license (package-license perl)))) +(define-public perl-autovivification + (package + (name "perl-autovivification") + (version "0.16") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/V/VP/VPIT/" + "autovivification-" version ".tar.gz")) + (sha256 + (base32 + "1422kw9fknv7rbjkgdfflg1q3mb69d3yryszp38dn0bgzkqhwkc1")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/autovivification") + (synopsis "Lexically disable autovivification") + (description "When an undefined variable is dereferenced, it gets silently +upgraded to an array or hash reference (depending of the type of the +dereferencing). This behaviour is called autovivification and usually does +what you mean but it may be unnatural or surprising because your variables get +populated behind your back. This is especially true when several levels of +dereferencing are involved, in which case all levels are vivified up to the +last, or when it happens in intuitively read-only constructs like +@code{exists}. The pragma provided by this package lets you disable +autovivification for some constructs and optionally throws a warning or an +error when it would have happened.") + (license (package-license perl)))) + (define-public perl-base (package (name "perl-base") -- cgit v1.2.3 From a3f5beb7a238e0cb2c60686f6c861d5e41bc4082 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 16:04:14 +0100 Subject: gnu: Add perl-business-isbn-data. * gnu/packages/perl.scm (perl-business-isbn-data): New variable. --- gnu/packages/perl.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 92d973b7b1..733b86536c 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -407,6 +407,26 @@ library can nevertheless be used stand-alone, without Perl.") special objects: true and false.") (license (package-license perl)))) +(define-public perl-business-isbn-data + (package + (name "perl-business-isbn-data") + (version "20140910.003") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/B/BD/BDFOY/" + "Business-ISBN-Data-" version ".tar.gz")) + (sha256 + (base32 + "1jc5jrjwkr6pqga7998zkgw0yrxgb5n1y7lzgddawxibkf608mn7")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Business-ISBN-Data") + (synopsis "Data files for Business::ISBN") + (description "This package provides a data pack for @code{Business::ISBN}. +These data are generated from the RangeMessage.xml file provided by the ISBN +Agency.") + (license (package-license perl)))) + (define-public perl-cache-cache (package (name "perl-cache-cache") -- cgit v1.2.3 From 72f8646ef5b5edc587f1bfbe68c43cfd9162bdb1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 21:57:52 +0100 Subject: gnu: Add perl-business-isbn. * gnu/packages/perl.scm (perl-business-isbn): New variable. --- gnu/packages/perl.scm | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 733b86536c..157c715c0c 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -34,7 +34,8 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) - #:use-module (guix build-system perl)) + #:use-module (guix build-system perl) + #:use-module (gnu packages perl-web)) ;;; ;;; Please: Try to add new module packages in alphabetic order. @@ -427,6 +428,28 @@ These data are generated from the RangeMessage.xml file provided by the ISBN Agency.") (license (package-license perl)))) +(define-public perl-business-isbn + (package + (name "perl-business-isbn") + (version "3.003") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/B/BD/BDFOY/" + "Business-ISBN-" version ".tar.gz")) + (sha256 + (base32 + "1i2bxzqkki257rqbswa4ryj1grmwa5s47wrxln2ff5mha1ry31gm")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-business-isbn-data" ,perl-business-isbn-data) + ("perl-mojolicious" ,perl-mojolicious))) + (home-page "http://search.cpan.org/dist/Business-ISBN") + (synopsis "Work with International Standard Book Numbers") + (description "This modules provides tools to deal with International +Standard Book Numbers, including ISBN-10 and ISBN-13.") + (license artistic2.0))) + (define-public perl-cache-cache (package (name "perl-cache-cache") -- cgit v1.2.3 From e0b6accf1902bf2cbcac6380d1d930c4c6a770b7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 21:58:31 +0100 Subject: gnu: Add perl-business-issn. * gnu/packages/perl.scm (perl-business-issn): New variable. --- gnu/packages/perl.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 157c715c0c..8e4ec88cb8 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -450,6 +450,25 @@ Agency.") Standard Book Numbers, including ISBN-10 and ISBN-13.") (license artistic2.0))) +(define-public perl-business-issn + (package + (name "perl-business-issn") + (version "0.91") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/B/BD/BDFOY/" + "Business-ISSN-" version ".tar.gz")) + (sha256 + (base32 + "1dfnm7h7lbqj356700ldlmgbr51v6hyjn1qig2bb4ysl1wn1jnzi")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Business-ISSN") + (synopsis "Work with International Standard Serial Numbers") + (description "This modules provides tools to deal with International +Standard Serial Numbers.") + (license (package-license perl)))) + (define-public perl-cache-cache (package (name "perl-cache-cache") -- cgit v1.2.3 From 296663839b35bbf6b69f3dd678ca9a463e3790ac Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 21:59:54 +0100 Subject: gnu: Add perl-tie-cycle. * gnu/packages/perl.scm (perl-tie-cycle): New variable. --- gnu/packages/perl.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 8e4ec88cb8..aa275eaf8b 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -6656,6 +6656,25 @@ controlled with command line parameters. The default parameter settings approximately follow the suggestions in the Perl Style Guide.") (license gpl2+))) +(define-public perl-tie-cycle + (package + (name "perl-tie-cycle") + (version "1.221") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/B/BD/BDFOY/Tie-Cycle-" + version ".tar.gz")) + (sha256 + (base32 + "10g6kirf6jfaldckg98y4pl87vrm7grqlg6ymb7a9vhrznyn7qn6")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Tie-Cycle") + (synopsis "Cycle through a list of values") + (description "You use @code{Tie::Cycle} to go through a list over and over +again. Once you get to the end of the list, you go back to the beginning.") + (license (package-license perl)))) + (define-public perl-tie-ixhash (package (name "perl-tie-ixhash") -- cgit v1.2.3 From adbf4b944c8c67d9819bb9b4c95c83cd29a6659f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:00:20 +0100 Subject: gnu: Add perl-business-ismn. * gnu/packages/perl.scm (perl-business-ismn): New variable. --- gnu/packages/perl.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index aa275eaf8b..e23e8285ff 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -469,6 +469,27 @@ Standard Book Numbers, including ISBN-10 and ISBN-13.") Standard Serial Numbers.") (license (package-license perl)))) +(define-public perl-business-ismn + (package + (name "perl-business-ismn") + (version "1.13") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/B/BD/BDFOY/" + "Business-ISMN-" version ".tar.gz")) + (sha256 + (base32 + "0cm1v75axg4gp6cnbyavmnqqjscsxh7nc60vcbw34rqivvf9idc9")))) + (build-system perl-build-system) + (native-inputs + `(("perl-tie-cycle" ,perl-tie-cycle))) + (home-page "http://search.cpan.org/dist/Business-ISMN") + (synopsis "Work with International Standard Music Numbers") + (description "This modules provides tools to deal with International +Standard Music Numbers.") + (license (package-license perl)))) + (define-public perl-cache-cache (package (name "perl-cache-cache") -- cgit v1.2.3 From 9413e95f598dfb2792249fc79542fb4d55d9a209 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:01:01 +0100 Subject: gnu: Add perl-data-compare. * gnu/packages/perl.scm (perl-data-compare): New variable. --- gnu/packages/perl.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index e23e8285ff..8bac955579 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -1310,6 +1310,27 @@ functions and data structures for processing and analysing genomic and bioinformatics data.") (license gpl3+))) +(define-public perl-data-compare + (package + (name "perl-data-compare") + (version "1.25") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/D/DC/DCANTRELL/" + "Data-Compare-" version ".tar.gz")) + (sha256 + (base32 + "0wzasidg9yjcfsi2gdiaw6726ikqda7n24n0v2ngpaazakdkcjqx")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-file-find-rule" ,perl-file-find-rule))) + (home-page "http://search.cpan.org/dist/Data-Compare") + (synopsis "Compare Perl data structures") + (description "This module compares arbitrary data structures to see if +they are copies of each other.") + (license (package-license perl)))) + (define-public perl-data-dump (package (name "perl-data-dump") -- cgit v1.2.3 From cc3dafbb022825669cdcf96d66d73e6fdfe41bbe Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:01:28 +0100 Subject: gnu: Add perl-data-uniqid. * gnu/packages/perl.scm (perl-data-uniqid): New variable. --- gnu/packages/perl.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 8bac955579..b87e33937b 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -1331,6 +1331,26 @@ bioinformatics data.") they are copies of each other.") (license (package-license perl)))) +(define-public perl-data-uniqid + (package + (name "perl-data-uniqid") + (version "0.12") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MW/MWX/Data-Uniqid-" + version ".tar.gz")) + (sha256 + (base32 + "1jsc6acmv97pzsvx1fqywz4qvxxpp7kwmb78ygyqpsczkfj9p4dn")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Data-Uniqid") + (synopsis "Perl extension for generating unique identifiers") + (description "@code{Data::Uniqid} provides three simple routines for +generating unique ids. These ids are coded with a Base62 systen to make them +short and handy (e.g. to use it as part of a URL).") + (license (package-license perl)))) + (define-public perl-data-dump (package (name "perl-data-dump") -- cgit v1.2.3 From 36dd594316df1b89137735c07018df17ae6310bf Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:02:12 +0100 Subject: gnu: Add perl-date-simple. * gnu/packages/perl.scm (perl-date-simple): New variable. --- gnu/packages/perl.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index b87e33937b..d3df8b20c1 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -1619,6 +1619,28 @@ operations, such as comparing two times, determining a date a given amount of time from another, or parsing international times.") (license (package-license perl)))) +(define-public perl-date-simple + (package + (name "perl-date-simple") + (version "3.03") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/I/IZ/IZUT/" + "Date-Simple-" version ".tar.gz")) + (sha256 + (base32 + "016x17r9wi6ffdc4idwirzd1sxqcb4lmq5fn2aiq25nf2iir5899")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Date-Simple") + (synopsis "Simple date handling") + (description "Dates are complex enough without times and timezones. This +module may be used to create simple date objects. It handles validation, +interval arithmetic, and day-of-week calculation. It does not deal with +hours, minutes, seconds, and time zones.") + ;; Can be used with either license. + (license (list (package-license perl) gpl2+)))) + (define-public perl-datetime (package (name "perl-datetime") -- cgit v1.2.3 From 7a146c252835c992e7aa9647d59d2732f78d34d8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:02:52 +0100 Subject: gnu: Add perl-datetime-calendar-julian. * gnu/packages/perl.scm (perl-datetime-calendar-julian): New variable. --- gnu/packages/perl.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index d3df8b20c1..5a42cbb354 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -1670,6 +1670,30 @@ combinations. It represents the Gregorian calendar, extended backwards in time before its creation (in 1582).") (license artistic2.0))) +(define-public perl-datetime-calendar-julian + (package + (name "perl-datetime-calendar-julian") + (version "0.04") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/P/PI/PIJLL/" + "DateTime-Calendar-Julian-" version ".tar.gz")) + (sha256 + (base32 + "03h0llkwsiw2d2ci1ah5x9sp8xrvnbgd471i5hnpgl5w32nnhndv")))) + (build-system perl-build-system) + ;; Only needed for tests + (native-inputs + `(("perl-datetime" ,perl-datetime))) + (home-page "http://search.cpan.org/dist/DateTime-Calendar-Julian") + (synopsis "Dates in the Julian calendar") + (description "This package is a companion module to @code{DateTime.pm}. +It implements the Julian calendar. It supports everything that +@code{DateTime.pm} supports and more: about one day per century more, to be +precise.") + (license (package-license perl)))) + (define-public perl-datetime-set (package (name "perl-datetime-set") -- cgit v1.2.3 From 49a3fcc13c4efbb543625b50f8156603c9825ec5 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:04:31 +0100 Subject: gnu: perl-encode-detect: Move to alphabetical position. * gnu/packages/perl.scm (perl-encode-detect): Move variable definition. --- gnu/packages/perl.scm | 45 +++++++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 5a42cbb354..a7424479b6 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -2322,6 +2322,27 @@ SHA-1 message digest algorithm for use by Perl programs.") modules separately and deal with them after the module is done installing.") (license (package-license perl)))) +(define-public perl-encode-detect + (package + (name "perl-encode-detect") + (version "1.01") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/J/JG/JGMYERS/" + "Encode-Detect-" version ".tar.gz")) + (sha256 + (base32 + "1wdv9ffgs4xyfh5dnh09dqkmmlbf5m1hxgdgb3qy6v6vlwx8jkc3")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build))) + (home-page "http://search.cpan.org/dist/Encode-Detect") + (synopsis "Detect the encoding of data") + (description "This package provides a class @code{Encode::Detect} to detect +the encoding of data.") + (license mpl1.1))) + (define-public perl-env-path (package (name "perl-env-path") @@ -7484,27 +7505,3 @@ interface to File::Find::Object.") (description "Test::TrailingSpace tests for trailing spaces in Perl source files.") (license x11))) - -(define-public perl-encode-detect - (package - (name "perl-encode-detect") - (version "1.01") - (source - (origin - (method url-fetch) - (uri (string-append - "mirror://cpan/authors/id/J/JG/JGMYERS/Encode-Detect-" - version - ".tar.gz")) - (sha256 - (base32 - "1wdv9ffgs4xyfh5dnh09dqkmmlbf5m1hxgdgb3qy6v6vlwx8jkc3")))) - (build-system perl-build-system) - (inputs - `(("perl-module-build" ,perl-module-build))) - (home-page - "http://search.cpan.org/dist/Encode-Detect") - (synopsis - "Perl Encode::Encoding subclass that detects the encoding of data") - (description "Encode::Detect detects the encoding of data for Perl.") - (license mpl1.1))) -- cgit v1.2.3 From 891d9679a2c30a1f0d65f371a133a414dfef94ce Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:04:51 +0100 Subject: gnu: Add perl-encode-eucjpascii. * gnu/packages/perl.scm (perl-encode-eucjpascii): New variable. --- gnu/packages/perl.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index a7424479b6..283aa8d92c 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -2343,6 +2343,25 @@ modules separately and deal with them after the module is done installing.") the encoding of data.") (license mpl1.1))) +(define-public perl-encode-eucjpascii + (package + (name "perl-encode-eucjpascii") + (version "0.03") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/N/NE/NEZUMI/" + "Encode-EUCJPASCII-" version ".tar.gz")) + (sha256 + (base32 + "0qg8kmi7r9jcf8326b4fyq5sdpqyim2a11h7j77q577xam6x767r")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Encode-EUCJPASCII") + (synopsis "ASCII mapping for eucJP encoding") + (description "This package provides an ASCII mapping for the eucJP +encoding.") + (license (package-license perl)))) + (define-public perl-env-path (package (name "perl-env-path") -- cgit v1.2.3 From 2bc1b85ce6b3f66d31f3a3cdb4f8db897f4d313e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:05:17 +0100 Subject: gnu: Add perl-encode-jis2k. * gnu/packages/perl.scm (perl-encode-jis2k): New variable. --- gnu/packages/perl.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 283aa8d92c..de74c6dafe 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -2362,6 +2362,25 @@ the encoding of data.") encoding.") (license (package-license perl)))) +(define-public perl-encode-jis2k + (package + (name "perl-encode-jis2k") + (version "0.03") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/D/DA/DANKOGAI/" + "Encode-JIS2K-" version ".tar.gz")) + (sha256 + (base32 + "1k1mdj4rd9m1z4h7qd2dl92ky0r1rk7mmagwsvdb9pirvdr4vj0y")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Encode-JIS2K") + (synopsis "JIS X 0212 (aka JIS 2000) encodings") + (description "This package provides encodings for JIS X 0212, which is +also known as JIS 2000.") + (license (package-license perl)))) + (define-public perl-env-path (package (name "perl-env-path") -- cgit v1.2.3 From 0185442003186b371d962f2e7f16cb2d184f07ce Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:06:12 +0100 Subject: gnu: Add perl-encode-hanextra. * gnu/packages/perl.scm (perl-encode-hanextra): New variable. --- gnu/packages/perl.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index de74c6dafe..2dd6c01833 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -2381,6 +2381,27 @@ encoding.") also known as JIS 2000.") (license (package-license perl)))) +(define-public perl-encode-hanextra + (package + (name "perl-encode-hanextra") + (version "0.23") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/A/AU/AUDREYT/" + "Encode-HanExtra-" version ".tar.gz")) + (sha256 + (base32 + "0fj4vd8iva2i0j6s2fyhwgr9afrvhr6gjlzi7805h257mmnb1m0z")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Encode-HanExtra") + (synopsis "Additional Chinese encodings") + (description "This Perl module provides Chinese encodings that are not +part of Perl by default, including \"BIG5-1984\", \"BIG5-2003\", \"BIG5PLUS\", +\"BIG5EXT\", \"CCCII\", \"EUC-TW\", \"CNS11643-*\", \"GB18030\", and +\"UNISYS\".") + (license expat))) + (define-public perl-env-path (package (name "perl-env-path") -- cgit v1.2.3 From 81157cf5a7bdbcdbbfba3e6fc280c49f7905a32d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:06:47 +0100 Subject: gnu: Add perl-extutils-libbuilder. * gnu/packages/perl.scm (perl-extutils-libbuilder): New variable. --- gnu/packages/perl.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 2dd6c01833..226d1afa1e 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -2602,6 +2602,29 @@ it ties together a family of modern toolchain modules.") module building modules.") (license (package-license perl)))) +(define-public perl-extutils-libbuilder + (package + (name "perl-extutils-libbuilder") + (version "0.08") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/A/AM/AMBS/" + "ExtUtils-LibBuilder-" version ".tar.gz")) + (sha256 + (base32 + "1lmmfcjxvsvhn4f3v2lyylgr8dzcf5j7mnd1pkq3jc75dph724f5")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build))) + (home-page "http://search.cpan.org/dist/ExtUtils-LibBuilder") + (synopsis "Tool to build C libraries") + (description "Some Perl modules need to ship C libraries together with +their Perl code. Although there are mechanisms to compile and link (or glue) +C code in your Perl programs, there isn't a clear method to compile standard, +self-contained C libraries. This module main goal is to help in that task.") + (license (package-license perl)))) + (define-public perl-file-changenotify (package (name "perl-file-changenotify") -- cgit v1.2.3 From e9ef394ac918267fdaa889bf34e04cf539eb31cd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:07:23 +0100 Subject: gnu: Add perl-ipc-cmd. * gnu/packages/perl.scm (perl-ipc-cmd): New variable. --- gnu/packages/perl.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 226d1afa1e..a3f7c33a35 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -3323,6 +3323,26 @@ filehandles; in particular, IO::Scalar, IO::ScalarArray, and IO::Lines.") pseudo ttys.") (license (package-license perl)))) +(define-public perl-ipc-cmd + (package + (name "perl-ipc-cmd") + (version "0.96") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/B/BI/BINGOS/IPC-Cmd-" + version ".tar.gz")) + (sha256 + (base32 + "0a2v44x70gj9fd5wa8i08f9z6n14qppj1j49m1hc333wh72mzk6i")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/IPC-Cmd") + (synopsis "Run interactive command-line programs") + (description "@code{IPC::Cmd} allows for the searching and execution of +any binary on your system. It adheres to verbosity settings and is able to +run interactively. It also has an option to capture output/error buffers.") + (license (package-license perl)))) + (define-public perl-ipc-run (package (name "perl-ipc-run") -- cgit v1.2.3 From 37115dc6500c5acc4f8289125e54879c5fe5b619 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:08:13 +0100 Subject: gnu: Add perl-lingua-translit. * gnu/packages/perl.scm (perl-lingua-translit): New variable. --- gnu/packages/perl.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index a3f7c33a35..a3c9acc97b 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -3665,6 +3665,26 @@ version.") one: logging, exceptions, and translations.") (license (package-license perl)))) +(define-public perl-lingua-translit + (package + (name "perl-lingua-translit") + (version "0.26") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/A/AL/ALINKE/" + "Lingua-Translit-" version ".tar.gz")) + (sha256 + (base32 + "161589h08kzliga17i2g0hb0yn4cjmb8rdiyadq5bw97974bac14")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Lingua-Translit") + (synopsis "Transliterate text between writing systems") + (description "@code{Lingua::Translit} can be used to convert text from one +writing system to another, based on national or international transliteration +tables. Where possible a reverse transliteration is supported.") + (license (package-license perl)))) + (define-public perl-list-allutils (package (name "perl-list-allutils") -- cgit v1.2.3 From 3521dc929348fb4cf3d17cc2a8891e66963b981b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:08:35 +0100 Subject: gnu: Add perl-mozilla-ca. * gnu/packages/perl.scm (perl-mozilla-ca): New variable. --- gnu/packages/perl.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index a3c9acc97b..03d3c4310d 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -4712,6 +4712,26 @@ own set of Moose-like types. These custom types can then be used to describe fields in Moo-based classes.") (license (package-license perl)))) +(define-public perl-mozilla-ca + (package + (name "perl-mozilla-ca") + (version "20160104") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/A/AB/ABH/Mozilla-CA-" + version ".tar.gz")) + (sha256 + (base32 + "0aizn08lrdrgjz9vagkjmw2c7sxn46fzz521v9dbcqii4jd0d9r7")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Mozilla-CA") + (synopsis "Mozilla's CA cert bundle in PEM format") + (description "@code{Mozilla::CA} provides a copy of Mozilla's bundle of +Certificate Authority certificates in a form that can be consumed by modules +and libraries based on OpenSSL.") + (license mpl2.0))) + (define-public perl-mro-compat (package (name "perl-mro-compat") -- cgit v1.2.3 From 0ef5191c8800fbcaef71ecea53708ba57c6efe7b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:09:03 +0100 Subject: gnu: Add perl-sort-key. * gnu/packages/perl.scm (perl-sort-key): New variable. --- gnu/packages/perl.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 03d3c4310d..427705b132 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -5405,6 +5405,25 @@ designed to be slow or big, neither has it been designed to be fast or compact.") (license (package-license perl)))) +(define-public perl-sort-key + (package + (name "perl-sort-key") + (version "1.33") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/S/SA/SALVA/Sort-Key-" + version ".tar.gz")) + (sha256 + (base32 + "1kqs10s2plj6c96srk0j8d7xj8dxk1704r7mck8rqk09mg7lqspd")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Sort-Key") + (synopsis "Sort arrays by one or multiple calculated keys") + (description "This Perl module provides various functions to quickly sort +arrays by one or multiple calculated keys.") + (license (package-license perl)))) + (define-public perl-spiffy (package (name "perl-spiffy") -- cgit v1.2.3 From 44c31aaae8b7ba021c0144dead0ccb4fee929d10 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:10:21 +0100 Subject: gnu: Add perl-text-csv-xs. * gnu/packages/perl.scm (perl-text-csv-xs): New variable. --- gnu/packages/perl.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 427705b132..42514d1a1e 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -6768,6 +6768,29 @@ decomposition of comma-separated values. An instance of the Text::CSV class can combine fields into a CSV string and parse a CSV string into fields.") (license (package-license perl)))) +(define-public perl-text-csv-xs + (package + (name "perl-text-csv-xs") + (version "1.25") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/H/HM/HMBRAND/" + "Text-CSV_XS-" version ".tgz")) + (sha256 + (base32 + "06zlfbqrwbl0g2g3bhk6046yy5pf2rz80fzcp8aj47rnswz2yx5k")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Text-CSV_XS") + (synopsis "Rountines for manipulating CSV files") + (description "@code{Text::CSV_XS} provides facilities for the composition +and decomposition of comma-separated values. An instance of the +@code{Text::CSV_XS} class will combine fields into a CSV string and parse a +CSV string into fields. The module accepts either strings or files as input +and support the use of user-specified characters for delimiters, separators, +and escapes.") + (license (package-license perl)))) + (define-public perl-text-diff (package (name "perl-text-diff") -- cgit v1.2.3 From dc32ee53810c830c2ecf866e0a9ef182ec6b5f3d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:10:44 +0100 Subject: gnu: Add perl-text-roman. * gnu/packages/perl.scm (perl-text-roman): New variable. --- gnu/packages/perl.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 42514d1a1e..9ed0f05240 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -6861,6 +6861,27 @@ template engine, for when you need speed rather than complex features, yet need more features than simple variable substitution.") (license (package-license perl)))) +(define-public perl-text-roman + (package + (name "perl-text-roman") + (version "3.5") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/S/SY/SYP/Text-Roman-" + version ".tar.gz")) + (sha256 + (base32 + "0sh47svzz0wm993ywfgpn0fvhajl2sj5hcnf5zxjz02in6ihhjnb")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Text-Roman") + (synopsis "Convert between Roman and Arabic algorisms") + (description "This package provides functions to convert between Roman and +Arabic algorisms. It supports both conventional Roman algorisms (which range +from 1 to 3999) and Milhar Romans, a variation which uses a bar across the +algorism to indicate multiplication by 1000.") + (license (package-license perl)))) + (define-public perl-text-simpletable (package (name "perl-text-simpletable") -- cgit v1.2.3 From 37e7a4929fcbbe677047b942d0f824738ccb0129 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:11:07 +0100 Subject: gnu: Add perl-unicode-normalize. * gnu/packages/perl.scm (perl-unicode-normalize): New variable. --- gnu/packages/perl.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 9ed0f05240..42601772a1 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -7252,6 +7252,24 @@ else.") common serialisation formats such as JSON or CBOR.") (license (package-license perl)))) +(define-public perl-unicode-normalize + (package + (name "perl-unicode-normalize") + (version "1.25") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/K/KH/KHW/" + "Unicode-Normalize-" version ".tar.gz")) + (sha256 + (base32 + "0v04bcyjfcfap4kfpc8q3ikq3j7s68nym4ckw3iasmmksdskmcq0")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Unicode-Normalize") + (synopsis "Unicode normalization forms") + (description "This Perl module provides Unicode normalization forms.") + (license (package-license perl)))) + (define-public perl-unicode-linebreak (package (name "perl-unicode-linebreak") -- cgit v1.2.3 From 5d2ecbffb2fc191df39cc25ff73127bffa1d691b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:11:26 +0100 Subject: gnu: Add perl-unicode-collate. * gnu/packages/perl.scm (perl-unicode-collate): New variable. --- gnu/packages/perl.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 42601772a1..36db63d8be 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -7270,6 +7270,29 @@ common serialisation formats such as JSON or CBOR.") (description "This Perl module provides Unicode normalization forms.") (license (package-license perl)))) +(define-public perl-unicode-collate + (package + (name "perl-unicode-collate") + (version "1.18") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/S/SA/SADAHIRO/" + "Unicode-Collate-" version ".tar.gz")) + (sha256 + (base32 + "1lq4p3mqqljhhy8wyiyahris33j4m5qfzpi6iacmcqjzw5g4afbm")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-unicode-normalize" ,perl-unicode-normalize))) + (home-page "http://search.cpan.org/dist/Unicode-Collate") + (synopsis "Unicode collation algorithm") + (description "This package provides tools for sorting and comparing +Unicode data.") + ;; The file Unicode/Collate/allkeys.txt is released under the Expat + ;; license. + (license (list (package-license perl) expat)))) + (define-public perl-unicode-linebreak (package (name "perl-unicode-linebreak") -- cgit v1.2.3 From df669244f9c36564904481ab9c71e4edebc58d3e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:12:04 +0100 Subject: gnu: perl-unicode-linebreak: Update to 2016.003. * gnu/packages/perl.scm (perl-unicode-linebreak): Update to 2016.003. --- gnu/packages/perl.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 36db63d8be..d54b2bcb2f 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -7296,14 +7296,14 @@ Unicode data.") (define-public perl-unicode-linebreak (package (name "perl-unicode-linebreak") - (version "2015.12") + (version "2016.003") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/N/NE/NEZUMI/" "Unicode-LineBreak-" version ".tar.gz")) (sha256 (base32 - "1d0nnc97irfpab4d3b2lvq22hac118k7zbfrj0lnxkbfwx7122cm")))) + "096wf5x99swx7l7yd8pm2aw50g596nf50rkq7250zjcc1acjskp6")))) (build-system perl-build-system) (propagated-inputs `(("perl-mime-charset" ,perl-mime-charset))) -- cgit v1.2.3 From 93863a5e7257ea074a9a5e3f36a393a8ec29fedf Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:13:28 +0100 Subject: gnu: Add perl-xml-libxslt. * gnu/packages/xml.scm (perl-xml-libxslt): New variable. --- gnu/packages/xml.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 505d585e66..80534d69f2 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -329,6 +329,29 @@ XML parser and the high performance DOM implementation.") @code{XML::LibXML}.") (license (package-license perl)))) +(define-public perl-xml-libxslt + (package + (name "perl-xml-libxslt") + (version "1.95") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/" + "XML-LibXSLT-" version ".tar.gz")) + (sha256 + (base32 + "0dggycql18kfxzkb1kw3yc7gslxlrrgyyn2r2ygsylycb89j3jpi")))) + (build-system perl-build-system) + (inputs + `(("libxslt" ,libxslt))) + (propagated-inputs + `(("perl-xml-libxml" ,perl-xml-libxml))) + (home-page "http://search.cpan.org/dist/XML-LibXSLT") + (synopsis "Perl bindings to GNOME libxslt library") + (description "This Perl module is an interface to the GNOME project's +libxslt library.") + (license (package-license perl)))) + (define-public perl-xml-namespacesupport (package (name "perl-xml-namespacesupport") -- cgit v1.2.3 From ebcf74daf855d5bb679827d497ebee924b66721e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:14:41 +0100 Subject: gnu: Add perl-text-bibtex. * gnu/packages/tex.scm (perl-text-bibtex): New variable. --- gnu/packages/tex.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 9186e4693a..85ef83fd49 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Federico Beffa ;;; Copyright © 2016 Thomas Danckaert +;;; Copyright © 2016 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -27,6 +28,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) + #:use-module (guix build-system perl) #:use-module (guix build-system trivial) #:use-module (guix utils) #:use-module (guix git-download) @@ -382,6 +384,48 @@ world. This package contains a small working part of the TeX Live distribution."))) +(define-public perl-text-bibtex + (package + (name "perl-text-bibtex") + (version "0.77") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/A/AM/AMBS/Text-BibTeX-" + version ".tar.gz")) + (sha256 + (base32 + "0kkfx8skk763pivz6h2ffy2zdp1lvy6d5sz0kjaj0mdbjffvnnb4")))) + (build-system perl-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'add-output-directory-to-rpath + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "inc/MyBuilder.pm" + (("-Lbtparse" line) + (string-append "-Wl,-rpath=" + (assoc-ref outputs "out") "/lib " line))) + #t)) + (add-after 'unpack 'install-libraries-to-/lib + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "Build.PL" + (("lib64") "lib")) + #t))))) + (native-inputs + `(("perl-capture-tiny" ,perl-capture-tiny) + ("perl-config-autoconf" ,perl-config-autoconf) + ("perl-extutils-libbuilder" ,perl-extutils-libbuilder) + ("perl-module-build" ,perl-module-build))) + (home-page "http://search.cpan.org/dist/Text-BibTeX") + (synopsis "Interface to read and parse BibTeX files") + (description "@code{Text::BibTeX} is a Perl library for reading, parsing, +and processing BibTeX files. @code{Text::BibTeX} gives you access to the data +at many different levels: you may work with BibTeX entries as simple field to +string mappings, or get at the original form of the data as a list of simple +values (strings, macros, or numbers) pasted together.") + (license (package-license perl)))) + (define-public rubber (package -- cgit v1.2.3 From d400068085ed3cf1a0cb956e25812033a97b7b2c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:15:28 +0100 Subject: gnu: Add biber. * gnu/packages/tex.scm (biber): New variable. --- gnu/packages/tex.scm | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 85ef83fd49..e950944587 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -52,6 +52,8 @@ #:use-module (gnu packages ruby) #:use-module (gnu packages shells) #:use-module (gnu packages base) + #:use-module (gnu packages web) + #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (gnu packages xdisorg) #:use-module (gnu packages zip) @@ -426,6 +428,86 @@ string mappings, or get at the original form of the data as a list of simple values (strings, macros, or numbers) pasted together.") (license (package-license perl)))) +(define-public biber + (package + (name "biber-next") + (version "2.6") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/plk/biber/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "158smzgjhjvyabdv97si5q88zjj5l8j1zbfnddvzy6fkpfhskgkp")))) + (build-system perl-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-programs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (perl5lib (getenv "PERL5LIB"))) + (wrap-program (string-append out "/bin/biber") + `("PERL5LIB" ":" prefix + (,(string-append perl5lib ":" out + "/lib/perl5/site_perl"))))) + #t))))) + (inputs + `(("perl-autovivification" ,perl-autovivification) + ("perl-class-accessor" ,perl-class-accessor) + ("perl-data-dump" ,perl-data-dump) + ("perl-data-compare" ,perl-data-compare) + ("perl-data-uniqid" ,perl-data-uniqid) + ("perl-datetime-format-builder" ,perl-datetime-format-builder) + ("perl-datetime-calendar-julian" ,perl-datetime-calendar-julian) + ("perl-file-slurp" ,perl-file-slurp) + ("perl-ipc-cmd" ,perl-ipc-cmd) + ("perl-ipc-run3" ,perl-ipc-run3) + ("perl-list-allutils" ,perl-list-allutils) + ("perl-list-moreutils" ,perl-list-moreutils) + ("perl-mozilla-ca" ,perl-mozilla-ca) + ("perl-regexp-common" ,perl-regexp-common) + ("perl-log-log4perl" ,perl-log-log4perl) + ;; We cannot use perl-unicode-collate here, because otherwise the + ;; hardcoded hashes in the tests would differ. See + ;; https://mail-archive.com/debian-bugs-dist@lists.debian.org/msg1469249.html + ;;("perl-unicode-collate" ,perl-unicode-collate) + ("perl-unicode-normalize" ,perl-unicode-normalize) + ("perl-unicode-linebreak" ,perl-unicode-linebreak) + ("perl-encode-eucjpascii" ,perl-encode-eucjpascii) + ("perl-encode-jis2k" ,perl-encode-jis2k) + ("perl-encode-hanextra" ,perl-encode-hanextra) + ("perl-xml-libxml" ,perl-xml-libxml) + ("perl-xml-libxml-simple" ,perl-xml-libxml-simple) + ("perl-xml-libxslt" ,perl-xml-libxslt) + ("perl-xml-writer" ,perl-xml-writer) + ("perl-sort-key" ,perl-sort-key) + ("perl-text-csv" ,perl-text-csv) + ("perl-text-csv-xs" ,perl-text-csv-xs) + ("perl-text-roman" ,perl-text-roman) + ("perl-uri" ,perl-uri) + ("perl-text-bibtex" ,perl-text-bibtex) + ("perl-libwww" ,perl-libwww) + ("perl-lwp-protocol-https" ,perl-lwp-protocol-https) + ("perl-business-isbn" ,perl-business-isbn) + ("perl-business-issn" ,perl-business-issn) + ("perl-business-ismn" ,perl-business-ismn) + ("perl-lingua-translit" ,perl-lingua-translit))) + (native-inputs + `(("perl-config-autoconf" ,perl-config-autoconf) + ("perl-extutils-libbuilder" ,perl-extutils-libbuilder) + ("perl-module-build" ,perl-module-build) + ;; for tests + ("perl-file-which" ,perl-file-which) + ("perl-test-more" ,perl-test-most) ; FIXME: "more" would be sufficient + ("perl-test-differences" ,perl-test-differences))) + (home-page "http://biblatex-biber.sourceforge.net/") + (synopsis "Backend for the BibLaTeX citation management tool") + (description "Biber is a BibTeX replacement for users of biblatex. Among +other things it comes with full Unicode support.") + (license license:artistic2.0))) + (define-public rubber (package -- cgit v1.2.3 From 253cdd6c1464c944be2418ee9161f5f5b57e0eee Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 23 Nov 2016 22:15:51 +0100 Subject: gnu: Add biber-2.5. * gnu/packages/tex.scm (biber-2.5): New variable. --- gnu/packages/tex.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index e950944587..7c84ed7194 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -508,6 +508,32 @@ values (strings, macros, or numbers) pasted together.") other things it comes with full Unicode support.") (license license:artistic2.0))) +;; Our version of texlive comes with biblatex 3.4, which is only compatible +;; with biber 2.5 according to the compatibility matrix in the biber +;; documentation. +(define-public biber-2.5 + (package (inherit biber) + (name "biber") + (version "2.5") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/plk/biber/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "163sd343wkrzwnvj2003m2j0kz517jmjr4savw6f8bjxhj8fdrqv")))) + (arguments + (substitute-keyword-arguments (package-arguments biber) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'check 'delete-failing-test + (lambda _ + (delete-file "t/sort-order.t") + #t)))))) + (inputs + `(("perl-date-simple" ,perl-date-simple) + ,@(package-inputs biber))))) (define-public rubber (package -- cgit v1.2.3 From dbf8f84f15fb80fa41caeed073460853083e48d3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 25 Nov 2016 22:29:41 +0100 Subject: gnu: gcj: Fix build on armhf. * gnu/packages/patches/gcj-arm-mode.patch: New file. * gnu/local.mk (dist_patch_DATA): Add patch. * gnu/packages/gcc.scm (gcj): Add patch. [arguments]: Delete failing tests. --- gnu/local.mk | 1 + gnu/packages/gcc.scm | 14 +++++++++++++ gnu/packages/patches/gcj-arm-mode.patch | 36 +++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 gnu/packages/patches/gcj-arm-mode.patch diff --git a/gnu/local.mk b/gnu/local.mk index 5a9001b6d4..5ab9c3b036 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -554,6 +554,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-5.0-libvtv-runpath.patch \ %D%/packages/patches/gcc-6-arm-none-eabi-multilib.patch \ %D%/packages/patches/gcc-6-cross-environment-variables.patch \ + %D%/packages/patches/gcj-arm-mode.patch \ %D%/packages/patches/gd-CVE-2016-7568.patch \ %D%/packages/patches/gd-CVE-2016-8670.patch \ %D%/packages/patches/gd-fix-chunk-size-on-boundaries.patch \ diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index c26cc4f497..ead270a3b5 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -521,6 +521,16 @@ as the 'native-search-paths' field." (define-public gcj (package (inherit gcc) (name "gcj") + (version (package-version gcc)) + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gcc/gcc-" + version "/gcc-" version ".tar.bz2")) + (sha256 + (base32 + "0zmnm00d2a1hsd41g34bhvxzvxisa2l584q3p447bd91lfjv4ci3")) + (patches (cons (search-patch "gcj-arm-mode.diff") + (origin-patches (package-source gcc)))))) (inputs `(("fastjar" ,fastjar) ("perl" ,perl) @@ -568,6 +578,10 @@ as the 'native-search-paths' field." 'unpack 'patch-testsuite ;; dejagnu-1.6 removes the 'absolute' command (lambda _ + ;; This test fails on armhf. It seems harmless enough to disable it. + (for-each delete-file '("libjava/testsuite/libjava.lang/Throw_2.java" + "libjava/testsuite/libjava.lang/Throw_2.out" + "libjava/testsuite/libjava.lang/Throw_2.jar")) (substitute* "libjava/testsuite/lib/libjava.exp" (("absolute") "file normalize")) #t)) diff --git a/gnu/packages/patches/gcj-arm-mode.patch b/gnu/packages/patches/gcj-arm-mode.patch new file mode 100644 index 0000000000..16fdb5ecac --- /dev/null +++ b/gnu/packages/patches/gcj-arm-mode.patch @@ -0,0 +1,36 @@ +Taken from +https://sources.debian.net/data/main/g/gcc-4.9/4.9.2-10/debian/patches/gcj-arm-mode.diff + +# DP: For armhf, force arm mode instead of thumb mode + +--- a/src/libjava/configure.host ++++ b/src/libjava/configure.host +@@ -66,6 +66,9 @@ + ;; + esac + ++# on armhf force arm mode ++libgcj_flags="${libgcj_flags} -marm" ++ + AM_RUNTESTFLAGS= + + # Set any host dependent compiler flags. +--- a/src/gcc/java/lang-specs.h ++++ b/src/gcc/java/lang-specs.h +@@ -47,7 +47,7 @@ + %{.class|.zip|.jar|!fsyntax-only:jc1 \ + %{.java|fsaw-java-file:%U.jar -fsource-filename=%i % Date: Fri, 11 Nov 2016 09:05:45 -0800 Subject: gnu: udisks: Add manpages. * gnu/packages/freedesktop.scm (udisks)[native-inputs]: Add docbook-xml and docbook-xsl. [arguments]: Add #:make-flags to specify XML catalog files for manuals. Signed-off-by: Marius Bakke --- gnu/packages/freedesktop.scm | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 456d569063..16d78603f0 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -461,7 +461,9 @@ Analysis and Reporting Technology) functionality.") "119pr2zbff8vkwlhghim7d7ir24c1dil9hp4q49wm4f6pnrjpbmb")))) (build-system gnu-build-system) (native-inputs - `(("glib:bin" ,glib "bin") ; for glib-mkenums + `(("docbook-xml" ,docbook-xml-4.3) ; to build the manpages + ("docbook-xsl" ,docbook-xsl) + ("glib:bin" ,glib "bin") ; for glib-mkenums ("gobject-introspection" ,gobject-introspection) ("intltool" ,intltool) ("pkg-config" ,pkg-config) @@ -480,13 +482,28 @@ Analysis and Reporting Technology) functionality.") `(#:tests? #f ; requiring system message dbus #:disallowed-references ("doc") ;enforce separation of "doc" #:configure-flags - (list "--disable-man" + (list "--enable-man" "--localstatedir=/var" "--enable-fhs-media" ;mount devices in /media, not /run/media (string-append "--with-html-dir=" (assoc-ref %outputs "doc") "/share/doc/udisks/html") (string-append "--with-udevdir=" %output "/lib/udev")) + #:make-flags + (let* ((docbook-xsl-name-version ,(string-append + (package-name docbook-xsl) "-" + (package-version docbook-xsl))) + (docbook-xsl-catalog-file (string-append + (assoc-ref %build-inputs "docbook-xsl") + "/xml/xsl/" + docbook-xsl-name-version + "/catalog.xml")) + (docbook-xml-catalog-file (string-append + (assoc-ref %build-inputs "docbook-xml") + "/xml/dtd/docbook/catalog.xml"))) + ;; Reference the catalog files required to build the manpages. + (list (string-append "XML_CATALOG_FILES=" docbook-xsl-catalog-file " " + docbook-xml-catalog-file))) #:phases (modify-phases %standard-phases (add-before -- cgit v1.2.3 From 988e1dca4b61ed5ddf77bd2913b8c0ff4a6b24e7 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 27 Nov 2016 11:13:50 +0100 Subject: gnu: udisks: Update to 2.1.8. * gnu/packages/freedesktop.scm (udisks): Update to 2.1.8. [home-page]: Use HTTPS. --- gnu/packages/freedesktop.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 16d78603f0..fb7b82e051 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -451,14 +451,14 @@ Analysis and Reporting Technology) functionality.") (define-public udisks (package (name "udisks") - (version "2.1.7") + (version "2.1.8") (source (origin (method url-fetch) (uri (string-append "https://udisks.freedesktop.org/releases/" name "-" version ".tar.bz2")) (sha256 (base32 - "119pr2zbff8vkwlhghim7d7ir24c1dil9hp4q49wm4f6pnrjpbmb")))) + "1nkxhnqh39c9pzvm4zfj50rgv6apqawdx09bv3sfaxrah4a6jhfs")))) (build-system gnu-build-system) (native-inputs `(("docbook-xml" ,docbook-xml-4.3) ; to build the manpages @@ -526,7 +526,7 @@ Analysis and Reporting Technology) functionality.") "/run/current-system/profile/bin" "/run/current-system/profile/sbin"))) #t)))))) - (home-page "http://www.freedesktop.org/wiki/Software/udisks/") + (home-page "https://www.freedesktop.org/wiki/Software/udisks/") (synopsis "Disk manager service") (description "UDisks provides interfaces to enumerate and perform operations on disks -- cgit v1.2.3 From 7574cecf0fb8c737f89d5d670121241538f5a98e Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sun, 27 Nov 2016 09:53:20 +0100 Subject: gnu: python2-flask: Pick up python-flask's native-inputs. * gnu/packages/python.scm (python2-flask)[native-inputs]: Pick up python-flask's native-inputs. Signed-off-by: Marius Bakke --- gnu/packages/python.scm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 497da52264..39b40e7753 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9581,9 +9581,11 @@ presume or force a developer to use a particular tool or library.") (properties `((python2-variant . ,(delay python2-flask)))))) (define-public python2-flask - (package (inherit (package-with-python2 - (strip-python2-variant python-flask))) - (native-inputs `(("python2-setuptools" ,python2-setuptools))))) + (let ((base (package-with-python2 (strip-python2-variant python-flask)))) + (package + (inherit base) + (native-inputs `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs base)))))) (define-public python-cookies (package -- cgit v1.2.3 From cd569f0d2989f7231939ad7446aea9942904dd09 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 27 Nov 2016 10:51:38 -0500 Subject: gnu: gcj: Fix typo in patch filename. This is a followup to commit dbf8f84f15fb80fa41caeed073460853083e48d3. Reported by quigonjinn on #guix. * gnu/packages/gcc.scm (gcj)[source]: Fix typo. --- gnu/packages/gcc.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index ead270a3b5..7ff6e3c56f 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -529,7 +529,7 @@ as the 'native-search-paths' field." (sha256 (base32 "0zmnm00d2a1hsd41g34bhvxzvxisa2l584q3p447bd91lfjv4ci3")) - (patches (cons (search-patch "gcj-arm-mode.diff") + (patches (cons (search-patch "gcj-arm-mode.patch") (origin-patches (package-source gcc)))))) (inputs `(("fastjar" ,fastjar) -- cgit v1.2.3 From 8c4140e49e496bbf1d71331333127bf68e48e18e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 27 Nov 2016 18:25:42 +0100 Subject: gnu: notmuch: Update to 0.23.3. * gnu/packages/mail.scm (notmuch): Update to 0.23.3. [arguments]: Re-enable previously failing tests. --- gnu/packages/mail.scm | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 9dcaea364c..e0d0fd164c 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -537,14 +537,14 @@ invoking @command{notifymuch} from the post-new hook.") (define-public notmuch (package (name "notmuch") - (version "0.23.2") + (version "0.23.3") (source (origin (method url-fetch) (uri (string-append "https://notmuchmail.org/releases/notmuch-" version ".tar.gz")) (sha256 (base32 - "1g4p5hsrqqbqk6s2w756als60wppvjgpyq104smy3w9vshl7bzgd")))) + "10hqjnl5aavf9clfmx3y832jyz58fplmc3f58pip9dq30b7sap8g")))) (build-system gnu-build-system) (arguments '(#:make-flags (list "V=1") ; Verbose test output. @@ -568,11 +568,6 @@ invoking @command{notifymuch} from the post-new hook.") ;; Patch various inline shell invocations. (substitute* (find-files "test" "\\.sh$") (("/bin/sh") (which "sh"))) - ;; XXX: Some signature verification tests fail with - ;; gnupg-2.1.16, so we skip them. See this thread: - ;; https://notmuchmail.org/pipermail/notmuch/2016/023688.html - (setenv "NOTMUCH_SKIP_TESTS" - "T350-crypto.2 T350-crypto.3 T350-crypto.4 T350-crypto.15") #t))))) (native-inputs `(("bash-completion" ,bash-completion) -- cgit v1.2.3 From bac640997072a3f1b729eaa7df04d94bd0675bb0 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 27 Nov 2016 18:59:54 +0100 Subject: gnu: gcj: Correct paths in ARM patch. * gnu/packages/patches/gcj-arm-mode.patch: Strip directories. --- gnu/packages/patches/gcj-arm-mode.patch | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gnu/packages/patches/gcj-arm-mode.patch b/gnu/packages/patches/gcj-arm-mode.patch index 16fdb5ecac..a3f999f7e9 100644 --- a/gnu/packages/patches/gcj-arm-mode.patch +++ b/gnu/packages/patches/gcj-arm-mode.patch @@ -3,8 +3,8 @@ https://sources.debian.net/data/main/g/gcc-4.9/4.9.2-10/debian/patches/gcj-arm-m # DP: For armhf, force arm mode instead of thumb mode ---- a/src/libjava/configure.host -+++ b/src/libjava/configure.host +--- a/libjava/configure.host ++++ b/libjava/configure.host @@ -66,6 +66,9 @@ ;; esac @@ -15,8 +15,8 @@ https://sources.debian.net/data/main/g/gcc-4.9/4.9.2-10/debian/patches/gcj-arm-m AM_RUNTESTFLAGS= # Set any host dependent compiler flags. ---- a/src/gcc/java/lang-specs.h -+++ b/src/gcc/java/lang-specs.h +--- a/gcc/java/lang-specs.h ++++ b/gcc/java/lang-specs.h @@ -47,7 +47,7 @@ %{.class|.zip|.jar|!fsyntax-only:jc1 \ %{.java|fsaw-java-file:%U.jar -fsource-filename=%i % Date: Sun, 27 Nov 2016 19:00:57 +0100 Subject: gnu: gcj: Inherit source field from "gcc". * gnu/packages/gcc.scm (gcj)[source]: Inherit source from "gcc" package. --- gnu/packages/gcc.scm | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 7ff6e3c56f..4d93317785 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -522,15 +522,9 @@ as the 'native-search-paths' field." (package (inherit gcc) (name "gcj") (version (package-version gcc)) - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gcc/gcc-" - version "/gcc-" version ".tar.bz2")) - (sha256 - (base32 - "0zmnm00d2a1hsd41g34bhvxzvxisa2l584q3p447bd91lfjv4ci3")) - (patches (cons (search-patch "gcj-arm-mode.patch") - (origin-patches (package-source gcc)))))) + (source (origin (inherit (package-source gcc)) + (patches (cons (search-patch "gcj-arm-mode.patch") + (origin-patches (package-source gcc)))))) (inputs `(("fastjar" ,fastjar) ("perl" ,perl) -- cgit v1.2.3 From 4228a79e6fef44542e6bfbcd65e12ab2f6d9442d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 27 Nov 2016 00:14:11 -0500 Subject: gnu: python-mutagen: Update to 1.35.1. * gnu/packages/music.scm (python-mutagen, python2-mutagen): Update to 1.35.1. [native-inputs]: Add python-pytest. --- gnu/packages/music.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 188791976c..d6dcf1c217 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1796,14 +1796,16 @@ event-based scripts for scrobbling, notifications, etc.") (define-public python-mutagen (package (name "python-mutagen") - (version "1.31") + (version "1.35.1") (source (origin (method url-fetch) (uri (pypi-uri "mutagen" version)) (sha256 (base32 - "16fnnhspniac2i7qswxafawsh2x2a803hmc6bn9k1zl5fxq1380a")))) + "0klk68c1n3285vvm2xzk8ii7mlqp1dxii04askan0gi1wlpagka9")))) (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest))) (home-page "https://bitbucket.org/lazka/mutagen") (synopsis "Read and write audio tags") (description "Mutagen is a Python module to handle audio metadata. It -- cgit v1.2.3 From 38e81a2c55fe2ae35c53cdb2cda84baa7b6fcb86 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 27 Nov 2016 00:14:58 -0500 Subject: gnu: python-munkres: Update to 1.0.8. * gnu/packages/python.scm (python-munkres, python2-munkres): Update to 1.0.8. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 39b40e7753..ef38e35470 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9535,13 +9535,13 @@ way.") (define-public python-munkres (package (name "python-munkres") - (version "1.0.7") + (version "1.0.8") (source (origin (method url-fetch) (uri (pypi-uri "munkres" version)) (sha256 (base32 - "1i6nf45i0kkzdx6k70giybsqxz4dxsjbrkrfqgjd7znfkf25sjik")))) + "0mbspx4zv8id4x6pim6ybsa1xh96qwpbqj7skbqz4c9c9nf1lpqq")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; no test suite -- cgit v1.2.3 From daedf34db90e1fe40855fdc325c3c1fe50797410 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 27 Nov 2016 00:15:57 -0500 Subject: gnu: python-musicbrainzngs: Update to 0.6. * gnu/packages/music.scm (python-musicbrainzngs, python2-musicbrainzngs): Update to 0.6. [arguments]: Disable the test suites. --- gnu/packages/music.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index d6dcf1c217..5b2bded07d 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1823,14 +1823,18 @@ streams on an individual packet/page level.") (define-public python-musicbrainzngs (package (name "python-musicbrainzngs") - (version "0.5") + (version "0.6") (source (origin (method url-fetch) (uri (pypi-uri "musicbrainzngs" version)) (sha256 (base32 - "12f48llmdf5rkiqxcb70k2k1dmhm8byq0ifazvlrca8dfnmqh4r8")))) + "1dddarpjawryll2wss65xq3v9q8ln8dan7984l5dxzqx88d2dvr8")))) (build-system python-build-system) + (arguments + '(;; The tests fail suffer from race conditions: + ;; https://github.com/alastair/python-musicbrainzngs/issues/211 + #:tests? #f)) (home-page "https://python-musicbrainzngs.readthedocs.org/") (synopsis "Python bindings for MusicBrainz NGS webservice") (description "Musicbrainzngs implements Python bindings of the MusicBrainz -- cgit v1.2.3 From b04d9b97c45b4607618452d35e5b7c0e07b278fa Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 27 Nov 2016 00:17:12 -0500 Subject: gnu: python-pylast: Update 1.6.0. * gnu/packages/music.scm (python-pylast, python2-pylast): Update to 1.6.0. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 5b2bded07d..c2a995d02f 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1883,13 +1883,13 @@ detailed track info including timbre, pitch, rhythm and loudness information. (define-public python-pylast (package (name "python-pylast") - (version "1.5.1") + (version "1.6.0") (source (origin (method url-fetch) (uri (pypi-uri "pylast" version)) (sha256 (base32 - "10znd9xr1vs2ix519jkz3ccm90zciaddcdr2w2wrrh2jyy3bc59a")))) + "0bml11gfkxqd3i2jxkn5k2xllc4rvxjcyhs8an05gcyy1zp2bwvb")))) (build-system python-build-system) (native-inputs `(("python-coverage" ,python-coverage) -- cgit v1.2.3 From 8c4964dd51dd680bb30cc512d66798a5ade4e5ae Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 27 Nov 2016 00:17:59 -0500 Subject: gnu: python-jellyfish: Update to 0.5.6. * gnu/packages/python.scm (python-jellyfish, python2-jellyfish): Update to 0.5.6. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index ef38e35470..5c27b90402 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9761,13 +9761,13 @@ ambiguities (forward vs. backward slashes, etc.). (define-public python-jellyfish (package (name "python-jellyfish") - (version "0.5.3") + (version "0.5.6") (source (origin (method url-fetch) (uri (pypi-uri "jellyfish" version)) (sha256 (base32 - "12bxh8cy9xmvyrjz7aw159nd5pyvb645rkvw4r6bvm4xbvs8gd07")))) + "1j9rplb16ba2prjj6mip46z0w9pnhnqpwgiwi0x93vnas14rlyl8")))) (build-system python-build-system) (native-inputs `(("python-pytest" ,python-pytest))) -- cgit v1.2.3 From 6782444764d6072ef2684403efb92ca1aaabc016 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 27 Nov 2016 00:19:21 -0500 Subject: gnu: python-rarfile: Update to 2.8. * gnu/packages/python.scm (python-rarfile, python2-rarfile): Update to 2.8. [source]: Remove obsolete patch. * gnu/packages/patches/python-rarfile-fix-tests.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - gnu/packages/patches/python-rarfile-fix-tests.patch | 14 -------------- gnu/packages/python.scm | 6 ++---- 3 files changed, 2 insertions(+), 19 deletions(-) delete mode 100644 gnu/packages/patches/python-rarfile-fix-tests.patch diff --git a/gnu/local.mk b/gnu/local.mk index 5ab9c3b036..c50ef254e0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -827,7 +827,6 @@ dist_patch_DATA = \ %D%/packages/patches/python-file-double-encoding-bug.patch \ %D%/packages/patches/python-fix-tests.patch \ %D%/packages/patches/python-parse-too-many-fields.patch \ - %D%/packages/patches/python-rarfile-fix-tests.patch \ %D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \ %D%/packages/patches/python-statsmodels-fix-tests.patch \ %D%/packages/patches/python-configobj-setuptools.patch \ diff --git a/gnu/packages/patches/python-rarfile-fix-tests.patch b/gnu/packages/patches/python-rarfile-fix-tests.patch deleted file mode 100644 index 8ae8894009..0000000000 --- a/gnu/packages/patches/python-rarfile-fix-tests.patch +++ /dev/null @@ -1,14 +0,0 @@ -There is no test.sh, but there are test1.sh and test2.sh. - -diff --git a/test/Makefile b/test/Makefile -index 027bc5f..5383db3 100644 ---- a/test/Makefile -+++ b/test/Makefile -@@ -1,5 +1,6 @@ - test: -- ./test.sh -+ ./test1.sh -+ ./test2.sh - - clean: - rm -rf __pycache__ diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 5c27b90402..e3cde11ab4 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9816,15 +9816,13 @@ module, adding support for Unicode strings.") (define-public python-rarfile (package (name "python-rarfile") - (version "2.7") + (version "2.8") (source (origin (method url-fetch) (uri (pypi-uri "rarfile" version)) (sha256 (base32 - "0d8n1dlpiz7av8dmbp0vclrwl9cnxizr4f2c9xvj1h5nvn480527")) - ;; https://github.com/markokr/rarfile/pull/17/ - (patches (search-patches "python-rarfile-fix-tests.patch")))) + "0qfad483kcbga0bn4qmcz953xjk16r52fahiy46zzn56v80y89ra")))) (build-system python-build-system) (arguments '(#:phases -- cgit v1.2.3 From d3db5efbf97dd0d880b18c8fc0d3c76d91fd6e4d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 27 Nov 2016 01:13:53 -0500 Subject: gnu: Add python-discogs-client. * gnu/packages/music.scm (python-discogs-client, python2-discogs-client): New variables. --- gnu/packages/music.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index c2a995d02f..b8145bbbb6 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -2427,3 +2427,37 @@ a simulation of an analog Wah pedal with switchless activation.")))) filters, crossovers, simple gain plugins without zipper noise, switch box plugins, a switch trigger, a toggle switch, and a peakmeter.") (license license:gpl2+)))) + +(define-public python-discogs-client + (package + (name "python-discogs-client") + (version "2.2.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "discogs-client" version)) + (sha256 + (base32 + "053ld2psh0yj3z0kg6z5bn4y3cr562m727494n0ayhgzbkjbacly")))) + (build-system python-build-system) + (propagated-inputs + `(("python-oauthlib" ,python-oauthlib) + ("python-requests" ,python-requests))) + (native-inputs + `(("python-six" ,python-six))) + (home-page "https://github.com/discogs/discogs_client") + (synopsis "Official Python client for the Discogs API") + (description "This is the official Discogs API client for Python. It enables +you to query the Discogs database for information on artists, releases, labels, +users, Marketplace listings, and more. It also supports OAuth 1.0a +authorization, which allows you to change user data such as profile information, +collections and wantlists, inventory, and orders.") + (license license:bsd-2) + (properties `((python2-variant . ,(delay python2-discogs-client)))))) + +(define-public python2-discogs-client + (let ((base (package-with-python2 + (strip-python2-variant python-discogs-client)))) + (package (inherit base) + (native-inputs + `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs base)))))) -- cgit v1.2.3 From f27ec24d88e7b0ddd157342f6ee65ce911a3751d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 27 Nov 2016 00:20:05 -0500 Subject: gnu: beets: Update to 1.4.1. * gnu/packages/music.scm (beets): Update to 1.4.1. [inputs]: Add python2-discogs-client. --- gnu/packages/music.scm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index b8145bbbb6..edc34ffe87 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1918,16 +1918,20 @@ websites such as Libre.fm.") (define-public beets (package (name "beets") - (version "1.3.19") + (version "1.4.1") (source (origin (method url-fetch) (uri (pypi-uri "beets" version)) (sha256 (base32 - "1vi1dh3fr554bnm8y9pjy09hblw18v6cl2jppzwlp72afri1w93b")))) + "14yn88xrcinpdg3ic285ar0wmwldzyjfd3ll6clmp3z3r4iqffip")))) (build-system python-build-system) (arguments - `(#:python ,python-2 ; only Python 2 is supported + `(;; Python 3 support is still "alpha", and the upstream maintainers ask + ;; packagers not to use it yet: + ;; https://github.com/beetbox/beets/releases/tag/v1.4.1 + ;; TODO Check this again for the next release. + #:python ,python-2 #:phases (modify-phases %standard-phases (add-after 'unpack 'set-HOME @@ -1949,7 +1953,8 @@ websites such as Libre.fm.") ("python2-responses" ,python2-responses))) ;; TODO: Install optional plugins and dependencies. (inputs - `(("python2-enum34" ,python2-enum34) + `(("python2-discogs-client" ,python2-discogs-client) + ("python2-enum34" ,python2-enum34) ("python2-jellyfish" ,python2-jellyfish) ("python2-munkres" ,python2-munkres) ("python2-musicbrainzngs" ,python2-musicbrainzngs) -- cgit v1.2.3 From 69874f5fd2b529a6028eaa7c1a342b321bd87f59 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 27 Nov 2016 02:11:37 +0100 Subject: gnu: libgphoto2: Update to 2.5.11. * gnu/packages/photo.scm (libgphoto2): Update to 2.5.11. --- gnu/packages/photo.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 2b93d7bbf0..9d34e4797c 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -89,14 +89,14 @@ data as produced by digital cameras.") (define-public libgphoto2 (package (name "libgphoto2") - (version "2.5.10") + (version "2.5.11") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gphoto/libgphoto/" version "/libgphoto2-" version ".tar.bz2")) (sha256 (base32 - "1wjf79ipqwb5phfjjwf15rwgigakylnfqaj4crs5qnds6ba6i1ld")))) + "1ap070zz6l4kn2mbyxb1yj4x5ar8hpdbmf2pvjxgnly1ss319dkz")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs -- cgit v1.2.3 From f6c44a3f0492a84fe2fac2279bc29931a5442e02 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 27 Nov 2016 02:12:26 +0100 Subject: gnu: gphoto2: Update to 2.5.11. * gnu/packages/photo.scm (gphoto2): Update to 2.5.11. --- gnu/packages/photo.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 9d34e4797c..00bbb5d9a9 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -120,14 +120,14 @@ from digital cameras.") (define-public gphoto2 (package (name "gphoto2") - (version "2.5.10") + (version "2.5.11") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gphoto/gphoto/" version "/gphoto2-" version ".tar.bz2")) (sha256 (base32 - "1436i2chc1xzq1bng48yx52kgqjqbaashij52sifbdslbm9jzk36")))) + "1sgr6rsvzzagcwhc8fxbnvz3k02wr2hab0vrbvcb04k5l3b48a1r")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From c7a70c336f11f5db2636a15372fa85a8b426fd3b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 27 Nov 2016 20:23:20 +0200 Subject: gnu: jasper: Update to 2.0.0 [fixes security issues]. * gnu/packages/image.scm (jasper): Update to 2.0.0. [build-system]: Switch to cmake-build-system. --- gnu/packages/image.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 526c87cf86..981e1f8109 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -843,15 +843,15 @@ convert, manipulate, filter and display a wide variety of image formats.") (define-public jasper (package (name "jasper") - (version "1.900.29") + (version "2.0.0") (source (origin (method url-fetch) (uri (string-append "https://www.ece.uvic.ca/~frodo/jasper" "/software/jasper-" version ".tar.gz")) (sha256 (base32 - "1h1575wdzq1p7y2xvy1gbiypai1iils5awhy4gadr78qpb9ykrra")))) - (build-system gnu-build-system) + "1kg5yrdwgazhbczybyx4548m0ijssabcp8hl5l87w78z833vikks")))) + (build-system cmake-build-system) (inputs `(("libjpeg" ,libjpeg))) (synopsis "JPEG-2000 library") (description "The JasPer Project is an initiative to provide a reference -- cgit v1.2.3 From aa28ecc40af91d7cdff2fb3ab4ad86ad10d43ab7 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 27 Nov 2016 23:03:45 +0100 Subject: pull: Hack to allow compilation with older Guile-SSH packages. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reported by iyzsong@member.fsf.org (宋文武) at . * build-aux/build-self.scm (build): Set 'LTDL_LIBRARY_PATH' when GUILE-SSH has a "0.9." version prefix. --- build-aux/build-self.scm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm index 485f91b4c0..cc702490df 100644 --- a/build-aux/build-self.scm +++ b/build-aux/build-self.scm @@ -114,6 +114,13 @@ files." (string-append #$guile-ssh "/lib/guile/2.0/site-ccache") %load-compiled-path))) + ;; XXX: The 'guile-ssh' package prior to Guix commit 92b7258 was + ;; broken: libguile-ssh could not be found. Work around that. + ;; FIXME: We want Guile-SSH 0.10.2 or later anyway. + #$(if (string-prefix? "0.9." (package-version guile-ssh)) + #~(setenv "LTDL_LIBRARY_PATH" (string-append #$guile-ssh "/lib")) + #t) + (build-guix #$output #$source #:system #$%system -- cgit v1.2.3 From 9926875572cf2936b7f23fb291328bfa68c038c6 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sun, 27 Nov 2016 13:11:46 +1000 Subject: gnu: Add newick-utils. * gnu/packages/bioinformatics.scm (newick-utils): New variable. --- gnu/packages/bioinformatics.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 8d2cb93c7c..f04acc0a5c 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -50,6 +50,7 @@ #:use-module (gnu packages documentation) #:use-module (gnu packages datastructures) #:use-module (gnu packages file) + #:use-module (gnu packages flex) #:use-module (gnu packages gawk) #:use-module (gnu packages gcc) #:use-module (gnu packages gd) @@ -3472,6 +3473,45 @@ program for nucleotide and protein sequences.") ;; License information found in 'muscle -h' and usage.cpp. (license license:public-domain))) +(define-public newick-utils + ;; There are no recent releases so we package from git. + (let ((commit "da121155a977197cab9fbb15953ca1b40b11eb87")) + (package + (name "newick-utils") + (version (string-append "1.6-1." (string-take commit 8))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tjunier/newick_utils.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1hkw21rq1mwf7xp0rmbb2gqc0i6p11108m69i7mr7xcjl268pxnb")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'autoconf + (lambda _ (zero? (system* "autoreconf" "-vif"))))))) + (inputs + ;; XXX: TODO: Enable Lua and Guile bindings. + ;; https://github.com/tjunier/newick_utils/issues/13 + `(("libxml2" ,libxml2) + ("flex" ,flex) + ("bison" ,bison))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (synopsis "Programs for working with newick format phylogenetic trees") + (description + "Newick-utils is a suite of utilities for processing phylogenetic trees +in Newick format. Functions include re-rooting, extracting subtrees, +trimming, pruning, condensing, drawing (ASCII graphics or SVG).") + (home-page "https://github.com/tjunier/newick_utils") + (license license:bsd-3)))) + (define-public orfm (package (name "orfm") -- cgit v1.2.3 From f0ddc5e55b0a022a2c7478efa791c5ae03ea8010 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Fri, 25 Nov 2016 15:13:08 +0100 Subject: gnu: Add editres. * gnu/packages/xorg.scm (editres): New variable. --- gnu/packages/xorg.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 9f9549b6b9..4e79d2d132 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2016 ng0 ;;; Copyright © 2016 Alex Kost ;;; Copyright © 2016 David Craven +;;; Copyright © 2016 John Darrington ;;; ;;; This file is part of GNU Guix. ;;; @@ -335,6 +336,44 @@ provided.") "See 'dri3proto.h' in the distribution.")))) +(define-public editres + (package + (name "editres") + (version "1.0.6") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://xorg/individual/app/" name "-" + version + ".tar.bz2")) + (sha256 + (base32 + "1w2d5hb5pw9ii2jlf4yjlp899402zfwc8hdkpdr3i1fy1cjd2riv")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list (string-append "--with-appdefaultdir=" + %output "/lib/X11/app-defaults")))) + (inputs + `(("libxaw" ,libxaw) + ("libxmu" ,libxmu) + ("libxt" ,libxt))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://www.x.org/wiki/") + (synopsis "Tool to browse and edit X Toolkit resource specifications") + (description + "Editres is a tool that allows users and application developers to view +the full widget hierarchy of any X Toolkit application that speaks the Editres +protocol. In addition, editres will help the user construct resource +specifications, allow the user to apply the resource to the application and +view the results dynamically. Once the user is happy with a resource +specification editres will append the resource string to the user's X +Resources file.") + (license license:x11))) + + (define-public encodings (package (name "encodings") -- cgit v1.2.3 From d35de59b645beb5fce4349b445265b9cf8878cf8 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 28 Nov 2016 11:11:38 +0200 Subject: gnu: ntp: Fix indentation. * gnu/packages/ntp.scm (ntp): Fix indentation to only use spaces. --- gnu/packages/ntp.scm | 53 ++++++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index 177eb8946a..382fa3f433 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -40,32 +40,33 @@ (package (name "ntp") (version "4.2.8p8") - (source (origin - (method url-fetch) - (uri (list (string-append - "http://archive.ntp.org/ntp4/ntp-" - (version-major+minor version) - "/ntp-" version ".tar.gz") - (string-append - "https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-" - (version-major+minor version) - "/ntp-" version ".tar.gz"))) - (sha256 - (base32 - "1vlpgd0dk2wkpmmf869sfxi8f46sfnmjgk51vl8n6vj5y2sx1cra")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Remove the bundled copy of libevent, but we must keep - ;; sntp/libevent/build-aux since configure.ac contains - ;; AC_CONFIG_AUX_DIR([sntp/libevent/build-aux]) - (rename-file "sntp/libevent/build-aux" - "sntp/libevent:build-aux") - (delete-file-recursively "sntp/libevent") - (mkdir "sntp/libevent") - (rename-file "sntp/libevent:build-aux" - "sntp/libevent/build-aux") - #t)))) + (source + (origin + (method url-fetch) + (uri (list (string-append + "http://archive.ntp.org/ntp4/ntp-" + (version-major+minor version) + "/ntp-" version ".tar.gz") + (string-append + "https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-" + (version-major+minor version) + "/ntp-" version ".tar.gz"))) + (sha256 + (base32 + "1vlpgd0dk2wkpmmf869sfxi8f46sfnmjgk51vl8n6vj5y2sx1cra")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove the bundled copy of libevent, but we must keep + ;; sntp/libevent/build-aux since configure.ac contains + ;; AC_CONFIG_AUX_DIR([sntp/libevent/build-aux]) + (rename-file "sntp/libevent/build-aux" + "sntp/libevent:build-aux") + (delete-file-recursively "sntp/libevent") + (mkdir "sntp/libevent") + (rename-file "sntp/libevent:build-aux" + "sntp/libevent/build-aux") + #t)))) (native-inputs `(("which" ,which) ("pkg-config" ,pkg-config))) (inputs -- cgit v1.2.3 From 5e9cce55b5217fb72649aad1cfbeb94b58d94787 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 28 Nov 2016 21:50:57 +0200 Subject: gnu: ntp: Update to 4.2.8p9. * gnu/packages/ntp.scm (ntp): Update to 4.2.8p9. --- gnu/packages/ntp.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index 382fa3f433..13781fbdad 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -39,7 +39,7 @@ (define-public ntp (package (name "ntp") - (version "4.2.8p8") + (version "4.2.8p9") (source (origin (method url-fetch) @@ -53,7 +53,7 @@ "/ntp-" version ".tar.gz"))) (sha256 (base32 - "1vlpgd0dk2wkpmmf869sfxi8f46sfnmjgk51vl8n6vj5y2sx1cra")) + "0whbyf82lrczbri4adbsa4hg1ppfa6c7qcj7nhjwdfp1g1vjh95p")) (modules '((guix build utils))) (snippet '(begin -- cgit v1.2.3 From 1bbe79594e24e9731003289292d6fb94219aad93 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 28 Nov 2016 22:00:41 +0100 Subject: gnu: non-sequencer: Update to 1.9.5-2.a22f33f. * gnu/packages/music.scm (non-sequencer): Update to 1.9.5-2.a22f33f. --- gnu/packages/music.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index edc34ffe87..3c56d199d2 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -588,11 +588,12 @@ Guile.") (define-public non-sequencer ;; The latest tagged release is three years old and uses a custom build - ;; system, so we take the last commit affecting the "sequencer" directory. - (let ((commit "1d9bd576f6bf7ea240af5f7a60260592750af0dd")) + ;; system, so we take the last commit. + (let ((commit "a22f33f486a5c6f75b60e36f66504c036c0f6f8c") + (revision "2")) (package (name "non-sequencer") - (version (string-append "1.9.5-" (string-take commit 7))) + (version (string-append "1.9.5-" revision "." (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference @@ -600,7 +601,7 @@ Guile.") (commit commit))) (sha256 (base32 - "0pkkw8q6d55j38xm7r4rwpdv1wy00a44h8c4wrn7vbgpq9nij46y")) + "09q5x8i4f8mqnl8w6xnsq5zriy4bzdl4x2vq9n34a433rfrk84bg")) (file-name (string-append name "-" version "-checkout")))) (build-system waf-build-system) (arguments -- cgit v1.2.3 From eb21d248066feb26b4ca7dd0530ad2e4fbb11914 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 27 Nov 2016 23:33:33 +0100 Subject: gnu: lv2: Update to 1.14.0. * gnu/packages/audio.scm (lv2): Update to 1.14.0. --- gnu/packages/audio.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 66db4c52c6..940683da14 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1551,15 +1551,14 @@ significantly faster and have minimal dependencies.") (define-public lv2 (package (name "lv2") - (version "1.12.0") + (version "1.14.0") (source (origin (method url-fetch) (uri (string-append "http://lv2plug.in/spec/lv2-" - version - ".tar.bz2")) + version ".tar.bz2")) (sha256 (base32 - "1saq0vwqy5zjdkgc5ahs8kcabxfmff2mmg68fiqrkv8hiw9m6jks")))) + "0chxwys3vnn3nxc9x2vchm74s9sx0vfra6y893byy12ci61jc1dq")))) (build-system waf-build-system) (arguments `(#:tests? #f ; no check target -- cgit v1.2.3 From e48ddb96282cd231e4aed2255f6b918901a71922 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 28 Nov 2016 19:46:03 +0100 Subject: doc: Suggest installing gvfs. * gnu/system/examples/desktop.tmpl: Add gvfs to the system-wide list of packages. --- gnu/system/examples/desktop.tmpl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/system/examples/desktop.tmpl b/gnu/system/examples/desktop.tmpl index 82687e740b..21b4563b53 100644 --- a/gnu/system/examples/desktop.tmpl +++ b/gnu/system/examples/desktop.tmpl @@ -4,7 +4,7 @@ (use-modules (gnu) (gnu system nss)) (use-service-modules desktop) -(use-package-modules certs) +(use-package-modules certs gnome) (operating-system (host-name "antelope") @@ -42,6 +42,7 @@ ;; This is where we specify system-wide packages. (packages (cons* nss-certs ;for HTTPS access + gvfs ;for user mounts %base-packages)) ;; Add GNOME and/or Xfce---we can choose at the log-in -- cgit v1.2.3 From 58612fd2c869995fd18ed915d4d240b173079e73 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 14:55:01 +0100 Subject: gnu: Add r-rematch. * gnu/packages/statistics.scm (r-rematch): New variable. --- gnu/packages/statistics.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 700a8957cc..612ea530d8 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3272,6 +3272,26 @@ noncentral hypergeometric distribution (also called extended hypergeometric distribution).") (license license:gpl3+))) +(define-public r-rematch + (package + (name "r-rematch") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "rematch" version)) + (sha256 + (base32 + "0y3mshvpvz9csmq8hk8jbabx4nxlv5sckvfzvm6920ndg34xw2d4")))) + (build-system r-build-system) + (home-page "https://github.com/MangoTheCat/rematch") + (synopsis "Match regular expressions with a nicer API") + (description + "This package provides a small wrapper on @code{regexpr} to extract the +matches and captured groups from the match of a regular expression to a +character vector.") + (license license:expat))) + (define-public r-rpart (package (name "r-rpart") -- cgit v1.2.3 From d427e03eee99461ade0df4837bc2e7c20c397f10 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 14:56:05 +0100 Subject: gnu: Add r-cellranger. * gnu/packages/statistics.scm (r-cellranger): New variable. --- gnu/packages/statistics.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 612ea530d8..cec304db66 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3292,6 +3292,28 @@ matches and captured groups from the match of a regular expression to a character vector.") (license license:expat))) +(define-public r-cellranger + (package + (name "r-cellranger") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "cellranger" version)) + (sha256 + (base32 + "16fgi3annn34c3cxi0pxf62mmmmxi21hp0zzlv7bkfsjqy4g4f2x")))) + (build-system r-build-system) + (propagated-inputs + `(("r-rematch" ,r-rematch) + ("r-tibble" ,r-tibble))) + (home-page "https://github.com/rsheets/cellranger") + (synopsis "Translate spreadsheet cell ranges to rows and columns") + (description + "This package provides helper functions to work with spreadsheets and the +@code{A1:D10} style of cell range specification.") + (license license:expat))) + (define-public r-rpart (package (name "r-rpart") -- cgit v1.2.3 From 9f5435d96391cd8438ba6ce6142b20753360b025 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 14:57:06 +0100 Subject: gnu: Add r-googlesheets. * gnu/packages/statistics.scm (r-googlesheets): New variable. --- gnu/packages/statistics.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index cec304db66..0ba33165d6 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3314,6 +3314,34 @@ character vector.") @code{A1:D10} style of cell range specification.") (license license:expat))) +(define-public r-googlesheets + (package + (name "r-googlesheets") + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "googlesheets" version)) + (sha256 + (base32 + "0ps13h1cv7fj5dh8s4nvwi64wnnyqdsadcaa4iizq1c5s615cwk3")))) + (build-system r-build-system) + (propagated-inputs + `(("r-cellranger" ,r-cellranger) + ("r-dplyr" ,r-dplyr) + ("r-httr" ,r-httr) + ("r-jsonlite" ,r-jsonlite) + ("r-purrr" ,r-purrr) + ("r-readr" ,r-readr) + ("r-stringr" ,r-stringr) + ("r-tidyr" ,r-tidyr) + ("r-xml2" ,r-xml2))) + (home-page "https://github.com/jennybc/googlesheets") + (synopsis "Manage Google spreadsheets from R") + (description "This package provides tools to interact with Google Sheets +from within R.") + (license license:expat))) + (define-public r-rpart (package (name "r-rpart") -- cgit v1.2.3 From e7d16ad1616878f28b9e0eb403be845d3892a4aa Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 14:58:40 +0100 Subject: gnu: Add r-spams. * gnu/packages/statistics.scm (r-spams): New variable. --- gnu/packages/statistics.scm | 52 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 0ba33165d6..dcf6dbe626 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3342,6 +3342,58 @@ character vector.") from within R.") (license license:expat))) +(define-public r-spams + (package + (name "r-spams") + (version "2.5-svn2014-07-04") + (source + (origin + (method url-fetch) + (uri (string-append "https://gforge.inria.fr/frs/download.php/33815/" + "spams-R-v" version ".tar.gz")) + (sha256 + (base32 + "1k459jg9a334slkw31w63l4d39xszjzsng7dv5j1mp78zifz7hvx")))) + (build-system r-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "spams") #t)) + ;; Since R 3.3.0 including R headers inside of an extern "C" block + ;; causes C headers to be included, which results in a lot of + ;; duplicate definitions. This can be avoided by defining + ;; NO_C_HEADERS before including the R headers. + (add-after 'chdir 'patch-use-of-R-headers + (lambda _ + (substitute* "src/spams.cpp" + (("#include " line) + (string-append "#define NO_C_HEADERS\n" line))) + #t)) + ;; This looks like a syntax error. + (add-after 'chdir 'patch-isnan + (lambda _ + (substitute* '"src/spams/linalg/linalg.h" + (("if isnan\\(lambda\\) \\{") + "if (isnan(lambda)) {")) + #t))))) + (home-page "http://spams-devel.gforge.inria.fr") + (synopsis "Toolbox for solving sparse estimation problems") + (description "SPAMS (SPArse Modeling Software) is an optimization toolbox +for solving various sparse estimation problems. It includes tools for the +following problems: + +@enumerate +@item Dictionary learning and matrix factorization (NMF, sparse @dfn{principle + component analysis} (PCA), ...) +@item Solving sparse decomposition problems with LARS, coordinate descent, + OMP, SOMP, proximal methods +@item Solving structured sparse decomposition problems (l1/l2, l1/linf, sparse + group lasso, tree-structured regularization, structured sparsity with + overlapping groups,...). +@end enumerate\n") + (license license:gpl3+))) + (define-public r-rpart (package (name "r-rpart") -- cgit v1.2.3 From e619a5c245d76c559ff98b4f5dc070c571d90574 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 15:04:18 +0100 Subject: gnu: Add r-r4rna. * gnu/packages/bioinformatics.scm (r-r4rna): New variable. --- gnu/packages/bioinformatics.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index f04acc0a5c..0b6fbe5df2 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7338,6 +7338,29 @@ two-dimensional genome scans.") libraries for systems that do not have these available via other means.") (license license:artistic2.0))) +(define-public r-r4rna + (package + (name "r-r4rna") + (version "0.1.4") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.e-rna.org/r-chie/files/R4RNA_" + version ".tar.gz")) + (sha256 + (base32 + "1p0i78wh76jfgmn9jphbwwaz6yy6pipzfg08xs54cxavxg2j81p5")))) + (build-system r-build-system) + (propagated-inputs + `(("r-optparse" ,r-optparse) + ("r-rcolorbrewer" ,r-rcolorbrewer))) + (home-page "http://www.e-rna.org/r-chie/index.cgi") + (synopsis "Analysis framework for RNA secondary structure") + (description + "The R4RNA package aims to be a general framework for the analysis of RNA +secondary structure and comparative analysis in R.") + (license license:gpl3+))) + (define-public r-rhtslib (package (name "r-rhtslib") -- cgit v1.2.3 From c9a6671490c4f415cdd17691fc6585baff892db7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 15:06:32 +0100 Subject: gnu: Add r-dynamictreecut. * gnu/packages/statistics.scm (r-dynamictreecut): New variable. --- gnu/packages/statistics.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index dcf6dbe626..c48620895c 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3497,6 +3497,27 @@ conversion of R objects to LaTeX code, and recoding variables.") framework, with additional code inspection and report generation tools.") (license license:gpl2+))) +(define-public r-dynamictreecut + (package + (name "r-dynamictreecut") + (version "1.63-1") + (source + (origin + (method url-fetch) + (uri (cran-uri "dynamicTreeCut" version)) + (sha256 + (base32 + "1fadbql7g5r2vvlkr89nlrjxwp4yx4xrdqmv077qvmnx9vv0f4w3")))) + (properties `((upstream-name . "dynamicTreeCut"))) + (build-system r-build-system) + (home-page + "http://www.genetics.ucla.edu/labs/horvath/CoexpressionNetwork/BranchCutting/") + (synopsis "Detect clusters in hierarchical clustering dendrograms") + (description + "This package contains methods for the detection of clusters in +hierarchical clustering dendrograms.") + (license license:gpl2+))) + (define-public r-kernsmooth (package (name "r-kernsmooth") -- cgit v1.2.3 From c4708783eec4cf0d312b6401949b15e76407b724 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 15:08:22 +0100 Subject: gnu: Add r-preprocesscore. * gnu/packages/statistics.scm (r-preprocesscore): New variable. --- gnu/packages/statistics.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index c48620895c..d2ca35ef6b 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3518,6 +3518,27 @@ framework, with additional code inspection and report generation tools.") hierarchical clustering dendrograms.") (license license:gpl2+))) +(define-public r-preprocesscore + (package + (name "r-preprocesscore") + (version "1.36.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "preprocessCore" version)) + (sha256 + (base32 + "1n8y12q7145f385gm2k3c6y3vwvin7jlb47la4mnl7mar6pq9kmp")))) + (properties + `((upstream-name . "preprocessCore"))) + (build-system r-build-system) + (home-page "https://github.com/bmbolstad/preprocessCore") + (synopsis "Collection of pre-processing functions") + (description + "This package provides a library of core pre-processing and normalization +routines.") + (license license:lgpl2.0+))) + (define-public r-kernsmooth (package (name "r-kernsmooth") -- cgit v1.2.3 From 1bd46f55207f5940131e37678bdd10ccff1dd56d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 15:15:27 +0100 Subject: gnu: Add r-fastcluster. * gnu/packages/statistics.scm (r-fastcluster): New variable. --- gnu/packages/statistics.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index d2ca35ef6b..3c2bd0c03c 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3539,6 +3539,31 @@ hierarchical clustering dendrograms.") routines.") (license license:lgpl2.0+))) +(define-public r-fastcluster + (package + (name "r-fastcluster") + (version "1.1.20") + (source + (origin + (method url-fetch) + (uri (cran-uri "fastcluster" version)) + (sha256 + (base32 + "0rlbxhh894znf10x0xgkv9dzpibgq9jw5aqpgviccdnxc2c5hwid")))) + (build-system r-build-system) + (home-page "http://danifold.net/fastcluster.html") + (synopsis "Fast hierarchical clustering routines") + (description + "This package implements fast hierarchical, agglomerative clustering +routines. Part of the functionality is designed as drop-in replacement for +existing routines: @code{linkage()} in the SciPy package +@code{scipy.cluster.hierarchy}, @code{hclust()} in R's @code{stats} package, +and the @code{flashClust} package. It provides the same functionality with +the benefit of a much faster implementation. Moreover, there are +memory-saving routines for clustering of vector data, which go beyond what the +existing packages provide.") + (license license:bsd-2))) + (define-public r-kernsmooth (package (name "r-kernsmooth") -- cgit v1.2.3 From d71605294fff1a12f3145fa4788da1556284c91c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 15:15:45 +0100 Subject: gnu: Add r-wgcna. * gnu/packages/bioinformatics.scm (r-wgcna): New variable. --- gnu/packages/bioinformatics.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 0b6fbe5df2..0b10b1b6e7 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7541,6 +7541,42 @@ characterization and visualization of a wide range of mutational patterns in SNV base substitution data.") (license license:expat))) +(define-public r-wgcna + (package + (name "r-wgcna") + (version "1.51") + (source + (origin + (method url-fetch) + (uri (cran-uri "WGCNA" version)) + (sha256 + (base32 + "0hzvnhw76vwg8bl8x368f0c5szpwb8323bmrb3bir93i5bmfjsxx")))) + (properties `((upstream-name . "WGCNA"))) + (build-system r-build-system) + (propagated-inputs + `(("r-annotationdbi" ,r-annotationdbi) + ("r-doparallel" ,r-doparallel) + ("r-dynamictreecut" ,r-dynamictreecut) + ("r-fastcluster" ,r-fastcluster) + ("r-foreach" ,r-foreach) + ("r-go-db" ,r-go-db) + ("r-hmisc" ,r-hmisc) + ("r-impute" ,r-impute) + ("r-matrixstats" ,r-matrixstats) + ("r-preprocesscore" ,r-preprocesscore))) + (home-page + "http://www.genetics.ucla.edu/labs/horvath/CoexpressionNetwork/Rpackages/WGCNA/") + (synopsis "Weighted correlation network analysis") + (description + "This package provides functions necessary to perform Weighted +Correlation Network Analysis on high-dimensional data. It includes functions +for rudimentary data cleaning, construction and summarization of correlation +networks, module identification and functions for relating both variables and +modules to sample traits. It also includes a number of utility functions for +data manipulation and visualization.") + (license license:gpl2+))) + (define-public emboss (package (name "emboss") -- cgit v1.2.3 From 6335bf1c805940f2c3ea9b16f477084c2cf0eb52 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 15:16:53 +0100 Subject: gnu: Add r-sfsmisc. * gnu/packages/statistics.scm (r-sfsmisc): New variable. --- gnu/packages/statistics.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 3c2bd0c03c..0c5425860c 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3564,6 +3564,25 @@ memory-saving routines for clustering of vector data, which go beyond what the existing packages provide.") (license license:bsd-2))) +(define-public r-sfsmisc + (package + (name "r-sfsmisc") + (version "1.1-0") + (source + (origin + (method url-fetch) + (uri (cran-uri "sfsmisc" version)) + (sha256 + (base32 + "0580piv4n1nispl3pa8nfjjfnb8iwaqky2dzdy0aqnxrxgrhqhvz")))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/sfsmisc") + (synopsis "Utilities from \"Seminar fuer Statistik\" ETH Zurich") + (description + "This package provides useful utilities from Seminar fuer Statistik ETH +Zurich, including many that are related to graphics.") + (license license:gpl2+))) + (define-public r-kernsmooth (package (name "r-kernsmooth") -- cgit v1.2.3 From f05c7eb48d6e0daf5fda287a5df63e2f30062db6 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 15:18:06 +0100 Subject: gnu: Add r-kernlab. * gnu/packages/machine-learning.scm (r-kernlab): New variable. --- gnu/packages/machine-learning.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index c239c4f00f..8f1f8ee53b 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -479,6 +479,28 @@ geometric models.") single hidden layer, and for multinomial log-linear models.") (license (list license:gpl2+ license:gpl3+)))) +(define-public r-kernlab + (package + (name "r-kernlab") + (version "0.9-25") + (source + (origin + (method url-fetch) + (uri (cran-uri "kernlab" version)) + (sha256 + (base32 + "0qnaq9x3j2xc6jrmmd98wc6hkzch487s4p3a9lnc00xvahkhgpmr")))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/kernlab") + (synopsis "Kernel-based machine learning tools") + (description + "This package provides kernel-based machine learning methods for +classification, regression, clustering, novelty detection, quantile regression +and dimensionality reduction. Among other methods @code{kernlab} includes +Support Vector Machines, Spectral Clustering, Kernel PCA, Gaussian Processes +and a QP solver.") + (license license:gpl2))) + (define-public dlib (package (name "dlib") -- cgit v1.2.3 From 1571f90e3520b3b606078cdb1e92291a638da15f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 15:19:01 +0100 Subject: gnu: Add r-gtools. * gnu/packages/statistics.scm (r-gtools): New variable. --- gnu/packages/statistics.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 0c5425860c..8027aed617 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3583,6 +3583,28 @@ existing packages provide.") Zurich, including many that are related to graphics.") (license license:gpl2+))) +(define-public r-gtools + (package + (name "r-gtools") + (version "3.5.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "gtools" version)) + (sha256 + (base32 + "1xknwk9xlsj027pg0nwiizigcrsc84hdrig0jn0cgcyxj8dabdl6")))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/gtools") + (synopsis "Various R programming tools") + (description + "This package contains a collection of various functions to assist in R +programming, such as tools to assist in developing, updating, and maintaining +R and R packages, calculating the logit and inverse logit transformations, +tests for whether a value is missing, empty or contains only @code{NA} and +@code{NULL} values, and many more.") + (license license:gpl2))) + (define-public r-kernsmooth (package (name "r-kernsmooth") -- cgit v1.2.3 From c827f2028629c43f73aee99600d34fc97fca4208 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 15:22:03 +0100 Subject: gnu: Add r-chipkernels. * gnu/packages/bioinformatics.scm (r-chipkernels): New variable. --- gnu/packages/bioinformatics.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 0b10b1b6e7..73e1d09b89 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7577,6 +7577,42 @@ modules to sample traits. It also includes a number of utility functions for data manipulation and visualization.") (license license:gpl2+))) +(define-public r-chipkernels + (let ((commit "c9cfcacb626b1221094fb3490ea7bac0fd625372") + (revision "1")) + (package + (name "r-chipkernels") + (version (string-append "1.1-" revision "." (string-take commit 9))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ManuSetty/ChIPKernels.git") + (commit commit))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "14bj5qhjm1hsm9ay561nfbqi9wxsa7y487df2idsaaf6z10nw4v0")))) + (build-system r-build-system) + (propagated-inputs + `(("r-iranges" ,r-iranges) + ("r-xvector" ,r-xvector) + ("r-biostrings" ,r-biostrings) + ("r-bsgenome" ,r-bsgenome) + ("r-gtools" ,r-gtools) + ("r-genomicranges" ,r-genomicranges) + ("r-sfsmisc" ,r-sfsmisc) + ("r-kernlab" ,r-kernlab) + ("r-s4vectors" ,r-s4vectors) + ("r-biocgenerics" ,r-biocgenerics))) + (home-page "https://github.com/ManuSetty/ChIPKernels") + (synopsis "Build string kernels for DNA Sequence analysis") + (description "ChIPKernels is an R package for building different string +kernels used for DNA Sequence analysis. A dictionary of the desired kernel +must be built and this dictionary can be used for determining kernels for DNA +Sequences.") + (license license:gpl2+)))) + (define-public emboss (package (name "emboss") -- cgit v1.2.3 From 2d9fb1702fb0d142e83cfbf949f9330981ed9687 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 15:24:25 +0100 Subject: gnu: Add r-seqgl. * gnu/packages/bioinformatics.scm (r-seqgl): New variable. --- gnu/packages/bioinformatics.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 73e1d09b89..5f63707bf8 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7613,6 +7613,36 @@ must be built and this dictionary can be used for determining kernels for DNA Sequences.") (license license:gpl2+)))) +(define-public r-seqgl + (package + (name "r-seqgl") + (version "1.1.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/ManuSetty/SeqGL/" + "archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0pnk1p3sci5yipyc8xnb6jbmydpl80fld927xgnbcv104hy8h8yh")))) + (build-system r-build-system) + (propagated-inputs + `(("r-biostrings" ,r-biostrings) + ("r-chipkernels" ,r-chipkernels) + ("r-genomicranges" ,r-genomicranges) + ("r-spams" ,r-spams) + ("r-wgcna" ,r-wgcna) + ("r-fastcluster" ,r-fastcluster))) + (home-page "https://github.com/ManuSetty/SeqGL") + (synopsis "Group lasso for Dnase/ChIP-seq data") + (description "SeqGL is a group lasso based algorithm to extract +transcription factor sequence signals from ChIP, DNase and ATAC-seq profiles. +This package presents a method which uses group lasso to discriminate between +bound and non bound genomic regions to accurately identify transcription +factors bound at the specific regions.") + (license license:gpl2+))) + (define-public emboss (package (name "emboss") -- cgit v1.2.3 From 6034cd905e610e2ed5d7d40b30953917b8619535 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 15:38:41 +0100 Subject: gnu: Add r-gdata. * gnu/packages/statistics.scm (r-gdata): New variable. --- gnu/packages/statistics.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 8027aed617..dc519b46a2 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3605,6 +3605,46 @@ tests for whether a value is missing, empty or contains only @code{NA} and @code{NULL} values, and many more.") (license license:gpl2))) +(define-public r-gdata + (package + (name "r-gdata") + (version "2.17.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "gdata" version)) + (sha256 + (base32 + "0kiy3jbcszlpmarg311spdsfi5pn89wgy742dxsbzxk8907fr5w0")))) + (build-system r-build-system) + (inputs + `(("perl" ,perl))) + (propagated-inputs + `(("r-gtools" ,r-gtools))) + (home-page "http://cran.r-project.org/web/packages/gdata") + (synopsis "Various R programming tools for data manipulation") + (description + "This package provides various R programming tools for data manipulation, +including: + +@itemize +@item medical unit conversions +@item combining objects +@item character vector operations +@item factor manipulation +@item obtaining information about R objects +@item manipulating MS-Excel formatted files +@item generating fixed-width format files +@item extricating components of date and time objects +@item operations on columns of data frames +@item matrix operations +@item operations on vectors and data frames +@item value of last evaluated expression +@item wrapper for @code{sample} that ensures consistent behavior for + both scalar and vector arguments +@end itemize\n") + (license license:gpl2+))) + (define-public r-kernsmooth (package (name "r-kernsmooth") -- cgit v1.2.3 From 0cfe0570f2d6c88bd811fa4739075bfe2f223324 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 15:39:24 +0100 Subject: gnu: Add r-gplots. * gnu/packages/statistics.scm (r-gplots): New variable. --- gnu/packages/statistics.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index dc519b46a2..f014f16a97 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3645,6 +3645,46 @@ including: @end itemize\n") (license license:gpl2+))) +(define-public r-gplots + (package + (name "r-gplots") + (version "3.0.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "gplots" version)) + (sha256 + (base32 + "02nb8n3s7c1zxq2s7ycaq2ys72y7mzirxrwj954h6gdc4x1zhg9l")))) + (build-system r-build-system) + (propagated-inputs + `(("r-catools" ,r-catools) + ("r-gdata" ,r-gdata) + ("r-gtools" ,r-gtools) + ("r-kernsmooth" ,r-kernsmooth))) + (home-page "http://cran.r-project.org/web/packages/gplots") + (synopsis "Various R programming tools for plotting data") + (description + "This package provides various R programming tools for plotting data, +including: + +@itemize +@item calculating and plotting locally smoothed summary function +@item enhanced versions of standard plots +@item manipulating colors +@item calculating and plotting two-dimensional data summaries +@item enhanced regression diagnostic plots +@item formula-enabled interface to @code{stats::lowess} function +@item displaying textual data in plots +@item baloon plots +@item plotting \"Venn\" diagrams +@item displaying Open-Office style plots +@item plotting multiple data on same region, with separate axes +@item plotting means and confidence intervals +@item spacing points in an x-y plot so they don't overlap +@end itemize\n") + (license license:gpl2+))) + (define-public r-kernsmooth (package (name "r-kernsmooth") -- cgit v1.2.3 From 419a8a186f87308e6092067ad01b4f80199dd629 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 15:41:17 +0100 Subject: gnu: Add r-rocr. * gnu/packages/statistics.scm (r-rocr): New variable. --- gnu/packages/statistics.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index f014f16a97..c2d46f29d4 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -3685,6 +3685,36 @@ including: @end itemize\n") (license license:gpl2+))) +(define-public r-rocr + (package + (name "r-rocr") + (version "1.0-7") + (source + (origin + (method url-fetch) + (uri (cran-uri "ROCR" version)) + (sha256 + (base32 + "1jay8cm7lgq56i967vm5c2hgaxqkphfpip0gn941li3yhh7p3vz7")))) + (properties `((upstream-name . "ROCR"))) + (build-system r-build-system) + (propagated-inputs + `(("r-gplots" ,r-gplots))) + (home-page "http://rocr.bioinf.mpi-sb.mpg.de/") + (synopsis "Visualizing the performance of scoring classifiers") + (description + "ROCR is a flexible tool for creating cutoff-parameterized 2D performance +curves by freely combining two from over 25 performance measures (new +performance measures can be added using a standard interface). Curves from +different cross-validation or bootstrapping runs can be averaged by different +methods, and standard deviations, standard errors or box plots can be used to +visualize the variability across the runs. The parameterization can be +visualized by printing cutoff values at the corresponding curve positions, or +by coloring the curve according to cutoff. All components of a performance +plot can be quickly adjusted using a flexible parameter dispatching +mechanism.") + (license license:gpl2+))) + (define-public r-kernsmooth (package (name "r-kernsmooth") -- cgit v1.2.3 From bd3be46e7fd148eef4b4ba81ee5cd4d159e9c20c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 24 Nov 2016 15:42:22 +0100 Subject: gnu: Add r-gkmsvm. * gnu/packages/bioinformatics.scm (r-gkmsvm): New variable. --- gnu/packages/bioinformatics.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 5f63707bf8..4b848535dc 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -7643,6 +7643,39 @@ bound and non bound genomic regions to accurately identify transcription factors bound at the specific regions.") (license license:gpl2+))) +(define-public r-gkmsvm + (package + (name "r-gkmsvm") + (version "0.71.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "gkmSVM" version)) + (sha256 + (base32 + "1zpxgxmf2nd5j5wn00ps6kfxr8wxh7d1swr1rr4spq7sj5z5z0k0")))) + (properties `((upstream-name . "gkmSVM"))) + (build-system r-build-system) + (propagated-inputs + `(("r-biocgenerics" ,r-biocgenerics) + ("r-biostrings" ,r-biostrings) + ("r-genomeinfodb" ,r-genomeinfodb) + ("r-genomicranges" ,r-genomicranges) + ("r-iranges" ,r-iranges) + ("r-kernlab" ,r-kernlab) + ("r-rcpp" ,r-rcpp) + ("r-rocr" ,r-rocr) + ("r-rtracklayer" ,r-rtracklayer) + ("r-s4vectors" ,r-s4vectors) + ("r-seqinr" ,r-seqinr))) + (home-page "http://cran.r-project.org/web/packages/gkmSVM") + (synopsis "Gapped-kmer support vector machine") + (description + "This R package provides tools for training gapped-kmer SVM classifiers +for DNA and protein sequences. This package supports several sequence +kernels, including: gkmSVM, kmer-SVM, mismatch kernel and wildcard kernel.") + (license license:gpl2+))) + (define-public emboss (package (name "emboss") -- cgit v1.2.3 From 9a5187b687e659da86000b32c951e2f55e1f74bb Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 28 Nov 2016 16:19:04 +0100 Subject: doc: Document NSS incompatibility issues on foreign distros. * doc/guix.texi (Application Setup)[Name Service Switch]: New subsection. --- doc/guix.texi | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 5747484b20..ce1e5d075a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -1242,6 +1242,56 @@ data in the right format. This is important because the locale data format used by different libc versions may be incompatible. +@subsection Name Service Switch + +@cindex name service switch, glibc +@cindex NSS (name service switch), glibc +@cindex nscd (name service caching daemon) +@cindex name service caching daemon (nscd) +When using Guix on a foreign distro, we @emph{strongly recommend} that +the system run the GNU C library's @dfn{name service cache daemon}, +@command{nscd}, which should be listening on the +@file{/var/run/nscd/socket} socket. Failing to do that, applications +installed with Guix may fail to look up host names or user accounts, or +may even crash. The next paragraphs explain why. + +@cindex @file{nsswitch.conf} +The GNU C library implements a @dfn{name service switch} (NSS), which is +an extensible mechanism for ``name lookups'' in general: host name +resolution, user accounts, and more (@pxref{Name Service Switch,,, libc, +The GNU C Library Reference Manual}). + +@cindex Network information service (NIS) +@cindex NIS (Network information service) +Being extensible, the NSS supports @dfn{plugins}, which provide new name +lookup implementations: for example, the @code{nss-mdns} plugin allow +resolution of @code{.local} host names, the @code{nis} plugin allows +user account lookup using the Network information service (NIS), and so +on. These extra ``lookup services'' are configured system-wide in +@file{/etc/nsswitch.conf}, and all the programs running on the system +honor those settings (@pxref{NSS Configuration File,,, libc, The GNU C +Reference Manual}). + +When they perform a name lookup---for instance by calling the +@code{getaddrinfo} function in C---applications first try to connect to +the nscd; on success, nscd performs name lookups on their behalf. If +the nscd is not running, then they perform the name lookup by +themselves, by loading the name lookup services into their own address +space and running it. These name lookup services---the +@file{libnss_*.so} files---are @code{dlopen}'d, but they may come from +the host system's C library, rather than from the C library the +application is linked against (the C library coming from Guix). + +And this is where the problem is: if your application is linked against +Guix's C library (say, glibc 2.24) and tries to load NSS plugins from +another C library (say, @code{libnss_mdns.so} for glibc 2.22), it will +likely crash or have its name lookups fail unexpectedly. + +Running @command{nscd} on the system, among other advantages, eliminates +this binary incompatibility problem because those @code{libnss_*.so} +files are loaded in the @command{nscd} process, not in applications +themselves. + @subsection X11 Fonts @cindex fonts -- cgit v1.2.3 From c062b1eb6c9d799f0015e26b14cd77eaf8d946dd Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 28 Nov 2016 22:08:17 +0100 Subject: pull: Set '%nix-instantiate' to a sensible value. Reported by ng0 . Fixes . * guix/build/pull.scm (build-guix): Replace "@NIX_INSTANTIATE@" in guix/config.scm with "nix-instantiate". --- guix/build/pull.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/build/pull.scm b/guix/build/pull.scm index 871bf6f535..6034e93cbf 100644 --- a/guix/build/pull.scm +++ b/guix/build/pull.scm @@ -84,7 +84,7 @@ containing the source code. Write any debugging output to DEBUG-PORT." (("@GZIP@") (string-append gzip "/bin/gzip")) (("@BZIP2@") (string-append bzip2 "/bin/bzip2")) (("@XZ@") (string-append xz "/bin/xz")) - (("@NIX_INSTANTIATE@") "")) ;remnants from the past + (("@NIX_INSTANTIATE@") "nix-instantiate")) ;for (guix import nix) ;; Augment the search path so Scheme code can be compiled. (set! %load-path (cons out %load-path)) -- cgit v1.2.3 From d2bcf35e1805b06fb575352531d9c439425dc379 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 28 Nov 2016 22:56:41 +0100 Subject: vm: Avoid needless file copy in 'load-in-linux-vm'. Reported by Chris Webber. * gnu/build/vm.scm (load-in-linux-vm)[image-file]: Remove. Directly refer to OUTPUT instead. --- gnu/build/vm.scm | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index cc5cf45362..60ee18ebe0 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -79,12 +79,9 @@ it via /dev/hda. REFERENCES-GRAPHS can specify a list of reference-graph files as produced by the #:references-graphs parameter of 'derivation'." - (define image-file - (string-append "image." disk-image-format)) - (when make-disk-image? (unless (zero? (system* "qemu-img" "create" "-f" disk-image-format - image-file + output (number->string disk-image-size))) (error "qemu-img failed"))) @@ -115,7 +112,7 @@ the #:references-graphs parameter of 'derivation'." builder) (append (if make-disk-image? - `("-drive" ,(string-append "file=" image-file + `("-drive" ,(string-append "file=" output ",if=virtio")) '()) ;; Only enable kvm if we see /dev/kvm exists. @@ -126,11 +123,10 @@ the #:references-graphs parameter of 'derivation'." '())))) (error "qemu failed" qemu)) - (if make-disk-image? - (copy-file image-file output) - (begin - (mkdir output) - (copy-recursively "xchg" output)))) + ;; When MAKE-DISK-IMAGE? is true, the image is in OUTPUT already. + (unless make-disk-image? + (mkdir output) + (copy-recursively "xchg" output))) ;;; -- cgit v1.2.3 From 7c635ed6f767cc5723528b50fae2ddfbf77f98a0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 28 Nov 2016 23:05:23 +0100 Subject: gnu: perl-dbd-mysql: Update to 4.041 [security fix]. * gnu/packages/databases.scm (perl-dbd-mysql): Update to 4.041. [source]: Update CPAN URI. --- gnu/packages/databases.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index d6746f092f..bd60e4cc66 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -819,15 +819,15 @@ columns, primary keys, unique constraints and relationships.") (define-public perl-dbd-mysql (package (name "perl-dbd-mysql") - (version "4.039") + (version "4.041") (source (origin (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/C/CA/CAPTTOFU/" + (uri (string-append "mirror://cpan/authors/id/M/MI/MICHIELB/" "DBD-mysql-" version ".tar.gz")) (sha256 (base32 - "0k4p3bjdbmxm2amb0qiiwmn8v83zrjkz5qp84xdjrg8k5v9aj0hn")))) + "0h4h6zwzj8fwh9ljb8svnsa0a3ch4p10hp59kpdibdb4qh8xwxs7")))) (build-system perl-build-system) ;; Tests require running MySQL server (arguments `(#:tests? #f)) -- cgit v1.2.3 From 0c85db79f7a8abc3bcdbf8931d959fe94306a5a1 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Sat, 26 Nov 2016 10:29:23 +0100 Subject: gnu: Allow nfs file systems to be automatically mounted. * gnu/build/file-systems.scm (mount-file-system): Append target addr= when mounting nfs filesystems. --- gnu/build/file-systems.scm | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index 0d55e91978..431b287d0c 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -464,6 +464,27 @@ form: DEVICE, MOUNT-POINT, and TYPE must be strings; OPTIONS can be a string or #f; FLAGS must be a list of symbols. CHECK? is a Boolean indicating whether to run a file system check." + + (define (mount-nfs source mount-point type flags options) + (let* ((idx (string-rindex source #\:)) + (host-part (string-take source idx)) + ;; Strip [] from around host if present + (host (match (string-split host-part (string->char-set "[]")) + (("" h "") h) + ((h) h))) + (aa (match (getaddrinfo host "nfs") ((x . _) x))) + (sa (addrinfo:addr aa)) + (inet-addr (inet-ntop (sockaddr:fam sa) + (sockaddr:addr sa)))) + + ;; Mounting an NFS file system requires passing the address + ;; of the server in the addr= option + (mount source mount-point type flags + (string-append "addr=" + inet-addr + (if options + (string-append "," options) + ""))))) (match spec ((source title mount-point type (flags ...) options check?) (let ((source (canonicalize-device-spec source title)) @@ -481,7 +502,11 @@ run a file system check." (call-with-output-file mount-point (const #t))) (mkdir-p mount-point)) - (mount source mount-point type flags options) + (cond + ((string-prefix? "nfs" type) + (mount-nfs source mount-point type flags options)) + (else + (mount source mount-point type flags options))) ;; For read-only bind mounts, an extra remount is needed, as per ;; , which still applies to Linux 4.0. -- cgit v1.2.3 From 3e757c005f91182c69c9a08f0cfa8a3c75ba7c6e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 29 Nov 2016 09:35:11 +0200 Subject: gnu: aspell-dict-en: Update to 2016.11.20-0. * gnu/packages/aspell.scm (aspell-dict-en): Update to 2016.11.20-0. --- gnu/packages/aspell.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm index b3ca380533..04a9197839 100644 --- a/gnu/packages/aspell.scm +++ b/gnu/packages/aspell.scm @@ -108,10 +108,10 @@ dictionaries, including personal ones.") (define-public aspell-dict-en (aspell-dictionary "en" "English" - #:version "2016.01.19-0" + #:version "2016.11.20-0" #:sha256 (base32 - "01h4cl4lngp6mcfbyb47cjrc2gspyg2519dvknd97ki896nx7vcn"))) + "1496jnhh2jvhkzcj0p4vy89bcs4g5wz6a76m33vw4dhchn5xm9jw"))) (define-public aspell-dict-eo (aspell-dictionary "eo" "Esperanto" -- cgit v1.2.3 From 22486fbea669c5e1a5e19b52fc37c44f6f615de5 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 21 Nov 2016 22:10:11 +0200 Subject: gnu: Add wgetpaste. * gnu/packages/wget.scm (wgetpaste): New variable. --- gnu/packages/wget.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm index 80da33272e..72aab86c14 100644 --- a/gnu/packages/wget.scm +++ b/gnu/packages/wget.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012 Nikita Karetnikov ;;; Copyright © 2014, 2015 Ludovic Courtès +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -60,3 +61,36 @@ HTTPS and FTP protocols. It can resume interrupted downloads, use file name wild cards, supports proxies and cookies, and it can convert absolute links in downloaded documents to relative links.") (license gpl3+))) ; some files are under GPLv2+ + +(define-public wgetpaste + (package + (name "wgetpaste") + (version "2.28") + (source + (origin + (method url-fetch) + (uri (string-append "http://wgetpaste.zlin.dk/wgetpaste-" + version ".tar.bz2")) + (sha256 + (base32 + "1hh9svyypqcvdg5mjxyyfzpdzhylhf7s7xq5dzglnm4injx3i3ak")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (zsh (string-append out "/share/zsh/site-functions"))) + (install-file "wgetpaste" bin) + (install-file "_wgetpaste" zsh))))) + #:tests? #f)) ; no test target + (home-page "http://wgetpaste.zlin.dk/") + (synopsis "Script that automates pasting to a number of pastebin services") + (description + "@code{wgetpaste} is an extremely simple command-line interface to various +online pastebin services.") + (license public-domain))) -- cgit v1.2.3 From eb55f018219e5912fc5606c4e1881a64f8fa5710 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 21 Nov 2016 22:16:43 +0200 Subject: gnu: Add viewnior. * gnu/packages/image-viewers.scm (viewnior): New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/packages/image-viewers.scm | 78 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 gnu/packages/image-viewers.scm diff --git a/gnu/local.mk b/gnu/local.mk index c50ef254e0..49609cd68f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -187,6 +187,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/icu4c.scm \ %D%/packages/idutils.scm \ %D%/packages/image.scm \ + %D%/packages/image-viewers.scm \ %D%/packages/imagemagick.scm \ %D%/packages/indent.scm \ %D%/packages/inklingreader.scm \ diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm new file mode 100644 index 0000000000..4be0ebbc2d --- /dev/null +++ b/gnu/packages/image-viewers.scm @@ -0,0 +1,78 @@ +;;; Copyright © 2016 Efraim Flashner +;;; +;;; 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 . + +(define-module (gnu packages image-viewers) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (guix build-system gnu) + #:use-module (gnu packages autotools) + #:use-module (gnu packages base) + #:use-module (gnu packages geeqie) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gtk) + #:use-module (gnu packages pkg-config)) + +(define-public viewnior + (package + (name "viewnior") + (version "1.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/xsisqox/Viewnior/archive/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "18309qjgwak3kn228z3p3nx7yxasqgzx69v3rgc23hf161nky0c9")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'autogen + (lambda _ + (zero? (system* "sh" "autogen.sh"))))))) + (native-inputs + `(("automake" ,automake) + ("autoconf" ,autoconf) + ("intltool" ,intltool) + ("glib" ,glib "bin") ; glib-genmarshal + ("gnome-common" ,gnome-common) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config) + ("shared-mime-info" ,shared-mime-info) + ("which" ,which))) + (inputs + `(("exiv2" ,exiv2) + ("gdk-pixbuf" ,gdk-pixbuf) + ("gtk+-2" ,gtk+-2))) + (home-page "http://siyanpanayotov.com/project/viewnior/") + (synopsis "Simple, fast and elegant image viewer") + (description "Viewnior is an image viewer program. Created to be simple, +fast and elegant. Its minimalistic interface provides more screenspace for +your images. Among its features are: +@enumerate +@item Fullscreen & Slideshow +@item Rotate, flip, crop, save, delete images +@item Animation support +@item Browse only selected images +@item Navigation window +@item Set image as wallpaper (Gnome 2, Gnome 3, XFCE, LXDE, FluxBox, Nitrogen) +@item Simple interface +@item EXIF and IPTC metadata +@item Configurable mouse actions +@end enumerate\n") + (license license:gpl3+))) -- cgit v1.2.3 From c51d926c740f98883ce3332852e826f57fdf4566 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 28 Nov 2016 19:25:21 +0200 Subject: gnu: cairo: Fix CVE-2016-9082. * gnu/packages/gtk.scm (cairo)[replacement]: New field. (cairo/fixed): New variable. (cairo-xcb)[source]: Use patch. [replacement]: New field, set false. * gnu/packages/pdf.scm (poppler)[inputs]: Custom cairo should be replaced by a new custom patched cairo. * gnu/packages/patches/cairo-CVE-2016-9082.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/gtk.scm | 12 +++ gnu/packages/patches/cairo-CVE-2016-9082.patch | 122 +++++++++++++++++++++++++ gnu/packages/pdf.scm | 11 +++ 4 files changed, 146 insertions(+) create mode 100644 gnu/packages/patches/cairo-CVE-2016-9082.patch diff --git a/gnu/local.mk b/gnu/local.mk index 49609cd68f..9d0e4c5094 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -489,6 +489,7 @@ dist_patch_DATA = \ %D%/packages/patches/binutils-loongson-workaround.patch \ %D%/packages/patches/binutils-mips-bash-bug.patch \ %D%/packages/patches/byobu-writable-status.patch \ + %D%/packages/patches/cairo-CVE-2016-9082.patch \ %D%/packages/patches/calibre-drop-unrar.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/cdparanoia-fpic.patch \ diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 17bd9c9b00..8a258b54cc 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -100,6 +100,7 @@ tools have full access to view and control running applications.") (define-public cairo (package (name "cairo") + (replacement cairo/fixed) (version "1.14.6") (source (origin (method url-fetch) @@ -153,6 +154,10 @@ affine transformation (scale, rotation, shear, etc.).") (package (inherit cairo) (name "cairo-xcb") + (source (origin + (inherit (package-source cairo)) + (patches (search-patches "cairo-CVE-2016-9082.patch")))) + (replacement #f) (inputs `(("mesa" ,mesa) ,@(package-inputs cairo))) @@ -162,6 +167,13 @@ affine transformation (scale, rotation, shear, etc.).") '("--enable-xlib-xcb" "--enable-gl" "--enable-egl"))) (synopsis "2D graphics library (with X11 support)"))) +(define cairo/fixed + (package + (inherit cairo) + (source (origin + (inherit (package-source cairo)) + (patches (search-patches "cairo-CVE-2016-9082.patch")))))) + (define-public harfbuzz (package (name "harfbuzz") diff --git a/gnu/packages/patches/cairo-CVE-2016-9082.patch b/gnu/packages/patches/cairo-CVE-2016-9082.patch new file mode 100644 index 0000000000..ad83404194 --- /dev/null +++ b/gnu/packages/patches/cairo-CVE-2016-9082.patch @@ -0,0 +1,122 @@ +From: Adrian Johnson +Date: Thu, 20 Oct 2016 21:12:30 +1030 +Subject: [PATCH] image: prevent invalid ptr access for > 4GB images + +Image data is often accessed using: + + image->data + y * image->stride + +On 64-bit achitectures if the image data is > 4GB, this computation +will overflow since both y and stride are 32-bit types. + +bug report: https://bugs.freedesktop.org/show_bug.cgi?id=98165 +patch: https://bugs.freedesktop.org/attachment.cgi?id=127421 +--- + boilerplate/cairo-boilerplate.c | 4 +++- + src/cairo-image-compositor.c | 4 ++-- + src/cairo-image-surface-private.h | 2 +- + src/cairo-mesh-pattern-rasterizer.c | 2 +- + src/cairo-png.c | 2 +- + src/cairo-script-surface.c | 3 ++- + 6 files changed, 10 insertions(+), 7 deletions(-) + +diff --git a/boilerplate/cairo-boilerplate.c b/boilerplate/cairo-boilerplate.c +index 7fdbf79..4804dea 100644 +--- a/boilerplate/cairo-boilerplate.c ++++ b/boilerplate/cairo-boilerplate.c +@@ -42,6 +42,7 @@ + #undef CAIRO_VERSION_H + #include "../cairo-version.h" + ++#include + #include + #include + #include +@@ -976,7 +977,8 @@ cairo_surface_t * + cairo_boilerplate_image_surface_create_from_ppm_stream (FILE *file) + { + char format; +- int width, height, stride; ++ int width, height; ++ ptrdiff_t stride; + int x, y; + unsigned char *data; + cairo_surface_t *image = NULL; +diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c +index 48072f8..3ca0006 100644 +--- a/src/cairo-image-compositor.c ++++ b/src/cairo-image-compositor.c +@@ -1575,7 +1575,7 @@ typedef struct _cairo_image_span_renderer { + pixman_image_t *src, *mask; + union { + struct fill { +- int stride; ++ ptrdiff_t stride; + uint8_t *data; + uint32_t pixel; + } fill; +@@ -1594,7 +1594,7 @@ typedef struct _cairo_image_span_renderer { + struct finish { + cairo_rectangle_int_t extents; + int src_x, src_y; +- int stride; ++ ptrdiff_t stride; + uint8_t *data; + } mask; + } u; +diff --git a/src/cairo-image-surface-private.h b/src/cairo-image-surface-private.h +index 8ca694c..7e78d61 100644 +--- a/src/cairo-image-surface-private.h ++++ b/src/cairo-image-surface-private.h +@@ -71,7 +71,7 @@ struct _cairo_image_surface { + + int width; + int height; +- int stride; ++ ptrdiff_t stride; + int depth; + + unsigned owns_data : 1; +diff --git a/src/cairo-mesh-pattern-rasterizer.c b/src/cairo-mesh-pattern-rasterizer.c +index 1b63ca8..e7f0db6 100644 +--- a/src/cairo-mesh-pattern-rasterizer.c ++++ b/src/cairo-mesh-pattern-rasterizer.c +@@ -470,7 +470,7 @@ draw_pixel (unsigned char *data, int width, int height, int stride, + tg += tg >> 16; + tb += tb >> 16; + +- *((uint32_t*) (data + y*stride + 4*x)) = ((ta << 16) & 0xff000000) | ++ *((uint32_t*) (data + y*(ptrdiff_t)stride + 4*x)) = ((ta << 16) & 0xff000000) | + ((tr >> 8) & 0xff0000) | ((tg >> 16) & 0xff00) | (tb >> 24); + } + } +diff --git a/src/cairo-png.c b/src/cairo-png.c +index 562b743..aa8c227 100644 +--- a/src/cairo-png.c ++++ b/src/cairo-png.c +@@ -673,7 +673,7 @@ read_png (struct png_read_closure_t *png_closure) + } + + for (i = 0; i < png_height; i++) +- row_pointers[i] = &data[i * stride]; ++ row_pointers[i] = &data[i * (ptrdiff_t)stride]; + + png_read_image (png, row_pointers); + png_read_end (png, info); +diff --git a/src/cairo-script-surface.c b/src/cairo-script-surface.c +index ea0117d..91e4baa 100644 +--- a/src/cairo-script-surface.c ++++ b/src/cairo-script-surface.c +@@ -1202,7 +1202,8 @@ static cairo_status_t + _write_image_surface (cairo_output_stream_t *output, + const cairo_image_surface_t *image) + { +- int stride, row, width; ++ int row, width; ++ ptrdiff_t stride; + uint8_t row_stack[CAIRO_STACK_BUFFER_SIZE]; + uint8_t *rowdata; + uint8_t *data; +-- +2.1.4 + diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 39f4d021de..6442f08af9 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -95,6 +95,17 @@ ;; To build poppler-glib (as needed by Evince), we need Cairo and ;; GLib. But of course, that Cairo must not depend on Poppler. ("cairo" ,(package (inherit cairo) + (replacement + (package + (inherit cairo) + (replacement #f) + (source + (origin + (inherit (package-source cairo)) + (patches (search-patches + "cairo-CVE-2016-9082.patch")))) + (inputs (alist-delete "poppler" + (package-inputs cairo))))) (inputs (alist-delete "poppler" (package-inputs cairo))))) ("glib" ,glib))) -- cgit v1.2.3 From 0944bb1a6aaaf5ad61599897ee382bb246c27675 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 29 Nov 2016 11:02:39 +0200 Subject: gnu: offlineimap: Update to 7.0.10. * gnu/packages/mail.scm (offlineimap): Update to 7.0.10. --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index e0d0fd164c..9948a21d94 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -329,7 +329,7 @@ and corrections. It is based on a Bayesian filter.") (define-public offlineimap (package (name "offlineimap") - (version "7.0.9") + (version "7.0.10") (source (origin (method url-fetch) (uri (string-append "https://github.com/OfflineIMAP/offlineimap/" @@ -337,7 +337,7 @@ and corrections. It is based on a Bayesian filter.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "04kapx0ddz7ccwhcjshkml2y916wcan3rl28mpmq25p4gywlkhxf")))) + "0h8mgmwkvwh8x3yam32ipqkzcz4g1dmkbni3v1755lkm0z132m3j")))) (build-system python-build-system) (native-inputs `(("asciidoc" ,asciidoc) -- cgit v1.2.3 From ded69d6f8699f901472616c8b34ce7b59ec4b9fa Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 28 Nov 2016 22:02:09 +0100 Subject: gnu: Add non-session-manager. * gnu/packages/music.scm (non-session-manager): New variable. --- gnu/packages/music.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 3c56d199d2..e6d87e83c3 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -639,6 +639,28 @@ Sequencer happens on-line, in real-time. Music can be composed live, while the transport is rolling.") (license license:gpl2+)))) +(define-public non-session-manager + (package (inherit non-sequencer) + (name "non-session-manager") + (arguments + (substitute-keyword-arguments (package-arguments non-sequencer) + ((#:configure-flags flags) + `(cons "--project=session-manager" + (delete "--project=sequencer" ,flags))))) + (inputs + `(("jack" ,jack-1) + ("liblo" ,liblo) + ("ntk" ,ntk))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://non.tuxfamily.org/nsm/") + (synopsis "Audio session management") + (description + "The Non Session Manager is an API and an implementation for audio +session management. NSM clients use a well-specified OSC protocol to +communicate with the session management daemon.") + (license license:gpl2+))) + (define-public solfege (package (name "solfege") -- cgit v1.2.3 From 658c987fdd30c9cc071fd819c7e6d27bdb02600e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 29 Nov 2016 13:15:47 +0200 Subject: gnu: wine: Update to 1.9.24. * gnu/packages/wine.scm (wine): Update to 1.9.24. [home-page]: Use https. --- gnu/packages/wine.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 9a1bd56608..d2d3fdd80b 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Sou Bunnbu ;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -52,7 +53,7 @@ (define-public wine (package (name "wine") - (version "1.9.15") + (version "1.9.24") (source (origin (method url-fetch) (uri (string-append "https://dl.winehq.org/wine/source/" @@ -60,7 +61,7 @@ "/wine-" version ".tar.bz2")) (sha256 (base32 - "1nmd65knzyh8b0yhxlqqvzai5rpnmhhm0c46n789zr5hj74jm6fg")))) + "0qb07vfxwz41wj71lb0ss3apf22m4ch06382rqfksf7gg34pswnb")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("gettext" ,gettext-minimal) @@ -129,7 +130,7 @@ (("(#define SONAME_.* )\"(.*)\"" _ defso soname) (format #f "~a\"~a\"" defso (find-so soname)))))) %standard-phases))) - (home-page "http://www.winehq.org/") + (home-page "https://www.winehq.org/") (synopsis "Implementation of the Windows API") (description "Wine (originally an acronym for \"Wine Is Not an Emulator\") is a -- cgit v1.2.3 From 07cda02c5b6bc44007c1d3f44b7f003b35ac07ec Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 29 Nov 2016 13:18:05 +0200 Subject: gnu: wine: Use 'modify-phases' syntax. * gnu/packages/wine.scm (wine)[arguments]: Use 'modify-phases' syntax. --- gnu/packages/wine.scm | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index d2d3fdd80b..367f27af5e 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -118,18 +118,18 @@ (list "SHELL=bash") #:phases - (alist-cons-after - 'configure 'patch-dlopen-paths - ;; Hardcode dlopened sonames to absolute paths. - (lambda _ - (let* ((library-path (search-path-as-string->list - (getenv "LIBRARY_PATH"))) - (find-so (lambda (soname) - (search-path library-path soname)))) - (substitute* "include/config.h" - (("(#define SONAME_.* )\"(.*)\"" _ defso soname) - (format #f "~a\"~a\"" defso (find-so soname)))))) - %standard-phases))) + (modify-phases %standard-phases + (add-after 'configure 'patch-dlopen-paths + ;; Hardcode dlopened sonames to absolute paths. + (lambda _ + (let* ((library-path (search-path-as-string->list + (getenv "LIBRARY_PATH"))) + (find-so (lambda (soname) + (search-path library-path soname)))) + (substitute* "include/config.h" + (("(#define SONAME_.* )\"(.*)\"" _ defso soname) + (format #f "~a\"~a\"" defso (find-so soname)))) + #t)))))) (home-page "https://www.winehq.org/") (synopsis "Implementation of the Windows API") (description -- cgit v1.2.3 From a409de98116dacb75bb033bcebf22d8c1eb3d64b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 29 Nov 2016 15:45:40 +0200 Subject: gnu: efl: Update to 1.18.3. * gnu/packages/enlightenment.scm (efl): Update to 1.18.3. --- gnu/packages/enlightenment.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 25b8caf306..ae0f553a36 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -56,7 +56,7 @@ (define-public efl (package (name "efl") - (version "1.18.2") + (version "1.18.3") (source (origin (method url-fetch) (uri (string-append @@ -64,7 +64,7 @@ version ".tar.xz")) (sha256 (base32 - "1vbvsrrpkvvrmvjavwnp5q77kw5i7vmbaj2vq5mnmrbzamvaybr9")))) + "1h347sfxajyb5s931m9qga14wwiqci7aicww2imxjhzm8w4fqj07")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From e9c72306fdfd6a60158918850cb25d0ff3837d16 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 29 Nov 2016 15:07:07 +0100 Subject: refresh: Warn about packages that lack an updater. * guix/upstream.scm (package-update-path): Rename to... (package-latest-release): ... this. Remove 'version>?' check. (package-latest-release*): New procedure. (package-update): Use it. * guix/scripts/refresh.scm (lookup-updater): Rename to... (lookup-updater-by-name): ... this. (warn-no-updater): New procedure. (update-package): Add #:warn? parameter and honor it. (check-for-package-update): New procedure. (guix-refresh)[warn?]: New variable. Replace inline code when UPDATE? is false with a call to 'check-for-package-update'. Pass WARN? to 'check-for-package-update' and 'update-package'. * doc/guix.texi (Invoking guix refresh): Document it. Fix a couple of typos. --- doc/guix.texi | 19 +++++++--- guix/scripts/refresh.scm | 96 ++++++++++++++++++++++++++++++------------------ guix/upstream.scm | 30 ++++++++++----- 3 files changed, 95 insertions(+), 50 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index ce1e5d075a..4677e5cf79 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5250,10 +5250,19 @@ gnu/packages/gettext.scm:29:13: gettext would be upgraded from 0.18.1.1 to 0.18. gnu/packages/glib.scm:77:12: glib would be upgraded from 2.34.3 to 2.37.0 @end example -It does so by browsing the FTP directory of each package and determining -the highest version number of the source tarballs therein. The command +Alternately, one can specify packages to consider, in which case a +warning is emitted for packages that lack an updater: + +@example +$ guix refresh coreutils guile guile-ssh +gnu/packages/ssh.scm:205:2: warning: no updater for guile-ssh +gnu/packages/guile.scm:136:12: guile would be upgraded from 2.0.12 to 2.0.13 +@end example + +@command{guix refresh} browses the upstream repository of each package and determines +the highest version number of the releases therein. The command knows how to update specific types of packages: GNU packages, ELPA -packages, etc.---see the documentation for @option{--type} below. The +packages, etc.---see the documentation for @option{--type} below. There are many packages, though, for which it lacks a method to determine whether a new upstream release is available. However, the mechanism is extensible, so feel free to get in touch with us to add a new method! @@ -5293,7 +5302,7 @@ usually run from a checkout of the Guix source tree (@pxref{Running Guix Before It Is Installed}): @example -$ ./pre-inst-env guix refresh -s non-core +$ ./pre-inst-env guix refresh -s non-core -u @end example @xref{Defining Packages}, for more information on package definitions. @@ -5359,7 +5368,7 @@ In addition, @command{guix refresh} can be passed one or more package names, as in this example: @example -$ ./pre-inst-env guix refresh -u emacs idutils gcc-4.8.4 +$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8 @end example @noindent diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index b81c69f9fe..ed28ed5fcb 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -208,7 +208,7 @@ unavailable optional dependencies such as Guile-JSON." ((guix import gem) => %gem-updater) ((guix import github) => %github-updater))) -(define (lookup-updater name) +(define (lookup-updater-by-name name) "Return the updater called NAME." (or (find (lambda (updater) (eq? name (upstream-updater-name updater))) @@ -225,31 +225,60 @@ unavailable optional dependencies such as Guile-JSON." %updaters) (exit 0)) +(define (warn-no-updater package) + (format (current-error-port) + (_ "~a: warning: no updater for ~a~%") + (location->string (package-location package)) + (package-name package))) + (define* (update-package store package updaters - #:key (key-download 'interactive)) + #:key (key-download 'interactive) warn?) "Update the source file that defines PACKAGE with the new version. KEY-DOWNLOAD specifies a download policy for missing OpenPGP keys; allowed -values: 'interactive' (default), 'always', and 'never'." - (let-values (((version tarball) - (package-update store package updaters - #:key-download key-download)) - ((loc) - (or (package-field-location package 'version) - (package-location package)))) - (when version - (if (and=> tarball file-exists?) - (begin - (format (current-error-port) - (_ "~a: ~a: updating from version ~a to version ~a...~%") - (location->string loc) - (package-name package) - (package-version package) version) - (let ((hash (call-with-input-file tarball - port-sha256))) - (update-package-source package version hash))) - (warning (_ "~a: version ~a could not be \ +values: 'interactive' (default), 'always', and 'never'. When WARN? is true, +warn about packages that have no matching updater." + (if (lookup-updater package updaters) + (let-values (((version tarball) + (package-update store package updaters + #:key-download key-download)) + ((loc) + (or (package-field-location package 'version) + (package-location package)))) + (when version + (if (and=> tarball file-exists?) + (begin + (format (current-error-port) + (_ "~a: ~a: updating from version ~a to version ~a...~%") + (location->string loc) + (package-name package) + (package-version package) version) + (let ((hash (call-with-input-file tarball + port-sha256))) + (update-package-source package version hash))) + (warning (_ "~a: version ~a could not be \ downloaded and authenticated; not updating~%") - (package-name package) version))))) + (package-name package) version)))) + (when warn? + (warn-no-updater package)))) + +(define* (check-for-package-update package #:key warn?) + "Check whether an update is available for PACKAGE and print a message. When +WARN? is true and no updater exists for PACKAGE, print a warning." + (match (package-latest-release package %updaters) + ((? upstream-source? source) + (when (version>? (upstream-source-version source) + (package-version package)) + (let ((loc (or (package-field-location package 'version) + (package-location package)))) + (format (current-error-port) + (_ "~a: ~a would be upgraded from ~a to ~a~%") + (location->string loc) + (package-name package) (package-version package) + (upstream-source-version source))))) + (#f + (when warn? + (warn-no-updater package))))) + ;;; @@ -312,7 +341,7 @@ dependent packages are rebuilt: ~{~a~^ ~}~%" ;; Return the list of updaters to use. (match (filter-map (match-lambda (('updaters . names) - (map lookup-updater names)) + (map lookup-updater-by-name names)) (_ #f)) opts) (() @@ -360,6 +389,12 @@ update would trigger a complete rebuild." (updaters (options->updaters opts)) (list-dependent? (assoc-ref opts 'list-dependent?)) (key-download (assoc-ref opts 'key-download)) + + ;; Warn about missing updaters when a package is explicitly given on + ;; the command line. + (warn? (or (assoc-ref opts 'argument) + (assoc-ref opts 'expression))) + (packages (match (filter-map (match-lambda (('argument . spec) @@ -397,22 +432,13 @@ update would trigger a complete rebuild." (%gpg-command)))) (for-each (cut update-package store <> updaters - #:key-download key-download) + #:key-download key-download + #:warn? warn?) packages) (with-monad %store-monad (return #t)))) (else - (for-each (lambda (package) - (match (package-update-path package updaters) - ((? upstream-source? source) - (let ((loc (or (package-field-location package 'version) - (package-location package)))) - (format (current-error-port) - (_ "~a: ~a would be upgraded from ~a to ~a~%") - (location->string loc) - (package-name package) (package-version package) - (upstream-source-version source)))) - (#f #f))) + (for-each (cut check-for-package-update <> #:warn? warn?) packages) (with-monad %store-monad (return #t))))))))) diff --git a/guix/upstream.scm b/guix/upstream.scm index 18157376d2..08992dc19e 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm @@ -49,8 +49,11 @@ upstream-updater-predicate upstream-updater-latest + lookup-updater + download-tarball - package-update-path + package-latest-release + package-latest-release* package-update update-package-source)) @@ -127,17 +130,24 @@ them matches." (and (pred package) latest))) updaters)) -(define (package-update-path package updaters) +(define (package-latest-release package updaters) "Return an upstream source to update PACKAGE, a object, or #f if -no update is needed or known." +none of UPDATERS matches PACKAGE. It is the caller's responsibility to ensure +that the returned source is newer than the current one." (match (lookup-updater package updaters) ((? procedure? latest-release) - (match (latest-release package) - ((and source ($ name version)) - (and (version>? version (package-version package)) - source)) - (_ #f))) - (#f #f))) + (latest-release package)) + (_ #f))) + +(define (package-latest-release* package updaters) + "Like 'package-latest-release', but ensure that the return source is newer +than that of PACKAGE." + (match (package-latest-release package updaters) + ((and source ($ name version)) + (and (version>? version (package-version package)) + source)) + (_ + #f))) (define* (download-tarball store url signature-url #:key (key-download 'interactive)) @@ -179,7 +189,7 @@ values: the item from LST1 and the item from LST2 that match PRED." PACKAGE, or #f and #f when PACKAGE is up-to-date. KEY-DOWNLOAD specifies a download policy for missing OpenPGP keys; allowed values: 'always', 'never', and 'interactive' (default)." - (match (package-update-path package updaters) + (match (package-latest-release* package updaters) (($ _ version urls signature-urls) (let*-values (((name) (package-name package)) -- cgit v1.2.3 From 3e95d88d51a63854d44cbf8c8caa47b26d81e091 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 29 Nov 2016 16:10:10 +0100 Subject: gnu-maintenance: 'latest-kde-release' honors 'upstream-name' properties. * guix/gnu-maintenance.scm (latest-kde-release): Honor the 'upstream-name' property of PACKAGE. --- guix/gnu-maintenance.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 78392c9a11..6c6c0722d5 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -525,7 +525,8 @@ elpa.gnu.org, and all the GNOME packages." (let ((uri (string->uri (origin-uri (package-source package))))) (false-if-ftp-error (latest-ftp-release - (package-name package) + (or (assoc-ref (package-properties package) 'upstream-name) + (package-name package)) #:server "mirrors.mit.edu" #:directory (string-append "/kde" (dirname (dirname (uri-path uri)))) -- cgit v1.2.3 From 683c5ab70accb909697717bb61741a7692c52c09 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 29 Nov 2016 16:10:50 +0100 Subject: gnu: oxygen-icons: Add 'upstream-name' property. Fixes . Reported by Hartmut Goebel . * gnu/packages/kde-frameworks.scm (oxygen-icons)[properties]: New field. --- gnu/packages/kde-frameworks.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index 9df37ac38d..230527a837 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -1030,7 +1030,8 @@ which are used in DBus communication.") (home-page "https://community.kde.org/Frameworks") (synopsis "Oxygen provides the standard icon theme for the KDE desktop") (description "Oxygen icon theme for the KDE desktop") - (license license:lgpl3+))) + (license license:lgpl3+) + (properties '((upstream-name . "oxygen-icons5"))))) (define-public solid (package -- cgit v1.2.3 From 6f1dcafd81940f8f78ac0d2f3adad3d339828765 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Tue, 29 Nov 2016 18:06:24 +0100 Subject: gnu: wxPython: Fix build. * gnu/packages/wxwidgets.scm (python2-wxpython) [arguments]: Disable installation via setuptools (and --single-version-externally-managed). --- gnu/packages/wxwidgets.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index b72567f259..a65c969e5c 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -149,6 +149,9 @@ and many other languages.") (arguments `(#:python ,python-2 #:tests? #f ; tests fail + ;; wxPython directly extends distutils command classes, + ;; we can't easily make setup.py use setuptools. + #:use-setuptools? #f #:configure-flags (list "WXPORT=gtk2" "UNICODE=1") #:phases -- cgit v1.2.3 From 388606a72b5690aa6af64941a642884e45ee471d Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Tue, 29 Nov 2016 18:08:36 +0100 Subject: gnu: wxPython: Remove useless inputs. * gnu/packages/wxwidgets.scm (python2-wxpython) [native-inputs]: Remove setuptools, which is already included in python. --- gnu/packages/wxwidgets.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index a65c969e5c..5285037ffe 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -184,8 +184,7 @@ and many other languages.") #t))))) (native-inputs `(("mesa" ,mesa) ; for glcanvas - ("pkg-config" ,pkg-config) - ("python2-setuptools" ,python2-setuptools))) + ("pkg-config" ,pkg-config))) (inputs `(("gtk+" ,gtk+-2) ; for wxPython/src/helpers.cpp ("wxwidgets" ,wxwidgets-gtk2))) -- cgit v1.2.3 From 2cb64f3b1b3df338acfc0ba9f719875db21812b0 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Tue, 29 Nov 2016 18:24:59 +0100 Subject: gnu: wicd: Fix build. * gnu/packages/wicd.scm (wicd) [arguments]: Disable installation via setuptools (and --single-version-externally-managed). --- gnu/packages/wicd.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/wicd.scm b/gnu/packages/wicd.scm index e70bf736a5..9de956c6ff 100644 --- a/gnu/packages/wicd.scm +++ b/gnu/packages/wicd.scm @@ -67,6 +67,9 @@ (arguments `(#:python ,python-2 #:tests? #f ; test suite requires networking + ;; wicd directly extends distutils command classes, + ;; we can't easily make setup.py use setuptools. + #:use-setuptools? #f #:phases (alist-cons-before 'build 'configure -- cgit v1.2.3 From 072f1e22cc6b1708fddedd1ac7ab12827284a785 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 29 Nov 2016 19:45:04 +0200 Subject: gnu: dovecot: Update to 2.2.26.0. * gnu/packages/mail.scm (dovecot): Update to 2.2.26.0. [arguments]: Patch shebangs in test file. --- gnu/packages/mail.scm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 9948a21d94..8cee4016f0 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -933,7 +933,7 @@ facilities for checking incoming mail.") (define-public dovecot (package (name "dovecot") - (version "2.2.25") + (version "2.2.26.0") (source (origin (method url-fetch) @@ -941,7 +941,7 @@ facilities for checking incoming mail.") (version-major+minor version) "/" name "-" version ".tar.gz")) (sha256 (base32 - "0rwn5wc5b8j9fzqcjggdgpzmb77myrf4ra294z1gg5v3hhng7nfq")))) + "01bgj8b2whi35ghbxb19nmr3xvx2zgjzxxw1crgx2v73kprs34pn")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -963,6 +963,15 @@ facilities for checking incoming mail.") "doc/example-config/Makefile.in") (("pkgsysconfdir = .*") "pkgsysconfdir = /tmp/etc")) + #t)) + (add-after + 'unpack 'patch-other-shebangs + (lambda _ + (substitute* + "src/lib-program-client/test-program-client-local.c" + (("/bin/echo") (which "echo")) + (("/bin/cat") (which "cat")) + (("/bin/false") (which "false"))) #t))))) (home-page "http://www.dovecot.org") (synopsis "Secure POP3/IMAP server") -- cgit v1.2.3 From 80983df357856fe4e65e384a655e466164e049a1 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Tue, 29 Nov 2016 19:02:35 +0100 Subject: gnu: python2-discogs-client: Remove python2-setuptools from inputs. * gnu/packages/music.scm (python2-discogs-client): Use simply "package-with-python2". Remove inheriting from python-discogs-client since adding python2-setuptools to [native-inputs] has been the sole reason for inheriting. (python-discogs-client) Remove the now needless [properties] "python2-variant". --- gnu/packages/music.scm | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 3f2018ef46..6950d8884f 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -2471,13 +2471,7 @@ you to query the Discogs database for information on artists, releases, labels, users, Marketplace listings, and more. It also supports OAuth 1.0a authorization, which allows you to change user data such as profile information, collections and wantlists, inventory, and orders.") - (license license:bsd-2) - (properties `((python2-variant . ,(delay python2-discogs-client)))))) + (license license:bsd-2))) (define-public python2-discogs-client - (let ((base (package-with-python2 - (strip-python2-variant python-discogs-client)))) - (package (inherit base) - (native-inputs - `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + (package-with-python2 python-discogs-client)) -- cgit v1.2.3 From 7feff6f6dc66b6b51d32568e11d3b383fa7a0dde Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 24 Nov 2016 18:51:02 +0100 Subject: gnu: Update kde-frameworks to 5.28. * gnu/packages/kde-frameworks.scm (kpackage): Update to 5.28.1 (extra-cmake-modules, attica, bluez-qt, breeze-icons, kapidox, karchive, kcodecs, kconfig, kcoreaddons, kdbusaddons, kdnssd, kguiaddons, ki18n, kidletime, kitemmodels, kitemviews, kplotting, kwayland, kwidgetsaddons, kwindowsystem, modemmanager-qt, networkmanager-qt, oxygen-icons, solid, sonnet, threadweaver, kauth, kcompletion, kcrash, kdoctools, kfilemetadata, kimageformats, kjobwidgets, knotifications, kpty, kunitconversion, baloo, kactivities, kactivities-stats, kbookmarks, kcmutils, kconfigwidgets, kdeclarative, kded, kdesignerplugin, kdesu, kemoticons, kglobalaccel, kiconthemes, kinit, kio, knewstuff, knotifyconfig, kparts, kpeople, krunner, kservice, ktexteditor, ktextwidgets, kwallet, kxmlgui, kxmlrpcclient, plasma-framework, frameworkintegration): Update to 5.28.0 --- gnu/packages/kde-frameworks.scm | 256 ++++++++++++++++++++-------------------- 1 file changed, 128 insertions(+), 128 deletions(-) diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index 230527a837..a4956e1738 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -55,7 +55,7 @@ (define-public extra-cmake-modules (package (name "extra-cmake-modules") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -64,7 +64,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "0n7vw2a4kxdgpsc1wn9f1d0y01p6qfk8ac360rq329bvdpigxmnj")))) + "0yi60qd08x5093wb8dv9cx370iaabn44hzcang92g9ssfmz0zd2h")))) (build-system cmake-build-system) (native-inputs `(("qtbase" ,qtbase))) ; For tests (needs qmake) @@ -185,7 +185,7 @@ common build settings used in software produced by the KDE community.") (define-public attica (package (name "attica") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -194,7 +194,7 @@ common build settings used in software produced by the KDE community.") name "-" version ".tar.xz")) (sha256 (base32 - "0w6dwq83vj70m8rf52x60a64f6s6h0y7c948j3hddfql7s3ghha7")))) + "14v6vi8awk1m58l9svpjd54ckd6milzavgfbkdspsz0km1cpqlks")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -217,7 +217,7 @@ http://freedesktop.org/wiki/Specifications/open-collaboration-services/") (define-public bluez-qt (package (name "bluez-qt") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -226,7 +226,7 @@ http://freedesktop.org/wiki/Specifications/open-collaboration-services/") name "-" version ".tar.xz")) (sha256 (base32 - "111gqxw1bvazdhxk5rcfhi438i6bd92r3wvlkxsdqrp7ypcqdpig")))) + "1rfzwrvvkc5f4l943f4r235gdniqc7njyw4fx36v00daj2r4aqi9")))) (build-system cmake-build-system) (native-inputs `(("dbus" ,dbus) @@ -251,7 +251,7 @@ Bluetooth stack. It is used by the KDE Bluetooth stack, BlueDevil.") (define-public breeze-icons (package (name "breeze-icons") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -260,7 +260,7 @@ Bluetooth stack. It is used by the KDE Bluetooth stack, BlueDevil.") name "-" version ".tar.xz")) (sha256 (base32 - "12awfvka9sgdgh7dyg7cw7myw7fxrx1w93s1gyhdq2drjsdbghgz")))) + "06zwg2g0157ac6xsgxs5f8s1sk8rh2j3y057iqmfg2ng2sh9byh2")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -285,7 +285,7 @@ It is the default icon theme for the KDE Plasma 5 desktop.") (define-public kapidox (package (name "kapidox") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -294,7 +294,7 @@ It is the default icon theme for the KDE Plasma 5 desktop.") name "-" version ".tar.xz")) (sha256 (base32 - "193m0qpcqdkspdcwc8cwabjjcqyd9d0m5kl53mycyiv1m220x11l")))) + "1whkl9rzhjnnmpj532d23mlrwhp5wcfxfvq4z4bxyr64g9plbzyq")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; has no test target @@ -327,7 +327,7 @@ documentation.") (define-public karchive (package (name "karchive") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -336,7 +336,7 @@ documentation.") name "-" version ".tar.xz")) (sha256 (base32 - "1c7bifmzyr398p1qx9qfxp893wbr44sjn3sda9q0hdpmw2i7yf3z")))) + "1s068z0ih6qk3m4lm10wm28y0nq5qwn4gpnx9vckar51xbrl4bb7")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -361,7 +361,7 @@ GZip format, via a subclass of QIODevice.") (define-public kcodecs (package (name "kcodecs") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -370,7 +370,7 @@ GZip format, via a subclass of QIODevice.") name "-" version ".tar.xz")) (sha256 (base32 - "0f4k276sm0svh5y8yyq8hfc5vy60cpsrwany7kswyh22m57v5j8a")))) + "0r01raiva4iddiz5qqshmbmidgkf4q6illanz6zwmc4n66c6s3q3")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -396,7 +396,7 @@ Internet).") (define-public kconfig (package (name "kconfig") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -405,7 +405,7 @@ Internet).") name "-" version ".tar.xz")) (sha256 (base32 - "18dpm0r4nnvmxrask6rv5dkniwna9hh72ffdnvjgrh8p5djs9szi")))) + "0kdsaqv880wihxv6il8wailmymh0rh0jrbhg8iz2ljf3ir7g56zy")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -463,7 +463,7 @@ propagate their changes to their respective configuration files.") (define-public kcoreaddons (package (name "kcoreaddons") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -472,7 +472,7 @@ propagate their changes to their respective configuration files.") name "-" version ".tar.xz")) (sha256 (base32 - "0rzpxajv041kdbk92rwxq1qnvzyrxfjy154d8257yj2fj76w1gnw")))) + "10x2sgd1acsg1kmb741zk8sbss1j9nncfr1ac2pq0fc236ivkiyb")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -502,7 +502,7 @@ many more.") (define-public kdbusaddons (package (name "kdbusaddons") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -511,7 +511,7 @@ many more.") name "-" version ".tar.xz")) (sha256 (base32 - "1vgdl9z5xyfr2b5z7n2vdh0s6zab6ccxp30p1cy8hhhrsf04663m")))) + "07mzb1xr8wyiid25p8kg6mjp6vq8ngvv1ikhq75zvd2cbax530c8")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -538,7 +538,7 @@ as well as an API to create KDED modules.") (define-public kdnssd (package (name "kdnssd") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -547,7 +547,7 @@ as well as an API to create KDED modules.") name "-" version ".tar.xz")) (sha256 (base32 - "0dq2i4f4ny5cwgd41mjw5i7cf23ns55s2m13cjvxvy90nwhlymqp")))) + "1gkqfcz8glfa6krbayaay4kyq3zazcyr21zjg78la76vfnranh0r")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -565,7 +565,7 @@ infrastructure.") (define-public kguiaddons (package (name "kguiaddons") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -574,7 +574,7 @@ infrastructure.") name "-" version ".tar.xz")) (sha256 (base32 - "1skvlcj0fgb4am02vlm4fyd52f9yn4y0aj5arcfz3qps5cjzr6xg")))) + "1f3k6g8cqgq49ka9wsfflp0vnqgk81nlp012lb5v875yil6f9m3f")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -597,7 +597,7 @@ interfaces in the areas of colors, fonts, text, images, keyboard input.") (define-public ki18n (package (name "ki18n") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -606,7 +606,7 @@ interfaces in the areas of colors, fonts, text, images, keyboard input.") name "-" version ".tar.xz")) (sha256 (base32 - "0a66z325bvdv7g6ysml2bf8559nkjhv2fxwj1ja6vsxkn95d54ff")))) + "0ymg8mnpvas101war3pgm3wv8ssf1wxa6mxg9ym1xx24mx7xzhzw")))) (build-system cmake-build-system) (propagated-inputs `(("gettext" ,gettext-minimal) @@ -640,7 +640,7 @@ translation scripting.") (define-public kidletime (package (name "kidletime") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -649,7 +649,7 @@ translation scripting.") name "-" version ".tar.xz")) (sha256 (base32 - "1cv6d2vylz7vymn4v0brv2jp1kzscvm9wh1ylp3wyi1jqyblgjfw")))) + "0cwq8jvsimxriiazivls8yix9jyglk2giqwv34a1ic1cnackhwq7")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -667,7 +667,7 @@ or user activity.") (define-public kitemmodels (package (name "kitemmodels") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -676,7 +676,7 @@ or user activity.") name "-" version ".tar.xz")) (sha256 (base32 - "00qgp5i35r7k9gy43wypn9fa7zxiqqip89dzbw8r6rabinihqzy2")))) + "0zi7wsqcmjd7fms8r2vqvwwvzw75p275qyn6whpgblb09l0pn78z")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -728,7 +728,7 @@ model to observers (define-public kitemviews (package (name "kitemviews") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -737,7 +737,7 @@ model to observers name "-" version ".tar.xz")) (sha256 (base32 - "1469i10y2c3i1pdhzl9nk177y4n1mlc7p5w7kivdcrvf9ilxvbkx")))) + "0wrlwawgnz1yjav4hfirc3lcki0hqy0cgr8bwhr9nhm27ndgv28p")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -769,7 +769,7 @@ to flat and hierarchical lists.") (define-public kplotting (package (name "kplotting") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -778,7 +778,7 @@ to flat and hierarchical lists.") name "-" version ".tar.xz")) (sha256 (base32 - "1qp9q8g9yxy359bylyqyqxjq9wjismajrg4xhxx5xn4s6znyrxny")))) + "1vmwxj03qhrfnz3jg30ka28afpqg0hlgm46dbzyg86kg8hc2hgb2")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -807,7 +807,7 @@ pixel units.") (define-public kwayland (package (name "kwayland") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -816,7 +816,7 @@ pixel units.") name "-" version ".tar.xz")) (sha256 (base32 - "0va1kmki2xr4mx2918h333mfkqs5v1mhbzyf71hq190izdz0jdss")))) + "0xm4agsv8hyx8aaiv4zpa121s08ayhbps3pbfbds2ckk57k6ba8k")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -846,7 +846,7 @@ represented by a QPoint or a QSize.") (define-public kwidgetsaddons (package (name "kwidgetsaddons") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -855,7 +855,7 @@ represented by a QPoint or a QSize.") name "-" version ".tar.xz")) (sha256 (base32 - "0p9gxna7y7nigpi0ri7k45g4pf1svq0kxrhk4wf7rj58rilhcfrl")))) + "1p22s1cbwpwbm03qxs0wqb1i7w1s19b119diwkmb8xl90cqfdwnn")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -894,7 +894,7 @@ configuration pages, message boxes, and password requests.") (define-public kwindowsystem (package (name "kwindowsystem") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -903,7 +903,7 @@ configuration pages, message boxes, and password requests.") name "-" version ".tar.xz")) (sha256 (base32 - "0w49lpwicl71gyyf2aisvmfjpvjl3w1rqpx4a42ph0aywjihjmhx")))) + "0lzafiwj58gg5vccnvwrhiwjq67y8cn3gllirgw13vz3f69sbr3i")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -934,7 +934,7 @@ lower level classes for interaction with the X Windowing System.") (define-public modemmanager-qt (package (name "modemmanager-qt") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -943,7 +943,7 @@ lower level classes for interaction with the X Windowing System.") name "-" version ".tar.xz")) (sha256 (base32 - "1zw5frscvbsp0jpb071ssqgvm097ylw3zy69y7f0dybhps6lv2jv")))) + "1yfqqp596srvsi0yqrkpm5gzlwjf4szk6hy0wszr12gjjzqprilq")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -972,7 +972,7 @@ messages.") (define-public networkmanager-qt (package (name "networkmanager-qt") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -981,7 +981,7 @@ messages.") name "-" version ".tar.xz")) (sha256 (base32 - "0fnj0b2j4v51f12b3v59psdza2krdkidj22b9a9jwn224lg4852y")))) + "1iq8xrw55k2k9af57l4lfrw72gjxgk7pp7k3m7amjfp0hdqw8602")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1011,7 +1011,7 @@ which are used in DBus communication.") (define-public oxygen-icons (package (name "oxygen-icons") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1020,7 +1020,7 @@ which are used in DBus communication.") name "5" "-" version ".tar.xz")) (sha256 (base32 - "1lb09ykj5ayj5lv7w2k2pqis7z61clr3gkinf6n7jghnlc96222g")))) + "05bypc4k86lsjp7d4lpbpsnms7k1gnjyahdbks420585ca0v4qkp")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1036,7 +1036,7 @@ which are used in DBus communication.") (define-public solid (package (name "solid") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1045,7 +1045,7 @@ which are used in DBus communication.") name "-" version ".tar.xz")) (sha256 (base32 - "01qlfj30n8sr8xd8l8fimg7hs7h70ynhalk2m9l8dz2qay2pdl27")))) + "0g6frc7hckbkvzgq40qrymllgp56a3v39l5d2ajqipwb4kabhdpy")))) (build-system cmake-build-system) (native-inputs `(("bison" ,bison) @@ -1069,7 +1069,7 @@ system.") (define-public sonnet (package (name "sonnet") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1078,7 +1078,7 @@ system.") name "-" version ".tar.xz")) (sha256 (base32 - "07i3gng309vsf5kp5dlwca0lpi3iqc0lp0ixdvx75q832gk8ivrv")))) + "1vzn3kvi126jnkq2s5110yii8946kaxp452735fx0l0jqjn92dy8")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1095,7 +1095,7 @@ ASpell and HUNSPELL.") (define-public threadweaver (package (name "threadweaver") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1104,7 +1104,7 @@ ASpell and HUNSPELL.") name "-" version ".tar.xz")) (sha256 (base32 - "0mg5i125b008x6162a5h2q14fg81m17md00017n09xljw3099kqy")))) + "10hy4pvw84l2z8778gsfv5i8pqrfjidvlgd5rc8xffx65s3f28b5")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1125,7 +1125,7 @@ uses a job-based interface to queue tasks and execute them in an efficient way." (define-public kauth (package (name "kauth") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1134,7 +1134,7 @@ uses a job-based interface to queue tasks and execute them in an efficient way." name "-" version ".tar.xz")) (sha256 (base32 - "17z6dh1qdpd490z84g6ynl8bcrr9naalvh34ybnpipvx3qs50kwl")))) + "09m7dipkykw75dbka6mhsvrikbniwshl1l0qxcny3ywc0fkzgf40")))) (build-system cmake-build-system) (native-inputs `(("dbus" ,dbus) @@ -1161,7 +1161,7 @@ utilities.") (define-public kcompletion (package (name "kcompletion") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1170,7 +1170,7 @@ utilities.") name "-" version ".tar.xz")) (sha256 (base32 - "1mb64ii4ilhqhy9p6cl3phs17bg3lr4b60jkkm71yn2wnd4wl47s")))) + "1yrlhf6n7xlkid3xbpirf8n6kybc3sqp5fnb01kr1rcl89qs273f")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1197,7 +1197,7 @@ integrated it into your application's other widgets.") (define-public kcrash (package (name "kcrash") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1206,7 +1206,7 @@ integrated it into your application's other widgets.") name "-" version ".tar.xz")) (sha256 (base32 - "09wf4dzckc9l8dyl8qs1wc54h4rm38i2blzyyicm4iazi420lysk")))) + "0gsly5wvyh0d6yfk5yyv1pgaazwlwvahz245y9sliwzrbxhgj1yv")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1235,7 +1235,7 @@ application crashes.") (define-public kdoctools (package (name "kdoctools") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1244,7 +1244,7 @@ application crashes.") name "-" version ".tar.xz")) (sha256 (base32 - "1hgg19da0918mx8z2614qljvj9j8bny78mwlyljf42814f3ycpam")))) + "1mndmxy7vgdkii8axzkzclqqimg0ksn2dmwiqsljcjcik0zfx47c")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1283,7 +1283,7 @@ from DocBook files.") (define-public kfilemetadata (package (name "kfilemetadata") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1292,7 +1292,7 @@ from DocBook files.") name "-" version ".tar.xz")) (sha256 (base32 - "1la6h05izgnps10py2gcn4xnwz3fm7dyswib57flc8phzipxbg5q")))) + "0sxifxzyqq0haxfira8ldq9gwali7p5vbbh8jslj8wlxm0dczyw6")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1313,7 +1313,7 @@ by applications to write metadata.") (define-public kimageformats (package (name "kimageformats") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1322,7 +1322,7 @@ by applications to write metadata.") name "-" version ".tar.xz")) (sha256 (base32 - "0ijy7di9p37l6fjrmsday402vq4zibq1m37jghkvdymawxcrd22h")))) + "1h17jm55r9ijmng5mb1w9nqk2hw6h965j9c2nrd8wl9dzy616kra")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1350,7 +1350,7 @@ formats.") (define-public kjobwidgets (package (name "kjobwidgets") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1359,7 +1359,7 @@ formats.") name "-" version ".tar.xz")) (sha256 (base32 - "05c6jzl2a37bfz5i7hzsjmrhh8ajx1gbz7j05wgal811m5m4ww8l")))) + "0xh62bjd6qqbmx1jbv9qac1ng0h056mwrs8rkdqd8k10ghmsfx6a")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1378,7 +1378,7 @@ asynchronous jobs.") (define-public knotifications (package (name "knotifications") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1387,7 +1387,7 @@ asynchronous jobs.") name "-" version ".tar.xz")) (sha256 (base32 - "09v122nxfgqjzr2azfn2nh4q9l22i5wnsz9prs0i7s3m7y0d7pxn")))) + "1a55c0abs9yg7qaajgidj8bmfbwkysf24300532lnia71n1ms25s")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1421,7 +1421,7 @@ covers feedback and persistent events.") (define-public kpackage (package (name "kpackage") - (version "5.27.0") + (version "5.28.1") (source (origin (method url-fetch) (uri (string-append @@ -1430,7 +1430,7 @@ covers feedback and persistent events.") name "-" version ".tar.xz")) (sha256 (base32 - "0y07zh8ryibm69ljp9f169qfal6r4lngz1ljxgrr6qw15cjkjygk")))) + "0ym5fhhigp7argk7c1zyn2fvfjykgxh3miipidf142c8y3d98vbp")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1459,7 +1459,7 @@ were traditional plugins.") (define-public kpty (package (name "kpty") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1468,7 +1468,7 @@ were traditional plugins.") name "-" version ".tar.xz")) (sha256 (base32 - "06pka8cbw6a9rk2j5pkz34rfy10bv6il3wqyf7ala32ynv5rcgc3")))) + "1q22wzx5xpmbj56xg4miiscb1xqqk2lfkljfdi87zl05vwmnc7hn")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1496,7 +1496,7 @@ and communicating with them using a pty.") (define-public kunitconversion (package (name "kunitconversion") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1505,7 +1505,7 @@ and communicating with them using a pty.") name "-" version ".tar.xz")) (sha256 (base32 - "11rn6813jz7clb6fjp9nbdg1c350zh0yiprbr053wkdjrb3aca7c")))) + "0n6ndy1yarilnk2l09h92qk32v02hknafif1i9mmwcibldvc963q")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1529,7 +1529,7 @@ gallons).") (define-public baloo (package (name "baloo") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1538,7 +1538,7 @@ gallons).") name "-" version ".tar.xz")) (sha256 (base32 - "0dqa5sxz2z440h6zry7s1x0r1d919qky69i5fv2nir7y844xx2cc")))) + "071in785y1qplm59fmsmifzbmczvlvkf5gxdb6d0iw93pb36r7h5")))) (build-system cmake-build-system) (propagated-inputs `(("kcoreaddons" ,kcoreaddons) @@ -1586,7 +1586,7 @@ maintaining an index of the contents of your files.") (define-public kactivities (package (name "kactivities") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1595,7 +1595,7 @@ maintaining an index of the contents of your files.") name "-" version ".tar.xz")) (sha256 (base32 - "08x07rlf2gff1j9jahznz2838919vab1ay8jppz3bp5kywx104yk")))) + "162ilqcfp8b3lb3gpzbw94ppsdqzn6i6ymiwh12xy5nrxixdpagb")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1633,7 +1633,7 @@ with other frameworks.") (define-public kactivities-stats (package (name "kactivities-stats") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1642,7 +1642,7 @@ with other frameworks.") name "-" version ".tar.xz")) (sha256 (base32 - "134a3zgasza9wghp1lkiaar3sakag7vn82pm2kcrmr420a0jigsw")))) + "0pjgjl5bwmq0n23nwcqjp3b412fsibnvwsr3s3l67k9scmdpbm4v")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1663,7 +1663,7 @@ by which applications, and what documents have been linked to which activity.") (define-public kbookmarks (package (name "kbookmarks") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1672,7 +1672,7 @@ by which applications, and what documents have been linked to which activity.") name "-" version ".tar.xz")) (sha256 (base32 - "1lb20yn8s27h0965yf6w4v4wwlm80bl24mpsksp01z9f0711j8vm")))) + "1lfvps0xzpzn42n7rpsdcmsiryclykz6h1hk8sp6nsbhqwzd0r65")))) (build-system cmake-build-system) (propagated-inputs `(("kwidgetsaddons" ,kwidgetsaddons))) @@ -1705,7 +1705,7 @@ using the XBEL format.") (define-public kcmutils (package (name "kcmutils") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1714,7 +1714,7 @@ using the XBEL format.") name "-" version ".tar.xz")) (sha256 (base32 - "04nbd0836azs2i0pq8hq8ljnmfc45mqs022zdn84xd2q3npl3hfx")))) + "0wj3f5ykzb7q9536y9wk8mnfcb6zay2mmc25dg67mdznzwdy36aa")))) (build-system cmake-build-system) (propagated-inputs `(("kconfigwidgets" ,kconfigwidgets) @@ -1744,7 +1744,7 @@ KCModules can be created with the KConfigWidgets framework.") (define-public kconfigwidgets (package (name "kconfigwidgets") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1753,7 +1753,7 @@ KCModules can be created with the KConfigWidgets framework.") name "-" version ".tar.xz")) (sha256 (base32 - "0sbhirfsjmsxiwaqqh5jh85bhwmij93gj5knnb0bs0al4hy29918")))) + "0cy53jaq15n8hw2m67l0y6x722ywg0ijfz5ak5vq3fjjhc9fmq8d")))) (build-system cmake-build-system) (propagated-inputs `(("kauth" ,kauth) @@ -1785,7 +1785,7 @@ their settings.") (define-public kdeclarative (package (name "kdeclarative") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1794,7 +1794,7 @@ their settings.") name "-" version ".tar.xz")) (sha256 (base32 - "1a8pqwrwgmzarinhr9xxviqh9417p8icj8lwqg9ly0q0j3yv20dh")))) + "1g7bf3smdiwgfhdzwskp3l7l4bn838q1cdy4hp9mzqdssz956wmn")))) (build-system cmake-build-system) (propagated-inputs `(("kconfig" ,kconfig) @@ -1845,7 +1845,7 @@ that offer bindings to some of the Frameworks.") (define-public kded (package (name "kded") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1854,7 +1854,7 @@ that offer bindings to some of the Frameworks.") name "-" version ".tar.xz")) (sha256 (base32 - "14f4qxia9p3vynv2ch9rs67zaxn9kpbas0fn0vwag1ikxb8qz0c2")))) + "115ywk3vdyhwzna59bpiqfffcc128vafl823yh5fzkwbp8w7qdn5")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1878,7 +1878,7 @@ started on demand.") (define-public kdesignerplugin (package (name "kdesignerplugin") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1887,7 +1887,7 @@ started on demand.") name "-" version ".tar.xz")) (sha256 (base32 - "157lny5v8js63nvw2iyc9j4cinqmyj75a389s46n8wqyygrz5v0v")))) + "12v9pbfniljp23bllxxq6hfv6qnp2q8yjsix6fy6hwf8yrsq42m3")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1915,7 +1915,7 @@ ini-style description files.") (define-public kdesu (package (name "kdesu") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1924,7 +1924,7 @@ ini-style description files.") name "-" version ".tar.xz")) (sha256 (base32 - "1l501z102ygibz4000jnngm0cggh2kaf6hzra1ngv5nxqxzkh31a")))) + "1f6awbnqs14si13n1ryibb0z3mj90bg0vk320hgabd2zxma00vwp")))) (build-system cmake-build-system) (propagated-inputs `(("kpty" ,kpty))) @@ -1946,7 +1946,7 @@ with su and ssh respectively.") (define-public kemoticons (package (name "kemoticons") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1955,7 +1955,7 @@ with su and ssh respectively.") name "-" version ".tar.xz")) (sha256 (base32 - "0rjw2g3lfdxiy56x61d0sdcmcs8rml6h29a05fp6xww2bqcvr9wq")))) + "10qxm9q7bsbbg419f8d0703mikd8w99a8fh501fpm3sgh6k7pbyv")))) (build-system cmake-build-system) (propagated-inputs `(("kservice" ,kservice))) @@ -1987,7 +1987,7 @@ emoticons coming from different providers.") (define-public kglobalaccel (package (name "kglobalaccel") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -1996,7 +1996,7 @@ emoticons coming from different providers.") name "-" version ".tar.xz")) (sha256 (base32 - "1z2knfxcla1f191cifij1fzw88b076yx6qjxraqfsmkc6g6i2bmj")))) + "0a60f2bs7dhx0rsrgva2p97dcala6jrjfg4z2nv0m4bv82i4kchc")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -2029,7 +2029,7 @@ window does not need focus for them to be activated.") (define-public kiconthemes (package (name "kiconthemes") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -2038,7 +2038,7 @@ window does not need focus for them to be activated.") name "-" version ".tar.xz")) (sha256 (base32 - "0m70vcrxp0vvqw5grlsn19d2hgdhky8iv2pr0xwzw8v5yrnl1hh2")))) + "1i5cpsqfn1vcch8izbrgig2km580gdxf02qmib4ynbwzcfvrnbqc")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -2077,7 +2077,7 @@ in applications using the KDE Frameworks.") (define-public kinit (package (name "kinit") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -2086,7 +2086,7 @@ in applications using the KDE Frameworks.") name "-" version ".tar.xz")) (sha256 (base32 - "0sbpl1sp1ajarjmnvx2l3dr09afsay28kp2sf4yacrm4lrmhwzip")))) + "0hwa4anljh5v53gswziacwr6ryvhp136k6y85d10074lrckdr912")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -2121,7 +2121,7 @@ makes starting KDE applications faster and reduces memory consumption.") (define-public kio (package (name "kio") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -2130,7 +2130,7 @@ makes starting KDE applications faster and reduces memory consumption.") name "-" version ".tar.xz")) (sha256 (base32 - "129sglaw1480v3i1xdyv6k1w3spbj8s00rkdr5mzlcdaqiig69rn")))) + "1hqc88c2idi9fkb7jy82csb0i740lghv0p2fg1gaglcarjdz7nia")))) (build-system cmake-build-system) (propagated-inputs `(("kbookmarks" ,kbookmarks) @@ -2194,7 +2194,7 @@ KIO enabled infrastructure.") (define-public knewstuff (package (name "knewstuff") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -2203,7 +2203,7 @@ KIO enabled infrastructure.") name "-" version ".tar.xz")) (sha256 (base32 - "05ikb7cvyx3cmrrjh2ss6439a49vmzbi3chjj23ffdz2nd2k7r2f")))) + "0p5a6zprqfnhiim0l0qigjy7kky0m4w2nykhllwvr6lda1rg8qs3")))) (build-system cmake-build-system) (propagated-inputs `(("attica" ,attica) @@ -2250,7 +2250,7 @@ specification.") (define-public knotifyconfig (package (name "knotifyconfig") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -2259,7 +2259,7 @@ specification.") name "-" version ".tar.xz")) (sha256 (base32 - "088p19ynjs79zf7mq3gkds93dg72jj8pfya53xyhzdg8s6vyns9n")))) + "0riia9lvp33lqh8ld5r1r0adnfnxikbvmdi4k7kfc4pzra93h10f")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -2292,7 +2292,7 @@ notifications which can be embedded in your application.") (define-public kparts (package (name "kparts") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -2301,7 +2301,7 @@ notifications which can be embedded in your application.") name "-" version ".tar.xz")) (sha256 (base32 - "0rfsyr96s59ljp3jgmcwlvwzbgmlx7fvr62xswwmsnb8ah14k5rh")))) + "1jghgddgz0ghq6n51l1i6jc1s10g0ckda5nlwh4myziv229g9pik")))) (build-system cmake-build-system) (propagated-inputs `(("kio" ,kio) @@ -2342,7 +2342,7 @@ widgets with a user-interface defined in terms of actions.") (define-public kpeople (package (name "kpeople") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -2351,7 +2351,7 @@ widgets with a user-interface defined in terms of actions.") name "-" version ".tar.xz")) (sha256 (base32 - "1w6sbd6djcpv36m9my4drqkrs1l3cryshpz1dx9z8p7afr296n8j")))) + "0dqz6varz3nrnp8jfysdsp2r2mm46hn3vfcqcyyqk3nmv6sd9mpp")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -2385,7 +2385,7 @@ to easily extend the contacts collection.") (define-public krunner (package (name "krunner") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -2394,7 +2394,7 @@ to easily extend the contacts collection.") name "-" version ".tar.xz")) (sha256 (base32 - "1yyxyippmn0d9ycj1hdjvhl1zd31yxwg89a9zwmj8v8gdfr9flj9")))) + "1mmbrpgw090z41l2vg350hmm3ya2qkfkjmq7v5d90jpb7z7y6pr9")))) (build-system cmake-build-system) (propagated-inputs `(("plasma-framework" ,plasma-framework))) @@ -2440,7 +2440,7 @@ typed.") (define-public kservice (package (name "kservice") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -2449,7 +2449,7 @@ typed.") name "-" version ".tar.xz")) (sha256 (base32 - "129bjdr272qkz2inmagy8jnxasifrl4d82x8rp9akfar29qsj6x6")))) + "0mlc3vw0vq1rwcg803dsybzlwxj1n6hg13z9sg0h28wsbyss3l4l")))) (build-system cmake-build-system) (propagated-inputs `(("kconfig" ,kconfig) @@ -2489,7 +2489,7 @@ types or handled by application specific code.") (define-public ktexteditor (package (name "ktexteditor") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -2498,7 +2498,7 @@ types or handled by application specific code.") name "-" version ".tar.xz")) (sha256 (base32 - "127wp4dg72skd6abn2vqffxg91bn59z8yxwy6lxyzvck2pc5v1ss")))) + "1sl152xasbhgpph4f6apkc54b26smgxbd3cxbvch2hfi5cxgb8fq")))) (build-system cmake-build-system) (propagated-inputs `(("kparts" ,kparts))) @@ -2556,7 +2556,7 @@ library.") (define-public ktextwidgets (package (name "ktextwidgets") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -2565,7 +2565,7 @@ library.") name "-" version ".tar.xz")) (sha256 (base32 - "0aq2qx64wylxj5q5sr0dxv9h8bmn725llxyi7iwz31dg2ngfr7m4")))) + "0gwjb0isjfrqd15lvln6bwql1lpk2r1vp5f72zxygz2ay8ar1wxp")))) (build-system cmake-build-system) (propagated-inputs `(("ki18n" ,ki18n) @@ -2601,7 +2601,7 @@ It supports rich text as well as plain text.") (define-public kwallet (package (name "kwallet") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -2610,7 +2610,7 @@ It supports rich text as well as plain text.") name "-" version ".tar.xz")) (sha256 (base32 - "1mlrkzvbqk6r43yqrvv6jsc66brzjd321fp7mg7g3ny47va7hbc2")))) + "0n25mvjwy3sv5bg2x75psz6d6f8yl53j3wfmx9ayh57jk4rq24rm")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -2642,7 +2642,7 @@ the passwords on KDE work spaces.") (define-public kxmlgui (package (name "kxmlgui") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -2651,7 +2651,7 @@ the passwords on KDE work spaces.") name "-" version ".tar.xz")) (sha256 (base32 - "0hf55ip2irbsbg59r36njgb0h5ygpaspa4x6jfyi4bxj852c3hw1")))) + "0plw6fckpssgwf18f5i4vhfp55jmdvfh2rc5lg8fwmlqgqkvrbac")))) (build-system cmake-build-system) (propagated-inputs `(("kconfig" ,kconfig) @@ -2694,7 +2694,7 @@ descriptions for integrating actions from plugins.") (define-public kxmlrpcclient (package (name "kxmlrpcclient") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -2703,7 +2703,7 @@ descriptions for integrating actions from plugins.") name "-" version ".tar.xz")) (sha256 (base32 - "17bavm8qj4r1kc67x5g20v1pl8arjqpn69hg7icp2b1b0vnfvav1")))) + "1xrdh5ipldahcv0pxp7dnzjz1ihnkg4r2hpylg6bwvq81clw8xd1")))) (build-system cmake-build-system) (propagated-inputs `(("kio" ,kio))) @@ -2737,7 +2737,7 @@ setUrl, setUserAgent and call.") (define-public plasma-framework (package (name "plasma-framework") - (version "5.27.0") + (version "5.28.0") (source (origin (method url-fetch) (uri (string-append @@ -2746,7 +2746,7 @@ setUrl, setUserAgent and call.") name "-" version ".tar.xz")) (sha256 (base32 - "11apg7h636dshswikjpz0qkapv8izqjjz47k7vs49x0byp802s5i")))) + "0j4mfd8wzrspvyy281lww981fly2rkbhnixb9b0pj5k9i8gvkh7q")))) (build-system cmake-build-system) (propagated-inputs `(("kpackage" ,kpackage) -- cgit v1.2.3 From c1265fcc7090eccef32fdc8d5e38b4f596108e09 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 24 Nov 2016 23:58:52 +0100 Subject: gnu: Add ksyntaxhighlighting. * gnu/packages/kde-frameworks.scm (ksyntaxhighlighting): New variable. --- gnu/packages/kde-frameworks.scm | 51 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index a4956e1738..c67d0c393f 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -804,6 +804,57 @@ data being plotted. KPlotWidget automatically converts everything to screen pixel units.") (license license:lgpl2.1+))) +(define-public ksyntaxhighlighting + (package + (name "ksyntaxhighlighting") + (version "5.28.0") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://kde/stable/frameworks/" + (version-major+minor version) "/" + "syntax-highlighting-" version ".tar.xz")) + (sha256 + (base32 + "0gf1ldlk4gav6bg5b1231hphaal4simyngirvr1yizcb1rrlygdy")))) + (build-system cmake-build-system) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules) + ("perl" ,perl) + ;; Optional, for compile-time validation of syntax definition files: + ("qtxmlpatterns" ,qtxmlpatterns))) + (inputs + `(("qtbase" ,qtbase))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'patch-source-shebangs 'unpatch-source-shebang + (lambda _ + ;; revert the patch-shebang phase on scripts which are + ;; in fact test data + (substitute* '("autotests/input/test.bash" + "autotests/folding/test.bash.fold") + (((which "bash")) "/bin/bash")) + (substitute* '("autotests/input/highlight.sh" + "autotests/folding/highlight.sh.fold") + (((which "sh")) " /bin/sh")) ;; space in front! + (substitute* '("autotests/input/highlight.pl" + "autotests/folding/highlight.pl.fold") + (((which "perl")) "/usr/bin/perl")) + #t)) + (add-before 'check 'check-setup + (lambda _ + (setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; enable debug info + #t))))) + (home-page "https://community.kde.org/Frameworks") + (synopsis "Syntax highlighting engine for Kate syntax definitions") + (description "This is a stand-alone implementation of the Kate syntax +highlighting engine. It's meant as a building block for text editors as well +as for simple highlighted text rendering (e.g. as HTML), supporting both +integration with a custom editor as well as a ready-to-use +@code{QSyntaxHighlighter} sub-class.") + (license license:lgpl2.1+))) + (define-public kwayland (package (name "kwayland") -- cgit v1.2.3 From 7b722e3cba89977c14172ea44738704fcf6b250b Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 24 Nov 2016 19:13:46 +0100 Subject: gnu: extra-cmake-modules: Always install into /lib and not into /lib64. * gnu/packages/kde-frameworks.scm (extra-cmake-modules)[phases]: New phase fix-lib-path. --- gnu/packages/kde-frameworks.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index c67d0c393f..4857cf2354 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -71,6 +71,11 @@ (arguments `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-lib-path + (lambda _ + ;; Always install into /lib and not into /lib64. + (substitute* "kde-modules/KDEInstallDirs.cmake" + (("\"lib64\"") "\"lib\"")))) ;; install and check phase are swapped to prevent install from failing ;; after testsuire has run (add-after 'install 'check-post-install -- cgit v1.2.3 From dc2ef09ad79803f2cc4828ef18927ca0e75e24fa Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Tue, 29 Nov 2016 19:13:40 +0100 Subject: gnu: kauth: Fix cmake macros to be used by other packages. * gnu/packages/kde-framework.scm (kauth)[phases]: New phase fix-cmake-install-paths. --- gnu/packages/kde-frameworks.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index 4857cf2354..8b841330b8 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -1203,6 +1203,17 @@ uses a job-based interface to queue tasks and execute them in an efficient way." (arguments `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-cmake-install-directories + (lambda _ + ;; Make packages using kauth put their policy files and helpers + ;; into their own prefix. + (substitute* "KF5AuthConfig.cmake.in" + (("@KAUTH_POLICY_FILES_INSTALL_DIR@") + "${KDE_INSTALL_DATADIR}/polkit-1/actions") + (("@KAUTH_HELPER_INSTALL_DIR@") + "${KDE_INSTALL_LIBEXECDIR}") + (("@KAUTH_HELPER_INSTALL_ABSOLUTE_DIR@") + "${KDE_INSTALL_LIBEXECDIR}")))) (replace 'check (lambda _ (setenv "DBUS_FATAL_WARNINGS" "0") -- cgit v1.2.3 From 37e05d64e4e0696988460d98514c7b1d5d89fd5a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 25 Nov 2016 20:15:17 +0100 Subject: gnu: Add libjpeg-turbo. * gnu/packages/image.scm (libjpeg-turbo): New variable. --- gnu/packages/image.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 981e1f8109..3f9a2b2a4f 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -31,6 +31,7 @@ (define-module (gnu packages image) #:use-module (gnu packages) #:use-module (gnu packages algebra) + #:use-module (gnu packages assembly) #:use-module (gnu packages autotools) #:use-module (gnu packages boost) #:use-module (gnu packages compression) @@ -1016,3 +1017,33 @@ also converts external formats (BMP, GIF, PNM and TIFF) to optimized PNG, and performs PNG integrity checks and corrections.") (home-page "http://optipng.sourceforge.net/") (license license:zlib))) + +(define-public libjpeg-turbo + (package + (name "libjpeg-turbo") + (version "1.5.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/" name "/" version "/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0v365hm6z6lddcqagjj15wflk66rqyw75m73cqzl65rh4lyrshj1")))) + (build-system gnu-build-system) + (native-inputs + `(("nasm" ,nasm))) + (arguments + `(#:test-target "test")) + (home-page "http://www.libjpeg-turbo.org/") + (synopsis "SIMD-accelerated JPEG image handling library") + (description "libjpeg-turbo is a JPEG image codec that accelerates baseline +JPEG compression and decompression using SIMD instructions: MMX on x86, SSE2 on +x86-64, NEON on ARM, and AltiVec on PowerPC processors. Even on other systems, +its highly-optimized Huffman coding routines allow it to outperform libjpeg by +a significant amount. +libjpeg-turbo implements both the traditional libjpeg API and the less powerful +but more straightforward TurboJPEG API, and provides a full-featured Java +interface. It supports color space extensions that allow it to compress from +and decompress to 32-bit and big-endian pixel buffers (RGBX, XBGR, etc.).") + (license (list license:bsd-3 ; jsimd*.[ch] and most of simd/ + license:ijg)))) ; the rest -- cgit v1.2.3 From 7cba7647a5f2ca5f0be7b30414d80f0ccd7cd480 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 26 Nov 2016 19:06:48 +0100 Subject: gnu: icecat: Use libjpeg-turbo instead of bundled libjpeg. * gnu/packages/gnuzilla.scm (icecat)[source]: Remove bundled libjpeg, which is actually libjpeg-turbo. [inputs]: Add libjpeg-turbo. [arguments]: Use it. --- gnu/packages/gnuzilla.scm | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 3b00d3c717..f7a8c7db51 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -403,6 +403,7 @@ standards.") "modules/zlib" "modules/libbz2" "ipc/chromium/src/third_party/libevent" + "media/libjpeg" "media/libvpx" "security/nss" "gfx/cairo" @@ -432,6 +433,7 @@ standards.") ("hunspell" ,hunspell) ("libcanberra" ,libcanberra) ("libgnome" ,libgnome) + ("libjpeg-turbo" ,libjpeg-turbo) ("libxft" ,libxft) ("libevent" ,libevent) ("libxinerama" ,libxinerama) @@ -497,6 +499,7 @@ standards.") ;; Avoid bundled libraries. "--with-system-zlib" "--with-system-bz2" + "--with-system-jpeg" ; must be libjpeg-turbo "--with-system-libevent" "--with-system-libvpx" "--with-system-icu" @@ -517,16 +520,6 @@ standards.") ;; Network Graphics (PNG) format"; ;; we probably do not wish to support it. ;; "--with-system-png" - - ;; Fails with "libjpeg-turbo JCS_EXTENSIONS - ;; required". - ;; According to - ;; http://sourceforge.net/projects/libjpeg-turbo/ , - ;; "libjpeg-turbo is a derivative of libjpeg that - ;; uses MMX, SSE, SSE2, and NEON SIMD instructions - ;; to accelerate baseline JPEG compression/ - ;; decompression", so we had better not use it - ;; "--with-system-jpeg" ) #:modules ((ice-9 ftw) -- cgit v1.2.3 From 9b81876f5f802c7be5182598be062ed41549011e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 26 Nov 2016 19:12:08 +0100 Subject: gnu: spice: Use libjpeg-turbo instead of libjpeg. * gnu/packages/spice.scm (spice)[inputs]: Use libjpeg-turbo as suggested during the build. --- gnu/packages/spice.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm index c0e8d240cf..805f47a600 100644 --- a/gnu/packages/spice.scm +++ b/gnu/packages/spice.scm @@ -217,7 +217,7 @@ which allows users to view a desktop computing environment.") (inputs `(("cyrus-sasl" ,cyrus-sasl) ("glib" ,glib) - ("libjpeg" ,libjpeg) + ("libjpeg-turbo" ,libjpeg-turbo) ("lz4" ,lz4) ("opus" ,opus) ("zlib" ,zlib))) -- cgit v1.2.3 From 7e49a851b50c0b2ce31d74282a5bbb11aadc348e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 26 Nov 2016 19:14:23 +0100 Subject: gnu: gphoto2, libgphoto2: Use libjpeg-turbo. * gnu/packages/photo.scm (gphoto2, libgphoto2)[inputs]: Add libjpeg-turbo. --- gnu/packages/photo.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 00bbb5d9a9..8e823cfc21 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -100,7 +100,7 @@ data as produced by digital cameras.") (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs - `(;; ("libjpeg-turbo" ,libjpeg-turbo) + `(("libjpeg-turbo" ,libjpeg-turbo) ("libltdl" ,libltdl) ("libusb" ,libusb) ("libxml2" ,libxml2))) @@ -133,7 +133,7 @@ from digital cameras.") `(("pkg-config" ,pkg-config))) (inputs `(("readline" ,readline) - ;; ("libjpeg-turbo" ,libjpeg-turbo) + ("libjpeg-turbo" ,libjpeg-turbo) ("popt" ,popt) ("libexif" ,libexif) ("libgphoto2" ,libgphoto2))) -- cgit v1.2.3 From 7f81d7f4a5657a2f63336332a2581eafa26c6f66 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 29 Nov 2016 17:57:12 +0100 Subject: gnu: libxfont: Update to 1.5.2. * gnu/packages/xorg.scm (libxfont): Update to 1.5.2. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 4e79d2d132..18271b5ed4 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4886,7 +4886,7 @@ an X Window System display.") (define-public libxfont (package (name "libxfont") - (version "1.5.1") + (version "1.5.2") (source (origin (method url-fetch) @@ -4896,7 +4896,7 @@ an X Window System display.") ".tar.bz2")) (sha256 (base32 - "1630v3sfvwwlimb2ja10c84ql6v1mw9bdfhvan7pbybkgi99h25p")))) + "0w8d07bkmjiarkx09579bl8zsq903mn8javc7qpi0ix4ink5x502")))) (build-system gnu-build-system) (propagated-inputs `(("fontsproto" ,fontsproto) -- cgit v1.2.3 From 660516e87556dfc39229cb6d319c9d1793efebb4 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Tue, 29 Nov 2016 21:29:38 +0100 Subject: gnu: Add zzuf * gnu/packages/debug.scm (zzuf): New variable. --- gnu/packages/debug.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index 54ed5cd36a..b7d6bbc0eb 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -314,3 +314,25 @@ no race conditions.") ;; and patched GNU Make is under its own license. (license (list (non-copyleft "COPYING.md") (package-license gnu-make)))))) + +(define-public zzuf + (package + (name "zzuf") + (version "0.15") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/samhocevar/zzuf/releases/download/v" + version "/" name "-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1mpzjaksc2qg2hzqflf39pl06p53qam2dn3hkhkcv6p00d2n4kx3")))) + (build-system gnu-build-system) + (home-page "https://github.com/samhocevar/zzuf") + (synopsis "Transparent application input fuzzer") + (description "Zzuf is a transparent application input fuzzer. It works by +intercepting file operations and changing random bits in the program's +input. Zzuf's behaviour is deterministic, making it easy to reproduce bugs.") + (license (non-copyleft "http://www.wtfpl.net/txt/copying/")))) -- cgit v1.2.3 From a19a6d3ac8c3de2847d1f0c3c40994a1408f724b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 29 Nov 2016 19:43:37 +0100 Subject: gnu: frescobaldi: Disable tests. * gnu/packages/music.scm (frescobaldi)[arguments]: Disable tests. --- gnu/packages/music.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 6950d8884f..febd983023 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1428,6 +1428,7 @@ using a system-independent interface.") (base32 "1rnk8i8dlshzx16n2qxcsqcs7kywgyazzyzw2vy4vp2gsm9vs9ml")))) (build-system python-build-system) + (arguments `(#:tests? #f)) ; no tests included (inputs `(("lilypond" ,lilypond) ("portmidi" ,portmidi) -- cgit v1.2.3 From 43ddcd723ef4e68bfab5186821855dfccf4440b0 Mon Sep 17 00:00:00 2001 From: David Craven Date: Mon, 28 Nov 2016 20:31:22 +0100 Subject: gnu: guix-0.11.0: Add guile-ssh to inputs. * gnu/packages/package-management.scm (guile-ssh)[inputs]: Add guile-ssh. [arguments]: Add guile-ssh to GUILE_LOAD_PATH. --- gnu/packages/package-management.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 051dff34b7..4907a5016e 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -51,6 +51,7 @@ #:use-module (gnu packages gnuzilla) #:use-module (gnu packages cpio) #:use-module (gnu packages tls) + #:use-module (gnu packages ssh) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (ice-9 popen) @@ -143,9 +144,11 @@ ;; Guile-JSON automatically. (let* ((out (assoc-ref outputs "out")) (json (assoc-ref inputs "guile-json")) + (ssh (assoc-ref inputs "guile-ssh")) (gnutls (assoc-ref inputs "gnutls")) (path (string-append json "/share/guile/site/2.0:" + ssh "/share/guile/site/2.0:" gnutls "/share/guile/site/2.0"))) ;; Ignore user settings so that a bogus @@ -203,6 +206,7 @@ (propagated-inputs `(("gnutls" ,gnutls) ;for 'guix download' & co. ("guile-json" ,guile-json) + ("guile-ssh" ,guile-ssh) ("geiser" ,geiser) ;for guix.el ("emacs-magit-popup" ,emacs-magit-popup))) ;for "M-x guix" command -- cgit v1.2.3 From 365de1e7a5b37f9fd88cd964cc7d47f6f729d053 Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Sat, 22 Oct 2016 12:00:51 +0200 Subject: gnu: Add Cuirass. * gnu/packages/ci.scm (cuirass): New variable. Co-authored-by: Jan Nieuwenhuizen --- gnu/packages/ci.scm | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index 3f54ff1298..f07e75ad4e 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -1,5 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Eric Bavier +;;; Copyright © 2016 Jan Nieuwenhuizen +;;; Copyright © 2016 Mathieu Lirzin ;;; ;;; This file is part of GNU Guix. ;;; @@ -181,3 +183,53 @@ release that uses a purely functional language to describe build jobs and their dependencies.") (license l:gpl3+)))) + +(define-public cuirass + (let ((commit "7248c0038f3d0bfcf6c469d534efb4a13952c112") + (revision "1")) + (package + (name "cuirass") + (version (string-append "0.0.1-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://notabug.org/mthl/cuirass") + (commit commit))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "0hkwh2pcz3wzg1n533ch2w7vwr97yr369q4ki0yqk99wfipjrydw")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'bootstrap + (lambda _ (zero? (system* "sh" "bootstrap")))) + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Wrap the 'cuirass' command to refer to the right modules. + (let* ((out (assoc-ref outputs "out")) + (json (assoc-ref inputs "guile-json")) + (sqlite (assoc-ref inputs "guile-sqlite3")) + (guix (assoc-ref inputs "guix")) + (mods (string-append json "/share/guile/site/2.0:" + sqlite "/share/guile/site/2.0:" + guix "/share/guile/site/2.0"))) + (wrap-program (string-append out "/bin/cuirass") + `("GUILE_LOAD_PATH" ":" prefix (,mods)) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,mods))))))))) + (inputs + `(("guile" ,guile-2.0) + ("guile-json" ,guile-json) + ("guile-sqlite3" ,guile-sqlite3) + ("guix" ,guix))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) + (synopsis "Continuous integration system") + (description + "Cuirass is a continuous integration tool using GNU Guix. It is +intended as a replacement for Hydra.") + (home-page "https://notabug.org/mthl/cuirass") + (license l:gpl3+)))) -- cgit v1.2.3 From a7cf4eb6d99838606d8ecfa776f7e4920dfbb7f5 Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Sun, 23 Oct 2016 15:14:18 +0200 Subject: services: Add 'cuirass-service'. * gnu/services/cuirass.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (Continuous integration): New node. --- doc/guix.texi | 79 ++++++++++++++++++++++++++++++++ gnu/local.mk | 1 + gnu/services/cuirass.scm | 115 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 195 insertions(+) create mode 100644 gnu/services/cuirass.scm diff --git a/doc/guix.texi b/doc/guix.texi index 125e5f0d62..53d29e45be 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -7926,6 +7926,7 @@ declaration. * Kerberos Services:: Kerberos services. * Web Services:: Web servers. * Network File System:: NFS related services. +* Continuous Integration:: The Cuirass service. * Miscellaneous Services:: Other services. @end menu @@ -11747,6 +11748,84 @@ If it is @code{#f} then the daemon will use the host's fully qualified domain na @end table @end deftp +@node Continuous Integration +@subsubsection Continuous Integration + +@cindex continuous integration +@uref{https://notabug.org/mthl/cuirass, Cuirass} is a continuous +integration tool for Guix. It can be used both for development and for +providing substitutes to others (@pxref{Substitutes}). + +The @code{(gnu services cuirass)} module provides the following service. + +@deffn {Scheme Procedure} cuirass-service @ + [#:config @code{(cuirass-configuration)}] +Return a service that runs @command{cuirass}. + +The @var{#:config} keyword argument specifies the configuration for +@command{cuirass}, which must be a @code{} +object, by default it doesn't provide any build job. If you want to +provide your own configuration you will most likely use the +@code{cuirass-configuration} special form which returns such objects. +@end deffn + +In order to add build jobs you will have to set the +@code{specifications} field. Here is an example of a cuirass service +defining a build job based on a specification that can be found in +Cuirass source tree. + +@example +(let ((spec `((#:name . "guix") + (#:url . "git://git.savannah.gnu.org/guix.git") + (#:load-path . ".") + ;; Adapt to a valid absolute file name. + (#:file . "/.../cuirass/tests/gnu-system.scm") + (#:proc . hydra-jobs) + (#:arguments (subset . "hello")) + (#:branch . "master")))) + (cuirass-service #:config (cuirass-configuration + (specifications (list spec))))) +@end example + +While information related to build jobs are located directly in the +specifications, global settings for the @command{cuirass} process are +accessible in other @code{cuirass-configuration} fields. + +@deftp {Data Type} cuirass-configuration +Data type representing the configuration of Cuirass. + +@table @asis +@item @code{cache-directory} (default: @code{""}) +Location of the repository cache. + +@item @code{user} (default: @code{"cuirass"}) +Owner of the @code{cuirass} process. + +@item @code{group} (default: @code{"cuirass"}) +Owner's group of the @code{cuirass} process. + +@item @code{interval} (default: @code{60}) +Number of seconds between the poll of the repositories followed by the +Cuirass jobs. + +@item @code{database} (default: @code{"/var/run/cuirass/cuirass.db"}) +Location of sqlite database which contains the build results and previously +added specifications. + +@item @code{specifications} (default: @code{'()}) +A list of specifications, where a specification is an association list +(@pxref{Associations Lists,,, guile, GNU Guile Reference Manual}) whose +keys are keywords (@code{#:keyword-example}) as shown in the example +above. + +@item @code{use-substitutes?} (default: @code{#f}) +This allows using substitutes to avoid building every dependencies of a job +from source. + +@item @code{one-shot?} (default: @code{#f}) +Only evaluate specifications and build derivations once. +@end table +@end deftp @node Miscellaneous Services @subsubsection Miscellaneous Services diff --git a/gnu/local.mk b/gnu/local.mk index c6461aa9c6..d9ec24a22e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -402,6 +402,7 @@ GNU_SYSTEM_MODULES = \ %D%/services/avahi.scm \ %D%/services/base.scm \ %D%/services/configuration.scm \ + %D%/services/cuirass.scm \ %D%/services/cups.scm \ %D%/services/databases.scm \ %D%/services/dbus.scm \ diff --git a/gnu/services/cuirass.scm b/gnu/services/cuirass.scm new file mode 100644 index 0000000000..d843c07335 --- /dev/null +++ b/gnu/services/cuirass.scm @@ -0,0 +1,115 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Mathieu Lirzin +;;; +;;; 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 . + +(define-module (gnu services cuirass) + #:use-module (guix gexp) + #:use-module (guix records) + #:use-module (gnu packages admin) + #:autoload (gnu packages ci) (cuirass) + #:use-module (gnu services) + #:use-module (gnu services base) + #:use-module (gnu services shepherd) + #:use-module (gnu system shadow) + #:export ( + cuirass-configuration + cuirass-configuration? + + cuirass-service-type + cuirass-service)) + +;;;; Commentary: +;;; +;;; This module implements a service that to run instances of Cuirass, a +;;; continuous integration tool. +;;; +;;;; Code: + +(define-record-type* + cuirass-configuration make-cuirass-configuration + cuirass-configuration? + (cache-directory cuirass-configuration-cache-directory ;string (dir-name) + (default "")) + (user cuirass-configuration-user ;string + (default "cuirass")) + (group cuirass-configuration-group ;string + (default "cuirass")) + (interval cuirass-configuration-interval ;integer (seconds) + (default 60)) + (database cuirass-configuration-database ;string (file-name) + (default "/var/run/cuirass/cuirass.db")) + (specifications cuirass-configuration-specifications ;string (file-name) + (default "")) + (use-substitutes? cuirass-configuration-use-substitutes? ;boolean + (default #f)) + (one-shot? cuirass-configuration-one-shot? ;boolean + (default #f))) + +(define (cuirass-shepherd-service config) + "Return a for the Cuirass service with CONFIG." + (and + (cuirass-configuration? config) + (let ((cache-directory (cuirass-configuration-cache-directory config)) + (interval (cuirass-configuration-interval config)) + (database (cuirass-configuration-database config)) + (specifications (cuirass-configuration-specifications config)) + (use-substitutes? (cuirass-configuration-use-substitutes? config)) + (one-shot? (cuirass-configuration-one-shot? config))) + (list (shepherd-service + (documentation "Run Cuirass.") + (provision '(cuirass)) + (requirement '(guix-daemon)) + (start #~(make-forkexec-constructor + (list (string-append #$cuirass "/bin/cuirass") + #$@(if (string=? "" cache-directory) + '() + (list "--cache-directory" cache-directory)) + #$@(if (string=? "" specifications) + '() + (list "--specifications" specifications)) + "--database" #$database + "--interval" #$(number->string interval) + #$@(if use-substitutes? '("--use-substitutes") '()) + #$@(if one-shot? '("--one-shot") '())))) + (stop #~(make-kill-destructor))))))) + +(define (cuirass-account config) + "Return the user accounts and user groups for CONFIG." + (let ((cuirass-user (cuirass-configuration-user config)) + (cuirass-group (cuirass-configuration-group config))) + (list (user-group + (name cuirass-group) + (system? #t)) + (user-account + (name cuirass-user) + (group cuirass-group) + (system? #t) + (comment "Cuirass privilege separation user") + (home-directory (string-append "/var/run/" cuirass-user)) + (shell #~(string-append #$shadow "/sbin/nologin")))))) + +(define cuirass-service-type + (service-type + (name 'cuirass) + (extensions + (list + (service-extension shepherd-root-service-type cuirass-shepherd-service) + (service-extension account-service-type cuirass-account))))) + +(define* (cuirass-service #:key (config (cuirass-configuration))) + "Return a service that runs cuirass according to CONFIG." + (service cuirass-service-type config)) -- cgit v1.2.3 From 663d5b5330e05fdf2c1b55d699955f3fd9668c24 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 29 Nov 2016 23:43:02 -0500 Subject: gnu: git: Update to 2.11.0. * gnu/packages/version-control.scm (git): Update to 2.11.0. --- gnu/packages/version-control.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 5909a9f9db..03d7bbead3 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -112,14 +112,14 @@ as well as the classic centralized workflow.") (define-public git (package (name "git") - (version "2.10.2") + (version "2.11.0") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "0wc64dzcxrzgi6kwcljz6y3cwm3ajdgf6aws7g58azbhvl1jk04l")))) + "02zx368id8rys0bh2sjrxz0ln2l2wm5nf1vhp1rj72clsilqszky")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -132,7 +132,7 @@ as well as the classic centralized workflow.") version ".tar.xz")) (sha256 (base32 - "0vxaz23vf3ki0q5zgn6mxr9x1hjryqn1hsmgyrgdk6h3yqbs7c43")))))) + "1n18jnpi0z3skwc1ckrm7zdld6i3zvn0g95cg9r9pdn0564fglxk")))))) (inputs `(("curl" ,curl) ("expat" ,expat) -- cgit v1.2.3 From 1d60f7c2b38733b031519a48771c44d20acb785d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 30 Nov 2016 01:09:08 -0500 Subject: gnu: borg: Fix the test suite. * gnu/packages/backup.scm (borg)[arguments]: Use add-installed-pythonpath and disable tests related to FUSE. --- gnu/packages/backup.scm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 94b2e82242..a503b06603 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -435,7 +435,9 @@ detection, and lossless compression.") ;; The tests need to be run after Borg is installed. (delete 'check) (add-after 'install 'check - (lambda _ + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Make the installed package available for the test suite. + (add-installed-pythonpath inputs outputs) (zero? (system* "py.test" "-v" "--pyargs" "borg.testsuite" "-k" (string-append @@ -448,7 +450,13 @@ detection, and lossless compression.") "and not test_default_acl " "and not test_non_ascii_acl " ;; This test needs the unpackaged pytest-benchmark. - "and not benchmark"))))) + "and not benchmark " + ;; These tests assume the kernel supports FUSE. They + ;; were skipped using the "old" Python build system, + ;; before commit + ;; 7db40bce58e149ecb541d295e01cfbfe953d39a3. + "and not test_fuse " + "and not test_fuse_allow_damaged_files"))))) (add-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) -- cgit v1.2.3 From 7edd195ac82c7a60fb7b61dcf59d73a12c101794 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 29 Nov 2016 22:53:57 +0100 Subject: gnu: gcj: Conditionally apply patch for armhf. * gnu/packages/gcc.scm (gcj)[source]: Inherit from "gcc" package. [native-inputs]: Conditionally add arm-patch. [arguments]: Conditionally add phase "apply-arm-patch". --- gnu/packages/gcc.scm | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 4d93317785..72e2309c33 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -522,9 +522,6 @@ as the 'native-search-paths' field." (package (inherit gcc) (name "gcj") (version (package-version gcc)) - (source (origin (inherit (package-source gcc)) - (patches (cons (search-patch "gcj-arm-mode.patch") - (origin-patches (package-source gcc)))))) (inputs `(("fastjar" ,fastjar) ("perl" ,perl) @@ -533,6 +530,15 @@ as the 'native-search-paths' field." ,@(package-inputs gcc))) (native-inputs `(("dejagnu" ,dejagnu) + ,@(if (string-prefix? "armhf" (or (%current-system) + (%current-target-system))) + `(("arm-patch" ,(origin + (method url-fetch) + (uri (search-patch "gcj-arm-mode.patch")) + (sha256 + (base32 + "1z15xs5yx6qinnb572swzxrn9f668sw7ga5280q3gznj1jyrynfn"))))) + '()) ,@(package-native-inputs gcc))) (native-search-paths %generic-search-paths) @@ -560,6 +566,14 @@ as the 'native-search-paths' field." ,flags)))) ((#:phases phases) `(modify-phases ,phases + ;; Conditionally add phase to apply patch + ,@(if (string-prefix? "armhf" (or (%current-system) + (%current-target-system))) + `((add-after 'unpack 'apply-arm-patch + (lambda* (#:key inputs #:allow-other-keys) + (zero? (system* "patch" "-p1" + "-i" (assoc-ref inputs "arm-patch")))))) + '()) (add-after 'unpack 'add-lib-output-to-rpath (lambda _ -- cgit v1.2.3 From 819c1945d1ddb0d3237c48cc3c4975640f9bf08d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 30 Nov 2016 15:59:45 +0100 Subject: services: nginx: Join strings with spaces. * gnu/services/web.scm (config-domain-strings, config-index-strings): Use "string-join" to join strings with spaces. --- gnu/services/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/services/web.scm b/gnu/services/web.scm index 59e1e54e04..8f6e5bf6b7 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -72,7 +72,7 @@ (define (config-domain-strings names) "Return a string denoting the nginx config representation of NAMES, a list of domain names." - (string-concatenate + (string-join (map (match-lambda ('default "_") ((? string? str) str)) @@ -81,7 +81,7 @@ of domain names." (define (config-index-strings names) "Return a string denoting the nginx config representation of NAMES, a list of index files." - (string-concatenate + (string-join (map (match-lambda ((? string? str) str)) names))) -- cgit v1.2.3 From dcd9d1637a90375756c97019cc456b6f948b5d2f Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 30 Nov 2016 10:29:58 -0500 Subject: gnu: hdf5: Update to 1.8.18 [fixes CVE-2016-{4330,4331,4332,4333}]. * gnu/packages/maths.scm (hdf5): Update to 1.8.18. [source]: Add alternate URL. --- gnu/packages/maths.scm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index e432ed5c05..0ee573527a 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -549,15 +549,20 @@ incompatible with HDF5.") (define-public hdf5 (package (name "hdf5") - (version "1.8.17") + (version "1.8.18") (source (origin (method url-fetch) - (uri (string-append "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-" - version "/src/hdf5-" - version ".tar.bz2")) + (uri (list (string-append "http://www.hdfgroup.org/ftp/HDF5/releases/" + "hdf5-" version "/src/hdf5-" + version ".tar.bz2") + (string-append "https://support.hdfgroup.org/ftp/HDF5/" + "current" + (apply string-append + (take (string-split version #\.) 2)) + "/src/hdf5-" version ".tar.bz2"))) (sha256 - (base32 "0sj8x0gfs5fb28gipnynb9wpkz113h8wq9sva9mxx66kv27xsdgw")) + (base32 "13542vrnl1p35n8vbq0wzk40vddmm33q5nh04j98c7r1yjnxxih1")) (patches (list (search-patch "hdf5-config-date.patch"))))) (build-system gnu-build-system) (inputs -- cgit v1.2.3 From 130079ae27b47228516dc2934bcdecca5dbedf12 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 30 Nov 2016 00:05:22 +0100 Subject: tests: Create a copy-on-write image instead of copying eagerly. * gnu/tests/install.scm (qemu-command/writable-image): Invoke 'qemu-img -o backing_file' instead of calling 'copy-file'. --- gnu/tests/install.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm index ecf1ac1923..4779b80e94 100644 --- a/gnu/tests/install.scm +++ b/gnu/tests/install.scm @@ -199,8 +199,15 @@ IMAGE, a disk image. The QEMU VM is has access to MEMORY-SIZE MiB of RAM." (mlet %store-monad ((system (current-system))) (return #~(let ((image #$image)) ;; First we need a writable copy of the image. - (format #t "copying image '~a'...~%" image) - (copy-file image "disk.img") + (format #t "creating writable image from '~a'...~%" image) + (unless (zero? (system* #+(file-append qemu-minimal + "/bin/qemu-img") + "create" "-f" "qcow2" + "-o" + (string-append "backing_file=" image) + "disk.img")) + (error "failed to create writable QEMU image" image)) + (chmod "disk.img" #o644) `(,(string-append #$qemu-minimal "/bin/" #$(qemu-command system)) -- cgit v1.2.3 From 7632f7bc214b798ff3e154c2fac9a856aa9494e3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 30 Nov 2016 15:56:55 +0100 Subject: gnu-maintenance: Factorize URL prefix predicates. * guix/gnu-maintenance.scm (url-prefix-predicate): New procedure. (gnome-package?): Rewrite in terms of 'url-prefix-predicate'. (kde-package?, xorg-package?): Remove. (%kde-updater, %xorg-updater): Use 'url-prefix-predicate'. --- guix/gnu-maintenance.scm | 70 +++++++++++++++--------------------------------- 1 file changed, 22 insertions(+), 48 deletions(-) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 6c6c0722d5..90ca7a45e3 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -448,21 +448,26 @@ elpa.gnu.org, and all the GNOME packages." (not (gnome-package? package)) (gnu-package? package))) -(define (gnome-package? package) - "Return true if PACKAGE is a GNOME package, hosted on gnome.org." - (define gnome-uri? - (match-lambda - ((? string? uri) - (string-prefix? "mirror://gnome/" uri)) - (_ - #f))) - - (match (package-source package) - ((? origin? origin) - (match (origin-uri origin) - ((? gnome-uri?) #t) - (_ #f))) - (_ #f))) +(define (url-prefix-predicate prefix) + "Return a predicate that returns true when passed a package where one of its +source URLs starts with PREFIX." + (lambda (package) + (define matching-uri? + (match-lambda + ((? string? uri) + (string-prefix? prefix uri)) + (_ + #f))) + + (match (package-source package) + ((? origin? origin) + (match (origin-uri origin) + ((? matching-uri?) #t) + (_ #f))) + (_ #f)))) + +(define gnome-package? + (url-prefix-predicate "mirror://gnome/")) (define (latest-gnome-release package) "Return the latest release of PACKAGE, the name of a GNOME package." @@ -504,21 +509,6 @@ elpa.gnu.org, and all the GNOME packages." ;; checksums. #:file->signature (const #f)))) -(define (kde-package? package) - "Return true if PACKAGE is a KDE package, developed by KDE.org." - (define kde-uri? - (match-lambda - ((? string? uri) - (string-prefix? "mirror://kde/" uri)) - (_ - #f))) - - (match (package-source package) - ((? origin? origin) - (match (origin-uri origin) - ((? kde-uri?) #t) - (_ #f))) - (_ #f))) (define (latest-kde-release package) "Return the latest release of PACKAGE, the name of an KDE.org package." @@ -532,22 +522,6 @@ elpa.gnu.org, and all the GNOME packages." (string-append "/kde" (dirname (dirname (uri-path uri)))) #:file->signature (const #f))))) -(define (xorg-package? package) - "Return true if PACKAGE is an X.org package, developed by X.org." - (define xorg-uri? - (match-lambda - ((? string? uri) - (string-prefix? "mirror://xorg/" uri)) - (_ - #f))) - - (match (package-source package) - ((? origin? origin) - (match (origin-uri origin) - ((? xorg-uri?) #t) - (_ #f))) - (_ #f))) - (define (latest-xorg-release package) "Return the latest release of PACKAGE, the name of an X.org package." (let ((uri (string->uri (origin-uri (package-source package))))) @@ -576,14 +550,14 @@ elpa.gnu.org, and all the GNOME packages." (upstream-updater (name 'kde) (description "Updater for KDE packages") - (pred kde-package?) + (pred (url-prefix-predicate "mirror://kde/")) (latest latest-kde-release))) (define %xorg-updater (upstream-updater (name 'xorg) (description "Updater for X.org packages") - (pred xorg-package?) + (pred (url-prefix-predicate "mirror://xorg/")) (latest latest-xorg-release))) ;;; gnu-maintenance.scm ends here -- cgit v1.2.3 From 4e6230ec00de1090e2780130f7de3a799c626e9b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 30 Nov 2016 16:26:08 +0100 Subject: refresh: Honor the selected updaters when '-u' isn't given. Fixes a regression introduced in e9c72306fdfd6a60158918850cb25d0ff3837d16. * guix/scripts/refresh.scm (check-for-package-update): Add 'updaters' parameter and honor it. (guix-refresh): Pass UPDATERS to 'check-for-package-update'. --- guix/scripts/refresh.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index ed28ed5fcb..91a31a280b 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -261,10 +261,10 @@ downloaded and authenticated; not updating~%") (when warn? (warn-no-updater package)))) -(define* (check-for-package-update package #:key warn?) +(define* (check-for-package-update package updaters #:key warn?) "Check whether an update is available for PACKAGE and print a message. When WARN? is true and no updater exists for PACKAGE, print a warning." - (match (package-latest-release package %updaters) + (match (package-latest-release package updaters) ((? upstream-source? source) (when (version>? (upstream-source-version source) (package-version package)) @@ -438,7 +438,8 @@ update would trigger a complete rebuild." (with-monad %store-monad (return #t)))) (else - (for-each (cut check-for-package-update <> #:warn? warn?) + (for-each (cut check-for-package-update <> updaters + #:warn? warn?) packages) (with-monad %store-monad (return #t))))))))) -- cgit v1.2.3 From 8d5d06282e255557d3bdda1794bd3fea2c84ff59 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 30 Nov 2016 17:30:12 +0100 Subject: upstream: Properly verify signatures of uncompressed tarballs. * guix/upstream.scm (uncompressed-tarball): New procedure. (download-tarball): Use it when the basename of SIGNATURE-URL doesn't contain the basename of URL. --- guix/upstream.scm | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/guix/upstream.scm b/guix/upstream.scm index 08992dc19e..8685afd860 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm @@ -26,6 +26,11 @@ #:use-module (guix packages) #:use-module (guix ui) #:use-module (guix base32) + #:use-module (guix gexp) + #:use-module (guix store) + #:use-module ((guix derivations) + #:select (built-derivations derivation->output-path)) + #:use-module (guix monads) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-11) @@ -149,6 +154,32 @@ than that of PACKAGE." (_ #f))) +(define (uncompressed-tarball name tarball) + "Return a derivation that decompresses TARBALL." + (define (ref package) + (module-ref (resolve-interface '(gnu packages compression)) + package)) + + (define compressor + (cond ((or (string-suffix? ".gz" tarball) + (string-suffix? ".tgz" tarball)) + (file-append (ref 'gzip) "/bin/gzip")) + ((string-suffix? ".bz2" tarball) + (file-append (ref 'bzip2) "/bin/bzip2")) + ((string-suffix? ".xz" tarball) + (file-append (ref 'xz) "/bin/xz")) + ((string-suffix? ".lz" tarball) + (file-append (ref 'lzip) "/bin/lzip")) + (else + (error "unknown archive type" tarball)))) + + (gexp->derivation (file-sans-extension name) + #~(begin + (copy-file #+tarball #+name) + (and (zero? (system* #+compressor "-d" #+name)) + (copy-file #+(file-sans-extension name) + #$output))))) + (define* (download-tarball store url signature-url #:key (key-download 'interactive)) "Download the tarball at URL to the store; check its OpenPGP signature at @@ -159,8 +190,22 @@ values: 'interactive' (default), 'always', and 'never'." (let ((tarball (download-to-store store url))) (if (not signature-url) tarball - (let* ((sig (download-to-store store signature-url)) - (ret (gnupg-verify* sig tarball #:key-download key-download))) + (let* ((sig (download-to-store store signature-url)) + + ;; Sometimes we get a signature over the uncompressed tarball. + ;; In that case, decompress the tarball in the store so that we + ;; can check the signature. + (data (if (string-prefix? (basename url) + (basename signature-url)) + tarball + (run-with-store store + (mlet %store-monad ((drv (uncompressed-tarball + (basename url) tarball))) + (mbegin %store-monad + (built-derivations (list drv)) + (return (derivation->output-path drv))))))) + + (ret (gnupg-verify* sig data #:key-download key-download))) (if ret tarball (begin -- cgit v1.2.3 From 2fd370e8167be9a0af9e5358757d58d1acaf02e0 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 30 Nov 2016 16:29:15 +0100 Subject: gnu-maintenance: Add kernel.org updater. * guix/gnu-maintenance.scm (latest-kernel.org-release): New procedure. (%kernel.org-updater): New variable. * guix/scripts/refresh.scm (%updaters): Add it. --- doc/guix.texi | 2 ++ guix/gnu-maintenance.scm | 26 +++++++++++++++++++++++++- guix/scripts/refresh.scm | 4 +++- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 53d29e45be..37bdb69b56 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5342,6 +5342,8 @@ the updater for GNOME packages; the updater for KDE packages; @item xorg the updater for X.org packages; +@item kernel.org +the updater for packages hosted on kernel.org; @item elpa the updater for @uref{http://elpa.gnu.org/, ELPA} packages; @item cran diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 90ca7a45e3..4d4bb452be 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -60,7 +60,8 @@ %gnu-updater %gnome-updater %kde-updater - %xorg-updater)) + %xorg-updater + %kernel.org-updater)) ;;; Commentary: ;;; @@ -532,6 +533,22 @@ source URLs starts with PREFIX." #:directory (string-append "/pub/xorg/" (dirname (uri-path uri))))))) +(define (latest-kernel.org-release package) + "Return the latest release of PACKAGE, the name of a kernel.org package." + (let ((uri (string->uri (origin-uri (package-source package))))) + (false-if-ftp-error + (latest-ftp-release + (package-name package) + #:server "ftp.free.fr" ;a mirror reachable over FTP + #:directory (string-append "/mirrors/ftp.kernel.org" + (dirname (uri-path uri))) + + ;; kernel.org provides "foo-x.y.tar.sign" files, which are signatures of + ;; the uncompressed tarball. + #:file->signature (lambda (tarball) + (string-append (file-sans-extension tarball) + ".sign")))))) + (define %gnu-updater (upstream-updater (name 'gnu) @@ -560,4 +577,11 @@ source URLs starts with PREFIX." (pred (url-prefix-predicate "mirror://xorg/")) (latest latest-xorg-release))) +(define %kernel.org-updater + (upstream-updater + (name 'kernel.org) + (description "Updater for packages hosted on kernel.org") + (pred (url-prefix-predicate "mirror://kernel.org/")) + (latest latest-kernel.org-release))) + ;;; gnu-maintenance.scm ends here diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 91a31a280b..12a344e1a0 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -35,7 +35,8 @@ #:select (%gnu-updater %gnome-updater %kde-updater - %xorg-updater)) + %xorg-updater + %kernel.org-updater)) #:use-module (guix import elpa) #:use-module (guix import cran) #:use-module (guix import hackage) @@ -200,6 +201,7 @@ unavailable optional dependencies such as Guile-JSON." %gnome-updater %kde-updater %xorg-updater + %kernel.org-updater %elpa-updater %cran-updater %bioconductor-updater -- cgit v1.2.3 From 3676f892551d562e1a1360d79b208e687ece08c2 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 30 Nov 2016 16:45:19 +0100 Subject: refresh: '--list-updaters' shows updater coverage. * guix/scripts/refresh.scm (list-updaters-and-exit): Compute the coverage ratio of each updater and print it. Print the coverage ratio for all the updaters. * doc/guix.texi (Invoking guix refresh): Document it. --- doc/guix.texi | 3 +++ guix/scripts/refresh.scm | 27 ++++++++++++++++++++++----- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 37bdb69b56..3b4ba487ad 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5394,6 +5394,9 @@ be used when passing @command{guix refresh} one or more package names: @itemx -L List available updaters and exit (see @option{--type} above.) +For each updater, display the fraction of packages it covers; at the +end, display the fraction of packages covered by all these updaters. + @item --list-dependent @itemx -l List top-level dependent packages that would need to be rebuilt as a diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 12a344e1a0..e1ff544de0 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -220,11 +220,28 @@ unavailable optional dependencies such as Guile-JSON." (define (list-updaters-and-exit) "Display available updaters and exit." (format #t (_ "Available updaters:~%")) - (for-each (lambda (updater) - (format #t "- ~a: ~a~%" - (upstream-updater-name updater) - (_ (upstream-updater-description updater)))) - %updaters) + (newline) + + (let* ((packages (fold-packages cons '())) + (total (length packages))) + (define covered + (fold (lambda (updater covered) + (let ((matches (count (upstream-updater-predicate updater) + packages))) + ;; TRANSLATORS: The parenthetical expression here is rendered + ;; like "(42% coverage)" and denotes the fraction of packages + ;; covered by the given updater. + (format #t (_ " - ~a: ~a (~2,1f% coverage)~%") + (upstream-updater-name updater) + (_ (upstream-updater-description updater)) + (* 100. (/ matches total))) + (+ covered matches))) + 0 + %updaters)) + + (newline) + (format #t (_ "~2,1f% of the packages are covered by these updaters.~%") + (* 100. (/ covered total)))) (exit 0)) (define (warn-no-updater package) -- cgit v1.2.3 From 873c469e743c9d411614216713dc1679db3f2ed4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 30 Nov 2016 17:29:23 +0100 Subject: gnu: pciutils: Update to 3.5.2. * gnu/packages/pciutils.scm (pciutils): Update to 3.5.2. --- gnu/packages/pciutils.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/pciutils.scm b/gnu/packages/pciutils.scm index 553e3f8cac..8422a5c574 100644 --- a/gnu/packages/pciutils.scm +++ b/gnu/packages/pciutils.scm @@ -30,7 +30,7 @@ (define-public pciutils (package (name "pciutils") - (version "3.5.1") + (version "3.5.2") (source (origin (method url-fetch) (uri (string-append @@ -38,7 +38,7 @@ version ".tar.xz")) (sha256 (base32 - "0byl2f897w5lhs4bvr6p7qwcz9bllj2zyfv7nywbcbsnb9ha9wrb")))) + "1z2y4f3cyvm7a0dyan0n6jpb3p9pvh35lrim0058slj0kwd1969s")))) (build-system gnu-build-system) (arguments '(#:phases -- cgit v1.2.3 From 72f0c5ea3c0272a93436ad3c04a281d1237a9593 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 30 Nov 2016 17:29:45 +0100 Subject: gnu: iw: Update to 4.9. * gnu/packages/linux.scm (iw): Update to 4.9. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index a4639bdd59..2c3c9cf01b 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1198,7 +1198,7 @@ configuration and monitoring interfaces.") (define-public iw (package (name "iw") - (version "4.3") + (version "4.9") (source (origin (method url-fetch) (uri (string-append @@ -1206,7 +1206,7 @@ configuration and monitoring interfaces.") version ".tar.xz")) (sha256 (base32 - "085jyvrxzarvn5jl0fk618jjxy50nqx7ifngszc4jxk6a4ddibd6")))) + "1klpvv98bnx1zm6aqalnri2vd7w80scmdaxr2qnblb6mz82whk1j")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("libnl" ,libnl))) -- cgit v1.2.3