diff --git a/python-dmidecode-rhbz2154949.patch b/python-dmidecode-rhbz2154949.patch new file mode 100644 index 0000000000000000000000000000000000000000..516f124bf98db88eccba7b1efa390ab6e81e1dd2 --- /dev/null +++ b/python-dmidecode-rhbz2154949.patch @@ -0,0 +1,126 @@ +From 2d6530941682595b26067a8b679ec2eb3aceae54 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mat=C4=9Bj=20Cepl?= +Date: Tue, 17 May 2022 16:00:47 +0200 +Subject: [PATCH 1/3] Make the code future-proof against removal of distutils + module. + +--- + src/setup_common.py | 14 +++++++++++--- + 1 file changed, 11 insertions(+), 3 deletions(-) + +diff --git a/src/setup_common.py b/src/setup_common.py +index aec1f9b..3fb9086 100644 +--- a/src/setup_common.py ++++ b/src/setup_common.py +@@ -30,7 +30,12 @@ + if sys.version_info[0] < 3: + import commands as subprocess + from os import path as os_path +-from distutils.sysconfig import get_python_lib ++try: ++ from distutils.sysconfig import get_python_lib, get_config_var ++ __python_lib = get_python_lib(1) ++except ImportError: ++ from sysconfig import get_config_var, get_path ++ __python_lib = get_path('platlib') + + # libxml2 - C flags + def libxml2_include(incdir): +@@ -50,7 +55,7 @@ def libxml2_include(incdir): + + # libxml2 - library flags + def libxml2_lib(libdir, libs): +- libdir.append(get_python_lib(1)) ++ libdir.append(__python_lib) + if os_path.exists("/etc/debian_version"): #. XXX: Debian Workaround... + libdir.append("/usr/lib/pymodules/python%d.%d"%sys.version_info[0:2]) + +From 7c0788b5c5ed7d1c79f70a74047abab161dca13a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mat=C4=9Bj=20Cepl?= +Date: Mon, 17 Oct 2022 19:59:52 +0200 +Subject: [PATCH 2/3] Don't be too complicated. + +There is actually no reason to use distutils.sysconfig at all, +plain sysconfig works even on 2.7. +--- + Makefile | 3 ++- + src/setup_common.py | 9 ++------- + 2 files changed, 4 insertions(+), 8 deletions(-) + +diff --git a/src/setup_common.py b/src/setup_common.py +index 3fb9086..97ece95 100644 +--- a/src/setup_common.py ++++ b/src/setup_common.py +@@ -30,12 +30,7 @@ + if sys.version_info[0] < 3: + import commands as subprocess + from os import path as os_path +-try: +- from distutils.sysconfig import get_python_lib, get_config_var +- __python_lib = get_python_lib(1) +-except ImportError: +- from sysconfig import get_config_var, get_path +- __python_lib = get_path('platlib') ++from sysconfig import get_config_var, get_path + + # libxml2 - C flags + def libxml2_include(incdir): +@@ -55,7 +50,7 @@ def libxml2_include(incdir): + + # libxml2 - library flags + def libxml2_lib(libdir, libs): +- libdir.append(__python_lib) ++ libdir.append(get_path('platlib')) + if os_path.exists("/etc/debian_version"): #. XXX: Debian Workaround... + libdir.append("/usr/lib/pymodules/python%d.%d"%sys.version_info[0:2]) + + +From 860c730309366d6062c410ee975a2fc159452dc6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Mat=C4=9Bj=20Cepl?= +Date: Wed, 26 Oct 2022 17:39:47 +0200 +Subject: [PATCH 3/3] Make the discovery of the build .so file more robust. + +Different versions of Python apparently generate different +directory names, there doesn't seem to be any more reliable +method of the .so file discovery than brutal force of the shell +find command. +--- + Makefile | 12 +++++------- + 1 file changed, 5 insertions(+), 7 deletions(-) + +--- a/Makefile.backup 2022-11-17 06:51:28.000000000 +0100 ++++ b/Makefile 2023-05-20 12:56:07.590575539 +0200 +@@ -44,12 +44,11 @@ + PY_VER := $(shell $(PY_BIN) -c 'import sys; print("%d.%d"%sys.version_info[0:2])') + PY_MV := $(shell echo $(PY_VER) | cut -b 1) + PY := python$(PY_VER) +-SO_PATH := build/lib.linux-$(shell uname -m)-$(PY_VER) + ifeq ($(PY_MV),2) +- SO := $(SO_PATH)/dmidecodemod.so ++ SOLIB := dmidecodemod.so + else + SOABI := $(shell $(PY_BIN) -c 'import sysconfig; print(sysconfig.get_config_var("SOABI"))') +- SO := $(SO_PATH)/dmidecodemod.$(SOABI).so ++ SOLIB := dmidecodemod.$(SOABI).so + endif + SHELL := /bin/bash + +@@ -59,13 +58,13 @@ + all : build dmidump + + build: $(PY)-dmidecodemod.so +-$(PY)-dmidecodemod.so: $(SO) +- cp $< $@ +-$(SO): ++ ++$(PY)-dmidecodemod.so: + $(PY) src/setup.py build ++ cp $$(find build -name $(SOLIB)) $@ + + dmidump : src/util.o src/efi.o src/dmilog.o +- $(CC) -o $@ src/dmidump.c $^ -g -Wall -D_DMIDUMP_MAIN_ ++ $(CC) -o $@ src/dmidump.c $^ ${CFLAGS} -D_DMIDUMP_MAIN_ + + install: + $(PY) src/setup.py install + diff --git a/python-dmidecode.spec b/python-dmidecode.spec index 73d591328c0c0f331bc4ccd34c66bb0d9ec9ee3c..a5cd27bb5d8eabfc0a353e21d932f50ad00bd1b2 100644 --- a/python-dmidecode.spec +++ b/python-dmidecode.spec @@ -1,6 +1,6 @@ Name: python-dmidecode Version: 3.12.3 -Release: 2 +Release: 3 Summary: Python extension module for dmidecode License: GPLv2 @@ -9,6 +9,8 @@ Source0: https://github.com/nima/python-dmidecode/archive/v%{version}.tar %ifarch sw_64 Patch1: python-dmidecode-3.12.3-sw.patch %endif +#Reference:https://src.fedoraproject.org/rpms/python-dmidecode/blob/rawhide/f/python-dmidecode-rhbz2154949.patch +Patch2: python-dmidecode-rhbz2154949.patch BuildRequires: gcc libxml2-devel python3-libxml2 python3-devel @@ -69,6 +71,9 @@ make -C unit-tests %doc README doc/README.upstream %changelog +* Wed Jul 05 2023 zhouwenpei - 3.12.3-3 +- fix build error + * Wed Mar 01 2023 zhouwenpei - 3.12.3-2 - strip binary file