BinaryBuilder can I tell run_wizard to provide a specific rust version

I am trying to build the library for project GitHub - oheil/Slint.jl: Slint GUI for Julia with BinaryBuilder but it needs rust 1.88 but the wizard provides 1.87 only.

Trying to update to 1.88 in the sandbox brings No space left on device

Can I change some settings to the wizard for this purpose?

I found

compilers = [:c, :rust]
preferred_rust_version = v"1.88.0"

but I guess this is for the resulting build_tarballs.jl file, which I can’t create with the wizard without rust 1.88.

Finding anything in GitHub - JuliaPackaging/Yggdrasil: Collection of builder repositories for BinaryBuilder.jl seems to be impossible. How is this supposed to be a repository of recipes? I tried searching for some recipe for my case but it is just a needle in the haystack. Or I probably missed something somewhere.

For project specific information, the binary in question is build with:

cd Slint.jl/deps/SlintWrapper
cargo build --release

The resulting binary is then in

Slint.jl/deps/SlintWrapper/target/release/libslintwrapper.so

The final installation location (just by copying it) is

Slint.jl/deps/libslintwrapper.so

The Windows variant is slintwrapper.dll

I am stuck now with the BinaryBuilder process and need some help.

You may be using an old version of BinaryBuilderBase, we currently have Rust v1.91: Add RustToolchain 1.91 by Keno · Pull Request #453 · JuliaPackaging/BinaryBuilderBase.jl · GitHub.

No.

I did install BinaryBuilder yesterday from scratch, not BinaryBuilderBase.jl. Am I supposed to do so?

Today I did:

(@v1.7) pkg> st
      Status `~/.julia/environments/v1.7/Project.toml`
  [12aac903] BinaryBuilder v0.6.5

(@v1.7) pkg> up
    Updating registry at `~/.julia/registries/General.toml`
    Updating `~/.julia/environments/v1.7/Project.toml`
  [12aac903] ↑ BinaryBuilder v0.6.5 ⇒ v0.6.6
    Updating `~/.julia/environments/v1.7/Manifest.toml`
  [12aac903] ↑ BinaryBuilder v0.6.5 ⇒ v0.6.6
Precompiling project...
  1 dependency successfully precompiled in 9 seconds (81 already precompiled)

But still:

...
error: rustc 1.87.0 is not supported by the following packages:
...

Somewhere I read that julia 1.7 is needed for BinaryBuilder. So, perhaps this information is outdated so I tried with 1.12.4 with same result:

(@v1.12) pkg> st
Status `~/.julia/environments/v1.12/Project.toml`
  [12aac903] BinaryBuilder v0.6.6

...
error: rustc 1.87.0 is not supported by the following packages:
...

So how to get the newer rust with BinaryBuilderBase ?

And the same with master:

(@v1.12) pkg> add BinaryBuilder#master

(@v1.12) pkg> st
Status `~/.julia/environments/v1.12/Project.toml`
  [12aac903] BinaryBuilder v0.6.6 `https://github.com/JuliaPackaging/BinaryBuilder.jl.git#master`

Adding BinaryBuilderBase#master does result in providing rust 1.19:

(@v1.12) pkg> add BinaryBuilderBase#master
    Updating git-repo `https://github.com/JuliaPackaging/BinaryBuilderBase.jl.git`
   Resolving package versions...
     Project No packages added to or removed from `~/.julia/environments/v1.12/Project.toml`
    Manifest No packages added to or removed from `~/.julia/environments/v1.12/Manifest.toml`

The dependency and existence of BinaryBuilderBase could be mentioned a bit better in the BinaryBuilder documentation.

Most people using BinaryBuilder activate the top-level environment in Yggdrasil: if you plan to submit a PR to Yggdrasil you want to make sure to use the exact same environment as what’s used in CI anyway.

1 Like

I don’t understand this, perhaps because I am just starting with BinaryBuilder.

First I wanted to see how the BinaryBuilder process works.

Afterwards I wanted to check out how to provide the results of BinaryBuilder, if successfull, to anything whats after this. It’s an iterative process for me for now and I am yet at the first step, which is BinaryBuilder wizard. :man_shrugging:

Reading and understanding all the documentations of BinaryBuilder and Yggdrasil was a bit overwhelming, so here I am.