Update rocm-core package to include rdhc script (#1375)

* Add rdhc script in to rocm-core package
* Create the rdhc symlink within the package itself.
* Removed hard-coding of rocm-core name, used CORE_TARGET instead.
* [RDHC] Check if the required pip pkgs are present and warn .
   rdhc checks the required pip packages are present or not.
   if not warns the user and exits gracefully.

Signed-off-by: Saravanan Solaiyappan <saravanan.solaiyappan@amd.com>
Dieser Commit ist enthalten in:
solaiys
2025-10-17 10:34:00 +05:30
committet von GitHub
Ursprung 221807b69d
Commit d348797017
2 geänderte Dateien mit 100 neuen und 3 gelöschten Zeilen
+49
Datei anzeigen
@@ -149,6 +149,30 @@ if(BUILD_SHARED_LIBS)
DESTINATION ${CMAKE_INSTALL_LIBDIR}
COMPONENT CORE_RUNTIME )
# Install rdhc files
install ( FILES
${CMAKE_CURRENT_SOURCE_DIR}/rdhc/README.md
${CMAKE_CURRENT_SOURCE_DIR}/rdhc/requirements.txt
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/rdhc
COMPONENT CORE_RUNTIME)
install ( PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/rdhc/rdhc.py
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${CORE_TARGET}
COMPONENT CORE_RUNTIME )
# Create symlink for rdhc in bin directory
add_custom_target ( rdhc_symlink_lib ALL
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E create_symlink
../${CMAKE_INSTALL_LIBEXECDIR}/${CORE_TARGET}/rdhc.py
rdhc-link )
install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/rdhc-link
DESTINATION ${CMAKE_INSTALL_BINDIR}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
RENAME rdhc
COMPONENT CORE_RUNTIME )
else()
install ( FILES ${BUILD_DIR}/version
DESTINATION .info
@@ -168,6 +192,31 @@ else()
install ( FILES ${BUILD_DIR}/rocmmod
DESTINATION ${CMAKE_INSTALL_LIBDIR}
COMPONENT ${STATIC_COMP_TYPE} )
# Install rdhc files
install ( FILES
${CMAKE_CURRENT_SOURCE_DIR}/rdhc/README.md
${CMAKE_CURRENT_SOURCE_DIR}/rdhc/requirements.txt
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/rdhc
COMPONENT ${STATIC_COMP_TYPE})
install ( PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/rdhc/rdhc.py
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${CORE_TARGET}
COMPONENT ${STATIC_COMP_TYPE} )
# Create symlink for rdhc in bin directory
add_custom_target ( rdhc_symlink_static ALL
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E create_symlink
../${CMAKE_INSTALL_LIBEXECDIR}/${CORE_TARGET}/rdhc.py
rdhc-link-static )
install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/rdhc-link-static
DESTINATION ${CMAKE_INSTALL_BINDIR}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
RENAME rdhc
COMPONENT ${STATIC_COMP_TYPE} )
endif()
## Cmake module config file configurations
+51 -3
Datei anzeigen
@@ -7,10 +7,57 @@ import json
import argparse
import glob
import re
import yaml
import sys
import textwrap
from enum import Enum
from prettytable import PrettyTable
# Check for required packages before importing them
def check_required_packages():
"""Check if required Python packages are installed"""
missing_packages = []
required_packages = {
'prettytable': 'prettytable',
'yaml': 'PyYAML'
}
for import_name, package_name in required_packages.items():
try:
__import__(import_name)
except ImportError:
missing_packages.append(package_name)
if missing_packages:
print("\n" + "="*70)
print("WARNING: Missing Required Python Packages")
print("="*70)
print(f"\nThe following packages are required but not installed:")
for pkg in missing_packages:
print(f" - {pkg}")
print("\nTo install the missing packages, run:")
print(f" pip3 install {' '.join(missing_packages)}")
print("\nOr install all requirements:")
print(" pip3 install -r <ROCM_INSTALL_PATH>/share/rdhc/requirements.txt")
print(" Or\n pip3 install -r requirements.txt")
print("\n" + "="*70 + "\n")
print("Exiting...")
sys.exit(1)
else:
return True
# Check packages before importing
packages_available = check_required_packages()
# Now import the packages
try:
from prettytable import PrettyTable
import yaml
except ImportError:
print("WARNING: Unable to import the required Python Packages !!!!")
print("Exiting...")
sys.exit(1)
# Define test status enum
class TestStatus(Enum):
@@ -1748,7 +1795,8 @@ def main():
parser = argparse.ArgumentParser(description="ROCm Deployment Health Check Tool",
formatter_class=argparse.RawDescriptionHelpFormatter,
usage="sudo -E ./rdhc.py [options]",
epilog="Usage examples:\n"+
epilog="Refer the README @<ROCM_INSTALL_PATH>/share/rdhc/README.md \n"+
"Usage examples:\n"+
"# Run quick test (default tests only)\n" +
"sudo -E ./rdhc.py\n" +
"\n"+