-
Notifications
You must be signed in to change notification settings - Fork 29.6k
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
Replace c-ares with getdns #33317
Replace c-ares with getdns #33317
Conversation
I think this requires updating the LICENSE file. |
Perhaps it would be good to have a description somewhere of why c-ares is being replaced by this particular library? |
Additionally it might be good to have a CITGM run for this. |
'src/tls', | ||
'src/yxml', | ||
], | ||
'libraries': ['-lunbound'], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
when i try to build this, the linker fails saying all the libunbound functions are undefined /cc @nodejs/node-gyp
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is your question? libunbound is a dependency of getdns, yes.
I don't want to discourage you but I don't see this PR going anywhere. getdns also depends on libidn or libidn2 (non-optionally, AFAICT) and those are LGPL.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My apologies, I was wrong about libidn being mandatory - it can be disabled by passing -DUSE_LIBIDN2=OFF
to cmake.
Node.js already does IDNA conversion, you just need to undo the removal of the toASCII / toUnicode calls in this PR. I could also open an upstream PR to teach it about ICU.
As to libunbound: that's a thornier issue. It's part of unbound and pretty big. sloccount says 112,000 lines of C.
I don't think it'd be easy to break out just the parts we want and this PR is already pretty top-heavy at 86,000 lines added.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good to know, I left the toASCII in (it's just moved to internal/dns/modern.js).
I guess I can also look into vendoring unbound. what a rabbit hole this has turned into :D
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is current PR blocked by linker fails ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i need to vendor libunbound as well, and i haven't had the time to figure that out. if only we could use submodules and cmake :(
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't reviewed in detail, but I'm marking changes requested to ensure that it lands with a doc/guides/maintaining-getdns.md that describes the update procedure.
8ae28ff
to
2935f72
Compare
void (*free)(void* ptr, void* data); | ||
void* (*calloc)(size_t num, size_t size, void* data); | ||
void* (*realloc)(void* ptr, size_t size, void* data); | ||
}; |
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
Unless someone really wants to try vendoring libunbound with gyp, i'm going to say this is blocked on nodejs/TSC#901 |
@devsnek ... I'm sad this never was able to progress. |
@jasnell there may yet be good news, stay tuned! |
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes