-
Notifications
You must be signed in to change notification settings - Fork 12
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
Add support for NSID option + update internal LDNS to 1.8.3 #151
Conversation
It is an interesting feature for Zonemaster, but shouldn't the first step be to make Zonemaster-LDNS work with v1.8.2 -- or even v1.8.3 with bug fixes? FreeBSD has support for v1.8.3, but is that true for Debian, Ubuntu and Rocky Linux? Else we have to use built-in LDNS again. |
I've added some logic to check that the installed version of libldns is at least 1.8.2 to prevent errors.
From what I see, there is currently no support (and I don't know when there will be) |
Is it feasible to let the debian packages of Zonemaster-LDNS include internal LDNS? If the feature is to be used the new version of LDNS must be installed everywhere. |
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.
The submodule in Zonemaster-LDNS must be updated to point at the tag of LDNS 1.8.3. Else built-in LDNS will not be able to use this feature. There is no reason not to do that.
I didn't want to update the submodule since there is an open issue about considering such an update #143. I'll do it in a separate PR. |
This PR introduces features from the new version. Why not include that now? |
I've updated the internal LDNS to latest release, which is 1.8.3. |
* internal LDNS is 1.8.3 so it supports NSID * external LDNS is unknown, a check is needed
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.
Looks fine.
The test file was missing in the MANIFEST. |
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.
Press return to run 'make distcheck'...
"/usr/local/bin/perl" "-Iinc" "-MExtUtils::Manifest=fullcheck" -e fullcheck
Not in MANIFEST: ldns/.github/FUNDING.yml
Not in MANIFEST: ldns/.github/workflows/testsuite.yml
Not in MANIFEST: ldns/libdns.doxygen.in
Not in MANIFEST: ldns/README-Travis.md
I have created an installation package for CPAN and try to install it on Ubuntu with built-in LDNS. I fails:
|
I can't reproduce on Ubuntu 22.04. Can you provide more information on the steps you used? |
First create a package on one server (FreeBSD) with the relevant branch checked out:
Then
The distribution file is copied to the target server:
Installing Zonemaster-LDNS (or trying):
Have you created a distrubution file? I could try yours, and you could try mine (enclosed). |
With the distribution file you provided I could reproduce. I haven't looked more thoroughly into it yet. Here is the distribution file I used: Zonemaster-LDNS-2.2.2-PR151.tar.gz |
I compared the contents of the two packages. The following files differ:
The rest of the files are identical. I tested your package on Ubuntu and FreeBSD, and it passed. I tested mine on FreeBSD too, and it failed. I will recreate the package and also create a package from master and develop branches. |
When changing between the branch of this PR and the develop branch the submodule path "ldns" must be updated. When testing, "git submodule update" seemed to do that (since the ldns/Changelog file was updated) but something did not work right. Something else must be done. We should support that since we need to be able to switch between branches with different submodule content. Do you know the correct git commands to wipe the current content and checking out the correct content? The following works, but there might be something in one command that works
|
With updated instructions for how to reset the submodule it seems to work. See zonemaster/zonemaster#1108 (and please review it). I will retest this PR. |
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.
It works fine, but I have one request of change:
I suggest that the ldns/Changelog
file moved from MANIFEST.SKIP to MANIFEST to make it easy to verify the version of LDNS in the Zonemaster-LDNS package.
@matsduf can you be more explicit on what fails with |
If you build Zonemaster-LDNS with one branch where LDNS is 1.7.1 (e.g. current develop) and then switch to another branch where LDNS is 1.8.3 then
instead of
With |
I think I found a better solution than removing the submodule. This comes to using the update of |
Purpose
Since version 1.8.2 (released earlier this year) LDNS can easily retrieve the NSID from the nameserver. This is a proof of concept to retrieve the NSID in Zonemaster::LDNS.
Context
Addresses zonemaster/zonemaster-engine#178 (comment)
Addresses #143.
Changes
nsid
andget_nsid
methods for Zonemaster::LDNS::Packet.How to test this PR
After installing ldns 1.8.2 (or later), the following snippet should return the NSID from the host it connects to (if any):