package/nss-myhostname: Add package
authorVincent Prince <vincent.prince.fr@gmail.com>
Tue, 29 May 2018 08:00:12 +0000 (10:00 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Sat, 20 Oct 2018 23:50:35 +0000 (01:50 +0200)
nss-myhostname is helpful to resolve local hostname without domain.
For instance, if we set hostname to myboard and ping myboard
without .local suffix, it fails if /etc/hosts stays unchanged.

nss-myhostname modifies /etc/nsswitch.conf file.
It set myhostname resolution just after files in hosts line,
for example:
    hosts: files myhostname mdns4_minimal [NOTFOUND=return] dns

This choice comes from Debian commit [1] and Yocto recipe [2].
Also, nss-myhostname author suggests myhostname should be used as
a backup and appended at the end of hosts line. Both choices are valid.

Discussion on Debian bug tracker [3] gives some details on issue
that may occurs using nss-myhostname (see fqdn).

Note nss-myhostname is already included in systemd, so ensure is conflicts
with it.

[1] http://git.nomeata.de/?p=libnss-myhostname.git;a=commit;h=5104d7f0045df55ee8be526e8c84078750e1e0ed
[2] https://git.yoctoproject.org/cgit.cgi/poky/plain/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb
[3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=756224

[Peter: simplify sed invocation, adjust Config.in]
Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
DEVELOPERS
package/Config.in
package/nss-myhostname/Config.in [new file with mode: 0644]
package/nss-myhostname/nss-myhostname.hash [new file with mode: 0644]
package/nss-myhostname/nss-myhostname.mk [new file with mode: 0644]

index 61f3cac9e4fe4db9d7714b9faed2292c80021710..3bcbf817f071030c7e8840fd3811979d3db68e5f 100644 (file)
@@ -2139,6 +2139,9 @@ F:        package/openmpi/
 F:     package/pinentry/
 F:     package/trinity/
 
+N:     Vincent Prince <vincent.prince.fr@gmail.com>
+F:     package/nss-myhostname/
+
 N:     Vincent StehlĂ© <vincent.stehle@laposte.net>
 F:     package/i7z/
 F:     package/msr-tools/
index 8d53c72138adc963270098dc9d32a5966b2981ef..177861e3584e4ad3034d2a007a61ce3d8ca923ec 100644 (file)
@@ -1555,6 +1555,7 @@ menu "Networking"
        source "package/nghttp2/Config.in"
        source "package/norm/Config.in"
        source "package/nss-mdns/Config.in"
+       source "package/nss-myhostname/Config.in"
        source "package/nss-pam-ldapd/Config.in"
        source "package/omniorb/Config.in"
        source "package/openldap/Config.in"
diff --git a/package/nss-myhostname/Config.in b/package/nss-myhostname/Config.in
new file mode 100644 (file)
index 0000000..bdd9830
--- /dev/null
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_NSS_MYHOSTNAME
+       bool "nss-myhostname"
+       depends on BR2_TOOLCHAIN_USES_GLIBC
+       depends on !BR2_PACKAGE_SYSTEMD_MYHOSTNAME
+       help
+         Name Service Switch module for resolving the local hostname
+
+         http://0pointer.de/lennart/projects/nss-myhostname
+
+comment "nss-myhostname needs a glibc toolchain"
+       depends on !BR2_TOOLCHAIN_USES_GLIBC
+       depends on !BR2_PACKAGE_SYSTEMD_MYHOSTNAME
diff --git a/package/nss-myhostname/nss-myhostname.hash b/package/nss-myhostname/nss-myhostname.hash
new file mode 100644 (file)
index 0000000..dfa531c
--- /dev/null
@@ -0,0 +1,3 @@
+# locally computed
+sha256  2ba744ea8d578d1c57c85884e94a3042ee17843a5294434d3a7f6c4d67e7caf2 nss-myhostname-0.3.tar.gz
+sha256  a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861 LICENSE
diff --git a/package/nss-myhostname/nss-myhostname.mk b/package/nss-myhostname/nss-myhostname.mk
new file mode 100644 (file)
index 0000000..08683a5
--- /dev/null
@@ -0,0 +1,20 @@
+################################################################################
+#
+## nss-myhostname
+#
+################################################################################
+
+NSS_MYHOSTNAME_VERSION = 0.3
+NSS_MYHOSTNAME_SITE = http://0pointer.de/lennart/projects/nss-myhostname
+NSS_MYHOSTNAME_LICENSE = LGPL-2.1+
+NSS_MYHOSTNAME_LICENSE_FILES = LICENSE
+
+# add myhostname after files if missing
+define MYHOSTNAME_SET_NSSWITCH
+       $(SED) '/^hosts:/ {/myhostname/! s/files/files myhostname/}' \
+               $(TARGET_DIR)/etc/nsswitch.conf
+endef
+
+NSS_MYHOSTNAME_TARGET_FINALIZE_HOOKS += MYHOSTNAME_SET_NSSWITCH
+
+$(eval $(autotools-package))