aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authordelphij <delphij@FreeBSD.org>2012-09-05 08:17:10 +0800
committerdelphij <delphij@FreeBSD.org>2012-09-05 08:17:10 +0800
commit2652c4173c4935f65bb40e9f7a80f1c467d9fd8a (patch)
tree73aa0695a3e0810acd699241111a38b316b72a3f /net
parent98c631d91aa6677da03de250999262c69550c4a5 (diff)
downloadfreebsd-ports-gnome-2652c4173c4935f65bb40e9f7a80f1c467d9fd8a.tar.gz
freebsd-ports-gnome-2652c4173c4935f65bb40e9f7a80f1c467d9fd8a.tar.zst
freebsd-ports-gnome-2652c4173c4935f65bb40e9f7a80f1c467d9fd8a.zip
Apply a vendor fix to mdb initialization crash.
Diffstat (limited to 'net')
-rw-r--r--net/openldap24-server/Makefile2
-rw-r--r--net/openldap24-server/files/patch-ITS-7363118
2 files changed, 119 insertions, 1 deletions
diff --git a/net/openldap24-server/Makefile b/net/openldap24-server/Makefile
index 64c4d90b1dae..2356a64331e6 100644
--- a/net/openldap24-server/Makefile
+++ b/net/openldap24-server/Makefile
@@ -43,7 +43,7 @@ BROKEN= incompatible OpenLDAP version: ${WANT_OPENLDAP_VER}
.endif
PORTREVISION_CLIENT= 1
-PORTREVISION_SERVER= 1
+PORTREVISION_SERVER= 2
OPENLDAP_SHLIB_MAJOR= 8
OPTIONS_DEFINE= SASL FETCH
diff --git a/net/openldap24-server/files/patch-ITS-7363 b/net/openldap24-server/files/patch-ITS-7363
new file mode 100644
index 000000000000..2396ac98f3a1
--- /dev/null
+++ b/net/openldap24-server/files/patch-ITS-7363
@@ -0,0 +1,118 @@
+diff --git libraries/libmdb/mdb.c libraries/libmdb/mdb.c
+index d1184d1..0e02685 100644
+--- libraries/libmdb/mdb.c
++++ libraries/libmdb/mdb.c
+@@ -61,9 +61,13 @@
+ #include <resolv.h> /* defines BYTE_ORDER on HPUX and Solaris */
+ #endif
+
++#if defined(__APPLE__) || defined (BSD)
++#define USE_POSIX_SEM
++#endif
++
+ #ifndef _WIN32
+ #include <pthread.h>
+-#ifdef __APPLE__
++#ifdef USE_POSIX_SEM
+ #include <semaphore.h>
+ #endif
+ #endif
+@@ -150,7 +154,7 @@
+ #define close(fd) CloseHandle(fd)
+ #define munmap(ptr,len) UnmapViewOfFile(ptr)
+ #else
+-#ifdef __APPLE__
++#ifdef USE_POSIX_SEM
+ #define LOCK_MUTEX_R(env) sem_wait((env)->me_rmutex)
+ #define UNLOCK_MUTEX_R(env) sem_post((env)->me_rmutex)
+ #define LOCK_MUTEX_W(env) sem_wait((env)->me_wmutex)
+@@ -175,7 +179,7 @@
+ /** Unlock the writer mutex.
+ */
+ #define UNLOCK_MUTEX_W(env) pthread_mutex_unlock(&(env)->me_txns->mti_wmutex)
+-#endif /* __APPLE__ */
++#endif /* USE_POSIX_SEM */
+
+ /** Get the error code for the last failed system function.
+ */
+@@ -200,7 +204,7 @@
+ #define GET_PAGESIZE(x) ((x) = sysconf(_SC_PAGE_SIZE))
+ #endif
+
+-#if defined(_WIN32) || defined(__APPLE__)
++#if defined(_WIN32) || defined(USE_POSIX_SEM)
+ #define MNAME_LEN 32
+ #else
+ #define MNAME_LEN (sizeof(pthread_mutex_t))
+@@ -464,7 +468,7 @@ typedef struct MDB_txbody {
+ uint32_t mtb_magic;
+ /** Version number of this lock file. Must be set to #MDB_VERSION. */
+ uint32_t mtb_version;
+-#if defined(_WIN32) || defined(__APPLE__)
++#if defined(_WIN32) || defined(USE_POSIX_SEM)
+ char mtb_rmname[MNAME_LEN];
+ #else
+ /** Mutex protecting access to this table.
+@@ -497,7 +501,7 @@ typedef struct MDB_txninfo {
+ char pad[(sizeof(MDB_txbody)+CACHELINE-1) & ~(CACHELINE-1)];
+ } mt1;
+ union {
+-#if defined(_WIN32) || defined(__APPLE__)
++#if defined(_WIN32) || defined(USE_POSIX_SEM)
+ char mt2_wmname[MNAME_LEN];
+ #define mti_wmname mt2.mt2_wmname
+ #else
+@@ -914,7 +918,7 @@ struct MDB_env {
+ HANDLE me_rmutex; /* Windows mutexes don't reside in shared mem */
+ HANDLE me_wmutex;
+ #endif
+-#ifdef __APPLE__
++#ifdef USE_POSIX_SEM
+ sem_t *me_rmutex; /* Apple doesn't support shared mutexes */
+ sem_t *me_wmutex;
+ #endif
+@@ -2644,7 +2648,7 @@ mdb_env_share_locks(MDB_env *env)
+ }
+ #endif
+ }
+-#if defined(_WIN32) || defined(__APPLE__)
++#if defined(_WIN32) || defined(USE_POSIX_SEM)
+ /*
+ * hash_64 - 64 bit Fowler/Noll/Vo-0 FNV-1a hash code
+ *
+@@ -2883,7 +2887,7 @@ mdb_env_setup_locks(MDB_env *env, char *lpath, int mode, int *excl)
+ goto fail;
+ }
+ #else /* _WIN32 */
+-#ifdef __APPLE__
++#ifdef USE_POSIX_SEM
+ struct stat stbuf;
+ struct {
+ dev_t dev;
+@@ -2920,7 +2924,7 @@ mdb_env_setup_locks(MDB_env *env, char *lpath, int mode, int *excl)
+ rc = ErrCode();
+ goto fail;
+ }
+-#else /* __APPLE__ */
++#else /* USE_POSIX_SEM */
+ pthread_mutexattr_t mattr;
+
+ pthread_mutexattr_init(&mattr);
+@@ -2930,7 +2934,7 @@ mdb_env_setup_locks(MDB_env *env, char *lpath, int mode, int *excl)
+ }
+ pthread_mutex_init(&env->me_txns->mti_mutex, &mattr);
+ pthread_mutex_init(&env->me_txns->mti_wmutex, &mattr);
+-#endif /* __APPLE__ */
++#endif /* USE_POSIX_SEM */
+ #endif /* _WIN32 */
+ env->me_txns->mti_version = MDB_VERSION;
+ env->me_txns->mti_magic = MDB_MAGIC;
+@@ -2965,7 +2969,7 @@ mdb_env_setup_locks(MDB_env *env, char *lpath, int mode, int *excl)
+ goto fail;
+ }
+ #endif
+-#ifdef __APPLE__
++#ifdef USE_POSIX_SEM
+ env->me_rmutex = sem_open(env->me_txns->mti_rmname, 0);
+ if (!env->me_rmutex) {
+ rc = ErrCode();