Building on both the work that Diane did and my recent patch for python 3.4.4, here's two patches which do both consecutively: the first patch updates python-3.4 to 3.4.4, and the second patch adds python-3.5 and sets this to be the default python.
I'm interested in packaging Pulsar, but this requires Python 3.5 or higher, so these patches are a step towards it. Most of the work is Diane's. Thank you Diane! Great work :) - Chris
>From bbc1f68204318d79ece3fa46ed71d7c21d6ec8a2 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber <cweb...@dustycloud.org> Date: Fri, 29 Apr 2016 17:53:50 -0500 Subject: [PATCH] gnu: Add geiser-next. Also, I previously committed to this repository in 2015; add self to copyright headers for that year too. * gnu/packages/emacs.scm (geiser-next): New variable. --- gnu/packages/emacs.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 11010b2..7f904c0 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2015, 2016 Ricardo Wurmus <rek...@elephly.net> ;;; Copyright © 2016 Nils Gillmann <niaster...@grrlz.net> ;;; Copyright © 2016 Chris Marusich <cmmarus...@gmail.com> +;;; Copyright © 2015, 2016 Christopher Allan Webber <cweb...@dustycloud.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -260,6 +261,33 @@ implementation, Emacs and, ultimately, the schemer, giving them access to live metadata.") (license license:bsd-3))) +(define-public geiser-next + ;; Geiser's upcoming version supports guile-next, and 0.8.1 does not. + ;; When the next Geiser release comes out, we can remove this. + (package (inherit geiser) + (name "geiser-next") + (version "20160428.4c8b3de") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jaor/geiser.git") + (commit "4c8b3dee30ce7258602bef356337def95fcccd7e"))) + (sha256 + (base32 + "1nr183438z52v62amq38ngd83nwgkxzgssya19f7v6f47im0b95j")))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("texinfo" ,texinfo) + ,@(package-native-inputs geiser))) + (arguments + (substitute-keyword-arguments (package-arguments geiser) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'autogen + (lambda _ + (zero? (system* "sh" "autogen.sh")))))))))) + (define-public paredit (package (name "paredit") -- 2.7.4
>From ec0797ceaed8f20b4dbbfb8fb96b2c4752e93f2e Mon Sep 17 00:00:00 2001 From: Diane Trout <di...@ghic.org> Date: Tue, 21 Jun 2016 09:22:43 -0500 Subject: [PATCH 2/2] gnu: Add python-3.5. * gnu/packages/python.scm (python-3.5): New variable. (python-3.4): Inherit from python-3.5. (python-3): Switched alias to point to python-3.5. (python-minimal): Use the system-ffi as without-system-ffi caused the build to fail when trying to import _ctypes. * gnu/packages/patches/python-fix-tests-py3.5.patch: New file. Patch Lib/test/test_pathlib.py to skip test_expanduser. Patch Lib/test/test_tarfile.py to ignore pwd.getpwuid and grp.getgrgid tests for user root being of id 0. --- gnu/packages/patches/python-fix-tests-py3.5.patch | 35 +++++++++++++++++++++++ gnu/packages/python.scm | 31 ++++++++++++++------ 2 files changed, 58 insertions(+), 8 deletions(-) create mode 100644 gnu/packages/patches/python-fix-tests-py3.5.patch diff --git a/gnu/packages/patches/python-fix-tests-py3.5.patch b/gnu/packages/patches/python-fix-tests-py3.5.patch new file mode 100644 index 0000000..47dded4 --- /dev/null +++ b/gnu/packages/patches/python-fix-tests-py3.5.patch @@ -0,0 +1,35 @@ +Additional test fixes which affect Python 3.5 (and presumably later) but not +prior revisions of Python. + +--- Lib/test/test_pathlib.py 2014-03-01 03:02:36.088311000 +0100 ++++ Lib/test/test_pathlib.py 2014-03-01 04:56:37.768311000 +0100 +@@ -1986,8 +1986,9 @@ + expect = set() if not support.fs_is_case_insensitive(BASE) else given + self.assertEqual(given, expect) + self.assertEqual(set(p.rglob("FILEd*")), set()) + ++ @unittest.skipIf(True, "Guix builder home is '/' which causes trouble for these tests") + def test_expanduser(self): + P = self.cls + support.import_module('pwd') + import pwd +--- Lib/test/test_tarfile.py 2016-02-24 19:22:52.597208055 +0000 ++++ Lib/test/test_tarfile.py 2016-02-24 20:50:48.941950135 +0000 +@@ -2305,11 +2305,14 @@ + try: + import pwd, grp + except ImportError: + return False +- if pwd.getpwuid(0)[0] != 'root': +- return False +- if grp.getgrgid(0)[0] != 'root': ++ try: ++ if pwd.getpwuid(0)[0] != 'root': ++ return False ++ if grp.getgrgid(0)[0] != 'root': ++ return False ++ except KeyError: + return False + return True + + \ No newline at end of file diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 92535cb..0cb08ed 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -20,6 +20,7 @@ ;;; Copyright © 2016 Danny Milosavljevic <danny...@scratchpost.org> ;;; Copyright © 2016 Lukas Gradl <lgr...@openmailbox.org> ;;; Copyright © 2016 Hartmut Goebel <h.goe...@crazy-compilers.com> +;;; Copyright © 2016 Diane Trout <di...@ghic.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -269,21 +270,22 @@ data types.") ;; Current 2.x version. (define-public python-2 python-2.7) -(define-public python-3.4 +(define-public python-3.5 (package (inherit python-2) - (version "3.4.4") + (version "3.5.1") (source (origin (method url-fetch) (uri (string-append "https://www.python.org/ftp/python/" version "/Python-" version ".tar.xz")) (patches (search-patches "python-fix-tests.patch" + "python-fix-tests-py3.5.patch" "python-3-deterministic-build-info.patch" "python-3-search-paths.patch")) (patch-flags '("-p0")) (sha256 (base32 - "18kb5c29w04rj4gyz3jngm72sy8izfnbjlm6ajv6rv2m061d75x7")))) + "1j95yx32ggqx8jf13h3c8qfp34ixpyg8ipqcdjmn143d6q67rmf6")))) (arguments (substitute-keyword-arguments (package-arguments python-2) ((#:tests? _) #t))) (native-search-paths @@ -293,8 +295,24 @@ data types.") (version-major+minor version) "/site-packages")))))))) +(define-public python-3.4 + (package (inherit python-3.5) + (version "3.4.4") + (source (origin + (method url-fetch) + (uri (string-append "https://www.python.org/ftp/python/" + version "/Python-" version ".tar.xz")) + (patches (search-patches + "python-fix-tests.patch" + "python-3-deterministic-build-info.patch" + "python-3-search-paths.patch")) + (patch-flags '("-p0")) + (sha256 + (base32 + "18kb5c29w04rj4gyz3jngm72sy8izfnbjlm6ajv6rv2m061d75x7")))))) + ;; Current 3.x version. -(define-public python-3 python-3.4) +(define-public python-3 python-3.5) ;; Current major version. (define-public python python-3) @@ -316,14 +334,11 @@ data types.") (package (inherit python) (name "python-minimal") (outputs '("out")) - (arguments - (substitute-keyword-arguments (package-arguments python) - ((#:configure-flags cf) - `(append ,cf '("--without-system-ffi"))))) ;; OpenSSL is a mandatory dependency of Python 3.x, for urllib; ;; zlib is required by 'zipimport', used by pip. (inputs `(("openssl" ,openssl) + ("libffi" ,libffi) ; for ctypes ("zlib" ,zlib))))) (define* (wrap-python3 python -- 2.8.4