On 03/05/2017 11:54 AM, Stephan Bergmann wrote:
commit f764d67da42caa71fd5e02146b1ca32680ae2f6e
Author: Stephan Bergmann <sbergman@redhat.com>
Date: Sun Mar 5 11:54:05 2017 +0100
Fix Executable_pdfverify dependencies on Linux
Change-Id: Idf5561baaa714834e8e763e379a79d084e21dc80
diff --git a/xmlsecurity/Executable_pdfverify.mk b/xmlsecurity/Executable_pdfverify.mk
index 9a67a78..9364e39 100644
--- a/xmlsecurity/Executable_pdfverify.mk
+++ b/xmlsecurity/Executable_pdfverify.mk
@@ -34,4 +34,16 @@ $(eval $(call gb_Executable_add_exception_objects,pdfverify,\
xmlsecurity/workben/pdfverify \
))
+# Library_xmlsecurity links against Library_xsec_gpg (on certain OS), which
+# links against gpgmepp dynamic library from external project gpgmepp, which
+# (for non-SYSTEM_GPGMEPP) is delivered to instdir/program in
+# ExternalPackage_gpgme, and at least the Linux linker wants to see all
+# (recursively) linked libraries when linking an executable:
+ifneq ($(filter-out WNT MACOSX ANDROID IOS,$(OS)),)
+ifneq ($(SYSTEM_GPGMEPP),TRUE)
+$(call gb_Executable_get_target,pdfverify): \
+ $(call gb_ExternalPackage_get_target,gpgme)
+endif
+endif
+
# vim:set noet sw=4 ts=4:
So I expected there would be more problems like this hidden around,
where (on Linux, at least) an executable gets built that links against a
dynamic library that in turn links against a dynamic library delivered
from some ExternalPackage. But running the script
my_clean=
for i in $(ls external/*/ExternalPackage_*.mk); do
my_clean="$my_clean $(basename "${i%.mk}").clean"
done
for i in $(find . -name Executable_\*.mk); do
make -O -j4 -k $my_clean >/dev/null 2>&1
i=$(basename "${i%.mk}")
echo "==== BUILDING $i:"
make -O -j4 "$i".clean && make -O -j4 "$i"
done
(which, for every Executable first cleans all ExternalPackages and then
tries to build the Executable; it misses out on some executables where
the spelling of the file name doesn't match the gb_Executable name, as
in shell/Executable_uri_encode.mk vs.
gb_Executable_Executable,uri-encode)---apart from taking surprising long
to run---didn't find any further cases of such missing dependencies. So
either there really aren't any, or my /usr/lib64 happened to contain
enough libraries to erroneously and silently satisfy all the other demands.
Context
- Re: [Libreoffice-commits] core.git: Fix Executable_pdfverify dependencies on Linux · Stephan Bergmann
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.