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)
83 lines
2.6 KiB
Diff
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
|
|
|