xorg build error: needs uuid

Jeremy C. Reed reed at reedmedia.net
Sat Jul 5 12:57:13 PDT 2008


On Sat, 5 Jul 2008, Chuck Robey wrote:

> I got an error during configuration of libSM, it wanted a package "uuid".  I
> foound (using google) a linux package named libuuid, but since I don't run
> Linux, I'd never seen it on my FreeBSD-current system, not anywhere in the
> sources, not even in the ports.  Is this soomewhere in the xorg sources?  I
> searched for *uuid* but didn't find it.
> 
> If it's a linux-only thing, is it reasonable to make xorg dependent upon it (or,
> maybe I'm jumping to conclusions here).  I need to find some way to get past this.

I see that also on NetBSD.

FreeBSD and NetBSD both have uuid.h and uuidgen(2) and uuid(3).

The FreeBSD package is called ports/misc/e2fsprogs-libuuid (but I don't 
think that package should be needed as the libc support should be fine).

The libSM/src/sm_genid.c checks for HAVE_LIBUUID so failing at 
configuration time is not right. It has other ways to 
"SmsGenerateClientID".

Here is one patch:

diff --git a/configure.ac b/configure.ac
index f534bd2..de97961 100644
--- a/configure.ac
+++ b/configure.ac
@@ -39,7 +39,9 @@ AC_ARG_WITH(libuuid, AC_HELP_STRING([--with-libuuid], [Build with libuuid suppor
 AM_CONDITIONAL(WITH_LIBUUID, test x"$with_libuuid" != xno)
 
 if test x"$with_libuuid" != xno; then
-	PKG_CHECK_MODULES(LIBUUID, uuid)
+	PKG_CHECK_MODULES(LIBUUID, uuid,
+		AC_DEFINE(WITH_LIBUUID,1,[libuuid support for client IDs]),
+		with_libuuid=no)
 fi
 
 if test "x$GCC" = "xyes"; then



Even a better fix is to check if DCE 1.1 UUID function uuid_create(3) is 
available and use it. (Like on NetBSD, FreeBSD, DragonFly, Solaris.)

Or check if e2fsprogs libuuid function uuid_generate(3) is available.

A good example is in the Apache apr source.

p.s. I added two carbon-copies for this email for developers who last 
committed to this part.



More information about the xorg mailing list