Use fcntl instead of flock, and a couple of other small Solaris fixes.diff -r1.2 -r1.3 pkgsrc/devel/libuuid/Makefile
(jperkin)
@@ -1,14 +1,14 @@ | @@ -1,14 +1,14 @@ | |||
1 | # $NetBSD: Makefile,v 1.2 2011/05/12 12:26:15 adam Exp $ | 1 | # $NetBSD: Makefile,v 1.3 2012/09/05 13:03:04 jperkin Exp $ | |
2 | 2 | |||
3 | DISTNAME= util-linux-2.19.1 | 3 | DISTNAME= util-linux-2.19.1 | |
4 | PKGNAME= ${DISTNAME:S/util-linux/libuuid/} | 4 | PKGNAME= ${DISTNAME:S/util-linux/libuuid/} | |
5 | CATEGORIES= devel | 5 | CATEGORIES= devel | |
6 | MASTER_SITES= http://www.kernel.org/pub/linux/utils/util-linux-ng/v2.19/ | 6 | MASTER_SITES= http://www.kernel.org/pub/linux/utils/util-linux-ng/v2.19/ | |
7 | EXTRACT_SUFX= .tar.bz2 | 7 | EXTRACT_SUFX= .tar.bz2 | |
8 | 8 | |||
9 | MAINTAINER= pkgsrc-users@NetBSD.org | 9 | MAINTAINER= pkgsrc-users@NetBSD.org | |
10 | HOMEPAGE= http://kernel.org/~kzak/util-linux-ng/ | 10 | HOMEPAGE= http://kernel.org/~kzak/util-linux-ng/ | |
11 | COMMENT= Generate unique identifiers for objects | 11 | COMMENT= Generate unique identifiers for objects | |
12 | LICENSE= modified-bsd | 12 | LICENSE= modified-bsd | |
13 | 13 | |||
14 | CONFLICTS= ossp-uuid-[0-9]* # libuuid.* uuid.pc uuid.3 | 14 | CONFLICTS= ossp-uuid-[0-9]* # libuuid.* uuid.pc uuid.3 | |
@@ -29,18 +29,18 @@ CONFIGURE_ARGS+= --disable-rename | @@ -29,18 +29,18 @@ CONFIGURE_ARGS+= --disable-rename | |||
29 | CONFIGURE_ARGS+= --disable-schedutils | 29 | CONFIGURE_ARGS+= --disable-schedutils | |
30 | CONFIGURE_ARGS+= --disable-switch_root | 30 | CONFIGURE_ARGS+= --disable-switch_root | |
31 | CONFIGURE_ARGS+= --disable-unshare | 31 | CONFIGURE_ARGS+= --disable-unshare | |
32 | CONFIGURE_ARGS+= --disable-uuidd | 32 | CONFIGURE_ARGS+= --disable-uuidd | |
33 | CONFIGURE_ARGS+= --disable-wall | 33 | CONFIGURE_ARGS+= --disable-wall | |
34 | CONFIGURE_ARGS+= --without-ncurses | 34 | CONFIGURE_ARGS+= --without-ncurses | |
35 | 35 | |||
36 | PKGCONFIG_OVERRIDE+= shlibs/uuid/uuid.pc.in | 36 | PKGCONFIG_OVERRIDE+= shlibs/uuid/uuid.pc.in | |
37 | 37 | |||
38 | BUILD_DIRS= include shlibs/uuid | 38 | BUILD_DIRS= include shlibs/uuid | |
39 | 39 | |||
40 | .include "../../mk/bsd.prefs.mk" | 40 | .include "../../mk/bsd.prefs.mk" | |
41 | 41 | |||
42 | .if ${OPSYS} == "Darwin" | 42 | .if ${OPSYS} == "Darwin" || ${OPSYS} == "SunOS" | |
43 | BUILDLINK_TRANSFORM+= rm:-Wl,--version-script=../../../shlibs/uuid/src/uuid.sym | 43 | BUILDLINK_TRANSFORM+= rm:-Wl,--version-script=../../../shlibs/uuid/src/uuid.sym | |
44 | .endif | 44 | .endif | |
45 | 45 | |||
46 | .include "../../mk/bsd.pkg.mk" | 46 | .include "../../mk/bsd.pkg.mk" |
@@ -1,6 +1,7 @@ | @@ -1,6 +1,7 @@ | |||
1 | $NetBSD: distinfo,v 1.3 2011/05/12 12:26:15 adam Exp $ | 1 | $NetBSD: distinfo,v 1.4 2012/09/05 13:03:04 jperkin Exp $ | |
2 | 2 | |||
3 | SHA1 (util-linux-2.19.1.tar.bz2) = 96af5d4a37c42296dae5365ba533316216a6b347 | 3 | SHA1 (util-linux-2.19.1.tar.bz2) = 96af5d4a37c42296dae5365ba533316216a6b347 | |
4 | RMD160 (util-linux-2.19.1.tar.bz2) = e4763d21a3a32029ccc525a0222e271f0946a4fd | 4 | RMD160 (util-linux-2.19.1.tar.bz2) = e4763d21a3a32029ccc525a0222e271f0946a4fd | |
5 | Size (util-linux-2.19.1.tar.bz2) = 4396543 bytes | 5 | Size (util-linux-2.19.1.tar.bz2) = 4396543 bytes | |
6 | SHA1 (patch-aa) = 07d66ef414f5781d75159b446d6c822b1e543477 | 6 | SHA1 (patch-aa) = 07d66ef414f5781d75159b446d6c822b1e543477 | |
7 | SHA1 (patch-ab) = e0dee6d6de8460638ce3ca1ce2212bb3dfce5e9a |
$NetBSD: patch-ab,v 1.4 2012/09/05 13:03:04 jperkin Exp $
fcntl is portable, flock is not.
Solaris does not have ifr.ifr_hwaddr.
--- shlibs/uuid/src/gen_uuid.c.orig Mon May 2 09:10:08 2011
+++ shlibs/uuid/src/gen_uuid.c Wed Sep 5 12:23:54 2012
@@ -265,7 +265,7 @@
for (i = 0; i < n; i+= ifreq_size(*ifrp) ) {
ifrp = (struct ifreq *)((char *) ifc.ifc_buf+i);
strncpy(ifr.ifr_name, ifrp->ifr_name, IFNAMSIZ);
-#ifdef SIOCGIFHWADDR
+#if defined(SIOCGIFHWADDR) && !defined(__sun)
if (ioctl(sd, SIOCGIFHWADDR, &ifr) < 0)
continue;
a = (unsigned char *) &ifr.ifr_hwaddr.sa_data;
@@ -314,11 +314,16 @@
THREAD_LOCAL int state_fd = -2;
THREAD_LOCAL FILE *state_f;
THREAD_LOCAL uint16_t clock_seq;
+ struct flock lock;
struct timeval tv;
uint64_t clock_reg;
mode_t save_umask;
int len;
+ lock.l_whence = SEEK_SET;
+ lock.l_start = 0;
+ lock.l_len = 0;
+
if (state_fd == -2) {
save_umask = umask(0);
state_fd = open("/var/lib/libuuid/clock.txt",
@@ -334,7 +339,8 @@
}
if (state_fd >= 0) {
rewind(state_f);
- while (flock(state_fd, LOCK_EX) < 0) {
+ lock.l_type = F_WRLCK;
+ while (fcntl(state_fd, F_SETLKW, &lock) < 0) {
if (errno == EINTR)
continue;
fclose(state_f);
@@ -405,7 +411,8 @@
fflush(state_f);
}
rewind(state_f);
- flock(state_fd, LOCK_UN);
+ lock.l_type = F_UNLCK;
+ fcntl(state_fd, F_SETLK, &lock);
}
*clock_high = clock_reg >> 32;