forked from pool/python-packaging
Accepting request 979721 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/979721 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-packaging?expand=0&rev=24
This commit is contained in:
commit
de3613e0d0
57
fix-big-endian-build.patch
Normal file
57
fix-big-endian-build.patch
Normal file
@ -0,0 +1,57 @@
|
||||
From efb42e3a40c4e1ea043902b0ac989af9af5dedbb Mon Sep 17 00:00:00 2001
|
||||
From: Tzu-ping Chung <uranusjr@gmail.com>
|
||||
Date: Wed, 20 Apr 2022 10:00:07 +0800
|
||||
Subject: [PATCH] Correctly parse ELF for musllinux on Big Endian
|
||||
|
||||
Always use LSB to parse binary in tests
|
||||
---
|
||||
packaging/_musllinux.py | 8 +++++---
|
||||
tests/test_musllinux.py | 9 +++++----
|
||||
2 files changed, 10 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/packaging/_musllinux.py b/packaging/_musllinux.py
|
||||
index 8ac3059..d5d3e04 100644
|
||||
--- a/packaging/_musllinux.py
|
||||
+++ b/packaging/_musllinux.py
|
||||
@@ -39,9 +39,11 @@ def _parse_ld_musl_from_elf(f: IO[bytes]) -> Optional[str]:
|
||||
# p_fmt: Format for section header.
|
||||
# p_idx: Indexes to find p_type, p_offset, and p_filesz.
|
||||
e_fmt, p_fmt, p_idx = {
|
||||
- 1: ("IIIIHHH", "IIIIIIII", (0, 1, 4)), # 32-bit.
|
||||
- 2: ("QQQIHHH", "IIQQQQQQ", (0, 2, 5)), # 64-bit.
|
||||
- }[ident[4]]
|
||||
+ (1, 1): ("<IIIIHHH", "<IIIIIIII", (0, 1, 4)), # 32-bit LSB.
|
||||
+ (1, 2): (">IIIIHHH", ">IIIIIIII", (0, 1, 4)), # 32-bit MSB.
|
||||
+ (2, 1): ("<QQQIHHH", "<IIQQQQQQ", (0, 2, 5)), # 64-bit LSB.
|
||||
+ (2, 2): (">QQQIHHH", ">IIQQQQQQ", (0, 2, 5)), # 64-bit MSB.
|
||||
+ }[(ident[4], ident[5])]
|
||||
except KeyError:
|
||||
return None
|
||||
else:
|
||||
diff --git a/tests/test_musllinux.py b/tests/test_musllinux.py
|
||||
index d2c87ca..2623bdb 100644
|
||||
--- a/tests/test_musllinux.py
|
||||
+++ b/tests/test_musllinux.py
|
||||
@@ -101,14 +101,15 @@ def test_parse_ld_musl_from_elf_no_interpreter_section():
|
||||
with BIN_MUSL_X86_64.open("rb") as f:
|
||||
data = f.read()
|
||||
|
||||
- # Change all sections to *not* PT_INTERP.
|
||||
- unpacked = struct.unpack("16BHHIQQQIHHH", data[:58])
|
||||
+ # Change all sections to *not* PT_INTERP. We are explicitly using LSB rules
|
||||
+ # because the binaries are in LSB.
|
||||
+ unpacked = struct.unpack("<16BHHIQQQIHHH", data[:58])
|
||||
*_, e_phoff, _, _, _, e_phentsize, e_phnum = unpacked
|
||||
for i in range(e_phnum + 1):
|
||||
sb = e_phoff + e_phentsize * i
|
||||
se = sb + 56
|
||||
- section = struct.unpack("IIQQQQQQ", data[sb:se])
|
||||
- data = data[:sb] + struct.pack("IIQQQQQQ", 0, *section[1:]) + data[se:]
|
||||
+ section = struct.unpack("<IIQQQQQQ", data[sb:se])
|
||||
+ data = data[:sb] + struct.pack("<IIQQQQQQ", 0, *section[1:]) + data[se:]
|
||||
|
||||
assert _parse_ld_musl_from_elf(io.BytesIO(data)) is None
|
||||
|
||||
--
|
||||
2.36.1
|
||||
|
@ -1,3 +1,9 @@
|
||||
-------------------------------------------------------------------
|
||||
Sun May 29 09:22:42 UTC 2022 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
|
||||
|
||||
- Add patch to fix testsuite on big-endian targets
|
||||
+ fix-big-endian-build.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 25 07:56:29 UTC 2022 - Hui-Zhi Zhao <hui.zhi.zhao@suse.com>
|
||||
|
||||
|
@ -37,6 +37,9 @@ URL: https://github.com/pypa/packaging
|
||||
Source: https://files.pythonhosted.org/packages/source/p/packaging/packaging-%{version}.tar.gz
|
||||
# Restore compatibility with 20.4 for setuptools
|
||||
Patch1: no-legacyversion-warning.patch
|
||||
# Fix testsuite on big-endian systems
|
||||
# see: https://github.com/pypa/packaging/pull/538
|
||||
Patch2: fix-big-endian-build.patch
|
||||
BuildRequires: %{python_module devel}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: python-rpm-macros
|
||||
|
Loading…
Reference in New Issue
Block a user