On 03/05/2017 11:54 AM, Stephan Bergmann wrote:
commit f764d67da42caa71fd5e02146b1ca32680ae2f6e
Author: Stephan Bergmann <[email protected]>
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.
_______________________________________________
LibreOffice mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to