[MacPorts] #59410: pypy @7.2.0: The _hashlib module is not available (was: pypy @7.2.0: Doesn't install on MacOS < 10.14)

MacPorts noreply at macports.org
Sun Nov 3 20:23:21 UTC 2019


#59410: pypy @7.2.0: The _hashlib module is not available
----------------------+----------------------
  Reporter:  rbubley  |      Owner:  danchr
      Type:  defect   |     Status:  assigned
  Priority:  Normal   |  Milestone:
 Component:  ports    |    Version:
Resolution:           |   Keywords:
      Port:  pypy     |
----------------------+----------------------

Comment (by ryandesign):

 I am able to reproduce this problem when building on my High Sierra
 machine with trace mode.

 I don't see anything in the log mentioning a problem with ncurses, but I
 do see this at the end of the build phase:

 {{{
 /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_pypy/pypy/work/pypy2.7-v7.2.0-src
 /lib-python/2.7/hashlib.py:146: RuntimeWarning: The _hashlib module is not
 available, falling back to a much slower implementation (No module named
 _pypy_openssl)
   RuntimeWarning)
 * _ssl_build.py
 fetching archive https://www.openssl.org/source/openssl-1.1.1c.tar.gz
 Traceback (most recent call last):
   File
 "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_pypy/pypy/work/pypy2.7-v7.2.0-src/pypy/tool/build_cffi_imports.py",
 line 227, in <module>
     rebuild=args.rebuild)
   File
 "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_pypy/pypy/work/pypy2.7-v7.2.0-src/pypy/tool/build_cffi_imports.py",
 line 157, in create_cffi_import_libraries
     status, stdout, stderr = _build_dependency(key)
   File
 "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_pypy/pypy/work/pypy2.7-v7.2.0-src/pypy/tool/build_cffi_imports.py",
 line 91, in _build_dependency
     urlretrieve(url, archive)
   File
 "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_pypy/pypy/work/pypy2.7-v7.2.0-src
 /lib-python/2.7/urllib.py", line 98, in urlretrieve
     return opener.retrieve(url, filename, reporthook, data)
   File
 "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_pypy/pypy/work/pypy2.7-v7.2.0-src
 /lib-python/2.7/urllib.py", line 245, in retrieve
     fp = self.open(url, data)
   File
 "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_pypy/pypy/work/pypy2.7-v7.2.0-src
 /lib-python/2.7/urllib.py", line 210, in open
     return self.open_unknown(fullurl, data)
   File
 "/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_pypy/pypy/work/pypy2.7-v7.2.0-src
 /lib-python/2.7/urllib.py", line 222, in open_unknown
     raise IOError, ('url error', 'unknown url type', type)
 IOError: [Errno url error] unknown url type: 'https'
 }}}

 So it failed to download openssl, but we wouldn't want it to do that
 anyway, and it's only doing that because the _hashlib module is not
 available. Looking at the contents of python27 I see that it contains
 _hashlib, but looking at the contents of pypy-bootstrap I see that it does
 not. I don't know how to give pypy-bootstrap a _hashlib module.

 This port uses pypy-bootstrap to build on Darwin x86_64 systems and
 python27 to build on other systems. Unless a previous version of pypy is
 installed and trace mode is not being used, in which case it uses that.

 This is kind of the problem with ports that do different things depending
 on what's already on the user's system. Presumably the maintainer didn't
 notice this because he had a previous version installed and wasn't using
 trace mode. It would be more [wiki:ReproducibleBuilds consistent] to
 always build the same way. That would ensure there are no surprises since
 all users will build the port the same way that the maintainer built the
 port.

-- 
Ticket URL: <https://trac.macports.org/ticket/59410#comment:3>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list