[CMake] CPack RPM: file XXX conflicts with file from package filesystem-yyy...

Mario Emmenlauer mario at emmenlauer.de
Thu Nov 22 09:48:58 EST 2018


I'm trying to build an RPM with CPack, and everything seems to work,
but the resulting package can not be installed. I get Transaction check
error:
  file / from install of <mypackage> conflicts with file from package filesystem-3.2-25.el7.x86_64
  file /opt from install of <mypackage> conflicts with file from package filesystem-3.2-25.el7.x86_64
  file /usr/bin from install of <mypackage> conflicts with file from package filesystem-3.2-25.el7.x86_64
  file /usr/share from install of <mypackage> conflicts with file from package filesystem-3.2-25.el7.x86_64
  file /usr from install of <mypackage> conflicts with file from package filesystem-3.2-25.el7.x86_64

I've read in the CPackRPM source code about how to add excludes and
CPackRPM says that my "Final list of path to OMIT in RPM" would be
/etc;/etc/init.d;/usr;/usr/bin;/usr/include;/usr/lib;/usr/libx32;/usr/lib64;/usr/share;/usr/share/aclocal;/usr/share/doc;/opt;/usr/share/applications

I can see that the conflicting directories are removed from
CPACK_RPM_INSTALL_FILES. But that does not satisfy rpm :-(

Could someone shed some light? I believe that the problem may be
my install command: I call install only once for the full tree
of files that I'd like to package:
  install(DIRECTORY "${INSTALL_TMP_ROOT}/" DESTINATION "/" USE_SOURCE_PERMISSIONS)

I have a wild guess that this install somehow includes the
directories, and probably it would be better to just call install
on the individual files? I would prefer not to call install on the
individual files because that overrides file permissions for every
file, and I carefully prepared my package upfront to have the
exact permissions for installation.

Any help would be greatly appreciated!

All the best,

    Mario Emmenlauer


More information about the CMake mailing list