Hi Mario, On Sun, Mar 09, 2025 at 12:27:38AM -0600, Mario Limonciello wrote: > The libsmbios package previously had consumers in the fwupd package for Dell > systems. > This has been changed in fwupd and it directly talks to the kernel instead of > using > the libsmbios library. > > There have been bug reports forwarded upstream that are totally ignored. > There hasn't > been any changes upstream in 5 years. > > The project is effectively dead upstream and tech debt to maintain in Debian > without > much utility or need.
AIUI you are the previous upstream for this package as well as a contributor to relevant bits in upstream Linux. (That's a good opportunity to say: thank you for your work!) I looked into smbios recently due to an FTBFS RC bug (that Steve McIntyre fixed almost immediately), #1092525, and left a comment there. I am not involved with its maintenance, just a drive-by interested party. With you being the subject-matter expert, perhaps it's worth rehashing here and get your take as well! First of all, it is also my understanding that libsmbios does not have any reverse dependencies/third-party consumers in Debian. However, src:libsmbios also produces the binary "smbios-utils" with several command-line utilities. So it's not just a matter of whether the library is useful, but also whether the utilities themselves are. As I mentioned in #1092525, I am aware that most, if not all, of the low-level functionality of these CLI utilities can now be performed using the dell_* (dell_smbios especially) Linux kernel modules & sysfs. However, to my knowledge, there is no clear replacement in terms of a higher-level interface. For example, looking at the very straightforward "getSystemId": Libsmbios version: 2.4.3 Product Name: Latitude 7420 Vendor: Dell Inc. BIOS Version: 1.34.2 System ID: 0x0A36 Service Tag: <removed> Express Service Code: <removed> Asset Tag: Not Specified Property Ownership Tag: The modern alternative is to fetch e.g. the Service Tag with: cat /sys/class/dmi/id/chassis_serial However, listing the Express Service Code is: echo $((36#$(cat /sys/class/dmi/id/chassis_serial))) So you need to know where to look, and what conversion to run. In an even more pronounced example, "smbios-token-ctl" can fetch and set a bunch of tokens ("BIOS" settings) with their names and descriptions: # smbios-token-ctl ================================================================================ Token: 0x001e - Speaker (Disable) value: bool = false Desc: Disable the built-in speaker. ================================================================================ Token: 0x0028 - Auto-on (Disable) value: bool = true Desc: Disable the system's auto-on capabilities ================================================================================ [...] The equivalent sysfs interface is: # cat /sys/devices/platform/dell-smbios.0/tokens/001e_value; echo 00000000 However, there is no description of any of those (234 in my system) tokens. AFAIK the token ID->name is encoded in this CSV in the libsmbios source package: https://github.com/dell/libsmbios/blob/master/doc/token_list.csv I think fwupd implements some of this functionality, but I am not sure if it's equivalent or if there is feature parity. As I final data point, I believe smbios-battery-ctl's functionality was only very recently implemented in the kernel (v6.12); so while libsmbios is indeed abandonware for the past 5 years, it was certainly still the only way to perform a very useful function until a few months ago. So all in all, I suppose the question is: are there modern replacements for all of the utilities shipped by smbios-utils? If not, and given smbios-utils now builds and works, are there any downsides in continuing to ship it in unstable and trixie? Thanks for your input in advance! Regards, Faidon