-
-
Notifications
You must be signed in to change notification settings - Fork 26
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
opt-in to use system libuv #94
Comments
I believe you'd need to replace the first line here Lines 12 to 13 in d3b12d6
with I think all the changes you would have to make would be to that Luv is fairly aggressive with upgrading libuv (I upgrade upon upstream release), so the headers may be newer than what the installed library actually supports. I suspect that's usually fine, else Luv can be held back. There may be problems with running tests. I'm open to changing the release process, etc., to make packaging Luv for distributions easier. |
Thanks for the tips. I can build haxe unmodified with the dynamic linked luv, and worked as expected.
|
Great. These lines in the |
Not difficult at the moment. In general it is best to keep zero patches, but it can wait. |
I'll integrate it. Looking at some of the changes, I'm skeptical that not using the vendored headers when building Luv's bindings will be portable, because, as I understand it, some systems might have headers installed that are older than what Luv expects. My initial guess would be that Luv should be compiled against the vendored headers, and then simply used with the system library, and the user should use the system headers. I'll integrate the diff as it is now, and it can be patched later. |
Resolves #94. Co-authored-by: Anton Bachin <antonbachin@yahoo.com>
@andyli, see the commit linked above. I reduced the diff considerably. The non-vendored build is now triggered by setting Can you try this version? If you prefer a different method than |
Browsing the Haxe repo and libuv-related issues, it seems almost certain to me that Luv will have to be changed so that it can be compiled against older system libuv. I have some approximate plan for doing that. If that's so, can you do a survey of the distros Haxe releases to, considering older releases with a large installed base, and let me know what is the minimum version of libuv you'd like Luv to support? For information, the current release of Luv requires libuv 1.40.0. After #95, Luv will require 1.41.0 (released yesterday). The earliest release of Luv, 0.5.0, requires libuv 1.34.0. The earliest unreleased Luv in git requires libuv 1.20.0, but it's not API-compatible with the releases. |
Just tested bdf7657, it worked very well! 👍 For compiling against older libuv, it would be super helpful if luv supports it out of the box. If not, my plan was just to upgrade/backport libuv in each distro. The libuv package versions of most distros can be viewed at https://repology.org/project/libuv/versions (those named |
Thanks. I opened #96 to track supporting older libuv. |
Turn out there is one thing missing for my setup to work. I've to remove the include line at Line 28 in 139c7e1
That's because I don't checkout the libuv submodule and that line will trigger an error. |
Part of #94. Co-authored-by: Andy Li <andy@onthewings.net>
I've removed that line for system builds in the above commit, 3edbc51. |
All of it together is now out in Luv 0.5.7. |
@aantron, thank you for this! This works well! Just one thing which you may consider (it's not an issue) - should this install target also be conditioned on It might avoid confusion, by not having two (potentially) different |
@code-ghalib I've made it so that headers don't get installed when not using the vendored libuv in 2b00946. I'll batch this into the next release, but please ping me if you have any issues and need a release sooner. This net effect now looks almost exactly like what @andyli initially suggested, so it was pointless for me to try to minimize that original diff :P |
I'm about to package luv for various Linux distros, mainly because luv is now a dependency of haxe which I'm the maintainer of its Linux packages.
One of the packaging requirements is to exclusively use system packages instead of vendor libraries.
I would suggest to introduce a build-time option to dynamically link system libuv instead of building and static linking vendor libuv?
The text was updated successfully, but these errors were encountered: