~ruther/guix-local

72df6680610050476b5fb309e92777d9519f45ef — Leo Famulari 9 years ago d0b7396
gnu: python-3: Update to python-3.5.2.

* gnu/packages/patches/python-3.4-fix-tests.patch,
gnu/packages/patches/python-3.5-fix-tests.patch: New files.
* gnu/local.mk (dist_patch_DATA): Add them.
* gnu/packages/patches/python-fix-tests.patch: Move python-3.4 specific
hunk to 'gnu/packages/patches/python-3.4-fix-tests.patch'.
* gnu/packages/python.scm (python-3.5): New variable.
(python-3.4): Inherit from python-3.5.
[source]: Use 'gnu/packages/patches/python-3.4-fix-tests.patch'.
(python-3): Point to python-3.5.

Co-authored-by: Diane Trout <diane@ghic.org>
Co-authored-by: Christopher Allan Webber <cwebber@dustycloud.org>
M gnu/local.mk => gnu/local.mk +2 -0
@@ 747,6 747,8 @@ dist_patch_DATA =						\
  %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		\
  %D%/packages/patches/python-3.4-fix-tests.patch		\
  %D%/packages/patches/python-3.5-fix-tests.patch		\
  %D%/packages/patches/python-dendropy-exclude-failing-tests.patch \
  %D%/packages/patches/python-fix-tests.patch			\
  %D%/packages/patches/python-ipython-inputhook-ctype.patch	\

A gnu/packages/patches/python-3.4-fix-tests.patch => gnu/packages/patches/python-3.4-fix-tests.patch +12 -0
@@ 0,0 1,12 @@
--- Lib/test/test_posixpath.py  2014-03-01 05:46:56.984311000 +0100
+++ Lib/test/test_posixpath.py  2014-03-07 00:59:20.888311000 +0100
@@ -319,7 +319,11 @@
                 del env['HOME']
                 home = pwd.getpwuid(os.getuid()).pw_dir
                 # $HOME can end with a trailing /, so strip it (see #17809)
-                self.assertEqual(posixpath.expanduser("~"), home.rstrip("/"))
+                # The Guix builders have '/' as a home directory, so
+                # home.rstrip("/") will be an empty string and the test will
+                # fail. Let's just disable it since it does not really make
+                # sense with such a bizarre setup.
+                # self.assertEqual(posixpath.expanduser("~"), home.rstrip("/"))

A gnu/packages/patches/python-3.5-fix-tests.patch => gnu/packages/patches/python-3.5-fix-tests.patch +46 -0
@@ 0,0 1,46 @@
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


--- Lib/test/test_asyncio/test_base_events.py
+++ Lib/test/test_asyncio/test_base_events.py
@@ -142,6 +142,8 @@ class BaseEventTests(test_utils.TestCase):
             (INET, STREAM, TCP, '', ('1.2.3.4', 1)),
             base_events._ipaddr_info('1.2.3.4', b'1', INET, STREAM, TCP))
 
+    @unittest.skipUnless(support.is_resource_enabled('network'),
+                         'network is not enabled')
     def test_getaddrinfo_servname(self):
         INET = socket.AF_INET
         STREAM = socket.SOCK_STREAM

M gnu/packages/patches/python-fix-tests.patch => gnu/packages/patches/python-fix-tests.patch +0 -15
@@ 20,21 20,6 @@ http://bugs.python.org/issue20868 .
     def test_tarfile_root_owner(self):
         tmpdir, tmpdir2, base_name =  self._create_files()

--- Lib/test/test_posixpath.py	2014-03-01 05:46:56.984311000 +0100
+++ Lib/test/test_posixpath.py	2014-03-07 00:59:20.888311000 +0100
@@ -319,7 +319,11 @@
                 del env['HOME']
                 home = pwd.getpwuid(os.getuid()).pw_dir
                 # $HOME can end with a trailing /, so strip it (see #17809)
-                self.assertEqual(posixpath.expanduser("~"), home.rstrip("/"))
+                # The Guix builders have '/' as a home directory, so
+                # home.rstrip("/") will be an empty string and the test will
+                # fail. Let's just disable it since it does not really make
+                # sense with such a bizarre setup.
+                # self.assertEqual(posixpath.expanduser("~"), home.rstrip("/"))
 
     def test_normpath(self):
         self.assertEqual(posixpath.normpath(""), ".")
--- Lib/test/test_socket.py.orig	2014-03-02 22:14:12.264311000 +0100
+++ Lib/test/test_socket.py	2014-03-21 03:50:45.660311000 +0100
@@ -819,6 +819,8 @@

M gnu/packages/python.scm => gnu/packages/python.scm +22 -4
@@ 293,21 293,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.5")
    (version "3.5.2")
    (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.5-fix-tests.patch"
                        "python-3-deterministic-build-info.patch"
                        "python-3-search-paths.patch"))
              (patch-flags '("-p0"))
              (sha256
               (base32
                "12l9klp778wklxmckhghniy5hklss8r26995pyd00qbllk4b2r7f"))))
                "0h6a5fr7ram2s483lh0pnmc4ncijb8llnpfdxdcl5dxr01hza400"))))
    (arguments (substitute-keyword-arguments (package-arguments python-2)
                 ((#:tests? _) #t)))
    (native-search-paths


@@ 317,8 318,25 @@ data types.")
                                        (version-major+minor version)
                                        "/site-packages"))))))))

(define-public python-3.4
  (package (inherit python-3.5)
    (version "3.4.5")
    (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.4-fix-tests.patch"
                        "python-3-deterministic-build-info.patch"
                        "python-3-search-paths.patch"))
              (patch-flags '("-p0"))
              (sha256
               (base32
                "12l9klp778wklxmckhghniy5hklss8r26995pyd00qbllk4b2r7f"))))))

;; 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)