From 52c485d0a9b72254dfc61d14c3c69b866744e31b Mon Sep 17 00:00:00 2001 From: Ian Butterworth Date: Fri, 10 Jan 2025 09:43:54 -0500 Subject: [PATCH 1/6] fix JLL version fix fix --- src/Operations.jl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Operations.jl b/src/Operations.jl index a4e2c77553..7bc020b226 100644 --- a/src/Operations.jl +++ b/src/Operations.jl @@ -507,7 +507,10 @@ function resolve_versions!(env::EnvCache, registries::Vector{Registry.RegistryIn old_v = get(jll_fix, uuid, nothing) # We only fixup a JLL if the old major/minor/patch matches the new major/minor/patch if old_v !== nothing && Base.thispatch(old_v) == Base.thispatch(vers_fix[uuid]) + new_v = vers_fix[uuid] + compat_map[pkg.uuid][old_v] = compat_map[pkg.uuid][new_v] vers_fix[uuid] = old_v + delete!(compat_map[pkg.uuid], new_v) end end vers = vers_fix From 803f4a8db2fad399c5d758e797469570f90cb34b Mon Sep 17 00:00:00 2001 From: Ian Butterworth Date: Fri, 10 Jan 2025 10:13:59 -0500 Subject: [PATCH 2/6] fix --- src/Operations.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Operations.jl b/src/Operations.jl index 7bc020b226..ad936d20b7 100644 --- a/src/Operations.jl +++ b/src/Operations.jl @@ -508,9 +508,9 @@ function resolve_versions!(env::EnvCache, registries::Vector{Registry.RegistryIn # We only fixup a JLL if the old major/minor/patch matches the new major/minor/patch if old_v !== nothing && Base.thispatch(old_v) == Base.thispatch(vers_fix[uuid]) new_v = vers_fix[uuid] - compat_map[pkg.uuid][old_v] = compat_map[pkg.uuid][new_v] + compat_map[uuid][old_v] = compat_map[uuid][new_v] vers_fix[uuid] = old_v - delete!(compat_map[pkg.uuid], new_v) + delete!(compat_map[uuid], new_v) end end vers = vers_fix From b22bef42bc7c131889c4ed53ed3678da75251b96 Mon Sep 17 00:00:00 2001 From: Ian Butterworth Date: Fri, 10 Jan 2025 10:53:41 -0500 Subject: [PATCH 3/6] fix --- src/Operations.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Operations.jl b/src/Operations.jl index ad936d20b7..60a705db59 100644 --- a/src/Operations.jl +++ b/src/Operations.jl @@ -510,7 +510,7 @@ function resolve_versions!(env::EnvCache, registries::Vector{Registry.RegistryIn new_v = vers_fix[uuid] compat_map[uuid][old_v] = compat_map[uuid][new_v] vers_fix[uuid] = old_v - delete!(compat_map[uuid], new_v) + new_v != old_v && delete!(compat_map[uuid], new_v) end end vers = vers_fix From 0646715e28c0a5496a2e2405452496c9fd2b07f8 Mon Sep 17 00:00:00 2001 From: Ian Butterworth Date: Fri, 10 Jan 2025 11:39:10 -0500 Subject: [PATCH 4/6] remove the `delete!` with a comment --- src/Operations.jl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Operations.jl b/src/Operations.jl index 60a705db59..e3f1a32364 100644 --- a/src/Operations.jl +++ b/src/Operations.jl @@ -510,7 +510,9 @@ function resolve_versions!(env::EnvCache, registries::Vector{Registry.RegistryIn new_v = vers_fix[uuid] compat_map[uuid][old_v] = compat_map[uuid][new_v] vers_fix[uuid] = old_v - new_v != old_v && delete!(compat_map[uuid], new_v) + # Note that we don't delete!(compat_map[uuid], old_v) because we want to keep the compat info around + # in case there's JLL version confusion between the sysimage pkgorigins version and manifest + # but that issue hasn't been fully specified, so keep it to be cautious end end vers = vers_fix From 406fe3b6c7a8ffbd0ccf7cda299b28f8aa81d043 Mon Sep 17 00:00:00 2001 From: Ian Butterworth Date: Fri, 10 Jan 2025 11:41:01 -0500 Subject: [PATCH 5/6] be more efficient --- src/Operations.jl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Operations.jl b/src/Operations.jl index e3f1a32364..35146cb047 100644 --- a/src/Operations.jl +++ b/src/Operations.jl @@ -508,7 +508,9 @@ function resolve_versions!(env::EnvCache, registries::Vector{Registry.RegistryIn # We only fixup a JLL if the old major/minor/patch matches the new major/minor/patch if old_v !== nothing && Base.thispatch(old_v) == Base.thispatch(vers_fix[uuid]) new_v = vers_fix[uuid] - compat_map[uuid][old_v] = compat_map[uuid][new_v] + if old_v != new_v + compat_map[uuid][old_v] = compat_map[uuid][new_v] + end vers_fix[uuid] = old_v # Note that we don't delete!(compat_map[uuid], old_v) because we want to keep the compat info around # in case there's JLL version confusion between the sysimage pkgorigins version and manifest From b4b02c58b3b456cfd55093560ece4c0ac598df02 Mon Sep 17 00:00:00 2001 From: Ian Butterworth Date: Fri, 10 Jan 2025 11:58:34 -0500 Subject: [PATCH 6/6] Update Operations.jl --- src/Operations.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Operations.jl b/src/Operations.jl index 35146cb047..632fb454dc 100644 --- a/src/Operations.jl +++ b/src/Operations.jl @@ -510,11 +510,11 @@ function resolve_versions!(env::EnvCache, registries::Vector{Registry.RegistryIn new_v = vers_fix[uuid] if old_v != new_v compat_map[uuid][old_v] = compat_map[uuid][new_v] + # Note that we don't delete!(compat_map[uuid], old_v) because we want to keep the compat info around + # in case there's JLL version confusion between the sysimage pkgorigins version and manifest + # but that issue hasn't been fully specified, so keep it to be cautious end vers_fix[uuid] = old_v - # Note that we don't delete!(compat_map[uuid], old_v) because we want to keep the compat info around - # in case there's JLL version confusion between the sysimage pkgorigins version and manifest - # but that issue hasn't been fully specified, so keep it to be cautious end end vers = vers_fix