diff --git a/projects/amdsmi/DEBIAN/postinst.in b/projects/amdsmi/DEBIAN/postinst.in index 5aad321de0..d991cf6b2a 100755 --- a/projects/amdsmi/DEBIAN/postinst.in +++ b/projects/amdsmi/DEBIAN/postinst.in @@ -130,7 +130,7 @@ do_install_amdsmi_python_lib() { # Remove old python library local pip_list_output - pip_list_output=$(python3 -m pip list --disable-pip-version-check) + pip_list_output=$(python3 -m pip list --format=columns --disable-pip-version-check) # check pip list output for amdsmi if [[ $pip_list_output == *"amdsmi"* ]]; then echo "Detected old AMD-SMI python library (amdsmi)..." @@ -138,6 +138,18 @@ do_install_amdsmi_python_lib() { echo "Removed old AMD-SMI python library (amdsmi)..." fi + # upgrade pip if it's an ancient version + # otherwise the amdsmi install will fail + local pip_version + pip_version=$(python3 -m pip --version | grep -Eo '^[^\ ]+ ([0-9]+)' | grep -Eo '[0-9]+$') + if [[ "$pip_version" -lt 19 ]]; then + echo "Detected ancient pip version ($pip_version)... Upgrading..." + python3 -m pip install --upgrade pip --quiet --disable-pip-version-check + fi + unset pip_version + + # install PyYAML dependency + python3 -m pip install 'PyYAML>=5.1' --quiet --disable-pip-version-check --ignore-installed # install python library at @CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi local python_lib_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@ python3 -m pip install "$python_lib_path" --quiet --disable-pip-version-check diff --git a/projects/amdsmi/DEBIAN/prerm.in b/projects/amdsmi/DEBIAN/prerm.in index d5b7cfb08a..28af94f143 100755 --- a/projects/amdsmi/DEBIAN/prerm.in +++ b/projects/amdsmi/DEBIAN/prerm.in @@ -61,13 +61,13 @@ rm_python_lib() { # Remove old python library local pip_list_output - pip_list_output=$(python3 -m pip list --disable-pip-version-check) + pip_list_output=$(python3 -m pip list --format=columns --disable-pip-version-check) # check pip list output for amdsmi if [[ $pip_list_output == *"amdsmi"* ]]; then PIP_ROOT_USER_ACTION=ignore PIP_BREAK_SYSTEM_PACKAGES=1 python3 -m pip uninstall amdsmi --yes --quiet --disable-pip-version-check fi - pip_list_output=$(python3 -m pip list --disable-pip-version-check) + pip_list_output=$(python3 -m pip list --format=columns --disable-pip-version-check) # check pip list output for amdsmi if [[ $pip_list_output == *"amdsmi"* ]]; then echo "[WARNING] AMD-SMI python library (amdsmi) is still installed in pip. "\ diff --git a/projects/amdsmi/RPM/post.in b/projects/amdsmi/RPM/post.in index cca34aa9ee..a58a5f4e8f 100755 --- a/projects/amdsmi/RPM/post.in +++ b/projects/amdsmi/RPM/post.in @@ -129,7 +129,7 @@ do_install_amdsmi_python_lib() { # Remove old python library local pip_list_output - pip_list_output=$(python3 -m pip list --disable-pip-version-check) + pip_list_output=$(python3 -m pip list --format=columns --disable-pip-version-check) # check pip list output for amdsmi if [[ $pip_list_output == *"amdsmi"* ]]; then echo "Detected old AMD-SMI python library (amdsmi)..." @@ -137,6 +137,18 @@ do_install_amdsmi_python_lib() { echo "Removed old AMD-SMI python library (amdsmi)..." fi + # upgrade pip if it's an ancient version + # otherwise the amdsmi install will fail + local pip_version + pip_version=$(python3 -m pip --version | grep -Eo '^[^\ ]+ ([0-9]+)' | grep -Eo '[0-9]+$') + if [[ "$pip_version" -lt 19 ]]; then + echo "Detected ancient pip version ($pip_version)... Upgrading..." + python3 -m pip install --upgrade pip --quiet --disable-pip-version-check + fi + unset pip_version + + # install PyYAML dependency + python3 -m pip install 'PyYAML>=5.1' --quiet --disable-pip-version-check --ignore-installed # install python library at @CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/amdsmi local python_lib_path=@CPACK_PACKAGING_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@ python3 -m pip install "$python_lib_path" --quiet --disable-pip-version-check diff --git a/projects/amdsmi/RPM/preun.in b/projects/amdsmi/RPM/preun.in index 1e1a896c95..bc2376161c 100755 --- a/projects/amdsmi/RPM/preun.in +++ b/projects/amdsmi/RPM/preun.in @@ -53,13 +53,13 @@ rm_python_lib() { # Remove old python library local pip_list_output - pip_list_output=$(python3 -m pip list --disable-pip-version-check) + pip_list_output=$(python3 -m pip list --format=columns --disable-pip-version-check) # check pip list output for amdsmi if [[ $pip_list_output == *"amdsmi"* ]]; then PIP_ROOT_USER_ACTION=ignore PIP_BREAK_SYSTEM_PACKAGES=1 python3 -m pip uninstall amdsmi --yes --quiet --disable-pip-version-check fi - pip_list_output=$(python3 -m pip list --disable-pip-version-check) + pip_list_output=$(python3 -m pip list --format=columns --disable-pip-version-check) # check pip list output for amdsmi if [[ $pip_list_output == *"amdsmi"* ]]; then echo "[WARNING] AMD-SMI python library (amdsmi) is still installed in pip. "\