JuliaPackaging / BinaryBuilder.jl

Binary Dependency Builder for Julia
https://binarybuilder.org
Other
384 stars 99 forks source link

Local build of CUDA binaries #1332

Closed ludvigak closed 2 weeks ago

ludvigak commented 2 weeks ago

I cannot figure out how to locally build a package with CUDA code. Trying to run an existing buildscript such as this one, with

julia build_tarballs.jl --deploy=local --verbose --debug x86_64-linux-gnu

results in

   Resolving package versions...
ERROR: LoadError: KeyError: key v"11.4.4" not found
Stacktrace:
  [1] getindex
    @ ./dict.jl:484 [inlined]
  [2] resolve_versions!(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, julia_version::Nothing, installed_only::Bool)
    @ Pkg.Operations /opt/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:446
  [3] targeted_resolve(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, preserve::Pkg.Types.PreserveLevel, julia_version::Nothing)
    @ Pkg.Operations /opt/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1362
  [4] tiered_resolve(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, julia_version::Nothing, try_all_installed::Bool)
    @ Pkg.Operations /opt/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1334
  [5] _resolve(io::Base.TTY, env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, preserve::Pkg.Types.PreserveLevel, julia_version::Nothing)
    @ Pkg.Operations /opt/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1372
  [6] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, new_git::Set{Base.UUID}; preserve::Pkg.Types.PreserveLevel, platform::Platform)
    @ Pkg.Operations /opt/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1389
  [7] add
    @ /opt/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1378 [inlined]
  [8] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; preserve::Pkg.Types.PreserveLevel, platform::Platform, kwargs::Base.Pairs{Symbol, Base.TTY, Tuple{Symbol}, NamedTuple{(:io,), Tuple{Base.TTY}}})
    @ Pkg.API /opt/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/API.jl:275
  [9] Pkg_add(::Pkg.Types.Context, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Any, Tuple{Symbol, Symbol}, NamedTuple{(:platform, :io), Tuple{Platform, Base.TTY}}})
    @ BinaryBuilderBase ~/.julia/packages/BinaryBuilderBase/JOwzH/src/Prefix.jl:611
 [10] (::BinaryBuilderBase.var"#95#101"{Bool, Prefix, Vector{Pkg.Types.PackageSpec}, Platform, Vector{String}, Vector{String}})()
    @ BinaryBuilderBase ~/.julia/packages/BinaryBuilderBase/JOwzH/src/Prefix.jl:679
 [11] activate(f::BinaryBuilderBase.var"#95#101"{Bool, Prefix, Vector{Pkg.Types.PackageSpec}, Platform, Vector{String}, Vector{String}}, new_project::String)
    @ Pkg.API /opt/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/API.jl:1898
 [12] setup_dependencies(prefix::Prefix, dependencies::Vector{Pkg.Types.PackageSpec}, platform::Platform; verbose::Bool)
    @ BinaryBuilderBase ~/.julia/packages/BinaryBuilderBase/JOwzH/src/Prefix.jl:670
 [13] setup_dependencies
    @ ~/.julia/packages/BinaryBuilderBase/JOwzH/src/Prefix.jl:640 [inlined]
 [14] (::BinaryBuilder.var"#setup_deps#27")(f::typeof(is_target_dependency), prefix::Prefix, dependencies::Vector{AbstractDependency}, platform::Platform, verbose::Bool)
    @ BinaryBuilder ~/.julia/packages/BinaryBuilder/L8tBh/src/AutoBuild.jl:825
 [15] autobuild(dir::AbstractString, src_name::AbstractString, src_version::VersionNumber, sources::Vector{<:AbstractSource}, script::AbstractString, platforms::Vector, products::Vector{<:Product}, dependencies::Vector{<:AbstractDependency}; verbose::Bool, debug::Bool, skip_audit::Bool, ignore_audit_errors::Bool, autofix::Bool, code_dir::Union{Nothing, String}, require_license::Bool, dont_dlopen::Bool, kwargs::Base.Pairs{Symbol, V, Tuple{Vararg{Symbol, N}}, NamedTuple{names, T}} where {V, N, names, T<:Tuple{Vararg{Any, N}}})
    @ BinaryBuilder ~/.julia/packages/BinaryBuilder/L8tBh/src/AutoBuild.jl:828
 [16] build_tarballs(ARGS::Any, src_name::Any, src_version::Any, sources::Any, script::Any, platforms::Any, products::Any, dependencies::Any; julia_compat::String, kwargs::Base.Pairs{Symbol, V, Tuple{Vararg{Symbol, N}}, NamedTuple{names, T}} where {V, N, names, T<:Tuple{Vararg{Any, N}}})
    @ BinaryBuilder ~/.julia/packages/BinaryBuilder/L8tBh/src/AutoBuild.jl:363
 [17] top-level scope
    @ ~/.julia/dev/Yggdrasil/P/PAPI/build_tarballs.jl:108

Here v"11.4.4" is the CUDA version it is trying to build for, but making it build for 12.5 (which I have on my system) makes no difference.

giordano commented 2 weeks ago

Try using Julia v1.7

ludvigak commented 2 weeks ago

Well, that was easy. Thanks! I was running Julia v1.9. Is it broken for v1.8 and up?

giordano commented 2 weeks ago

Sadly yes: #1318.