Skip to content

Commit 28ece1d

Browse files
fredrikekrestaticfloat
authored andcommitted
build_tarballs: accept dependencies with UUID's specified in the PackageSpec.
1 parent ad42b59 commit 28ece1d

File tree

2 files changed

+36
-4
lines changed

2 files changed

+36
-4
lines changed

src/wizard/utils.jl

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ end
246246

247247
with_logfile(f::Function, prefix::Prefix, name::String) = with_logfile(f, joinpath(logdir(prefix), name))
248248
function with_logfile(f::Function, logfile::String)
249-
mkpath(dirname(logfile))
249+
mkpath(dirname(logfile))
250250

251251
# If it's already a file, remove it, as it is probably an incorrect symlink
252252
if isfile(logfile)
@@ -278,14 +278,19 @@ function resolve_jlls(dependencies::Vector; ctx = Pkg.Types.Context(), outs=stdo
278278
# Don't clobber caller
279279
dependencies = deepcopy(dependencies)
280280

281-
update_registry(ctx)
282281
pkgspecify(name::AbstractString) = Pkg.Types.PackageSpec(;name=name)
283282
pkgspecify(ps::Pkg.Types.PackageSpec) = ps
284283

285284
# Convert all dependencies to `PackageSpec`s
286285
dependencies = pkgspecify.(dependencies)
287286

287+
# If all dependencies already have a UUID, return early
288+
if all(x->x.uuid !== nothing, dependencies)
289+
return true, dependencies
290+
end
291+
288292
# Resolve, returning the newly-resolved dependencies
293+
update_registry(ctx)
289294
dependencies = Pkg.Types.registry_resolve!(ctx.env, dependencies)
290295

291296
# But first, check to see if anything failed to resolve, and warn about it:

test/basic.jl

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## Basic tests for simple utilities within BB
22
using BinaryBuilder, Test, Pkg
3-
using BinaryBuilder: preferred_runner
3+
using BinaryBuilder: preferred_runner, resolve_jlls
44

55

66
@testset "File Collection" begin
@@ -14,7 +14,7 @@ using BinaryBuilder: preferred_runner
1414
d_link = joinpath(prefix, "bar_link")
1515
mkpath(d)
1616
symlink(d, d_link)
17-
17+
1818
files = collect_files(prefix)
1919
@test length(files) == 2
2020
@test realpath(f) in files
@@ -283,3 +283,30 @@ end
283283
@test_throws Base.IOError realpath(joinpath(dstdir, "sym_fileB"))
284284
end
285285
end
286+
287+
@testset "resolve_jlls" begin
288+
# Deps given by name::String
289+
dependencies = ["OpenSSL_jll",]
290+
truefalse, resolved_deps = resolve_jlls(dependencies)
291+
@test truefalse
292+
@test all(x->x.uuid !== nothing, resolved_deps)
293+
# Deps given by name::PackageSpec
294+
dependencies = [PackageSpec(name="OpenSSL_jll"),]
295+
truefalse, resolved_deps = resolve_jlls(dependencies)
296+
@test truefalse
297+
@test all(x->x.uuid !== nothing, resolved_deps)
298+
# Deps given by (name,uuid)::PackageSpec
299+
dependencies = [PackageSpec(name="OpenSSL_jll", uuid="458c3c95-2e84-50aa-8efc-19380b2a3a95"),]
300+
truefalse, resolved_deps = resolve_jlls(dependencies)
301+
@test truefalse
302+
@test all(x->x.uuid !== nothing, resolved_deps)
303+
# Deps given by combination of name::String, name::PackageSpec and (name,uuid)::PackageSpec
304+
dependencies = [
305+
"Zlib_jll",
306+
PackageSpec(name="Bzip2_jll"),
307+
PackageSpec(name="OpenSSL_jll", uuid="458c3c95-2e84-50aa-8efc-19380b2a3a95"),
308+
]
309+
truefalse, resolved_deps = resolve_jlls(dependencies)
310+
@test truefalse
311+
@test all(x->x.uuid !== nothing, resolved_deps)
312+
end

0 commit comments

Comments
 (0)