Closed cerna closed 3 years ago
I'm not too nutty about being required to provide a specific MK version on the debian/configure
command line, and would prefer the packaging just write a more static machinekit-hal-dev (> 0.4)
, which appears to solve the problem stated in #2. What do you think?
@zultron, to tell the truth I am not happy with forcing the user to pass the Machinekit-HAL package version either. This is probably the reason why CMAKE export and version scripts (and CPS to think of it) were implemented. When having multiple packages, one has to solve the problem of dependency graph - and this is exactly the problem.
LinuxCNC currently has no packaging support for Python 3 as noted in #2 (however this problem will not go away once it has it). And it presumes that all parts are compiled in one go. That is not a true when using combination of Machinekit-HAL and EMCApplication. As both can be compiled at different time and user can use time displaced versions. (He can have old version of Machinekit-HAL and current version of EMCApplication and vice versa.)
Machinekit-HAL is now Python 3 only software. LinuxCNC currently allows both Python 2 and Python 3 functionality. It is done (in LinuxCNC) the special way that the Python version is decided at compile time and from there stems the problem.
When one tries to compile the packages from current EMCApplication@master:
docker run
docker run -it --rm -v "$(pwd):/machinekit/emca" debian:buster bash -i
apt-get -y update && \
apt-get -y upgrade && \
apt-get -y install build-essential fakeroot devscripts equivs sudo curl python && \
addgroup machinekit --gid 1000 && \
adduser --uid 1000 --ingroup machinekit --home /home/machinekit \
--shell /bin/bash --disabled-password --gecos "" machinekit && \
echo "machinekit ALL = (ALL) NOPASSWD: ALL" >> /etc/sudoers && \
chown -R machinekit:machinekit /machinekit && \
su machinekit -c "curl -1sLf \
'https://dl.cloudsmith.io/public/machinekit/machinekit/cfg/setup/bash.deb.sh' \
| sudo -E bash && \
curl -1sLf \
'https://dl.cloudsmith.io/public/machinekit/machinekit-hal/cfg/setup/bash.deb.sh' \
| sudo -E bash && \
cd /machinekit/emca && \
./debian/configure machinekit-hal no-docs && \
mk-build-deps -irs sudo -t 'apt-get -o APT::Get::Assume-Yes=1 -o Debug::pkgProblemResolver=0 -o APT::Install-Recommends=0' && \
dpkg-buildpackage -us -uc && \
mv ../*.deb . "
(Be aware that currently to build the packages one needs to do two changes [this change is part of this pull request]: delete the -1
from version in debian/changelog
after generation with debian/configure
script and add two lines to debian/emcapplication.files
(also after generation):
usr/share/doc/linuxcnc/examples/sample-configs/maintainer_es.txt
usr/share/doc/linuxcnc/gcode_es.html
Then try to run the compiled packages:
docker run -it --rm -v "$(pwd):/machinekit/emca" -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev/dri:/dev/dri debian:buster bash -i
apt-get -y update && \
apt-get -y upgrade && \
apt-get -y install sudo curl && \
addgroup machinekit --gid 1000 && \
adduser --uid 1000 --ingroup machinekit --home /home/machinekit \
--shell /bin/bash --disabled-password --gecos "" machinekit && \
echo "machinekit ALL = (ALL) NOPASSWD: ALL" >> /etc/sudoers && \
chown -R machinekit:machinekit /machinekit && \
su machinekit -i "curl -1sLf \
'https://dl.cloudsmith.io/public/machinekit/machinekit/cfg/setup/bash.deb.sh' \
| sudo -E bash && \
curl -1sLf \
'https://dl.cloudsmith.io/public/machinekit/machinekit-hal/cfg/setup/bash.deb.sh' \
| sudo -E bash && \
cd /machinekit/emca && \
sudo apt-get -y install ./emcapplication_*.deb && \
echo -e ''ANNOUNCE_IPV4=0\nANNOUNCE_IPV6=0\n | sudo tee -a /etc/machinekit/machinekit.ini && \
export DISPLAY=:0 && \
export DEBUG=5 && \
linuxcnc"
You will get something like this:
LINUXCNC - 2.9.0~pre0
Machine configuration directory is '/home/machinekit/linuxcnc/configs/sim.axis'
Machine configuration file is 'axis.ini'
Starting LinuxCNC...
rtapi_msgd command: /usr/libexec/machinekit/rtapi_msgd --instance=0 --rtmsglevel=5 --usrmsglevel=5 --debug=5 --halsize=524288
rtapi_app command: /usr/libexec/machinekit/rtapi_app --instance=0 --debug=5
4:rtapi_app:10558:user Loaded module rtapi from path /usr/lib/machinekit/modules/rtapi.so
4:rtapi_app:10558:user rtapi default iparms: ''
3::10558:rt INFO: Picked default flavor 'posix' automatically
4:rtapi_app:10558:user rtapi: loaded from /usr/lib/machinekit/modules/rtapi.so
4:rtapi_app:10558:user Loaded module hal_lib from path /usr/lib/machinekit/modules/hal_lib.so
4:rtapi_app:10558:user hal_lib default iparms: ''
4:rtapi_app:10558:user hal_lib: loaded from /usr/lib/machinekit/modules/hal_lib.so
2:rtapi_app:10558:user rtapi:0: cannot create core dumps - /proc/sys/fs/suid_dumpable contains 0
2:rtapi_app:10558:user you might have to run 'echo 1 > /proc/sys/fs/suid_dumpable' as root to enable rtapi_app core dumps
4:rtapi_app:10558:user accepting commands at ipc:///tmp/0.rtapi.2f15e0ae-4db1-4cc9-9bf5-828fccf4aa37
3:rtapi_app:10558:user rtapi_app:0 ready flavor=posix gcc=8.3.0 git=unknown
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
<commandline>:0: Component 'iocontrol' ready
<commandline>:0: Program 'io' started
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
<commandline>:0: Component 'halui' ready
<commandline>:0: Program 'halui' started
Found file(lib): /usr/share/linuxcnc/hallib/core_sim.hal
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
4:rtapi_app:10558:user Loaded module trivkins from path /usr/lib/machinekit/modules/trivkins.so
4:rtapi_app:10558:user trivkins default iparms: ''
4:rtapi_app:10558:user trivkins: loaded from /usr/lib/machinekit/modules/trivkins.so
/usr/share/linuxcnc/hallib/core_sim.hal:5: Realtime module 'trivkins' loaded
4:rtapi_app:10558:user Loaded module motmod from path /usr/lib/machinekit/modules/motmod.so
4:rtapi_app:10558:user motmod default iparms: ''
4:rtapi_app:10558:user motmod: loaded from /usr/lib/machinekit/modules/motmod.so
/usr/share/linuxcnc/hallib/core_sim.hal:7: Realtime module 'motmod' loaded
4:rtapi_app:10558:user Loaded module ddt from path /usr/lib/machinekit/modules/ddt.so
4:rtapi_app:10558:user ddt default iparms: ''
4:rtapi_app:10558:user ddt: loaded from /usr/lib/machinekit/modules/ddt.so
/usr/share/linuxcnc/hallib/core_sim.hal:9: Realtime module 'ddt' loaded
4:rtapi_app:10558:user do_newinst_cmd: instargs=''
4:rtapi_app:10558:user do_newinst_cmd: instargs=''
4:rtapi_app:10558:user do_newinst_cmd: instargs=''
4:rtapi_app:10558:user do_newinst_cmd: instargs=''
4:rtapi_app:10558:user do_newinst_cmd: instargs=''
4:rtapi_app:10558:user do_newinst_cmd: instargs=''
4:rtapi_app:10558:user Loaded module hypot from path /usr/lib/machinekit/modules/hypot.so
4:rtapi_app:10558:user hypot default iparms: ''
4:rtapi_app:10558:user hypot: loaded from /usr/lib/machinekit/modules/hypot.so
/usr/share/linuxcnc/hallib/core_sim.hal:11: Realtime module 'hypot' loaded
4:rtapi_app:10558:user do_newinst_cmd: instargs=''
4:rtapi_app:10558:user do_newinst_cmd: instargs=''
/usr/share/linuxcnc/hallib/core_sim.hal:14: Function 'motion-command-handler' added to thread 'servo-thread', rmb=0 wmb=0
/usr/share/linuxcnc/hallib/core_sim.hal:15: Function 'motion-controller' added to thread 'servo-thread', rmb=0 wmb=0
/usr/share/linuxcnc/hallib/core_sim.hal:17: Function 'ddt_x' added to thread 'servo-thread', rmb=0 wmb=0
/usr/share/linuxcnc/hallib/core_sim.hal:18: Function 'ddt_xv' added to thread 'servo-thread', rmb=0 wmb=0
/usr/share/linuxcnc/hallib/core_sim.hal:19: Function 'ddt_y' added to thread 'servo-thread', rmb=0 wmb=0
/usr/share/linuxcnc/hallib/core_sim.hal:20: Function 'ddt_yv' added to thread 'servo-thread', rmb=0 wmb=0
/usr/share/linuxcnc/hallib/core_sim.hal:21: Function 'ddt_z' added to thread 'servo-thread', rmb=0 wmb=0
/usr/share/linuxcnc/hallib/core_sim.hal:22: Function 'ddt_zv' added to thread 'servo-thread', rmb=0 wmb=0
/usr/share/linuxcnc/hallib/core_sim.hal:23: Function 'vel_xy' added to thread 'servo-thread', rmb=0 wmb=0
/usr/share/linuxcnc/hallib/core_sim.hal:24: Function 'vel_xyz' added to thread 'servo-thread', rmb=0 wmb=0
/usr/share/linuxcnc/hallib/core_sim.hal:28: Pin 'joint.0.motor-pos-cmd' linked to signal 'Xpos'
/usr/share/linuxcnc/hallib/core_sim.hal:28: Pin 'joint.0.motor-pos-fb' linked to signal 'Xpos'
/usr/share/linuxcnc/hallib/core_sim.hal:28: Pin 'ddt_x.in' linked to signal 'Xpos'
/usr/share/linuxcnc/hallib/core_sim.hal:29: Pin 'joint.1.motor-pos-cmd' linked to signal 'Ypos'
/usr/share/linuxcnc/hallib/core_sim.hal:29: Pin 'joint.1.motor-pos-fb' linked to signal 'Ypos'
/usr/share/linuxcnc/hallib/core_sim.hal:29: Pin 'ddt_y.in' linked to signal 'Ypos'
/usr/share/linuxcnc/hallib/core_sim.hal:30: Pin 'joint.2.motor-pos-cmd' linked to signal 'Zpos'
/usr/share/linuxcnc/hallib/core_sim.hal:30: Pin 'joint.2.motor-pos-fb' linked to signal 'Zpos'
/usr/share/linuxcnc/hallib/core_sim.hal:30: Pin 'ddt_z.in' linked to signal 'Zpos'
/usr/share/linuxcnc/hallib/core_sim.hal:34: Pin 'ddt_x.out' linked to signal 'Xvel'
/usr/share/linuxcnc/hallib/core_sim.hal:34: Pin 'ddt_xv.in' linked to signal 'Xvel'
/usr/share/linuxcnc/hallib/core_sim.hal:34: Pin 'vel_xy.in0' linked to signal 'Xvel'
/usr/share/linuxcnc/hallib/core_sim.hal:35: Pin 'ddt_xv.out' linked to signal 'Xacc'
/usr/share/linuxcnc/hallib/core_sim.hal:36: Pin 'ddt_y.out' linked to signal 'Yvel'
/usr/share/linuxcnc/hallib/core_sim.hal:36: Pin 'ddt_yv.in' linked to signal 'Yvel'
/usr/share/linuxcnc/hallib/core_sim.hal:36: Pin 'vel_xy.in1' linked to signal 'Yvel'
/usr/share/linuxcnc/hallib/core_sim.hal:37: Pin 'ddt_yv.out' linked to signal 'Yacc'
/usr/share/linuxcnc/hallib/core_sim.hal:38: Pin 'ddt_z.out' linked to signal 'Zvel'
/usr/share/linuxcnc/hallib/core_sim.hal:38: Pin 'ddt_zv.in' linked to signal 'Zvel'
/usr/share/linuxcnc/hallib/core_sim.hal:38: Pin 'vel_xyz.in0' linked to signal 'Zvel'
/usr/share/linuxcnc/hallib/core_sim.hal:39: Pin 'ddt_zv.out' linked to signal 'Zacc'
/usr/share/linuxcnc/hallib/core_sim.hal:42: Pin 'vel_xy.out' linked to signal 'XYvel'
/usr/share/linuxcnc/hallib/core_sim.hal:42: Pin 'vel_xyz.in1' linked to signal 'XYvel'
/usr/share/linuxcnc/hallib/core_sim.hal:43: Pin 'vel_xyz.out' linked to signal 'XYZvel'
/usr/share/linuxcnc/hallib/core_sim.hal:46: Pin 'iocontrol.0.user-enable-out' linked to signal 'estop-loop'
/usr/share/linuxcnc/hallib/core_sim.hal:46: Pin 'iocontrol.0.emc-enable-in' linked to signal 'estop-loop'
/usr/share/linuxcnc/hallib/core_sim.hal:49: Pin 'iocontrol.0.tool-prepare' linked to signal 'tool-prep-loop'
/usr/share/linuxcnc/hallib/core_sim.hal:49: Pin 'iocontrol.0.tool-prepared' linked to signal 'tool-prep-loop'
/usr/share/linuxcnc/hallib/core_sim.hal:50: Pin 'iocontrol.0.tool-change' linked to signal 'tool-change-loop'
/usr/share/linuxcnc/hallib/core_sim.hal:50: Pin 'iocontrol.0.tool-changed' linked to signal 'tool-change-loop'
Found file(lib): /usr/share/linuxcnc/hallib/sim_spindle_encoder.hal
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
4:rtapi_app:10558:user Loaded module sim_spindle from path /usr/lib/machinekit/modules/sim_spindle.so
4:rtapi_app:10558:user sim_spindle default iparms: ''
4:rtapi_app:10558:user sim_spindle: loaded from /usr/lib/machinekit/modules/sim_spindle.so
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:2: Realtime module 'sim_spindle' loaded
4:rtapi_app:10558:user do_newinst_cmd: instargs=''
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:3: setting parameter 'sim_spindle.scale' to '0.01666667'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:3: Pin 'sim_spindle.scale' set to 0.01666667
4:rtapi_app:10558:user Loaded module limit2 from path /usr/lib/machinekit/modules/limit2.so
4:rtapi_app:10558:user limit2 default iparms: ''
4:rtapi_app:10558:user limit2: loaded from /usr/lib/machinekit/modules/limit2.so
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:4: Realtime module 'limit2' loaded
4:rtapi_app:10558:user do_newinst_cmd: instargs=''
4:rtapi_app:10558:user Loaded module lowpass from path /usr/lib/machinekit/modules/lowpass.so
4:rtapi_app:10558:user lowpass default iparms: ''
4:rtapi_app:10558:user lowpass: loaded from /usr/lib/machinekit/modules/lowpass.so
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:5: Realtime module 'lowpass' loaded
4:rtapi_app:10558:user do_newinst_cmd: instargs=''
4:rtapi_app:10558:user Loaded module near from path /usr/lib/machinekit/modules/near.so
4:rtapi_app:10558:user near default iparms: ''
4:rtapi_app:10558:user near: loaded from /usr/lib/machinekit/modules/near.so
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:6: Realtime module 'near' loaded
4:rtapi_app:10558:user do_newinst_cmd: instargs=''
4:rtapi_app:10558:user Loaded module scale from path /usr/lib/machinekit/modules/scale.so
4:rtapi_app:10558:user scale default iparms: ''
4:rtapi_app:10558:user scale: loaded from /usr/lib/machinekit/modules/scale.so
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:7: Realtime module 'scale' loaded
4:rtapi_app:10558:user do_newinst_cmd: instargs=''
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:9: setting parameter 'rpm_rps.gain' to '.0167'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:9: Pin 'rpm_rps.gain' set to .0167
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:12: setting parameter 'limit_speed.maxv' to '5000.0'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:12: Pin 'limit_speed.maxv' set to 5000.0
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:16: Pin 'spindle.0.index-enable' linked to signal 'spindle-index-enable'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:16: Pin 'sim_spindle.index-enable' linked to signal 'spindle-index-enable'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:19: Pin 'sim_spindle.position-fb' linked to signal 'spindle-pos'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:19: Pin 'spindle.0.revs' linked to signal 'spindle-pos'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:22: setting parameter 'spindle_mass.gain' to '.07'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:22: Pin 'spindle_mass.gain' set to .07
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:25: Pin 'spindle.0.speed-out' linked to signal 'spindle-speed-cmd'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:25: Pin 'limit_speed.in' linked to signal 'spindle-speed-cmd'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:26: Pin 'limit_speed.out' linked to signal 'spindle-speed-limited'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:26: Pin 'sim_spindle.velocity-cmd' linked to signal 'spindle-speed-limited'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:26: Pin 'spindle_mass.in' linked to signal 'spindle-speed-limited'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:29: Pin 'spindle_mass.out' linked to signal 'spindle-rpm-filtered'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:29: Pin 'near_speed.in2' linked to signal 'spindle-rpm-filtered'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:30: Pin 'rpm_rps.in' linked to signal 'spindle-rpm-filtered'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:31: Pin 'rpm_rps.out' linked to signal 'spindle-rps-filtered'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:31: Pin 'spindle.0.speed-in' linked to signal 'spindle-rps-filtered'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:34: setting parameter 'near_speed.scale' to '1.1'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:34: Pin 'near_speed.scale' set to 1.1
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:35: setting parameter 'near_speed.difference' to '10'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:35: Pin 'near_speed.difference' set to 10
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:37: Pin 'near_speed.in1' linked to signal 'spindle-speed-cmd'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:38: Pin 'near_speed.out' linked to signal 'spindle-at-speed'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:38: Pin 'spindle.0.at-speed' linked to signal 'spindle-at-speed'
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:40: Function 'limit_speed' added to thread 'servo-thread', rmb=0 wmb=0
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:41: Function 'spindle_mass' added to thread 'servo-thread', rmb=0 wmb=0
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:42: Function 'rpm_rps' added to thread 'servo-thread', rmb=0 wmb=0
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:43: Function 'near_speed' added to thread 'servo-thread', rmb=0 wmb=0
/usr/share/linuxcnc/hallib/sim_spindle_encoder.hal:44: Function 'sim_spindle' added to thread 'servo-thread', rmb=0 wmb=0
Found file(lib): /usr/share/linuxcnc/hallib/axis_manualtoolchange.hal
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
Traceback (most recent call last):
File "/usr/bin/hal_manualtoolchange", line 11, in <module>
import linuxcnc, hal
ImportError: No module named hal
/usr/share/linuxcnc/hallib/axis_manualtoolchange.hal:1: hal_manualtoolchange exited without becoming ready
Shutting down and cleaning up LinuxCNC...
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
<commandline>:0: Realtime threads stopped
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
4:rtapi_app:10558:user 'ddt' unloaded
<commandline>:0: Realtime module 'ddt' unloaded
4:rtapi_app:10558:user 'hypot' unloaded
<commandline>:0: Realtime module 'hypot' unloaded
4:rtapi_app:10558:user 'limit2' unloaded
<commandline>:0: Realtime module 'limit2' unloaded
4:rtapi_app:10558:user 'lowpass' unloaded
<commandline>:0: Realtime module 'lowpass' unloaded
4:rtapi_app:10558:user 'motmod' unloaded
<commandline>:0: Realtime module 'motmod' unloaded
4:rtapi_app:10558:user 'near' unloaded
<commandline>:0: Realtime module 'near' unloaded
4:rtapi_app:10558:user 'scale' unloaded
<commandline>:0: Realtime module 'scale' unloaded
4:rtapi_app:10558:user 'sim_spindle' unloaded
<commandline>:0: Realtime module 'sim_spindle' unloaded
4:rtapi_app:10558:user 'trivkins' unloaded
<commandline>:0: Realtime module 'trivkins' unloaded
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
4:rtapi_app:10558:user pid=10558 flavor=posix gcc=8.3.0 git=unknown
4:rtapi_app:10558:user 'hal_lib' unloaded
4:rtapi_app:10558:user 'rtapi' unloaded
3:rtapi_app:10558:user exiting mainloop (by remote command)
LinuxCNC terminated with an error. You can find more information in the log:
/home/machinekit/linuxcnc_debug.txt
and
/home/machinekit/linuxcnc_print.txt
as well as in the output of the shell command 'dmesg' and in the terminal
Which basically means that it is looking for Python 2 module of HAL, but it is not there. (Because the module is of Python 3 version.)
This is the reason why I think the pinning of dependency package (in this case Machinekit-HAL) version - the same version used for building and for installing - is unavoidable.
Of cource, one of the mistakes was to not raise the version number when Machinekit-HAL become exclusivelly Python 3.
I am open to all and any ideas as to how solve this isue without specifying special version. I just cannot think of any other way at the moment.
After offline discussion with @cerna, we're on the same page about this. Sorry for the delay, and thanks!
This pull request implements package locking to specific version of
machinekit-hal
packages as mentioned in issue #2. The new functionality works by requiring parameter when running thedebian/configure
bash script:It will create a
debian/control
file with specified versions:Because of the problem with package solver in standard Debian apt when running the mk-build-deps, there is need for additional package name apt-cudf, which allows using smarter dependency solver:
This simpler implementation over the more magical one - the first idea was using
dpkg
to look for installed packages ofmachinekit-hal
plusmachinekit-hal-dev
and lock to this version or download available version data from Machinekit's repository - was chosen after realization that this functionality is already part of apt and that CI (or user) should look for available versions as the address of remote repository is not known.This change is already documented in pull request machinekit/machinekit-docs#320.