Add --disable-uuidd configure option

Add a configure option which causes the uuidd helper daemon not to be
built or used by the uuid library.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
diff --git a/configure b/configure
index 50a23ff..8b88bcd 100755
--- a/configure
+++ b/configure
@@ -697,6 +697,7 @@
 DEVMAPPER_PC_LIBS
 DEVMAPPER_LIBS
 STATIC_DEVMAPPER_LIBS
+UUIDD_CMT
 GETTEXT_PACKAGE
 PACKAGE
 VERSION
@@ -1377,6 +1378,7 @@
   --enable-e2initrd-helper build e2initrd-helper program
   --enable-blkid-devmapper  build with device-mapper support
   --disable-tls           disable use of thread local support
+  --disable-uuidd         disable building the uuid daemon
   --disable-nls           do not use Native Language Support
   --disable-rpath         do not hardcode runtime library paths
 
@@ -4262,6 +4264,32 @@
 echo "${ECHO_T}$ac_cv_tls" >&6; }
 
 fi
+# Check whether --enable-uuidd was given.
+if test "${enable_uuidd+set}" = set; then
+  enableval=$enable_uuidd; if test "$enableval" = "no"
+then
+	echo "Not building uuidd"
+	UUIDD_CMT="#"
+else
+	cat >>confdefs.h <<\_ACEOF
+#define USE_UUIDD 1
+_ACEOF
+
+	UUIDD_CMT=""
+	echo "Building uuidd"
+fi
+
+else
+  cat >>confdefs.h <<\_ACEOF
+#define USE_UUIDD 1
+_ACEOF
+
+UUIDD_CMT=""
+echo "Building uuidd by default"
+
+fi
+
+
 MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
 
 GETTEXT_PACKAGE=e2fsprogs
@@ -15874,6 +15902,7 @@
 DEVMAPPER_PC_LIBS!$DEVMAPPER_PC_LIBS$ac_delim
 DEVMAPPER_LIBS!$DEVMAPPER_LIBS$ac_delim
 STATIC_DEVMAPPER_LIBS!$STATIC_DEVMAPPER_LIBS$ac_delim
+UUIDD_CMT!$UUIDD_CMT$ac_delim
 GETTEXT_PACKAGE!$GETTEXT_PACKAGE$ac_delim
 PACKAGE!$PACKAGE$ac_delim
 VERSION!$VERSION$ac_delim
@@ -15949,7 +15978,7 @@
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 81; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 82; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
diff --git a/configure.in b/configure.in
index fcbd441..d337a24 100644
--- a/configure.in
+++ b/configure.in
@@ -548,6 +548,26 @@
 dnl
 dnl
 dnl
+AC_ARG_ENABLE([uuidd],
+[  --disable-uuidd         disable building the uuid daemon],
+[if test "$enableval" = "no"
+then
+	echo "Not building uuidd"
+	UUIDD_CMT="#"
+else
+	AC_DEFINE(USE_UUIDD)
+	UUIDD_CMT=""
+	echo "Building uuidd"
+fi]
+,
+AC_DEFINE(USE_UUIDD)
+UUIDD_CMT=""
+echo "Building uuidd by default"
+)
+AC_SUBST(UUIDD_CMT)
+dnl
+dnl
+dnl
 MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
 AC_SUBST_FILE(MAKEFILE_LIBRARY)
 dnl
diff --git a/lib/uuid/gen_uuid.c b/lib/uuid/gen_uuid.c
index 0bea060..892f6e2 100644
--- a/lib/uuid/gen_uuid.c
+++ b/lib/uuid/gen_uuid.c
@@ -385,6 +385,7 @@
  */
 static int get_uuid_via_daemon(int op, uuid_t out, int *num)
 {
+#ifdef USE_UUIDD
 	char op_buf[64];
 	int op_len;
 	int s;
@@ -449,6 +450,7 @@
 
 fail:
 	close(s);
+#endif
 	return -1;
 }
 
diff --git a/misc/Makefile.in b/misc/Makefile.in
index 1d4444a..f0d14fa 100644
--- a/misc/Makefile.in
+++ b/misc/Makefile.in
@@ -14,12 +14,15 @@
 @IMAGER_CMT@E2IMAGE_PROG= e2image
 @IMAGER_CMT@E2IMAGE_MAN= e2image.8
 
+@UUIDD_CMT@UUIDD_PROG= uuidd
+@UUIDD_CMT@UUIDD_MAN= uuidd.8
+
 SPROGS=		mke2fs badblocks tune2fs dumpe2fs blkid logsave \
 			$(E2IMAGE_PROG) @FSCK_PROG@
-USPROGS=	mklost+found filefrag uuidd
+USPROGS=	mklost+found filefrag $(UUIDD_PROG)
 SMANPAGES=	tune2fs.8 mklost+found.8 mke2fs.8 dumpe2fs.8 badblocks.8 \
 			e2label.8 findfs.8 blkid.8 $(E2IMAGE_MAN) \
-			logsave.8 filefrag.8 uuidd.8 @FSCK_MAN@
+			logsave.8 filefrag.8 $(UUIDD_MAN) @FSCK_MAN@
 FMANPAGES=	mke2fs.conf.5
 
 UPROGS=		chattr lsattr uuidgen
@@ -366,7 +369,7 @@
 		$(FMANPAGES) \
 		base_device base_device.out mke2fs.static filefrag \
 		e2initrd_helper partinfo prof_err.[ch] default_profile.c \
-		\#* *.s *.o *.a *~ core 
+		uuidd e2image \#* *.s *.o *.a *~ core 
 
 mostlyclean: clean
 distclean: clean