-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
master
branch is broken: can't find package Linuxcnc
#3348
Comments
You seem to have installed the package. Are you sure no cross-contamination took place between installing 2.9 and master? What if you run master in-place? The error you see is probably that it cannot find the tcl/linuxcnc.so library (wherever that gets installed). On a side note: there also appears to be a small difference in lib/hallib/check_config.tcl between master and 2.9 (9f82dce). |
Well this is interesting.. Using run-in-place, I can get axis to start: And in order to fix this issue here, I manually made a symlink from /usr/lib/tcltk/linuxcnc to /usr/lib/linuxcnc.so (by mistake actually, I meant to do: /usr/lib/tcltk/linuxcnc/linuxcnc.so to /usr/lib/linuxcnc.so) So while this may be hard to believe...
To be clear, yes, I am symlinking a directory to a shared library file. Any idea how to fix this properly? |
This seems to be an issue with the search path tcl is using to find linuxcnc.so. Where is it installed? If you do |
Everything looks good there:
Marking Also, I ran into this exact problem before, all I had to do was set TCLLIBPATH to Relevant thread: https://forum.linuxcnc.org/9-installing-linuxcnc/42143-solved-linuxcnc-on-arch |
Your |
I have tried 10+ variants of TCLLIBPATH, including that, nothing is working... Please note that 2.9 runs just fine (minus axis being broken.) In /usr/bin/linuxcnc, I added:
I ran this:
I'm not too worried about the realtime directory error, I was just trying to get past the fact it can't find the LinuxCNC package with a quick symlink. |
Your previous link doesn't exactly tell anything about run-in-place. What I meant is doing a clean local build: $ git clone https://github.com/LinuxCNC/linuxcnc.git lcnc-clean.git
$ cd lcnc-clean.git/src
$ ./autogen.sh
$ ./configure
$ make -j8
$ sudo make setuid
$ ../scripts/rip-environment linuxcnc You do not need to do The above recipe sets up all paths relative to the build location and should run completely local. The question is then, does it run or not? If it runs, then a system install fails somewhere. If it also fails, then it may be required to bisect commits to see which commit causes the problem. |
I can do a clean local build every time (run-in-place) and everything works just fine in Gentoo. What I'm trying to figure out is why On a separate note, In case you missed my previous comment, run-in-place also happens to fix the axis interface. When
Selecting other interfaces such as gmoccapy work just fine with With run-in-place, axis works, and there are no errors, in both |
Ok, so local-build/rip works. I just checked my Fedora machine, by locating files named pkgIndex.tcl, and it does not have a /usr/lib/tcltk directory. Fedora has packages in /usr/lib64/tcl8.6, /usr/lib64/tk8.6 and /usr/share/tcl8.6 and does not set TCLLIBPATH by default. Debian does have /usr/lib/tcltk. Does a clean Gentoo have the /usr/lib/tcltk without lcnc? And where are pkgIndex.tcl files located on Gentoo? Also, when using installed lcnc, then the linuxcnc script will no longer export (a set or modified) TCLLIBPATH variable because the test in linuxcnc line 97 will be false. There seems to be an assumption that a tcl library goes into /usr/lib/tcltk, but that may only be true for Debian and not other distros. |
It does not.
|
LinuxCNC assumes that the system has the packages in the /usr/lib/tcltk directory, but that is a Debian specific thing. I can see that there are hard-coded paths pointing to /usr/lib/tcltk/linuxcnc in the code-base. therefore, it should be installed there. If export TCLLIBPATH does not function, as done in linuxcnc lines 97..104, then I'm out of ideas. I'm drawing a blank as to the place where in the chain it fails (don't have a Gentoo install here to test). BTW, you are sure that Gentoo's version of tcl honors the TCLLIBPATH environment variable? There are security concerns with such environment variables. Maybe it needs a switch at install/emerge time to enable? |
I have a Gentoo image with an installer that's ready to go. All you need is a spare drive and the installer does the rest. https://openlunchbox.com/mw19/index.php/HOWTO:_Gentoo_for_LinuxCNC If you're using the installer on Debian, start here: https://openlunchbox.com/mw19/index.php/HOWTO:_Gentoo_for_LinuxCNC#Fetching_the_installer
100% certain as TCLLIBPATH affects the |
Spare drive? Will a small VM work (2 core/2G RAM/16G disk)? I'm not a real Gentoo guy; probably lack of patience while continuously compiling packages ;-). And, that page you refer to, that is emerging what lcnc version? OTOH, maybe it is the change in the linuxcnc script (linuxcnc.in) in the shellcheck cleanup that caused a problem. Try to build these to versions: If only the second fails, then we know where to start looking. If both fail it needs a deeper historic dig. |
I am trying to get the LinuxCNC master branch working on Gentoo, but only 2.9 wants to start.
I generated debug output to show the differences between the start-up for 2.9 and master branch.
2.9:
master:
Diff:
I think the part that is maybe most helpful is this snippet:
The text was updated successfully, but these errors were encountered: