[Libreoffice-commits] core.git: 4 commits - bin/lo-all-static-libs external/libxmlsec external/nss ios/experimental postprocess/Rdb_services.mk RepositoryExternal.mk solenv/bin xmlsecurity/Module_xmlsecurity.mk

Tor Lillqvist tml at collabora.com
Tue Aug 12 07:24:55 PDT 2014


 RepositoryExternal.mk                                                        |    2 
 bin/lo-all-static-libs                                                       |   13 
 external/libxmlsec/ExternalProject_xmlsec.mk                                 |    2 
 external/libxmlsec/Module_libxmlsec.mk                                       |    2 
 external/nss/UnpackedTarball_nss.mk                                          |    1 
 external/nss/nss-chromium-nss-static.patch                                   |  487 ++++++++++
 ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj |  168 +++
 postprocess/Rdb_services.mk                                                  |    3 
 solenv/bin/native-code.py                                                    |    1 
 xmlsecurity/Module_xmlsecurity.mk                                            |    2 
 10 files changed, 676 insertions(+), 5 deletions(-)

New commits:
commit 296e0a20ca60139ec9f59096f8330a0006804ca0
Author: Tor Lillqvist <tml at collabora.com>
Date:   Tue Aug 12 16:56:17 2014 +0300

    Some objects in NSS are not in any of the archives
    
    Change-Id: I3df4c45d160687f22015f3b3d3c87e655e5cd7d7

diff --git a/bin/lo-all-static-libs b/bin/lo-all-static-libs
index 7532164..1d93afe 100755
--- a/bin/lo-all-static-libs
+++ b/bin/lo-all-static-libs
@@ -44,6 +44,14 @@ IOS)
     oslibs="$WORKDIR/UnpackedTarball/icu/source/stubdata/*.a"
     oslibs="$oslibs $WORKDIR/UnpackedTarball/xmlsec/src/.libs/*.a"
     oslibs="$oslibs $WORKDIR/UnpackedTarball/xmlsec/src/nss/.libs/*.a"
