Blob Blame History Raw
#
# krb5-tests_use_libs_from_build.patch - patch to ensure the tests
# in the upstream sources use the libraries from the local tree
# and not those from the underlying build system.
3
# Originally repoted as RedHat Bug #1164304 ("Upstream unit tests loads
# the installed shared libraries instead the ones from the build")
# 
# 
# Description of problem:
# krb5-1.12.2/src/lib/kadm5/unit-test fails (segfaults) when
# krb5-pkinit is installed on the sysytem.
# Monitoring via audit showed that unit tests from this directory
# loads pkinit.so from the installed package and not the one that
# was built.
# On top of that, monitoring showed that libs from the installed
# krb5-libs (whatever version installed) are loaded too.
# This questions the effectiveness of upstream testing.
# 
# Version-Release number of selected component (if applicable):
# krb5-libs-1.12.2-8.el7
# 
# How reproducible:
# always
# 
# Steps to Reproduce:
# 
# # rpm -qa krb5\*
# krb5-devel-1.11.3-49.el7.ppc64
# krb5-libs-1.11.3-49.el7.ppc64
# krb5-pkinit-1.11.3-49.el7.ppc64
# #
# # rpm -ivh krb5-1.12.2-8.el7.src.rpm 
# ... snip ...
# # rpmbuild -bc ~/rpmbuild/SPECS/krb5.spec 
# ... snip ...
# #
# # cd ~/rpmbuild/BUILD/krb5-1.12.2/src/
# # make runenv.py
# LD_LIBRARY_PATH=`echo -L./lib | sed -e "s/-L//g" -e "s/ /:/g"`; export LD_LIBRARY_PATH;  \
# for i in LD_LIBRARY_PATH; do \
# 	eval echo 'env['\\\'$i\\\''] = '\\\'\$$i\\\'; \
# done > pyrunenv.vals
# echo "proxy_tls_impl = 'openssl'" >> pyrunenv.vals
# echo 'env = {}' > runenv.py
# cat pyrunenv.vals >> runenv.py
# # cd lib/kadm5/unit-test/
# # make check
# .. snip ...
# 	KINIT=../../../clients/kinit/kinit \
# 	KDESTROY=../../../clients/kdestroy/kdestroy \
# 	KADMIN_LOCAL=../../../kadmin/cli/kadmin.local \
# 	PRIOCNTL_HACK=0 VALGRIND="" \
# 	
# WARNING: Couldn't find the global config file.
# WARNING: Couldn't find tool init file
# Test Run By root on Fri Nov 14 10:30:35 2014
# Native configuration is powerpc64-redhat-linux-gnu
# 
# 		=== api tests ===
# 
# Schedule of variations:
#     unix
# 
# Running target unix
# Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
# Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
# Using ./config/unix.exp as tool-and-target-specific interface file.
# Running ./api.2/crte-policy.exp ...
# FAIL: create-policy 1: eof
# ERROR: create-policy 1: unexpected failure in init
# ERROR: create-policy 2: unexpected failure in init
# ERROR: create-policy 3: unexpected failure in init
# 
diff -ur krb5/src/kadmin/testing/proto/krb5.conf.proto krb5/src/kadmin/testing/proto/krb5.conf.proto
--- krb5/src/kadmin/testing/proto/krb5.conf.proto	2014-11-14 10:16:22.106948323 -0500
+++ krb5/src/kadmin/testing/proto/krb5.conf.proto	2014-11-14 10:14:16.955948323 -0500
@@ -2,6 +2,7 @@
 	default_realm = __REALM__
 	default_keytab_name = FILE:__K5ROOT__/v5srvtab
 	dns_fallback = no
+	plugin_base_dir = __PLUGIN_DIR__
 
 [realms]
 	__REALM__ = {
diff -ur krb5/src/kadmin/testing/scripts/start_servers krb5/src/kadmin/testing/scripts/start_servers
--- krb5/src/kadmin/testing/scripts/start_servers	2014-08-11 18:46:27.000000000 -0400
+++ krb5/src/kadmin/testing/scripts/start_servers	2014-11-14 10:14:56.409948323 -0500
@@ -40,6 +40,7 @@
 		-e "s/__KDCHOST__/$hostname/g" \
 		-e "s/__LOCALHOST__/$localname/g" \
 		-e "s#__MODDIR__#$TOP/../plugins/kdb#g"\
+		-e "s#__PLUGIN_DIR__#$TOP/../plugins#g"\
 		< $STESTDIR/proto/krb5.conf.proto > $K5ROOT/krb5.conf
 
 # Using /usr/ucb/rsh and getting rid of "-k $REALM" until we get