#123 Recommend libxcrypt-compat to make manylinux1 wheels work
Closed 2 months ago by pviktori. Opened 2 months ago by pviktori.
rpms/ pviktori/python3 libxcrypt-compat  into  master

file modified
+16 -1

@@ -17,7 +17,7 @@ 

  #global prerel ...

  %global upstream_version %{general_version}%{?prerel}

  Version: %{general_version}%{?prerel:~%{prerel}}

- Release: 1%{?dist}

+ Release: 2%{?dist}

  License: Python

  

  

@@ -342,6 +342,18 @@ 

  Recommends: python3-setuptools

  Recommends: python3-pip

  

+ # Some manylinux1 wheels need libcrypt.so.1.

+ # Manylinux1, a common (as of 2019) platform tag for binary wheels, relies

+ # on a glibc version that included ancient crypto functions, which were

+ # moved to libxcrypt and then removed in:

+ #  https://fedoraproject.org/wiki/Changes/FullyRemoveDeprecatedAndUnsafeFunctionsFromLibcrypt

+ # The manylinux1 standard assumed glibc would keep ABI compatibility,

+ # but that's only the case if libcrypt.so.1 (libxcrypt-compat) is around.

+ # This should be solved in the next manylinux standard (but it may be

+ # a long time until manylinux1 is phased out).

+ # See: https://github.com/pypa/manylinux/issues/305

+ Recommends: libxcrypt-compat

I'd rather recommend libcrypt.so.1 - however that would need ifing for 64bit (it only recommends libcrypt.so.1()(64bit) there). Keeping libxcrypt-compat is probably easier to read. OTOH consider adding %{?_isa}.

+ 

  # This prevents ALL subpackages built from this spec to require

  # /usr/bin/python3*. Granularity per subpackage is impossible.

  # It's intended for the libs package not to drag in the interpreter, see

@@ -1506,6 +1518,9 @@ 

  # ======================================================

  

  %changelog

+ * Wed Jul 10 2019 Petr Viktorin <pviktori@redhat.com> - 3.7.4-2

+ - Recommend libxcrypt-compat to make manylinux1 wheels work

+ 

  * Tue Jul 09 2019 Miro Hrončok <mhroncok@redhat.com> - 3.7.4-1

  - Update to 3.7.4

  

See the comment.
I'm not sure at all if we want to do this, but Fedora is a potential place to fix the problem.

I'd rather recommend libcrypt.so.1 - however that would need ifing for 64bit (it only recommends libcrypt.so.1()(64bit) there). Keeping libxcrypt-compat is probably easier to read. OTOH consider adding %{?_isa}.

Would it make sense to add the recommendation on python3-pip rather than python3 directly? python3 itself doesn't use wheel package, it's more a thing related to wheel/pip, no?

Since users use pip to install the manylinux wheels, that actually makes sense.

Some notes:

  • this probably only makes sense on ix86 and x86_64
  • if done on pip (noarch), it can be ifed on runtime
  • if done on pip, it needs to be added to python3-pip, python2-pip, python-pip-wheel

Pull-Request has been closed by pviktori

2 months ago