+
+    # The NSS dylibs (which we don't build for iOS) are constructed
+    # from a bunch of static archives and some freestanding object
+    # files (that are not present in any of the static archives). We
+    # need the latter too, so collect them here into an archive of
+    # their own.
+    ar cr $WORKDIR/UnpackedTarball/nss/nss/lib/ckfw/builtins/out/libLOtemp.a $WORKDIR/UnpackedTarball/nss/nss/lib/ckfw/builtins/out/*.o
+
     # Unfortunately NSS's build mechanism copies each static archive
     # it constructs to another place, but we don't bother filtering
     # out duplicates, it shouldn't hurt.
commit d308eda13dc2168d166e51ec55e1655fb546f3f1
Author: Tor Lillqvist <tml at collabora.com>
Date:   Tue Aug 12 16:55:13 2014 +0300

    Use Chromium's patch to build NSS statically for iOS
    
    Change-Id: Ica2cf641bc54f6e924b759cd4cf96dd96347c53b

diff --git a/external/nss/UnpackedTarball_nss.mk b/external/nss/UnpackedTarball_nss.mk
index 4e14e35..0ca3de2 100644
--- a/external/nss/UnpackedTarball_nss.mk
+++ b/external/nss/UnpackedTarball_nss.mk
@@ -25,6 +25,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,nss,\
     external/nss/nspr-build-config.patch \
     external/nss/ubsan.patch.0 \
     $(if $(filter IOS,$(OS)), \
+        external/nss/nss-chromium-nss-static.patch \
         external/nss/nss-ios.patch) \
 ))
 
diff --git a/external/nss/nss-chromium-nss-static.patch b/external/nss/nss-chromium-nss-static.patch
new file mode 100644
index 0000000..9d7a4e4
--- /dev/null
+++ b/external/nss/nss-chromium-nss-static.patch
@@ -0,0 +1,487 @@
+Based on http://src.chromium.org/viewvc/chrome/trunk/deps/third_party/nss/patches/nss-static.patch
+
+--- a/a/nss/lib/certhigh/certvfy.c    Tue May 28 23:37:46 2013 +0200
++++ a/a/nss/lib/certhigh/certvfy.c    Fri May 31 17:44:06 2013 -0700
+@@ -13,9 +13,11 @@
+ #include "certdb.h"
+ #include "certi.h"
+ #include "cryptohi.h"
++#ifndef NSS_DISABLE_LIBPKIX
+ #include "pkix.h"
+ /*#include "pkix_sample_modules.h" */
+ #include "pkix_pl_cert.h"
++#endif  /* NSS_DISABLE_LIBPKIX */
+ 
+ 
+ #include "nsspki.h"
+@@ -24,6 +26,47 @@
+ #include "pki3hack.h"
+ #include "base.h"
+ 
++#ifdef NSS_DISABLE_LIBPKIX
++SECStatus
++cert_VerifyCertChainPkix(
++    CERTCertificate *cert,
++    PRBool           checkSig,
++    SECCertUsage     requiredUsage,
++    PRTime           time,
++    void            *wincx,
++    CERTVerifyLog   *log,
++    PRBool          *pSigerror,
++    PRBool          *pRevoked)
++{
++    PORT_SetError(PR_NOT_IMPLEMENTED_ERROR);
++    return SECFailure;
++}
++
++SECStatus
++CERT_SetUsePKIXForValidation(PRBool enable)
++{
++    PORT_SetError(PR_NOT_IMPLEMENTED_ERROR);
++    return SECFailure;
++}
++
++PRBool
++CERT_GetUsePKIXForValidation()
++{
++    return PR_FALSE;
++}
++
++SECStatus CERT_PKIXVerifyCert(
++    CERTCertificate *cert,
++    SECCertificateUsage usages,
++    CERTValInParam *paramsIn,
++    CERTValOutParam *paramsOut,
++    void *wincx)
++{
++    PORT_SetError(PR_NOT_IMPLEMENTED_ERROR);
++    return SECFailure;
++}
++#endif  /* NSS_DISABLE_LIBPKIX */
++
+ /*
+  * Check the validity times of a certificate
+  */
+--- a/a/nss/lib/ckfw/nssck.api        Tue May 28 23:37:46 2013 +0200
++++ a/a/nss/lib/ckfw/nssck.api        Fri May 31 17:44:06 2013 -0700
+@@ -1752,7 +1752,7 @@
+ }
+ #endif /* DECLARE_STRICT_CRYPTOKI_NAMES */
+ 
+-static CK_RV CK_ENTRY
++CK_RV CK_ENTRY
+ __ADJOIN(MODULE_NAME,C_GetFunctionList)
+ (
+   CK_FUNCTION_LIST_PTR_PTR ppFunctionList
+@@ -1830,7 +1830,7 @@
+ __ADJOIN(MODULE_NAME,C_WaitForSlotEvent)
+ };
+ 
+-static CK_RV CK_ENTRY
++CK_RV CK_ENTRY
+ __ADJOIN(MODULE_NAME,C_GetFunctionList)
+ (
+   CK_FUNCTION_LIST_PTR_PTR ppFunctionList
+@@ -1840,6 +1840,8 @@
+   return CKR_OK;
+ }
+ 
++#define NSS_STATIC
++#ifndef NSS_STATIC
+ /* This one is always present */
+ CK_RV CK_ENTRY
+ C_GetFunctionList
+@@ -1849,6 +1850,7 @@
+ {
+   return __ADJOIN(MODULE_NAME,C_GetFunctionList)(ppFunctionList);
+ }
++#endif
+ 
+ #undef __ADJOIN
+ 
+--- a/a/nss/lib/freebl/rsa.c  Tue May 28 23:37:46 2013 +0200
++++ a/a/nss/lib/freebl/rsa.c  Fri May 31 17:44:06 2013 -0700
+@@ -1559,6 +1559,14 @@
+     RSA_Cleanup();
+ }
+ 
++#define NSS_STATIC
++#ifdef NSS_STATIC
++void
++BL_Unload(void)
++{
++}
++#endif
++
+ PRBool bl_parentForkedAfterC_Initialize;
+ 
+ /*
+--- a/a/nss/lib/freebl/shvfy.c        Tue May 28 23:37:46 2013 +0200
++++ a/a/nss/lib/freebl/shvfy.c        Fri May 31 17:44:06 2013 -0700
+@@ -273,9 +273,22 @@
+     return SECSuccess;
+ }
+ 
++/*
++ * Define PSEUDO_FIPS if you can't do FIPS software integrity test (e.g.,
++ * if you're using NSS as static libraries), but want to conform to the
++ * rest of the FIPS requirements.
++ */
++#define NSS_STATIC
++#ifdef NSS_STATIC
++#define PSEUDO_FIPS
++#endif
++
+ PRBool
+ BLAPI_SHVerify(const char *name, PRFuncPtr addr)
+ {
++#ifdef PSEUDO_FIPS
++    return PR_TRUE;  /* a lie, hence *pseudo* FIPS */
++#else
+     PRBool result = PR_FALSE; /* if anything goes wrong,
+ 			       * the signature does not verify */
+     /* find our shared library name */
+@@ -291,11 +303,15 @@
+     }
+ 
+     return result;
++#endif  /* PSEUDO_FIPS */
+ }
+ 
+ PRBool
+ BLAPI_SHVerifyFile(const char *shName)
+ {
++#ifdef PSEUDO_FIPS
++    return PR_TRUE;  /* a lie, hence *pseudo* FIPS */
++#else
+     char *checkName = NULL;
+     PRFileDesc *checkFD = NULL;
+     PRFileDesc *shFD = NULL;
+@@ -492,6 +508,7 @@
+     }
+ 
+     return result;
++#endif  /* PSEUDO_FIPS */
+ }
+ 
+ PRBool
+--- a/a/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c    Tue May 28 23:37:46 2013 +0200
++++ a/a/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c    Fri May 31 17:44:06 2013 -0700
+@@ -201,7 +201,11 @@
+ 
+ typedef SECStatus (*pkix_DecodeCertsFunc)(char *certbuf, int certlen,
+                                           CERTImportCertificateFunc f, void *arg);
+-
++#define NSS_STATIC
++#ifdef NSS_STATIC
++extern SECStatus CERT_DecodeCertPackage(char* certbuf, int certlen,
++                                        CERTImportCertificateFunc f, void* arg);
++#endif
+ 
+ struct pkix_DecodeFuncStr {
+     pkix_DecodeCertsFunc func;          /* function pointer to the 
+@@ -223,6 +226,11 @@
+  */
+ static PRStatus PR_CALLBACK pkix_getDecodeFunction(void)
+ {
++#ifdef NSS_STATIC
++    pkix_decodeFunc.smimeLib = NULL;
++    pkix_decodeFunc.func = CERT_DecodeCertPackage;
++    return PR_SUCCESS;
++#else
+     pkix_decodeFunc.smimeLib = 
+ 		PR_LoadLibrary(SHLIB_PREFIX"smime3."SHLIB_SUFFIX);
+     if (pkix_decodeFunc.smimeLib == NULL) {
+@@ -235,7 +243,7 @@
+ 	return PR_FAILURE;
+     }
+     return PR_SUCCESS;
+-
++#endif
+ }
+ 
+ /*
+--- a/a/nss/lib/nss/nssinit.c Tue May 28 23:37:46 2013 +0200
++++ a/a/nss/lib/nss/nssinit.c Fri May 31 17:44:06 2013 -0700
+@@ -20,9 +20,11 @@
+ #include "secerr.h"
+ #include "nssbase.h"
+ #include "nssutil.h"
++#ifndef NSS_DISABLE_LIBPKIX
+ #include "pkixt.h"
+ #include "pkix.h"
+ #include "pkix_tools.h"
++#endif  /* NSS_DISABLE_LIBPKIX */
+ 
+ #include "pki3hack.h"
+ #include "certi.h"
+@@ -530,8 +532,10 @@
+ 		 PRBool dontFinalizeModules)
+ {
+     SECStatus rv = SECFailure;
++#ifndef NSS_DISABLE_LIBPKIX
+     PKIX_UInt32 actualMinorVersion = 0;
+     PKIX_Error *pkixError = NULL;
++#endif
+     PRBool isReallyInitted;
+     char *configStrings = NULL;
+     char *configName = NULL;
+@@ -685,6 +689,7 @@
+ 	pk11sdr_Init();
+ 	cert_CreateSubjectKeyIDHashTable();
+ 
++#ifndef NSS_DISABLE_LIBPKIX
+ 	pkixError = PKIX_Initialize
+ 	    (PKIX_FALSE, PKIX_MAJOR_VERSION, PKIX_MINOR_VERSION,
+ 	    PKIX_MINOR_VERSION, &actualMinorVersion, &plContext);
+@@ -697,6 +702,7 @@
+                 CERT_SetUsePKIXForValidation(PR_TRUE);
+             }
+         }
++#endif  /* NSS_DISABLE_LIBPKIX */
+ 
+ 
+     }
+@@ -1081,7 +1087,9 @@
+     cert_DestroyLocks();
+     ShutdownCRLCache();
+     OCSP_ShutdownGlobal();
++#ifndef NSS_DISABLE_LIBPKIX
+     PKIX_Shutdown(plContext);
++#endif
+     SECOID_Shutdown();
+     status = STAN_Shutdown();
+     cert_DestroySubjectKeyIDHashTable();
+--- a/a/nss/lib/pk11wrap/pk11load.c   Tue May 28 23:37:46 2013 +0200
++++ a/a/nss/lib/pk11wrap/pk11load.c   Fri May 31 17:44:06 2013 -0700
+@@ -318,6 +318,13 @@
+     }
+ }
+ 
++#define NSS_STATIC
++#ifdef NSS_STATIC
++extern CK_RV NSC_GetFunctionList(CK_FUNCTION_LIST_PTR *pFunctionList);
++extern CK_RV FC_GetFunctionList(CK_FUNCTION_LIST_PTR *pFunctionList);
++extern char **NSC_ModuleDBFunc(unsigned long function,char *parameters, void *args);
++extern CK_RV builtinsC_GetFunctionList(CK_FUNCTION_LIST_PTR *pFunctionList);
++#else
+ static const char* my_shlib_name =
+     SHLIB_PREFIX"nss"SHLIB_VERSION"."SHLIB_SUFFIX;
+ static const char* softoken_shlib_name =
+@@ -326,12 +332,14 @@
+ static PRCallOnceType loadSoftokenOnce;
+ static PRLibrary* softokenLib;
+ static PRInt32 softokenLoadCount;
++#endif  /* NSS_STATIC */
+ 
+ #include "prio.h"
+ #include "prprf.h"
+ #include <stdio.h>
+ #include "prsystem.h"
+ 
++#ifndef NSS_STATIC
+ /* This function must be run only once. */
+ /*  determine if hybrid platform, then actually load the DSO. */
+ static PRStatus
+@@ -348,6 +356,7 @@
+   }
+   return PR_FAILURE;
+ }
++#endif  /* !NSS_STATIC */
+ 
+ /*
+  * load a new module into our address space and initialize it.
+@@ -366,6 +375,16 @@
+ 
+     /* intenal modules get loaded from their internal list */
+     if (mod->internal && (mod->dllName == NULL)) {
++#ifdef NSS_STATIC
++    if (mod->isFIPS) {
++        entry = FC_GetFunctionList;
++    } else {
++        entry = NSC_GetFunctionList;
++    }
++    if (mod->isModuleDB) {
++        mod->moduleDBFunc = NSC_ModuleDBFunc;
++    }
++#else
+     /*
+      * Loads softoken as a dynamic library,
+      * even though the rest of NSS assumes this as the "internal" module.
+@@ -391,6 +410,7 @@
+         mod->moduleDBFunc = (CK_C_GetFunctionList) 
+                     PR_FindSymbol(softokenLib, "NSC_ModuleDBFunc");
+     }
++#endif
+ 
+     if (mod->moduleDBOnly) {
+         mod->loaded = PR_TRUE;
+@@ -401,6 +421,15 @@
+ 	if (mod->dllName == NULL) {
+ 	    return SECFailure;
+ 	}
++#if defined(NSS_STATIC) && !defined(NSS_DISABLE_ROOT_CERTS)
++       if (strstr(mod->dllName, "nssckbi") != NULL) {
++           mod->library = NULL;
++           PORT_Assert(!mod->moduleDBOnly);
++           entry = builtinsC_GetFunctionList;
++           PORT_Assert(!mod->isModuleDB);
++           goto library_loaded;
++       }
++#endif
+ 
+ 	/* load the library. If this succeeds, then we have to remember to
+ 	 * unload the library if anything goes wrong from here on out...
+@@ -423,6 +452,9 @@
+ 	    mod->moduleDBFunc = (void *)
+ 			PR_FindSymbol(library, "NSS_ReturnModuleSpecData");
+ 	}
++#if defined(NSS_STATIC) && !defined(NSS_DISABLE_ROOT_CERTS)
++library_loaded:
++#endif
+ 	if (mod->moduleDBFunc == NULL) mod->isModuleDB = PR_FALSE;
+ 	if (entry == NULL) {
+ 	    if (mod->isModuleDB) {
+@@ -562,6 +594,7 @@
+      * if not, we should change this to SECFailure and move it above the
+      * mod->loaded = PR_FALSE; */
+     if (mod->internal && (mod->dllName == NULL)) {
++#ifndef NSS_STATIC
+         if (0 == PR_ATOMIC_DECREMENT(&softokenLoadCount)) {
+           if (softokenLib) {
+               disableUnload = PR_GetEnv("NSS_DISABLE_UNLOAD");
+@@ -573,12 +606,18 @@
+           }
+           loadSoftokenOnce = pristineCallOnce;
+         }
++#endif
+ 	return SECSuccess;
+     }
+ 
+     library = (PRLibrary *)mod->library;
+     /* paranoia */
+     if (library == NULL) {
++#if defined(NSS_STATIC) && !defined(NSS_DISABLE_ROOT_CERTS)
++       if (strstr(mod->dllName, "nssckbi") != NULL) {
++           return SECSuccess;
++       }
++#endif
+ 	return SECFailure;
+     }
+ 
+--- a/a/nss/lib/softoken/lgglue.c     Tue May 28 23:37:46 2013 +0200
++++ a/a/nss/lib/softoken/lgglue.c     Fri May 31 17:44:06 2013 -0700
+@@ -23,6 +23,8 @@
+ static LGAddSecmodFunc legacy_glue_addSecmod = NULL;
+ static LGShutdownFunc legacy_glue_shutdown = NULL;
+ 
++#define NSS_STATIC
++#ifndef NSS_STATIC
+ /*
+  * The following 3 functions duplicate the work done by bl_LoadLibrary.
+  * We should make bl_LoadLibrary a global and replace the call to
+@@ -160,6 +161,7 @@
+ 
+     return lib;
+ }
++#endif  /* STATIC LIBRARIES */
+ 
+ /*
+  * stub files for legacy db's to be able to encrypt and decrypt
+@@ -272,6 +274,21 @@
+ 	return SECSuccess;
+     }
+ 
++#ifdef NSS_STATIC
++#ifdef NSS_DISABLE_DBM
++    return SECFailure;
++#else
++    lib = (PRLibrary *) 0x8;
++
++    legacy_glue_open = legacy_Open;
++    legacy_glue_readSecmod = legacy_ReadSecmodDB;
++    legacy_glue_releaseSecmod = legacy_ReleaseSecmodDBData;
++    legacy_glue_deleteSecmod = legacy_DeleteSecmodDB;
++    legacy_glue_addSecmod = legacy_AddSecmodDB;
++    legacy_glue_shutdown = legacy_Shutdown;
++    setCryptFunction = legacy_SetCryptFunctions;
++#endif
++#else
+     lib = sftkdb_LoadLibrary(LEGACY_LIB_NAME);
+     if (lib == NULL) {
+ 	return SECFailure;
+@@ -297,11 +314,14 @@
+ 	PR_UnloadLibrary(lib);
+ 	return SECFailure;
+     }
++#endif  /* NSS_STATIC */
+ 
+     /* verify the loaded library if we are in FIPS mode */
+     if (isFIPS) {
+ 	if (!BLAPI_SHVerify(LEGACY_LIB_NAME,(PRFuncPtr)legacy_glue_open)) {
++#ifndef NSS_STATIC
+ 	    PR_UnloadLibrary(lib);
++#endif
+ 	    return SECFailure;
+ 	}
+     	legacy_glue_libCheckSucceeded = PR_TRUE;
+@@ -418,10 +438,12 @@
+ #endif
+ 	crv = (*legacy_glue_shutdown)(parentForkedAfterC_Initialize);
+     }
++#ifndef NSS_STATIC
+     disableUnload = PR_GetEnv("NSS_DISABLE_UNLOAD");
+     if (!disableUnload) {
+         PR_UnloadLibrary(legacy_glue_lib);
+     }
++#endif
+     legacy_glue_lib = NULL;
+     legacy_glue_open = NULL;
+     legacy_glue_readSecmod = NULL;
+--- a/a/nss/lib/softoken/lgglue.h     Tue May 28 23:37:46 2013 +0200
++++ a/a/nss/lib/softoken/lgglue.h     Fri May 31 17:44:06 2013 -0700
+@@ -38,6 +38,25 @@
+ typedef void (*LGSetForkStateFunc)(PRBool);
+ typedef void (*LGSetCryptFunc)(LGEncryptFunc, LGDecryptFunc);
+ 
++extern CK_RV legacy_Open(const char *dir, const char *certPrefix, 
++               const char *keyPrefix, 
++               int certVersion, int keyVersion, int flags, 
++               SDB **certDB, SDB **keyDB);
++extern char ** legacy_ReadSecmodDB(const char *appName, 
++                       const char *filename, 
++                       const char *dbname, char *params, PRBool rw);
++extern SECStatus legacy_ReleaseSecmodDBData(const char *appName,
++                       const char *filename, 
++                       const char *dbname, char **params, PRBool rw);
++extern SECStatus legacy_DeleteSecmodDB(const char *appName,
++                       const char *filename, 
++                       const char *dbname, char *params, PRBool rw);
++extern SECStatus legacy_AddSecmodDB(const char *appName, 
++                       const char *filename, 
++                       const char *dbname, char *params, PRBool rw);
++extern SECStatus legacy_Shutdown(PRBool forked);
++extern void legacy_SetCryptFunctions(LGEncryptFunc, LGDecryptFunc);
++
+ /*
+  * Softoken Glue Functions
+  */
+--- a/a/nss/lib/util/secport.h        Tue May 28 23:37:46 2013 +0200
++++ a/a/nss/lib/util/secport.h        Fri May 31 17:44:06 2013 -0700
+@@ -210,6 +210,8 @@
+ 
+ extern int NSS_SecureMemcmp(const void *a, const void *b, size_t n);
+ 
++#define NSS_STATIC
++#ifndef NSS_STATIC
+ /*
+  * Load a shared library called "newShLibName" in the same directory as
+  * a shared library that is already loaded, called existingShLibName.
+@@ -244,6 +245,7 @@
+ PORT_LoadLibraryFromOrigin(const char* existingShLibName,
+                  PRFuncPtr staticShLibFunc,
+                  const char *newShLibName);
++#endif  /* NSS_STATIC */
+ 
+ SEC_END_PROTOS
+ 
commit 3442b004e6263cb0526b0c2d96318d21623eec2b
Author: Tor Lillqvist <tml at collabora.com>
Date:   Tue Aug 12 16:50:17 2014 +0300

    Now that we build NSS, we can build libxmlsec and libxsec_xmlsec for iOS, too
    
    Change-Id: I65ab8aad0744a2aa254fefc7732cd8130bb249fb

diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 6f6d787..621ff41 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -3226,7 +3226,7 @@ endif # GUIBASE=unx
 
 gb_ExternalProject__use_nss3:=
 
-ifeq (,$(filter DESKTOP,$(BUILD_TYPE)))
+ifeq ($(OS),ANDROID)
 
 gb_LinkTarget__use_nss3:=
 
diff --git a/bin/lo-all-static-libs b/bin/lo-all-static-libs
index 01fc3cf..7532164 100755
--- a/bin/lo-all-static-libs
+++ b/bin/lo-all-static-libs
@@ -42,6 +42,11 @@ ANDROID)
     ;;
 IOS)
     oslibs="$WORKDIR/UnpackedTarball/icu/source/stubdata/*.a"
