Blob Blame History Raw
commit 793e9e81f78393cdf6dc1eb6473bf14f8d6973a3
Author: František Dvořák <valtri@civ.zcu.cz>
Date:   Wed Jul 2 16:57:30 2014 +0200

    Separate platform-specific parts of the gsoap-plugin helper header into library directory, update necessary build flags and packaging. This is the first part of the fix for issue #26.

diff --git a/org.glite.lbjp-common.gsoap-plugin/Makefile b/org.glite.lbjp-common.gsoap-plugin/Makefile
index ce3885a..a9f977c 100644
--- a/org.glite.lbjp-common.gsoap-plugin/Makefile
+++ b/org.glite.lbjp-common.gsoap-plugin/Makefile
@@ -132,7 +132,7 @@ endif
 EX_NOTHRLIBS:=-L${stagedir}${prefix}/${libdir} -lglite_security_gss_${nothrflavour}
 EX_THRLIBS:=-L${stagedir}${prefix}/${libdir} -lglite_security_gss_${thrflavour}
 EX_LIBS:=-L${stagedir}${prefix}/${libdir} -lglite_security_gss
-HDRS:=glite_gsplugin.h glite_gsplugin-int.h
+HDRS:=glite_gsplugin.h glite_gsplugin-int.h glite_gscompat.h
 EXAMPLES:=wscalc_clt_ex wscalc_srv_ex wscalc_srv_ex2
 TESTS:=test_cxx
 
@@ -233,7 +233,7 @@ endif
 
 all compile: \
 	${lib_LTLIBRARIES} \
-	all-libs-with-soap examples glite_gscompat.h pkgconfig
+	all-libs-with-soap examples glite_gsplatform.h pkgconfig
 
 check: check.cxx
 
@@ -324,9 +324,9 @@ sizeof_soap.o: sizeof_soap.c stdsoap2.h
 sizeof_soap: sizeof_soap.o
 	${LINK} $< -o $@
 
-glite_gscompat.h: glite_gscompat.h.in sizeof_soap
+glite_gsplatform.h: glite_gsplatform.h.in sizeof_soap
 	size=${shell ./sizeof_soap}; \
-	sed "s/@sizeof_struct_soap@/$$size/" ${top_srcdir2}/interface/glite_gscompat.h.in > $@
+	sed "s/@sizeof_struct_soap@/$$size/" ${top_srcdir2}/interface/glite_gsplatform.h.in > $@
 
 pkgconfig: ${PKG_CONFIG_FILES}
 
@@ -339,8 +339,9 @@ install:
 	-mkdir -p ${DESTDIR}${PREFIX}${prefix}/${libdir}/pkgconfig
 	-mkdir -p ${DESTDIR}${PREFIX}${prefix}/include/glite/security
 	-mkdir -p ${DESTDIR}${PREFIX}${prefix}/include/glite/security/
+	-mkdir -p ${DESTDIR}${PREFIX}${prefix}/${libdir}/glite-lb/include/glite/security/
 	cd ${top_srcdir2}/interface && ${INSTALL} -m 644 ${HDRS} ${DESTDIR}${PREFIX}${prefix}/include/glite/security/
-	${INSTALL} -m 644 glite_gscompat.h ${DESTDIR}${PREFIX}${prefix}/include/glite/security/
+	${INSTALL} -m 644 glite_gsplatform.h ${DESTDIR}${PREFIX}${prefix}/${libdir}/glite-lb/include/glite/security/
 	for v in ${gsoap_versions_noflavours}; do \
 		${MAKE} -C `echo $$v | tr -d .` -f ${top_srcdir_l2}/Makefile install-soaplib gsoap_version=$$v lang= PREFIX=${PREFIX} top_srcdir2=${top_srcdir_l2} || exit $?; \
 	done
