CPack/RPM: Setting CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE ON breaks 'make package'
I have the follow files: CMakeLists.txt:
cmake_minimum_required(VERSION 3.17.3)
project(CMakeCPackBug VERSION 1.0.0)
set(CMAKE_CXX_STANDARD 11)
add_executable(main main.cpp)
include(GNUInstallDirs)
# Install empty directory /var/log/data
install(DIRECTORY
DESTINATION ${CMAKE_INSTALL_LOCALSTATEDIR}/log/data
COMPONENT common)
# Install file README.txt to doc directory
install(FILES
${PROJECT_SOURCE_DIR}/README.txt
DESTINATION ${CMAKE_INSTALL_DOCDIR}
COMPONENT common)
set(CPACK_COMPONENTS_ALL common main)
set(CPACK_GENERATOR RPM)
set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
set(CPACK_PACKAGE_VERSION ${PACKAGE_VERSION})
set(CPACK_RPM_COMPONENT_INSTALL ON)
set(CPACK_RPM_DEBUGINFO_PACKAGE ON)
# TODO - FIXME! Enabling this breaks 'make package', why?
#set(CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE ON)
set(CPACK_RPM_CONFIG_DEFAULT_GROUP ${PROJECT_NAME})
set(CPACK_RPM_CONFIG_DEFAULT_USER ${PROJECT_NAME})
set(CPACK_RPM_FILE_NAME RPM-DEFAULT)
set(CPACK_RPM_MAIN_COMPONENT main)
set(CPACK_RPM_PACKAGE_RELEASE 1)
set(CPACK_RPM_PACKAGE_RELEASE_DIST ON)
include(CPack)
main.cpp:
#include <cstdlib>
int main()
{
system("cmake3 --version");
}
README.txt:
CMAKE(1) CMake CMAKE(1)
NAME
cmake - CMake Command-Line Reference
When run with this software configuration:
$ cmake3 --version
cmake3 version 3.17.5
CMake suite maintained and supported by Kitware (kitware.com/cmake).
$ g++ --version
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
$ uname -r
3.10.0-1160.15.2.el7.x86_64
Works as expected and the generated RPMs look correct. However, if I enable 'set(CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE ON)', 'make package' fails with this error:
error: Directory not found: /home/gmajszak/CMakeCPackBug/build/_CPack_Packages/Linux/RPM/CMakeCPackBug-1.0.0-Linux/main/usr/var
error: Directory not found: /home/gmajszak/CMakeCPackBug/build/_CPack_Packages/Linux/RPM/CMakeCPackBug-1.0.0-Linux/main/usr/var/log
error: Directory not found: /home/gmajszak/CMakeCPackBug/build/_CPack_Packages/Linux/RPM/CMakeCPackBug-1.0.0-Linux/main/usr/var/log/data
Directory not found: /home/gmajszak/CMakeCPackBug/build/_CPack_Packages/Linux/RPM/CMakeCPackBug-1.0.0-Linux/main/usr/var
Directory not found: /home/gmajszak/CMakeCPackBug/build/_CPack_Packages/Linux/RPM/CMakeCPackBug-1.0.0-Linux/main/usr/var/log
Directory not found: /home/gmajszak/CMakeCPackBug/build/_CPack_Packages/Linux/RPM/CMakeCPackBug-1.0.0-Linux/main/usr/var/log/data
Is this a misconfiguration or a bug in CMake/CPack?
Thanks, Greg
Edited by Greg Majszak