How to install custom build tools into the docker build env

Hi,

I tried to build whisperfish with the SDKs Docker based build engine, but I ran into a problem that seems to be fixed in a newer version of cargo. Now, I would like to try a newer version of cargo and rust to build whisperfish, but I couldn’t find a way to get these into the docker build engine. I think the sfdk tools install-custom (forgive me if I mixed up the sub-command word order, but I am currently not on a system with sfdk, so I can't look it up) could be used to install custom build tools, but the documentation doesn’t really show how. Do I need RPMs to install the tools?

Hi, and welcome to the forum!

In that context the build tools refers to the Sailfish OS tooling packages. Long story short, it’s probably not what you want.

Could you please tell us what kind of problem did you run into?

P.S I’ll move this to Applications/Others category, as I feel that’s more appropriate.

It seems that I ran into this issue:

After some searching I found two possible sources where that might come from:

  1. a bug in zlib, that has something to do with mounting paths from host system into docker containers (no know workaround or solution, yet)
  2. a bug in libgit, that has been fixed, but is only included in a version of cargo that is newer than the one provided by the Application SDK

Ok, I found this https://github.com/sailfishos/rust, but I could not find out how to build it with a newer version of cargo and rust. Any help would be greatly appreciated.

If you are using the SDK environment, you can call zypper like this to add repos and install dependencies:

 sb2 -t SailfishOS-$SFOS_VERSION-$TARGET -m sdk-install -R zypper <<zypper optons>>

As for whisperfish, you can get in contact with the dev team on Matrix.

Many thanks for your help. I think it pointed me in the correct direction. Now, I try to build the sailfishos/rust project with the PlatformSDK:

mb2 -s rust.spec -t SailfishOS-latest-i486 build 

But I couldn’t resolve all dependencies until now.