diff mbox series

[v3,2/2] package/nss-myhostname: Add package

Message ID 1527580812-14078-2-git-send-email-vincent.prince.fr@gmail.com
State Accepted
Commit d25f4ce2eea4a42210b6c7ff4fbfd8a8e8845fcb
Headers show
Series [v3,1/2] package/nss-mdns: Fix hook from post-install to finalize | expand

Commit Message

Vincent Prince May 29, 2018, 8 a.m. UTC
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 is it 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

Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
---
 DEVELOPERS                                 |  3 +++
 package/Config.in                          |  1 +
 package/nss-myhostname/Config.in           | 11 +++++++++++
 package/nss-myhostname/nss-myhostname.hash |  3 +++
 package/nss-myhostname/nss-myhostname.mk   | 20 ++++++++++++++++++++
 5 files changed, 38 insertions(+)
 create mode 100644 package/nss-myhostname/Config.in
 create mode 100644 package/nss-myhostname/nss-myhostname.hash
 create mode 100644 package/nss-myhostname/nss-myhostname.mk

Comments

Peter Korsgaard Oct. 20, 2018, 11:50 p.m. UTC | #1
>>>>> "Vincent" == Vincent Prince <vincent.prince.fr@gmail.com> writes:

 > 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 is it 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

 > Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
 > ---
 >  DEVELOPERS                                 |  3 +++
 >  package/Config.in                          |  1 +
 >  package/nss-myhostname/Config.in           | 11 +++++++++++
 >  package/nss-myhostname/nss-myhostname.hash |  3 +++
 >  package/nss-myhostname/nss-myhostname.mk   | 20 ++++++++++++++++++++
 >  5 files changed, 38 insertions(+)
 >  create mode 100644 package/nss-myhostname/Config.in
 >  create mode 100644 package/nss-myhostname/nss-myhostname.hash
 >  create mode 100644 package/nss-myhostname/nss-myhostname.mk

 > diff --git a/DEVELOPERS b/DEVELOPERS
 > index 41e1b54..88c9a71 100644
 > --- a/DEVELOPERS
 > +++ b/DEVELOPERS
 > @@ -1813,6 +1813,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/
 > diff --git a/package/Config.in b/package/Config.in
 > index 3cf53ed..3ac0d63 100644
 > --- a/package/Config.in
 > +++ b/package/Config.in
 > @@ -1426,6 +1426,7 @@ menu "Networking"
 >  	source "package/neon/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
 > index 0000000..549e167
 > --- /dev/null
 > +++ b/package/nss-myhostname/Config.in
 > @@ -0,0 +1,11 @@
 > +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

The comment should also be hidden if SYSTEMD_MYHOSTNAME is enabled.

> diff --git a/package/nss-myhostname/nss-myhostname.hash b/package/nss-myhostname/nss-myhostname.hash
 > new file mode 100644
 > index 0000000..dfa531c
 > --- /dev/null
 > +++ b/package/nss-myhostname/nss-myhostname.hash
 > @@ -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
 > index 0000000..435c380
 > --- /dev/null
 > +++ b/package/nss-myhostname/nss-myhostname.mk
 > @@ -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
 > +
 > +define MYHOSTNAME_SET_NSSWITCH
 > +	$(SED) '/^hosts:/s/\s*\<myhostname\>//' \
 > +		-E -e 's,(^hosts:.*)(\<files\>)(.*)(\<dns\>)(.*),\1\2 myhostname \3\4\5,' \
 > +		$(TARGET_DIR)/etc/nsswitch.conf
 > +endef

I've used a simpler sed invocation which does the right thing when
called more than once and committed, thanks.
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 41e1b54..88c9a71 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1813,6 +1813,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/
diff --git a/package/Config.in b/package/Config.in
index 3cf53ed..3ac0d63 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1426,6 +1426,7 @@  menu "Networking"
 	source "package/neon/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
index 0000000..549e167
--- /dev/null
+++ b/package/nss-myhostname/Config.in
@@ -0,0 +1,11 @@ 
+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
diff --git a/package/nss-myhostname/nss-myhostname.hash b/package/nss-myhostname/nss-myhostname.hash
new file mode 100644
index 0000000..dfa531c
--- /dev/null
+++ b/package/nss-myhostname/nss-myhostname.hash
@@ -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
index 0000000..435c380
--- /dev/null
+++ b/package/nss-myhostname/nss-myhostname.mk
@@ -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
+
+define MYHOSTNAME_SET_NSSWITCH
+	$(SED) '/^hosts:/s/\s*\<myhostname\>//' \
+		-E -e 's,(^hosts:.*)(\<files\>)(.*)(\<dns\>)(.*),\1\2 myhostname \3\4\5,' \
+		$(TARGET_DIR)/etc/nsswitch.conf
+endef
+
+NSS_MYHOSTNAME_TARGET_FINALIZE_HOOKS += MYHOSTNAME_SET_NSSWITCH
+
+$(eval $(autotools-package))