diff mbox

Python 3.5 start of update

Message ID 20160821175851.GA10659@jasmine
State New
Headers show

Commit Message

Leo Famulari Aug. 21, 2016, 5:58 p.m. UTC
On Wed, Jun 22, 2016 at 08:15:02AM -0500, Christopher Allan Webber wrote:
> Ludovic Court├Ęs writes:
> >> From bbc1f68204318d79ece3fa46ed71d7c21d6ec8a2 Mon Sep 17 00:00:00 2001
> >> From: Christopher Allan Webber <cwebber@dustycloud.org>
> 
> >> 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")
> >
> > Could it be that adding a phase that does (setenv "HOME" (getcwd)) would
> > help?

IIUC, we already do that in python-2, and python-3 inherits from
python-2. So, it seems that it's not enough.

> I'll try to get the rest of this done this afternoon, but it might
> happen sometime later this week.

;)

I picked this up. I've attached two patches. They upgrade python-3.4 to
3.4.5, and then upgrade python-3 to 3.5.2 while preserving a python-3.4.
These are the latest releases in their respective series.

I had to split part of the python-fix-tests.patch into 3.4 and 3.5
specific patches, since those packages' codebases have diverged.

python@3.4.5 and python@3.5.2 both build on master and wip-python.
python-setuptools builds with python@3.5.2 on master.

I'd like to put these on core-updates. The wip-python branch will take a
while to get ready. I found this saga about what Nix had to do to
upgrade setuptools:
https://github.com/NixOS/nixpkgs/pull/12552
From 34f52581bed88368396490d6e42fd1cb50e0a3f1 Mon Sep 17 00:00:00 2001
From: Christopher Allan Webber <cwebber@dustycloud.org>
Date: Mon, 20 Jun 2016 14:05:20 -0500
Subject: [PATCH 1/2] gnu: python-3.4: Update to 3.4.5.

* gnu/packages/patches/python-disable-ssl-test.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Remove it.
* gnu/packages/python.scm (python-3.4): Update to 3.4.5.
[source]: Remove patch.
[arguments]: Remove field.
(python-minimal)[inputs]: Add libffi.
---
 gnu/local.mk                                       |  1 -
 gnu/packages/patches/python-disable-ssl-test.patch | 12 ------------
 gnu/packages/python.scm                            | 14 +++++---------
 3 files changed, 5 insertions(+), 22 deletions(-)
 delete mode 100644 gnu/packages/patches/python-disable-ssl-test.patch

Comments

Leo Famulari Aug. 30, 2016, 1:48 a.m. UTC | #1
On Sun, Aug 21, 2016 at 01:58:51PM -0400, Leo Famulari wrote:
> I picked this up. I've attached two patches. They upgrade python-3.4 to
> 3.4.5, and then upgrade python-3 to 3.5.2 while preserving a python-3.4.
> These are the latest releases in their respective series.
> 
> I had to split part of the python-fix-tests.patch into 3.4 and 3.5
> specific patches, since those packages' codebases have diverged.
> 
> python@3.4.5 and python@3.5.2 both build on master and wip-python.
> python-setuptools builds with python@3.5.2 on master.
> 
> I'd like to put these on core-updates. The wip-python branch will take a
> while to get ready. I found this saga about what Nix had to do to
> upgrade setuptools:
> https://github.com/NixOS/nixpkgs/pull/12552

I went ahead and pushed to core-updates, bringing the branch to
72df66806.
Christopher Allan Webber Aug. 30, 2016, 2:03 p.m. UTC | #2
Leo Famulari writes:

> On Sun, Aug 21, 2016 at 01:58:51PM -0400, Leo Famulari wrote:
>> I picked this up. I've attached two patches. They upgrade python-3.4 to
>> 3.4.5, and then upgrade python-3 to 3.5.2 while preserving a python-3.4.
>> These are the latest releases in their respective series.
>> 
>> I had to split part of the python-fix-tests.patch into 3.4 and 3.5
>> specific patches, since those packages' codebases have diverged.
>> 
>> python@3.4.5 and python@3.5.2 both build on master and wip-python.
>> python-setuptools builds with python@3.5.2 on master.
>> 
>> I'd like to put these on core-updates. The wip-python branch will take a
>> while to get ready. I found this saga about what Nix had to do to
>> upgrade setuptools:
>> https://github.com/NixOS/nixpkgs/pull/12552
>
> I went ahead and pushed to core-updates, bringing the branch to
> 72df66806.

Horray!  Thanks for pushing it the rest of the way. :)
diff mbox

Patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 3444c20..f201232 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -734,7 +734,6 @@  dist_patch_DATA =						\
   %D%/packages/patches/python-3-deterministic-build-info.patch	\
   %D%/packages/patches/python-3-search-paths.patch		\
   %D%/packages/patches/python-dendropy-exclude-failing-tests.patch \
-  %D%/packages/patches/python-disable-ssl-test.patch		\
   %D%/packages/patches/python-fix-tests.patch			\
   %D%/packages/patches/python-ipython-inputhook-ctype.patch	\
   %D%/packages/patches/python-rarfile-fix-tests.patch		\
diff --git a/gnu/packages/patches/python-disable-ssl-test.patch b/gnu/packages/patches/python-disable-ssl-test.patch
deleted file mode 100644
index e351c77..0000000
--- a/gnu/packages/patches/python-disable-ssl-test.patch
+++ /dev/null
@@ -1,12 +0,0 @@ 
-Disable a test that fails with openssl-1.0.2b.
-
---- Lib/test/test_ssl.py.orig	2015-02-25 06:27:45.000000000 -0500
-+++ Lib/test/test_ssl.py	2015-06-12 03:14:09.395212502 -0400
-@@ -2718,6 +2718,7 @@
-                                        chatty=True, connectionchatty=True)
-             self.assertIs(stats['compression'], None)
- 
-+        @unittest.skipIf(True, "openssl 1.0.2b complains: dh key too small")
-         def test_dh_params(self):
-             # Check we can get a connection with ephemeral Diffie-Hellman
-             context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index a83e4ee..5d529b0 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -301,21 +301,19 @@  data types.")
 
 (define-public python-3.4
   (package (inherit python-2)
-    (version "3.4.3")
+    (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"
-                        ;; XXX Try removing this patch for python > 3.4.3
-                        "python-disable-ssl-test.patch"
                         "python-3-deterministic-build-info.patch"
                         "python-3-search-paths.patch"))
               (patch-flags '("-p0"))
               (sha256
                (base32
-                "1f4nm4z08sy0kqwisvv95l02crv6dyysdmx44p1mz3bn6csrdcxm"))))
+                "12l9klp778wklxmckhghniy5hklss8r26995pyd00qbllk4b2r7f"))))
     (arguments (substitute-keyword-arguments (package-arguments python-2)
                  ((#:tests? _) #t)))
     (native-search-paths
@@ -348,14 +346,12 @@  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")))))
 
+    ;; Build fails due to missing ctypes without libffi.
     ;; OpenSSL is a mandatory dependency of Python 3.x, for urllib;
     ;; zlib is required by 'zipimport', used by pip.
-    (inputs `(("openssl" ,openssl)
+    (inputs `(("libffi" ,libffi)
+              ("openssl" ,openssl)
               ("zlib" ,zlib)))))
 
 (define* (wrap-python3 python