Skip to content

Commit 9a03917

Browse files
authored
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: f6617fd]
1 parent df27a52 commit 9a03917

File tree

3 files changed

+57
-12
lines changed

3 files changed

+57
-12
lines changed

projects/rocm-core/CMakeLists.txt

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -66,13 +66,16 @@ parse_rocm_version( ${ROCM_VERSION} )
6666
set( CPACK_PACKAGING_INSTALL_PREFIX "/opt/rocm" CACHE PATH "default cpack directory" )
6767
set( BUILD_SHARED_LIBS ON CACHE BOOL "Build shared library (.so) or not." )
6868
set( CPACK_GENERATOR "TGZ;DEB;RPM" CACHE STRING "package types to be produced " )
69-
set( LICENSE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/copyright" )
69+
set( LICENSE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/copyright" CACHE PATH "Path to License File in source dir" )
7070
set( BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR} )
7171
set( EXTENDED_PACKAGE_DESCRIPTION
7272
"ROCM-CORE is a package which can be used to get ROCm release version, get ROCm install path information etc.
7373
It is also important to note that ROCM-CORE takes the role as a base component on which all of ROCm can depend,
7474
to make it easy to remove all of ROCm with a package manager." CACHE STRING "Debian Package Extended Description")
7575
76+
set( BUILD_ENABLE_LINTIAN_OVERRIDES OFF CACHE BOOL "Enable/Disable Lintian Overrides" )
77+
set( BUILD_DEBIAN_PKGING_FLAG OFF CACHE BOOL "Internal Status Flag to indicate Debian Packaging Build" )
78+
7679
## Set variables
7780
set_variables()
7881
@@ -145,10 +148,6 @@ if(BUILD_SHARED_LIBS)
145148
DESTINATION ${CMAKE_INSTALL_LIBDIR}
146149
COMPONENT CORE_RUNTIME )
147150
148-
# License file
149-
install ( FILES ${LICENSE_FILE}
150-
DESTINATION ${CMAKE_INSTALL_DOCDIR} RENAME LICENSE.txt
151-
COMPONENT ${COMP_TYPE})
152151
else()
153152
install ( FILES ${BUILD_DIR}/version
154153
DESTINATION .info
@@ -168,10 +167,6 @@ else()
168167
install ( FILES ${BUILD_DIR}/rocmmod
169168
DESTINATION ${CMAKE_INSTALL_LIBDIR}
170169
COMPONENT ${STATIC_COMP_TYPE} )
171-
# License file
172-
install ( FILES ${LICENSE_FILE}
173-
DESTINATION ${CMAKE_INSTALL_DOCDIR} RENAME LICENSE.txt
174-
COMPONENT ${STATIC_COMP_TYPE})
175170
endif()
176171
177172
## Cmake module config file configurations
@@ -243,9 +238,9 @@ set ( CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT" )
243238
244239
# Debian specific packaging configuration
245240
if(COMP_TYPE)
246-
configure_debian_pkg( ${CORE_TARGET} ${COMP_TYPE} ${CPACK_PACKAGE_VERSION} ${PKG_MAINTAINER_NM} ${PKG_MAINTAINER_EMAIL} )
241+
configure_debian_pkg( ${CORE_TARGET} ${COMP_TYPE} ${CPACK_PACKAGE_VERSION} ${PKG_MAINTAINER_NM} ${PKG_MAINTAINER_EMAIL} )
247242
elseif(STATIC_COMP_TYPE)
248-
configure_debian_pkg( ${CORE_TARGET} ${STATIC_COMP_TYPE} ${CPACK_PACKAGE_VERSION} ${PKG_MAINTAINER_NM} ${PKG_MAINTAINER_EMAIL} )
243+
configure_debian_pkg( ${CORE_TARGET} ${STATIC_COMP_TYPE} ${CPACK_PACKAGE_VERSION} ${PKG_MAINTAINER_NM} ${PKG_MAINTAINER_EMAIL} )
249244
endif()
250245
251246
## RPM package specific variables
@@ -298,5 +293,19 @@ set(CPACK_DEBIAN_RUNTIME_PACKAGE_REPLACES "rocm-clang-ocl")
298293
set(CPACK_DEBIAN_RUNTIME_PACKAGE_CONFLICTS "rocm-clang-ocl")
299294
set(CPACK_RPM_RUNTIME_PACKAGE_OBSOLETES "rocm-clang-ocl")
300295
296+
# Custom installation for Debian Lintian File
297+
if( BUILD_ENABLE_LINTIAN_OVERRIDES STREQUAL "ON" AND BUILD_DEBIAN_PKGING_FLAG STREQUAL "ON")
298+
set( OVERRIDE_FILE "${CMAKE_BINARY_DIR}/DEBIAN/${DEB_OVERRIDES_INSTALL_FILENM}" )
299+
if(COMP_TYPE)
300+
set( OVERRIDE_TEMP_INSTALL_LOC "/_CPack_Packages/Linux/DEB/${CORE_TARGET}-${CPACK_PACKAGE_VERSION}-Linux/${COMP_TYPE}" )
301+
elseif(STATIC_COMP_TYPE)
302+
set( OVERRIDE_TEMP_INSTALL_LOC "/_CPack_Packages/Linux/DEB/${CORE_TARGET}-${CPACK_PACKAGE_VERSION}-Linux/${STATIC_COMP_TYPE}" )
303+
endif()
304+
set(CPACK_INSTALL_COMMANDS
305+
"${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}${OVERRIDE_TEMP_INSTALL_LOC}${DEB_OVERRIDES_INSTALL_PATH}"
306+
"${CMAKE_COMMAND} -E copy ${OVERRIDE_FILE} ${CMAKE_BINARY_DIR}${OVERRIDE_TEMP_INSTALL_LOC}${DEB_OVERRIDES_INSTALL_PATH}"
307+
)
308+
endif()
309+
301310
## Include packaging
302311
include ( CPack )
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
@DEB_OVERRIDES_INSTALL_FILENM@: no-copyright-file
2+
@DEB_OVERRIDES_INSTALL_FILENM@: debian-changelog-file-missing
3+
@DEB_OVERRIDES_INSTALL_FILENM@: dir-or-file-in-opt

projects/rocm-core/utils.cmake

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ function( configure_debian_pkg PACKAGE_NAME_T COMPONENT_NAME_T PACKAGE_VERSION_T
174174
# Check If Debian Platform
175175
find_file (DEBIAN debian_version debconf.conf PATHS /etc)
176176
if(DEBIAN)
177+
set( BUILD_DEBIAN_PKGING_FLAG ON CACHE BOOL "Internal Status Flag to indicate Debian Packaging Build" FORCE )
177178
set_debian_pkg_cmake_flags( ${PACKAGE_NAME_T} ${PACKAGE_VERSION_T}
178179
${MAINTAINER_NM_T} ${MAINTAINER_EMAIL_T} )
179180

@@ -199,6 +200,30 @@ function( configure_debian_pkg PACKAGE_NAME_T COMPONENT_NAME_T PACKAGE_VERSION_T
199200
@ONLY
200201
)
201202

203+
if( BUILD_ENABLE_LINTIAN_OVERRIDES )
204+
if(NOT BUILD_SHARED_LIBS)
205+
string(FIND ${DEB_OVERRIDES_INSTALL_FILENM} "static" OUT_VAR1)
206+
if(OUT_VAR1 EQUAL -1)
207+
set( DEB_OVERRIDES_INSTALL_FILENM "${DEB_OVERRIDES_INSTALL_FILENM}-static" )
208+
endif()
209+
else()
210+
if(ENABLE_ASAN_PACKAGING)
211+
string( FIND ${DEB_OVERRIDES_INSTALL_FILENM} "asan" OUT_VAR2)
212+
if(OUT_VAR2 EQUAL -1)
213+
set( DEB_OVERRIDES_INSTALL_FILENM "${DEB_OVERRIDES_INSTALL_FILENM}-asan" )
214+
endif()
215+
endif()
216+
endif()
217+
set( DEB_OVERRIDES_INSTALL_FILENM
218+
"${DEB_OVERRIDES_INSTALL_FILENM}" CACHE STRING "Debian Package Lintian Override File Name" FORCE)
219+
# Configure the changelog file
220+
configure_file(
221+
"${CMAKE_SOURCE_DIR}/DEBIAN/overrides.in"
222+
"${CMAKE_BINARY_DIR}/DEBIAN/${DEB_OVERRIDES_INSTALL_FILENM}"
223+
@ONLY
224+
)
225+
endif()
226+
202227
# Install Change Log
203228
find_program ( DEB_GZIP_EXEC gzip )
204229
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
217242
COMPONENT ${COMPONENT_NAME_T})
218243
endif()
219244
else()
220-
message( STATUS "Ignore Configuring Debian Specific Packaging Configuration" )
245+
# License file
246+
install ( FILES ${LICENSE_FILE}
247+
DESTINATION ${CMAKE_INSTALL_DOCDIR} RENAME LICENSE.txt
248+
COMPONENT ${COMPONENT_NAME_T})
221249
endif()
222250
endfunction()
223251

@@ -233,6 +261,11 @@ function( set_debian_pkg_cmake_flags DEB_PACKAGE_NAME_T DEB_PACKAGE_VERSION_T DE
233261
set( DEB_LICENSE "MIT" CACHE STRING "Debian Package License Type" )
234262
set( DEB_CHANGELOG_INSTALL_FILENM "changelog.Debian.gz" CACHE STRING "Debian Package ChangeLog File Name" )
235263

264+
if( BUILD_ENABLE_LINTIAN_OVERRIDES )
265+
set( DEB_OVERRIDES_INSTALL_FILENM "${DEB_PACKAGE_NAME}" CACHE STRING "Debian Package Lintian Override File Name" )
266+
set( DEB_OVERRIDES_INSTALL_PATH "/usr/share/lintian/overrides/" CACHE STRING "Deb Pkg Lintian Override Install Loc" )
267+
endif()
268+
236269
# Get TimeStamp
237270
find_program( DEB_DATE_TIMESTAMP_EXEC date )
238271
set ( DEB_TIMESTAMP_FORMAT_OPTION "-R" )

0 commit comments

Comments
 (0)