Mercurial > public > mercurial-scm > hg-stable
changeset 52958:32c655372dab
packaging: fix docker rpms with python3 included
author | Mathias De Mare <mathias.de_mare@nokia.com> |
---|---|
date | Mon, 03 Feb 2025 16:28:30 +0100 |
parents | 5b0b896b9d20 |
children | ac2edac78243 |
files | contrib/packaging/Makefile contrib/packaging/docker/rhel8 contrib/packaging/mercurial.spec |
diffstat | 3 files changed, 29 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/contrib/packaging/Makefile Tue Feb 04 13:10:41 2025 +0100 +++ b/contrib/packaging/Makefile Mon Feb 03 16:28:30 2025 +0100 @@ -19,7 +19,7 @@ 9 # Build a Python for these RHEL (and derivatives) releases. -RHEL_WITH_PYTHON_RELEASES := +RHEL_WITH_PYTHON_RELEASES := 8 RHEL_WITH_NONVERSIONED_PYTHON := RHEL_WITH_36_DOCUTILS := 7
--- a/contrib/packaging/docker/rhel8 Tue Feb 04 13:10:41 2025 +0100 +++ b/contrib/packaging/docker/rhel8 Mon Feb 03 16:28:30 2025 +0100 @@ -4,12 +4,19 @@ useradd -u %UID% -g %GID% -s /bin/bash -d /build -m build RUN yum install -y \ + bzip2-devel \ gcc \ gettext \ + libffi-devel \ make \ + ncurses-devel \ + openssl-devel \ python3-devel \ python3-docutils \ - rpm-build + readline-devel \ + rpm-build \ + sqlite-devel \ + zlib-devel # For creating repo meta data RUN yum install -y createrepo
--- a/contrib/packaging/mercurial.spec Tue Feb 04 13:10:41 2025 +0100 +++ b/contrib/packaging/mercurial.spec Mon Feb 03 16:28:30 2025 +0100 @@ -6,7 +6,6 @@ %global pythondocutils python3-docutils %if "%{?withpython}" - %global pythonver %{withpython} %global pythonname Python-%{withpython} %global docutilsname docutils-0.21.2 @@ -17,7 +16,6 @@ %global _python_bytecompile_errors_terminate_build 0 %else - %global pythonver %(%{pythonexe} -c 'import sys;print(".".join(map(str, sys.version_info[:2])))') %endif @@ -66,27 +64,37 @@ %if "%{?withpython}" PYPATH=$PWD/%{pythonname} +PYTHON_FULLPATH=$PYPATH/python3 cd $PYPATH -./configure --prefix=%{hgpyprefix} +./configure --prefix=%{hgpyprefix} --with-ensurepip=install make all %{?_smp_mflags} +# add a symlink and only refer to python3 from here on +ln -s python python3 +# remove python reference +sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python3|' Lib/encodings/rot_13.py +$PYTHON_FULLPATH -m ensurepip --default-pip +$PYTHON_FULLPATH -m pip install setuptools setuptools-scm cd - cd %{docutilsname} -LD_LIBRARY_PATH=$PYPATH $PYPATH/python setup.py build +$PYTHON_FULLPATH -m pip install . cd - # verify Python environment -LD_LIBRARY_PATH=$PYPATH PYTHONPATH=$PWD/%{docutilsname} $PYPATH/python -c 'import sys, zlib, bz2, ssl, curses, readline' +LD_LIBRARY_PATH=$PYPATH PYTHONPATH=$PWD/%{docutilsname} $PYTHON_FULLPATH -c 'import sys, zlib, bz2, ssl, curses, readline' +LD_LIBRARY_PATH=$PYPATH PYTHONPATH=$PWD/%{docutilsname} $PYTHON_FULLPATH -c "import ssl; print(ssl.HAS_TLSv1_2)" # set environment for make export PATH=$PYPATH:$PATH export LD_LIBRARY_PATH=$PYPATH export CFLAGS="-L $PYPATH" export PYTHONPATH=$PWD/%{docutilsname} - +%else +PYTHON_FULLPATH=$(which python3) %endif -make all PYTHON=%{pythonexe} +make all PYTHON=$PYTHON_FULLPATH + make -C contrib/chg sed -i -e '1s|#!/usr/bin/env python3$|#!/usr/bin/env %{pythonexe}|' contrib/hg-ssh @@ -99,6 +107,7 @@ %if "%{?withpython}" PYPATH=$PWD/%{pythonname} +PYTHON_FULLPATH=$PYPATH/python3 cd $PYPATH make install DESTDIR=$RPM_BUILD_ROOT # these .a are not necessary and they are readonly and strip fails - kill them! @@ -106,17 +115,17 @@ cd - cd %{docutilsname} -LD_LIBRARY_PATH=$PYPATH $PYPATH/python setup.py install --root="$RPM_BUILD_ROOT" +$PYTHON_FULLPATH -m pip install . --root="$RPM_BUILD_ROOT" cd - -PATH=$PYPATH:$PATH LD_LIBRARY_PATH=$PYPATH make install PYTHON=%{pythonexe} DESTDIR=$RPM_BUILD_ROOT PREFIX=%{hgpyprefix} MANDIR=%{_mandir} PURE="--rust" +PATH=$PYPATH:$PATH LD_LIBRARY_PATH=$PYPATH make install PYTHON=$PYTHON_FULLPATH DESTDIR=$RPM_BUILD_ROOT PREFIX=$RPM_BUILD_ROOT/%{hgpyprefix} MANDIR=%{_mandir} PURE="--rust" mkdir -p $RPM_BUILD_ROOT%{_bindir} ( cd $RPM_BUILD_ROOT%{_bindir}/ && ln -s ../..%{hgpyprefix}/bin/hg . ) ( cd $RPM_BUILD_ROOT%{_bindir}/ && ln -s ../..%{hgpyprefix}/bin/python2.? %{pythonhg} ) %else - -make install PYTHON=%{pythonexe} DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} MANDIR=%{_mandir} PURE="--rust" +PYTHON_FULLPATH=$(which python3) +make install PYTHON=$PYTHON_FULLPATH DESTDIR=$RPM_BUILD_ROOT PREFIX=$RPM_BUILD_ROOT/%{_prefix} MANDIR=%{_mandir} PURE="--rust" %endif @@ -138,12 +147,6 @@ %doc CONTRIBUTORS COPYING doc/README doc/hg*.txt doc/hg*.html *.cgi contrib/*.fcgi contrib/*.wsgi %doc %attr(644,root,root) %{_mandir}/man?/hg* %doc %attr(644,root,root) contrib/*.svg -%dir %{_datadir}/bash-completion/ -%dir %{_datadir}/bash-completion/completions -%{_datadir}/bash-completion/completions/hg -%dir %{_datadir}/zsh/ -%dir %{_datadir}/zsh/site-functions/ -%{_datadir}/zsh/site-functions/_hg %dir %{_datadir}/emacs/site-lisp/ %{_datadir}/emacs/site-lisp/mercurial.el %{_datadir}/emacs/site-lisp/mq.el