Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compiling TMKit in a Docker container requires root privileges on host machine #10

Open
theredcomputer opened this issue Nov 3, 2018 · 3 comments

Comments

@theredcomputer
Copy link

theredcomputer commented Nov 3, 2018

This "issue" appears Ubuntu 16.04 and 18.04. The specific error I'm encountering occurs when running configure to install amino (I realize this is the issue tracker for TMKit and not amino, but the KavrakiLab/amino repo doesn't have the ability to raise issues). The following text contains the "issue":

[...]
configure: Use GLPK:          no
configure: Use CGAL:          
configure: Build Demos:       yes
configure: URDF Demos:        
## ----------- ##
## END SUMMARY ##
## ----------- ##
[maxima start]
cd ./src/mac && maxima --very-quiet -b euler77.mac
personality failure 1
make: *** [src/mac/euler.f] Error 255
Makefile:4460: recipe for target 'src/mac/euler.f' failed

personality is a specific syscall. To allow the syscall to go through, I reload dockerd using this seccomp policy and then run docker build ..

This method works, but reloading dockerd requires root privileges. Being able to compile amino without root in Docker would be ideal. I've tried using using configure's --without-maxima flag, but that didn't help.

@ndantam
Copy link
Contributor

ndantam commented Nov 3, 2018

Maxima is used to generate some source files. As a workaround, I suggest to generate a distribution tarball (make dist) outside of docker. This tarball will contain the generated sources. Then, within docker, maxima will not be needed.

@theredcomputer
Copy link
Author

Attempting this gives an error.

stephen@ubuntu:~/amino/amino$ make dist
make  dist-gzip am__post_remove_distdir='@:'
make[1]: Entering directory '/home/stephen/amino/amino'
make[1]: *** No rule to make target 'euler.c', needed by 'distdir'.  Stop.
make[1]: Leaving directory '/home/stephen/amino/amino'
Makefile:4039: recipe for target 'dist' failed
make: *** [dist] Error 2

@ndantam
Copy link
Contributor

ndantam commented Nov 11, 2018

(Previously reply didn't get posted...)

You do need maxima to generate the sources (euler.c) for the distribution tarball.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants