diff options
author | Tor Lillqvist <tml@collabora.com> | 2020-09-18 12:23:44 +0300 |
---|---|---|
committer | Tor Lillqvist <tml@collabora.com> | 2020-09-23 07:47:55 +0200 |
commit | 808e8a8e9e96b6c3fac3ddf291e3900a40846409 (patch) | |
tree | a5b07d1f8ad25e15d9e2be33d7a0c3e6308d2e5d /xmlsecurity | |
parent | de810a8e78da0d562092e35041c8a0aec92b9ee0 (diff) |
tdf#128136: Build curl, nss, and xmlsec for iOS, too
We must link nss statically, including the three dylibs that normally
are loaded at run-time, because including bare dylibs in an iOS appp
on the App Store is not OK. See
https://developer.apple.com/forums/thread/125796 .
For linking the softokn3 library statically, NSS already had code,
behind NSS_STATIC_SOFTOKEN ifdefs. Introduce two more macros:
NSS_STATIC_FREEBL for the freebl library and NSS_STATIC_PKCS11 for the
nssckbi library.
Turn off parallelism for the sub-make building nss. There seems to be
race conditions or something when running simultaneous instances of
the nsinstall.py script or the nsinstall program in nss (used when
building nss for the build platform).
When cross-compiling from macOS, use python3 to run the nsinstall.py
script, as it is Python 3.
Change-Id: Idd427b5ebf21f802b3feb0d5a3d259317ba8fc67
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103106
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103218
Tested-by: Jenkins
Diffstat (limited to 'xmlsecurity')
-rw-r--r-- | xmlsecurity/source/xmlsec/nss/nssinitializer.cxx | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/xmlsecurity/source/xmlsec/nss/nssinitializer.cxx b/xmlsecurity/source/xmlsec/nss/nssinitializer.cxx index f5ed1bc001cd..1d6dcda2f315 100644 --- a/xmlsecurity/source/xmlsec/nss/nssinitializer.cxx +++ b/xmlsecurity/source/xmlsec/nss/nssinitializer.cxx @@ -419,12 +419,17 @@ bool nsscrypto_initialize(css::uno::Reference<css::uno::XComponentContext> const #ifdef XMLSEC_CRYPTO_NSS bool return_value = true; -#if defined SYSTEM_NSS +#if defined SYSTEM_NSS || defined IOS // The statically linked nss on iOS acts as a "system" nss in this regards if (!SECMOD_HasRootCerts()) #endif { deleteRootsModule(); +#ifdef IOS // Use statically linked NSS + OUString rootModulePath("NSSCKBI"); + + if (true) +#else #if defined SYSTEM_NSS OUString rootModule("libnssckbi" SAL_DLLEXTENSION); #else @@ -434,6 +439,7 @@ bool nsscrypto_initialize(css::uno::Reference<css::uno::XComponentContext> const OUString rootModulePath; if (::osl::File::E_None == ::osl::File::getSystemPathFromFileURL(rootModule, rootModulePath)) +#endif { OString ospath = OUStringToOString(rootModulePath, osl_getThreadTextEncoding()); OString aStr = "name=\"" ROOT_CERTS "\" library=\"" + ospath + "\""; |