summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNiels de Vos <ndevos@redhat.com>2014-05-19 09:25:34 +0200
committerAnand Avati <avati@redhat.com>2014-05-21 22:21:49 -0700
commit79de5b63775f1ab8e2e498fd51b55509a30cd896 (patch)
treed5f11ada8dbb389f01711b05eb2530490e17b6a7
parent0a77eb1e4576d8722b27a42c98879cc7250e00fe (diff)
tests/rpm: always run ./autogen.sh to create missing files
In some occasions 'install-sh' seems to be missing in the 'make dist' tarball when ./autogen.sh has not been run (skipped when 'configure' exists). With this changes, 'autogen.sh' is always run so that missing files should get added to the tarball. Also write the logs from mock to a known location, and copy them to the '/var/log/' directory that Jenkins archives after a regression test failure. This makes it easier to find build issues that mock detects. Change-Id: I8d0cf1afef61ebab0137aa0d20521e75a35ddbdd BUG: 1038391 Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: http://review.gluster.org/7786 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> Reviewed-by: Anand Avati <avati@redhat.com>
-rw-r--r--glusterfs.spec.in7
-rwxr-xr-xtests/basic/rpm.t35
2 files changed, 35 insertions, 7 deletions
diff --git a/glusterfs.spec.in b/glusterfs.spec.in
index 6d67a93a338..ca9b2faa4c9 100644
--- a/glusterfs.spec.in
+++ b/glusterfs.spec.in
@@ -473,7 +473,9 @@ This package provides the glusterfs server daemon.
%setup -q -n %{name}-%{version}%{?prereltag}
%build
-./autogen.sh
+# For whatever reason, install-sh is sometimes missing. When this gets fixed,
+# there is no need to run ./autogen or have a BuildRequires for automake.
+[ -e 'install-sh' -o -e 'install.sh' ] || ./autogen.sh
%configure \
%{?_without_rdma} \
%{?_without_epoll} \
@@ -1011,6 +1013,9 @@ fi
%ghost %attr(0600,-,-) %{_sharedstatedir}/glusterd/nfs/run/nfs.pid
%changelog
+* Tue May 20 2014 Niels de Vos <ndevos@redhat.com>
+- Almost drop calling ./autogen.sh
+
* Fri Apr 25 2014 Kaleb S. KEITHLEY <kkeithle@redhat.com>
- Sync with Fedora spec (#1091408, #1091392)
diff --git a/tests/basic/rpm.t b/tests/basic/rpm.t
index a577726a82b..cea56ced6a3 100755
--- a/tests/basic/rpm.t
+++ b/tests/basic/rpm.t
@@ -52,24 +52,40 @@ REPO=${PWD}
COMMIT=$(git describe)
mkdir rpmbuild-mock.d
pushd rpmbuild-mock.d 2>/dev/null
-git clone -q -s file://${REPO} .
-git checkout -q -b rpm-test ${COMMIT}
+
+function git_quiet() {
+ git ${@} 2>&1 > /dev/null
+}
+
+TEST git_quiet clone -s file://${REPO} .
+TEST git_quiet checkout -b rpm-test ${COMMIT}
# build the glusterfs-*.tar.gz
-[ -e configure ] || ./autogen.sh 2>&1 > /dev/null
-TEST ./configure --enable-fusermount
+function build_srpm_from_tgz() {
+ rpmbuild -ts $1 \
+ --define "_srcrpmdir ${PWD}" \
+ --define '_source_payload w9.gzdio' \
+ --define '_source_filedigest_algorithm 1'
+}
+
+TEST ./autogen.sh
+TEST ./configure
TEST make dist
# build the glusterfs src.rpm
-ls extras
-TEST make -C extras/LinuxRPM testsrpm
+TEST build_srpm_from_tgz ${PWD}/*.tar.gz
# build for the last two Fedora EPEL releases (x86_64 only)
for MOCK_CONF in $(ls -x1 /etc/mock/*.cfg | egrep -e 'epel-[0-9]+-x86_64.cfg$' | tail -n2)
do
EPEL_RELEASE=$(basename ${MOCK_CONF} .cfg)
+ mkdir -p "${PWD}/mock.d/${EPEL_RELEASE}"
+ chgrp mock "${PWD}/mock.d/${EPEL_RELEASE}"
+ chmod 0775 "${PWD}/mock.d/${EPEL_RELEASE}"
+ MOCK_RESULTDIR="--resultdir ${PWD}/mock.d/${EPEL_RELEASE}"
# expand the mock command line
MOCK_CMD="/usr/bin/mock ${MOCK_CLEANUP} \
+ ${MOCK_RESULTDIR} \
-r ${EPEL_RELEASE} --rebuild ${PWD}/*.src.rpm"
# write the mock command to a file, so that its easier to execute
@@ -102,6 +118,13 @@ done
# possible on EPEL-5/6 installations, Fedora 17 and newer have unmet
# dependencies on the build-server :-/
+# logs are archived by Jenkins
+if [ -d '/build/install/var' ]
+then
+ LOGS=$(find mock.d -type f -name '*.log')
+ [ -n "${LOGS}" ] && xargs cp --parents ${LOGS} /build/install/var/
+fi
+
popd 2>/dev/null
# only remove rpmbuild-mock.d if we're not debugging
[ "${DEBUG}" = "0" ] && rm -rf rpmbuild-mock.d