Skip to content

[libpolymake_julia] update to 0.14, build with polymake 4.14, drop julia < 1.10 #11607

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jul 15, 2025

Conversation

benlorenz
Copy link
Contributor

No description provided.

@benlorenz
Copy link
Contributor Author

benlorenz commented Jul 5, 2025

All failing due to some weird dependency error:

ERROR: LoadError: Unsatisfiable requirements detected for package libblastrampoline_jll [8e850b90]:
 libblastrampoline_jll [8e850b90] log:
 ├─possible versions are: 3.0.4 or uninstalled
 └─found to have no compatible versions left with Ipopt_jll [9cc047cb]
   └─Ipopt_jll [9cc047cb] log:
     ├─possible versions are: 3.13.1-300.1400.1701 or uninstalled
     └─restricted by compatibility requirements with SCIP_jll [e5ac4fe4] to versions: 300.1400.1400-300.1400.1701
       └─SCIP_jll [e5ac4fe4] log:
         ├─possible versions are: 0.1.0-900.200.200 or uninstalled
         └─restricted by compatibility requirements with polymake_jll [7c209550] to versions: 900.200.200
           └─polymake_jll [7c209550] log:
             ├─possible versions are: 4.1.0-400.1400.0 or uninstalled
             └─restricted to versions 400.1400.0 by an explicit requirement, leaving only versions 400.1400.0

This seems to be due to the updated SCIP_jll dependency in polymake_jll, while it built fine there it fails here, probably due to the use of julia_versioned platforms.
There does not seem to be any other path to libblastrampoline_jll other than scip and as a stdlib. Ipopt_jll has compat 5.4.0 which conflicts with something requesting version 3.0.4.
Version 3.0.4 corresponds to julia 1.7.3, the version we use for building, not the target version.

@benlorenz
Copy link
Contributor Author

benlorenz commented Jul 5, 2025

I removed some more entries from this stdlibs list

uuidblastramp = Base.UUID("8e850b90-86db-534c-a0d3-1478176c7d93")
delete!.(Pkg.Types.get_last_stdlibs.(julia_versions), uuidblastramp)

which is weird because the entries should be correct, at least once HistoricalStdlibVersions is loaded:

$ julia-1.7.3 --project=../../.ci -q
julia> Pkg.Types.get_last_stdlibs(v"1.10.0")[Base.UUID("8e850b90-86db-534c-a0d3-1478176c7d93")]
("libblastrampoline_jll", v"3.0.4+0")

julia> using BinaryBuilder

julia> Pkg.Types.get_last_stdlibs(v"1.10.0")[Base.UUID("8e850b90-86db-534c-a0d3-1478176c7d93")]
("libblastrampoline_jll", v"5.8.0+1")

So I am not sure why this helps but it does seem to work.

Edit:

  • This does seem wrong as we are getting libblastrampoline 5.12 now for julia 1.10.
  • In this case this would not hurt since libpolymake_julia does not link with libblastrampoline (it is only required by some other libraries in polymake_jll which are not used for linking).

I will try looking for a different way to work around this.

@benlorenz
Copy link
Contributor Author

I will try looking for a different way to work around this.

I could not get BinaryBuilder/Pkg to install the correct libblastrampoline versions (depending on the julia versions). But with the delete! and an extra BuildDependency we can make sure to use the same version (5.4.0) that Iptopt_jll is using.
Not pretty but it seems to work.

@benlorenz benlorenz marked this pull request as ready for review July 9, 2025 12:33
Copy link
Member

@fingolfin fingolfin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. Of course the blastrampoline hack is a hack, but you gotta do what you gotta do. And it is commented

@lgoettgens
Copy link
Contributor

Do you want to get this in before or after a libjulia rebuild for 1.12.0-rc1 (#11630)?

@benlorenz
Copy link
Contributor Author

Do you want to get this in before or after a libjulia rebuild for 1.12.0-rc1 (#11630)?

It's not urgent, so I guess we could wait until the new libjulia (and probably another libcxxwrap rebuild).

@benlorenz benlorenz marked this pull request as draft July 9, 2025 14:01
@lgoettgens
Copy link
Contributor

I expected a rc release shortly after JuliaLang/julia#58655 was merged, but now there is JuliaLang/julia#58956 (another backport PR). Thus I would say that you have enough time to let this dripple downstream until the rc gets released, and we can already benefit from less build jobs when eventually rebuilding with a new libcxxwrap

@lgoettgens
Copy link
Contributor

Now there indeed is JuliaLang/julia#58985 to release 1.12.0-rc1.

@benlorenz benlorenz marked this pull request as ready for review July 15, 2025 05:29
@benlorenz benlorenz enabled auto-merge (squash) July 15, 2025 05:30
@benlorenz benlorenz merged commit 0a25f64 into JuliaPackaging:master Jul 15, 2025
11 of 12 checks passed
@benlorenz benlorenz deleted the bl/lpmj014 branch July 15, 2025 11:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants