On Fri, 24 Apr 2020 at 19:06, Peter Dimov via Boost
Jonathan Wakely wrote:
I see lines like this in each of the installed .cmake files:
/builddir/build/BUILDROOT/boost-1.73.0-0.1.fc33.x86_64/usr/lib64/openmpi/lib/cmake/boost_python-1.73.0/boost_python-config.cmake:if(EXISTS "/builddir/build/BUILDROOT/boost-1.73.0-0.1.fc33.x86_64/usr/lib64/openmpi/lib/cmake") /builddir/build/BUILDROOT/boost-1.73.0-0.1.fc33.x86_64/usr/lib64/openmpi/lib/cmake/boost_python-1.73.0/boost_python-config.cmake: get_filename_component(_BOOST_CMAKEDIR_ORIGINAL "/builddir/build/BUILDROOT/boost-1.73.0-0.1.fc33.x86_64/usr/lib64/openmpi/lib/cmake" REALPATH) /builddir/build/BUILDROOT/boost-1.73.0-0.1.fc33.x86_64/usr/lib64/openmpi/lib/cmake/boost_python-1.73.0/boost_python-config.cmake: set(_BOOST_CMAKEDIR "/builddir/build/BUILDROOT/boost-1.73.0-0.1.fc33.x86_64/usr/lib64/openmpi/lib/cmake")
That shouldn't be a problem. This portion tries to detect a corner case in which the CMake directory is reached through a symlink; if it's moved, this check will just not activate, which is fine. The config files are still fully relocatable.
The problem is that the Fedora RPM build process fails at this point, because it's a fatal error if the string "/builddir/build/BUILDROOT/boost-1.73.0-0.1.fc33.x86_64/" appears in any of the files being packaged. Since that directory is purely an artefact of building the package and never exists on the end users' machines, any hardcoded reference to that path is wrong.
I have an open issue to implement support for DESTDIR, but this will happen for 1.74.
Good to know, thanks. If there's nothing like a --destdir flag that I'm missing then I'll just use sed to get rid of those paths. Thanks for the confirmation.