Crossbuild Hell

Sorry for what I assume is probably a basic question, but I cannot for the life of me figure out why I can’t cross build my plugins. I’ve tried to build the Docker container multiple times and part of my soul dies every time after something inevitably fails.

When I try to build my plugin, I consistently get

Unable to find image 'rack-plugin-toolchain:14' locally
docker: Error response from daemon: pull access denied for rack-plugin-toolchain, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.

I’ve logged in to Docker in Terminal. I have all of the SDK’s in my rack-plugin-toolchain directory, I have a MacOSX11.1.sdk tarball in the osxcross->tarballs directory. What do I need to do to fix this? It’s really, really annoying and makes me want to plug a control voltage straight into my brain.

Low-qualified guess here, but just from the error message it sounds like maybe the library team accidentally restricted the permissions for getting the official Rack tool chain on Github. Could that be true @cschol ?

did you edit “Makefile” to get the latest SDK version (2.5.2).

If you did, the script will fail, and the docker image will not be built. They changed the sdk, but didn’t change the toolchain build scripts to get the new mac sdk file.

make rack-sdk-all
wget --continue "https://vcvrack.com/downloads/Rack-SDK-2.5.2-mac-x64.zip"
--2024-05-22 08:22:36--  https://vcvrack.com/downloads/Rack-SDK-2.5.2-mac-x64.zip
Resolving vcvrack.com (vcvrack.com)... 168.235.102.117
Connecting to vcvrack.com (vcvrack.com)|168.235.102.117|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2024-05-22 08:22:36 ERROR 404: Not Found.

make: *** [Makefile:146: Rack-SDK-mac-x64] Error 8

but, if you stayed at 2.5.1 “make docker-build” should have created the image - it is local:

$ docker image ls
REPOSITORY              TAG       IMAGE ID       CREATED         SIZE
rack-plugin-toolchain   14        2e2f6619d98c   2 months ago    7.07GB

on debian, you give access by adding your user to the “docker” group with:
sudo usermod -aG docker $USER

1 Like

I didn’t touch the makefile. So it sounds like at least that was right. I tried rebuilding it overnight, but I woke up to

#16 9974.3  9237 | AMDGPUOperand::Ptr AMDGPUAsmParser::defaultWaitEXP() const {
#16 9974.3       | 
ERROR: failed to solve: Unavailable: error reading from server: EOF

View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/okt1h9b79u6iaqd4c436p85s0

BTW I’m on an Intel Mac, late 2020. The osxcross folder didn’t get built… Do I have to start it over? :skull:

I have to pass - that’s above my pay grade.

@Jens.Peter.Nielsen The 404 error you are getting happened to me too. The 404 happens because the SDK zip files for Mac are now combined into a single zip file for both architectures. The SDK used to be two separate zip files for Intel and ARM.

I fixed it by this change to my yml files.

I hope this helps.

1 Like

When building with Docker, how should I set the resource allocation so I don’t have to

:sparkles: hope it’s sufficient :sparkles:

and then find out 4-6 hours later it wasn’t. That just happened after 4 1/2 hours of building.

the plugin toolchain running in ubuntu has always worked for me. Also, I went years without every doing a cross-build. Why bother when VCV library will do it for you?

Can you elaborate? I’d love for some people to beta test some of the ones I have, but I’m on an Intel Mac.

I have seen other devs use github actions to build their betas. VCV are quite busy doing other stuff. I suppose the github actions have more community support.

1 Like

the docker toolchain is more involved than i’m able to figure out. I will just wait for VCV to move it to the latest SDK.

I meant they (VCV team) will build your plugin and put it in the library. They may be busy, but they do that, and it is “their job”.

Sure. There’s lot’s of ways to get testers, and lots of ways to build stuff.

Back when I make Squinky Labs modules I didn’t do any cross platform build. I built on Windows, and I told ppl if they wanted to be testers they either had to be on windows or they had to build themselves. Furthermore I communicated with all the testers exclusively through slack. I told people I fully understood if they didn’t want to do any of these things, of course. But then they couldn’t be testers.

It worked fine for me.

These days it’s popular to use github actions to make cross platform builds. That seems to usually work ok, although clearly right now something is up and things don’t work so well.

If you want, there are plenty of other ways to build. You can install a VM running Ubuntu, or other Linux, on your mac (I assume?). I think you can also run windows in a VM on the mac, and make windows builds there? You can build and run the Linux toolchain in Linux VM - that’s what I do these days.

Or you can test only on what you can build yourself, and wait until it’s ready and have VCV do the builds for you and put them in the library. Admittedly the Mac world is more fragmented than normal these days. I don’t know what percentage of VCV users are on Intel Mac.

Maybe waiting for the github actions thing to get sorted out is your best option. Possibly some other option will work better for you.

Does VCV maintain the docker toolchain, or is it a community thing?

VCV

1 Like

Thank you! - that’s definitely owned by VCV.

One would hope that it would be updated in sync with any new release of Rack.

3 Likes

The toolchain has been updated to handle the latest Rack SDK 2.5.2.

Use make rack-sdk-clean and make rack-sdk-all to update to the latest SDK.

4 Likes