1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
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
* Sun Apr 23 2023 Python_Bot <Python_Bot@openeuler.org> - 0.10.4-1
- Package Spec generated
|