Hello,

I discovered that libuuid wasn't actually producing type 1 UUIDs from
the MAC address of the machine. I've made a patch that gets it to do
that correctly, but I haven't wrangled with autotools to get it so it
would be suitable for sending upstream.
____________________________________________________________
Douglas William Thrift
<doug...@douglasthrift.net>
<http://douglasthrift.net/>
diff -Nrux .svn -x work /usr/ports/misc/e2fsprogs-libuuid/Makefile 
e2fsprogs-libuuid/Makefile
--- /usr/ports/misc/e2fsprogs-libuuid/Makefile  2009-07-20 08:28:20.000000000 
-0700
+++ e2fsprogs-libuuid/Makefile  2009-09-20 17:34:57.058779406 -0700
@@ -24,8 +24,11 @@
 INSTALL_TARGET=        install install-shlibs
 INSTALL_WRKSRC=        ${WRKSRC}/lib/uuid
 FILESDIR=      ${.CURDIR}/files
+EXTRA_PATCHES+=        ${FILESDIR}/patch-lib-uuid-gen_uuid.c
 USE_RC_SUBR=   uuidd
 
+CFLAGS+=       -DHAVE_NET_IF_DL_H
+
 MAN1=          uuidgen.1
 
 MAN3=          uuid.3 uuid_clear.3 uuid_compare.3 uuid_copy.3 uuid_generate.3 \
diff -Nrux .svn -x work 
/usr/ports/misc/e2fsprogs-libuuid/files/patch-lib-uuid-gen_uuid.c 
e2fsprogs-libuuid/files/patch-lib-uuid-gen_uuid.c
--- /usr/ports/misc/e2fsprogs-libuuid/files/patch-lib-uuid-gen_uuid.c   
1969-12-31 16:00:00.000000000 -0800
+++ e2fsprogs-libuuid/files/patch-lib-uuid-gen_uuid.c   2009-07-28 
06:47:29.421206931 -0700
@@ -0,0 +1,40 @@
+--- ./lib/uuid/gen_uuid.c.orig 2009-06-30 20:41:09.000000000 -0700
++++ ./lib/uuid/gen_uuid.c      2009-07-28 06:46:12.380950940 -0700
+@@ -89,6 +89,8 @@
+ #ifdef HAVE_SYS_RESOURCE_H
+ #include <sys/resource.h>
+ #endif
++#include <net/if_dl.h>
++#include <ifaddrs.h>
+ 
+ #include "uuidP.h"
+ #include "uuidd.h"
+@@ -295,6 +297,28 @@
+               }
+       }
+       close(sd);
++#else
++      struct ifaddrs *ifaddrsp, *ifaddrp;
++      unsigned char   *a;
++
++      if (getifaddrs(&ifaddrsp) < 0)
++              return -1;
++      for (ifaddrp = ifaddrsp; ifaddrp != NULL; ifaddrp = ifaddrp->ifa_next)
++      {
++              if (ifaddrp->ifa_addr == NULL)
++                      continue;
++              if (ifaddrp->ifa_addr->sa_family != AF_LINK)
++                      continue;
++              a = LLADDR((struct sockaddr_dl *)ifaddrp->ifa_addr);
++              if (!a[0] && !a[1] && !a[2] && !a[3] && !a[4] && !a[5])
++                      continue;
++              if (node_id) {
++                      memcpy(node_id, a, 6);
++                      freeifaddrs(ifaddrsp);
++                      return 1;
++              }
++      }
++      freeifaddrs(ifaddrsp);
+ #endif
+       return 0;
+ }
_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to