%define python_version 3.9.15 Version: %{python_version} Summary: Python %{python_version} from straightforward source build Name: clean_python39 Release: 1 License: Python Group: Development/Languages Source0: https://www.python.org/ftp/python/%{version}/Python-%{version}.tgz AutoReqProv: no requires: bzip2 requires: gdbm requires: glibc requires: gmp requires: libgcc requires: libstdc++ requires: libuuid requires: ncurses requires: openssl requires: readline requires: xz-libs requires: zlib BuildRequires: bzip2-devel BuildRequires: gdbm-devel BuildRequires: libffi-devel BuildRequires: libuuid-devel BuildRequires: ncurses-devel BuildRequires: openssl-devel BuildRequires: readline-devel BuildRequires: sqlite-devel BuildRequires: xz-devel BuildRequires: zlib-devel BuildRoot: /tmp/%{name} %description A clean python %prep %setup -n Python-%{version} %build rm -rf %{buildroot} ./configure --enable-optimizations \ --with-ensurepip=upgrade \ --enable-ipv6 --enable-shared \ --prefix=/opt/%{name} make LDFLAGS="$LDFLAGS -Wl,-rpath=/opt/%{name}/lib" make install DESTDIR=$RPM_BUILD_ROOT find %{buildroot}/opt/%{name}/lib -name '*.py[oc]' -exec rm {} \; mkdir -p %{buildroot}/etc/ld.so.conf.d cat << EOF | tee %{buildroot}/etc/ld.so.conf.d/%{name}.conf /opt/%{name}/lib EOF %post alternatives \ --install /usr/bin/python3 python3 /opt/%{name}/bin/python3 1 \ --slave /usr/bin/pip3 pip3 /opt/%{name}/bin/pip3 ldconfig -v %postun alternatives \ --remove python3 /opt/%{name}/bin/python3 ldconfig -v %files %attr(-, root, root) /opt/%{name} %attr(-, root, root) /etc/ld.so.conf.d/%{name}.conf