Compare commits

...

3 Commits

Author SHA1 Message Date
Michal Nowak
64cfc9cc88 fixup! fixup! Install BIND with "make DESTDIR=<PATH> install" 2021-05-18 17:39:25 +02:00
Michał Kępień
118ece0dd8 fixup! Install BIND with "make DESTDIR=<PATH> install" 2021-05-18 17:17:39 +02:00
Michal Nowak
448b055442 Install BIND with "make DESTDIR=<PATH> install"
BIND installation should be done by setting DESTDIR during "make
install" not by setting prefix via ./configure.

Make sure that installation with DESTDIR=<PATH> works by checking that
named binary and it's respective man page were installed and that
well-known BIND9 directories - and only them - are present in DESTDIR.

Also rename install path variable from BIND_INSTALL_PATH to
INSTALL_PATH to avoid namespace clash in stress tests which use
BIND_INSTALL_PATH variable to configure path to BIND9 binaries.
2021-05-18 17:17:12 +02:00
2 changed files with 32 additions and 6 deletions

View File

@@ -30,7 +30,7 @@ variables:
TARBALL_COMPRESSOR: xz
TARBALL_EXTENSION: xz
BIND_INSTALL_PATH: "${CI_PROJECT_DIR}/.local"
INSTALL_PATH: "${CI_PROJECT_DIR}/.local"
# Disable pytest's "cacheprovider" plugin to prevent it from creating
# cross-testrun files as there is no need to use that feature in CI.
@@ -226,7 +226,7 @@ stages:
--with-cmocka \
--with-libxml2 \
--with-json-c \
--prefix="${BIND_INSTALL_PATH}" \
--prefix="${INSTALL_PATH}" \
--without-make-clean \
$EXTRA_CONFIGURE \
|| (test -s config.log && cat config.log; exit 1)
@@ -242,8 +242,8 @@ stages:
- test -n "${SKIP_MAKE_DEPEND}" || make -j${BUILD_PARALLEL_JOBS:-1} depend 2>&1 | tee make-depend.log
- test -n "${SKIP_MAKE_DEPEND}" || ( ! grep -F "error:" make-depend.log )
- make -j${BUILD_PARALLEL_JOBS:-1} -k all V=1
- test -z "${RUN_MAKE_INSTALL}" || make install
- test -z "${RUN_MAKE_INSTALL}" || sh util/check-make-install
- test -z "${RUN_MAKE_INSTALL}" || make DESTDIR="${INSTALL_PATH}" install
- test -z "${RUN_MAKE_INSTALL}" || DESTDIR="${INSTALL_PATH}" sh util/check-make-install
- if [[ "${CFLAGS}" == *"-fsanitize=address"* ]]; then ( ! grep -F AddressSanitizer config.log ); fi
needs:
- job: autoreconf
@@ -1394,10 +1394,10 @@ respdiff:
- *setup_interfaces
- *setup_softhsm
- make -j${BUILD_PARALLEL_JOBS:-1} -k all V=1
- make install
- make DESTDIR="${INSTALL_PATH}" install
- git clone --depth 1 https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.isc.org/isc-private/bind-qa.git
- cd bind-qa/bind9/stress
- DIG="${BIND_INSTALL_PATH}/bin/dig" WORKSPACE="${CI_PROJECT_DIR}" bash stress.sh
- LD_LIBRARY_PATH="${INSTALL_PATH}/usr/local/lib" INSTALL_PATH="${INSTALL_PATH}/usr/local" WORKSPACE="${CI_PROJECT_DIR}" bash stress.sh
needs:
- job: autoreconf
artifacts: true

View File

@@ -10,8 +10,10 @@
# information regarding copyright ownership.
abs_top_srcdir=@abs_top_srcdir@
abs_builddir=@abs_builddir@
prefix=@prefix@
includedir=@includedir@
install_dir="${DESTDIR}@prefix@"
headers_to_install() {
find "${abs_top_srcdir}/lib" -name "*.h" -or -name "*.h.in" |
@@ -31,4 +33,28 @@ for header in $(headers_to_install); do
fi
done
named_binary_path="${install_dir}/sbin/named"
if [ ! -x "${named_binary_path}" ]; then
echo "ERROR: ${named_binary_path} does not exist or is not executable"
status=1
fi
named_man_page_path="${install_dir}/share/man/man8/named.8"
if [ ! -f "${named_man_page_path}" ]; then
echo "ERROR: ${named_man_page_path} does not exist"
status=1
fi
if [ -n "${DESTDIR}" ]; then
for expected_subdir in bin etc include lib sbin share var; do
echo "${install_dir}/${expected_subdir}" >> "${abs_builddir}/expected_dirs"
done
find "${install_dir}" -maxdepth 1 -mindepth 1 -type d | sort > "${abs_builddir}/existing_dirs"
if ! diff -u "${abs_builddir}/expected_dirs" "${abs_builddir}/existing_dirs"; then
echo "ERROR: Contents of DESTDIR do not match expectations"
status=1
fi
rm -f "${abs_builddir}/expected_dirs" "${abs_builddir}/existing_dirs"
fi
exit $status