|
Ian Kent |
a3ae01 |
diff -up autofs-5.0.2/configure.libxml2-workaround autofs-5.0.2/configure
|
|
Ian Kent |
a3ae01 |
--- autofs-5.0.2/configure.libxml2-workaround 2007-09-24 14:25:06.000000000 +0800
|
|
Ian Kent |
a3ae01 |
+++ autofs-5.0.2/configure 2007-09-24 14:26:09.000000000 +0800
|
|
Ian Kent |
a3ae01 |
@@ -2498,6 +2498,23 @@ echo "${ECHO_T}yes" >&6; }
|
|
Ian Kent |
a3ae01 |
HAVE_LIBXML=1
|
|
Ian Kent |
a3ae01 |
XML_LIBS=`$XML_CONFIG --libs`
|
|
Ian Kent |
a3ae01 |
XML_FLAGS=`$XML_CONFIG --cflags`
|
|
Ian Kent |
a3ae01 |
+ XML_VER=`$XML_CONFIG --version`
|
|
Ian Kent |
a3ae01 |
+ XML_MAJOR=`echo $XML_VER|cut -d\. -f1`
|
|
Ian Kent |
a3ae01 |
+ if test $XML_MAJOR -le 2
|
|
Ian Kent |
a3ae01 |
+ then
|
|
Ian Kent |
a3ae01 |
+ XML_MINOR=`echo $XML_VER|cut -d\. -f2`
|
|
Ian Kent |
a3ae01 |
+ if test $XML_MINOR -le 6
|
|
Ian Kent |
a3ae01 |
+ then
|
|
Ian Kent |
a3ae01 |
+ XML_REV=`echo $XML_VER|cut -d\. -f3`
|
|
Ian Kent |
a3ae01 |
+ if test $XML_REV -le 99; then
|
|
Ian Kent |
a3ae01 |
+
|
|
Ian Kent |
a3ae01 |
+cat >>confdefs.h <<\_ACEOF
|
|
Ian Kent |
a3ae01 |
+#define LIBXML2_WORKAROUND 1
|
|
Ian Kent |
a3ae01 |
+_ACEOF
|
|
Ian Kent |
a3ae01 |
+
|
|
Ian Kent |
a3ae01 |
+ fi
|
|
Ian Kent |
a3ae01 |
+ fi
|
|
Ian Kent |
a3ae01 |
+ fi
|
|
Ian Kent |
a3ae01 |
fi
|
|
Ian Kent |
a3ae01 |
|
|
Ian Kent |
a3ae01 |
#
|
|
Ian Kent |
a3ae01 |
diff -up autofs-5.0.2/include/config.h.in.libxml2-workaround autofs-5.0.2/include/config.h.in
|
|
Ian Kent |
a3ae01 |
--- autofs-5.0.2/include/config.h.in.libxml2-workaround 2007-09-24 14:25:06.000000000 +0800
|
|
Ian Kent |
a3ae01 |
+++ autofs-5.0.2/include/config.h.in 2007-09-24 14:26:09.000000000 +0800
|
|
Ian Kent |
a3ae01 |
@@ -60,6 +60,9 @@
|
|
Ian Kent |
a3ae01 |
/* Define to 1 if you have the <unistd.h> header file. */
|
|
Ian Kent |
a3ae01 |
#undef HAVE_UNISTD_H
|
|
Ian Kent |
a3ae01 |
|
|
Ian Kent |
a3ae01 |
+/* Use libxml2 tsd usage workaround */
|
|
Ian Kent |
a3ae01 |
+#undef LIBXML2_WORKAROUND
|
|
Ian Kent |
a3ae01 |
+
|
|
Ian Kent |
a3ae01 |
/* Define to the address where bug reports for this package should be sent. */
|
|
Ian Kent |
a3ae01 |
#undef PACKAGE_BUGREPORT
|
|
Ian Kent |
a3ae01 |
|
|
Ian Kent |
a3ae01 |
diff -up autofs-5.0.2/aclocal.m4.libxml2-workaround autofs-5.0.2/aclocal.m4
|
|
Ian Kent |
a3ae01 |
--- autofs-5.0.2/aclocal.m4.libxml2-workaround 2007-09-24 14:25:06.000000000 +0800
|
|
Ian Kent |
a3ae01 |
+++ autofs-5.0.2/aclocal.m4 2007-09-24 14:26:09.000000000 +0800
|
|
Ian Kent |
a3ae01 |
@@ -167,6 +167,19 @@ else
|
|
Ian Kent |
a3ae01 |
HAVE_LIBXML=1
|
|
Ian Kent |
a3ae01 |
XML_LIBS=`$XML_CONFIG --libs`
|
|
Ian Kent |
a3ae01 |
XML_FLAGS=`$XML_CONFIG --cflags`
|
|
Ian Kent |
a3ae01 |
+ XML_VER=`$XML_CONFIG --version`
|
|
Ian Kent |
a3ae01 |
+ XML_MAJOR=`echo $XML_VER|cut -d\. -f1`
|
|
Ian Kent |
a3ae01 |
+ if test $XML_MAJOR -le 2
|
|
Ian Kent |
a3ae01 |
+ then
|
|
Ian Kent |
a3ae01 |
+ XML_MINOR=`echo $XML_VER|cut -d\. -f2`
|
|
Ian Kent |
a3ae01 |
+ if test $XML_MINOR -le 6
|
|
Ian Kent |
a3ae01 |
+ then
|
|
Ian Kent |
a3ae01 |
+ XML_REV=`echo $XML_VER|cut -d\. -f3`
|
|
Ian Kent |
a3ae01 |
+ if test $XML_REV -le 99; then
|
|
Ian Kent |
a3ae01 |
+ AC_DEFINE(LIBXML2_WORKAROUND,1, [Use libxml2 tsd usage workaround])
|
|
Ian Kent |
a3ae01 |
+ fi
|
|
Ian Kent |
a3ae01 |
+ fi
|
|
Ian Kent |
a3ae01 |
+ fi
|
|
Ian Kent |
a3ae01 |
fi])
|
|
Ian Kent |
a3ae01 |
|
|
Ian Kent |
a3ae01 |
dnl --------------------------------------------------------------------------
|
|
Ian Kent |
a3ae01 |
diff -up autofs-5.0.2/modules/lookup_ldap.c.libxml2-workaround autofs-5.0.2/modules/lookup_ldap.c
|
|
Ian Kent |
a3ae01 |
--- autofs-5.0.2/modules/lookup_ldap.c.libxml2-workaround 2007-09-24 14:25:06.000000000 +0800
|
|
Ian Kent |
a3ae01 |
+++ autofs-5.0.2/modules/lookup_ldap.c 2007-09-24 14:26:09.000000000 +0800
|
|
Ian Kent |
a3ae01 |
@@ -1929,9 +1929,6 @@ int lookup_done(void *context)
|
|
Ian Kent |
a3ae01 |
struct lookup_context *ctxt = (struct lookup_context *) context;
|
|
Ian Kent |
a3ae01 |
int rv = close_parse(ctxt->parse);
|
|
Ian Kent |
a3ae01 |
#ifdef WITH_SASL
|
|
Ian Kent |
a3ae01 |
- EVP_cleanup();
|
|
Ian Kent |
a3ae01 |
- ERR_free_strings();
|
|
Ian Kent |
a3ae01 |
-
|
|
Ian Kent |
a3ae01 |
autofs_sasl_done(ctxt);
|
|
Ian Kent |
a3ae01 |
#endif
|
|
Ian Kent |
a3ae01 |
free_context(ctxt);
|
|
Ian Kent |
a3ae01 |
diff -up autofs-5.0.2/daemon/automount.c.libxml2-workaround autofs-5.0.2/daemon/automount.c
|
|
Ian Kent |
a3ae01 |
--- autofs-5.0.2/daemon/automount.c.libxml2-workaround 2007-09-24 14:25:06.000000000 +0800
|
|
Ian Kent |
a3ae01 |
+++ autofs-5.0.2/daemon/automount.c 2007-09-24 14:28:56.000000000 +0800
|
|
Ian Kent |
a3ae01 |
@@ -40,6 +40,9 @@
|
|
Ian Kent |
a3ae01 |
#include <sys/utsname.h>
|
|
Ian Kent |
a3ae01 |
|
|
Ian Kent |
a3ae01 |
#include "automount.h"
|
|
Ian Kent |
a3ae01 |
+#ifdef LIBXML2_WORKAROUND
|
|
Ian Kent |
a3ae01 |
+#include <dlfcn.h>
|
|
Ian Kent |
a3ae01 |
+#endif
|
|
Ian Kent |
a3ae01 |
|
|
Ian Kent |
a3ae01 |
const char *program; /* Initialized with argv[0] */
|
|
Ian Kent |
a3ae01 |
const char *version = VERSION_STRING; /* Program version */
|
|
Ian Kent |
a3ae01 |
@@ -1266,22 +1269,6 @@ void *handle_mounts(void *arg)
|
|
Ian Kent |
a3ae01 |
}
|
|
Ian Kent |
a3ae01 |
|
|
Ian Kent |
a3ae01 |
pthread_cleanup_pop(1);
|
|
Ian Kent |
a3ae01 |
-
|
|
Ian Kent |
a3ae01 |
- /*
|
|
Ian Kent |
a3ae01 |
- * A cowboy .. me!
|
|
Ian Kent |
a3ae01 |
- * That noise yu ear aint spuurs sonny!!
|
|
Ian Kent |
a3ae01 |
- *
|
|
Ian Kent |
a3ae01 |
- * The libkrb5support destructor called indirectly through
|
|
Ian Kent |
a3ae01 |
- * libgssapi_krb5 which is used bt libkrb5 (somehow) must run
|
|
Ian Kent |
a3ae01 |
- * to completion before the last thread using it exits so
|
|
Ian Kent |
a3ae01 |
- * that it's per thread data keys are deleted or we get a
|
|
Ian Kent |
a3ae01 |
- * little segfault at exit. So much for dlclose being
|
|
Ian Kent |
a3ae01 |
- * syncronous.
|
|
Ian Kent |
a3ae01 |
- *
|
|
Ian Kent |
a3ae01 |
- * So, the solution is a recipe for disaster.
|
|
Ian Kent |
a3ae01 |
- * Hope we don't get a really busy system!
|
|
Ian Kent |
a3ae01 |
- */
|
|
Ian Kent |
a3ae01 |
- /*sleep(1);*/
|
|
Ian Kent |
a3ae01 |
sched_yield();
|
|
Ian Kent |
a3ae01 |
|
|
Ian Kent |
a3ae01 |
return NULL;
|
|
Ian Kent |
a3ae01 |
@@ -1681,6 +1668,11 @@ int main(int argc, char *argv[])
|
|
Ian Kent |
a3ae01 |
close(start_pipefd[1]);
|
|
Ian Kent |
a3ae01 |
exit(1);
|
|
Ian Kent |
a3ae01 |
}
|
|
Ian Kent |
a3ae01 |
+
|
|
Ian Kent |
a3ae01 |
+#ifdef LIBXML2_WORKAROUND
|
|
Ian Kent |
a3ae01 |
+ void *dh = dlopen("libxml2.so", RTLD_NOW);
|
|
Ian Kent |
a3ae01 |
+#endif
|
|
Ian Kent |
a3ae01 |
+
|
|
Ian Kent |
a3ae01 |
if (!master_read_master(master_list, age, 0)) {
|
|
Ian Kent |
a3ae01 |
master_kill(master_list);
|
|
Ian Kent |
a3ae01 |
*pst_stat = 3;
|
|
Ian Kent |
a3ae01 |
@@ -1702,5 +1694,9 @@ int main(int argc, char *argv[])
|
|
Ian Kent |
a3ae01 |
}
|
|
Ian Kent |
a3ae01 |
closelog();
|
|
Ian Kent |
a3ae01 |
|
|
Ian Kent |
a3ae01 |
+#ifdef LIBXML2_WORKAROUND
|
|
Ian Kent |
a3ae01 |
+ if (dh)
|
|
Ian Kent |
a3ae01 |
+ dlclose(dh);
|
|
Ian Kent |
a3ae01 |
+#endif
|
|
Ian Kent |
a3ae01 |
exit(0);
|
|
Ian Kent |
a3ae01 |
}
|