Updated patch.
The previous patch missed a patch for in-package testing.
Helge
[PATCH v2] Add support for hppa / parisc CPUs

Allow to recognize the parisc cpus.
This fixes dependend packages from build failures, e.g.
python-pyppmd, see:
https://buildd.debian.org/status/fetch.php?pkg=python-pyppmd&arch=hppa&ver=1.1.1%2Bds-1&stamp=1736247366&raw=0

Signed-off-by: Helge Deller <del...@gmx.de>

v2:
- fix check in /tests/test_invalid_cpu.py


diff -up ./cpuinfo/cpuinfo.py.org ./cpuinfo/cpuinfo.py
--- ./cpuinfo/cpuinfo.py.org	2025-01-07 13:36:31.820569455 +0000
+++ ./cpuinfo/cpuinfo.py	2025-01-07 14:05:18.818776037 +0000
@@ -360,6 +360,7 @@ def _read_windows_registry_key(key_name,
 def _check_arch():
 	arch, bits = _parse_arch(DataSource.arch_string_raw)
 	if not arch in ['ARM_7', 'ARM_8',
+	                'HPPA_32', 'HPPA_64',
 	                'LOONG_32', 'LOONG_64',
 	                'MIPS_32', 'MIPS_64',
 	                'PPC_32', 'PPC_64',
@@ -368,7 +369,7 @@ def _check_arch():
 	                'S390X',
 	                'X86_32', 'X86_64']:
 		raise Exception("py-cpuinfo currently only works on X86 "
-		                "and some ARM/LoongArch/MIPS/PPC/RISCV/SPARC/S390X CPUs.")
+				"and some ARM/HPPA/LoongArch/MIPS/PPC/RISCV/SPARC/S390X CPUs." )
 
 def _obj_to_b64(thing):
 	import pickle
@@ -841,6 +842,14 @@ def _parse_arch(arch_string_raw):
 	elif re.match(r'^loongarch64$', arch_string_raw):
 		arch = 'LOONG_64'
 		bits = 64
+	# HPPA
+	elif re.match(r'^parisc$|^parisc64$', arch_string_raw):
+		if platform.architecture()[0].startswith("32"):
+			arch = 'HPPA_32'
+			bits = 32
+		else:
+			arch = 'HPPA_64'
+			bits = 64
 
 	return (arch, bits)
 
diff -up ./tests/test_invalid_cpu.py.org ./tests/test_invalid_cpu.py
--- ./tests/test_invalid_cpu.py.org	2025-01-07 14:41:41.926558657 +0000
+++ ./tests/test_invalid_cpu.py	2025-01-07 14:41:48.962519113 +0000
@@ -33,4 +33,4 @@ class TestInvalidCPU(unittest.TestCase):
 			cpuinfo._check_arch()
 			self.fail('Failed to raise Exception')
 		except Exception as err:
-			self.assertEqual('py-cpuinfo currently only works on X86 and some ARM/LoongArch/MIPS/PPC/RISCV/SPARC/S390X CPUs.', err.args[0])
+			self.assertEqual('py-cpuinfo currently only works on X86 and some ARM/HPPA/LoongArch/MIPS/PPC/RISCV/SPARC/S390X CPUs.', err.args[0])

Reply via email to