| |
@@ -7,29 +7,34 @@
|
| |
%_monodir %{_prefix}/lib/mono
|
| |
%_monogacdir %{_monodir}/gac
|
| |
|
| |
- # A directory for rpm macros
|
| |
- %rpmmacrodir /usr/lib/rpm/macros.d
|
| |
-
|
| |
- # Upstream RPM has this in Fedora, obsoleting the one above.
|
| |
- %_rpmmacrodir /usr/lib/rpm/macros.d
|
| |
-
|
| |
# Bash completions; not in bash to not intefere with install ordering
|
| |
- %bash_completion_dir /usr/share/bash-completion/completions/
|
| |
+ %bash_completion_dir %{_datadir}/bash-completion/completions/
|
| |
|
| |
# Use the non-underscored Python macros to refer to Python in spec, etc.
|
| |
%python2 %__python2
|
| |
- %python3 %__python3
|
| |
|
| |
- # Simplified version backported from Fedora
|
| |
- %py_shebang_fix %{expand:/usr/bin/pathfix.py -pni "%{__python} %{py_shbang_opts}"}
|
| |
- %py2_shebang_fix %{expand:/usr/bin/pathfix.py -pni "%{__python2} %{py2_shbang_opts}"}
|
| |
- %py3_shebang_fix %{expand:/usr/bin/pathfix.py -pni "%{__python3} %{py3_shbang_opts}"}
|
| |
+ # This macro is copied here from https://git.centos.org/rpms/python-rpm-macros/pull-request/1
|
| |
+ # and is needed for the overrides in macros.zzz-epel-override.
|
| |
+ # It will be removed once it lands in RHEL.
|
| |
+ # https://bugzilla.redhat.com/show_bug.cgi?id=2090007
|
| |
+ #
|
| |
+ # RHEL 9+ and Fedora compatibility macro
|
| |
+ # Only use in macro backports, not intended to be used in spec files!
|
| |
+ # In the future, the %%python3_pkgversion macro has a dot, e.g. 3.9 or 3.11
|
| |
+ # However, in RHEL 8 at least, it does not, e.g. 38, 39
|
| |
+ # This is a helpful macro that determines the proper "Python version" string with dot
|
| |
+ # from %%python3_pkgversion without actually having Python installed.
|
| |
+ # For values other than 3X, it should expand to %%python3_pkgversion unchanged.
|
| |
+ # Examples of %%python3_pkgversion -> %%_python3_pkgversion_with_dot:
|
| |
+ # 3 -> 3
|
| |
+ # 38 -> 3.8
|
| |
+ # 39 -> 3.9
|
| |
+ # 310 -> 3.10
|
| |
+ # 3.12 -> 3.12
|
| |
+ # 4 -> 4
|
| |
+ # 412 -> 412
|
| |
+ %_python3_pkgversion_with_dot %{lua:print((rpm.expand("%python3_pkgversion"):gsub('^3(%d)', '3.%1')))}
|
| |
|
| |
- # https://fedoraproject.org/wiki/Changes/Python_Upstream_Architecture_Names
|
| |
- %python_platform_triplet %(%{__python} -Esc "import sysconfig; print(sysconfig.get_config_var('MULTIARCH'))")
|
| |
- %python_ext_suffix %(%{__python} -Esc "import sysconfig; print(sysconfig.get_config_var('EXT_SUFFIX'))")
|
| |
- %python3_platform_triplet %(%{__python3} -Ic "import sysconfig; print(sysconfig.get_config_var('MULTIARCH'))")
|
| |
- %python3_ext_suffix %(%{__python3} -Ic "import sysconfig; print(sysconfig.get_config_var('EXT_SUFFIX'))")
|
| |
|
| |
# Users can use %%python only if they redefined %%__python (e.g. to %%__python3)
|
| |
%python() %{lua:\
|
| |
@@ -41,47 +46,6 @@
|
| |
end\
|
| |
}
|
| |
|
| |
- # This only supports Python 3.5+ and will never work with Python 2.
|
| |
- # Hence, it has no Python version in the name.
|
| |
- %pycached() %{lua:
|
| |
- path = rpm.expand("%{?*}")
|
| |
- if (string.sub(path, "-3") ~= ".py") then
|
| |
- rpm.expand("%{error:%%pycached can only be used with paths explicitly ending with .py}")
|
| |
- else
|
| |
- print(path)
|
| |
- pyminor = path:match("/python3.(%d+)/") or "*"
|
| |
- dirname = path:match("(.*/)")
|
| |
- modulename = path:match(".*/([^/]+).py")
|
| |
- print("\\n" .. dirname .. "__pycache__/" .. modulename .. ".cpython-3" .. pyminor .. "{,.opt-?}.pyc")
|
| |
- end
|
| |
- }
|
| |
-
|
| |
- # This is intended for Python 3 only, hence also no Python version in the name.
|
| |
- %__pytest /usr/bin/pytest-3
|
| |
- %pytest %{expand:\\\
|
| |
- CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\\\
|
| |
- PATH="%{buildroot}%{_bindir}:$PATH"\\\
|
| |
- PYTHONPATH="${PYTHONPATH:-%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}}"\\\
|
| |
- PYTHONDONTWRITEBYTECODE=1\\\
|
| |
- %__pytest}
|
| |
-
|
| |
- %py_provides() %{lua:
|
| |
- local name = rpm.expand('%1')
|
| |
- if name == '%1' then
|
| |
- rpm.expand('%{error:%%py_provides requires at least 1 argument, the name to provide}')
|
| |
- end
|
| |
- local evr = rpm.expand('%2')
|
| |
- if evr == '%2' then
|
| |
- evr = rpm.expand('%{?epoch:%{epoch}:}%{version}-%{release}')
|
| |
- end
|
| |
- print('Provides: ' .. name .. ' = ' .. evr .. '\\n')
|
| |
- -- NB: dash needs to be escaped!
|
| |
- if name:match('^python3%-') then
|
| |
- replaced = name:gsub('^python3%-', 'python-')
|
| |
- print('Provides: ' .. replaced .. ' = ' .. evr .. '\\n')
|
| |
- end
|
| |
- }
|
| |
-
|
| |
# With $PATH and $PYTHONPATH set to the %%buildroot,
|
| |
# try to import the given Python module(s).
|
| |
# Useful as a smoke test in %%check when running tests is not feasible.
|
| |
@@ -138,6 +102,6 @@
|
| |
%python_wheel_pkg_prefix python%{?rhel:%{!?eln:%{python3_pkgversion}}}
|
| |
%python_wheel_dir %{_datadir}/%{python_wheel_pkg_prefix}-wheels
|
| |
|
| |
- # qt5 macro removed from RHEL8 but needed to ensure qtwebengine, and
|
| |
- # it's dependencies build on supported arches.
|
| |
+ # qt5 macro removed from RHEL8 but needed to ensure qtwebengine, and
|
| |
+ # its dependencies build on supported arches.
|
| |
%qt5_qtwebengine_arches %{ix86} x86_64 %{arm} aarch64 mips mipsel mips64el
|
| |
When building EPEL packages for non-default Python versions, it is necessary to manually add
Requires: python%{python3_pkgversion}-rpm-macros
or%global __python3 /usr/bin/python3.X
. Doing so is not necessary with the default Python version, becausepython3-devel
pulls inpython36-rpm-macros
. This PR makes doing this unnecessary for all versions of Python 3.I was going to add
instead, but then I realized that the python3X-rpm-macros packages conflict with each other, and I didn't want to create implicit conflicts between the
python3X-devel
packages. However, what I'm proposing may lead to confusing behavior if multiplepython3X-devel
packages are installed. Your feedback is appreciated.CC: @churchyard and @orion