Date: prev next · Thread: first prev next last
2017 Archives by date, by thread · List index


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


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.