Compare commits

...

2 Commits

Author SHA1 Message Date
Miro Hrončok 25c078cff5 Recommend python3-tkinter when tk is installed
The tkinter module is part of the Python's standard library, however it is in
a separate subpackage to save an unwanted dependency on tk.

When tk is installed, we recommend the subpackage to provide more upstream-like
experience, but still provide a way out.
2019-11-28 15:45:05 +01:00
Tomas Orsava a50a780039 New bcond main_python
The bcond flatpackage assumed that if building *without* flatpackage,
that we want to build the main Python for the distribution. However, in
some instances we want a non-flatpackage build of Python that is *not*
the main Python in the distro.
Therefore I have split the main-Python setting into its own bcond.
2019-11-26 15:34:21 +00:00
1 changed files with 44 additions and 10 deletions

View File

@ -17,7 +17,7 @@ URL: https://www.python.org/
#global prerel ... #global prerel ...
%global upstream_version %{general_version}%{?prerel} %global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}} Version: %{general_version}%{?prerel:~%{prerel}}
Release: 1%{?dist} Release: 2%{?dist}
License: Python License: Python
@ -30,12 +30,21 @@ License: Python
# Flat package, i.e. python36, python37, python38 for tox etc. # Flat package, i.e. python36, python37, python38 for tox etc.
# warning: changes some other defaults # WARNING: This also influences the main_python bcond below.
# in Fedora, never turn this on for the python3 package # in Fedora, never turn this on for the python3 package
# and always keep it on for python37 etc. # and always keep it on for python37 etc.
# WARNING: This does not change the package name and summary above # WARNING: This does not change the package name and summary above.
%bcond_with flatpackage %bcond_with flatpackage
# Main Python, i.e. whether this is the main Python version in the distribution
# that owns /usr/bin/python3 and other unique paths
# Default: if this is a flatpackage -> it is not the main Python
%if %{with flatpackage}
%bcond_with main_python
%else
%bcond_without main_python
%endif
# When bootstrapping python3, we need to build setuptools. # When bootstrapping python3, we need to build setuptools.
# but setuptools BR python3-devel and that brings in python3-rpm-generators; # but setuptools BR python3-devel and that brings in python3-rpm-generators;
# python3-rpm-generators needs python3-setuptools, so we cannot have it yet. # python3-rpm-generators needs python3-setuptools, so we cannot have it yet.
@ -311,12 +320,14 @@ Provides: python%{pyshortver} = %{version}-%{release}
# replace python36-3.6.2. # replace python36-3.6.2.
Obsoletes: python%{pyshortver} Obsoletes: python%{pyshortver}
%if %{with main_python}
# https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_package # https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_package
# https://fedoraproject.org/wiki/Changes/Python_means_Python3 # https://fedoraproject.org/wiki/Changes/Python_means_Python3
# We recommend /usr/bin/python so users get it by default # We recommend /usr/bin/python so users get it by default
# Versioned recommends are problematic, and we know that the package requires # Versioned recommends are problematic, and we know that the package requires
# python3 back with fixed version, so we just use the path here: # python3 back with fixed version, so we just use the path here:
Recommends: %{_bindir}/python Recommends: %{_bindir}/python
%endif
# In Fedora 31, /usr/bin/pydoc was moved here from Python 2. # In Fedora 31, /usr/bin/pydoc was moved here from Python 2.
# Ideally we'd have an explicit conflict with "/usr/bin/pydoc < 3", # Ideally we'd have an explicit conflict with "/usr/bin/pydoc < 3",
@ -358,6 +369,7 @@ Packages containing additional libraries for Python are generally named with
the "%{name}-" prefix. the "%{name}-" prefix.
%if %{with main_python}
# https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_package # https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_package
# https://fedoraproject.org/wiki/Changes/Python_means_Python3 # https://fedoraproject.org/wiki/Changes/Python_means_Python3
%package -n python-unversioned-command %package -n python-unversioned-command
@ -373,6 +385,8 @@ Provides: python = %{version}-%{release}
%description -n python-unversioned-command %description -n python-unversioned-command
This package contains /usr/bin/python - the "python" command that runs Python 3. This package contains /usr/bin/python - the "python" command that runs Python 3.
%endif # with main_python
%package libs %package libs
Summary: Python runtime libraries Summary: Python runtime libraries
@ -393,6 +407,11 @@ Provides: bundled(python3-setuptools) = 41.2.0
# See https://bugzilla.redhat.com/show_bug.cgi?id=1547131 # See https://bugzilla.redhat.com/show_bug.cgi?id=1547131
Recommends: %{name}%{?_isa} = %{version}-%{release} Recommends: %{name}%{?_isa} = %{version}-%{release}
# tkinter is part of the standard library,
# but it is torn out to save an unwanted dependency on tk and X11.
# we recommend it when tk is already installed (for better UX)
Recommends: (%{name}-tkinter%{?_isa} = %{version}-%{release} if tk%{?_isa})
# https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_package # https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_package
# In Fedora 31, several "unversioned" files like /usr/bin/pydoc and all the # In Fedora 31, several "unversioned" files like /usr/bin/pydoc and all the
# "unversioned" provides were moved from python2 to python3. # "unversioned" provides were moved from python2 to python3.
@ -842,7 +861,7 @@ install -d -m 0755 %{buildroot}%{pylibdir}/site-packages/__pycache__
install -d -m 0755 %{buildroot}%{_prefix}/lib/python%{pybasever}/site-packages/__pycache__ install -d -m 0755 %{buildroot}%{_prefix}/lib/python%{pybasever}/site-packages/__pycache__
%endif %endif
%if %{without flatpackage} %if %{with main_python}
# add idle3 to menu # add idle3 to menu
install -D -m 0644 Lib/idlelib/Icons/idle_16.png %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/idle3.png install -D -m 0644 Lib/idlelib/Icons/idle_16.png %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/idle3.png
install -D -m 0644 Lib/idlelib/Icons/idle_32.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/idle3.png install -D -m 0644 Lib/idlelib/Icons/idle_32.png %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/idle3.png
@ -925,7 +944,7 @@ find %{buildroot} -perm 555 -exec chmod 755 {} \;
# Create "/usr/bin/python3-debug", a symlink to the python3 debug binary, to # Create "/usr/bin/python3-debug", a symlink to the python3 debug binary, to
# avoid the user having to know the precise version and ABI flags. # avoid the user having to know the precise version and ABI flags.
# See e.g. https://bugzilla.redhat.com/show_bug.cgi?id=676748 # See e.g. https://bugzilla.redhat.com/show_bug.cgi?id=676748
%if %{with debug_build} && %{without flatpackage} %if %{with debug_build} && %{with main_python}
ln -s \ ln -s \
%{_bindir}/python%{LDVERSION_debug} \ %{_bindir}/python%{LDVERSION_debug} \
%{buildroot}%{_bindir}/python3-debug %{buildroot}%{_bindir}/python3-debug
@ -936,7 +955,7 @@ ln -s \
# See https://bugzilla.redhat.com/show_bug.cgi?id=1111275 # See https://bugzilla.redhat.com/show_bug.cgi?id=1111275
mv %{buildroot}%{_bindir}/2to3-%{pybasever} %{buildroot}%{_bindir}/2to3 mv %{buildroot}%{_bindir}/2to3-%{pybasever} %{buildroot}%{_bindir}/2to3
%if %{with flatpackage} %if %{without main_python}
# Remove stuff that would conflict with python3 package # Remove stuff that would conflict with python3 package
rm %{buildroot}%{_bindir}/python3 rm %{buildroot}%{_bindir}/python3
rm %{buildroot}%{_bindir}/pydoc3 rm %{buildroot}%{_bindir}/pydoc3
@ -1056,7 +1075,7 @@ CheckPython optimized
%files %files
%doc README.rst %doc README.rst
%if %{without flatpackage} %if %{with main_python}
%{_bindir}/pydoc* %{_bindir}/pydoc*
%{_bindir}/python3 %{_bindir}/python3
%else %else
@ -1068,11 +1087,15 @@ CheckPython optimized
%{_mandir}/*/*3* %{_mandir}/*/*3*
%if %{with main_python}
%if %{without flatpackage} %if %{without flatpackage}
%files -n python-unversioned-command %files -n python-unversioned-command
%endif
%{_bindir}/python %{_bindir}/python
%{_mandir}/*/python.1* %{_mandir}/*/python.1*
%endif
%if %{without flatpackage}
%files libs %files libs
%doc README.rst %doc README.rst
%endif %endif
@ -1286,13 +1309,16 @@ CheckPython optimized
%{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h} %{_includedir}/python%{LDVERSION_optimized}/%{_pyconfig_h}
%{_libdir}/%{py_INSTSONAME_optimized} %{_libdir}/%{py_INSTSONAME_optimized}
%if %{without flatpackage} %if %{with main_python}
%{_libdir}/libpython3.so %{_libdir}/libpython3.so
%endif %endif
%if %{without flatpackage} %if %{without flatpackage}
%files devel %files devel
%endif
%if %{with main_python}
%{_bindir}/2to3 %{_bindir}/2to3
%endif %endif
@ -1306,7 +1332,7 @@ CheckPython optimized
%{_includedir}/python%{LDVERSION_optimized}/cpython/ %{_includedir}/python%{LDVERSION_optimized}/cpython/
%doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit %doc Misc/README.valgrind Misc/valgrind-python.supp Misc/gdbinit
%if %{without flatpackage} %if %{with main_python}
%{_bindir}/python3-config %{_bindir}/python3-config
%{_bindir}/python-config %{_bindir}/python-config
%{_libdir}/pkgconfig/python3.pc %{_libdir}/pkgconfig/python3.pc
@ -1334,7 +1360,9 @@ CheckPython optimized
%if %{without flatpackage} %if %{without flatpackage}
%files idle %files idle
%endif
%if %{with main_python}
%{_bindir}/idle* %{_bindir}/idle*
%else %else
%{_bindir}/idle%{pybasever} %{_bindir}/idle%{pybasever}
@ -1342,7 +1370,7 @@ CheckPython optimized
%{pylibdir}/idlelib %{pylibdir}/idlelib
%if %{without flatpackage} %if %{with main_python}
%{_metainfodir}/idle3.appdata.xml %{_metainfodir}/idle3.appdata.xml
%{_datadir}/applications/idle3.desktop %{_datadir}/applications/idle3.desktop
%{_datadir}/icons/hicolor/*/apps/idle3.* %{_datadir}/icons/hicolor/*/apps/idle3.*
@ -1394,6 +1422,9 @@ CheckPython optimized
%if %{with debug_build} %if %{with debug_build}
%if %{without flatpackage} %if %{without flatpackage}
%files debug %files debug
%endif
%if %{with main_python}
%{_bindir}/python3-debug %{_bindir}/python3-debug
%{_bindir}/python-debug %{_bindir}/python-debug
%endif %endif
@ -1529,6 +1560,9 @@ CheckPython optimized
# ====================================================== # ======================================================
%changelog %changelog
* Thu Nov 28 2019 Miro Hrončok <mhroncok@redhat.com> - 3.8.0-2
- Recommend python3-tkinter when tk is installed
* Mon Oct 14 2019 Miro Hrončok <mhroncok@redhat.com> - 3.8.0-1 * Mon Oct 14 2019 Miro Hrončok <mhroncok@redhat.com> - 3.8.0-1
- Update to Python 3.8.0 final - Update to Python 3.8.0 final