[Hostname-devel] Bug#787780: hostname patch for musl support

Szabolcs Nagy nsz at port70.net
Fri Jun 5 22:47:12 UTC 2015


Source: hostname
Version: 3.15+nmu1
Tag: patch

This update fixes strcmp check of "(none)".
-------------- next part --------------
diff -Nru hostname-3.15/Makefile hostname-3.15+nmu1/Makefile
--- hostname-3.15/Makefile	2013-11-03 14:25:42.000000000 +0000
+++ hostname-3.15+nmu1/Makefile	2015-06-04 22:12:11.000000000 +0000
@@ -1,4 +1,4 @@
-CFLAGS+=-O2 -Wall
+CFLAGS+=-O2 -Wall -D_GNU_SOURCE
 
 # uncomment the following line if you want to install to a different base dir.
 #BASEDIR=/mnt/test
@@ -9,7 +9,7 @@
 OBJS=hostname.o
 
 hostname: $(OBJS)
-	$(CC) $(CFLAGS) -o $@ $(OBJS) $(LDFLAGS) -lnsl
+	$(CC) $(CFLAGS) -o $@ $(OBJS) $(LDFLAGS)
 	ln -fs hostname dnsdomainname
 	ln -fs hostname domainname
 	ln -fs hostname ypdomainname
diff -Nru hostname-3.15/debian/changelog hostname-3.15+nmu1/debian/changelog
--- hostname-3.15/debian/changelog	2013-11-03 14:41:12.000000000 +0000
+++ hostname-3.15+nmu1/debian/changelog	2015-06-04 22:44:17.000000000 +0000
@@ -1,3 +1,15 @@
+hostname (3.15+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fixes build on musl libc.
+  * Use _GNU_SOURCE feature test macro, instead of glibc internal __USE_GNU.
+  * Use getdomainname instead of yp_get_default_domain because it is more
+    widely available and avoids the -lnsl dependency.
+  * localnisdomain is kept, even though it should be the same as localdomain,
+    so the behaviour is not changed in case of an error.
+
+ -- Szabolcs Nagy <nsz at port70.net>  Thu, 04 Jun 2015 22:13:09 +0000
+
 hostname (3.15) unstable; urgency=low
 
   * Applied patch to make it possible to install binaries and man pages into
diff -Nru hostname-3.15/hostname.c hostname-3.15+nmu1/hostname.c
--- hostname-3.15/hostname.c	2013-11-03 14:26:51.000000000 +0000
+++ hostname-3.15+nmu1/hostname.c	2015-06-05 22:38:54.000000000 +0000
@@ -37,13 +37,11 @@
 #include <stdio.h>
 #include <unistd.h>
 #include <getopt.h>
-#define __USE_GNU 1
 #include <string.h>
 #include <netdb.h>
 #include <errno.h>
 #include <ctype.h>
 #include <err.h>
-#include <rpcsvc/ypclnt.h>
 
 #define VERSION "3.15"
 
@@ -52,20 +50,19 @@
 char *progname;
 
 /*
- * Return the name of the nis default domain. This is just a wrapper for
- * yp_get_default_domain.  If something goes wrong, program exits.
+ * Return the name of the nis default domain. Same as localdomain below,
+ * but reports failure for unset domain.
  */
 char *
 localnisdomain()
 {
-	char *buf = 0;
+	/* The historical NIS limit is 1024, the limit on Linux is 64.  */
+	static char buf[1025];
 	int myerror = 0;
 
-	myerror = yp_get_default_domain(&buf);
-
-	/* yp_get_default_domain failed, abort. */
-	if (myerror) {
-		printf("%s: %s\n", progname, yperr_string(myerror));
+	myerror = getdomainname(buf, sizeof buf);
+	if (myerror || strcmp(buf, "(none)") == 0) {
+		printf("%s: Local domain name not set\n", progname);
 		exit (1);
 	}
 


More information about the Hostname-devel mailing list