Ask Your Question
0

ROS package release - file INSTALL cannot copy file

asked 2020-03-13 09:11:12 -0500

codavide gravatar image

updated 2020-03-13 15:13:16 -0500

I'm releasing a ROS package, for ROS kinetic.

Now, the binarydeb build executed on the ROS buildfarm is failing with this error

00:58:42 CMake Error at cmake_install.cmake:36 (file):
00:58:42   file INSTALL cannot copy file
00:58:42   "/tmp/binarydeb/ros-kinetic-swarmros-0.3.6/obj-x86_64-linux-gnu/replxx-amd64/src/replxx-build/libreplxx.a"
00:58:42   to "/opt/ros/kinetic/lib/libreplxx.a".

is it failing because it cannot be installed in /opt/ros/kinetic? Have I to change the installation directory?

Please find here the log of the failing build and here the install rules of my package

edit retag flag offensive close merge delete

Comments

Please edit your question to link to the actual full log of the build failure as well as the install rules that are failing. Just the error message is not enough context to diagnose your problem.

tfoote gravatar image tfoote  ( 2020-03-13 13:28:10 -0500 )edit

@tfoote done

codavide gravatar image codavide  ( 2020-03-13 15:16:03 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2020-03-13 18:53:50 -0500

tfoote gravatar image

You're doing a lot of custom installation rules that are note clear to me on first inspection.

Note I was really looking for these installation rules: https://github.com/amilankovich-slab/... With the complexity of your CMakeLists.txt I wasn't able to identify the actual install rule that's failing with a quick look around.

Though it's good to know the extra arguments that you're overriding as well. Note that we strongly recommend not requiring you to require override cmake variables like that as it will break your users who try to compile from source with the default arguments.

If you can reduce your problem to something a little bit smaller that would help. I'll note that the first thing that pops out to me is that you're installing into /opt/ros/kinetic/lib where the standard is to install into /opt/ros/kinetic/PACKAGENAME instead.

If you want to debug you can reproduce the buildfarm jobs locally by following the documentation here: https://github.com/ros-infrastructure...

edit flag offensive delete link more

Comments

thanks @tfoote for your answer, I have done some tests on my machine, not using the buildfarm, but just running the instructions of the builddeb job in my PC.

Running dpkg-buildpackage I had the same error that I have on the buildfarm, which instead has been solved runinng it as sudo dpkg-buildpackage, because I have seen that only root user can write in opt/ros/kinetic folder.

I suppose that this can be the same problem that there is in the buildfarm, is it possible? Do you think that this can be solved changing the install prefix in /opt/ros/kinetic/PACKAGENAME?

Maybe the problen is due to the fact that I'm tryingy to install in /opt/ros/kinetic/. I have tried to check some other jobs on jenkins and it seems to me that these succesful jobs install the packages in /tmp/binarydeb/ros-kinetic-packagename-x.y.z/debian/ros-kinetic-packagename/opt/ros/kinetic/lib/ (e.g., http://build.ros.org/view/Kbin_uX64/j...)

codavide gravatar image codavide  ( 2020-03-14 10:58:20 -0500 )edit

Ahh, that sounds like you're not adhering to the DESTDIR installation conventions: See the debian package maintenance guide And the referenced GNU coding standards for DESTDIR

tfoote gravatar image tfoote  ( 2020-03-16 00:38:09 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 2020-03-13 09:11:12 -0500

Seen: 285 times

Last updated: Mar 13 '20