summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin@redhat.com>2013-07-19 15:52:31 -0400
committerNalin Dahyabhai <nalin@redhat.com>2013-07-19 15:52:31 -0400
commit36dbacb706603c3d23fe7246f9df277e22fef8c1 (patch)
tree0764f5bdf6d1bc741d6f867d3ce9f834ef229b51
parent909ac318c31fffd68677b4142ef82be8ac64c7da (diff)
downloadkrb5-36dbacb706603c3d23fe7246f9df277e22fef8c1.tar.gz
krb5-36dbacb706603c3d23fe7246f9df277e22fef8c1.tar.xz
krb5-36dbacb706603c3d23fe7246f9df277e22fef8c1.zip
Use LD_PRELOAD to be able to run more self-tests
Use nss_wrapper (from cwrap.org) to be able to run more of the self-tests during %%check. Help it along a little bit by being more emphatic about cutting off access to DNS.
-rw-r--r--krb5.spec47
-rw-r--r--sources1
2 files changed, 42 insertions, 6 deletions
diff --git a/krb5.spec b/krb5.spec
index 3bf92aa..ff92bdb 100644
--- a/krb5.spec
+++ b/krb5.spec
@@ -30,7 +30,7 @@
Summary: The Kerberos network authentication system
Name: krb5
Version: 1.11.3
-Release: 3%{?dist}
+Release: 4%{?dist}
# Maybe we should explode from the now-available-to-everybody tarball instead?
# http://web.mit.edu/kerberos/dist/krb5/1.11/krb5-1.11.3-signed.tar
Source0: krb5-%{version}.tar.gz
@@ -56,6 +56,11 @@ Source36: kpropd.init
Source37: kadmind.init
Source38: krb5kdc.init
+BuildRequires: cmake, strace
+# Carry this locally until it's available in a packaged form.
+Source100: nss_wrapper.tar.bz2
+Source101: noport53.c
+
Patch5: krb5-1.10-ksu-access.patch
Patch6: krb5-1.10-ksu-path.patch
Patch12: krb5-1.7-ktany.patch
@@ -136,7 +141,7 @@ BuildRequires: perl, dejagnu, tcl-devel
BuildRequires: net-tools, rpcbind
%if 0%{?fedora} >= 13 || 0%{?rhel} > 6
BuildRequires: hostname
-BuildRequires: nss-myhostname
+BuildRequires: iproute
%endif
%if %{WITH_LDAP}
@@ -278,7 +283,7 @@ to obtain initial credentials from a KDC using a private key and a
certificate.
%prep
-%setup -q -n %{name}-%{version} -a 3
+%setup -q -n %{name}-%{version} -a 3 -a 100
ln -s NOTICE LICENSE
%patch60 -p1 -b .pam
@@ -337,6 +342,9 @@ pushd src
./util/reconf --verbose
popd
+# Create build space for the test wrapper.
+mkdir -p nss_wrapper/build
+
%build
# Go ahead and supply tcl info, because configure doesn't know how to find it.
. %{_libdir}/tclConfig.sh
@@ -407,12 +415,31 @@ for pdf in admin appdev basic build plugindev user ; do
test -s build-pdf/$pdf.pdf || make -C build-pdf
done
+# Build the test wrapper.
+pushd nss_wrapper/build
+cmake ..
+make
+popd
+
+# We need to cut off any access to locally-running nameservers, too.
+%{__cc} -fPIC -shared -o noport53.so -Wall -Wextra $RPM_SOURCE_DIR/noport53.c
+
%check
-# Run the test suite. We can't actually run the whole thing in the build system.
+# Set things up to use the test wrappers.
+NSS_WRAPPER_HOSTNAME=test.example.com ; export NSS_WRAPPER_HOSTNAME
+NSS_WRAPPER_HOSTS="`pwd`/nss_wrapper/fakehosts" ; export NSS_WRAPPER_HOSTS
+echo 127.0.0.1 $NSS_WRAPPER_HOSTNAME $NSS_WRAPPER_HOSTNAME >"$NSS_WRAPPER_HOSTS"
+NOPORT53=1; export NOPORT53
+LD_PRELOAD=`pwd`/noport53.so:`pwd`/nss_wrapper/build/src/libnss_wrapper.so ; export LD_PRELOAD
+
+# Run the test suite. We can't actually run the whole thing in the build
+# system, but we can at least run more than we used to.
make -C src runenv.py
: make -C src check TMPDIR=%{_tmppath}
-make -C src/lib check TMPDIR=%{_tmppath}
+make -C src/lib check TMPDIR=%{_tmppath} OFFLINE=yes
make -C src/kdc check TMPDIR=%{_tmppath}
+make -C src/appl check TMPDIR=%{_tmppath}
+make -C src/clients check TMPDIR=%{_tmppath}
make -C src/util check TMPDIR=%{_tmppath}
%install
@@ -837,6 +864,14 @@ exit 0
%{_sbindir}/uuserver
%changelog
+* Fri Jul 19 2013 Nalin Dahyabhai <nalin@redhat.com> 1.11.3-4
+- use (a bundled, for now, copy of) nss_wrapper to let us run some of the
+ self-tests at build-time in more places than we could previously (#978756)
+- cover inconsistencies in whether or not there's a local caching nameserver
+ that's willing to answer when the build environment doesn't have a
+ resolver configuration, so that nss_wrapper's faking of the local
+ hostname can be complete
+
* Mon Jul 1 2013 Nalin Dahyabhai <nalin@redhat.com> 1.11.3-3
- specify dependencies on the same arch of krb5-libs by using the %%{?_isa}
suffix, to avoid dragging 32-bit libraries onto 64-bit systems (#980155)
@@ -956,7 +991,7 @@ exit 0
wrapper in the client transmit functions
* Fri Feb 8 2013 Nalin Dahyabhai <nalin@redhat.com> 1.11-2
-- set "rdns = false" in the default krb5.conf (#908323)
+- set "rdns = false" in the default krb5.conf (#908323,#908324)
* Tue Dec 18 2012 Nalin Dahyabhai <nalin@redhat.com> 1.11-1
- update to 1.11 release
diff --git a/sources b/sources
index caccaa5..4b700f3 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,4 @@
017285971f1038a32261b15c128502f0 krb5-1.11.3.tar.gz
a9dc7e280af5ac23833d0c951fe44036 krb5-1.11.3.tar.gz.asc
731b6fa7c98b88920fc8f5b934a6187a krb5-1.11.3-pdf.tar.xz
+dd40e1ab5f8bad4a0a008bc110c20058 nss_wrapper.tar.bz2