Files
loongoffice/xmlsecurity/Library_xsec_xmlsec.mk
Miklos Vajna 8ce222753a Update libxmlsec to 1.3.3
Extend external/xmlsec/old-nss.patch.1, our bundled NSS in debug builds
has some assert failure in relatively new xmlsec code, just disable it
for now till it's clarified with upstream how to sort that out properly.

E.g. CppunitTest_filter_svg fails like this:

	#1  0x00007ffff77503e5 in abort () at /lib64/libc.so.6
	#2  0x00007ffff679ca90 in PR_Assert (s=0x7ffff44fbfe5 "oidmechhash != NULL", file=0x7ffff44fbfb6 "secoid.c", ln=2140) at ../../../../pr/src/io/prlog.c:571
	#3  0x00007ffff44eaae0 in SECOID_FindOIDByMechanism (mechanism=307) at secoid.c:2140
	#4  0x00007ffff6660c65 in PK11_MechanismToAlgtag (type=307) at pk11mech.c:1745
	#5  0x00007fffe874e4ea in xmlSecNssCryptoCheckMechanism (type=307) at crypto.c:68
	#6  0x00007fffe874ec44 in xmlSecNssUpdateAvailableCryptoTransforms (functions=0x7fffe87ffbc0 <functions>) at crypto.c:401
	#7  0x00007fffe874f13d in xmlSecNssInit () at crypto.c:552
	#8  0x00007fffe86b2c36 in initXmlSec() () at /home/vmiklos/git/libreoffice/core/xmlsecurity/source/xmlsec/xmlsec_init.cxx:42
	#9  0x00007fffdf3c54f2 in DocumentSignatureManager::init() (this=0x7fffffff3970) at /home/vmiklos/git/libreoffice/core/xmlsecurity/source/helper/documentsignaturemanager.cxx:79
	#10 0x00007fffdf43e3da in (anonymous namespace)::DocumentDigitalSignatures::ImplVerifySignatures(com::sun::uno::Reference<com::sun::embed::XStorage> const&, com::sun::uno::Reference<com::sun::io::XInputStream> const&, DocumentSignatureMode)
	     (this=0x1c07ac0, rxStorage=uno::Reference to (OStorage *) 0x1944e18, xSignStream=empty uno::Reference, eMode=DocumentSignatureMode::Macros)
	    at /home/vmiklos/git/libreoffice/core/xmlsecurity/source/component/documentdigitalsignatures.cxx:486
	#11 0x00007fffdf43da17 in (anonymous namespace)::DocumentDigitalSignatures::verifyScriptingContentSignatures(com::sun::uno::Reference<com::sun::embed::XStorage> const&, com::sun::uno::Reference<com::sun::io::XInputStream> const&) (this=0x1c07ac0, rxStorage=uno::Reference to (OStorage *) 0x1944e18, xSignInStream=empty uno::Reference)
	    at /home/vmiklos/git/libreoffice/core/xmlsecurity/source/component/documentdigitalsignatures.cxx:373
	#12 0x00007fffe6fa06df in SfxObjectShell::GetDocumentSignatureInformation(bool, com::sun::uno::Reference<com::sun::security::XDocumentDigitalSignatures> const&)
	     (this=0x188c280, bScriptingContent=true, xSigner=empty uno::Reference) at /home/vmiklos/git/libreoffice/core/sfx2/source/doc/objserv.cxx:1847

Change-Id: I36dee0d2b128a6931875572aa4acc9df940ab623
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161951
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-01-15 08:09:21 +01:00

190 lines
5.1 KiB
Makefile

# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
$(eval $(call gb_Library_Library,xsec_xmlsec))
$(eval $(call gb_Library_set_componentfile,xsec_xmlsec,xmlsecurity/util/xsec_xmlsec,services))
$(eval $(call gb_Library_add_componentimpls,xsec_xmlsec, \
$(if $(ENABLE_GPGMEPP),gpg) \
$(if $(or $(ENABLE_NSS),$(filter WNT,$(OS))),nss_mscrypt) \
$(if $(ENABLE_NSS),nss) \
))
$(eval $(call gb_Library_set_include,xsec_xmlsec,\
$$(INCLUDE) \
-I$(SRCDIR)/xmlsecurity/inc \
-I$(SRCDIR)/xmlsecurity/source/gpg \
-I$(SRCDIR)/xmlsecurity/source/xmlsec \
-I$(call gb_UnpackedTarball_get_dir,xmlsec/include) \
))
$(eval $(call gb_Library_use_custom_headers,xsec_xmlsec,\
officecfg/registry \
))
$(eval $(call gb_Library_use_sdk_api,xsec_xmlsec))
$(eval $(call gb_Library_add_defs,xsec_xmlsec,\
-DXMLSEC_NO_XSLT \
-DXSECXMLSEC_DLLIMPLEMENTATION \
))
$(eval $(call gb_Library_set_precompiled_header,xsec_xmlsec,xmlsecurity/inc/pch/precompiled_xsec_xmlsec))
$(eval $(call gb_Library_use_libraries,xsec_xmlsec,\
comphelper \
cppu \
cppuhelper \
sal \
svl \
tl \
xo \
utl \
))
ifeq ($(SYSTEM_XMLSEC),)
$(eval $(call gb_Library_use_packages,xsec_xmlsec,\
xmlsec \
))
endif
$(eval $(call gb_Library_use_externals,xsec_xmlsec,\
boost_headers \
$(if $(ENABLE_GPGMEPP),gpgmepp) \
libxml2 \
xmlsec \
))
$(eval $(call gb_Library_add_exception_objects,xsec_xmlsec,\
xmlsecurity/source/xmlsec/biginteger \
xmlsecurity/source/xmlsec/certificateextension_certextn \
xmlsecurity/source/xmlsec/errorcallback \
xmlsecurity/source/xmlsec/saxhelper \
xmlsecurity/source/xmlsec/xmldocumentwrapper_xmlsecimpl \
xmlsecurity/source/xmlsec/xmlelementwrapper_xmlsecimpl \
xmlsecurity/source/xmlsec/xmlsec_init \
xmlsecurity/source/xmlsec/xmlstreamio \
))
ifeq ($(ENABLE_GPGMEPP),TRUE)
$(eval $(call gb_Library_add_exception_objects,xsec_xmlsec,\
xmlsecurity/source/gpg/CertificateImpl \
xmlsecurity/source/gpg/CipherContext \
xmlsecurity/source/gpg/DigestContext \
xmlsecurity/source/gpg/SecurityEnvironment \
xmlsecurity/source/gpg/SEInitializer \
xmlsecurity/source/gpg/XMLEncryption \
xmlsecurity/source/gpg/XMLSecurityContext \
xmlsecurity/source/gpg/xmlsignature_gpgimpl \
))
endif
ifeq ($(OS),WNT)
$(eval $(call gb_Library_add_defs,xsec_xmlsec,\
-DXMLSEC_CRYPTO_MSCRYPTO \
))
$(eval $(call gb_Library_add_libs,xsec_xmlsec,\
$(call gb_UnpackedTarball_get_dir,xmlsec)/win32/binaries/libxmlsec-mscng.lib \
$(call gb_UnpackedTarball_get_dir,xmlsec)/win32/binaries/libxmlsec.lib \
))
$(eval $(call gb_Library_use_system_win32_libs,xsec_xmlsec,\
crypt32 \
advapi32 \
ncrypt \
))
$(eval $(call gb_Library_add_exception_objects,xsec_xmlsec,\
xmlsecurity/source/xmlsec/mscrypt/akmngr \
xmlsecurity/source/xmlsec/mscrypt/sanextension_mscryptimpl \
xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl \
xmlsecurity/source/xmlsec/mscrypt/seinitializer_mscryptimpl \
xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl \
xmlsecurity/source/xmlsec/mscrypt/xmlsecuritycontext_mscryptimpl \
xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl \
))
ifeq ($(ENABLE_NSS),TRUE)
$(eval $(call gb_Library_add_exception_objects,xsec_xmlsec,\
xmlsecurity/source/xmlsec/nss/ciphercontext \
xmlsecurity/source/xmlsec/nss/digestcontext \
xmlsecurity/source/xmlsec/nss/nssinitializer \
))
# nss3 after static libs to appease --as-needed linkers
$(eval $(call gb_Library_use_externals,xsec_xmlsec,\
nss3 \
))
endif
else # !$(OS),WNT
ifeq ($(SYSTEM_XMLSEC),)
$(eval $(call gb_Library_add_libs,xsec_xmlsec,\
$(call gb_UnpackedTarball_get_dir,xmlsec)/src/.libs/libxmlsec1.a \
))
endif
ifeq ($(ENABLE_NSS),TRUE)
ifeq ($(SYSTEM_XMLSEC),)
$(eval $(call gb_Library_add_libs,xsec_xmlsec,\
$(call gb_UnpackedTarball_get_dir,xmlsec)/src/nss/.libs/libxmlsec1-nss.a \
))
endif
$(eval $(call gb_Library_add_exception_objects,xsec_xmlsec,\
xmlsecurity/source/xmlsec/nss/ciphercontext \
xmlsecurity/source/xmlsec/nss/digestcontext \
xmlsecurity/source/xmlsec/nss/nssinitializer \
xmlsecurity/source/xmlsec/nss/sanextension_nssimpl \
xmlsecurity/source/xmlsec/nss/secerror \
xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl \
xmlsecurity/source/xmlsec/nss/seinitializer_nssimpl \
xmlsecurity/source/xmlsec/nss/x509certificate_nssimpl \
xmlsecurity/source/xmlsec/nss/xmlsecuritycontext_nssimpl \
xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl \
))
$(eval $(call gb_Library_add_defs,xsec_xmlsec,\
-DXMLSEC_CRYPTO_NSS \
))
$(eval $(call gb_Library_use_externals,xsec_xmlsec,\
plc4 \
))
# nss3 after static libs to appease --as-needed linkers
$(eval $(call gb_Library_use_externals,xsec_xmlsec,\
nss3 \
nssutil3 \
))
else # ! $(ENABLE_NSS)
ifeq ($(ENABLE_OPENSSL),TRUE)
$(eval $(call gb_Library_use_external,xsec_xmlsec,openssl))
endif
endif # !$(ENABLE_NSS)
ifeq ($(OS),SOLARIS)
$(eval $(call gb_Library_add_libs,xsec_xmlsec,\
-ldl \
))
endif
endif # !$(OS),WNT
# vim: set noet sw=4 ts=4: