Bug 1806705

Summary: Release python3-dmidecode for aarch64 and i686
Product: Red Hat Enterprise Linux 8 Reporter: Chris Snyder <csnyder>
Component: python-dmidecodeAssignee: lijiang
Status: CLOSED NOTABUG QA Contact: Jeff Bastian <jbastian>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 8.2CC: ruyang, rvr
Target Milestone: rc   
Target Release: 8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-03-18 08:56:14 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1674330    

Description Chris Snyder 2020-02-24 19:25:22 UTC
Description of problem:
In the attached bug 1804454 it can be seen that the python3-dmidecode library is used, amongst other things, to gather the system uuid. When a system is a virtual system this system uuid is used for entitlement purposes to help enable customer usage of host-limited subscriptions. These are subscriptions which require us, Red Hat or the customer's Satellite, to know which virtual machine is running on which host. The system uuid's are utilized for this purpose as both the hypervisor and guest can agree on and report this same value.

Without python3-dmidecode library, subscription-manager is unable to cleanly acquire this and other dmi info useful for subscription purposes.

We are working on a fall back solution of shelling out and parsing the output of dmidecode the cli tool, but this solution will likely be to complex to maintain and provide the same set of info we require in a stable manner.

Version-Release number of selected component (if applicable):
The latest version.

How reproducible:
100%

Steps to Reproduce:
1. On a registered entitled new RHEL 8 aarch64 system, attempt to install python3-dmidecode.

Actual results:
python3-dmidecode is not found from the baseos repos.


Expected results:
python3-dmidecode is available in the baseos repos.

Comment 1 Jeff Bastian 2020-02-26 16:27:41 UTC
python-dmidecode does not work on aarch64 systems because it tries to read the raw /dev/mem to find the SMBIOS tables, but /dev/mem is disabled on our aarch64 kernel (it can trigger kernel panics when reading from protected address ranges).  The module should really be reading /sys/firmware/dmi/entries/* instead, however, upstream development on this module has been dead for several years.

We made an effort to switch tooling away from python-dmidecode a couple years ago, but it looks like subscription-manager still needs work.  See the following for more info:
 * bug 1540294 - update subscription-manager to use dmidecode instead of python-dmidecode
 * bug 1509938 - python-dmidecode provides no information on aarch64 and raises some warnings
 * bug 1566707 - update abrt to use dmidecode instead of python-dmidecode
 * bug 1566708 - update rhn-client-tools to use dmidecode instead of python-dmidecode
 * bug 1456956 - disable /dev/mem and /dev/port for aarch64

Ideally, dmidecode would have an option to print output in a machine readable format like JSON or XML so other tools like subscription-manager could easily parse it, but at the moment it only has human-readable output.

If you just need the system UUID, you can have subscription-manager run `dmidecode -s system-uuid` and read the output.  No fancy parsing is necessary for this info.

Out of curiosity, why do you need an i686 module?  We don't ship RHEL8 for 32-bit x86.

Comment 2 lijiang 2020-03-17 04:58:37 UTC
This has been disabled for aarch64 and i686 builds, so I would suggest to close as NOTABUG. Thanks.

Comment 3 Red Hat Bugzilla 2023-09-14 05:53:16 UTC
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 1000 days