autotools: more strict compatibility check (part of BMC #21284)
Some unintended usage of libical slipped into the 1.1.99.5 syncevolution.org binaries, breaking the syncwebdav.so. It wasn't linked against libical, but depended on some of its methods. This commit strenghtens the installcheck-local test. First, it checks for undefined symbols in the blacklisted libraries (detects the syncwebdav.so case). Second, it also checks for the blacklisted libraries (might be linked unnecessarily, for example when forgetting to add -Wl,--as-needed). Third, it checks syncevolution (relevant when linking everything statically). Finally, it does the check on the installed files (should have been like that all along).
This commit is contained in:
parent
3189e05830
commit
586cfc7858
16
Makefile.am
16
Makefile.am
|
@ -207,13 +207,21 @@ dist-hook:
|
|||
fi
|
||||
|
||||
if ENABLE_EVOLUTION_COMPATIBILITY
|
||||
# check .so (relevant for modular builds) and main syncevolution binary
|
||||
# (relevant in that case and for static builds) for dependencies on
|
||||
# problematic libraries and symbols
|
||||
#
|
||||
# ical_strdup is an exception because it is in SyncEvolution.
|
||||
installcheck-local:
|
||||
for i in `find . -name *.so`; do \
|
||||
if ldd $$i | grep -e libecal -e libebook -e libedata -e libical -e libbluetooth; then \
|
||||
for i in `find $(DESTDIR)/$(libdir)/syncevolution $(DESTDIR)/$(libdir)/libsyncevo* $(DESTDIR)/$(libdir)/libsynthesis* -name *.so` $(DESTDIR)/$(bindir)/syncevolution; do \
|
||||
if objdump -T -C $$i | grep -v :: | grep '\*UND\*' | sort | grep -v -w ical_strdup | grep -e ical -e " e_"; then \
|
||||
echo "$$i should not depend on EDS, libical or libbluetooth"; \
|
||||
objdump -T -C $$i | grep -v :: | grep -e ical -e " e_"; \
|
||||
exit 1; \
|
||||
fi \
|
||||
fi; \
|
||||
if ldd $$i | grep -e libecal -e libebook -e libedata -e libical -e libbluetooth; then \
|
||||
echo "$$i should not be linked against EDS, libical or libbluetooth"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
done
|
||||
endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue