[cmake-developers] [CMake 0011944]: CPackDeb: Support dependencies between components/Debian packages

Raffi Enficiaud raffi.enficiaud at mines-paris.org
Mon Apr 20 12:07:57 EDT 2015


Le 18/04/15 09:34, Domen Vrankar a écrit :
>>> I added the following functionalities:
>>> - set the permissions of the md5sum to RW-R--R--, because lintian
>>> complains
>>> - added an option to set the shlibdeps per component
>>> - added an option to set the dependencies per component
>>> - added an option to set the description per component
>
> The way you implemented it you are not covering the case:
> 1) CPACK_DEBIAN_PACKAGE_DESCRIPTION no set
> 2) CPACK_DEBIAN_PACKAGE_DESCRIPTION is set with component description
> 3) next component doesn't set per component description so
> CPACK_DEBIAN_PACKAGE_DESCRIPTION is not reset and description of the
> previous component is used
>
> Or if 1) would be set and 3 not set you would loose the initial description
>
> There is a simple solution for variables overflowing between
> components - just wrap the entire code into a function (see CPackRPM
> cpack_rpm_generate_package() function) - since such a change messes up
> the entire diff (indentations) this should be an entirely separate
> patch. This solution would also simplify the shlibdeps patch since you
> would no longer need to set CPACK_DEBIAN_PACKAGE_AUTO_DEPENDS to empty
> value and unset it when you no longer need it.

Hi,

If I am not mistaken, this does not work in the current state of the 
cmCpackDebGenerator.cxx (I tried of course). I wanted to know by which 
*magic* this could work, and also why you are suggesting me this, which 
lead me to this:

- CPackRPM: all the RPM creation is driven by the CPackRPM.cmake itself
- CPackDEB: part of package configuration is sent from the .cmake back 
to the cmCPackDebGenerator.cxx, and some internal functions in C++ are 
creating the package definition.

The workflow is not the same, so if I scope all the variables in a 
function in the .cmake file, I have no way to get these variables back 
in the .cxx file. For the RPM package, this is fine since at the end of 
the CPackRPM.cmake call, the package is created.

My guess is that I do not have the choice: I have to do some set/unset 
to avoid inter-component troubleshooting.

Any suggestion more than welcome.

Best,
Raffi



More information about the cmake-developers mailing list