On 2025/03/17 22:04, Theo Buehler wrote:
> On Mon, Mar 17, 2025 at 09:45:21PM +0100, James Turner wrote:
> > Attached is a new port for a RDAP client. My limited searching in ports
> > didn't turn one up. My first cargo port as well.
> 
> There's net/rdapper.

I wrote a port for this too alongside the one for rdapper but didn't
think it was really a good fit for us so didn't finish polishing and
send it out.

- poor arch support (only aarch64 amd64 riscv64)

- build on a reasonably fast machine takes over 20 minutes,
which I thought totally excessive for what it is - fetch json over
http, a bit of caching and retries if a server says to delay, follow
referrals, format the output for display

- gobs and gobs of output. for a simple domain lookup (.org -> tucows)
that rdapper displays in 67 lines, icann-rdap comes up with 560 lines
of what to my eyes is poorly formatted output. (with domain name
lookups you can -O gtld-whois for something more sensible, there is
an environment-based mechanism to set that as default, but you
then get no output if you try an ASN/IP lookup)

- ansi colours and UTF8 line drawing characters, even with
LC_CTYPE=c TERM=dumb, that turns into json if you try to pipe it
through less.

(ok rdapper is not great at clean output format either as it also
uses ansi bold sequences on a dumb terminal unless told not to,
but at least it's better, and cleans it up when piped).

> Please add this to the top of the Makefile:
> 
> # ring-v0.17 does not support this arch
> NOT_FOR_ARCHS = sparc64
> 
> Then I'm basically ok with this.
> 
> Things to consider:
> 
> Since it's the official ICANN tool, letting it squat a naked rdap
> seems okay although it's a tad generic.

I won't object to importing, but I _would_ prefer to rename the
binaries; firstly as the port is named icann-rdap it makes it
easier to discover the right binary to use; secondly the nicer
go-based client from openrdap.org dating from 2017 (years before
the ICANN one was started) is also just called "rdap".

I didn't look much at the openrdap.org client before (go is a bit
of a turn-off ports-wise), but now I've tried it, actually I like it the
best of the three - cleaner output than both rdapper/icann-rdap, under
a minute to build, and doesn't pull in 80+ p5-* deps. I'll attach a
first cut at a port for that too.

FWIW here's a diff between James' icann-rdap port and mine, not much
different but there are a couple of small things that maybe worth
taking. I hadn't got round to renaming binaries before I decided
to give up on it ;)

diff -uNp -wur icann-rdap/Makefile /usr/ports/net/icann-rdap/Makefile
--- icann-rdap/Makefile Mon Mar 17 19:50:44 2025
+++ /usr/ports/net/icann-rdap/Makefile  Mon Feb  3 17:20:27 2025
@@ -1,11 +1,15 @@
-COMMENT =              command-line RDAP client
+# ring-v0.17.8 does not support this arch
+NOT_FOR_ARCHS =        sparc64
+
+COMMENT =      ICANN's client for Registry Data Access Protocol
+
 GH_ACCOUNT =           icann
 GH_PROJECT =           icann-rdap
 GH_TAGNAME =           v0.0.21
 
-CATEGORIES =           net sysutils
+CATEGORIES =   net
 
-# MIT/Apache-2.0
+# either Apache v2.0 or MIT
 PERMIT_PACKAGE =       Yes
 
 WANTLIB +=             ${MODCARGO_WANTLIB} crypto m ssl
@@ -14,7 +18,10 @@ MODULES =            devel/cargo
 
 CONFIGURE_STYLE =      cargo
 
-MODCARGO_INSTALL_TARGET_PATHS = ./icann-rdap-cli
+SEPARATE_BUILD =       Yes
+
+# a server is available too: "icann-rdap-srv"
+MODCARGO_INSTALL_TARGET_PATHS = icann-rdap-cli
 
 .include "crates.inc"
 

Attachment: rdap.tgz
Description: application/tar-gz

Reply via email to