diff --git a/gpgme-D545-obsolete-distutils.patch b/gpgme-D545-obsolete-distutils.patch index dfc08b7..418bacb 100644 --- a/gpgme-D545-obsolete-distutils.patch +++ b/gpgme-D545-obsolete-distutils.patch @@ -1,110 +1,31 @@ -diff --git a/lang/python/Makefile.am b/lang/python/Makefile.am -index 68b98e8e..a8dd8948 100644 ---- a/lang/python/Makefile.am -+++ b/lang/python/Makefile.am -@@ -34,8 +34,8 @@ SUBDIRS = . ${tests} examples doc src - .PHONY: prepare - prepare: copystamp - --# For VPATH builds we need to copy some files because Python's --# distutils are not VPATH-aware. -+# For VPATH builds we need to copy some files because Python -+# is not VPATH-aware. - copystamp: - ln -sf "$(top_srcdir)/src/data.h" . - ln -sf "$(top_builddir)/conf/config.h" . -@@ -48,7 +48,7 @@ all-local: copystamp - CFLAGS="$(CFLAGS)" \ - srcdir="$(srcdir)" \ - top_builddir="$(top_builddir)" \ -- $$PYTHON setup.py build --verbose --build-base="$$(basename "$${PYTHON}")-gpg" ; \ -+ $$PYTHON -m pip --verbose install --no-index --no-build-isolation --root="$$(basename "$${PYTHON}")-gpg" ${srcdir} ; \ - done - - python$(PYTHON_VERSION)-gpg/dist/gpg-$(VERSION).tar.gz.asc: copystamp -@@ -57,8 +57,7 @@ python$(PYTHON_VERSION)-gpg/dist/gpg-$(VERSION).tar.gz.asc: copystamp - CFLAGS="$(CFLAGS)" \ - srcdir="$(srcdir)" \ - top_builddir="$(top_builddir)" \ -- $(PYTHON) setup.py sdist --verbose --dist-dir=python$(PYTHON_VERSION)-gpg-dist \ -- --manifest=python$(PYTHON_VERSION)-gpg-dist/MANIFEST -+ $(PYTHON) -m build --sdist --outdir=python$(PYTHON_VERSION)-gpg-dist - gpgbin=gpgconf --list-components | grep OpenPGP | sed -e 's/gpg:OpenPGP://g' - $(gpgbin) --detach-sign --armor python$(PYTHON_VERSION)-gpg-dist/gpg-$(VERSION).tar.gz - -@@ -92,17 +91,16 @@ install-exec-local: - CFLAGS="$(CFLAGS)" \ - srcdir="$(srcdir)" \ - top_builddir="$(top_builddir)" \ -- $$PYTHON setup.py \ -- build \ -- --build-base="$$(basename "$${PYTHON}")-gpg" \ -+ $$PYTHON -m pip --verbose \ - install \ -+ --no-index --no-build-isolation \ - --prefix "$(DESTDIR)$(prefix)" \ -- --verbose ; \ -+ ${srcdir} ; \ - done - - uninstall-local: - set -x; GV=$$(echo $(VERSION) | tr - _); for PYTHON in $(PYTHONS); do \ - PLATLIB="$(prefix)/$$("$${PYTHON}" -c 'import sysconfig, os; print(os.path.relpath(sysconfig.get_path("platlib", scheme="posix_prefix"), sysconfig.get_config_var("prefix")))')" ; \ - rm -rf -- "$(DESTDIR)$${PLATLIB}/gpg" \ -- "$(DESTDIR)$${PLATLIB}"/gpg-$$GV-py*.egg-info ; \ -+ "$(DESTDIR)$${PLATLIB}"/gpg-$$GV.dist-info ; \ - done -diff --git a/lang/python/doc/src/gpgme-python-howto.org b/lang/python/doc/src/gpgme-python-howto.org -index b4367872..c40e2249 100644 ---- a/lang/python/doc/src/gpgme-python-howto.org -+++ b/lang/python/doc/src/gpgme-python-howto.org -@@ -2945,7 +2945,7 @@ Save that into a file called =keycount.pyx= and then create a - =setup.py= file which contains this: - - #+BEGIN_SRC python -i --from distutils.core import setup -+from setuptools import setup - from Cython.Build import cythonize - - setup( -diff --git a/lang/python/examples/howto/advanced/cython/setup.py b/lang/python/examples/howto/advanced/cython/setup.py -index f8dce034..849639e2 100644 ---- a/lang/python/examples/howto/advanced/cython/setup.py -+++ b/lang/python/examples/howto/advanced/cython/setup.py -@@ -1,4 +1,4 @@ --from distutils.core import setup -+from setuptools import setup - from Cython.Build import cythonize - - setup( -diff --git a/lang/python/setup.py.in b/lang/python/setup.py.in -index 6f36861d..ab8905fc 100755 ---- a/lang/python/setup.py.in -+++ b/lang/python/setup.py.in -@@ -18,8 +18,8 @@ - # License along with this library; if not, write to the Free Software - # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - --from distutils.core import setup, Extension --from distutils.command.build import build -+from setuptools import setup, Extension -+from setuptools.command.build import build - - import glob - import os -@@ -225,9 +225,8 @@ class BuildExtFirstHack(build): - build.run(self) - - --py3 = [] if sys.version_info.major < 3 else ['-py3'] - swig_sources = [] --swig_opts = ['-threads'] + py3 + extra_swig_opts -+swig_opts = ['-threads'] + extra_swig_opts - swige = Extension( - 'gpg._gpgme', - sources=swig_sources, +From e3ae88267f03b435ec7d9e80ae1e2891e1f118e6 Mon Sep 17 00:00:00 2001 +From: Ingo Klöcker +Date: Tue, 16 Jan 2024 09:53:39 +0100 +Subject: build: Update Python autoconf macro + +* configure.ac: Call AX_PYTHON_DEVEL with new "optional" argument. +* m4/ax_python_devel.m4: Replace with current version from the autoconf +archive. +-- + +The new "optional" argument allows us to leave out one of our custom +changes. + +diff --git a/configure.ac b/configure.ac +index 9d551813..0e0b9d97 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -607,7 +607,7 @@ if test "$found_py" = "1"; then + unset am_cv_python_pythondir + unset am_cv_python_pyexecdir + AM_PATH_PYTHON(mym4pythonver, [ +- AX_PYTHON_DEVEL ++ AX_PYTHON_DEVEL([], [true]) + if test "$PYTHON_VERSION"; then + PYTHONS="$(echo $PYTHONS $PYTHON)" + PYTHON_VERSIONS="$(echo $PYTHON_VERSIONS $PYTHON_VERSION)" diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4 -index 55f0cfff..b18c5973 100644 +index 55f0cfff..1f480db6 100644 --- a/m4/ax_python_devel.m4 +++ b/m4/ax_python_devel.m4 @@ -1,10 +1,10 @@ @@ -380,7 +301,7 @@ index 55f0cfff..b18c5973 100644 e = get_config_var('VERSION') if e is not None: print(e) -@@ -190,7 +269,7 @@ EOD` +@@ -190,23 +269,20 @@ EOD` ac_python_version=$PYTHON_VERSION else ac_python_version=`$PYTHON -c "import sys; \ @@ -389,7 +310,16 @@ index 55f0cfff..b18c5973 100644 fi fi -@@ -205,8 +284,8 @@ EOD` + # Make the versioning information available to the compiler +- +- # JW: We don't need it and it interferes with the hack +- # to detect multiple Pyhton versions +- #AC_DEFINE_UNQUOTED([HAVE_PYTHON], ["$ac_python_version"], +- # [If available, contains the Python version number currently in use.]) ++ AC_DEFINE_UNQUOTED([HAVE_PYTHON], ["$ac_python_version"], ++ [If available, contains the Python version number currently in use.]) + + # First, the library directory: ac_python_libdir=`cat< +Date: Tue, 16 Jan 2024 09:58:33 +0100 +Subject: build: Re-add still needed custom changes to Python autoconf macro + +* m4/ax_python_devel.m4: Do not emit 'HAVE_PYTHON'. +-- + +This reapplies the changes made with 5189c08 that are still needed for +detecting multiple Python versions. + +diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4 +index 1f480db6..8116028a 100644 +--- a/m4/ax_python_devel.m4 ++++ b/m4/ax_python_devel.m4 +@@ -274,8 +274,11 @@ EOD` + fi + + # Make the versioning information available to the compiler +- AC_DEFINE_UNQUOTED([HAVE_PYTHON], ["$ac_python_version"], +- [If available, contains the Python version number currently in use.]) ++ ++ # JW: We don't need it and it interferes with the hack ++ # to detect multiple Python versions ++ #AC_DEFINE_UNQUOTED([HAVE_PYTHON], ["$ac_python_version"], ++ # [If available, contains the Python version number currently in use.]) + + # First, the library directory: + ac_python_libdir=`cat< + +- Update gpgme-D545-obsolete-distutils.patch with upstream's + changes (but use pip instead of python-build for wheel building) +- Change from in-place build to out-of-place build in order to + reflect upstream's build setup (See D545) +- Don't replace distutils in 15.X + ------------------------------------------------------------------- Sat Jan 6 12:43:19 UTC 2024 - Ben Greiner diff --git a/gpgme.spec b/gpgme.spec index eaa031b..c773cdc 100644 --- a/gpgme.spec +++ b/gpgme.spec @@ -1,5 +1,5 @@ # -# spec file +# spec file for package gpgme # # Copyright (c) 2024 SUSE LLC # @@ -32,6 +32,14 @@ %bcond_with python3 %bcond_without qt6 %endif + +%if 0%{suse_version} >= 1550 || "%{?pythons}" == "python311" +%bcond_without replace_distutils +%else +# Keep deprecated distutils for Python 3.6 on 15.x +%bcond_with replace_distutils +%endif + Name: gpgme%{psuffix} Version: 1.23.2 Release: 0 @@ -60,10 +68,12 @@ BuildRequires: pkgconfig BuildRequires: swig %if %{with python3} BuildRequires: %{python_module devel} +BuildRequires: python-rpm-macros +%if %{with replace_distutils} BuildRequires: %{python_module pip} BuildRequires: %{python_module setuptools >= 62.4} BuildRequires: %{python_module wheel} -BuildRequires: python-rpm-macros +%endif %endif %if %{with qt} BuildRequires: pkgconfig(Qt5Core) @@ -245,7 +255,15 @@ management. This package contains the bindings to use the library in Qt 6 C++ applications. %prep -%autosetup -p1 -n gpgme-%{version} +%autosetup -N -n gpgme-%{version} +%if %{with replace_distutils} +%patch -p1 -P1 -P2 +%endif +%if 0%{suse_version} > 1500 +# Note: rpm in 15.x does not know about the autopatch -m flag. +# Need to apply every additional patch explicitly, if any. +%autopatch -p1 -m3 +%endif %build ./autogen.sh @@ -268,6 +286,9 @@ export CXX=g++-12 CC=gcc-12 CPP=cpp-12 %endif %endif +%define _configure ../configure +mkdir build +pushd build %configure \ --disable-silent-rules \ --disable-static \ @@ -275,8 +296,10 @@ export CXX=g++-12 CC=gcc-12 CPP=cpp-12 --enable-languages="${languages}" \ --enable-build-timestamp="${build_timestamp}" %make_build +popd %install +pushd build %make_install find %{buildroot} -type f -name "*.la" -delete -print chmod -x %{buildroot}%{_libdir}/cmake/Gpgmepp/*.cmake @@ -290,6 +313,7 @@ rm -r %{buildroot}%{_libdir}/cmake/Gpgmepp rm -r %{buildroot}%{_libdir}/libgpgme* rm -r %{buildroot}%{_libdir}/pkgconfig/gpgme* %endif +popd %check GPGME_DEBUG=2:mygpgme.log %make_build check skip=%{?qt_skip:%{qt_skip}} || cat $(find -name mygpgme.log -type f) @@ -347,7 +371,7 @@ GPGME_DEBUG=2:mygpgme.log %make_build check skip=%{?qt_skip:%{qt_skip}} || cat $ %files %{python_files gpg} %license COPYING COPYING.LESSER LICENSES %{python_sitearch}/gpg -%{python_sitearch}/gpg-%{version}.dist-info +%{python_sitearch}/gpg-%{version}*-info %endif %if %{with qt}