1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
autofs-5.0.5 - fix libxml2 workaround configure
From: Ian Kent <raven@themaw.net>
The configure logic related to work around the libxml2 library
reload issues is not quite right. The xml code is needed if
ldap is used so it is sufficient to require inclusion of the
workaround code if autofs is being built with LDAP support.
---
diff --git a/daemon/Makefile b/daemon/Makefile
index 371ec72..9e9d635 100644
--- a/daemon/Makefile
+++ b/daemon/Makefile
@@ -23,10 +23,8 @@ LDFLAGS += -rdynamic
LIBS = -ldl
ifeq ($(LDAP), 1)
- ifeq ($(SASL), 1)
CFLAGS += $(XML_FLAGS)
LIBS += $(XML_LIBS)
- endif
endif
all: automount
diff --git a/daemon/automount.c b/daemon/automount.c
index 979ecd6..7c44d4b 100644
--- a/daemon/automount.c
+++ b/daemon/automount.c
@@ -38,10 +38,12 @@
#include <sys/utsname.h>
#include "automount.h"
-#ifdef LIBXML2_WORKAROUND
+#if defined(LIBXML2_WORKAROUND) || defined(TIRPC_WORKAROUND)
#include <dlfcn.h>
+#ifdef WITH_LDAP
#include <libxml/parser.h>
#endif
+#endif
const char *program; /* Initialized with argv[0] */
const char *version = VERSION_STRING; /* Program version */
@@ -2110,7 +2112,7 @@ int main(int argc, char *argv[])
exit(1);
}
-#ifdef LIBXML2_WORKAROUND
+#if defined(WITH_LDAP) && defined(LIBXML2_WORKAROUND)
void *dh_xml2 = dlopen("libxml2.so", RTLD_NOW);
if (!dh_xml2)
dh_xml2 = dlopen("libxml2.so.2", RTLD_NOW);
@@ -2158,7 +2160,7 @@ int main(int argc, char *argv[])
if (dh_tirpc)
dlclose(dh_tirpc);
#endif
-#ifdef LIBXML2_WORKAROUND
+#if defined(WITH_LDAP) && defined( LIBXML2_WORKAROUND)
if (dh_xml2) {
xmlCleanupParser();
dlclose(dh_xml2);
|