@@ -362,7 +363,7 @@ clean:
 	rm -rvf *.c *.h *.xml *.nsmap *.o *.lo .libs ${EXAMPLES} ${TESTS}
 	rm -vf gsoap.stamp
 	rm -rvf CalcService.wsdl wscalc.xsd
-	rm -rvf glite_gscompat.h sizeof_soap
+	rm -rvf glite_gsplatform.h sizeof_soap
 	for v in ${gsoap_versions_noflavours} ${gsoap_versions_flavours}; do \
 		rm -rvf `echo $$v | tr -d .`; \
 	done
diff --git a/org.glite.lbjp-common.gsoap-plugin/interface/glite_gscompat.h b/org.glite.lbjp-common.gsoap-plugin/interface/glite_gscompat.h
new file mode 100644
index 0000000..9bdc9a0
--- /dev/null
+++ b/org.glite.lbjp-common.gsoap-plugin/interface/glite_gscompat.h
@@ -0,0 +1,111 @@
+/*
+Copyright (c) Members of the EGEE Collaboration. 2004-2010.
+See http://www.eu-egee.org/partners for details on the copyright holders.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+#ifndef GLITE_SECURITY_GSCOMPAT_H
+#define GLITE_SECURITY_GSCOMPAT_H
+
+#include <glite/security/glite_gsplatform.h>
+
+#ifndef GSOAP_VERSION
+  #error GSOAP_VERSION required
+#endif
+
+#ifndef GSOAP_VERSION_LETTER
+#define GSOAP_VERSION_LETTER '\0'
+#endif
+
+#if GSOAP_VERSION >= 20709 || GSOAP_VERSION == 20706 && GSOAP_VERSION_LETTER >= 'd'
+  #define GLITE_SECURITY_GSOAP_CHOICE_GET(CHOICE, ITEM, TYPENAME, TYPENO) ((CHOICE)->union_##TYPENAME.ITEM)
+  #define GLITE_SECURITY_GSOAP_CHOICE_SETTYPE(CHOICE, ITEM, NS, TYPENAME, TYPENO) ((CHOICE)->__union_##TYPENAME) = SOAP_UNION__##NS##__union_##TYPENAME##_##ITEM
+  #define GLITE_SECURITY_GSOAP_CHOICE_ISTYPE(CHOICE, ITEM, NS, TYPENAME, TYPENO) (((CHOICE)->__union_##TYPENAME) == SOAP_UNION__##NS##__union_##TYPENAME##_##ITEM)
+  /** 2.7.10 requires created dummy choice with type == 0 for empty optional choice */
+  #if GSOAP_VERSION >= 20710
+    #define GLITE_SECURITY_GSOAP_CHOICE_SETNULL(CHOICE, TYPENAME) ((CHOICE)->__union_##TYPENAME) = 0
+  #endif
+#elif GSOAP_VERSION >= 20706
+  #define GLITE_SECURITY_GSOAP_CHOICE_GET(CHOICE, ITEM, TYPENAME, TYPENO) ((CHOICE)->union_##TYPENO.ITEM)
+  #define GLITE_SECURITY_GSOAP_CHOICE_SETTYPE(CHOICE, ITEM, NS, TYPENAME, TYPENO) ((CHOICE)->__union_##TYPENO) = SOAP_UNION_##NS##__union_##TYPENO##_##ITEM
+  #define GLITE_SECURITY_GSOAP_CHOICE_ISTYPE(CHOICE, ITEM, NS, TYPENAME, TYPENO) (((CHOICE)->__union_##TYPENO) == SOAP_UNION_##NS##__union_##TYPENO##_##ITEM)
+#else
+  #define GLITE_SECURITY_GSOAP_CHOICE_GET(CHOICE, ITEM, TYPENAME, TYPENO) ((CHOICE)->ITEM)
+  #define GLITE_SECURITY_GSOAP_CHOICE_SETTYPE(CHOICE, ITEM, NS, TYPENAME, TYPENO)
+  #define GLITE_SECURITY_GSOAP_CHOICE_ISTYPE(CHOICE, ITEM, NS, TYPENAME, TYPENO) (((CHOICE)->ITEM) != NULL)
+#endif
+#define GLITE_SECURITY_GSOAP_CHOICE_SET(CHOICE, ITEM, NS, TYPENAME, TYPENO, VALUE) do { \
+	memset((CHOICE), 0, sizeof(*(CHOICE))); \
+	GLITE_SECURITY_GSOAP_CHOICE_SETTYPE(CHOICE, ITEM, NS, TYPENAME, TYPENO); \
+	GLITE_SECURITY_GSOAP_CHOICE_GET(CHOICE, ITEM, TYPENAME, TYPENO) = (VALUE); \
+} while(0)
+
+#if GSOAP_VERSION >= 20706
+  #define GLITE_SECURITY_GSOAP_REASON2(SOAP) ((SOAP)->fault->SOAP_ENV__Reason ? (SOAP)->fault->SOAP_ENV__Reason->SOAP_ENV__Text : "(no reason)")
+  #define GLITE_SECURITY_GSOAP_TRUE xsd__boolean__true_
+  #define GLITE_SECURITY_GSOAP_FALSE xsd__boolean__false_
+#else
+  #define GLITE_SECURITY_GSOAP_REASON2(SOAP) ((SOAP)->fault->SOAP_ENV__Reason)
+  #define GLITE_SECURITY_GSOAP_TRUE true_
+  #define GLITE_SECURITY_GSOAP_FALSE false_
+#endif
+
+#define GLITE_SECURITY_GSOAP_DETAIL(SOAP) ((SOAP)->version == 2 ? (SOAP)->fault->SOAP_ENV__Detail : (SOAP)->fault->detail)
+#define GLITE_SECURITY_GSOAP_REASON(SOAP) ((SOAP)->version == 2 ? GLITE_SECURITY_GSOAP_REASON2((SOAP)) : (SOAP)->fault->faultstring)
+
+#if GSOAP_VERSION >= 20709
+  #define GLITE_SECURITY_GSOAP_LIST_CREATE0(SOAP, LIST, SIZE, TYPE, N) do { \
+	if ((N) != 0) (LIST) = soap_malloc((SOAP), (N) * sizeof(TYPE)); \
+	else (LIST) = NULL; \
+	(SIZE) = (N); \
+} while (0)
+  #define GLITE_SECURITY_GSOAP_LIST_DESTROY0(SOAP, LIST, SIZE) do { \
+	if ((LIST) && (SIZE) != 0) soap_dealloc((SOAP), (LIST)); \
+	(LIST) = NULL; \
+} while (0)
+  #define GLITE_SECURITY_GSOAP_LIST_GET(LIST, INDEX) (&(LIST)[INDEX])
+  #define GLITE_SECURITY_GSOAP_LIST_TYPE(NS, LIST) struct NS##__##LIST *
+#else
+  #define GLITE_SECURITY_GSOAP_LIST_CREATE0(SOAP, LIST, SIZE, TYPE, N) do { \
+	int ilist; \
+	\
+	if ((N) != 0) (LIST) = soap_malloc((SOAP), (N) * sizeof(void *)); \
+	else (LIST) = NULL; \
+	(SIZE) = (N); \
+	for (ilist = 0; ilist < (N); ilist++) { \
+		(LIST)[ilist] = soap_malloc((SOAP), sizeof(TYPE)); \
+	} \
+} while (0)
+  #define GLITE_SECURITY_GSOAP_LIST_DESTROY0(SOAP, LIST, SIZE) do { \
+	int ilist; \
+	\
+	for (ilist = 0; ilist < (SIZE); ilist++) soap_dealloc((SOAP), (LIST)[ilist]); \
+	if ((LIST) && (SIZE) != 0) soap_dealloc((SOAP), (LIST)); \
+	(LIST) = NULL; \
+} while (0)
+  #define GLITE_SECURITY_GSOAP_LIST_GET(LIST, INDEX) ((LIST)[INDEX])
+  #define GLITE_SECURITY_GSOAP_LIST_TYPE(NS, LIST) struct NS##__##LIST **
+#endif
+#define GLITE_SECURITY_GSOAP_LIST_CREATE(SOAP, CONTAINER, LIST, TYPE, N) GLITE_SECURITY_GSOAP_LIST_CREATE0(SOAP, (CONTAINER)->LIST, (CONTAINER)->__size##LIST, TYPE, N)
+#define GLITE_SECURITY_GSOAP_LIST_DESTROY(SOAP, CONTAINER, LIST) GLITE_SECURITY_GSOAP_LIST_DESTROY0(SOAP, (CONTAINER)->LIST, (CONTAINER)->__size##LIST)
+
+#if GSOAP_VERSION >= 20710
+  #define GLITE_SECURITY_GSOAP_SET_FIXED(soap,attr,value) \
+	(attr) = soap_strdup((soap),(value))
+#else
+/* XXX unsupported */
+  #define GLITE_SECURITY_GSOAP_SET_FIXED(soap,attr,value)
+#endif
+
+#endif
diff --git a/org.glite.lbjp-common.gsoap-plugin/interface/glite_gscompat.h.in b/org.glite.lbjp-common.gsoap-plugin/interface/glite_gscompat.h.in
deleted file mode 100644
index 07c03fc..0000000
--- a/org.glite.lbjp-common.gsoap-plugin/interface/glite_gscompat.h.in
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
-Copyright (c) Members of the EGEE Collaboration. 2004-2010.
-See http://www.eu-egee.org/partners for details on the copyright holders.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-#ifndef GLITE_SECURITY_GSCOMPAT_H
-#define GLITE_SECURITY_GSCOMPAT_H
-
-#ident "$Header: "
-
-/*
- * for basic sanity check
- *
- * size of the soap structure can differs with compilation flags
- * or with C/C++ compilers
- */
-#define GSOAP_SIZEOF_STRUCT_SOAP @sizeof_struct_soap@
-
-#ifndef GSOAP_VERSION
-  #error GSOAP_VERSION required
-#endif
-
-#ifndef GSOAP_VERSION_LETTER
-#define GSOAP_VERSION_LETTER '\0'
-#endif
-
-#if GSOAP_VERSION >= 20709 || GSOAP_VERSION == 20706 && GSOAP_VERSION_LETTER >= 'd'
-  #define GLITE_SECURITY_GSOAP_CHOICE_GET(CHOICE, ITEM, TYPENAME, TYPENO) ((CHOICE)->union_##TYPENAME.ITEM)
-  #define GLITE_SECURITY_GSOAP_CHOICE_SETTYPE(CHOICE, ITEM, NS, TYPENAME, TYPENO) ((CHOICE)->__union_##TYPENAME) = SOAP_UNION__##NS##__union_##TYPENAME##_##ITEM
-  #define GLITE_SECURITY_GSOAP_CHOICE_ISTYPE(CHOICE, ITEM, NS, TYPENAME, TYPENO) (((CHOICE)->__union_##TYPENAME) == SOAP_UNION__##NS##__union_##TYPENAME##_##ITEM)
-  /** 2.7.10 requires created dummy choice with type == 0 for empty optional choice */
-  #if GSOAP_VERSION >= 20710
-    #define GLITE_SECURITY_GSOAP_CHOICE_SETNULL(CHOICE, TYPENAME) ((CHOICE)->__union_##TYPENAME) = 0
-  #endif
-#elif GSOAP_VERSION >= 20706
-  #define GLITE_SECURITY_GSOAP_CHOICE_GET(CHOICE, ITEM, TYPENAME, TYPENO) ((CHOICE)->union_##TYPENO.ITEM)
-  #define GLITE_SECURITY_GSOAP_CHOICE_SETTYPE(CHOICE, ITEM, NS, TYPENAME, TYPENO) ((CHOICE)->__union_##TYPENO) = SOAP_UNION_##NS##__union_##TYPENO##_##ITEM
-  #define GLITE_SECURITY_GSOAP_CHOICE_ISTYPE(CHOICE, ITEM, NS, TYPENAME, TYPENO) (((CHOICE)->__union_##TYPENO) == SOAP_UNION_##NS##__union_##TYPENO##_##ITEM)
-#else
-  #define GLITE_SECURITY_GSOAP_CHOICE_GET(CHOICE, ITEM, TYPENAME, TYPENO) ((CHOICE)->ITEM)
-  #define GLITE_SECURITY_GSOAP_CHOICE_SETTYPE(CHOICE, ITEM, NS, TYPENAME, TYPENO)
-  #define GLITE_SECURITY_GSOAP_CHOICE_ISTYPE(CHOICE, ITEM, NS, TYPENAME, TYPENO) (((CHOICE)->ITEM) != NULL)
-#endif
-#define GLITE_SECURITY_GSOAP_CHOICE_SET(CHOICE, ITEM, NS, TYPENAME, TYPENO, VALUE) do { \
-	memset((CHOICE), 0, sizeof(*(CHOICE))); \
-	GLITE_SECURITY_GSOAP_CHOICE_SETTYPE(CHOICE, ITEM, NS, TYPENAME, TYPENO); \
-	GLITE_SECURITY_GSOAP_CHOICE_GET(CHOICE, ITEM, TYPENAME, TYPENO) = (VALUE); \
-} while(0)
-
-#if GSOAP_VERSION >= 20706
-  #define GLITE_SECURITY_GSOAP_REASON2(SOAP) ((SOAP)->fault->SOAP_ENV__Reason ? (SOAP)->fault->SOAP_ENV__Reason->SOAP_ENV__Text : "(no reason)")
-  #define GLITE_SECURITY_GSOAP_TRUE xsd__boolean__true_
-  #define GLITE_SECURITY_GSOAP_FALSE xsd__boolean__false_
-#else
-  #define GLITE_SECURITY_GSOAP_REASON2(SOAP) ((SOAP)->fault->SOAP_ENV__Reason)
-  #define GLITE_SECURITY_GSOAP_TRUE true_
-  #define GLITE_SECURITY_GSOAP_FALSE false_
-#endif
-
-#define GLITE_SECURITY_GSOAP_DETAIL(SOAP) ((SOAP)->version == 2 ? (SOAP)->fault->SOAP_ENV__Detail : (SOAP)->fault->detail)
-#define GLITE_SECURITY_GSOAP_REASON(SOAP) ((SOAP)->version == 2 ? GLITE_SECURITY_GSOAP_REASON2((SOAP)) : (SOAP)->fault->faultstring)
-
-#if GSOAP_VERSION >= 20709
-  #define GLITE_SECURITY_GSOAP_LIST_CREATE0(SOAP, LIST, SIZE, TYPE, N) do { \
-	if ((N) != 0) (LIST) = soap_malloc((SOAP), (N) * sizeof(TYPE)); \
-	else (LIST) = NULL; \
-	(SIZE) = (N); \
-} while (0)
-  #define GLITE_SECURITY_GSOAP_LIST_DESTROY0(SOAP, LIST, SIZE) do { \
-	if ((LIST) && (SIZE) != 0) soap_dealloc((SOAP), (LIST)); \
-	(LIST) = NULL; \
-} while (0)
-  #define GLITE_SECURITY_GSOAP_LIST_GET(LIST, INDEX) (&(LIST)[INDEX])
-  #define GLITE_SECURITY_GSOAP_LIST_TYPE(NS, LIST) struct NS##__##LIST *
-#else
-  #define GLITE_SECURITY_GSOAP_LIST_CREATE0(SOAP, LIST, SIZE, TYPE, N) do { \
-	int ilist; \
-	\
-	if ((N) != 0) (LIST) = soap_malloc((SOAP), (N) * sizeof(void *)); \
-	else (LIST) = NULL; \
-	(SIZE) = (N); \
-	for (ilist = 0; ilist < (N); ilist++) { \
-		(LIST)[ilist] = soap_malloc((SOAP), sizeof(TYPE)); \
-	} \
-} while (0)
-  #define GLITE_SECURITY_GSOAP_LIST_DESTROY0(SOAP, LIST, SIZE) do { \
-	int ilist; \
-	\
-	for (ilist = 0; ilist < (SIZE); ilist++) soap_dealloc((SOAP), (LIST)[ilist]); \
-	if ((LIST) && (SIZE) != 0) soap_dealloc((SOAP), (LIST)); \
-	(LIST) = NULL; \
-} while (0)
-  #define GLITE_SECURITY_GSOAP_LIST_GET(LIST, INDEX) ((LIST)[INDEX])
-  #define GLITE_SECURITY_GSOAP_LIST_TYPE(NS, LIST) struct NS##__##LIST **
-#endif
-#define GLITE_SECURITY_GSOAP_LIST_CREATE(SOAP, CONTAINER, LIST, TYPE, N) GLITE_SECURITY_GSOAP_LIST_CREATE0(SOAP, (CONTAINER)->LIST, (CONTAINER)->__size##LIST, TYPE, N)
-#define GLITE_SECURITY_GSOAP_LIST_DESTROY(SOAP, CONTAINER, LIST) GLITE_SECURITY_GSOAP_LIST_DESTROY0(SOAP, (CONTAINER)->LIST, (CONTAINER)->__size##LIST)
-
-#if GSOAP_VERSION >= 20710
-  #define GLITE_SECURITY_GSOAP_SET_FIXED(soap,attr,value) \
-	(attr) = soap_strdup((soap),(value))
-#else
-/* XXX unsupported */
-  #define GLITE_SECURITY_GSOAP_SET_FIXED(soap,attr,value)
-#endif
-
-#endif
diff --git a/org.glite.lbjp-common.gsoap-plugin/interface/glite_gsplatform.h.in b/org.glite.lbjp-common.gsoap-plugin/interface/glite_gsplatform.h.in
new file mode 100644
index 0000000..9f6e03a
--- /dev/null
+++ b/org.glite.lbjp-common.gsoap-plugin/interface/glite_gsplatform.h.in
@@ -0,0 +1,29 @@
+/*
+Copyright (c) Members of the EGEE Collaboration. 2004-2010.
+See http://www.eu-egee.org/partners for details on the copyright holders.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+#ifndef GLITE_SECURITY_GSPLATFORM_H
+#define GLITE_SECURITY_GSPLATFORM_H
+
+/*
+ * for basic sanity check
+ *
+ * size of the soap structure can differs with compilation flags
+ * or with C/C++ compilers
+ */
+#define GSOAP_SIZEOF_STRUCT_SOAP @sizeof_struct_soap@
+
+#endif
diff --git a/org.glite.lbjp-common.gsoap-plugin/project/debian.libglite-lbjp-common-gsoap-plugin-dev.dirs b/org.glite.lbjp-common.gsoap-plugin/project/debian.libglite-lbjp-common-gsoap-plugin-dev.dirs
new file mode 100644
index 0000000..479bd8e
--- /dev/null
+++ b/org.glite.lbjp-common.gsoap-plugin/project/debian.libglite-lbjp-common-gsoap-plugin-dev.dirs
@@ -0,0 +1,4 @@
+usr/lib/glite-lb
+usr/lib/glite-lb/include
+usr/lib/glite-lb/include/glite
+usr/lib/glite-lb/include/glite/security
diff --git a/org.glite.lbjp-common.gsoap-plugin/project/debian.libglite-lbjp-common-gsoap-plugin-dev.install b/org.glite.lbjp-common.gsoap-plugin/project/debian.libglite-lbjp-common-gsoap-plugin-dev.install
index fdd23fd..84b818a 100644
--- a/org.glite.lbjp-common.gsoap-plugin/project/debian.libglite-lbjp-common-gsoap-plugin-dev.install
+++ b/org.glite.lbjp-common.gsoap-plugin/project/debian.libglite-lbjp-common-gsoap-plugin-dev.install
@@ -1,4 +1,5 @@
 usr/include/glite/security/*.h
+usr/lib/glite-lb/include/glite/security/*.h
 usr/lib/lib*.a
 usr/lib/lib*.so
 usr/lib/pkgconfig/*.pc
diff --git a/org.glite.lbjp-common.gsoap-plugin/project/glite-lbjp-common-gsoap-plugin.spec b/org.glite.lbjp-common.gsoap-plugin/project/glite-lbjp-common-gsoap-plugin.spec
index 693eaff..30dc661 100644
--- a/org.glite.lbjp-common.gsoap-plugin/project/glite-lbjp-common-gsoap-plugin.spec
+++ b/org.glite.lbjp-common.gsoap-plugin/project/glite-lbjp-common-gsoap-plugin.spec
@@ -85,9 +85,14 @@ rm -rf %{buildroot}
 %files devel
 %defattr(-,root,root)
 %doc examples
+%dir %{_libdir}/glite-lb/
+%dir %{_libdir}/glite-lb/include/
+%dir %{_libdir}/glite-lb/include/glite/
+%dir %{_libdir}/glite-lb/include/glite/security/
 %{_includedir}/glite/security/glite_gscompat.h
 %{_includedir}/glite/security/glite_gsplugin.h
 %{_includedir}/glite/security/glite_gsplugin-int.h
+%{_libdir}/glite-lb/include/glite/security/*.h
 %{_libdir}/libglite_security_gsoap_plugin_*.so
 %{_libdir}/pkgconfig/*.pc
 
diff --git a/org.glite.lbjp-common.gsoap-plugin/project/gsoap-plugin++.pc.in b/org.glite.lbjp-common.gsoap-plugin/project/gsoap-plugin++.pc.in
index cf2e8c5..4a93879 100644
--- a/org.glite.lbjp-common.gsoap-plugin/project/gsoap-plugin++.pc.in
+++ b/org.glite.lbjp-common.gsoap-plugin/project/gsoap-plugin++.pc.in
@@ -8,4 +8,4 @@ Description: Plugin for gSoap to use glite-security-gss as the communication lay
 Version: @VERSION@
 Requires: gsoap++ glite-security-gss
 Libs: -L${libdir} -lglite_security_gsoap_plugin_@LIB_SUFFIX@_cxx -lglite_security_gss
-Cflags: -I${includedir}
+Cflags: -I${includedir} -I${libdir}/glite-lb/include
diff --git a/org.glite.lbjp-common.gsoap-plugin/project/gsoap-plugin.pc.in b/org.glite.lbjp-common.gsoap-plugin/project/gsoap-plugin.pc.in
index 55dd6ea..e3c7e4f 100644
--- a/org.glite.lbjp-common.gsoap-plugin/project/gsoap-plugin.pc.in
+++ b/org.glite.lbjp-common.gsoap-plugin/project/gsoap-plugin.pc.in
@@ -8,4 +8,4 @@ Description: Plugin for gSoap to use glite-security-gss as the communication lay
 Version: @VERSION@
 Requires: gsoap glite-security-gss
 Libs: -L${libdir} -lglite_security_gsoap_plugin_@LIB_SUFFIX@_c -lglite_security_gss
-Cflags: -I${includedir}
+Cflags: -I${includedir} -I${libdir}/glite-lb/include