Hora V2 should still take a bit of time

Hi,

Just a few words to tell than the bugs pointed on the hora plugins are fixed since a few days but it can take a bit of time to release.

The virtual machine solution I used seems to not work for old linux distro.

I have passed one day trying the toolchain witheout success (more than 10 hours to compile the tool chain and it seems to never finish step 14/21).

I have passed the next day on compiling using the automate build system based on github actions. But once it was done I was notified than the build for linux doesn’t work on old distro.

I don’t know how I will do and have to think about it, even if I buy a laptop and install linux it will be a bit long since I never install ubuntu before(I’ve always used virtual machine).

If anybody knows another solution than toolchain or atomate build, this is welcome.

Sorry for the involved delay.

7 Likes

What kind of machine are you compiling the toolchain on?

On my 2012 MacbookPro the Docker-based toolchain build takes about 11 hours with (JOBS=1, because of low RAM).

Yeah it’s Hora I was trying to achieve it for mainly. Mine’s crashing, Raph’s seems to never finish.

I am on windows,

Still on step 14/21 after 15 hours now.

Also I don’t know at all what to do when this all will be installed (if it happens one day) where to put the plugins, or the SDKs so once this will be done It may take still a lot of time, I don’t know.

All these attempts, just to get the linux versions… I’m on it since 3 days now, it begins to drive me crazy I wonder if won’t simply stop it and retry in a week because I’m closed to smash my computer on the ground :sweat_smile:

OK after 17 hours I get an error

=> CANCELED [11/17] RUN JOBS= make toolchain-mac
context canceled make: *** [Makefile:227: docker-build] Error 1

I’m done, if it takes more the 17 hours on each step to finally get an error to fix, it could take more than one month to get to get it working.

I will buy a laptop to install linux or to find somebody able to compile the linux version… in both cases it will be long.

1 Like

I use a virtual box on a window laptop and I use a Fedora 26 to be compatible (I have another box with ubuntu 18.04 but links with wrong libc++… )

takes about 50 minutes for the full operation
included plugin creation
and my compile and link is huge !

1 Like

Ok thank you for the info,

Will reinstall a virtual machine and hope it will be OK.
Will take more than 50 minutes for me since I do’nt know well linux but much faster than the tool chain :sweat_smile:

The toolchain is designed to create a cross-compilation environment on Linux.

The Docker solution is convenience for myself.

The Docker environment - in theory cross-platform - has issues on macOS and specifically Windows, which I attribute to Docker performance on those platforms.

I have seen issues with parallelized builds that work fine on Linux and fail consistently on macOS. Therefore, I have to build the toolchain on macOS with JOBS=1, preventing parallelized builds. This takes a long time.

I have never been able to successfully build the toolchain on Windows in the Docker environment.

For building Linux builds, I recommend you use a Virtual Machine with Ubuntu 20.04 and use the toolchain build without Docker by running

make toolchain-lin

This will build the correct compiler version incl. the correct libc for the Linux build.

The binaries for the toolchain will be located in local directory, which the build process creates inside of the rack-plugin-toolchain source tree.

Set the following environment variables:

export PATH:=<location of your local dir>/x86_64-ubuntu16.04-linux-gnu/bin:$(PATH)
export CC := x86_64-ubuntu16.04-linux-gnu-gcc                                                              
export CXX := x86_64-ubuntu16.04-linux-gnu-g++                                                                                                                    
export STRIP := x86_64-ubuntu16.04-linux-gnu-strip

And you can build the plugins from the plugin source tree with:

RACK_DIR=<location of Rack SDK> make

1 Like

If you need to test or build something quickly then you can boot into a linux distro on a USB stick.

Trying fedora: whatever I tried to install I got a “comand not found” error. This was the final straw, I have smashed my computer and there is good chances it is broken.

Not proud of it of course, I am somebody pretty calm but after those two days passed on toolchain and automoate builds for barely nothing I’ve completelty lost the control for a few seconds…

To be continued…

Ouch - I feel for you.

Maybe go and do something different for a bit (walk/run/ride/swim/ski/wine) and then come back to it with a fresh mindset. Good luck :slight_smile:

In a post, 13h ago, there was something about what version of Linux use.

Please make it clear to the developers - if it isn’t allready - what versions they are supposed to use - or the volunteer un-paid supporters in various communities have needless work to do with figuring out what the users did wrong.

1 Like

Yes, but the plugins aren’t OK in the library and users are waiting. My laptop seems to still work (miracle because the schock was pretty hard) I continue, probably not good for my mental health but I’m at the point where nothing will calm me down…But thank you for your support :slight_smile:

3 Likes

Yeah I saw, this was posted a few seconds after I had passed my day compiling it all using this technique. This will probabaly never be OK since github actions seems to not support either version of Ubuntu that are OK for VCV plugins compiling.

I just desinstalled ubuntu for fedora… Ok will give a try like you suggest

Thank you

You are confusing building the plugins with building the toolchain. Christoph recommends building the toolchains in a Ubuntu 20.04 VM, but the plugins themselves are built using a 16.04 toolchain.

1 Like

OK, thank you - I should have noticed that.

You need to understand what the toolchain’s purpose is and how it accomplishes its task.

The Host OS that the toolchain is built on, does not matter for all intents and purposes. Ubuntu, Fedora, Arch, all of them work. The Makefile is pretty agnostic to distribution (with the exception of the dep-ubuntu target, which is made for Ubuntu). I use Ubuntu 20.04 in the Docker image.

The toolchain builds the compiler and all relevant tools and libraries, like libc, to build the plugins. If invoked correctly, the toolchain does not use the Host OS compiler and tools and only a minimum of host-level libraries.

The main issue is that this is not a turn-key solution for everyone. You need to know your way around in a GNU/Linux environment and be able to troubleshoot. We tried to make this is as simple as we can, but given the complexity of the task, is cannot be made much simpler. There is a certain level of knowledge that is required to use it. You need at minimum be able to read and use a Makefile and potentially know your way around Dockerfiles and Docker. If you dig deeper you will find osxcross and crosstool-ng as platforms providing toolchain build capabilities.

The intent of the toolchain is to create a reproducible environment for a) integration (what I do) and b) the official Rack build system. Both steps use the same toolchain so we ensure that plugins that pass integration do not fail during the official build step.

The toolchain represents the official way to build plugins. It is open-source so developers can take a look and see how it works and adjust it to their needs. If open-source developers would like to stay close to that environment, they should use the toolchain, but they don’t HAVE TO. The risk is that there will be issues found during integration.

Ideally, we would be able to provide the toolchain as a turnkey solution that developers of all platforms and skill levels can use. That is not feasible at this point for various reasons, for example licensing of the macOS SDK or the overall complexities of the build process, which require GNU/Linux knowledge as mentioned above.

4 Likes

I can’t imagine having to wait 11 hours for single threaded build of the toolchains. Building the toolchains in a Docker on Arch takes me about 25 minutes with JOBS=20. It builds consistently successful with a minor change to the Makefile. While building the Windows toolchain, parallelized crosstool seems to need more than 1024 open file handles and the build fails. Adding --ulimit nofile=4096 to the “docker-build” section fixes that. Please note that I’m using podman, not docker.

2 Likes

Yeah, I am only building the toolchain on my macOS laptop if I absolutely have to. My main build machine is a Linux box and it takes maybe an hour to rebuild on that.

How are you building the image to use with podman? I read that it does not come with a builder toolset itself, like docker build.