[cmake-developers] [CMake 0014472]: RPM Generator w/ component install and all comps in one package -> "name" property has "ALL_COMPONENTS_IN_ONE"

Mantis Bug Tracker mantis at public.kitware.com
Wed Oct 9 13:32:56 EDT 2013


The following issue has been SUBMITTED. 
====================================================================== 
http://public.kitware.com/Bug/view.php?id=14472 
====================================================================== 
Reported By:                Lee Graber
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   14472
Category:                   CPack
Reproducibility:            always
Severity:                   block
Priority:                   normal
Status:                     new
====================================================================== 
Date Submitted:             2013-10-09 13:32 EDT
Last Modified:              2013-10-09 13:32 EDT
====================================================================== 
Summary:                    RPM Generator w/ component install and all comps in
one package -> "name" property has "ALL_COMPONENTS_IN_ONE"
Description: 
I am producing an RPM which I want to only contain certain "installed"
components. I have set the following flags:
...
set(CPACK_RPM_COMPONENT_INSTALL ON)
set(CPACK_COMPONENTS_ALL <My list of components>)
set(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE 1)
...

As per CPackRPM.cmake:

# Are we packaging components ?
if(CPACK_RPM_PACKAGE_COMPONENT)
  set(CPACK_RPM_PACKAGE_COMPONENT_PART_NAME "-${CPACK_RPM_PACKAGE_COMPONENT}")
  set(CPACK_RPM_PACKAGE_COMPONENT_PART_PATH "/${CPACK_RPM_PACKAGE_COMPONENT}")
  set(WDIR
"${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}/${CPACK_RPM_PACKAGE_COMPONENT}")
else()
  set(CPACK_RPM_PACKAGE_COMPONENT_PART_NAME "")
  set(CPACK_RPM_PACKAGE_COMPONENT_PART_PATH "")
  set(WDIR "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}")
endif()

and then later:

Name:          
\@CPACK_RPM_PACKAGE_NAME\@\@CPACK_RPM_PACKAGE_COMPONENT_PART_NAME\@

I either need a way to override this, or, if CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE
is set, then the part_name should be blank as it would be for a non-component
install.

Steps to Reproduce: 
Create a package using the following flags:
set(CPACK_RPM_COMPONENT_INSTALL ON)
set(CPACK_COMPONENTS_ALL <My list of components>)
set(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE 1)

either look at the generated spec or use rpm -qpi <rpm file> to see the name
generated

Additional Information: 
This name is the name that users have to use to uninstall the rpm so it is
important that it not be random like this. It makes discovery much more
difficult. Since it is in the cmake file, I workaround this by changing the
behavior myself but this appears to be the wrong behavior.
====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2013-10-09 13:32 Lee Graber     New Issue                                    
======================================================================




More information about the cmake-developers mailing list