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

Package the libsndfile dependency for BB #20

Closed
ViralBShah opened this issue Sep 30, 2019 · 10 comments
Closed

Package the libsndfile dependency for BB #20

ViralBShah opened this issue Sep 30, 2019 · 10 comments

Comments

@ViralBShah
Copy link

It would be nice to package the underlying libsndfile dependency for BB. I opened an issue at Yggdrasil as well.

JuliaPackaging/Yggdrasil#107

I also think this is a better way to address #19.

@haberdashPI
Copy link
Contributor

As noted in JuliaPackaging/Yggdrasil#107, I'm working on getting libsndfile setup in BB. I'm posting this here so @ssfrr will also know I'm working on this. My goal, once libsndfile is available on BB, is to close this issue so that LibSndFile.jl is usable on recent julia releases.

@haberdashPI
Copy link
Contributor

Now that I've closed JuliasPackaging/Yggdrasil/#107 I'm not entirely sure about the workflow to make use of the auto-generated packages from JuliaBinaryWrappers.

If I understand correctly I could just use ]add https://github.com/JuliaBinaryWrappers/libsndfile_jll.jl to include the binary during development, but this couldn't be published to the General registry until it knows about libsndfile_jl. Right?

@danmackinlay
Copy link

And does that in fact get us Julia 1.2 support or would LibSndFile still be dead for julia 1.2?

@ssfrr
Copy link
Collaborator

ssfrr commented Nov 19, 2019

If I understand correctly I could just use ]add https://github.com/JuliaBinaryWrappers/libsndfile_jll.jl to include the binary during development, but this couldn't be published to the General registry until it knows about libsndfile_jl. Right?

Once we've verified that the library that Yggdrasil is building is good, is the next step to register libsndfile_jll.jl as a package in General, so then LibSndFile.jl can depend on it?

@haberdashPI
Copy link
Contributor

@danmackinlay: I have not been able to get LibSndFile working in Julia 1.0-1.2. My PR was one approach to get it working, but it only works for 1.3.

@ssfrr: I suppose that might be. That seems reasonable, but I'm not clear on what the expected process for registration of *.jll packages is. That WIP blog post I linked to doesn't seem to address those questions.

@ssfrr
Copy link
Collaborator

ssfrr commented Nov 19, 2019

It seems that libsndfile_jll is a well-formed Julia package with a Project.toml, so I think we could just use the JuliaRegistrator workflow. Though the package is within the JuliaBinaryWrappers org, so presumably someone there would be managing that? @ViralBShah @staticfloat maybe you can weigh in on what the process is expected to be?

@ssfrr
Copy link
Collaborator

ssfrr commented Nov 19, 2019

oh, nvm, looks like it's already registered! Though it doesn't seem installable:

pkg> add libsndfile_jll
 Resolving package versions...
ERROR: Unsatisfiable requirements detected for package libsndfile_jll [5bf562c0]:
 libsndfile_jll [5bf562c0] log:
 ├─possible versions are: 1.0.28 or uninstalled
 ├─restricted to versions * by an explicit requirement, leaving only versions 1.0.28
 └─restricted by julia compatibility requirements to versions: uninstalled — no versions left

@ssfrr
Copy link
Collaborator

ssfrr commented Nov 19, 2019

oh, heh, I'm on Julia 1.2, which probably won't work... Sorry for the noise.

edit: I just confirmed that I can install libsndfile_jll on Julia 1.3-rc5, so I think from LibSndFile.jl's perspective all we need to do is add it as a dependency and it should get installed. Of course we'll need to lower-bound the Julia version compatibility to 1.3, but that's OK by me.

@staticfloat
Copy link
Contributor

Yes, that's correct. The whole JuliaBinaryWrappers organization is auto-generated from build scripts (most of which live in Yggdrasil, our community buildtree). If you want more details on the changes that JLL packages bring, read this blog post, or the Pkg Artifacts documentation for more nitty-gritty details. For even MORE, you can take a look at the changes carried on the branches pointed to by this test repository which uses only Artifacts to get you a working Gtk.jl on all three major platforms; that can help you to understand the kinds of changes necessary to switch over to a JLL package instead of BinaryProvider, and how Artifacts can be used by your own packages.

@ssfrr
Copy link
Collaborator

ssfrr commented Nov 20, 2019

The libsndfile_jll package seems to be working great. Thanks all!

@ssfrr ssfrr closed this as completed Nov 20, 2019
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 a pull request may close this issue.

5 participants