+    oslibs="$oslibs $WORKDIR/UnpackedTarball/xmlsec/src/.libs/*.a"
+    oslibs="$oslibs $WORKDIR/UnpackedTarball/xmlsec/src/nss/.libs/*.a"
+    # Unfortunately NSS's build mechanism copies each static archive
+    # it constructs to another place, but we don't bother filtering
+    # out duplicates, it shouldn't hurt.
     nsslibs=`find $WORKDIR/UnpackedTarball/nss -name 'lib*.a'`
     ;;
 *)
diff --git a/external/libxmlsec/ExternalProject_xmlsec.mk b/external/libxmlsec/ExternalProject_xmlsec.mk
index f554ec8..e6bdf4f 100644
--- a/external/libxmlsec/ExternalProject_xmlsec.mk
+++ b/external/libxmlsec/ExternalProject_xmlsec.mk
@@ -50,7 +50,7 @@ else
 
 $(call gb_ExternalProject_get_state_target,xmlsec,build) :
 	$(call gb_ExternalProject_run,build,\
-		$(if $(filter MACOSX,$(OS)),ACLOCAL="aclocal -I $(SRCDIR)/m4/mac") \
+		$(if $(filter IOS MACOSX,$(OS)),ACLOCAL="aclocal -I $(SRCDIR)/m4/mac") \
 		$(if $(filter AIX,$(OS)),ACLOCAL="aclocal -I /opt/freeware/share/aclocal") \
 		autoreconf \
 		&& ./configure \
diff --git a/external/libxmlsec/Module_libxmlsec.mk b/external/libxmlsec/Module_libxmlsec.mk
index 3e51e4a..491dec7 100644
--- a/external/libxmlsec/Module_libxmlsec.mk
+++ b/external/libxmlsec/Module_libxmlsec.mk
@@ -9,7 +9,7 @@
 
 $(eval $(call gb_Module_Module,libxmlsec))
 
-ifneq ($(filter-out ANDROID IOS,$(OS)),)
+ifneq ($(filter-out ANDROID,$(OS)),)
 $(eval $(call gb_Module_add_targets,libxmlsec,\
 	UnpackedTarball_xmlsec \
 	ExternalPackage_xmlsec \
diff --git a/postprocess/Rdb_services.mk b/postprocess/Rdb_services.mk
index 4fab2ad..b88e763 100644
--- a/postprocess/Rdb_services.mk
+++ b/postprocess/Rdb_services.mk
@@ -110,6 +110,8 @@ $(eval $(call gb_Rdb_add_components,services,\
 	xmlscript/util/xmlscript \
 	xmlsecurity/util/xmlsecurity \
 	xmlsecurity/util/xsec_fw \
+	$(if $(filter-out ANDROID,$(OS)), \
+		xmlsecurity/util/xsec_xmlsec$(if $(filter WNT,$(OS)),.windows)) \
 	$(if $(ENABLE_COINMP), \
 		sccomp/source/solver/coinmpsolver \
 	) \
@@ -330,7 +332,6 @@ $(eval $(call gb_Rdb_add_components,services,\
 	extensions/source/scanner/scn \
 	extensions/source/update/feed/updatefeed \
 	xmlhelp/util/ucpchelp1 \
-	xmlsecurity/util/xsec_xmlsec$(if $(filter WNT,$(OS)),.windows) \
 	$(if $(filter-out WNT,$(OS)),\
 		shell/source/cmdmail/cmdmail \
 	) \
diff --git a/solenv/bin/native-code.py b/solenv/bin/native-code.py
index 9b3895c..6054065 100755
--- a/solenv/bin/native-code.py
+++ b/solenv/bin/native-code.py
@@ -46,6 +46,7 @@ core_factory_list = [
     ("libutllo.a", "utl_component_getFactory"),
     ("libxmlsecurity.a", "xmlsecurity_component_getFactory"),
     ("libxolo.a", "xo_component_getFactory"),
+    ("libxsec_xmlsec.a", "xsec_xmlsec_component_getFactory"),
     ("libxstor.a", "xstor_component_getFactory"),
     ]
 
diff --git a/xmlsecurity/Module_xmlsecurity.mk b/xmlsecurity/Module_xmlsecurity.mk
index fffd966..596ccad 100644
--- a/xmlsecurity/Module_xmlsecurity.mk
+++ b/xmlsecurity/Module_xmlsecurity.mk
@@ -12,7 +12,7 @@ $(eval $(call gb_Module_Module,xmlsecurity))
 $(eval $(call gb_Module_add_targets,xmlsecurity,\
 	Library_xmlsecurity \
 	Library_xsec_fw \
-	$(if $(filter-out IOS ANDROID,$(OS)),Library_xsec_xmlsec) \
+	$(if $(filter-out ANDROID,$(OS)),Library_xsec_xmlsec) \
 ))
 
 $(eval $(call gb_Module_add_l10n_targets,xmlsecurity,\
commit 323142c678d0b3c46d6a33c9e44c9a150d6fe3b9
Author: Tor Lillqvist <tml at collabora.com>
Date:   Tue Aug 12 16:48:44 2014 +0300

    Add some more source files for debugging convenience
    
    Change-Id: Ibc13ecb2ea154802bf2f7e06fa583460344bf6f7

diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj b/ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj
index 37df6f8..34569e5 100644
--- a/ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj
@@ -706,6 +706,70 @@
 		BE82C4EE18CE6DBE0050EB79 /* window3.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = window3.cxx; path = ../../../vcl/source/window/window3.cxx; sourceTree = "<group>"; };
 		BE82C4EF18CE6DBE0050EB79 /* winproc.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = winproc.cxx; path = ../../../vcl/source/window/winproc.cxx; sourceTree = "<group>"; };
 		BE82C4F018CE6DBE0050EB79 /* wrkwin.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = wrkwin.cxx; path = ../../../vcl/source/window/wrkwin.cxx; sourceTree = "<group>"; };
+		BE9931C5199A185D0008A364 /* accessiblecomponenthelper.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = accessiblecomponenthelper.cxx; path = ../../../comphelper/source/misc/accessiblecomponenthelper.cxx; sourceTree = "<group>"; };
+		BE9931C6199A185D0008A364 /* accessiblecontexthelper.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = accessiblecontexthelper.cxx; path = ../../../comphelper/source/misc/accessiblecontexthelper.cxx; sourceTree = "<group>"; };
+		BE9931C7199A185D0008A364 /* accessibleeventnotifier.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = accessibleeventnotifier.cxx; path = ../../../comphelper/source/misc/accessibleeventnotifier.cxx; sourceTree = "<group>"; };
+		BE9931C8199A185D0008A364 /* accessiblekeybindinghelper.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = accessiblekeybindinghelper.cxx; path = ../../../comphelper/source/misc/accessiblekeybindinghelper.cxx; sourceTree = "<group>"; };
+		BE9931C9199A185D0008A364 /* accessibleselectionhelper.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = accessibleselectionhelper.cxx; path = ../../../comphelper/source/misc/accessibleselectionhelper.cxx; sourceTree = "<group>"; };
+		BE9931CA199A185D0008A364 /* accessibletexthelper.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = accessibletexthelper.cxx; path = ../../../comphelper/source/misc/accessibletexthelper.cxx; sourceTree = "<group>"; };
+		BE9931CB199A185D0008A364 /* accessiblewrapper.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = accessiblewrapper.cxx; path = ../../../comphelper/source/misc/accessiblewrapper.cxx; sourceTree = "<group>"; };
+		BE9931CC199A185D0008A364 /* accimplaccess.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = accimplaccess.cxx; path = ../../../comphelper/source/misc/accimplaccess.cxx; sourceTree = "<group>"; };
+		BE9931CD199A185D0008A364 /* anycompare.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = anycompare.cxx; path = ../../../comphelper/source/misc/anycompare.cxx; sourceTree = "<group>"; };
+		BE9931CE199A185D0008A364 /* anytostring.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = anytostring.cxx; path = ../../../comphelper/source/misc/anytostring.cxx; sourceTree = "<group>"; };
+		BE9931CF199A185D0008A364 /* asyncnotification.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = asyncnotification.cxx; path = ../../../comphelper/source/misc/asyncnotification.cxx; sourceTree = "<group>"; };
+		BE9931D0199A185D0008A364 /* comphelper_module.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = comphelper_module.cxx; path = ../../../comphelper/source/misc/comphelper_module.cxx; sourceTree = "<group>"; };
+		BE9931D1199A185D0008A364 /* comphelper_services.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = comphelper_services.cxx; path = ../../../comphelper/source/misc/comphelper_services.cxx; sourceTree = "<group>"; };
+		BE9931D2199A185D0008A364 /* componentbase.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = componentbase.cxx; path = ../../../comphelper/source/misc/componentbase.cxx; sourceTree = "<group>"; };
+		BE9931D3199A185D0008A364 /* componentmodule.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = componentmodule.cxx; path = ../../../comphelper/source/misc/componentmodule.cxx; sourceTree = "<group>"; };
+		BE9931D4199A185D0008A364 /* configuration.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = configuration.cxx; path = ../../../comphelper/source/misc/configuration.cxx; sourceTree = "<group>"; };
+		BE9931D5199A185D0008A364 /* configurationhelper.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = configurationhelper.cxx; path = ../../../comphelper/source/misc/configurationhelper.cxx; sourceTree = "<group>"; };
+		BE9931D6199A185D0008A364 /* docpasswordhelper.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = docpasswordhelper.cxx; path = ../../../comphelper/source/misc/docpasswordhelper.cxx; sourceTree = "<group>"; };
+		BE9931D7199A185D0008A364 /* docpasswordrequest.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = docpasswordrequest.cxx; path = ../../../comphelper/source/misc/docpasswordrequest.cxx; sourceTree = "<group>"; };
+		BE9931D8199A185D0008A364 /* documentinfo.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = documentinfo.cxx; path = ../../../comphelper/source/misc/documentinfo.cxx; sourceTree = "<group>"; };
+		BE9931D9199A185D0008A364 /* documentiologring.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = documentiologring.cxx; path = ../../../comphelper/source/misc/documentiologring.cxx; sourceTree = "<group>"; };
+		BE9931DA199A185D0008A364 /* evtlistenerhlp.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = evtlistenerhlp.cxx; path = ../../../comphelper/source/misc/evtlistenerhlp.cxx; sourceTree = "<group>"; };
+		BE9931DB199A185D0008A364 /* evtmethodhelper.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = evtmethodhelper.cxx; path = ../../../comphelper/source/misc/evtmethodhelper.cxx; sourceTree = "<group>"; };
+		BE9931DC199A185D0008A364 /* expandmacro.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = expandmacro.cxx; path = ../../../comphelper/source/misc/expandmacro.cxx; sourceTree = "<group>"; };
+		BE9931DD199A185D0008A364 /* instancelocker.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = instancelocker.cxx; path = ../../../comphelper/source/misc/instancelocker.cxx; sourceTree = "<group>"; };
+		BE9931DE199A185D0008A364 /* interaction.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = interaction.cxx; path = ../../../comphelper/source/misc/interaction.cxx; sourceTree = "<group>"; };
+		BE9931DF199A185D0008A364 /* listenernotification.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = listenernotification.cxx; path = ../../../comphelper/source/misc/listenernotification.cxx; sourceTree = "<group>"; };
+		BE9931E0199A185D0008A364 /* logging.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = logging.cxx; path = ../../../comphelper/source/misc/logging.cxx; sourceTree = "<group>"; };
+		BE9931E1199A185D0008A364 /* mimeconfighelper.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = mimeconfighelper.cxx; path = ../../../comphelper/source/misc/mimeconfighelper.cxx; sourceTree = "<group>"; };
+		BE9931E2199A185D0008A364 /* namedvaluecollection.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = namedvaluecollection.cxx; path = ../../../comphelper/source/misc/namedvaluecollection.cxx; sourceTree = "<group>"; };
+		BE9931E3199A185D0008A364 /* numberedcollection.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = numberedcollection.cxx; path = ../../../comphelper/source/misc/numberedcollection.cxx; sourceTree = "<group>"; };
+		BE9931E4199A185D0008A364 /* numbers.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = numbers.cxx; path = ../../../comphelper/source/misc/numbers.cxx; sourceTree = "<group>"; };
+		BE9931E5199A185D0008A364 /* officeresourcebundle.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = officeresourcebundle.cxx; path = ../../../comphelper/source/misc/officeresourcebundle.cxx; sourceTree = "<group>"; };
+		BE9931E6199A185D0008A364 /* officerestartmanager.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = officerestartmanager.cxx; path = ../../../comphelper/source/misc/officerestartmanager.cxx; sourceTree = "<group>"; };
+		BE9931E7199A185D0008A364 /* proxyaggregation.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = proxyaggregation.cxx; path = ../../../comphelper/source/misc/proxyaggregation.cxx; sourceTree = "<group>"; };
+		BE9931E8199A185D0008A364 /* random.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = random.cxx; path = ../../../comphelper/source/misc/random.cxx; sourceTree = "<group>"; };
+		BE9931E9199A185D0008A364 /* scopeguard.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = scopeguard.cxx; path = ../../../comphelper/source/misc/scopeguard.cxx; sourceTree = "<group>"; };
+		BE9931EA199A185D0008A364 /* SelectionMultiplex.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = SelectionMultiplex.cxx; path = ../../../comphelper/source/misc/SelectionMultiplex.cxx; sourceTree = "<group>"; };
+		BE9931EB199A185D0008A364 /* sequence.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = sequence.cxx; path = ../../../comphelper/source/misc/sequence.cxx; sourceTree = "<group>"; };
+		BE9931EC199A185D0008A364 /* sequenceashashmap.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = sequenceashashmap.cxx; path = ../../../comphelper/source/misc/sequenceashashmap.cxx; sourceTree = "<group>"; };
+		BE9931ED199A185D0008A364 /* servicedecl.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = servicedecl.cxx; path = ../../../comphelper/source/misc/servicedecl.cxx; sourceTree = "<group>"; };
+		BE9931EE199A185D0008A364 /* serviceinfohelper.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = serviceinfohelper.cxx; path = ../../../comphelper/source/misc/serviceinfohelper.cxx; sourceTree = "<group>"; };
+		BE9931EF199A185D0008A364 /* sharedmutex.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = sharedmutex.cxx; path = ../../../comphelper/source/misc/sharedmutex.cxx; sourceTree = "<group>"; };
+		BE9931F0199A185D0008A364 /* solarmutex.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = solarmutex.cxx; path = ../../../comphelper/source/misc/solarmutex.cxx; sourceTree = "<group>"; };
+		BE9931F1199A185D0008A364 /* stillreadwriteinteraction.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = stillreadwriteinteraction.cxx; path = ../../../comphelper/source/misc/stillreadwriteinteraction.cxx; sourceTree = "<group>"; };
+		BE9931F2199A185D0008A364 /* storagehelper.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = storagehelper.cxx; path = ../../../comphelper/source/misc/storagehelper.cxx; sourceTree = "<group>"; };
+		BE9931F3199A185D0008A364 /* string.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = string.cxx; path = ../../../comphelper/source/misc/string.cxx; sourceTree = "<group>"; };
+		BE9931F4199A185D0008A364 /* synchronousdispatch.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = synchronousdispatch.cxx; path = ../../../comphelper/source/misc/synchronousdispatch.cxx; sourceTree = "<group>"; };
+		BE9931F5199A185D0008A364 /* syntaxhighlight.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = syntaxhighlight.cxx; path = ../../../comphelper/source/misc/syntaxhighlight.cxx; sourceTree = "<group>"; };
+		BE9931F6199A185D0008A364 /* types.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = types.cxx; path = ../../../comphelper/source/misc/types.cxx; sourceTree = "<group>"; };
+		BE9931F7199A185D0008A364 /* weak.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = weak.cxx; path = ../../../comphelper/source/misc/weak.cxx; sourceTree = "<group>"; };
+		BE9931F8199A185D0008A364 /* weakeventlistener.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = weakeventlistener.cxx; path = ../../../comphelper/source/misc/weakeventlistener.cxx; sourceTree = "<group>"; };
+		BE9931FC199A1BF00008A364 /* ciphercontext.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ciphercontext.cxx; path = ../../../xmlsecurity/source/xmlsec/nss/ciphercontext.cxx; sourceTree = "<group>"; };
+		BE9931FD199A1BF00008A364 /* digestcontext.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = digestcontext.cxx; path = ../../../xmlsecurity/source/xmlsec/nss/digestcontext.cxx; sourceTree = "<group>"; };
+		BE9931FE199A1BF00008A364 /* nssinitializer.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = nssinitializer.cxx; path = ../../../xmlsecurity/source/xmlsec/nss/nssinitializer.cxx; sourceTree = "<group>"; };
+		BE9931FF199A1BF00008A364 /* sanextension_nssimpl.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = sanextension_nssimpl.cxx; path = ../../../xmlsecurity/source/xmlsec/nss/sanextension_nssimpl.cxx; sourceTree = "<group>"; };
+		BE993200199A1BF00008A364 /* secerror.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = secerror.cxx; path = ../../../xmlsecurity/source/xmlsec/nss/secerror.cxx; sourceTree = "<group>"; };
+		BE993201199A1BF00008A364 /* securityenvironment_nssimpl.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = securityenvironment_nssimpl.cxx; path = ../../../xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx; sourceTree = "<group>"; };
+		BE993202199A1BF00008A364 /* seinitializer_nssimpl.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = seinitializer_nssimpl.cxx; path = ../../../xmlsecurity/source/xmlsec/nss/seinitializer_nssimpl.cxx; sourceTree = "<group>"; };
+		BE993203199A1BF00008A364 /* x509certificate_nssimpl.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = x509certificate_nssimpl.cxx; path = ../../../xmlsecurity/source/xmlsec/nss/x509certificate_nssimpl.cxx; sourceTree = "<group>"; };
+		BE993204199A1BF00008A364 /* xmlencryption_nssimpl.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = xmlencryption_nssimpl.cxx; path = ../../../xmlsecurity/source/xmlsec/nss/xmlencryption_nssimpl.cxx; sourceTree = "<group>"; };
+		BE993205199A1BF00008A364 /* xmlsecuritycontext_nssimpl.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = xmlsecuritycontext_nssimpl.cxx; path = ../../../xmlsecurity/source/xmlsec/nss/xmlsecuritycontext_nssimpl.cxx; sourceTree = "<group>"; };
+		BE993206199A1BF00008A364 /* xmlsignature_nssimpl.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = xmlsignature_nssimpl.cxx; path = ../../../xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx; sourceTree = "<group>"; };
+		BE993207199A1BF00008A364 /* xsec_nss.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = xsec_nss.cxx; path = ../../../xmlsecurity/source/xmlsec/nss/xsec_nss.cxx; sourceTree = "<group>"; };
 		BE9F45F91868396500B8BE69 /* cpp2uno-arm.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "cpp2uno-arm.cxx"; path = "../../../bridges/source/cpp_uno/gcc3_ios_arm/cpp2uno-arm.cxx"; sourceTree = "<group>"; };
 		BE9F45FA1868396500B8BE69 /* cpp2uno-arm64.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "cpp2uno-arm64.cxx"; path = "../../../bridges/source/cpp_uno/gcc3_ios_arm/cpp2uno-arm64.cxx"; sourceTree = "<group>"; };
 		BE9F45FB1868396500B8BE69 /* cpp2uno-i386.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "cpp2uno-i386.cxx"; path = "../../../bridges/source/cpp_uno/gcc3_ios_arm/cpp2uno-i386.cxx"; sourceTree = "<group>"; };
@@ -844,6 +908,7 @@
 			isa = PBXGroup;
 			children = (
 				BE9F45F81868393D00B8BE69 /* bridges */,
+				BE9931C3199A17E90008A364 /* comphelper */,
 				BE55B10518DAD85E00950228 /* cppu */,
 				BE35B58A188FFA43001B7439 /* cppuhelper */,
 				BED531661937389B00830918 /* cppcanvas */,
@@ -1441,6 +1506,7 @@
 			children = (
 				BE03BF8F18F9641D00620DC7 /* External library sources */,
 				BE0898E61860D3CD0021A679 /* LibreOffice source files */,
+				BE9931F9199A1B750008A364 /* xmlsecurity */,
 				BE82BD7B18218E2E00A447B5 /* TiledLibreOffice */,
 				BEEEF9681860A21F00FBDE67 /* Resources */,
 				BE82BD7418218E2E00A447B5 /* Frameworks */,
@@ -1797,6 +1863,108 @@
 			name = window;
 			sourceTree = "<group>";
 		};
+		BE9931C3199A17E90008A364 /* comphelper */ = {
+			isa = PBXGroup;
+			children = (
+				BE9931C4199A182D0008A364 /* misc */,
+			);
+			name = comphelper;
+			sourceTree = "<group>";
+		};
+		BE9931C4199A182D0008A364 /* misc */ = {
+			isa = PBXGroup;
+			children = (
+				BE9931C5199A185D0008A364 /* accessiblecomponenthelper.cxx */,
+				BE9931C6199A185D0008A364 /* accessiblecontexthelper.cxx */,
+				BE9931C7199A185D0008A364 /* accessibleeventnotifier.cxx */,
+				BE9931C8199A185D0008A364 /* accessiblekeybindinghelper.cxx */,
+				BE9931C9199A185D0008A364 /* accessibleselectionhelper.cxx */,
+				BE9931CA199A185D0008A364 /* accessibletexthelper.cxx */,
+				BE9931CB199A185D0008A364 /* accessiblewrapper.cxx */,
+				BE9931CC199A185D0008A364 /* accimplaccess.cxx */,
+				BE9931CD199A185D0008A364 /* anycompare.cxx */,
+				BE9931CE199A185D0008A364 /* anytostring.cxx */,
+				BE9931CF199A185D0008A364 /* asyncnotification.cxx */,
+				BE9931D0199A185D0008A364 /* comphelper_module.cxx */,
+				BE9931D1199A185D0008A364 /* comphelper_services.cxx */,
+				BE9931D2199A185D0008A364 /* componentbase.cxx */,
+				BE9931D3199A185D0008A364 /* componentmodule.cxx */,
+				BE9931D4199A185D0008A364 /* configuration.cxx */,
+				BE9931D5199A185D0008A364 /* configurationhelper.cxx */,
+				BE9931D6199A185D0008A364 /* docpasswordhelper.cxx */,
+				BE9931D7199A185D0008A364 /* docpasswordrequest.cxx */,
+				BE9931D8199A185D0008A364 /* documentinfo.cxx */,
+				BE9931D9199A185D0008A364 /* documentiologring.cxx */,
+				BE9931DA199A185D0008A364 /* evtlistenerhlp.cxx */,
+				BE9931DB199A185D0008A364 /* evtmethodhelper.cxx */,
+				BE9931DC199A185D0008A364 /* expandmacro.cxx */,
+				BE9931DD199A185D0008A364 /* instancelocker.cxx */,
+				BE9931DE199A185D0008A364 /* interaction.cxx */,
+				BE9931DF199A185D0008A364 /* listenernotification.cxx */,
+				BE9931E0199A185D0008A364 /* logging.cxx */,
+				BE9931E1199A185D0008A364 /* mimeconfighelper.cxx */,
+				BE9931E2199A185D0008A364 /* namedvaluecollection.cxx */,
+				BE9931E3199A185D0008A364 /* numberedcollection.cxx */,
+				BE9931E4199A185D0008A364 /* numbers.cxx */,
+				BE9931E5199A185D0008A364 /* officeresourcebundle.cxx */,
+				BE9931E6199A185D0008A364 /* officerestartmanager.cxx */,
+				BE9931E7199A185D0008A364 /* proxyaggregation.cxx */,
+				BE9931E8199A185D0008A364 /* random.cxx */,
+				BE9931E9199A185D0008A364 /* scopeguard.cxx */,
+				BE9931EA199A185D0008A364 /* SelectionMultiplex.cxx */,
+				BE9931EB199A185D0008A364 /* sequence.cxx */,
+				BE9931EC199A185D0008A364 /* sequenceashashmap.cxx */,
+				BE9931ED199A185D0008A364 /* servicedecl.cxx */,
+				BE9931EE199A185D0008A364 /* serviceinfohelper.cxx */,
+				BE9931EF199A185D0008A364 /* sharedmutex.cxx */,
+				BE9931F0199A185D0008A364 /* solarmutex.cxx */,
+				BE9931F1199A185D0008A364 /* stillreadwriteinteraction.cxx */,
+				BE9931F2199A185D0008A364 /* storagehelper.cxx */,
+				BE9931F3199A185D0008A364 /* string.cxx */,
+				BE9931F4199A185D0008A364 /* synchronousdispatch.cxx */,
+				BE9931F5199A185D0008A364 /* syntaxhighlight.cxx */,
+				BE9931F6199A185D0008A364 /* types.cxx */,
+				BE9931F7199A185D0008A364 /* weak.cxx */,
+				BE9931F8199A185D0008A364 /* weakeventlistener.cxx */,
+			);
+			name = misc;
+			sourceTree = "<group>";
+		};
+		BE9931F9199A1B750008A364 /* xmlsecurity */ = {
+			isa = PBXGroup;
+			children = (
+				BE9931FB199A1BC20008A364 /* xmlsec */,
+			);
+			name = xmlsecurity;
+			sourceTree = "<group>";
+		};
+		BE9931FA199A1B920008A364 /* nss */ = {
+			isa = PBXGroup;
+			children = (
+				BE9931FC199A1BF00008A364 /* ciphercontext.cxx */,
+				BE9931FD199A1BF00008A364 /* digestcontext.cxx */,
+				BE9931FE199A1BF00008A364 /* nssinitializer.cxx */,
+				BE9931FF199A1BF00008A364 /* sanextension_nssimpl.cxx */,
+				BE993200199A1BF00008A364 /* secerror.cxx */,
+				BE993201199A1BF00008A364 /* securityenvironment_nssimpl.cxx */,
+				BE993202199A1BF00008A364 /* seinitializer_nssimpl.cxx */,
+				BE993203199A1BF00008A364 /* x509certificate_nssimpl.cxx */,
+				BE993204199A1BF00008A364 /* xmlencryption_nssimpl.cxx */,
+				BE993205199A1BF00008A364 /* xmlsecuritycontext_nssimpl.cxx */,
+				BE993206199A1BF00008A364 /* xmlsignature_nssimpl.cxx */,
+				BE993207199A1BF00008A364 /* xsec_nss.cxx */,
+			);
+			name = nss;
+			sourceTree = "<group>";
+		};
+		BE9931FB199A1BC20008A364 /* xmlsec */ = {
+			isa = PBXGroup;
+			children = (
+				BE9931FA199A1B920008A364 /* nss */,
+			);
+			name = xmlsec;
+			sourceTree = "<group>";
+		};
 		BE9F45F81868393D00B8BE69 /* bridges */ = {
 			isa = PBXGroup;
 			children = (


More information about the Libreoffice-commits mailing list