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

Handle the case of systems which do not have libJudy available as a package. #8153

Closed
Ferroin opened this issue Feb 21, 2020 · 4 comments · Fixed by #9776
Closed

Handle the case of systems which do not have libJudy available as a package. #8153

Ferroin opened this issue Feb 21, 2020 · 4 comments · Fixed by #9776
Assignees
Labels
area/build Build system (autotools and cmake). area/database area/packaging Packaging and operating systems support feature request New features priority/low A 'nice to have' not critical issue

Comments

@Ferroin
Copy link
Member

Ferroin commented Feb 21, 2020

Feature idea summary

Either:

  1. Use a similar approach to what we're currently doing with our custom fork of libmosquitto and plan to do for libwebsockets3. Namely, look to see if Judy is available, and build it locally if it is not.
  2. Just bundle the Judy souces as part of our source tree and unconditionally use those instead of any system version of Judy.

Personally I'd lean more towards the second case (as we functionally remove a dependency that most users would not otherwise have on their systems that way), but I'm probably not the best person to do the development for that.

@netdata/core, @cosmix Opinions on this would be appreciated.

Expected behavior

We no longer require the system to have libJudy installed at build time to be able to use components that depend on it.

@Ferroin Ferroin added area/packaging Packaging and operating systems support feature request New features needs triage Issues which need to be manually labelled area/database labels Feb 21, 2020
@mfundul
Copy link
Contributor

mfundul commented Feb 25, 2020

Number 2. seems good to me, we only need to be aware that there are extra patches which are out of tree, depending on the distribution, or on whether Windows are being used (for when we port to Windows).

@Ferroin
Copy link
Member Author

Ferroin commented Feb 25, 2020

Are the distro patches just to get Judy to build, or are they for some other functionality?

@mfundul
Copy link
Contributor

mfundul commented Feb 25, 2020

The official repository is this one: https://sourceforge.net/projects/judy/files/judy/Judy-1.0.5/

I think the patches are for both building and bugfixes, some examples:
plq/libjudy@c2c23fe
http://launchpadlibrarian.net/205863092/judy_1.0.5-4_1.0.5-5.diff.gz

Maybe we can look at what Ubuntu is building and compare.

@Ferroin Ferroin added the area/build Build system (autotools and cmake). label Mar 5, 2020
@Ferroin Ferroin added priority/low A 'nice to have' not critical issue and removed needs triage Issues which need to be manually labelled labels Mar 5, 2020
@prologic
Copy link
Contributor

I'm tired of dealing with all these Judy problems we have. I'ma actually stuck on one in particular for CentOS/RHEL 8.x so this needs to be done with a matter of priority.

@mfundul I've imported from SVN (because I don't trust anyone out there) and started importing patches I can found that seem legit.

https://github.com/prologic/judy

I am however unable to currently import the Ubuntu patches as yet -- They look like they were made on the 1.0.5 tag. We might have to rewrite that patch on master and then we can cut a point release and use this as our bundled Judy like we have done with other problematic dependencies.

Appreciate if you could help out here especially with reviews of the patches I'm pulling in at https://github.com/prologic/judy/pulls

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/build Build system (autotools and cmake). area/database area/packaging Packaging and operating systems support feature request New features priority/low A 'nice to have' not critical issue
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants