Subject: python-3/fixed and python-minimal test_socket.py

From: Nam Nguyen <[email-masked]>
Date: Tue, 30 Oct 2018 22:24:21 -0700

Hi,

python has a memory leak in the test for test_socket.py, and it was
fixed in commit 90aeaee861845142843a0f988fa4ff016c723cdb.

https://git.savannah.gnu.org/cgit/guix.git/commit/?id=90aeaee861845142843a0f988fa4ff016c723cdb

More information from IRC:
----8<------------------------------------------------------------
<mbakke> There is a bug in Python 3 which causes the test suite to run
    out of memory on recent kernels:
    https://bugs.python.org/issue34587
<mbakke> Unfortunately the only workaround I can think of is removing
    "/tmp/guix-build-python-3.6.5.drv-0/Lib/test/test_socket.py" some
    time during the build (but before the check phase).
----8<------------------------------------------------------------

However, python-minimal still runs test_socket, causing a memory
leak. Is it possible to change python-minimal so it uses python-3/fixed?
I was able to successfully build python-minimal by appending the fix to
python-minimal, as below. I do not know how (replacement python-3/fixed)
interacts with python-minimal.

----8<------------------------------------------------------------
(define-public python-minimal
  (package/inherit python
    (name "python-minimal")
    (outputs '("out"))

    ;; 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 `(("libffi" ,libffi)
              ("openssl" ,openssl)
              ("zlib" ,zlib)))
    (arguments
     (substitute-keyword-arguments (package-arguments python-3)
       ((#:phases phases)
        `(modify-phases ,phases
           (add-after 'unpack 'delete-broken-test
             (lambda _
               ;; Delete test which fails on recent kernels:
               ;; <https://bugs.python.org/issue34587>.
               (delete-file "Lib/test/test_socket.py")
               #t))))))))
----8<------------------------------------------------------------