Skip to content
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

[jlqml] Bump version to v0.3 #4264

Merged
merged 1 commit into from
Jan 30, 2022
Merged

[jlqml] Bump version to v0.3 #4264

merged 1 commit into from
Jan 30, 2022

Conversation

barche
Copy link
Contributor

@barche barche commented Jan 16, 2022

Needed to make QML.jl work on Julia 1.7

@barche
Copy link
Contributor Author

barche commented Jan 16, 2022

I'm getting ERROR: LoadError: Unsatisfiable requirements detected for package libjulia_jll and I think this is due to a change in BinaryBuilder or Yggdrasil, because I locally get the same trying to rebuild libcxxwrap-julia using an unmodified build_tarballs. No idea how to fix this.

Log:

https://dev.azure.com/JuliaPackaging/Yggdrasil/_build/results?buildId=16212&view=logs&j=33b33528-48ed-59ae-ddc2-6d83dd8c01fb&t=0f64fd58-401e-5acc-6696-90343ad2ad30&l=27

@giordano
Copy link
Member

because I locally get the same trying to rebuild libcxxwrap-julia using an unmodified build_tarballs

What version of Julia and BinaryBuilderBase.jl are you using locally? Yesterday we upgraded to Julia 1.7 here: #4261. I'm clueless about Pkg internals, which break all the time

@barche
Copy link
Contributor Author

barche commented Jan 16, 2022

because I locally get the same trying to rebuild libcxxwrap-julia using an unmodified build_tarballs

What version of Julia and BinaryBuilderBase.jl are you using locally? Yesterday we upgraded to Julia 1.7 here: #4261. I'm clueless about Pkg internals, which break all the time

Julia 1.7.1 also, it didn't work with Julia 1.6 (some error about Pkg.Registry not having a certain function). I'll try with Julia 1.6 and an older BinaryBuilder.

Edit: BinaryBuilder version as in the Manifest.toml on Yggdrasil CI

@giordano
Copy link
Member

This recipe works with BinaryBuilder.jl 0.4.8/BinaryBuilderBase 1.3.0 and Julia v1.6. So someone needs to dig out what broke in Pkg again...

@giordano
Copy link
Member

JuliaLang/Pkg.jl#2942

@barche
Copy link
Contributor Author

barche commented Jan 23, 2022

I think hacking the stdlibs error out uncovered another, unrelated problem. No idea how to interpret this error:

##[warning]Dependency Qt5Declarative_jll does not have an (Stdlib)Artifacts.toml in /depot/packages/Qt5Declarative_jll/Vktrd!

Log: https://dev.azure.com/JuliaPackaging/Yggdrasil/_build/results?buildId=16459&view=logs&jobId=023fc726-910f-52b9-2466-adec1eae67d0&j=023fc726-910f-52b9-2466-adec1eae67d0&t=7bf96d55-6405-5d0a-4d10-93a2cdf2f87c

On FreeBSD it's different:

IOError: rm("/depot/packages/Qt5Declarative_jll/Vktrd/src/wrappers"): directory not empty (ENOTEMPTY)

Log: https://dev.azure.com/JuliaPackaging/Yggdrasil/_build/results?buildId=16459&view=logs&jobId=023fc726-910f-52b9-2466-adec1eae67d0&j=4ad5501b-6adf-545d-1cbf-e5f6d4fedafb&t=325a2760-47a9-5bf0-821f-6cf85ac7400a

@giordano
Copy link
Member

That was likely a race condition

Comment on lines +5 to +8
uuid = Base.UUID("a83860b7-747b-57cf-bf1f-3e79990d037f")
delete!(Pkg.Types.get_last_stdlibs(v"1.6.3"), uuid)
Copy link
Member

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

As far as I understand, LibOSXUnwind_jll is a dependency of libjulia_jll and removing it from the stdlibs makes Pkg choose the one in the registry. It doesn't appear to cause harm, at least on Linux I get a usable JLL with binaries for Julia 1.6, 1.7 and 1.8: https://github.com/barche/jlqml_jll.jl

Copy link
Member

