Skip to content

Debug RPM Building in RelWithDebInfo Mode, master branch (2017.11.23.)

This has been a long time coming, as you can see in ATLINFR-1797.

With the update a new configuration file (CPackDbgRPMConfig.cmake) gets created in the build directory when building a project in "RelWithDebInfo" mode. This custom-made configuration can be used to generate an RPM from the project that holds only the <foo>.dbg files of the build.

Remember, that the "normal" RPM creation is configured to exclude those files. That's why we never get debug symbols for the CVMFS installations of optimised builds.

The idea is that now one can build 2 RPMs from the build directory for a "RelWithDebInfo" build, like:

cpack --config CPackConfig.cmake
cpack --config CPackDbgRPMConfig.cmake

The first one creates the RPM that we're using these days, and the second one creates the "debug RPM". The naming is that if let's say the "normal" RPM is called "AnalysisBase_21.2.11_x86_64-slc6-gcc62-opt", then the debug RPM will be called ""AnalysisBase_21.2.11_x86_64-slc6-gcc62-opt-dbg". (This is to differentiate it from the "AnalysisBase_21.2.11_x86_64-slc6-gcc62-dbg" name of a non-optimised Debug build.)

Note that you always have to build the "normal" RPM before building the debug one. Since the latter assumes that the directories for building the normal RPM have already been set up. (For performance reasons...)

You can find an example of this under: http://pcadp02.cern.ch/rpms/

The behaviour of the "debug RPM" is that it depends on just a single package, the "normal" RPM. So that requesting the installation of the debug package would trigger the installation of the full release as well.

The build scripts in atlas/athena will need some tweaks to make use of this new feature, but the code is also fully backwards compatible, so projects not yet updated should not see any change in their own behaviour.

Merge request reports