I'm trying to get Ultimaker Cura Slicer Software to compile and hopefully contribute by fixing an issue that makes it impossible to print very fast prints using Cura when using two functions in particular:
"Horizontal Expansion" and "Hole Horizontal Expansion". When used with negative values, these functions cause micro-vectors to be created which cause stuttering on Marlin as well as even Klipper and probably many other firmwares and gCode senders.
Why this is not working out of the box is beyond me.
Also, I installed docker using snap first, ran into this issue, removed it, and installed it again using apt-get and.... snap didn't remove the symbolic links to the snap/docker binary. Why? I don't know. But it seems kinda mandatory to not break the system. Now I have to figure out how to get the symbolic link to docker to work which I installed using apt.
For now, I'll go the direct route /bin/docker instead.
/bin/docker pull ultimaker/cura-build-environment
That installed fine - now that I fixed the permissions manually and manually used the docker binary directly.
Going back to the manual native install, I tried compiling
but it fails even after I installed yet another python version 3.10. It doesn't appear to be set up properly as cmake still complains.
Did I mention I don't like setting up build environments for specific software packages? Especially large ones like Cura? It almost NEVER works. I wish they would just provide an entire VM that can be started in a virtual machine that's accessible without cost. VirtualBox or VMWare come to mind but I don't remember what their licensing models are.
I would also believe there is a way to create a docker image that contains everything instead of piece mealing this together.
Instead of following a the cura build environment that's supposed to set everything up for you, I'll go the other route and set everything up myself this time. I have most of the stuff installed already, anyways, so this might yield better results.
Disclaimer: I have never used Docker. I suppose this is my chance to start and understand what this is even for. I currently believe it's some sort of (virtual) environment that is supposed to contain all software (and versions) to build a specific thing without compromising anything else in the system. i.e. a container. It contains the mess inside. Let's hope that's true.
Ah, it already fails at Docker. What a surprise. The installation manual doesn't mention that Docker is even needed and brushes straight over it and starts using command line docker with no comment. Let's figure out how to get docker to work in the command line...
Docker requires support for hardware virtualization to which must be activated in the bios. Apparently, it's an entire virtual machine, seemingly to run Linux on Windows.
Then it complains about kernel updates which must be installed manually to enable Linux on Windows.
This is literally the first step in the tutorial with no commands entered. Sometimes, I hate people. Moving on...
The second problem I encountered was running out of space on C:\ and then rerunning the command just results in a not automatically solvable problem:
Like any apt-get install name_your_tool will simply retry and properly install whatever is needed on the second attempt. Here is just breaks. Since I'm inexperienced, I needed to google how this can be solved. To be fair, this might actually be Windows locking out certain functions when the drive is full and not releasing those functions when space was made available.
Rebooting solves this. I suppose I could have tried killing docker-desktop as well.
Now start powershell or docker-desktop and run: docker pull ultimaker/cura-build-environment
docker pull ultimaker/cura-build-environment
This time it should complete and we end up with some sort of docker thing we need to build the build tools to build Cura. Moving on.
I started the docker in docker-desktop by clicking run, changing nothing, and then going straight to the CLI:
I was being presented with a barely usable shell running a linux called CentOS. I set the CURA_BUILD_ENV_BUILD_TYPE to release as seen in the screenshot above because - in contrast to the documentation, wasn't set by default. Glad I checked.
Unfortunately, the story ends here as the documentation for the rest of the steps doesn't work.
Trying further:
I realized after a quick nap that I didn't actually checkout the cura build environment git. Wasn't in the readme, right? So I pull that and run the command in my PowerShell: