Implemented alternatives the same way as they're in python36 module
RHEL-23019
This commit is contained in:
parent
a1f8563d56
commit
4498b8dfe1
106
python36.spec
106
python36.spec
@ -25,7 +25,7 @@
|
||||
|
||||
Name: python36
|
||||
Version: %{pybasever}.6
|
||||
Release: 13.buildroot%{?dist}
|
||||
Release: 14.buildroot%{?dist}
|
||||
Summary: Interpreter of the Python programming language
|
||||
|
||||
License: Python
|
||||
@ -66,6 +66,11 @@ Obsoletes: python3 < 3.6.6-13
|
||||
|
||||
Requires: %{_libexecdir}/platform-python
|
||||
|
||||
# Require alternatives version that implements the --keep-foreign flag
|
||||
Requires: alternatives >= 1.19.2-1
|
||||
Requires(post): alternatives >= 1.19.2-1
|
||||
Requires(postun): alternatives >= 1.19.2-1
|
||||
|
||||
%global _description \
|
||||
Python is an accessible, high-level, dynamically typed, interpreted programming\
|
||||
language, designed with an emphasis on code readibility.\
|
||||
@ -90,6 +95,12 @@ Summary: Libraries and header files needed for Python development
|
||||
Requires: python36
|
||||
Requires: platform-python-devel
|
||||
|
||||
# Require alternatives version that implements the --keep-foreign flag
|
||||
Requires(postun): alternatives >= 1.19.2-1
|
||||
# python36 installs the alternatives master symlink to which we attach a slave
|
||||
Requires(post): python36
|
||||
Requires(postun): python36
|
||||
|
||||
%description devel
|
||||
This package contains the header files and configuration needed to compile
|
||||
Python extension modules (typically written in C or C++), to embed Python
|
||||
@ -108,6 +119,12 @@ Requires: python36
|
||||
Requires: python36-devel
|
||||
Requires: platform-python-debug
|
||||
|
||||
# Require alternatives version that implements the --keep-foreign flag
|
||||
Requires(postun): alternatives >= 1.19.2-1
|
||||
# python36 installs the alternatives master symlink to which we attach a slave
|
||||
Requires(post): python36
|
||||
Requires(postun): python36
|
||||
|
||||
%description debug
|
||||
python3-debug provides a version of the Python runtime with numerous debugging
|
||||
features enabled, aimed at advanced Python users such as developers of Python
|
||||
@ -140,13 +157,9 @@ mkdir -p %{buildroot}%{_bindir}
|
||||
|
||||
# Symlink the executable to libexec
|
||||
ln -s %{_libexecdir}/platform-python%{pybasever} %{buildroot}%{_bindir}/python%{pybasever}
|
||||
# Additional symlink for buildroot
|
||||
ln -s %{_bindir}/python%{pybasever} %{buildroot}%{_bindir}/python3
|
||||
|
||||
# Symlink the config executables
|
||||
ln -s python%{LDVERSION_optimized}-config %{buildroot}%{_bindir}/python%{pybasever}-config
|
||||
# Additional symlink for buildroot
|
||||
ln -s %{_bindir}/python%{pybasever}-config %{buildroot}%{_bindir}/python3-config
|
||||
|
||||
# LDVERSION specific section
|
||||
InstallPython() {
|
||||
@ -165,20 +178,85 @@ InstallPython %{LDVERSION_debug}
|
||||
# General debug symlinks
|
||||
ln -s python%{LDVERSION_debug}-config %{buildroot}%{_bindir}/python%{pybasever}-debug-config
|
||||
ln -s python%{LDVERSION_debug} %{buildroot}%{_bindir}/python%{pybasever}-debug
|
||||
# Additional symlinks for buildroot
|
||||
ln -s %{_bindir}/python%{pybasever}-debug-config %{buildroot}%{_bindir}/python3-debug-config
|
||||
ln -s %{_bindir}/python%{pybasever}-debug %{buildroot}%{_bindir}/python3-debug
|
||||
%endif # with debug_build
|
||||
|
||||
InstallPython %{LDVERSION_optimized}
|
||||
|
||||
# All ghost files controlled by alternatives need to exist for the files
|
||||
# section check to succeed
|
||||
# - Don't list /usr/bin/python as a ghost file so `yum install /usr/bin/python`
|
||||
# doesn't install this package
|
||||
touch %{buildroot}%{_bindir}/python3
|
||||
touch %{buildroot}%{_bindir}/python3-config
|
||||
touch %{buildroot}%{_bindir}/python3-debug
|
||||
touch %{buildroot}%{_bindir}/python3-debug-config
|
||||
|
||||
%post
|
||||
# Alternative for /usr/bin/python3 -> /usr/bin/python3.6
|
||||
# Create only if it doesn't exist already
|
||||
EXISTS=`alternatives --display python3 | \
|
||||
grep -c "^/usr/bin/python3.6 - priority [0-9]*"`
|
||||
|
||||
if [ $EXISTS -eq 0 ]; then
|
||||
alternatives --install %{_bindir}/python3 \
|
||||
python3 \
|
||||
%{_bindir}/python3.6 \
|
||||
1000000
|
||||
fi
|
||||
|
||||
%postun
|
||||
# Do this only during uninstall process (not during update)
|
||||
if [ $1 -eq 0 ]; then
|
||||
alternatives --keep-foreign --remove python3 \
|
||||
%{_bindir}/python3.6
|
||||
|
||||
# Remove link python → python3 if no other python3.* exists
|
||||
if ! alternatives --display python3 > /dev/null; then
|
||||
alternatives --keep-foreign --remove python \
|
||||
%{_bindir}/python3
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
%post -n python36-devel
|
||||
alternatives --add-slave python3 %{_bindir}/python3.6 \
|
||||
%{_bindir}/python3-config \
|
||||
python3-config \
|
||||
%{_bindir}/python3.6-config
|
||||
|
||||
%postun -n python36-devel
|
||||
# Do this only during uninstall process (not during update)
|
||||
if [ $1 -eq 0 ]; then
|
||||
alternatives --keep-foreign --remove-slave python3 %{_bindir}/python3.6 \
|
||||
python3-config
|
||||
fi
|
||||
|
||||
|
||||
%post -n python36-debug
|
||||
alternatives --add-slave python3 %{_bindir}/python3.6 \
|
||||
%{_bindir}/python3-debug \
|
||||
python3-debug \
|
||||
%{_bindir}/python3.6-debug
|
||||
alternatives --add-slave python3 %{_bindir}/python3.6 \
|
||||
%{_bindir}/python3-debug-config \
|
||||
python3-debug-config \
|
||||
%{_bindir}/python3.6-debug-config
|
||||
|
||||
%postun -n python36-debug
|
||||
# Do this only during uninstall process (not during update)
|
||||
if [ $1 -eq 0 ]; then
|
||||
alternatives --keep-foreign --remove-slave python3 %{_bindir}/python3.6 \
|
||||
python3-debug
|
||||
alternatives --keep-foreign --remove-slave python3 %{_bindir}/python3.6 \
|
||||
python3-debug-config
|
||||
fi
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc README.rst
|
||||
%{_bindir}/python%{pybasever}
|
||||
%{_bindir}/python%{LDVERSION_optimized}
|
||||
%{_bindir}/python3
|
||||
%ghost %{_bindir}/python3
|
||||
|
||||
%files devel
|
||||
%license LICENSE
|
||||
@ -186,7 +264,7 @@ InstallPython %{LDVERSION_optimized}
|
||||
%{_bindir}/python%{pybasever}-config
|
||||
%{_bindir}/python%{LDVERSION_optimized}-config
|
||||
%{_bindir}/python%{LDVERSION_optimized}-*-config
|
||||
%{_bindir}/python3-config
|
||||
%ghost %{_bindir}/python3-config
|
||||
|
||||
%files debug
|
||||
%license LICENSE
|
||||
@ -196,13 +274,17 @@ InstallPython %{LDVERSION_optimized}
|
||||
%{_bindir}/python%{LDVERSION_debug}-*-config
|
||||
%{_bindir}/python%{pybasever}-debug-config
|
||||
%{_bindir}/python%{pybasever}-debug
|
||||
%{_bindir}/python3-debug
|
||||
%{_bindir}/python3-debug-config
|
||||
%ghost %{_bindir}/python3-debug
|
||||
%ghost %{_bindir}/python3-debug-config
|
||||
|
||||
|
||||
# IMPORTANT #
|
||||
# See note at the top of the spec file #
|
||||
%changelog
|
||||
* Mon Jan 29 2024 Lumír Balhar <lbalhar@redhat.com> - 3.6.6-14.buildroot
|
||||
- Implemented alternatives the same way as they're in python36 module
|
||||
Resolves: RHEL-23019
|
||||
|
||||
* Sat Sep 29 2018 Tomas Orsava <torsava@redhat.com> - 3.6.6-13.buildroot
|
||||
- Merged `stream-3.6` branch into the `rhel-8.0` branch for the buildroot
|
||||
- Differences:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user