mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-12 14:16:55 -05:00
gnu: Python: Update to 3.7.4.
* gnu/packages/python.scm (python-3.7): Update to 3.7.4. [source](snippet): Move disabled tests ... [arguments]<#:make-flags>: ... here. Enable previously failing tests. <#:phases>: Add 'set-TZDIR'. [native-inputs]: Add TZDATA-FOR-TESTS. * gnu/packages/commencement.scm (python-boot0)[arguments]: Clear <#:make-flags>. Delete 'set-TZDIR' phase. * gnu/packages/patches/python-3-fix-tests.patch: Disable two new tests that do not work in the build container. Adjust context.
This commit is contained in:
parent
d4137d84ac
commit
680bc34da4
3 changed files with 57 additions and 31 deletions
|
@ -1887,6 +1887,9 @@ (define python-boot0
|
||||||
((#:configure-flags _ ''())
|
((#:configure-flags _ ''())
|
||||||
`(list "--without-ensurepip"
|
`(list "--without-ensurepip"
|
||||||
"--without-threads"))
|
"--without-threads"))
|
||||||
|
;; Clear #:make-flags, such that changes to the regular
|
||||||
|
;; Python package won't interfere with this one.
|
||||||
|
((#:make-flags _ ''()) ''())
|
||||||
((#:phases phases)
|
((#:phases phases)
|
||||||
`(modify-phases ,phases
|
`(modify-phases ,phases
|
||||||
(add-before 'configure 'disable-modules
|
(add-before 'configure 'disable-modules
|
||||||
|
@ -1897,7 +1900,8 @@ (define python-boot0
|
||||||
;; Prevent the 'ossaudiodev' extension from being
|
;; Prevent the 'ossaudiodev' extension from being
|
||||||
;; built, since it requires Linux headers.
|
;; built, since it requires Linux headers.
|
||||||
(("'linux', ") ""))
|
(("'linux', ") ""))
|
||||||
#t))))
|
#t))
|
||||||
|
(delete 'set-TZDIR)))
|
||||||
((#:tests? _ #f) #f))))))
|
((#:tests? _ #f) #f))))))
|
||||||
(package-with-bootstrap-guile
|
(package-with-bootstrap-guile
|
||||||
(package-with-explicit-inputs python %boot0-inputs
|
(package-with-explicit-inputs python %boot0-inputs
|
||||||
|
|
|
@ -85,7 +85,7 @@ diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.
|
||||||
diff --git a/Lib/test/test_asyncio/test_base_events.py b/Lib/test/test_asyncio/test_base_events.py
|
diff --git a/Lib/test/test_asyncio/test_base_events.py b/Lib/test/test_asyncio/test_base_events.py
|
||||||
--- a/Lib/test/test_asyncio/test_base_events.py
|
--- a/Lib/test/test_asyncio/test_base_events.py
|
||||||
+++ b/Lib/test/test_asyncio/test_base_events.py
|
+++ b/Lib/test/test_asyncio/test_base_events.py
|
||||||
@@ -1301,6 +1301,8 @@ class BaseEventLoopWithSelectorTests(test_utils.TestCase):
|
@@ -1323,6 +1323,8 @@ class BaseEventLoopWithSelectorTests(test_utils.TestCase):
|
||||||
self._test_create_connection_ip_addr(m_socket, False)
|
self._test_create_connection_ip_addr(m_socket, False)
|
||||||
|
|
||||||
@patch_socket
|
@patch_socket
|
||||||
|
@ -128,7 +128,7 @@ diff --git a/Lib/test/test_normalization.py b/Lib/test/test_normalization.py
|
||||||
diff --git a/Lib/test/test_pathlib.py b/Lib/test/test_pathlib.py
|
diff --git a/Lib/test/test_pathlib.py b/Lib/test/test_pathlib.py
|
||||||
--- a/Lib/test/test_pathlib.py
|
--- a/Lib/test/test_pathlib.py
|
||||||
+++ b/Lib/test/test_pathlib.py
|
+++ b/Lib/test/test_pathlib.py
|
||||||
@@ -2130,8 +2130,7 @@ class PosixPathTest(_BasePathTest, unittest.TestCase):
|
@@ -2134,8 +2134,7 @@ class PosixPathTest(_BasePathTest, unittest.TestCase):
|
||||||
self.assertEqual(given, expect)
|
self.assertEqual(given, expect)
|
||||||
self.assertEqual(set(p.rglob("FILEd*")), set())
|
self.assertEqual(set(p.rglob("FILEd*")), set())
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ diff --git a/Lib/test/test_pathlib.py b/Lib/test/test_pathlib.py
|
||||||
diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
|
diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
|
||||||
--- a/Lib/test/test_pdb.py
|
--- a/Lib/test/test_pdb.py
|
||||||
+++ b/Lib/test/test_pdb.py
|
+++ b/Lib/test/test_pdb.py
|
||||||
@@ -1133,11 +1133,11 @@ def test_pdb_issue_20766():
|
@@ -1150,11 +1150,11 @@ def test_pdb_issue_20766():
|
||||||
> <doctest test.test_pdb.test_pdb_issue_20766[0]>(6)test_function()
|
> <doctest test.test_pdb.test_pdb_issue_20766[0]>(6)test_function()
|
||||||
-> print('pdb %d: %s' % (i, sess._previous_sigint_handler))
|
-> print('pdb %d: %s' % (i, sess._previous_sigint_handler))
|
||||||
(Pdb) continue
|
(Pdb) continue
|
||||||
|
@ -158,7 +158,7 @@ diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
|
||||||
diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py
|
diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py
|
||||||
--- a/Lib/test/test_regrtest.py
|
--- a/Lib/test/test_regrtest.py
|
||||||
+++ b/Lib/test/test_regrtest.py
|
+++ b/Lib/test/test_regrtest.py
|
||||||
@@ -764,6 +764,7 @@ class ArgsTestCase(BaseTestCase):
|
@@ -762,6 +762,7 @@ class ArgsTestCase(BaseTestCase):
|
||||||
output = self.run_tests('--fromfile', filename)
|
output = self.run_tests('--fromfile', filename)
|
||||||
self.check_executed_tests(output, tests)
|
self.check_executed_tests(output, tests)
|
||||||
|
|
||||||
|
@ -166,12 +166,12 @@ diff --git a/Lib/test/test_regrtest.py b/Lib/test/test_regrtest.py
|
||||||
def test_interrupted(self):
|
def test_interrupted(self):
|
||||||
code = TEST_INTERRUPTED
|
code = TEST_INTERRUPTED
|
||||||
test = self.create_test('sigint', code=code)
|
test = self.create_test('sigint', code=code)
|
||||||
@@ -781,6 +782,7 @@ class ArgsTestCase(BaseTestCase):
|
@@ -779,6 +780,7 @@ class ArgsTestCase(BaseTestCase):
|
||||||
% (self.TESTNAME_REGEX, len(tests)))
|
% (self.TESTNAME_REGEX, len(tests)))
|
||||||
self.check_line(output, regex)
|
self.check_line(output, regex)
|
||||||
|
|
||||||
+ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment.')
|
+ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build environment.')
|
||||||
def test_slow_interrupted(self):
|
def test_slowest_interrupted(self):
|
||||||
# Issue #25373: test --slowest with an interrupted test
|
# Issue #25373: test --slowest with an interrupted test
|
||||||
code = TEST_INTERRUPTED
|
code = TEST_INTERRUPTED
|
||||||
diff --git a/Lib/test/test_resource.py b/Lib/test/test_resource.py
|
diff --git a/Lib/test/test_resource.py b/Lib/test/test_resource.py
|
||||||
|
@ -188,7 +188,7 @@ diff --git a/Lib/test/test_resource.py b/Lib/test/test_resource.py
|
||||||
diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py
|
diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py
|
||||||
--- a/Lib/test/test_shutil.py
|
--- a/Lib/test/test_shutil.py
|
||||||
+++ b/Lib/test/test_shutil.py
|
+++ b/Lib/test/test_shutil.py
|
||||||
@@ -1135,6 +1135,7 @@ class TestShutil(unittest.TestCase):
|
@@ -1143,6 +1143,7 @@ class TestShutil(unittest.TestCase):
|
||||||
self.assertRaises(ValueError, make_archive, base_name, 'xxx')
|
self.assertRaises(ValueError, make_archive, base_name, 'xxx')
|
||||||
|
|
||||||
@support.requires_zlib
|
@support.requires_zlib
|
||||||
|
@ -196,7 +196,7 @@ diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py
|
||||||
def test_make_archive_owner_group(self):
|
def test_make_archive_owner_group(self):
|
||||||
# testing make_archive with owner and group, with various combinations
|
# testing make_archive with owner and group, with various combinations
|
||||||
# this works even if there's not gid/uid support
|
# this works even if there's not gid/uid support
|
||||||
@@ -1163,6 +1164,7 @@ class TestShutil(unittest.TestCase):
|
@@ -1171,6 +1172,7 @@ class TestShutil(unittest.TestCase):
|
||||||
|
|
||||||
|
|
||||||
@support.requires_zlib
|
@support.requires_zlib
|
||||||
|
@ -269,7 +269,7 @@ diff --git a/Lib/test/test_spwd.py b/Lib/test/test_spwd.py
|
||||||
diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
|
diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
|
||||||
--- a/Lib/test/test_tarfile.py
|
--- a/Lib/test/test_tarfile.py
|
||||||
+++ b/Lib/test/test_tarfile.py
|
+++ b/Lib/test/test_tarfile.py
|
||||||
@@ -2504,9 +2504,12 @@ def root_is_uid_gid_0():
|
@@ -2509,9 +2509,12 @@ def root_is_uid_gid_0():
|
||||||
import pwd, grp
|
import pwd, grp
|
||||||
except ImportError:
|
except ImportError:
|
||||||
return False
|
return False
|
||||||
|
@ -285,6 +285,26 @@ diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
|
||||||
|
--- a/Lib/test/test_threading.py
|
||||||
|
+++ b/Lib/test/test_threading.py
|
||||||
|
@@ -1249,6 +1249,7 @@ class MiscTestCase(unittest.TestCase):
|
||||||
|
|
||||||
|
|
||||||
|
class InterruptMainTests(unittest.TestCase):
|
||||||
|
+ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build container.')
|
||||||
|
def test_interrupt_main_subthread(self):
|
||||||
|
# Calling start_new_thread with a function that executes interrupt_main
|
||||||
|
# should raise KeyboardInterrupt upon completion.
|
||||||
|
@@ -1260,6 +1261,8 @@ class InterruptMainTests(unittest.TestCase):
|
||||||
|
t.join()
|
||||||
|
t.join()
|
||||||
|
|
||||||
|
+
|
||||||
|
+ @unittest.skipIf(True, 'Keyboard interrupts do not work in the Guix build container.')
|
||||||
|
def test_interrupt_main_mainthread(self):
|
||||||
|
# Make sure that if interrupt_main is called in main thread that
|
||||||
|
# KeyboardInterrupt is raised instantly.
|
||||||
diff --git a/Tools/scripts/run_tests.py b/Tools/scripts/run_tests.py
|
diff --git a/Tools/scripts/run_tests.py b/Tools/scripts/run_tests.py
|
||||||
--- a/Tools/scripts/run_tests.py
|
--- a/Tools/scripts/run_tests.py
|
||||||
+++ b/Tools/scripts/run_tests.py
|
+++ b/Tools/scripts/run_tests.py
|
||||||
|
|
|
@ -76,6 +76,7 @@
|
||||||
(define-module (gnu packages python)
|
(define-module (gnu packages python)
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages bash)
|
#:use-module (gnu packages bash)
|
||||||
#:use-module (gnu packages compression)
|
#:use-module (gnu packages compression)
|
||||||
#:use-module (gnu packages dbm)
|
#:use-module (gnu packages dbm)
|
||||||
|
@ -324,7 +325,7 @@ (define-public python2-called-python
|
||||||
(define-public python-3.7
|
(define-public python-3.7
|
||||||
(package (inherit python-2)
|
(package (inherit python-2)
|
||||||
(name "python")
|
(name "python")
|
||||||
(version "3.7.3")
|
(version "3.7.4")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://www.python.org/ftp/python/"
|
(uri (string-append "https://www.python.org/ftp/python/"
|
||||||
|
@ -335,7 +336,7 @@ (define-public python-3.7
|
||||||
"python-3-search-paths.patch"))
|
"python-3-search-paths.patch"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"066ka8csjwkycqpgyv424d8hhqhfd7r6svsp4sfcvkylci0baq6s"))
|
"0gxiv5617zd7dnqm5k9r4q2188lk327nf9jznwq9j6b8p0s92ygv"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
'(begin
|
||||||
|
@ -344,33 +345,31 @@ (define-public python-3.7
|
||||||
(substitute* "Modules/Setup.dist"
|
(substitute* "Modules/Setup.dist"
|
||||||
;; Link Expat instead of embedding the bundled one.
|
;; Link Expat instead of embedding the bundled one.
|
||||||
(("^#pyexpat.*") "pyexpat pyexpat.c -lexpat\n"))
|
(("^#pyexpat.*") "pyexpat pyexpat.c -lexpat\n"))
|
||||||
|
|
||||||
(for-each delete-file
|
|
||||||
'(;; This test may hang and eventually run out of
|
|
||||||
;; memory on some systems:
|
|
||||||
;; <https://bugs.python.org/issue34587>
|
|
||||||
"Lib/test/test_socket.py"
|
|
||||||
|
|
||||||
;; Delete test that fails on low-memory systems.
|
|
||||||
"Lib/test/test_mmap.py"
|
|
||||||
|
|
||||||
;; These tests fail on AArch64.
|
|
||||||
"Lib/ctypes/test/test_win32.py"
|
|
||||||
"Lib/test/test_fcntl.py"
|
|
||||||
"Lib/test/test_posix.py"))
|
|
||||||
#t))))
|
#t))))
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments python-2)
|
(substitute-keyword-arguments (package-arguments python-2)
|
||||||
((#:make-flags _)
|
((#:make-flags _)
|
||||||
`(list (string-append
|
`(list (string-append
|
||||||
(format #f "TESTOPTS=-j~d" (parallel-job-count))
|
(format #f "TESTOPTS=-j~d" (parallel-job-count))
|
||||||
;; Exclude the following test, which fails as of 3.7.3 (see:
|
;; test_mmap fails on low-memory systems.
|
||||||
;; https://bugs.python.org/issue35998).
|
" --exclude test_mmap"
|
||||||
;; Exclude test_email, which fails with glibc 2.29 and later
|
;; test_socket may hang and eventually run out of memory
|
||||||
;; (see <https://https://bugs.python.org/issue35317>).
|
;; on some systems: <https://bugs.python.org/issue34587>.
|
||||||
" --exclude test_asyncio test_email")))
|
" test_socket"
|
||||||
|
;; XXX: test_ctypes fails on some platforms due to a problem in
|
||||||
|
;; libffi 3.2.1: <https://bugs.python.org/issue23249>.
|
||||||
|
,@(if (string-prefix? "aarch64" (%current-system))
|
||||||
|
'(" test_ctypes")
|
||||||
|
'()))))
|
||||||
((#:phases phases)
|
((#:phases phases)
|
||||||
`(modify-phases ,phases
|
`(modify-phases ,phases
|
||||||
|
(add-before 'check 'set-TZDIR
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
;; test_email requires the Olson time zone database.
|
||||||
|
(setenv "TZDIR"
|
||||||
|
(string-append (assoc-ref inputs "tzdata")
|
||||||
|
"/share/zoneinfo"))
|
||||||
|
#t))
|
||||||
;; Unset SOURCE_DATE_EPOCH while running the test-suite and set it
|
;; Unset SOURCE_DATE_EPOCH while running the test-suite and set it
|
||||||
;; again afterwards. See <https://bugs.python.org/issue34022>.
|
;; again afterwards. See <https://bugs.python.org/issue34022>.
|
||||||
(add-before 'check 'unset-SOURCE_DATE_EPOCH
|
(add-before 'check 'unset-SOURCE_DATE_EPOCH
|
||||||
|
@ -399,6 +398,9 @@ (define-public python-3.7
|
||||||
(find-files out "\\.py$")))
|
(find-files out "\\.py$")))
|
||||||
(list '() '("-O") '("-OO")))
|
(list '() '("-O") '("-OO")))
|
||||||
#t)))))))
|
#t)))))))
|
||||||
|
(native-inputs
|
||||||
|
`(("tzdata" ,tzdata-for-tests)
|
||||||
|
,@(package-native-inputs python-2)))
|
||||||
(native-search-paths
|
(native-search-paths
|
||||||
(list (search-path-specification
|
(list (search-path-specification
|
||||||
(variable "PYTHONPATH")
|
(variable "PYTHONPATH")
|
||||||
|
|
Loading…
Reference in a new issue