[CMake] CPack 2.6.2: can't create temporary directory

David Cole david.cole at kitware.com
Thu Oct 16 05:36:36 EDT 2008


Issue 7000 still needs a bit more work to address some of the comments in
the many notes. I'm not sure about 7410, I'll have to take a look at it...

Thanks for confirming that this works for you,
David


On Wed, Oct 15, 2008 at 11:16 PM, Petri Hodju <petrihodju at yahoo.com> wrote:

> Hi!
>
> I can confirm that this resolves my problem. Thanks again for a quick cure
> and for the tip! Could it be that this solves also issues 7000 & 7410? They
> seem to have the same problem with temporary directory creation.
>
> Br,
> Petri
>
> --- On *Wed, 10/15/08, David Cole <david.cole at kitware.com>* wrote:
>
> From: David Cole <david.cole at kitware.com>
> Subject: Re: [CMake] CPack 2.6.2: can't create temporary directory
> To: petrihodju at yahoo.com
> Cc: cmake at cmake.org
> Date: Wednesday, October 15, 2008, 6:46 AM
>
>
> This is fixed now in CVS HEAD:
>  /cvsroot/CMake/CMake/Source/CPack/cmCPackGenerator.cxx,v  <--
>  Source/CPack/cmCPackGenerator.cxx
>     new revision: 1.16; previous revision: 1.15
>
> It will also be merged over to the CMake-2-6 branch and appear in CMake
> 2.6.3 when that is released...
>
> Thanks for the report, Petri.
>
> One recommendation for you: if you are doing packaging this way via a
> custom target, use "${CMAKE_CPACK_COMMAND}" instead of cpack as the command
> you execute. This will guarantee using the cpack associated with the cmake
> used to configure regardless of PATH or any other environment issues. (That
> way, when I do a "make pack" on your project, I get the correct cpack being
> used rather than whichever one is available in my environment...)
>
> Sorry for the hassle,
> David Cole
>
>
> On Wed, Oct 15, 2008 at 12:46 AM, Petri Hodju <petrihodju at yahoo.com>wrote:
>
>> Great news!
>>
>> I started to browse through the source code myself but figured out that as
>> I don't have full understanding of the big picture, I won't get it right
>> without breaking something else somewhere... So, I'm happy to wait for your
>> solution : ) Meanwhile I get along with 2.6.0
>>
>> Thanks David!
>>
>> Br,
>> Petri
>>
>> --- On *Tue, 10/14/08, David Cole <david.cole at kitware.com>* wrote:
>>
>> From: David Cole <david.cole at kitware.com>
>> Subject: Re: [CMake] CPack 2.6.2: can't create temporary directory
>> To: "Petri Hodju" <petrihodju at yahoo.com>
>> Cc: cmake at cmake.org
>> Date: Tuesday, October 14, 2008, 1:44 PM
>>
>>
>> Scratch my last reply somewhat.....
>> Your CMakeLists file runs "cpack" as the custom command, which was picking
>> up cpack 2.6.2 from my PATH rather than using the same cpack that goes with
>> the cmake 2.6.0 which I was using by fullpath to configure the project.
>>
>> So. It does work with CPack 2.6.0 and I will work on the fix....
>>
>> :-)
>>
>> Sorry for the pilot error,
>> David
>>
>>
>> On Tue, Oct 14, 2008 at 4:24 PM, David Cole <david.cole at kitware.com>wrote:
>>
>>> OK.... so when I reproduce this issue, I see that I do not have directory
>>> creation permissions in "/opt" on my Linux machine. So... the error message
>>> is not really surprising to me. Plus, I get the same error with CMake 2.6.0
>>> and CMake 2.6.2.
>>> Maybe you lost permissions to your "/opt" directory at the same time that
>>> you upgraded to CMake 2.6.2.....??
>>>
>>> Let me know if you still think this is a CMake issue after you verify
>>> that you really have different behavior between 2.6.0 and 2.6.2 on the same
>>> machine.
>>>
>>>
>>> Thanks,
>>> David Cole
>>> Kitware, Inc.
>>>
>>>
>>> On Mon, Oct 13, 2008 at 6:05 AM, Petri Hodju <petrihodju at yahoo.com>wrote:
>>>
>>>> Hi!
>>>>
>>>> I have put together a custom way of building packages inspired by Stuart
>>>> Herring posted here earlier:
>>>>
>>>> Fri Apr 4 20:39:04 EDT 2008
>>>> [CMake] CPack: Building Multiple Packages
>>>>
>>>> Everything is working fine with version 2.6.0 but things break up with
>>>> 2.6.2. The
>>>> error I get is like:
>>>>
>>>> CPack Error: Problem creating temporary directory: /opt/test
>>>>
>>>> So, I'm not sure if there is a bug in 2.6.2 or has something changed
>>>> between 2.6.0 and 2.6.2 which I don't take into account.
>>>>
>>>> I have attached to this mail a tar package containing full example of
>>>> the problem.
>>>>
>>>> For those who can't bother with the tar file here is written out the
>>>> CMakeLists.txt & CPackConfig.in files, which make it all happen:
>>>>
>>>> CMakeLists.txt:
>>>>
>>>>
>>>> #===============================================================================
>>>> # Top level project makefile
>>>>
>>>> #===============================================================================
>>>>
>>>> CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
>>>>
>>>> PROJECT(test)
>>>>
>>>> SET(VERSION_MAJOR 0)
>>>> SET(VERSION_MINOR 1)
>>>> SET(VERSION_PATCH 2)
>>>> SET(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
>>>>
>>>>
>>>> #-------------------------------------------------------------------------------
>>>> # macro for creating packages.
>>>>
>>>> #-------------------------------------------------------------------------------
>>>>
>>>> ADD_CUSTOM_TARGET(pack)
>>>>
>>>> MACRO(ADD_PACKAGE COMPONENT)
>>>>   SET(TARGET pack-${COMPONENT})
>>>>   SET(CONFIG "CPackConfig-${COMPONENT}.cmake")
>>>>   SET(PACKAGE ${COMPONENT})
>>>>   CONFIGURE_FILE("CPackConfig.in" "${CONFIG}" @ONLY)
>>>>   ADD_CUSTOM_TARGET(${TARGET} COMMAND cpack --config "${CONFIG}")
>>>>   ADD_DEPENDENCIES(pack ${TARGET})
>>>> ENDMACRO(ADD_PACKAGE)
>>>>
>>>>
>>>> #-------------------------------------------------------------------------------
>>>> # installation path settings
>>>>
>>>> #-------------------------------------------------------------------------------
>>>>
>>>> SET(CMAKE_SET_DESTDIR "ON")
>>>> SET(CMAKE_INSTALL_PREFIX "/opt/test")
>>>> SET(CPACK_GENERATOR "DEB" "RPM")
>>>>
>>>>
>>>> #-------------------------------------------------------------------------------
>>>> # create test binary
>>>>
>>>> #-------------------------------------------------------------------------------
>>>>
>>>> ADD_EXECUTABLE(bin1 "bin1.cc")
>>>> INSTALL(TARGETS bin1 DESTINATION "bin" COMPONENT "binaries")
>>>> ADD_PACKAGE(binaries)
>>>>
>>>> CPackConfig.in:
>>>>
>>>>
>>>> #===============================================================================
>>>> # template for package generation
>>>>
>>>> #===============================================================================
>>>>
>>>> SET(CMAKE_SET_DESTDIR "@CMAKE_SET_DESTDIR@")
>>>> SET(CMAKE_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@")
>>>> SET(CPACK_SET_DESTDIR "@CMAKE_SET_DESTDIR@")
>>>> SET(CPACK_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@")
>>>>
>>>> SET(CPACK_PACKAGE_VERSION_MAJOR @VERSION_MAJOR@)
>>>> SET(CPACK_PACKAGE_VERSION_MINOR @VERSION_MINOR@)
>>>> SET(CPACK_PACKAGE_VERSION_PATCH @VERSION_PATCH@)
>>>>
>>>> SET(CPACK_CMAKE_GENERATOR "@CMAKE_GENERATOR@")
>>>> SET(CPACK_GENERATOR "@CPACK_GENERATOR@")
>>>>
>>>> SET(CPACK_INSTALL_CMAKE_PROJECTS "@PROJECT_BINARY_DIR@;@PROJECT_NAME@
>>>> ;@PACKAGE@;/")
>>>> SET(CPACK_PACKAGE_FILE_NAME "@PROJECT_NAME at -@PACKAGE at -@VERSION@
>>>> - at CMAKE_SYSTEM_NAME@")
>>>> SET(CPACK_PACKAGE_NAME "@PROJECT_NAME@")
>>>> SET(CPACK_PACKAGE_VENDOR "Test Vendor")
>>>> SET(CPACK_PACKAGE_CONTACT "test at vendor.org")
>>>> SET(CPACK_PACKAGE_DESCRIPTION_FILE "@PROJECT_BINARY_DIR@
>>>> /Description.txt")
>>>> SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Test @PACKAGE@ Package")
>>>> SET(CPACK_SYSTEM_NAME "@CMAKE_SYSTEM_NAME@")
>>>>
>>>> and finally here is the output I get with cmake 2.6.0 and 2.6.2
>>>>
>>>> Best regards,
>>>> Petri Hodju
>>>>
>>>> --------------------------- with cmake 2.6.0
>>>> ---------------------------------
>>>>
>>>> pho at host:~/misc/code/cpack$ cmake --version
>>>> cmake version 2.6-patch 0
>>>>
>>>> pho at host:~/misc/code/cpack$ cpack --version
>>>> cpack version 2.6-patch 0
>>>>
>>>> pho at host:~/misc/code/cpack$ cmake .
>>>> -- The C compiler identification is GNU
>>>> -- The CXX compiler identification is GNU
>>>> -- Check for working C compiler: /usr/bin/gcc
>>>> -- Check for working C compiler: /usr/bin/gcc -- works
>>>> -- Detecting C compiler ABI info
>>>> -- Detecting C compiler ABI info - done
>>>> -- Check for working CXX compiler: /usr/bin/c++
>>>> -- Check for working CXX compiler: /usr/bin/c++ -- works
>>>> -- Detecting CXX compiler ABI info
>>>> -- Detecting CXX compiler ABI info - done
>>>> -- Configuring done
>>>> -- Generating done
>>>> -- Build files have been written to: /home/pho/misc/code/cpack
>>>>
>>>> pho at host:~/misc/code/cpack$ make
>>>> Scanning dependencies of target bin1
>>>> [100%] Building CXX object CMakeFiles/bin1.dir/bin1.cc.o
>>>> Linking CXX executable bin1
>>>> [100%] Built target bin1
>>>>
>>>> pho at host:~/misc/code/cpack$ make pack
>>>> Scanning dependencies of target pack-binaries
>>>> CPack: Create package using DEB
>>>> CPack: Install projects
>>>> CPack: - Run preinstall target for: test
>>>> CPack: - Install project: test
>>>> CPack: Compress package
>>>> CPack: Finalize package
>>>> CPack: Package /home/pho/misc/code/cpack/test-binaries-0.1.2-Linux.deb
>>>> generated.
>>>> CPack: Create package using RPM
>>>> CPack: Install projects
>>>> CPack: - Run preinstall target for: test
>>>> CPack: - Install project: test
>>>> CPack: Compress package
>>>> CPack: Finalize package
>>>> CPack: Package /home/pho/misc/code/cpack/test-binaries-0.1.2-Linux.rpm
>>>> generated.
>>>> Built target pack-binaries
>>>> Scanning dependencies of target pack
>>>> Built target pack
>>>>
>>>> --------------------------- with cmake 2.6.2
>>>> ---------------------------------
>>>>
>>>> pho at host:~/misc/code/cpack$ cmake --version
>>>> cmake version 2.6-patch 2
>>>>
>>>> pho at host:~/misc/code/cpack$ cpack --version
>>>> cpack version 2.6-patch 2
>>>>
>>>> pho at host:~/misc/code/cpack$ cmake .
>>>> -- The C compiler identification is GNU
>>>> -- The CXX compiler identification is GNU
>>>> -- Check for working C compiler: /usr/bin/gcc
>>>> -- Check for working C compiler: /usr/bin/gcc -- works
>>>> -- Detecting C compiler ABI info
>>>> -- Detecting C compiler ABI info - done
>>>> -- Check for working CXX compiler: /usr/bin/c++
>>>> -- Check for working CXX compiler: /usr/bin/c++ -- works
>>>> -- Detecting CXX compiler ABI info
>>>> -- Detecting CXX compiler ABI info - done
>>>> -- Configuring done
>>>> -- Generating done
>>>> -- Build files have been written to: /home/pho/misc/code/cpack
>>>>
>>>> pho at host:~/misc/code/cpack$ make
>>>> Scanning dependencies of target bin1
>>>> [100%] Building CXX object CMakeFiles/bin1.dir/bin1.cc.o
>>>> Linking CXX executable bin1
>>>> [100%] Built target bin1
>>>>
>>>> pho at host:~/misc/code/cpack$ make pack
>>>> Scanning dependencies of target pack-binaries
>>>> CPack: Create package using DEB
>>>> CPack: Install projects
>>>> CPack: - Run preinstall target for: test
>>>> CPack: - Install project: test
>>>> CPack Error: Problem creating temporary directory: /opt/test
>>>> CPack Error: Error when generating package: test
>>>> make[3]: *** [CMakeFiles/pack-binaries] Error 1
>>>> make[2]: *** [CMakeFiles/pack-binaries.dir/all] Error 2
>>>> make[1]: *** [CMakeFiles/pack.dir/rule] Error 2
>>>> make: *** [pack] Error 2
>>>>
>>>>
>>>> _______________________________________________
>>>> CMake mailing list
>>>> CMake at cmake.org
>>>> http://www.cmake.org/mailman/listinfo/cmake
>>>>
>>>
>>>
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20081016/7f05ac5a/attachment.htm>


More information about the CMake mailing list