From 0ae88bc2213ea9428b2af877a8bd63fda35eab8c Mon Sep 17 00:00:00 2001 From: "Galantsev, Dmitrii" Date: Mon, 15 Aug 2022 12:25:12 -0500 Subject: [PATCH] Remove __pycache__ before uninstall `__pycache__` might be created when a python script is ran. Which prevents `rpm -e` and `dpkg --remove` from completely removing the application. This patch removes `__pycache__` early in the uninstall process. A similar issue is resolved in: rocm_smi_lib Change-Id: I695bd085d4a43b678b563b4c35f6d2e8ddfa7d7c Signed-off-by: Galantsev, Dmitrii Change-Id: I9fe0cd61570c2bd83cf9a45c95837ee6ad11e84b [ROCm/rdc commit: 69a5a1d6bc2fe7d85927996f77152c5a43463203] --- projects/rdc/CMakeLists.txt | 8 ++++++++ projects/rdc/{DEBIAN/prerm => src/DEBIAN_prerm.in} | 11 +++++++++-- projects/rdc/src/RPM_preun.in | 7 +++++++ 3 files changed, 24 insertions(+), 2 deletions(-) rename projects/rdc/{DEBIAN/prerm => src/DEBIAN_prerm.in} (66%) mode change 100755 => 100644 create mode 100644 projects/rdc/src/RPM_preun.in diff --git a/projects/rdc/CMakeLists.txt b/projects/rdc/CMakeLists.txt index 841d060911..2221dcedce 100755 --- a/projects/rdc/CMakeLists.txt +++ b/projects/rdc/CMakeLists.txt @@ -333,9 +333,15 @@ set(INST_SCR_PERM OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE configure_file( "${PROJECT_SOURCE_DIR}/src/DEBIAN_postinst.in" "${PROJECT_SOURCE_DIR}/DEBIAN/postinst" FILE_PERMISSIONS ${INST_SCR_PERM}) +configure_file( + "${PROJECT_SOURCE_DIR}/src/DEBIAN_prerm.in" + "${PROJECT_SOURCE_DIR}/DEBIAN/prerm" FILE_PERMISSIONS ${INST_SCR_PERM}) configure_file( "${PROJECT_SOURCE_DIR}/src/RPM_rpm_post.in" "${PROJECT_SOURCE_DIR}/RPM/rpm_post" FILE_PERMISSIONS ${INST_SCR_PERM}) +configure_file( + "${PROJECT_SOURCE_DIR}/src/RPM_preun.in" + "${PROJECT_SOURCE_DIR}/RPM/rpm_preun" FILE_PERMISSIONS ${INST_SCR_PERM}) configure_file( "${PROJECT_SOURCE_DIR}/src/RPM_postun.in" "${PROJECT_SOURCE_DIR}/RPM/rpm_postun" FILE_PERMISSIONS ${INST_SCR_PERM}) @@ -395,6 +401,8 @@ list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "/opt") set(CPACK_RPM_PRE_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_post") +set(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE + "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_preun") set(CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_postun") set(CPACK_RPM_PACKAGE_VERSION ${PKG_VERSION_STR}) diff --git a/projects/rdc/DEBIAN/prerm b/projects/rdc/src/DEBIAN_prerm.in old mode 100755 new mode 100644 similarity index 66% rename from projects/rdc/DEBIAN/prerm rename to projects/rdc/src/DEBIAN_prerm.in index 85aea353b8..e6d9485deb --- a/projects/rdc/DEBIAN/prerm +++ b/projects/rdc/src/DEBIAN_prerm.in @@ -1,4 +1,7 @@ #!/bin/bash + +set -e + stop_rdc() { #stop RDC if running systemctl stop rdc @@ -9,13 +12,18 @@ reload_systemd() { systemctl daemon-reload return 0 } -set -e + +rm_pyc() { + # remove pyc file generated by python + rm -rf /@RDC_CLIENT_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/@RDC@/python_binding/__pycache__ +} case "$1" in remove | upgrade ) stop_rdc unlink /lib/systemd/system/rdc.service reload_systemd + rm_pyc ;; purge) ;; @@ -23,4 +31,3 @@ case "$1" in exit 0 ;; esac - diff --git a/projects/rdc/src/RPM_preun.in b/projects/rdc/src/RPM_preun.in new file mode 100644 index 0000000000..d006d39b26 --- /dev/null +++ b/projects/rdc/src/RPM_preun.in @@ -0,0 +1,7 @@ +#!/bin/bash + +if [ $1 -le 1 ]; then + # perform the below actions for rpm remove($1=0) or upgrade($1=1) operations + # remove pyc file generated by python + rm -rf /@RDC_CLIENT_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/@RDC@/python_binding/__pycache__ +fi