[CMake] CPack packages are missing files

Eric Noulard eric.noulard at gmail.com
Sat Mar 20 19:04:52 EDT 2010


2010/3/20 Rob Hasselbaum <rob at hasselbaum.net>:
> Thanks for the quick responses!
>
> On Sat, Mar 20, 2010 at 6:20 PM, Eric Noulard <eric.noulard at gmail.com> wrote:
>> Which one did you try?
>> RPM, TGZ, ZIP ?
>
> DEB and TGZ.
>
>> when you do "make install" are you root or normal user?
>> Are you installing files in absolute location or relatively to your
>> install prefix?
>
> I am root.

Ok then it explains the difference.
File must installed at there absolute location but not package by CPack
which cannot handle aboslute location without using CPACK_SET_DESTDIR.

Another option would be to use fakeroot
see http://www.cmake.org/pipermail/cmake/2009-August/031328.html

you may simply try (without setting DESTDIR)

"fakeroot make package"

>
>> You must be installing file with absolute pathname destination.
>> If you do so you should:
>>
>> 1) try to avoid absolute pathname destination
>>
>> or
>>
>> 2) SET(CPACK_SET_DESTDIR ON) in your CMakeLists.txt
>>
>> see:
>> http://www.cmake.org/pipermail/cmake/2008-July/022958.html
>
> Some files are relative to the install prefix and some aren't, but I
> don't think I can avoid it in some cases. For example, certain config
> files must go into "/etc" or my tool won't work. But I will give
> CPACK_SET_DESTDIR a try and report back.

I understand for /etc files.
Then you have two options:

1) use CPACK_SET_DESTDIR

2) Install those file with install time scripts

   like postinstall script for DEB
   http://www.cmake.org/Wiki/CMake:CPackPackageGenerators#DEB_.28UNIX_only.29

   or CPACK_RPM_<POST/PRE>_<UN>INSTALL_SCRIPT_FILE
   for RPM.

   this is not possible with TGZ and ZIP.


-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org


More information about the CMake mailing list