JuliaGizmos/Blink.jl

Feature Request: Make it impossible to have a misconfigured system

Opened this issue · 5 comments

Hello,

I just stumbled upon Blink.jl and that it depends on shared libraries which are not bundled with the julia artifact.

I would like to suggest to change this so that really everything is bundled and julia-first apps could be build by plainly bundling julia for the plattforms. I am on linux, so it might be that this actually only affects Linux and Mac and Windows dependencies are already fully bundled.

It feels quite unfortunate to me that it is not straightforward to bundle Blink.jl currently. I would need an extra dependency manager for all these extra dependencies, as e.g. nix.

You mean the resources in https://github.com/JuliaGizmos/Blink.jl/tree/master/res? Not sure what other non-artifact resources there are otherwise.

Also, do you have an example where Blink installation breaks? Also consider using Electron.jl, btw.

The documentation mentions it explicitly

Troubleshooting connection refused messages
These usually result from Electron failing to start. This is frequently a result of a misconfigured system (e.g., missing required shared libraries or not having a display server running).

I also run into these. It would be great if no one has to run into this, but that all these shared libraries are included found respectively

Ah gotcha. Forgot about that.
If someone is interested in making a electron_jll then I'd be happy to use that here (though I'm not sure if it really is feasible building the whole display and audio stack). I won't be looking into that myself though.

Out of curiosity: What libs where missing for you?

the first missing dependency is libgobject-2.0.so.0 - I stopped there

comment on feasibility: If the user should be able to install electron with display and audio stack, then it should also be possible to bundle it.

If you or someone else puts an Electron recipe into Yggdrasil then I'd be more than happy to use that here (build instructions). Until then, Blink.jl will have the same runtime dependencies as any other prebuilt Electron binary.