%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
* Sun Apr 23 2023 Python_Bot <Python_Bot@openeuler.org> - 0.10.4-1
- Package Spec generated