summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-delocate.spec199
-rw-r--r--sources1
3 files changed, 201 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..46b65c5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/delocate-0.10.4.tar.gz
diff --git a/python-delocate.spec b/python-delocate.spec
new file mode 100644
index 0000000..23cda75
--- /dev/null
+++ b/python-delocate.spec
@@ -0,0 +1,199 @@
+%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
+<https://stackoverflow.com/questions/52624308/xcode-arm64-vs-arm64e>`_. 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 <module>
+ 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
+<https://stackoverflow.com/questions/52624308/xcode-arm64-vs-arm64e>`_. 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 <module>
+ 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
+<https://stackoverflow.com/questions/52624308/xcode-arm64-vs-arm64e>`_. 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 <module>
+ 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 <Python_Bot@openeuler.org> - 0.10.4-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..236ebfc
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+427a6bbb2d847d19acbad98c83d8177f delocate-0.10.4.tar.gz