summaryrefslogtreecommitdiff
path: root/script
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2021-08-23 12:56:15 +0000
committerStefan Metzmacher <metze@samba.org>2021-11-30 15:53:34 +0000
commit6745968a15497c88646c1213ec6a8b198e624abb (patch)
tree2eb212bc4f6731b7b88454a7687c16c6e73b1f1f /script
parent4862a8ff2f02cf7c735d666520846f6a0d63c6b0 (diff)
downloadsamba-6745968a15497c88646c1213ec6a8b198e624abb.tar.gz
script/autobuild.py: make sure nss, pam and krb5 plugins don't provide unexpected symbols
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14780 Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'script')
-rwxr-xr-xscript/autobuild.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/script/autobuild.py b/script/autobuild.py
index 5bae1dbdbaf..041169e022e 100755
--- a/script/autobuild.py
+++ b/script/autobuild.py
@@ -120,6 +120,12 @@ else:
CLEAN_SOURCE_TREE_CMD = "cd ${TEST_SOURCE_DIR} && script/clean-source-tree.sh"
+def nm_grep_symbols(sofile, expected_symbols=""):
+ return "nm " + sofile + " | " + \
+ "egrep -v ' (__bss_start|_edata|_init|_fini|_end)' | " + \
+ "egrep -v '" + expected_symbols + "' |" + \
+ "egrep ' [BDGTRVWS] ' && exit 1; exit 0;"
+
if args:
# If we are only running specific test,
# do not sleep randomly to wait for it to start
@@ -842,6 +848,18 @@ tasks = {
("nondevel-no-samba-nss_wins", "ldd ./bin/plugins/libnss_wins.so.2 | grep 'samba' && exit 1; exit 0"),
("nondevel-no-samba-libwbclient", "ldd ./bin/shared/libwbclient.so.0 | grep 'samba' && exit 1; exit 0"),
("nondevel-no-samba-pam_winbind", "ldd ./bin/plugins/pam_winbind.so | grep -v 'libtalloc.so.2' | grep 'samba' && exit 1; exit 0"),
+ ("nondevel-no-public-nss_winbind",
+ nm_grep_symbols("./bin/plugins/libnss_winbind.so.2", " T _nss_winbind_")),
+ ("nondevel-no-public-nss_wins",
+ nm_grep_symbols("./bin/plugins/libnss_wins.so.2", " T _nss_wins_")),
+ ("nondevel-no-public-libwbclient",
+ nm_grep_symbols("./bin/shared/libwbclient.so.0", " T wbc")),
+ ("nondevel-no-public-pam_winbind",
+ nm_grep_symbols("./bin/plugins/pam_winbind.so", "T pam_sm_")),
+ ("nondevel-no-public-winbind_krb5_locator",
+ nm_grep_symbols("./bin/plugins/winbind_krb5_locator.so", " D resolve\>")),
+ ("nondevel-no-public-async_dns_krb5_locator",
+ nm_grep_symbols("./bin/plugins/async_dns_krb5_locator.so", " D resolve\>")),
("nondevel-install", "make -j install"),
("nondevel-dist", "make dist"),
@@ -853,6 +871,18 @@ tasks = {
("prefix-no-samba-nss_wins", "ldd ${PREFIX_DIR}/lib/libnss_wins.so.2 | grep 'samba' && exit 1; exit 0"),
("prefix-no-samba-libwbclient", "ldd ${PREFIX_DIR}/lib/libwbclient.so.0 | grep 'samba' && exit 1; exit 0"),
("prefix-no-samba-pam_winbind", "ldd ${PREFIX_DIR}/lib/security/pam_winbind.so | grep -v 'libtalloc.so.2' | grep 'samba' && exit 1; exit 0"),
+ ("prefix-no-public-nss_winbind",
+ nm_grep_symbols("${PREFIX_DIR}/lib/libnss_winbind.so.2", " T _nss_winbind_")),
+ ("prefix-no-public-nss_wins",
+ nm_grep_symbols("${PREFIX_DIR}/lib/libnss_wins.so.2", " T _nss_wins_")),
+ ("prefix-no-public-libwbclient",
+ nm_grep_symbols("${PREFIX_DIR}/lib/libwbclient.so.0", " T wbc")),
+ ("prefix-no-public-pam_winbind",
+ nm_grep_symbols("${PREFIX_DIR}/lib/security/pam_winbind.so", "T pam_sm_")),
+ ("prefix-no-public-winbind_krb5_locator",
+ nm_grep_symbols("${PREFIX_DIR}/lib/krb5/winbind_krb5_locator.so", " D resolve\>")),
+ ("prefix-no-public-async_dns_krb5_locator",
+ nm_grep_symbols("${PREFIX_DIR}/lib/krb5/async_dns_krb5_locator.so", " D resolve\>")),
# retry with all modules shared
("allshared-distclean", "make distclean"),
@@ -866,6 +896,18 @@ tasks = {
("allshared-no-samba-nss_wins", "ldd ./bin/plugins/libnss_wins.so.2 | grep 'samba' && exit 1; exit 0"),
("allshared-no-samba-libwbclient", "ldd ./bin/plugins/libwbclient.so.0 | grep 'samba' && exit 1; exit 0"),
("allshared-no-samba-pam_winbind", "ldd ./bin/plugins/pam_winbind.so | grep -v 'libtalloc.so.2' | grep 'samba' && exit 1; exit 0"),
+ ("allshared-no-public-nss_winbind",
+ nm_grep_symbols("./bin/plugins/libnss_winbind.so.2", " T _nss_winbind_")),
+ ("allshared-no-public-nss_wins",
+ nm_grep_symbols("./bin/plugins/libnss_wins.so.2", " T _nss_wins_")),
+ ("allshared-no-public-libwbclient",
+ nm_grep_symbols("./bin/plugins/libwbclient.so.0", " T wbc")),
+ ("allshared-no-public-pam_winbind",
+ nm_grep_symbols("./bin/plugins/pam_winbind.so", "T pam_sm_")),
+ ("allshared-no-public-winbind_krb5_locator",
+ nm_grep_symbols("./bin/plugins/winbind_krb5_locator.so", " D resolve\>")),
+ ("allshared-no-public-async_dns_krb5_locator",
+ nm_grep_symbols("./bin/plugins/async_dns_krb5_locator.so", " D resolve\>")),
],
},