- Switch from %primary_interpreter to prjconf-defined

%primary_python (gh#openSUSE/python-rpm-macros#127).

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python39?expand=0&rev=110
This commit is contained in:
Matej Cepl 2022-07-21 14:23:09 +00:00 committed by Git OBS Bridge
parent 6f0c4c85a1
commit d57ee42f22
2 changed files with 30 additions and 29 deletions

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Thu Jul 21 14:19:55 UTC 2022 - Matej Cepl <mcepl@suse.com>
- Switch from %primary_interpreter to prjconf-defined
%primary_python (gh#openSUSE/python-rpm-macros#127).
-------------------------------------------------------------------
Thu Jun 9 16:43:30 UTC 2022 - Matej Cepl <mcepl@suse.com>

View File

@ -35,6 +35,9 @@
%bcond_with base
%bcond_without general
%endif
%define python_pkg_name python39
%define _version %(c=%{version}; echo ${c/[a-z]*/})
%define tar_suffix %(c=%{_version}; echo ${c#%{_version}})
%define python_version %(c=%{_version}; echo ${c:0:3})
@ -48,14 +51,6 @@
%else
%define tarversion %{version}
%endif
%define python_pkg_name python39
# Will provide the python3-* provides
# Will do the /usr/bin/python3 and all the core links
%if 0%{?sle_version} || 0%{?suse_version} >= 1550
%define primary_interpreter 0
%else
%define primary_interpreter 1
%endif
# We don't process beta signs well
%define folderversion 3.9.13
%define tarname Python-%{tarversion}
@ -213,7 +208,7 @@ Requires: %{python_pkg_name}-base = %{version}
Recommends: %{python_pkg_name}-curses
Recommends: %{python_pkg_name}-dbm
Recommends: %{python_pkg_name}-pip
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
Provides: python3 = %{python_version}
%endif
%endif
@ -235,7 +230,7 @@ development environment (python3-idle).
%package -n %{python_pkg_name}-tk
Summary: TkInter, a Python Tk Interface
Requires: %{python_pkg_name} = %{version}
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
Provides: python3-tk = %{version}
%endif
@ -245,7 +240,7 @@ Python interface to Tk. Tk is the GUI toolkit that comes with Tcl.
%package -n %{python_pkg_name}-curses
Summary: Python Interface to the (N)Curses Library
Requires: %{python_pkg_name} = %{version}
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
Provides: python3-curses
%endif
@ -256,7 +251,7 @@ Console User Interface.
%package -n %{python_pkg_name}-dbm
Summary: Python Interface to the GDBM Library
Requires: %{python_pkg_name} = %{version}
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
Provides: python3-dbm
%endif
@ -268,7 +263,7 @@ the GNU implementation GDBM.
Summary: An Integrated Development Environment for Python
Requires: %{python_pkg_name} = %{version}
Requires: %{python_pkg_name}-tk
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
Provides: python3-idle = %{version}
%endif
@ -281,7 +276,7 @@ a debugger.
%package -n %{python_pkg_name}-doc
Summary: Package Documentation for Python 3
Enhances: %{python_pkg_name} = %{python_version}
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
Provides: python3-doc = %{version}
%endif
@ -292,7 +287,7 @@ Python, and Macintosh Module Reference in HTML format.
%package -n %{python_pkg_name}-doc-devhelp
Summary: Additional Package Documentation for Python 3 in devhelp format
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
Provides: python3-doc-devhelp = %{version}
%endif
@ -316,7 +311,7 @@ Provides: %{python_pkg_name}-asyncio = %{version}
Provides: %{python_pkg_name}-typing = %{version}
# python3-xml was merged into python3, now moved into -base
Provides: %{python_pkg_name}-xml = %{version}
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
Provides: python3-asyncio = %{version}
Obsoletes: python3-asyncio < %{version}
Provides: python3-base = %{version}
@ -343,7 +338,7 @@ Summary: Python Utility and Demonstration Scripts
Requires: %{python_pkg_name}-base = %{version}
Provides: %{python_pkg_name}-2to3 = %{version}
Provides: %{python_pkg_name}-demo = %{version}
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
Provides: python3-2to3 = %{version}
Provides: python3-demo = %{version}
Provides: python3-tools = %{version}
@ -358,7 +353,7 @@ and a set of demonstration programs.
%package -n %{python_pkg_name}-devel
Summary: Include Files and Libraries Mandatory for Building Python Modules
Requires: %{python_pkg_name}-base = %{version}
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
Provides: python3-devel = %{version}
%endif
@ -377,7 +372,7 @@ package up to version 2.2.2.
Summary: Unit tests for Python and its standard library
Requires: %{python_pkg_name} = %{version}
Requires: %{python_pkg_name}-tk = %{version}
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
Provides: python3-testsuite = %{version}
%endif
@ -424,7 +419,7 @@ other applications.
# drop Autoconf version requirement
sed -i 's/^AC_PREREQ/dnl AC_PREREQ/' configure.ac
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
# fix shebangs - convert /usr/local/bin/python and /usr/bin/env/python to /usr/bin/python3
for dir in Lib Tools; do
# find *.py, filter to files that contain bad shebangs
@ -670,7 +665,7 @@ rm -fv %{buildroot}%{dynlib nis}
ln -sf python%{python_version} %{buildroot}%{_bindir}/python3
# decide to ship python3 or just python3.X
%if !%{primary_interpreter}
%if "%{python_pkg_name}" != "%{primary_python}"
# base
rm %{buildroot}%{_bindir}/python3
rm %{buildroot}%{_bindir}/pydoc3
@ -688,7 +683,7 @@ ln -s ../../libpython%{python_abi}.so %{buildroot}%{_libdir}/python%{python_vers
rm %{buildroot}%{_bindir}/idle3*
# delete the generic 2to3 binary if we are not primary
%if !%{primary_interpreter}
%if "%{python_pkg_name}" != "%{primary_python}"
rm %{buildroot}%{_bindir}/2to3
%endif
@ -718,7 +713,7 @@ install -m 755 -D Tools/gdb/libpython.py %{buildroot}%{_datadir}/gdb/auto-load/%
#cp Makefile Makefile.pre.in Makefile.pre $RPM_BUILD_ROOT%{sitedir}/config-%{python_abi}/
# RPM macros
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d/
install -m 644 %{SOURCE7} %{buildroot}%{_rpmconfigdir}/macros.d/ # macros.python3
%endif
@ -820,7 +815,7 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo
%files -n %{python_pkg_name}-tools
%defattr(644, root, root, 755)
%{sitedir}/turtledemo
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
%{_bindir}/2to3
%endif
%attr(755, root, root)%{_bindir}/2to3-%{python_version}
@ -829,7 +824,7 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo
%files -n %{python_pkg_name}-devel
%defattr(644, root, root, 755)
%{_libdir}/libpython%{python_abi}.so
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
%{_libdir}/libpython3.so
%endif
%{_libdir}/pkgconfig/*
@ -837,7 +832,7 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo
%{sitedir}/config-%{python_abi}-*
%defattr(755, root, root)
%{_bindir}/python%{python_abi}-config
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
%{_bindir}/python3-config
%endif
# Own these directories to not depend on gdb
@ -870,14 +865,14 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo
%doc %{_docdir}/%{name}/README.rst
%license LICENSE
%doc %{_docdir}/%{name}/README.SUSE
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
%{_mandir}/man1/python3.1%{?ext_man}
%endif
%{_mandir}/man1/python%{python_version}.1%{?ext_man}
# license text, not a doc because the code can use it at run-time
%{sitedir}/LICENSE.txt
# RPM macros
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
%{_rpmconfigdir}/macros.d/macros.python3
%endif
# binary parts
@ -982,7 +977,7 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo
%{sitedir}/_import_failed
%{sitedir}/site-packages/zzzz-import-failed-hooks.pth
# symlinks
%if %{primary_interpreter}
%if "%{python_pkg_name}" == "%{primary_python}"
%{_bindir}/python3
%{_bindir}/pydoc3
%endif