|
|
|
@ -1,23 +1,45 @@ |
|
|
|
|
{ lib, buildPythonApplication, fetchFromGitHub }: |
|
|
|
|
{ lib, stdenv, fetchFromGitHub, cmake, python3 }: |
|
|
|
|
|
|
|
|
|
buildPythonApplication rec { |
|
|
|
|
stdenv.mkDerivation rec { |
|
|
|
|
pname = "rocm-smi"; |
|
|
|
|
version = "4.0.0"; |
|
|
|
|
version = "4.1.0"; |
|
|
|
|
|
|
|
|
|
src = fetchFromGitHub { |
|
|
|
|
owner = "RadeonOpenCompute"; |
|
|
|
|
repo = "ROC-smi"; |
|
|
|
|
repo = "rocm_smi_lib"; |
|
|
|
|
rev = "rocm-${version}"; |
|
|
|
|
hash = "sha256-0QqaBMkqRVEl89x3hvWQGAgt7LbtMZPhuf7KenQYHaQ="; |
|
|
|
|
hash = "sha256-LEaC1XhmyoVWrpL05MhgN02LVT2rLKdnw9g2QdfM/uE="; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
format = "other"; |
|
|
|
|
nativeBuildInputs = [ cmake python3.pkgs.wrapPython ]; |
|
|
|
|
|
|
|
|
|
dontConfigure = true; |
|
|
|
|
dontBuild = true; |
|
|
|
|
postPatch = '' |
|
|
|
|
# Upstream ROCm is installed in an /opt directory. For this reason, |
|
|
|
|
# it does not completely follow FHS layout, creating top-level |
|
|
|
|
# rocm_smi, oam, and bindings top-level directories. Since rocm-smi |
|
|
|
|
# is a package that is typically installed, we change the paths to |
|
|
|
|
# follow FHS more closely. |
|
|
|
|
|
|
|
|
|
installPhase = '' |
|
|
|
|
install -Dm0755 rocm_smi.py $out/bin/rocm-smi |
|
|
|
|
# rocm_smi libraries and headers go into lib and include. Bindings |
|
|
|
|
# go into lib/rocm_smi/bindings. |
|
|
|
|
substituteInPlace rocm_smi/CMakeLists.txt \ |
|
|
|
|
--replace "DESTINATION rocm_smi/" "DESTINATION " \ |
|
|
|
|
--replace "DESTINATION bindings" "DESTINATION lib/rocm_smi/bindings" \ |
|
|
|
|
--replace "../rocm_smi/bindings/rsmiBindings.py" "../lib/rocm_smi/bindings/rsmiBindings.py" \ |
|
|
|
|
--replace 'DESTINATION ''${ROCM_SMI}/' "DESTINATION " |
|
|
|
|
|
|
|
|
|
# oam libraries and headers go into lib and include. |
|
|
|
|
substituteInPlace oam/CMakeLists.txt \ |
|
|
|
|
--replace "DESTINATION oam/" "DESTINATION " \ |
|
|
|
|
--replace 'DESTINATION ''${OAM_NAME}/' "DESTINATION " |
|
|
|
|
|
|
|
|
|
# Update relative path to librocm_smi64 in the Python binding. |
|
|
|
|
substituteInPlace python_smi_tools/rsmiBindings.py \ |
|
|
|
|
--replace "/../lib/librocm_smi64.so" "/../../librocm_smi64.so" |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
postInstall = '' |
|
|
|
|
wrapPythonProgramsIn $out/bin |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
meta = with lib; { |
|
|
|
@ -25,6 +47,6 @@ buildPythonApplication rec { |
|
|
|
|
homepage = "https://github.com/RadeonOpenCompute/ROC-smi"; |
|
|
|
|
license = with licenses; [ mit ]; |
|
|
|
|
maintainers = with maintainers; [ danieldk ]; |
|
|
|
|
platforms = platforms.linux; |
|
|
|
|
platforms = [ "x86_64-linux" ]; |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|