Enable Support for Lintian Override Configuration (#23)

* Update License file in deb pkg to only have debian lintian specific copyright

* Enable Support for Debian Pkg Lintian Overrides

* Enhance Lintian Override config File Name for static,asan (rocm-core)

* Update Review Comments/UT Test Fixes for Lintian Overrides

[ROCm/rocm-core commit: f6617fd89f]
This commit is contained in:
Cheruvally, Aravindan
2025-05-27 12:20:55 -04:00
committed by GitHub
parent df27a52348
commit 9a03917e62
3 changed files with 57 additions and 12 deletions
+20 -11
View File
@@ -66,13 +66,16 @@ parse_rocm_version( ${ROCM_VERSION} )
set( CPACK_PACKAGING_INSTALL_PREFIX "/opt/rocm" CACHE PATH "default cpack directory" )
set( BUILD_SHARED_LIBS ON CACHE BOOL "Build shared library (.so) or not." )
set( CPACK_GENERATOR "TGZ;DEB;RPM" CACHE STRING "package types to be produced " )
set( LICENSE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/copyright" )
set( LICENSE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/copyright" CACHE PATH "Path to License File in source dir" )
set( BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR} )
set( EXTENDED_PACKAGE_DESCRIPTION
"ROCM-CORE is a package which can be used to get ROCm release version, get ROCm install path information etc.
It is also important to note that ROCM-CORE takes the role as a base component on which all of ROCm can depend,
to make it easy to remove all of ROCm with a package manager." CACHE STRING "Debian Package Extended Description")
set( BUILD_ENABLE_LINTIAN_OVERRIDES OFF CACHE BOOL "Enable/Disable Lintian Overrides" )
set( BUILD_DEBIAN_PKGING_FLAG OFF CACHE BOOL "Internal Status Flag to indicate Debian Packaging Build" )
## Set variables
set_variables()
@@ -145,10 +148,6 @@ if(BUILD_SHARED_LIBS)
DESTINATION ${CMAKE_INSTALL_LIBDIR}
COMPONENT CORE_RUNTIME )
# License file
install ( FILES ${LICENSE_FILE}
DESTINATION ${CMAKE_INSTALL_DOCDIR} RENAME LICENSE.txt
COMPONENT ${COMP_TYPE})
else()
install ( FILES ${BUILD_DIR}/version
DESTINATION .info
@@ -168,10 +167,6 @@ else()
install ( FILES ${BUILD_DIR}/rocmmod
DESTINATION ${CMAKE_INSTALL_LIBDIR}
COMPONENT ${STATIC_COMP_TYPE} )
# License file
install ( FILES ${LICENSE_FILE}
DESTINATION ${CMAKE_INSTALL_DOCDIR} RENAME LICENSE.txt
COMPONENT ${STATIC_COMP_TYPE})
endif()
## Cmake module config file configurations
@@ -243,9 +238,9 @@ set ( CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT" )
# Debian specific packaging configuration
if(COMP_TYPE)
configure_debian_pkg( ${CORE_TARGET} ${COMP_TYPE} ${CPACK_PACKAGE_VERSION} ${PKG_MAINTAINER_NM} ${PKG_MAINTAINER_EMAIL} )
configure_debian_pkg( ${CORE_TARGET} ${COMP_TYPE} ${CPACK_PACKAGE_VERSION} ${PKG_MAINTAINER_NM} ${PKG_MAINTAINER_EMAIL} )
elseif(STATIC_COMP_TYPE)
configure_debian_pkg( ${CORE_TARGET} ${STATIC_COMP_TYPE} ${CPACK_PACKAGE_VERSION} ${PKG_MAINTAINER_NM} ${PKG_MAINTAINER_EMAIL} )
configure_debian_pkg( ${CORE_TARGET} ${STATIC_COMP_TYPE} ${CPACK_PACKAGE_VERSION} ${PKG_MAINTAINER_NM} ${PKG_MAINTAINER_EMAIL} )
endif()
## RPM package specific variables
@@ -298,5 +293,19 @@ set(CPACK_DEBIAN_RUNTIME_PACKAGE_REPLACES "rocm-clang-ocl")
set(CPACK_DEBIAN_RUNTIME_PACKAGE_CONFLICTS "rocm-clang-ocl")
set(CPACK_RPM_RUNTIME_PACKAGE_OBSOLETES "rocm-clang-ocl")
# Custom installation for Debian Lintian File
if( BUILD_ENABLE_LINTIAN_OVERRIDES STREQUAL "ON" AND BUILD_DEBIAN_PKGING_FLAG STREQUAL "ON")
set( OVERRIDE_FILE "${CMAKE_BINARY_DIR}/DEBIAN/${DEB_OVERRIDES_INSTALL_FILENM}" )
if(COMP_TYPE)
set( OVERRIDE_TEMP_INSTALL_LOC "/_CPack_Packages/Linux/DEB/${CORE_TARGET}-${CPACK_PACKAGE_VERSION}-Linux/${COMP_TYPE}" )
elseif(STATIC_COMP_TYPE)
set( OVERRIDE_TEMP_INSTALL_LOC "/_CPack_Packages/Linux/DEB/${CORE_TARGET}-${CPACK_PACKAGE_VERSION}-Linux/${STATIC_COMP_TYPE}" )
endif()
set(CPACK_INSTALL_COMMANDS
"${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}${OVERRIDE_TEMP_INSTALL_LOC}${DEB_OVERRIDES_INSTALL_PATH}"
"${CMAKE_COMMAND} -E copy ${OVERRIDE_FILE} ${CMAKE_BINARY_DIR}${OVERRIDE_TEMP_INSTALL_LOC}${DEB_OVERRIDES_INSTALL_PATH}"
)
endif()
## Include packaging
include ( CPack )
+3
View File
@@ -0,0 +1,3 @@
@DEB_OVERRIDES_INSTALL_FILENM@: no-copyright-file
@DEB_OVERRIDES_INSTALL_FILENM@: debian-changelog-file-missing
@DEB_OVERRIDES_INSTALL_FILENM@: dir-or-file-in-opt
+34 -1
View File
@@ -174,6 +174,7 @@ function( configure_debian_pkg PACKAGE_NAME_T COMPONENT_NAME_T PACKAGE_VERSION_T
# Check If Debian Platform
find_file (DEBIAN debian_version debconf.conf PATHS /etc)
if(DEBIAN)
set( BUILD_DEBIAN_PKGING_FLAG ON CACHE BOOL "Internal Status Flag to indicate Debian Packaging Build" FORCE )
set_debian_pkg_cmake_flags( ${PACKAGE_NAME_T} ${PACKAGE_VERSION_T}
${MAINTAINER_NM_T} ${MAINTAINER_EMAIL_T} )
@@ -199,6 +200,30 @@ function( configure_debian_pkg PACKAGE_NAME_T COMPONENT_NAME_T PACKAGE_VERSION_T
@ONLY
)
if( BUILD_ENABLE_LINTIAN_OVERRIDES )
if(NOT BUILD_SHARED_LIBS)
string(FIND ${DEB_OVERRIDES_INSTALL_FILENM} "static" OUT_VAR1)
if(OUT_VAR1 EQUAL -1)
set( DEB_OVERRIDES_INSTALL_FILENM "${DEB_OVERRIDES_INSTALL_FILENM}-static" )
endif()
else()
if(ENABLE_ASAN_PACKAGING)
string( FIND ${DEB_OVERRIDES_INSTALL_FILENM} "asan" OUT_VAR2)
if(OUT_VAR2 EQUAL -1)
set( DEB_OVERRIDES_INSTALL_FILENM "${DEB_OVERRIDES_INSTALL_FILENM}-asan" )
endif()
endif()
endif()
set( DEB_OVERRIDES_INSTALL_FILENM
"${DEB_OVERRIDES_INSTALL_FILENM}" CACHE STRING "Debian Package Lintian Override File Name" FORCE)
# Configure the changelog file
configure_file(
"${CMAKE_SOURCE_DIR}/DEBIAN/overrides.in"
"${CMAKE_BINARY_DIR}/DEBIAN/${DEB_OVERRIDES_INSTALL_FILENM}"
@ONLY
)
endif()
# Install Change Log
find_program ( DEB_GZIP_EXEC gzip )
if(EXISTS "${CMAKE_BINARY_DIR}/DEBIAN/changelog.Debian" )
@@ -217,7 +242,10 @@ function( configure_debian_pkg PACKAGE_NAME_T COMPONENT_NAME_T PACKAGE_VERSION_T
COMPONENT ${COMPONENT_NAME_T})
endif()
else()
message( STATUS "Ignore Configuring Debian Specific Packaging Configuration" )
# License file
install ( FILES ${LICENSE_FILE}
DESTINATION ${CMAKE_INSTALL_DOCDIR} RENAME LICENSE.txt
COMPONENT ${COMPONENT_NAME_T})
endif()
endfunction()
@@ -233,6 +261,11 @@ function( set_debian_pkg_cmake_flags DEB_PACKAGE_NAME_T DEB_PACKAGE_VERSION_T DE
set( DEB_LICENSE "MIT" CACHE STRING "Debian Package License Type" )
set( DEB_CHANGELOG_INSTALL_FILENM "changelog.Debian.gz" CACHE STRING "Debian Package ChangeLog File Name" )
if( BUILD_ENABLE_LINTIAN_OVERRIDES )
set( DEB_OVERRIDES_INSTALL_FILENM "${DEB_PACKAGE_NAME}" CACHE STRING "Debian Package Lintian Override File Name" )
set( DEB_OVERRIDES_INSTALL_PATH "/usr/share/lintian/overrides/" CACHE STRING "Deb Pkg Lintian Override Install Loc" )
endif()
# Get TimeStamp
find_program( DEB_DATE_TIMESTAMP_EXEC date )
set ( DEB_TIMESTAMP_FORMAT_OPTION "-R" )