Build failure with 6.16.00

Hi,

6.16.00 fails to build for me on macOS 10.13.

Note, I am using gnuinstall option, and as part of the build system being used the build step is separate to the final installation step. Also note the final installation step uses the standard DESTROOT mechanism to install first to a temporary location first.

The issue is during the build step there appears to be a pre-mature attempt to perform the final installation, to a location which at that point does not exist. This happens with a ‘clad’ cling plugin. The error I see is below.

To my eye then, the issue looks like something in the build system, that is perform an install step incorrectly during the build. I can provide more information if required.

cheers Chris

[ 33%] Built target cladPlugin

[100%] Built target cladDifferentiator

make[4]: Leaving directory `/opt/local/var/macports/build/_Users_chris_Projects_MacPorts_ports_science_root6/root6/work/build/interpreter/llvm/src/tools/cling/tools/plugins/clad/clad-prefix/src/clad-build’

/opt/local/bin/cmake -E cmake_progress_start /opt/local/var/macports/build/_Users_chris_Projects_MacPorts_ports_science_root6/root6/work/build/interpreter/llvm/src/tools/cling/tools/plugins/clad/clad-prefix/src/clad-build/CMakeFiles 0

/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/Makefile2 preinstall

make[4]: Entering directory `/opt/local/var/macports/build/_Users_chris_Projects_MacPorts_ports_science_root6/root6/work/build/interpreter/llvm/src/tools/cling/tools/plugins/clad/clad-prefix/src/clad-build’

make[4]: Nothing to be done for `preinstall’.

make[4]: Leaving directory `/opt/local/var/macports/build/_Users_chris_Projects_MacPorts_ports_science_root6/root6/work/build/interpreter/llvm/src/tools/cling/tools/plugins/clad/clad-prefix/src/clad-build’

Install the project…

/opt/local/bin/cmake -P cmake_install.cmake

– Install configuration: “Release”

– Installing: /opt/local/libexec/root6/etc/root/cling/plugins/include

CMake Error at cmake_install.cmake:36 (file):

file INSTALL cannot make directory

“/opt/local/libexec/root6/etc/root/cling/plugins/include”: No such file or

directory


_ROOT Version: 6.16.00
Platform: macOS 10.13
_Compiler: clang


@jonesc, thank you very much for the report! I will take a look!
Can I ask you if there is an easy step to reproduce it?

Hi,

@jonesc

The safe workaround if you won’t use clad (it adds automatic function differentiation) is to add the cmake flag

-Dclad=OFF

Also, I think on macOS you might be able to force it to build with sudo, but this is not recommended.

@oshadura
I had the same issue on Arch using makepkg. It was trying to build clad in an area without enough permissions.
I bypassed the issue by changing the permission on the area it was trying to build clad ( in my case: ‘/etc/root/cling/plugins’) with

chmod 777

this is not an elegant solution though :confused:

@oshadura It should be fairly easy to replicate the issue.

First you need to run a proper ‘installation’ build, rather than the default ‘leave it where it is’ build. i.e. run with -Dgnuinstall=ON

Then, configure the install prefix to be somewhere which either does not exist when you subsequently run the build step, or which the privileges with which the build step runs with does not have write access to the install area. Then, if anything attempts to install anything during the build step (i.e. when you just run make not make install) it should fall over. Then fix it :wink:

@malhusse -Dclad=OFF is what I am currently using to work around this issue for my use case, which is I maintain root within MacPorts. Here what happens is exactly what I describe above, the build phase is intentionally run with reduced privileges that do not have write access to the install area. Fudging around with sudo etc. is absolutely not an option …

I had filed this as ROOT-9719, which I just reopened. Thanks for reporting.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.