Bug#1115069: libamd-smi0: missing symbols / incorrect soname
Package: libamd-smi0
Version: 6.4.3+ds-1
Severity: important
X-Debbugs-Cc: cgmb@debian.org
Dear Maintainer,
There are a large number of symbols that have been removed from
libamd-smi0 between version 6.1.2+ds-1 on trixie and 6.4.3+ds-1 in
testing, including:
rsmi_dev_metrics_avg_dclock0_frequency_get
rsmi_dev_metrics_avg_dclock1_frequency_get
rsmi_dev_metrics_avg_gfx_activity_get
rsmi_dev_metrics_avg_gfx_clock_frequency_get
rsmi_dev_metrics_avg_mm_activity_get
rsmi_dev_metrics_avg_soc_clock_frequency_get
rsmi_dev_metrics_avg_socket_power_get
rsmi_dev_metrics_avg_uclock_frequency_get
rsmi_dev_metrics_avg_umc_activity_get
rsmi_dev_metrics_avg_vclock0_frequency_get
rsmi_dev_metrics_avg_vclock1_frequency_get
rsmi_dev_metrics_curr_dclk0_get
rsmi_dev_metrics_curr_dclk1_get
rsmi_dev_metrics_curr_fan_speed_get
rsmi_dev_metrics_curr_gfxclk_get
rsmi_dev_metrics_curr_socclk_get
rsmi_dev_metrics_curr_socket_power_get
rsmi_dev_metrics_curr_uclk_get
rsmi_dev_metrics_curr_vclk0_get
rsmi_dev_metrics_curr_vclk1_get
rsmi_dev_metrics_energy_acc_get
rsmi_dev_metrics_firmware_timestamp_get
rsmi_dev_metrics_gfx_activity_acc_get
rsmi_dev_metrics_gfxclk_lock_status_get
To quote the Debian Policy Manual, Section 8.1 [1]:
> Every time the shared library ABI changes in a way that could break
> binaries linked against older versions of the shared library, the SONAME
> of the library and the corresponding name for the binary package
> containing the runtime shared library should change. Normally, this
> means the SONAME should change any time an interface is removed from the
> shared library or the signature of an interface (the number of
> parameters or the types of parameters that it takes, for example) is
> changed. This practice is vital to allowing clean upgrades from older
> versions of the package and clean transitions between the old ABI and
> new ABI without having to upgrade every affected package simultaneously.
As such, it seems that the SONAME of libamd-smi0 should be changed. I
notice that upstream ships libamd-smi.so in ROCm 6.4.3 as
libamd-smi.so.25 so perhaps we should be changing the Debian package to
match. It appears that this value is determined upstream at build time
by inspecting the tags on the git repository. The major version of 0 that
we are using in Debian is merely because that tag is not being
found (due to building from a tarball rather than from the upstream repo).
It is not a violation of a mandatory Debian to make an ABI breaking
change without changing the SONAME, this still seems like it will cause
problems down the line for users upgrading from Trixie to Forky. I would
suggest that we could fix both problems by uploading a new version of
amdsmi with libamd-smi25 and removing libamd-smi0 6.4.3+ds-1 from testing.
Sincerely,
Cory Bloor
[1]: https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime
-- System Information:
Debian Release: forky/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 6.12.38+deb13-amd64 (SMP w/32 CPU threads; PREEMPT)
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: unable to detect
Versions of packages libamd-smi0 depends on:
ii libc6 2.41-12
ii libdrm-dev 2.4.125-2
ii libgcc-s1 15.2.0-4
ii libstdc++6 15.2.0-4
libamd-smi0 recommends no packages.
libamd-smi0 suggests no packages.
-- no debconf information
Reply to: