rpm/0001-Generate-Python-egg-info-from-automake-builds.patch
Panu Matilainen 56868f0f9b Drop setup.py based Python build (#2135561, #2149762)
The setup.py build was only really added for dealing with parallel
installable Python 2 and 3 builds, and has been quite a PITA otherwise
because it's not what the upstream builds and tests use. Now that
the 2to3 transition is thankfully over, we can go back to building the
extension by ourselves. Only, in the meanwhile people have come to
depend on the egg-info data so create that from automake, that format is
not exactly rocket science.

This fixes us accidentally shipping two slightly different Python
modules for years (#2135719) and building with Python >= 3.12 where
distutils has been dropped, and does so in upstream compatible manner
(where a similar approach was taken when transitioning to cmake based
build system)
2023-01-09 14:02:40 +02:00

83 lines
2.6 KiB
Diff

From de0b9d142ad8bada4d49afeee95616fee265d44f Mon Sep 17 00:00:00 2001
Message-Id: <de0b9d142ad8bada4d49afeee95616fee265d44f.1673264828.git.pmatilai@redhat.com>
From: Panu Matilainen <pmatilai@redhat.com>
Date: Mon, 9 Jan 2023 12:56:34 +0200
Subject: [PATCH] Generate Python egg-info from automake builds
To compensate for the loss of egg-info from the python distutils build,
create one ourselves.
This is effectively a backport of e31fb5b75898bfa09180dba02475c6d01764d94f
which dismissed the need for an automake version, but unfortunately Python
3.12 and automake-based rpm versions do co-exist in the same time-space
continuum and we'll have to deal with this in rpm 4.18 as well.
As to why not just use distutils from python-setuptools: that variant
turns the egg-info into a directory, which in rpm is a one-way street.
And we don't need that multi megabyte Python library to fill in these
couple of values, really.
---
configure.ac | 1 +
python/Makefile.am | 9 ++++++++-
python/rpm.egg-info.in | 10 ++++++++++
3 files changed, 19 insertions(+), 1 deletion(-)
create mode 100644 python/rpm.egg-info.in
diff --git a/configure.ac b/configure.ac
index fbbfead89..5f5842590 100644
--- a/configure.ac
+++ b/configure.ac
@@ -964,5 +964,6 @@ AC_CONFIG_FILES([Makefile
tests/Makefile
plugins/Makefile
python/setup.py
+ python/rpm.egg-info
])
AC_OUTPUT
diff --git a/python/Makefile.am b/python/Makefile.am
index ec3608134..04168406d 100644
--- a/python/Makefile.am
+++ b/python/Makefile.am
@@ -3,14 +3,21 @@
include $(top_srcdir)/rpm.am
AM_CFLAGS = @RPMCFLAGS@
-EXTRA_DIST = rpm/__init__.py rpm/transaction.py
+CLEANFILES =
+EXTRA_DIST = rpm/__init__.py rpm/transaction.py rpm.egg-info.in
AM_CPPFLAGS = -I$(top_srcdir)/include/
AM_CPPFLAGS += -I$(top_srcdir)/python
AM_CPPFLAGS += @PYTHON_CFLAGS@
+egginfo = $(PACKAGE_NAME)-$(PACKAGE_VERSION)-py$(PYTHON_VERSION).egg-info
+$(egginfo):
+ cat rpm.egg-info > $(egginfo)
+CLEANFILES += $(egginfo)
+
pkgpyexec_LTLIBRARIES = _rpm.la
pkgpyexec_DATA = rpm/__init__.py rpm/transaction.py
+pyexec_DATA = $(egginfo)
_rpm_la_LDFLAGS = -module -avoid-version -shared
_rpm_la_LIBADD = \
diff --git a/python/rpm.egg-info.in b/python/rpm.egg-info.in
new file mode 100644
index 000000000..838ce5854
--- /dev/null
+++ b/python/rpm.egg-info.in
@@ -0,0 +1,10 @@
+Metadata-Version: 1.0
+Name: @PACKAGE_NAME@
+Version: @PACKAGE_VERSION@
+Summary: Python bindings for rpm
+Home-page: @PACKAGE_URL@
+Author: Rpm community
+Author-email: rpm-maint@lists.rpm.org
+License: GNU General Public License v2
+Description: Python bindings for rpm
+Platform: UNKNOWN
--
2.39.0