Hi,
recent CMake versions won't compile the VM. Error message is always:
$ cmake . CMake Error: Could not open file for write in copy operation /CMakeSystem.cmake.tmp CMake Error: : System Error: Permission denied CMake Error at /home/cassou/cmake/Modules/CMakeDetermineSystem.cmake:172 (configure_file): configure_file Problem configuring file Call Stack (most recent call first): CMakeLists.txt:3 (include)
I did a git-bisect of the cmake source code to find which cmake's commit stopped working for the VM. The offending cmake commit is:
commit 7195aca54f40778f41894c9e62649afe09e71d6c Author: Brad King brad.king@kitware.com Date: Fri Aug 24 08:48:59 2012 -0400
Make platform information files specific to the CMake version
At the top of a build tree we configure inside the CMakeFiles directory files such as "CMakeSystem.cmake" and "CMake<lang>Compiler.cmake" to save information detected about the system and compilers in use. The method of detection and the exact results store varies across CMake versions as things improve. This leads to problems when loading files configured by a different version of CMake. Previously we ignored such existing files only if the major.minor part of the CMake version component changed, and depended on the CMakeCache.txt to tell us the last version of CMake that wrote the files. This led to problems if the user deletes the CMakeCache.txt or we add required information to the files in a patch-level release of CMake (still a "feature point" release by modern CMake versioning convention).
Ensure that we always have version-consistent platform information files by storing them in a subdirectory named with the CMake version. Every version of CMake will do its own system and compiler identification checks even when a build tree has already been configured by another version of CMake. Stored results will not clobber those from other versions of CMake which may be run again on the same tree in the future. Loaded results will match what the system and language modules expect.
Rename the undocumented variable CMAKE_PLATFORM_ROOT_BIN to CMAKE_PLATFORM_INFO_DIR to clarify its purpose. The new variable points at the version-specific directory while the old variable did not.
I attach the patch of this commit to this email. I have no idea what we can do about it.
On Sun, Apr 14, 2013 at 7:12 PM, Damien Cassou damien.cassou@gmail.comwrote:
recent CMake versions won't compile the VM.
I've just published a bug report to cmake, just in case: http://public.kitware.com/Bug/view.php?id=14081
On 14 April 2013 19:24, Damien Cassou damien.cassou@gmail.com wrote:
On Sun, Apr 14, 2013 at 7:12 PM, Damien Cassou damien.cassou@gmail.com wrote:
recent CMake versions won't compile the VM.
I've just published a bug report to cmake, just in case: http://public.kitware.com/Bug/view.php?id=14081
btw, why cmake modules in your home dir? /home/cassou/cmake/Modules
it looks like you did not configured/installed it properly (or not what cmake expects).
-- Damien Cassou http://damiencassou.seasidehosting.st
"Success is the ability to go from one failure to another without losing enthusiasm." Winston Churchill
On Sun, Apr 14, 2013 at 7:28 PM, Igor Stasenko siguctua@gmail.com wrote:
btw, why cmake modules in your home dir? /home/cassou/cmake/Modules
it looks like you did not configured/installed it properly (or not what cmake expects).
because I cloned the cmake repo to do the git-bisect
On 14 April 2013 19:30, Damien Cassou damien.cassou@gmail.com wrote:
On Sun, Apr 14, 2013 at 7:28 PM, Igor Stasenko siguctua@gmail.com wrote:
btw, why cmake modules in your home dir? /home/cassou/cmake/Modules
it looks like you did not configured/installed it properly (or not what cmake expects).
because I cloned the cmake repo to do the git-bisect
still the question remains same.. most programs on linux use "install prefix", which if not set properly things get compiled with null/default value and then it looks for config files at wrong location(s).
-- Damien Cassou http://damiencassou.seasidehosting.st
"Success is the ability to go from one failure to another without losing enthusiasm." Winston Churchill
On Sun, Apr 14, 2013 at 7:24 PM, Damien Cassou damien.cassou@gmail.com wrote:
On Sun, Apr 14, 2013 at 7:12 PM, Damien Cassou damien.cassou@gmail.com wrote:
recent CMake versions won't compile the VM.
I've just published a bug report to cmake, just in case: http://public.kitware.com/Bug/view.php?id=14081
according to answer on this issue, it looks like we have to remove the line "include(CMakeDetermineSystem)". I confirm removing the line solves my problem.
-- Damien Cassou http://damiencassou.seasidehosting.st
"Success is the ability to go from one failure to another without losing enthusiasm." Winston Churchill
On 15 April 2013 12:15, Damien Cassou damien.cassou@gmail.com wrote:
On Sun, Apr 14, 2013 at 7:24 PM, Damien Cassou damien.cassou@gmail.com wrote:
On Sun, Apr 14, 2013 at 7:12 PM, Damien Cassou damien.cassou@gmail.com wrote:
recent CMake versions won't compile the VM.
I've just published a bug report to cmake, just in case: http://public.kitware.com/Bug/view.php?id=14081
according to answer on this issue, it looks like we have to remove the line "include(CMakeDetermineSystem)". I confirm removing the line solves my problem.
good to know...
i don't remember when i first time put that line, but i do remember that i had reasons for doing that. (not just copy-pasting code snippets from other cmake files). If build will work fine without it, then sure thing we should remove it.
-- Damien Cassou http://damiencassou.seasidehosting.st
"Success is the ability to go from one failure to another without losing enthusiasm." Winston Churchill
Hi Damien,
I cannot test it right now, but I have seen that bug, and the easy solution was to go back to an older cmake version (2.8.8 in my case). If with that change it works with new versions of cmake, then please go ahead! :)
On Mon, Apr 15, 2013 at 10:30 AM, Igor Stasenko siguctua@gmail.com wrote:
On 15 April 2013 12:15, Damien Cassou damien.cassou@gmail.com wrote:
On Sun, Apr 14, 2013 at 7:24 PM, Damien Cassou damien.cassou@gmail.com
wrote:
On Sun, Apr 14, 2013 at 7:12 PM, Damien Cassou <damien.cassou@gmail.com
wrote:
recent CMake versions won't compile the VM.
I've just published a bug report to cmake, just in case: http://public.kitware.com/Bug/view.php?id=14081
according to answer on this issue, it looks like we have to remove the line "include(CMakeDetermineSystem)". I confirm removing the line solves my problem.
good to know...
i don't remember when i first time put that line, but i do remember that i had reasons for doing that. (not just copy-pasting code snippets from other cmake files). If build will work fine without it, then sure thing we should remove it.
-- Damien Cassou http://damiencassou.seasidehosting.st
"Success is the ability to go from one failure to another without losing enthusiasm." Winston Churchill
-- Best regards, Igor Stasenko.
On 14 April 2013 19:12, Damien Cassou damien.cassou@gmail.com wrote:
Hi,
recent CMake versions won't compile the VM. Error message is always:
$ cmake . CMake Error: Could not open file for write in copy operation /CMakeSystem.cmake.tmp CMake Error: : System Error: Permission denied CMake Error at /home/cassou/cmake/Modules/CMakeDetermineSystem.cmake:172 (configure_file): configure_file Problem configuring file Call Stack (most recent call first): CMakeLists.txt:3 (include)
I did a git-bisect of the cmake source code to find which cmake's commit stopped working for the VM. The offending cmake commit is:
commit 7195aca54f40778f41894c9e62649afe09e71d6c Author: Brad King brad.king@kitware.com Date: Fri Aug 24 08:48:59 2012 -0400
Make platform information files specific to the CMake version At the top of a build tree we configure inside the CMakeFiles directory files such as "CMakeSystem.cmake" and "CMake<lang>Compiler.cmake" to save information detected about the system and compilers in use. The method of detection and the exact results store varies across CMake versions as things improve. This leads to problems when loading files configured by a different version of CMake. Previously we ignored such existing files only if the major.minor part of the CMake version component changed, and depended on the CMakeCache.txt to tell us the last version of CMake that wrote the files. This led to problems if the user deletes the CMakeCache.txt or we add required information to the files in a patch-level release of CMake (still a "feature point" release by modern CMake versioning convention). Ensure that we always have version-consistent platform information files by storing them in a subdirectory named with the CMake version. Every version of CMake will do its own system and compiler identification checks even when a build tree has already been configured by another version of CMake. Stored results will not clobber those from other versions of CMake which may be run again on the same tree in the future. Loaded results will match what the system and language modules expect. Rename the undocumented variable CMAKE_PLATFORM_ROOT_BIN to CMAKE_PLATFORM_INFO_DIR to clarify its purpose. The new variable points at the version-specific directory while the old variable did not.
I attach the patch of this commit to this email. I have no idea what we can do about it.
remove lines in CMakeLists.txt one by one to see if it can change anything. but i think this is a bug of cmake.
-- Damien Cassou http://damiencassou.seasidehosting.st
"Success is the ability to go from one failure to another without losing enthusiasm." Winston Churchill
vm-dev@lists.squeakfoundation.org