• Bug#1099864: RM: libsmbios -- ROM; Dead upstream, no remaining consumer

    From Faidon Liambotis@21:1/5 to Mario Limonciello on Sun Mar 9 10:50:01 2025
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Steve McIntyre@21:1/5 to Mario Limonciello on Tue Mar 11 22:00:01 2025
    On Sun, Mar 09, 2025 at 10:14:30AM -0500, Mario Limonciello wrote:
    On 3/9/25 04:41, Faidon Liambotis wrote:

    ...

    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?

    It's a lot of C code, and most if not all the functionality is covered >natively by the kernel in other ways. While it had static analysis done with >coverity a number of years back when I was at Dell I don't know how well it >has aged as other dependencies and libraries it uses have moved along.

    AFAICS in sid the only rdeps are other binaries from the libsmbios
    source package. It sounds like RM is the right answer?

    --
    Steve McIntyre, Cambridge, UK. steve@einval.com Can't keep my eyes from the circling sky,
    Tongue-tied & twisted, Just an earth-bound misfit, I...

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)