diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 81f74328a5..affa686c98 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -34,7 +34,7 @@ variables: WITH_READLINE_LIBEDIT: "--with-readline=libedit" WITH_READLINE_READLINE: "--with-readline=readline" - BIND_INSTALL_PATH: "${CI_PROJECT_DIR}/.local" + INSTALL_PATH: "${CI_PROJECT_DIR}/.local" # In multithreaded unit tests, abort on the first failure CMOCKA_TEST_ABORT: 1 @@ -233,7 +233,6 @@ stages: --with-cmocka \ --with-libxml2 \ --with-json-c \ - --prefix="${BIND_INSTALL_PATH}" \ $EXTRA_CONFIGURE \ || (test -s config.log && cat config.log; exit 1) @@ -274,8 +273,8 @@ stages: - *configure - *check_readline_setup - 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 - if test -z "${OUT_OF_TREE_WORKSPACE}" && test "$(git status --porcelain | grep -Ev '\?\?' | wc -l)" -gt "0"; then git status --short; exit 1; fi after_script: @@ -1420,10 +1419,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" BIND_INSTALL_PATH="${INSTALL_PATH}/usr/local" WORKSPACE="${CI_PROJECT_DIR}" bash stress.sh needs: - job: autoreconf artifacts: true diff --git a/doc/Makefile.am b/doc/Makefile.am index 2811d5a65b..34884c6153 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -4,6 +4,10 @@ if HAVE_PERL SUBDIRS += misc endif +# Do not change this line to "SUBDIRS = man" at the top of this file: in +# maintainer mode, the "man" subdirectory depends on the "misc" subdirectory. +SUBDIRS += man + if HAVE_SPHINX_BUILD -SUBDIRS += man arm +SUBDIRS += arm endif HAVE_SPHINX_BUILD diff --git a/util/check-make-install.in b/util/check-make-install.in index 061a9300e6..ed4c827e4b 100644 --- a/util/check-make-install.in +++ b/util/check-make-install.in @@ -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; 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