Review: amdsmi 10.1-1~exp1
Package Information
| Description | AMD System Management Interface - executable amdsmi (AMD System Management Interface Library) is a C library for Linux providing user space interfaces to monitor and control AMD GPU devices. This package provides the amd-smi executable. |
|---|---|
| Maintainer | Debian ROCm Team <debian-ai@lists.debian.org> |
| Changed By | Talha Can Havadar <havadartalha@gmail.com> |
| Sponsor | bayle@debian.org |
| Distribution | experimental |
| Architecture | amd64 |
| VCS | git: https://salsa.debian.org/rocm-team/amdsmi.git (browse) |
| Popcon Installs | 240 |
| Binary NEW | Yes (new binary packages of a source already in sid) |
| Tracker | https://tracker.debian.org/pkg/amdsmi |
| Uploaded | 12 days ago |
New Package Report
.changes
| Version | 10.1-1~exp1 |
|---|---|
| Changed-By | Talha Can Havadar <havadartalha@gmail.com> |
| Architecture | source amd64 |
| Distribution | experimental |
| Date | Mon, 12 Oct 2026 11:49:20 +0200 |
| Source | amdsmi |
Changelog
amdsmi (10.1-1~exp1) experimental; urgency=medium
.
[ Talha Can Havadar ]
* New upstream version 10.1
* d/p/0001-modify-shared-lib-loading-path.patch: drop as now redundant
* d/p/0002-use-system-libesmi-dev.patch: refresh for 10.1
* d/amd-smi.install: install python3 dist-packages
.
[ Bruno Bernardo de Moura ]
* d/amd-smi.install: add missing file
* Drop obsolete patches:
- d/p/0001-modify-esmi-path.patch
- d/p/0002-remove-built-in-package.patch
- d/p/0005-Fix-compilation-against-newer-libdrm.patch
- d/p/0006-Remove-some-unnecessary-header-includes-and-adjust-o.patch
- d/p/0001-ROCM-186-amd-smi-Add-support-for-a-VRAM-and-GTT-tuni.patch
* d/control: add missing dependencies
* d/p/series: enumerate remaining patch
* debian: remove local esmi_ib_library
* d/libamd-smi-dev.install: add missing files
* d/not-installed: add missing file
* d/copyright: update stanzas
* d/libamd-smi26.shlibs: bump version to 7.2.14
* d/watch: update upstream tag to follow therock-*
.
[ Igor Luppi ]
* d/p: update 0002-use-system-libesmi-dev.patch for 10.0 changes
* d/{control,libamd-smi*}: rename libamd-smi26 to libamd-smi27 for the new
libamd_smi.so.27 SONAME
* d/control: bump debhelper-compat to 14.dsc
| Section | utils |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | amd-smi deb utils optional arch=amd64 libamd-smi-dev deb libdevel optional arch=amd64 libamd-smi27 deb libs optional arch=amd64 libgoamdsmi-shim64-1 deb libs optional arch=amd64 libgoamdsmi-shim64-dev deb libdevel optional arch=amd64 |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Source: https://github.com/ROCm/rocm-systems/releases
Upstream-Name: amdsmi
Comment: amdsmi was relicensed to MIT/Expat in 2024: https://github.com/ROCm/amdsmi/commit/3052ad42205f8939c88e7a84dc9c00b39fbceae0
Files: *
Copyright: Advanced Micro Devices, Inc.
License: Expat
Files: include/amd_smi/impl/amd_hsmp.h
Copyright: 2022-2024, Suma Hegde <suma.hegde@amd.com>
2024, Arnd Bergmann <arnd@arndb.de>
2024, Bjorn Helgaas <bhelgaas@google.com>
License: GPL-2 with Linux Syscall Note Exception
Comment: This file was directly copied from the linux kernel
File is https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/tree/arch/x86/include/uapi/asm/amd_hsmp.h
Copyright attribution was written by looking at the log for that file in git
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/arch/x86/include/uapi/asm/amd_hsmp.h
Files: include/libdrm/amdgpu_drm.h
Copyright: 2014, Advanced Micro Devices, Inc.
2002, Tungsten Graphics, Inc.
2000, VA Linux Systems, Inc.
2000, Precision Insight, Inc.
License: Expat
Files: include/amd_smi/impl/xf86drm.h
Copyright: 1999-2000, Precision Insight, Inc.
2000, VA Linux Systems, Inc.
License: Expat
Files: third_party/shared_mutex/*
Copyright: 2019-2024, Advanced Micro Devices, Inc.
2018, Oleg Yamnikov
License: Expat
Files: debian/*
Copyright: 2024, Xuanteng Huang <xuanteng.huang@outlook.com>
2025, Cordell Bloor <cgmb@slerp.xyz>
2025, Mario Limonciello <superm1@gmail.com>
2025, Tim Flink <tflink@tirfa.com>
2026, Igor Luppi <igor.luppi@canonical.com>
2026, Talha Can Havadar <havadartalha@gmail.com>
2026, Bruno Bernardo de Moura <bruno.moura@canonical.com>
License: Expat
Files: include/libdrm/drm.h
Copyright: 1999, Precision Insight, Inc., Cedar Park, Texas.
2000, VA Linux Systems, Inc., Sunnyvale, California.
License: Expat
Files: include/libdrm/drm_fourcc.h
Copyright: 2011, Intel Corporation
License: Expat
Files: include/libdrm/drm_mode.h
Copyright: 2007, Dave Airlie <airlied@linux.ie>
2007, Jakob Bornecrantz <wallbraker@gmail.com>
2007-2008, Intel Corporation
2007-2008, Tungsten Graphics, Inc., Cedar Park, TX., USA
2008, Red Hat Inc.
License: Expat
License: Expat
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the “Software”), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
License: GPL-2 with Linux Syscall Note Exception
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, version 2 of the License.
.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
.
The complete text of the GNU General Public License
can be found in /usr/share/common-licenses/GPL-2 file.
.
.
Additionally, the following exception is granted:
NOTE! This copyright does *not* cover user programs that use kernel services
by normal system calls - this is merely considered normal use of the kernel,
and does *not* fall under the heading of "derived work". Also note that the
GPL below is copyrighted by the Free Software Foundation, but the instance of
code that it refers to (the Linux kernel) is copyrighted by me and others who
actually wrote it.
.
Also note that the only valid version of the GPL as far as the kernel is
concerned is _this_ particular version of the license (ie v2, not v2.2 or v3.x
or whatever), unless explicitly otherwise stated.
.
Comment: See https://spdx.org/licenses/Linux-syscall-note.html
Review Information
accepted — allocated to awm 11 days ago, started 11 days ago, completed 11 days ago.
Final Comment
Hi,
Some issues found during review that you may want to address...
- [important] [packaging] amd-smi runtime package depends on libamd-smi-dev instead of the runtime library
libamd-smi27
- Files:
debian/control (amd-smi stanza, Depends line ~26) - Evidence:
Depends: libamd-smi-dev (= ${binary:Version}),with the commentamd-smi looks for libamd_smi.so, so it depends on the -dev package. The shipped loader resolves the versioned SONAME, not the bare unversioned symlink: py-interface/amdsmi_wrapper.py has_AMDSMI_LIB_SONAME = "libamd_smi.so.27"and falls back toctypes.CDLL(_AMDSMI_LIB_SONAME)via the dynamic linker. - Problem: The amd-smi package is a pure-Python CLI that only needs
libamd_smi.so.27at runtime, which libamd-smi27 provides. Depending on the -dev package drags the headers, static lib and CMake config into everyamd-smiinstall (the only reason it works is that libamd-smi-dev itself depends on libamd-smi27). Depending on a -dev package from a non-development binary package is wrong practice and lintian flags the pattern. - Fix: Change to
Depends: libamd-smi27 (= ${binary:Version})and drop the misleading comment (the loader keys on thelibamd_smi.so.27SONAME, see amdsmi_wrapper.py).
- [important] [packaging] libamd-smi27 and libgoamdsmi-shim64-1 depend on libdrm-dev instead of the runtime
package libdrm2
- Files:
debian/control (libamd-smi27 and libgoamdsmi-shim64-1 stanzas) - Evidence: Both have
Depends: libdrm-dev, ${misc:Depends}, ${shlibs:Depends}. The library does not link libdrm; the AMD-GPU paths dlopen it at runtime via AMDSmiLibraryLoader: src/amd_smi/amd_smi_drm.cclib_loader_.load(libdrm_amdgpu_sonames()), wherelibdrm_amdgpu_sonames()(amd_smi_lib_loader.cc) returns thelibdrm_amdgpu.soSONAME, which lives in the runtime package libdrm2. - Problem: libdrm is only used through dlopen, so dh_shlibdeps cannot generate the dependency; the manual dependency targets the wrong (development) package. libdrm-dev pulls in headers plus unrelated driver libraries (libdrm-intel1, libdrm-nouveau2, libdrm-freedreno1, libdrm-radeon1, libpciaccess-dev) into every install of a
libspackage instead of the single runtime library. This also violates the Policy guidance that packages using a shared library via dlopen should compute the appropriate dependency (Policy 8.6.1). - Fix: Replace
libdrm-devwithlibdrm2in both stanzas. (libgoamdsmi-shim64-1 already gets libamd-smi27 from${shlibs:Depends}via the libamd-smi27.shlibs file; libdrm2 then comes transitively.)
- [minor] [packaging] Dead and stale test-package configuration
- Files:
debian/libamd-smi27-tests.install; debian/tests/control; debian/tests/upstream-binaries - Evidence: The
libamd-smi27-testsstanza in debian/control is commented out andBUILD_TESTSis disabled in debian/rules, leavinglibamd-smi27-tests.installorphaned. debian/tests/control's disabled block still names the long-renamedlibamd-smi0-tests. The (also disabled) driver debian/tests/upstream-binaries runs$TESTDIR/amdsmitst(the variable defined is$TESTSDIR) and ends with top-levelreturn $EXITCODEinstead ofexit. - Problem: Orphaned/stale references that will bite anyone re-enabling the tests, and the upstream-binaries script contains a real bug (
$TESTDIRis empty,returnoutside a function) hidden by the fact that no test uses it. - Fix: Either remove libamd-smi27-tests.install and the commented-out blocks, or if the tests are intended to be shipped, re-enable the package/stanza and fix the stale package name and the
$TESTDIR/returnbugs.
Hope this is helpful.
Thanks!