Choose a reason for hiding this comment

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

I still don't see LibOSXUnwind_jll in https://dev.azure.com/JuliaPackaging/Yggdrasil/_build/results?buildId=16556&view=logs&j=11cc9737-c3b2-5b2e-49c1-3ecd4dd3473d&t=6864626c-b206-5daa-5d51-831805962223. @fingolfin maybe it wasn't necessary after all? If so, I think the best thing to do would be to have a libjulia_jll for v1.6 which doesn't depend at runtime on LibOSXUnwind_jll, fix this in the registry so libjulia_jll never tries to pull in LibOSXUnwind_jll. That'd solve all of our problems without hacks like this.

Should we keep this hack (I hope we don't), at very least please add a comment, I'm sure someone will be very confused by reading these lines without context in a few months.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That seems like the way to go, but how is this dependency triggered, exactly? I don't see a LibOSXUnwind_jll in the Project.toml of libjulia_jll v1.7.0+8? Is it about removing these:

https://github.com/JuliaBinaryWrappers/libjulia_jll.jl/blob/2e64b99b0e204bf25308727beb971269affd3c4b/src/wrappers/x86_64-apple-darwin-julia_version%2B1.6.3.jl#L6

Copy link
Member

Choose a reason for hiding this comment

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

It's only in v1.6

Copy link
Member

Choose a reason for hiding this comment

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

It was never a question about linking to libOSXUnwind.dylib. The only concern is compiling against julia.h -- some of the headers include libunwind.h. If one includes one of these headers (possibly indirectly) this can result in a compile time error. If it doesn't, then that means it is picking up a stray libunwind.h from somewhere else, which could be bad -- though I guess my patch shows that it doesn't matter in practice....

Anyway, if this builds fine with your hack, then that's great. But I don't like that now all packages linking against libjulia_jll need such a hack. I think it's much cleaner and easier if we update libjulia_jll, dropping the dep on LibOSXUnwind_jll in there. That's what #4320 is about (though it may indeed be possible to simplify the patch, and instead e.g. do touch $includedir/libunwind.h)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

OK, so I guess the possibility of corrupt binaries is excluded, at worst we should get a linking error. I have added a comment, I'd propose to merge this and then investigate JuliaLang/Pkg.jl#2942 further, libjulia_jll also doesn't build because of that right now.

Copy link
Member

Choose a reason for hiding this comment

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

I agree, let's test this, if it works, this is a good short term solution that we can use for the time being also elsewhere.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

OK, from JuliaLang/Pkg.jl#2963 I also conclude that this hack will in this case actually have the same effect as the (possible) fix. LibOSXUnwind_jll is here only encountered in the historical dependencies and then triggers a bug in the dependency resolution. So, @giordano this is now good to merge I think :)

Copy link
Member

Choose a reason for hiding this comment

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

Ok, let's do it

@barche
Copy link
Contributor Author

barche commented Jan 23, 2022

No idea why CI fails here, this version works locally for all three platforms.

@barche barche closed this Jan 25, 2022
@barche barche reopened this Jan 25, 2022
@barche
Copy link
Contributor Author

barche commented Jan 25, 2022

I can't find any way to get rid of this error:

Dependency Qt5Declarative_jll does not have an (Stdlib)Artifacts.toml

Tried on two different machines, locally everything works with the exact same version of BinaryBuilder.

@giordano
Copy link
Member

That was likely a race condition

☝️

@barche
Copy link
Contributor Author

barche commented Jan 25, 2022

That was likely a race condition

point_up

Yes, I saw that, but I reran it several times since then, not sure what changed now?

@giordano
Copy link
Member

I deleted /depot/packages/Qt5Declarative_jll/Vktrd 🙂

@barche
Copy link
Contributor Author

barche commented Jan 25, 2022

I squashed the commits and activated all platforms for which the dependencies are available, so for me this is good to merge.

@giordano giordano merged commit 0490c1b into JuliaPackaging:master Jan 30, 2022
simeonschaub pushed a commit to simeonschaub/Yggdrasil that referenced this pull request Feb 23, 2022
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