Closed Kynneb closed 6 years ago
This is a known issue with TASTE models. I think it's difficult to solve at TASTE level, because several tools from different contributors process the AADL files and would need to be updated. As an alternative, I was thinking on doing a path substitution file after the download of the TASTE model, and trigger it from the autoproj update method. Please, see which substitution could work (for instance, with a sed command), and then we can try to integrate it in the autoproj configuration.
I see. The sed command should be something like
find . -name "*.aadl" -exec sed -i -e "s+/home/esrocos+$HOME+g" {} \;
find . -name "*.aadl" -exec sed -i -e "s+/root+$HOME+g" {} \;
to have all paths converted to the platform specific home path.
but now I get a different error
[INFO] Building C subSystems
sh: eq: command not found
sh: gnulinux: command not found
gcc: fatal error: no input files
compilation terminated.
Failed while executing:
"$GNATGCC" -c -I . -DSTATIC="" -g -I "/usr/include/eigen3" -I "/root/esrocos_workspace/install/include" -I "/root/esrocos_workspace/install/include/orocos" -std=c99 -I /root/esrocos_workspace/gui/vizkit3d_taste/models/bodystate/binary.c/GlueAndBuild/deploymentview_final/x86_partition -I /root/tool-inst/include/ocarina/runtime/polyorb-hi-c/include/ -DOROCOS_TARGET&eq;gnulinux -DPOSIX -D_POSIX_SOURCE -D_GNU_SOURCE -g -Wall -Wextra -fdiagnostics-show-option -Wcast-align -Wswitch-enum -D__PO_HI_USE_TRANSPORT -I ../../GlueAndBuild/gluevizkit3d_bodystate/ -I ../../GlueAndBuild/gluevizkit3d_bodystate/ -I ../../auto-src/ *.c
From this directory:
/root/esrocos_workspace/gui/vizkit3d_taste/models/bodystate/binary.c/vizkit3d_bodystate/vizkit3d_bodystate
do you see the problem?
Yes, this is a TASTE error that has already been reported and should be fixed in a future release of TASTE (it's reported as solved in Ellidiss' repository, but I think it has not yet been updated in the global TASTE setup).
The current workaround is to patch the script ~/tool-inst/bin/assert-builder-ocarina.py. In the function checkDirectives, you need to insert the following line just after the calculation of "opt" (in my current version, it's in line 515):
opt = opt.replace("&eq;", "=")
You can find more information in the following link (you need to request an account to read): https://taste.tuxfamily.org/mantis/view.php?id=775
That worked out, thank you.
Finally, instead of adding a string substitution, I followed Raquel's advice and created a script to update the DataView.aadl using paths derived from AUTOPROJ_CURRENT_ROOT.
Hey, I stumbled upon this, because of an error in the current build, but this may be a more general problem of all packages including taste projects.
This ist caused by dataview aadl files relating to asn files at their respective absolute paths which will break when the home folder is at a different path than in the aadl - for example at my test environment.
resolves for:
For me this can be easly resolved by creating a symlink, changing the home path or any other creative solution. Of course it is also possible to just guarantee portability on one environment (probably the VM) but in general it would be great to be able to solve this problem differently.
Perhaps we can replace '/home/esrocos' and '/root/' by '$HOME' or perhaps directly the path to the esrocos_worspace folder?