Add Lintian Debian Packaging Configuration (#13)
* SWDEV-531658 / SWDEV-529762
* Add Lintian Debian Packaging Configuration
* Updated Debian specific Lintian flag usage
* Updated Debian Pkg Extended Description usage
* Updated Debian Package ChangeLog
* Update Review Comments
* Update Review Comments - Renamed debian to DEBIAN folder
* Review Comment Update - Extended Description to use common across deb/rpm
* Update Review Comments - Change Log Test Updated
* Review Comment Update - remove duplicate & enhanced deb copyright header
* Update Change Log for the release
[ROCm/rocm-core commit: 461a5e1554]
This commit is contained in:
committad av
GitHub
förälder
bbd2edcca3
incheckning
5618f5b8fc
@@ -1,6 +1,8 @@
|
||||
Change Logs for rocm-core
|
||||
|
||||
Unreleased ROCm6.3.0 release
|
||||
ROCm6.4.1 release
|
||||
- Added changelog.debian and copyright for debian packages.
|
||||
ROCm6.3.0 release
|
||||
- Enabled Support for CMAKE Module Config.
|
||||
ROCm6.1.0 release
|
||||
- Added new API to get ROCm install Path (getROCmInstallPath()) at runtime
|
||||
|
||||
@@ -48,8 +48,12 @@ 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( COPYRIGHT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/copyright" )
|
||||
set( LICENSE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/copyright" )
|
||||
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 variables
|
||||
set_variables()
|
||||
@@ -123,7 +127,7 @@ endif()
|
||||
|
||||
## Support for Static and Shared Target Packaging
|
||||
if(BUILD_SHARED_LIBS)
|
||||
install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/version DESTINATION .info COMPONENT CORE_RUNTIME )
|
||||
install ( FILES ${BUILD_DIR}/version DESTINATION .info COMPONENT CORE_RUNTIME )
|
||||
|
||||
# Target Library needs to installed/packaged to same destination
|
||||
# in both ASAN and nonASAN Shared library builds
|
||||
@@ -136,19 +140,19 @@ if(BUILD_SHARED_LIBS)
|
||||
install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/runpath_to_rpath.py
|
||||
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/rocm-core
|
||||
COMPONENT CORE_RUNTIME )
|
||||
install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/rocmmod
|
||||
install ( FILES ${BUILD_DIR}/rocmmod
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
COMPONENT CORE_RUNTIME )
|
||||
|
||||
# License file
|
||||
install ( FILES ${COPYRIGHT_FILE}
|
||||
install ( FILES ${LICENSE_FILE}
|
||||
DESTINATION ${CMAKE_INSTALL_DOCDIR} RENAME LICENSE.txt
|
||||
COMPONENT CORE_RUNTIME)
|
||||
install ( FILES ${COPYRIGHT_FILE} DESTINATION
|
||||
install ( FILES ${LICENSE_FILE} DESTINATION
|
||||
${CMAKE_INSTALL_DOCDIR}-asan RENAME LICENSE.txt
|
||||
COMPONENT CORE_ASAN)
|
||||
else()
|
||||
install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/version
|
||||
install ( FILES ${BUILD_DIR}/version
|
||||
DESTINATION .info
|
||||
COMPONENT ${STATIC_COMP_TYPE} )
|
||||
install ( TARGETS ${CORE_TARGET}
|
||||
@@ -163,11 +167,11 @@ else()
|
||||
install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/runpath_to_rpath.py
|
||||
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/rocm-core
|
||||
COMPONENT ${STATIC_COMP_TYPE} )
|
||||
install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/rocmmod
|
||||
install ( FILES ${BUILD_DIR}/rocmmod
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
COMPONENT ${STATIC_COMP_TYPE} )
|
||||
# License file
|
||||
install ( FILES ${COPYRIGHT_FILE}
|
||||
install ( FILES ${LICENSE_FILE}
|
||||
DESTINATION ${CMAKE_INSTALL_DOCDIR} RENAME LICENSE.txt
|
||||
COMPONENT ${STATIC_COMP_TYPE})
|
||||
endif()
|
||||
@@ -186,18 +190,20 @@ set(CONFIG_PACKAGE_INSTALL_DIR ${CONF_LIB_DIR}/cmake/${CORE_TARGET})
|
||||
set(LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}")
|
||||
set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
set(BIN_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}")
|
||||
set(PKG_MAINTAINER_NM "ROCm Dev Support")
|
||||
set(PKG_MAINTAINER_EMAIL "rocm-dev.support@amd.com")
|
||||
|
||||
## Generate Config File for rocm-core
|
||||
configure_package_config_file(
|
||||
${CMAKE_MODULE_PATH}/${CORE_TARGET}-config.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${CORE_TARGET}-config.cmake
|
||||
${BUILD_DIR}/${CORE_TARGET}-config.cmake
|
||||
INSTALL_DESTINATION ${CONFIG_PACKAGE_INSTALL_DIR}
|
||||
PATH_VARS LIB_INSTALL_DIR INCLUDE_INSTALL_DIR BIN_INSTALL_DIR
|
||||
)
|
||||
|
||||
## Generate config Version File for rocm-core
|
||||
write_basic_package_version_file(
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${CORE_TARGET}-config-version.cmake
|
||||
${BUILD_DIR}/${CORE_TARGET}-config-version.cmake
|
||||
VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}"
|
||||
COMPATIBILITY SameMajorVersion)
|
||||
|
||||
@@ -218,9 +224,9 @@ set ( CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR} )
|
||||
set ( CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR} )
|
||||
set ( CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH} )
|
||||
set ( CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}" )
|
||||
set ( CPACK_PACKAGE_CONTACT "ROCm Dev Support <rocm-dev.support@amd.com>" )
|
||||
set ( CPACK_PACKAGE_CONTACT "${PKG_MAINTAINER_NM} <${PKG_MAINTAINER_EMAIL}>" )
|
||||
set ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PKG_DESCRIPTION}" )
|
||||
set ( CPACK_RESOURCE_FILE_LICENSE "${COPYRIGHT_FILE}" )
|
||||
set ( CPACK_RESOURCE_FILE_LICENSE "${LICENSE_FILE}" )
|
||||
## packaging variables
|
||||
if ( DEFINED ROCM_LIBPATCH_VERSION )
|
||||
set ( CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}.${ROCM_LIBPATCH_VERSION}" )
|
||||
@@ -237,6 +243,9 @@ set ( CPACK_DEBIAN_CORE_STATIC_PACKAGE_NAME ${CORE_TARGET} )
|
||||
message ( STATUS "Using CPACK_DEBIAN_PACKAGE_RELEASE ${CPACK_DEBIAN_PACKAGE_RELEASE}" )
|
||||
set ( CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT" )
|
||||
|
||||
# Debian specific packaging configuration
|
||||
configure_debian_pkg( ${CORE_TARGET} ${COMP_TYPE} ${CPACK_PACKAGE_VERSION} ${PKG_MAINTAINER_NM} ${PKG_MAINTAINER_EMAIL} )
|
||||
|
||||
## RPM package specific variables
|
||||
set ( CPACK_RPM_COMPONENT_INSTALL ON )
|
||||
set ( CPACK_RPM_CORE_RUNTIME_PACKAGE_NAME "${CORE_TARGET}" )
|
||||
@@ -245,7 +254,6 @@ set ( CPACK_RPM_CORE_ASAN_PACKAGE_NAME ${CORE_TARGET}-asan )
|
||||
# STATIC package name - For Now, No change for static package Name from default
|
||||
set ( CPACK_RPM_CORE_STATIC_PACKAGE_NAME ${CORE_TARGET} )
|
||||
|
||||
|
||||
## 'dist' breaks manual builds on debian systems due to empty Provides
|
||||
execute_process( COMMAND rpm --eval %{?dist}
|
||||
RESULT_VARIABLE PROC_RESULT
|
||||
@@ -261,27 +269,31 @@ set ( CPACK_RPM_FILE_NAME "RPM-DEFAULT" )
|
||||
# Debian package specific variables
|
||||
set ( CPACK_DEBIAN_PACKAGE_DEPENDS ${DEB_DEPENDS_STRING} )
|
||||
set ( CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/ROCm/rocm-core" )
|
||||
set ( CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${BUILD_DIR}/postinst;${BUILD_DIR}/prerm" )
|
||||
set ( CPACK_DEBIAN_CORE_ASAN_PACKAGE_DEPENDS ${CORE_TARGET} )
|
||||
set ( CPACK_DEBIAN_CORE_RUNTIME_PACKAGE_CONTROL_EXTRA "${BUILD_DIR}/postinst;${BUILD_DIR}/prerm" )
|
||||
set ( CPACK_DEBIAN_CORE_STATIC_PACKAGE_CONTROL_EXTRA "${BUILD_DIR}/postinst;${BUILD_DIR}/prerm" )
|
||||
set ( CPACK_DEBIAN_CORE_RUNTIME_PACKAGE_CONTROL_EXTRA "${CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA}" )
|
||||
set ( CPACK_DEBIAN_CORE_STATIC_PACKAGE_CONTROL_EXTRA "${CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA}" )
|
||||
set ( CPACK_DEBIAN_PACKAGE_DESCRIPTION "${EXTENDED_PACKAGE_DESCRIPTION}" )
|
||||
|
||||
## RPM package specific variables
|
||||
set ( CPACK_RPM_PACKAGE_REQUIRES ${RPM_DEPENDS_STRING} )
|
||||
set ( CPACK_RPM_PACKAGE_LICENSE "MIT" )
|
||||
set ( CPACK_RPM_CORE_ASAN_PACKAGE_REQUIRES ${CORE_TARGET} )
|
||||
set ( CPACK_RPM_CORE_RUNTIME_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/postinst" )
|
||||
set ( CPACK_RPM_CORE_RUNTIME_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/prerm" )
|
||||
set ( CPACK_RPM_CORE_STATIC_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/postinst" )
|
||||
set ( CPACK_RPM_CORE_STATIC_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/prerm" )
|
||||
set ( CPACK_RPM_CORE_RUNTIME_POST_INSTALL_SCRIPT_FILE "${BUILD_DIR}/postinst" )
|
||||
set ( CPACK_RPM_CORE_RUNTIME_POST_UNINSTALL_SCRIPT_FILE "${BUILD_DIR}/prerm" )
|
||||
set ( CPACK_RPM_CORE_STATIC_POST_INSTALL_SCRIPT_FILE "${BUILD_DIR}/postinst" )
|
||||
set ( CPACK_RPM_CORE_STATIC_POST_UNINSTALL_SCRIPT_FILE "${BUILD_DIR}/prerm" )
|
||||
set ( CPACK_RPM_PACKAGE_DESCRIPTION "${EXTENDED_PACKAGE_DESCRIPTION}" )
|
||||
|
||||
if ( DEFINED CPACK_PACKAGING_INSTALL_PREFIX )
|
||||
set ( CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "${CPACK_PACKAGING_INSTALL_PREFIX} ${CPACK_PACKAGING_INSTALL_PREFIX}/.info" )
|
||||
endif ( )
|
||||
set ( CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
|
||||
"${CPACK_PACKAGING_INSTALL_PREFIX} ${CPACK_PACKAGING_INSTALL_PREFIX}/.info" )
|
||||
endif()
|
||||
|
||||
# Backward compatibility support for deprecated package rocm-clang-ocl
|
||||
# TODO: To be removed after two releases
|
||||
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")
|
||||
|
||||
## Include packaging
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
@DEB_PACKAGE_NAME@ (@DEB_PACKAGE_VERSION@) stable; urgency=low
|
||||
|
||||
* ROCm Runtime software stack Base Package.
|
||||
-- @DEB_MAINTAINER_NAME@ <@DEB_MAINTAINER_EMAIL@> @DEB_TIMESTAMP@
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: @DEB_PACKAGE_NAME@
|
||||
Upstream-Contact: @DEB_MAINTAINER_NAME@ <@DEB_MAINTAINER_EMAIL@>
|
||||
Source: https://github.com/ROCm/@DEB_PACKAGE_NAME@
|
||||
Files: *
|
||||
License: @DEB_LICENSE@
|
||||
Copyright: @DEB_COPYRIGHT_YEAR@ Advanced Micro Devices, Inc. All rights Reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
@@ -169,4 +169,85 @@ function( set_variables )
|
||||
|
||||
endfunction()
|
||||
|
||||
## Configure Copyright File for Debian Package
|
||||
function( configure_debian_pkg PACKAGE_NAME_T COMPONENT_NAME_T PACKAGE_VERSION_T MAINTAINER_NM_T MAINTAINER_EMAIL_T)
|
||||
# Check If Debian Platform
|
||||
find_file (DEBIAN debian_version debconf.conf PATHS /etc)
|
||||
if(DEBIAN)
|
||||
set_debian_pkg_cmake_flags( ${PACKAGE_NAME_T} ${PACKAGE_VERSION_T}
|
||||
${MAINTAINER_NM_T} ${MAINTAINER_EMAIL_T} )
|
||||
|
||||
# Create debian directory in build tree
|
||||
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/DEBIAN")
|
||||
|
||||
# Configure the copyright file
|
||||
configure_file(
|
||||
"${CMAKE_SOURCE_DIR}/DEBIAN/copyright.in"
|
||||
"${CMAKE_BINARY_DIR}/DEBIAN/copyright"
|
||||
@ONLY
|
||||
)
|
||||
|
||||
# Install copyright file
|
||||
install ( FILES "${CMAKE_BINARY_DIR}/DEBIAN/copyright"
|
||||
DESTINATION "${CMAKE_INSTALL_DOCDIR}"
|
||||
COMPONENT ${COMPONENT_NAME_T} )
|
||||
|
||||
# Configure the changelog file
|
||||
configure_file(
|
||||
"${CMAKE_SOURCE_DIR}/DEBIAN/changelog.in"
|
||||
"${CMAKE_BINARY_DIR}/DEBIAN/changelog.Debian"
|
||||
@ONLY
|
||||
)
|
||||
|
||||
# Install Change Log
|
||||
find_program ( DEB_GZIP_EXEC gzip )
|
||||
if(EXISTS "${CMAKE_BINARY_DIR}/DEBIAN/changelog.Debian" )
|
||||
execute_process(
|
||||
COMMAND ${DEB_GZIP_EXEC} -9 "${CMAKE_BINARY_DIR}/DEBIAN/changelog.Debian"
|
||||
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/DEBIAN"
|
||||
RESULT_VARIABLE result
|
||||
OUTPUT_VARIABLE output
|
||||
ERROR_VARIABLE error
|
||||
)
|
||||
if(NOT ${result} EQUAL 0)
|
||||
message(FATAL_ERROR "Failed to compress: ${error}")
|
||||
endif()
|
||||
install ( FILES "${CMAKE_BINARY_DIR}/DEBIAN/${DEB_CHANGELOG_INSTALL_FILENM}"
|
||||
DESTINATION ${CMAKE_INSTALL_DOCDIR}
|
||||
COMPONENT ${COMPONENT_NAME_T})
|
||||
endif()
|
||||
else()
|
||||
message( STATUS "Ignore Configuring Debian Specific Packaging Configuration" )
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Set variables for changelog and copyright
|
||||
# For Debian specific Packages
|
||||
function( set_debian_pkg_cmake_flags DEB_PACKAGE_NAME_T DEB_PACKAGE_VERSION_T DEB_MAINTAINER_NM_T DEB_MAINTAINER_EMAIL_T )
|
||||
# Setting configure flags
|
||||
set( DEB_PACKAGE_NAME "${DEB_PACKAGE_NAME_T}" CACHE STRING "Debian Package Name" )
|
||||
set( DEB_PACKAGE_VERSION "${DEB_PACKAGE_VERSION_T}" CACHE STRING "Debian Package Version String" )
|
||||
set( DEB_MAINTAINER_NAME "${DEB_MAINTAINER_NM_T}" CACHE STRING "Debian Package Maintainer Name" )
|
||||
set( DEB_MAINTAINER_EMAIL "${DEB_MAINTAINER_EMAIL_T}" CACHE STRING "Debian Package Maintainer Email" )
|
||||
set( DEB_COPYRIGHT_YEAR "2025" CACHE STRING "Debian Package Copyright Year" )
|
||||
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" )
|
||||
|
||||
# Get TimeStamp
|
||||
find_program( DEB_DATE_TIMESTAMP_EXEC date )
|
||||
set ( DEB_TIMESTAMP_FORMAT_OPTION "-R" )
|
||||
execute_process (
|
||||
COMMAND ${DEB_DATE_TIMESTAMP_EXEC} ${DEB_TIMESTAMP_FORMAT_OPTION}
|
||||
OUTPUT_VARIABLE TIMESTAMP_T
|
||||
)
|
||||
set( DEB_TIMESTAMP "${TIMESTAMP_T}" CACHE STRING "Current Time Stamp for Copyright/Changelog" )
|
||||
|
||||
message(STATUS "DEB_PACKAGE_NAME : ${DEB_PACKAGE_NAME}" )
|
||||
message(STATUS "DEB_PACKAGE_VERSION : ${DEB_PACKAGE_VERSION}" )
|
||||
message(STATUS "DEB_MAINTAINER_NAME : ${DEB_MAINTAINER_NAME}" )
|
||||
message(STATUS "DEB_MAINTAINER_EMAIL : ${DEB_MAINTAINER_EMAIL}" )
|
||||
message(STATUS "DEB_COPYRIGHT_YEAR : ${DEB_COPYRIGHT_YEAR}" )
|
||||
message(STATUS "DEB_LICENSE : ${DEB_LICENSE}" )
|
||||
message(STATUS "DEB_TIMESTAMP : ${DEB_TIMESTAMP}" )
|
||||
message(STATUS "DEB_CHANGELOG_INSTALL_FILENM : ${DEB_CHANGELOG_INSTALL_FILENM}" )
|
||||
endfunction()
|
||||
|
||||
Referens i nytt ärende
Block a user