* hurd/terrible-mdns-responder.mdwn: new file * contributing.mdwn: added a link to the mdns-responder. * hurd/documentation.mdwn: added a link to the mdns-responder. * hurd/running/debian/after_install.mdwn: added a link to the mdns-responder. --- contributing.mdwn | 3 ++ hurd/documentation.mdwn | 2 + hurd/running/debian/after_install.mdwn | 5 +++ hurd/terrible-mdns-responder.mdwn | 52 ++++++++++++++++++++++++++ 4 files changed, 62 insertions(+) create mode 100644 hurd/terrible-mdns-responder.mdwn
diff --git a/contributing.mdwn b/contributing.mdwn index dbd5af55..dca336ca 100644 --- a/contributing.mdwn +++ b/contributing.mdwn @@ -241,6 +241,9 @@ After you have a Hurd vm set up and running: * `git clone git://git.sv.gnu.org/hurd/gnumach.git` * `git clone git://git.sv.gnu.org/hurd/incubator.git` * You can connect through ssh with `ssh root@localhost -p 2222` + Optionally if you connect to the Hurd running on another local + machine, then you might want to set up the + [[hurd/terrible-mdns-responder]]. * Get more from the [repo list](https://git.savannah.gnu.org/cgit/hurd/). * Read the docs on these pages. * Start hacking. diff --git a/hurd/documentation.mdwn b/hurd/documentation.mdwn index 0d9bed65..5b60ecf5 100644 --- a/hurd/documentation.mdwn +++ b/hurd/documentation.mdwn @@ -62,6 +62,8 @@ is included in the section entitled # Development * [[RPC]]: our usage of *Remote Procedure Call*s. + * To get `ssh <hostname>.local` working, you can set up the + [[hurd/terrible-mdns-responder]]. * *[[The_GNU_Hurd_Reference_Manual|reference_manual]]*. * [[*The Hurd Hacking Guide|Hurd_Hacking_Guide]]*, an introduction to GNU Hurd and Mach programming by Wolfgang Jährling. diff --git a/hurd/running/debian/after_install.mdwn b/hurd/running/debian/after_install.mdwn index 927d05f1..4c7d924a 100644 --- a/hurd/running/debian/after_install.mdwn +++ b/hurd/running/debian/after_install.mdwn @@ -15,3 +15,8 @@ you. See [[GRUB]]'s page for this. Installing packages without having a network connection is described [[DebianAptOffline]]. + +# Setting up mDNS responder + +To get `ssh <hostname>.local` working, you can set up the +[[hurd/terrible-mdns-responder]]. diff --git a/hurd/terrible-mdns-responder.mdwn b/hurd/terrible-mdns-responder.mdwn new file mode 100644 index 00000000..08e6de75 --- /dev/null +++ b/hurd/terrible-mdns-responder.mdwn @@ -0,0 +1,52 @@ +[[!meta copyright="Copyright © 2024 Free Software Foundation, +Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +[[!tag open_issue_hurd]] + +# What is the terrible mDNS responder? + +Suppose you have the Hurd running on a another machine in your local +network. `ssh <IP-ADDRESS>` is not guarenteed to work, because your +router will occassionally change the IP address of your Hurd machine. +That's kind of annoying! Luckily, Sergey wrote the terrible-mDNS +responder, so that `ssh <hostname>.local` just works! How cool is +that!? + +To be very clear, this does *not* teach the system to do mDNS queries +(.local hostname lookups). The terrible-mDNS-responder only responds +to other host's queries. (Those other hosts may be running Avahi or +sd-rd or Apple's mDNSResponder or LookupServer or ...) + +The sources are over on +[[GitHub|https://github.com/bugaevc/terrible-mdns-responder]]. There +are no dependencies other than a libc. It's built with Meson and +licensed under AGPL v3+. It even comes with an awkward attempt at a +sysv init script! What's not to like? + +# How to use it on Debian GNU/Hurd? + + $ git clone g...@github.com:bugaevc/terrible-mdns-responder.git + $ cd terrible-mdns-responder + $ meson setup build # you may need to apt install meson + $ ninja -C build + $ sudo ninja install -C build + $ sudo update-rc.d terrible-mdns-responder defaults + $ sudo update-rc.d avahi-daemon disable + $ sudo service terrible-mdns-responder start + +# FAQ Why not use avahi? + +Debian GNU/Hurd comes with Avahi in the default install (I believe). +Avahi has never worked for me (on the Hurd), and I doubt it has ever +worked for anyone else either. I *have* looked into the why (as in +spent hours debugging and patching it); I don't remember the +specifics, but I do remember that I concluded it won't be easy to make +it work. So, a dead end. -- 2.45.1