From e9e42e329a8ed0709bd69e56b737157b541fa016 Mon Sep 17 00:00:00 2001 From: Mark Kittisopikul Date: Sun, 18 Sep 2022 13:26:23 -0400 Subject: [PATCH] SLICOT 5.8.0, Julia 1.8 compat (#5259) * SLICOT 5.8, Julia 1.8 compat > Someone should do something like #4770 (for lack of better options at the moment) I'm "someone". https://discourse.julialang.org/t/too-many-julia-versions/84538/15?u=mkitti 1. Do we need a version bump to SLICOT 5.8.1 to do this? 2. andreasvarga can we coordinate a SLICOT 5.8.1 release? cc: RalphAS * Bump libblastrampoline_jll to 5.1.1+1, debug for Julia 1.8 * Add Julia 1.7 and 1.9 back * Shove this package ver back to 5.8.0 --- S/SLICOT/build_tarballs.jl | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/S/SLICOT/build_tarballs.jl b/S/SLICOT/build_tarballs.jl index d1a1df05e35..187455401dc 100644 --- a/S/SLICOT/build_tarballs.jl +++ b/S/SLICOT/build_tarballs.jl @@ -1,6 +1,7 @@ # Note that this script can accept some limited command-line arguments, run # `julia build_tarballs.jl --help` to see a usage message. using BinaryBuilder, Pkg +using BinaryBuilderBase: get_addable_spec name = "SLICOT" version = v"5.8.0" @@ -95,6 +96,21 @@ install_license ../LICENSE # platforms are passed in on the command line platforms = expand_gfortran_versions(supported_platforms()) +# The following was derived from #4770 (Pfapack) +# https://github.com/JuliaPackaging/Yggdrasil/pull/4770 +# Since we need to link to libblastrampoline which has seen multiple +# ABI-incompatible versions, we need to expand the julia versions we target +julia_versions = [v"1.7.0", v"1.8.0", v"1.9.0"] +function set_julia_version(platforms::Vector{Platform}, julia_version::VersionNumber) + _platforms = deepcopy(platforms) + for p in _platforms + p["julia_version"] = string(julia_version) + end + return _platforms +end +expand_julia_versions(platforms::Vector{Platform}, julia_versions::Vector{VersionNumber}) = + vcat(set_julia_version.(Ref(platforms), julia_versions)...) +platforms = expand_julia_versions(platforms, julia_versions) # The products that we will ensure are always built products = [ @@ -103,7 +119,8 @@ products = [ # Dependencies that must be installed before this package can be built dependencies = [ - Dependency(PackageSpec(name="libblastrampoline_jll", uuid="8e850b90-86db-534c-a0d3-1478176c7d93"); compat="3.0.4"), + Dependency(get_addable_spec("libblastrampoline_jll", v"3.0.4+0"); platforms=filter(p -> VersionNumber(p["julia_version"]) == v"1.7.0", platforms)), + Dependency(get_addable_spec("libblastrampoline_jll", v"5.1.1+1"); platforms=filter(p -> VersionNumber(p["julia_version"]) >= v"1.8.0", platforms)), Dependency(PackageSpec(name="CompilerSupportLibraries_jll", uuid="e66e0078-7015-5450-92f7-15fbd957f2ae")) ]