%global _empty_manifest_terminate_build 0 Name: python-delocate Version: 0.10.4 Release: 1 Summary: Move macOS dynamic libraries into package License: BSD license URL: http://github.com/matthew-brett/delocate Source0: https://mirrors.nju.edu.cn/pypi/web/packages/12/e8/486f4184dec36659c8ea13bb0a5b8d50196cf04d027e94a19c6cd0c61c6f/delocate-0.10.4.tar.gz BuildArch: noarch Requires: python3-packaging Requires: python3-typing-extensions Requires: python3-machomachomangler Requires: python3-bindepend %description Current Python.org Python and the macOS system Python (``/usr/bin/python``) are both dual architecture binaries. For example:: $ lipo -info /usr/bin/python Architectures in the fat file: /usr/bin/python are: x86_64 arm64e **Note**: you can compile ARM binaries for basic ARM (``arm64``), or to use some extended ARM capabilities (``arm64e``) - see `this SO post `_. Both types of binaries work on Mac M1 and M2 machines, so we will use ``arm64`` to refer to either ``arm64`` or ``arm64e``. The Big Sur macOS Python above has both ``x86_64`` and ``arm64`` (M1) versions fused into one file. Earlier versions of macOS had dual architectures that were 32-bit (``i386``) and 64-bit (``x86_64``). For full compatibility with system and Python.org Python, wheels built for Python.org Python or system Python should have the corresponding architectures — e.g. ``x86_64`` and ``arm64`` versions of the Python extensions and their libraries. It is easy to link Python extensions against single architecture libraries by mistake, and therefore get single architecture extensions and / or libraries. In fact my Scipy wheel is one such example, because I inadvertently linked against the Homebrew libraries, which were ``x86_64`` only. To check this you can use the ``--require-archs`` flag:: $ delocate-wheel --require-archs=intel scipy-0.14.0-cp34-cp34m-macosx_10_6_intel.whl Traceback (most recent call last): File "/Users/mb312/.virtualenvs/delocate/bin/delocate-wheel", line 77, in main() File "/Users/mb312/.virtualenvs/delocate/bin/delocate-wheel", line 69, in main check_verbose=opts.verbose) File "/Users/mb312/.virtualenvs/delocate/lib/python2.7/site-packages/delocate/delocating.py", line 477, in delocate_wheel "Some missing architectures in wheel") delocate.delocating.DelocationError: Some missing architectures in wheel Notice that this command was using an earlier version of Delocate that supported Python 2; we now support Python 3 only. The ``intel`` argument to ``--require-arch`` above requires dual 32- and 64- bit architecture extensions and libraries. You can see which extensions are at fault by adding the ``-v`` (verbose) flag:: $ delocate-wheel -w fixed_wheels --require-archs=intel -v scipy-0.14.0-cp34-cp34m-macosx_10_6_intel.whl Fixing: scipy-0.14.0-cp34-cp34m-macosx_10_6_intel.whl Required arch i386 missing from /usr/local/Cellar/gfortran/4.8.2/gfortran/lib/libgfortran.3.dylib Required arch i386 missing from /usr/local/Cellar/gfortran/4.8.2/gfortran/lib/libquadmath.0.dylib Required arch i386 missing from scipy/fftpack/_fftpack.so Required arch i386 missing from scipy/fftpack/convolve.so Required arch i386 missing from scipy/integrate/_dop.so I need to rebuild this wheel to link with dual-architecture libraries. %package -n python3-delocate Summary: Move macOS dynamic libraries into package Provides: python-delocate BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-delocate Current Python.org Python and the macOS system Python (``/usr/bin/python``) are both dual architecture binaries. For example:: $ lipo -info /usr/bin/python Architectures in the fat file: /usr/bin/python are: x86_64 arm64e **Note**: you can compile ARM binaries for basic ARM (``arm64``), or to use some extended ARM capabilities (``arm64e``) - see `this SO post `_. Both types of binaries work on Mac M1 and M2 machines, so we will use ``arm64`` to refer to either ``arm64`` or ``arm64e``. The Big Sur macOS Python above has both ``x86_64`` and ``arm64`` (M1) versions fused into one file. Earlier versions of macOS had dual architectures that were 32-bit (``i386``) and 64-bit (``x86_64``). For full compatibility with system and Python.org Python, wheels built for Python.org Python or system Python should have the corresponding architectures — e.g. ``x86_64`` and ``arm64`` versions of the Python extensions and their libraries. It is easy to link Python extensions against single architecture libraries by mistake, and therefore get single architecture extensions and / or libraries. In fact my Scipy wheel is one such example, because I inadvertently linked against the Homebrew libraries, which were ``x86_64`` only. To check this you can use the ``--require-archs`` flag:: $ delocate-wheel --require-archs=intel scipy-0.14.0-cp34-cp34m-macosx_10_6_intel.whl Traceback (most recent call last): File "/Users/mb312/.virtualenvs/delocate/bin/delocate-wheel", line 77, in main() File "/Users/mb312/.virtualenvs/delocate/bin/delocate-wheel", line 69, in main check_verbose=opts.verbose) File "/Users/mb312/.virtualenvs/delocate/lib/python2.7/site-packages/delocate/delocating.py", line 477, in delocate_wheel "Some missing architectures in wheel") delocate.delocating.DelocationError: Some missing architectures in wheel Notice that this command was using an earlier version of Delocate that supported Python 2; we now support Python 3 only. The ``intel`` argument to ``--require-arch`` above requires dual 32- and 64- bit architecture extensions and libraries. You can see which extensions are at fault by adding the ``-v`` (verbose) flag:: $ delocate-wheel -w fixed_wheels --require-archs=intel -v scipy-0.14.0-cp34-cp34m-macosx_10_6_intel.whl Fixing: scipy-0.14.0-cp34-cp34m-macosx_10_6_intel.whl Required arch i386 missing from /usr/local/Cellar/gfortran/4.8.2/gfortran/lib/libgfortran.3.dylib Required arch i386 missing from /usr/local/Cellar/gfortran/4.8.2/gfortran/lib/libquadmath.0.dylib Required arch i386 missing from scipy/fftpack/_fftpack.so Required arch i386 missing from scipy/fftpack/convolve.so Required arch i386 missing from scipy/integrate/_dop.so I need to rebuild this wheel to link with dual-architecture libraries. %package help Summary: Development documents and examples for delocate Provides: python3-delocate-doc %description help Current Python.org Python and the macOS system Python (``/usr/bin/python``) are both dual architecture binaries. For example:: $ lipo -info /usr/bin/python Architectures in the fat file: /usr/bin/python are: x86_64 arm64e **Note**: you can compile ARM binaries for basic ARM (``arm64``), or to use some extended ARM capabilities (``arm64e``) - see `this SO post `_. Both types of binaries work on Mac M1 and M2 machines, so we will use ``arm64`` to refer to either ``arm64`` or ``arm64e``. The Big Sur macOS Python above has both ``x86_64`` and ``arm64`` (M1) versions fused into one file. Earlier versions of macOS had dual architectures that were 32-bit (``i386``) and 64-bit (``x86_64``). For full compatibility with system and Python.org Python, wheels built for Python.org Python or system Python should have the corresponding architectures — e.g. ``x86_64`` and ``arm64`` versions of the Python extensions and their libraries. It is easy to link Python extensions against single architecture libraries by mistake, and therefore get single architecture extensions and / or libraries. In fact my Scipy wheel is one such example, because I inadvertently linked against the Homebrew libraries, which were ``x86_64`` only. To check this you can use the ``--require-archs`` flag:: $ delocate-wheel --require-archs=intel scipy-0.14.0-cp34-cp34m-macosx_10_6_intel.whl Traceback (most recent call last): File "/Users/mb312/.virtualenvs/delocate/bin/delocate-wheel", line 77, in main() File "/Users/mb312/.virtualenvs/delocate/bin/delocate-wheel", line 69, in main check_verbose=opts.verbose) File "/Users/mb312/.virtualenvs/delocate/lib/python2.7/site-packages/delocate/delocating.py", line 477, in delocate_wheel "Some missing architectures in wheel") delocate.delocating.DelocationError: Some missing architectures in wheel Notice that this command was using an earlier version of Delocate that supported Python 2; we now support Python 3 only. The ``intel`` argument to ``--require-arch`` above requires dual 32- and 64- bit architecture extensions and libraries. You can see which extensions are at fault by adding the ``-v`` (verbose) flag:: $ delocate-wheel -w fixed_wheels --require-archs=intel -v scipy-0.14.0-cp34-cp34m-macosx_10_6_intel.whl Fixing: scipy-0.14.0-cp34-cp34m-macosx_10_6_intel.whl Required arch i386 missing from /usr/local/Cellar/gfortran/4.8.2/gfortran/lib/libgfortran.3.dylib Required arch i386 missing from /usr/local/Cellar/gfortran/4.8.2/gfortran/lib/libquadmath.0.dylib Required arch i386 missing from scipy/fftpack/_fftpack.so Required arch i386 missing from scipy/fftpack/convolve.so Required arch i386 missing from scipy/integrate/_dop.so I need to rebuild this wheel to link with dual-architecture libraries. %prep %autosetup -n delocate-0.10.4 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-delocate -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Apr 11 2023 Python_Bot - 0.10.4-1 - Package Spec generated