variables:
- $CI_COMMIT_TAG || ($BIND_STRESS_TEST_OS =~ /freebsd/i && $BIND_STRESS_TEST_MODE =~ /recursive/i && $BIND_STRESS_TEST_ARCH =~ /amd64/i)
-# ABI check
-
-abi-check:
- <<: *base_image
- stage: build
- needs:
- - job: autoreconf
- artifacts: true
- variables:
- CC: gcc
- CFLAGS: "${CFLAGS_COMMON} -Og"
- EXTRA_CONFIGURE: "--enable-dnstap --with-libidn2"
- BIND_BASELINE_VERSION: v9_16_11
- script:
- - *configure
- - make -j${BUILD_PARALLEL_JOBS:-1} V=1
- - git clone --branch "${BIND_BASELINE_VERSION}" --depth 1 https://gitlab.isc.org/isc-projects/bind9.git refbind
- - cd refbind/
- - *configure
- - make -j${BUILD_PARALLEL_JOBS:-1} V=1
- - cd ..
- - util/api-checker.sh . refbind
- artifacts:
- paths:
- - "*-lib*.html"
- - "*-lib*.txt"
- - "abi-*.dump"
- expire_in: "1 week"
- only:
- - main@isc-projects/bind9
- - /^v9_[1-9][0-9]$/@isc-projects/bind9
-
gcov:
<<: *base_image
<<: *default_triggering_rules
SHELL'
ac_subst_files='BIND9_MAKE_INCLUDES
BIND9_MAKE_RULES
-LIBISC_API
-LIBISCCC_API
-LIBISCCFG_API
-LIBDNS_API
LIBDNS_MAPAPI
-LIBBIND9_API
-LIBIRS_API
-LIBNS_API
DLZ_DRIVER_RULES'
ac_user_opts='
enable_option_checking
-LIBISC_API="$srcdir/lib/isc/api"
-
-
-LIBISCCC_API="$srcdir/lib/isccc/api"
-
-
-LIBISCCFG_API="$srcdir/lib/isccfg/api"
-
-
-LIBDNS_API="$srcdir/lib/dns/api"
-
-
LIBDNS_MAPAPI="$srcdir/lib/dns/mapapi"
-
-LIBBIND9_API="$srcdir/lib/bind9/api"
-
-
-LIBIRS_API="$srcdir/lib/irs/api"
-
-
-LIBNS_API="$srcdir/lib/ns/api"
-
#
# Configure any DLZ drivers.
#
BIND9_CONFIGARGS="CONFIGARGS=${BIND9_CONFIGARGS}"
AC_SUBST(BIND9_CONFIGARGS)
-AC_SUBST_FILE(LIBISC_API)
-LIBISC_API="$srcdir/lib/isc/api"
-
-AC_SUBST_FILE(LIBISCCC_API)
-LIBISCCC_API="$srcdir/lib/isccc/api"
-
-AC_SUBST_FILE(LIBISCCFG_API)
-LIBISCCFG_API="$srcdir/lib/isccfg/api"
-
-AC_SUBST_FILE(LIBDNS_API)
-LIBDNS_API="$srcdir/lib/dns/api"
-
AC_SUBST_FILE(LIBDNS_MAPAPI)
LIBDNS_MAPAPI="$srcdir/lib/dns/mapapi"
-AC_SUBST_FILE(LIBBIND9_API)
-LIBBIND9_API="$srcdir/lib/bind9/api"
-
-AC_SUBST_FILE(LIBIRS_API)
-LIBIRS_API="$srcdir/lib/irs/api"
-
-AC_SUBST_FILE(LIBNS_API)
-LIBNS_API="$srcdir/lib/ns/api"
-
#
# Configure any DLZ drivers.
#
VERSION=@BIND9_VERSION@
-@LIBBIND9_API@
-
@BIND9_MAKE_INCLUDES@
CINCLUDES = -I. ${BIND9_INCLUDES} ${DNS_INCLUDES} ${ISC_INCLUDES} \
version.@O@: version.c
${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
-DVERSION=\"${VERSION}\" \
- -DLIBINTERFACE=${LIBINTERFACE} \
- -DLIBREVISION=${LIBREVISION} \
- -DLIBAGE=${LIBAGE} \
-c ${srcdir}/version.c
libbind9.@SA@: ${OBJS}
libbind9.la: ${OBJS} ${ISCCFGDEPLIBS} ${ISCDEPLIBS} ${DNSDEPLIBS}
${LIBTOOL_MODE_LINK} \
${CC} ${ALL_CFLAGS} ${LDFLAGS} -o libbind9.la -rpath ${libdir} \
- -version-info ${LIBINTERFACE}:${LIBREVISION}:${LIBAGE} \
+ -release "${VERSION}" \
${OBJS} ${NSLIBS} ${DNSLIBS} ${ISCCFGLIBS} ${ISCLIBS} \
@DNS_CRYPTO_LIBS@ ${LIBS}
+++ /dev/null
-# LIBINTERFACE ranges
-# 9.6: 50-59, 110-119
-# 9.7: 60-79
-# 9.8: 80-89, 120-129
-# 9.9: 90-109, 170-179
-# 9.9-sub: 130-139, 150-159, 200-209
-# 9.10: 140-149, 190-199
-# 9.10-sub: 180-189
-# 9.11: 160-169,1100-1199
-# 9.12: 1200-1299
-# 9.13/9.14: 1300-1499
-# 9.15/9.16: 1500-1699
-LIBINTERFACE = 1600
-LIBREVISION = 7
-LIBAGE = 0
#include <isc/platform.h>
LIBBIND9_EXTERNAL_DATA extern const char bind9_version[];
-
-LIBBIND9_EXTERNAL_DATA extern const unsigned int bind9_libinterface;
-LIBBIND9_EXTERNAL_DATA extern const unsigned int bind9_librevision;
-LIBBIND9_EXTERNAL_DATA extern const unsigned int bind9_libage;
#include <bind9/version.h>
const char bind9_version[] = VERSION;
-
-const unsigned int bind9_libinterface = LIBINTERFACE;
-const unsigned int bind9_librevision = LIBREVISION;
-const unsigned int bind9_libage = LIBAGE;
#include <bind9/version.h>
LIBBIND9_EXTERNAL_DATA const char bind9_version[] = VERSION;
-
-LIBBIND9_EXTERNAL_DATA const unsigned int bind9_libinterface = LIBINTERFACE;
-LIBBIND9_EXTERNAL_DATA const unsigned int bind9_librevision = LIBREVISION;
-LIBBIND9_EXTERNAL_DATA const unsigned int bind9_libage = LIBAGE;
@LIBDNS_MAPAPI@
-@LIBDNS_API@
-
@BIND9_MAKE_INCLUDES@
USE_ISC_SPNEGO = @USE_ISC_SPNEGO@
-DVERSION=\"${VERSION}\" \
-DMAJOR=\"${MAJOR}\" \
-DMAPAPI=\"${MAPAPI}\" \
- -DLIBINTERFACE=${LIBINTERFACE} \
- -DLIBREVISION=${LIBREVISION} \
- -DLIBAGE=${LIBAGE} \
-c ${srcdir}/version.c
libdns.@SA@: ${OBJS}
libdns.la: ${OBJS}
${LIBTOOL_MODE_LINK} \
${CC} ${ALL_CFLAGS} ${LDFLAGS} -o libdns.la -rpath ${libdir} \
- -version-info ${LIBINTERFACE}:${LIBREVISION}:${LIBAGE} \
+ -release "${VERSION}" \
${OBJS} ${ISCLIBS} @DNS_CRYPTO_LIBS@ ${LIBS}
include: gen
+++ /dev/null
-# LIBINTERFACE ranges
-# 9.6: 50-59, 110-119
-# 9.7: 60-79
-# 9.8: 80-89, 120-129
-# 9.9: 90-109, 170-179
-# 9.9-sub: 130-139, 150-159, 200-209
-# 9.10: 140-149, 190-199
-# 9.10-sub: 180-189
-# 9.11: 160-169,1100-1199
-# 9.12: 1200-1299
-# 9.13/9.14: 1300-1499
-# 9.15/9.16: 1500-1699
-LIBINTERFACE = 1611
-LIBREVISION = 0
-LIBAGE = 0
LIBDNS_EXTERNAL_DATA extern const char dns_major[];
LIBDNS_EXTERNAL_DATA extern const char dns_mapapi[];
-LIBDNS_EXTERNAL_DATA extern const unsigned int dns_libinterface;
-LIBDNS_EXTERNAL_DATA extern const unsigned int dns_librevision;
-LIBDNS_EXTERNAL_DATA extern const unsigned int dns_libage;
-
#endif /* DNS_VERSION_H */
const char dns_version[] = VERSION;
const char dns_major[] = MAJOR;
const char dns_mapapi[] = MAPAPI;
-
-const unsigned int dns_libinterface = LIBINTERFACE;
-const unsigned int dns_librevision = LIBREVISION;
-const unsigned int dns_libage = LIBAGE;
LIBDNS_EXTERNAL_DATA const char dns_version[] = VERSION;
LIBDNS_EXTERNAL_DATA const char dns_major[] = MAJOR;
LIBDNS_EXTERNAL_DATA const char dns_mapapi[] = MAPAPI;
-
-LIBDNS_EXTERNAL_DATA const unsigned int dns_libinterface = LIBINTERFACE;
-LIBDNS_EXTERNAL_DATA const unsigned int dns_librevision = LIBREVISION;
-LIBDNS_EXTERNAL_DATA const unsigned int dns_libage = LIBAGE;
VERSION=@BIND9_VERSION@
-@LIBIRS_API@
-
@BIND9_MAKE_INCLUDES@
CINCLUDES = -I. -I./include -I${srcdir}/include \
version.@O@: version.c
${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
-DVERSION=\"${VERSION}\" \
- -DLIBINTERFACE=${LIBINTERFACE} \
- -DLIBREVISION=${LIBREVISION} \
- -DLIBAGE=${LIBAGE} \
-c ${srcdir}/version.c
libirs.@SA@: ${OBJS} version.@O@
libirs.la: ${OBJS} version.@O@
${LIBTOOL_MODE_LINK} \
${CC} ${ALL_CFLAGS} ${LDFLAGS} -o libirs.la -rpath ${libdir} \
- -version-info ${LIBINTERFACE}:${LIBREVISION}:${LIBAGE} \
+ -release "${VERSION}" \
${OBJS} version.@O@ ${ISCLIBS} ${DNSLIBS} ${ISCCFGLIBS} ${LIBS}
timestamp: libirs.@A@
+++ /dev/null
-# LIBINTERFACE ranges
-# 9.6: 50-59, 110-119
-# 9.7: 60-79
-# 9.8: 80-89, 120-129
-# 9.9: 90-109, 170-179
-# 9.9-sub: 130-139, 150-159, 200-209
-# 9.10: 140-149, 190-199
-# 9.10-sub: 180-189
-# 9.11: 160-169,1100-1199
-# 9.12: 1200-1299
-# 9.13/9.14: 1300-1499
-# 9.15/9.16: 1500-1699
-LIBINTERFACE = 1601
-LIBREVISION = 0
-LIBAGE = 0
#include <irs/platform.h>
LIBIRS_EXTERNAL_DATA extern const char irs_version[];
-
-LIBIRS_EXTERNAL_DATA extern const unsigned int irs_libinterface;
-LIBIRS_EXTERNAL_DATA extern const unsigned int irs_librevision;
-LIBIRS_EXTERNAL_DATA extern const unsigned int irs_libage;
#include <irs/version.h>
const char irs_version[] = VERSION;
-
-const unsigned int irs_libinterface = LIBINTERFACE;
-const unsigned int irs_librevision = LIBREVISION;
-const unsigned int irs_libage = LIBAGE;
#include <irs/version.h>
LIBIRS_EXTERNAL_DATA const char irs_version[] = VERSION;
-
-LIBIRS_EXTERNAL_DATA const unsigned int irs_libinterface = LIBINTERFACE;
-LIBIRS_EXTERNAL_DATA const unsigned int irs_librevision = LIBREVISION;
-LIBIRS_EXTERNAL_DATA const unsigned int irs_libage = LIBAGE;
VERSION=@BIND9_VERSION@
-@LIBISC_API@
-
@BIND9_MAKE_INCLUDES@
CINCLUDES = -I${srcdir}/unix/include \
version.@O@: version.c
${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
-DVERSION=\"${VERSION}\" \
- -DLIBINTERFACE=${LIBINTERFACE} \
- -DLIBREVISION=${LIBREVISION} \
- -DLIBAGE=${LIBAGE} \
-c ${srcdir}/version.c
libisc.@SA@: ${OBJS} ${SYMTBLOBJS}
libisc.la: ${OBJS} ${SYMTBLOBJS}
${LIBTOOL_MODE_LINK} \
${CC} ${ALL_CFLAGS} ${LDFLAGS} -o libisc.la -rpath ${libdir} \
- -version-info ${LIBINTERFACE}:${LIBREVISION}:${LIBAGE} \
+ -release "${VERSION}" \
${OBJS} ${SYMTBLOBJS} ${LIBS}
libisc-nosymtbl.la: ${OBJS}
${LIBTOOL_MODE_LINK} \
${CC} ${ALL_CFLAGS} ${LDFLAGS} -o libisc-nosymtbl.la -rpath ${libdir} \
- -version-info ${LIBINTERFACE}:${LIBREVISION}:${LIBAGE} \
+ -release "${VERSION}" \
${OBJS} ${LIBS}
timestamp: libisc.@A@ libisc-nosymtbl.@A@
+++ /dev/null
-# LIBINTERFACE ranges
-# 9.6: 50-59, 110-119
-# 9.7: 60-79
-# 9.8: 80-89, 120-129
-# 9.9: 90-109, 170-179
-# 9.9-sub: 130-139, 150-159, 200-209
-# 9.10: 140-149, 190-199
-# 9.10-sub: 180-189
-# 9.11: 160-169,1100-1199
-# 9.12: 1200-1299
-# 9.13/9.14: 1300-1499
-# 9.15/9.16: 1500-1699
-LIBINTERFACE = 1609
-LIBREVISION = 0
-LIBAGE = 0
#include <isc/platform.h>
LIBISC_EXTERNAL_DATA extern const char isc_version[];
-
-LIBISC_EXTERNAL_DATA extern const unsigned int isc_libinterface;
-LIBISC_EXTERNAL_DATA extern const unsigned int isc_librevision;
-LIBISC_EXTERNAL_DATA extern const unsigned int isc_libage;
#include <isc/version.h>
const char isc_version[] = VERSION;
-
-const unsigned int isc_libinterface = LIBINTERFACE;
-const unsigned int isc_librevision = LIBREVISION;
-const unsigned int isc_libage = LIBAGE;
#include <isc/version.h>
LIBISC_EXTERNAL_DATA const char isc_version[] = VERSION;
-
-LIBISC_EXTERNAL_DATA const unsigned int isc_libinterface = LIBINTERFACE;
-LIBISC_EXTERNAL_DATA const unsigned int isc_librevision = LIBREVISION;
-LIBISC_EXTERNAL_DATA const unsigned int isc_libage = LIBAGE;
VERSION=@BIND9_VERSION@
-@LIBISCCC_API@
-
@BIND9_MAKE_INCLUDES@
CINCLUDES = -I. ${DNS_INCLUDES} ${ISC_INCLUDES} \
version.@O@: version.c
${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
-DVERSION=\"${VERSION}\" \
- -DLIBINTERFACE=${LIBINTERFACE} \
- -DLIBREVISION=${LIBREVISION} \
- -DLIBAGE=${LIBAGE} \
-c ${srcdir}/version.c
libisccc.@SA@: ${OBJS}
libisccc.la: ${OBJS}
${LIBTOOL_MODE_LINK} \
${CC} ${ALL_CFLAGS} ${LDFLAGS} -o libisccc.la -rpath ${libdir} \
- -version-info ${LIBINTERFACE}:${LIBREVISION}:${LIBAGE} \
+ -release "${VERSION}" \
${OBJS} ${ISCLIBS} ${LIBS}
timestamp: libisccc.@A@
+++ /dev/null
-# LIBINTERFACE ranges
-# 9.6: 50-59, 110-119
-# 9.7: 60-79
-# 9.8: 80-89, 120-129
-# 9.9: 90-109, 170-179
-# 9.9-sub: 130-139, 150-159, 200-209
-# 9.10: 140-149, 190-199
-# 9.10-sub: 180-189
-# 9.11: 160-169,1100-1199
-# 9.12: 1200-1299
-# 9.13/9.14: 1300-1499
-# 9.15/9.16: 1500-1699
-LIBINTERFACE = 1600
-LIBREVISION = 2
-LIBAGE = 0
#include <isc/platform.h>
LIBISCCC_EXTERNAL_DATA extern const char isccc_version[];
-
-LIBISCCC_EXTERNAL_DATA extern const unsigned int isccc_libinterface;
-LIBISCCC_EXTERNAL_DATA extern const unsigned int isccc_librevision;
-LIBISCCC_EXTERNAL_DATA extern const unsigned int isccc_libage;
#include <isccc/version.h>
const char isccc_version[] = VERSION;
-
-const unsigned int isccc_libinterface = LIBINTERFACE;
-const unsigned int isccc_librevision = LIBREVISION;
-const unsigned int isccc_libage = LIBAGE;
#include <isccc/version.h>
LIBISCCC_EXTERNAL_DATA const char isccc_version[] = VERSION;
-
-LIBISCCC_EXTERNAL_DATA const unsigned int isccc_libinterface = LIBINTERFACE;
-LIBISCCC_EXTERNAL_DATA const unsigned int isccc_librevision = LIBREVISION;
-LIBISCCC_EXTERNAL_DATA const unsigned int isccc_libage = LIBAGE;
VERSION=@BIND9_VERSION@
-@LIBISCCFG_API@
-
@BIND9_MAKE_INCLUDES@
CINCLUDES = -I. ${DNS_INCLUDES} ${ISC_INCLUDES} ${ISCCFG_INCLUDES}
version.@O@: version.c
${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
-DVERSION=\"${VERSION}\" \
- -DLIBINTERFACE=${LIBINTERFACE} \
- -DLIBREVISION=${LIBREVISION} \
- -DLIBAGE=${LIBAGE} \
-c ${srcdir}/version.c
libisccfg.@SA@: ${OBJS}
libisccfg.la: ${OBJS}
${LIBTOOL_MODE_LINK} \
${CC} ${ALL_CFLAGS} ${LDFLAGS} -o libisccfg.la -rpath ${libdir} \
- -version-info ${LIBINTERFACE}:${LIBREVISION}:${LIBAGE} \
+ -release "${VERSION}" \
${OBJS} ${DNSLIBS} ${ISCLIBS} ${LIBS}
timestamp: libisccfg.@A@
+++ /dev/null
-# LIBINTERFACE ranges
-# 9.6: 50-59, 110-119
-# 9.7: 60-79
-# 9.8: 80-89, 120-129
-# 9.9: 90-109, 170-179
-# 9.9-sub: 130-139, 150-159, 200-209
-# 9.10: 140-149, 190-199
-# 9.10-sub: 180-189
-# 9.11: 160-169,1100-1199
-# 9.12: 1200-1299
-# 9.13/9.14: 1300-1499
-# 9.15/9.16: 1500-1699
-LIBINTERFACE = 1603
-LIBREVISION = 0
-LIBAGE = 0
#include <isc/platform.h>
LIBISCCFG_EXTERNAL_DATA extern const char cfg_version[];
-
-LIBISCCFG_EXTERNAL_DATA extern const unsigned int cfg_libinterface;
-LIBISCCFG_EXTERNAL_DATA extern const unsigned int cfg_librevision;
-LIBISCCFG_EXTERNAL_DATA extern const unsigned int cfg_libage;
#include <isccfg/version.h>
const char cfg_version[] = VERSION;
-
-const unsigned int cfg_libinterface = LIBINTERFACE;
-const unsigned int cfg_librevision = LIBREVISION;
-const unsigned int cfg_libage = LIBAGE;
#include <isccfg/version.h>
LIBISCCFG_EXTERNAL_DATA const char cfg_version[] = VERSION;
-
-LIBISCCFG_EXTERNAL_DATA const unsigned int cfg_libinterface = LIBINTERFACE;
-LIBISCCFG_EXTERNAL_DATA const unsigned int cfg_librevision = LIBREVISION;
-LIBISCCFG_EXTERNAL_DATA const unsigned int cfg_libage = LIBAGE;
VERSION=@BIND9_VERSION@
@BIND9_MAJOR@
-@LIBNS_API@
-
@BIND9_MAKE_INCLUDES@
USE_ISC_SPNEGO = @USE_ISC_SPNEGO@
${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
-DVERSION=\"${VERSION}\" \
-DMAJOR=\"${MAJOR}\" \
- -DLIBINTERFACE=${LIBINTERFACE} \
- -DLIBREVISION=${LIBREVISION} \
- -DLIBAGE=${LIBAGE} \
-c ${srcdir}/version.c
libns.@SA@: ${OBJS}
libns.la: ${OBJS}
${LIBTOOL_MODE_LINK} \
${CC} ${ALL_CFLAGS} ${LDFLAGS} -o libns.la -rpath ${libdir} \
- -version-info ${LIBINTERFACE}:${LIBREVISION}:${LIBAGE} \
+ -release "${VERSION}" \
${OBJS} ${ISCLIBS} ${DNSLIBS} @DNS_CRYPTO_LIBS@ ${LIBS}
timestamp: libns.@A@
+++ /dev/null
-# LIBINTERFACE ranges
-# 9.6: 50-59, 110-119
-# 9.7: 60-79
-# 9.8: 80-89, 120-129
-# 9.9: 90-109, 170-179
-# 9.9-sub: 130-139, 150-159, 200-209
-# 9.10: 140-149, 190-199
-# 9.10-sub: 180-189
-# 9.11: 160-169,1100-1199
-# 9.12: 1200-1299
-# 9.13/9.14: 1300-1499
-# 9.15/9.16: 1500-1699
-LIBINTERFACE = 1607
-LIBREVISION = 0
-LIBAGE = 0
#include <isc/platform.h>
LIBNS_EXTERNAL_DATA extern const char ns_version[];
-
-LIBNS_EXTERNAL_DATA extern const unsigned int ns_libinterface;
-LIBNS_EXTERNAL_DATA extern const unsigned int ns_librevision;
-LIBNS_EXTERNAL_DATA extern const unsigned int ns_libage;
#include <ns/version.h>
const char ns_version[] = VERSION;
-
-const unsigned int ns_libinterface = LIBINTERFACE;
-const unsigned int ns_librevision = LIBREVISION;
-const unsigned int ns_libage = LIBAGE;
LIBNS_EXTERNAL_DATA const char ns_version[] = VERSION;
LIBNS_EXTERNAL_DATA const char ns_major[] = MAJOR;
LIBNS_EXTERNAL_DATA const char ns_mapapi[] = MAPAPI;
-
-LIBNS_EXTERNAL_DATA const unsigned int ns_libinterface = LIBINTERFACE;
-LIBNS_EXTERNAL_DATA const unsigned int ns_librevision = LIBREVISION;
-LIBNS_EXTERNAL_DATA const unsigned int ns_libage = LIBAGE;
+++ /dev/null
-#!/bin/bash
-#
-# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
-#
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, you can obtain one at https://mozilla.org/MPL/2.0/.
-#
-# See the COPYRIGHT file distributed with this work for additional
-# information regarding copyright ownership.
-
-set -e
-
-# Exit if program $1 is not found in PATH.
-check_program() {
- if ! command -v "${1}" > /dev/null 2>&1; then
- echo "'${1}' not found in PATH" >&2
- exit 1
- fi
-}
-
-# Check that we were spawned with two arguments and that these arguments are two
-# different directories.
-check_args() {
- if [ ${#} -ne 2 ] || [ ! -d "${1}" ] || [ ! -d "${2}" ] || [ "${1}" = "${2}" ]; then
- echo "Usage:"
- echo ""
- echo " ${0} <TESTDIR> <REFDIR>"
- echo ""
- echo "Generate API compatibility reports for BIND libraries."
- echo ""
- echo " <TESTDIR> is a directory with current (new) BIND version"
- echo " <REFDIR> is a directory with reference (old) BIND version"
- exit 1
- fi
-}
-
-check_args "${@}"
-TESTBIND="${1}"
-REFBIND="${2}"
-
-# Ensure the required tools are available in PATH.
-check_program abi-dumper
-check_program abi-compliance-checker
-check_program git
-check_program w3m
-
-# Find all libraries which have designated 'api' file and
-# generate ABI dump file for them.
-while read -r SO; do
- APIFILE="$(dirname "${SO}")/../api"
- APIFILE_DIR=$(dirname "${APIFILE}")
- GIT_HEAD_REV=$(git -C "${APIFILE_DIR}" rev-parse HEAD | cut -c 1-10)
- GIT_HEAD_UNIX_TIME=$(git -C "${APIFILE_DIR}" log -1 --format=%ct HEAD)
- # Get LIBINTERFACE, LIBREVISION, LIBAGE from the 'api' file.
- eval "$(grep -v "^#" "${APIFILE}" | tr -d " ")"
- VERSION="${LIBINTERFACE}.${LIBREVISION}.${LIBAGE}-${GIT_HEAD_UNIX_TIME}-${GIT_HEAD_REV}"
- abi-dumper "${SO}" -o abi-"$(basename "${SO}" .so)-${VERSION}".dump -lver "${VERSION}"
-done < <(find "${TESTBIND}"/lib/*/.libs/ "${REFBIND}"/lib/*/.libs/ -name '*.so')
-
-# Generate HTML API compatibility reports for all libraries.
-find . -maxdepth 1 -name 'abi-*.dump' | sort | while read -r OLD; read -r NEW; do
- SONAME=${OLD/.\/abi-/}
- SONAME=${SONAME/-*/}
- if abi-compliance-checker -l "${SONAME}" -old "${OLD}" -new "${NEW}"; then
- REPORT_PREFIX="PASS"
- else
- echo "***** Compatibility problems detected"
- REPORT_PREFIX="WARN"
- fi
- OLD_REPORT_PATH="$(find "compat_reports/${SONAME}" -name '*.html')"
- NEW_REPORT_PATH="${REPORT_PREFIX}-${SONAME}.html"
- mv "${OLD_REPORT_PATH}" "${NEW_REPORT_PATH}"
- echo
-done
-
-# Generate TXT API compatibility reports from HTML reports for all BIND libraries.
-echo "Generate TXT API compatibility reports from HTML reports for all BIND libraries:"
-while read -r HTMLREPORT; do
- TXTREPORT="${HTMLREPORT/.html/.txt}"
- echo " w3m: ${HTMLREPORT} -> ${TXTREPORT}"
- w3m -dump -cols 75 -O ascii -T text/html "${HTMLREPORT}" > "${TXTREPORT}"
-done < <(find . -maxdepth 1 -name '*-lib*.html')
./fuzz/main.c C 2018,2019,2020,2021
./install-sh X 1998,1999,2000,2001,2018,2019,2020,2021
./lib/Kyuafile X 2017,2018,2019,2020,2021
-./lib/bind9/api X 2001,2006,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021
./lib/bind9/check.c C 2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021
./lib/bind9/getaddresses.c C 2001,2002,2004,2005,2007,2014,2015,2016,2017,2018,2019,2020,2021
./lib/bind9/include/bind9/check.h C 2001,2004,2005,2006,2007,2016,2018,2019,2020,2021
./lib/dns/Kyuafile X 2017,2018,2019,2020,2021
./lib/dns/acl.c C 1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2011,2013,2014,2016,2017,2018,2019,2020,2021
./lib/dns/adb.c C 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021
-./lib/dns/api X 1999,2000,2001,2006,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021
./lib/dns/badcache.c C 2014,2015,2016,2018,2019,2020,2021
./lib/dns/byaddr.c C 2000,2001,2002,2003,2004,2005,2007,2009,2013,2016,2017,2018,2019,2020,2021
./lib/dns/cache.c C 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021
./lib/dns/zoneverify.c C 2018,2019,2020,2021
./lib/dns/zt.c C 1999,2000,2001,2002,2004,2005,2006,2007,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021
./lib/irs/Kyuafile X 2017,2018,2019,2020,2021
-./lib/irs/api X 2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021
./lib/irs/context.c C 2009,2014,2016,2018,2019,2020,2021
./lib/irs/dnsconf.c C 2009,2012,2016,2018,2019,2020,2021
./lib/irs/gai_strerror.c C 2009,2014,2016,2018,2019,2020,2021
./lib/irs/win32/version.c C 2014,2016,2018,2019,2020,2021
./lib/isc/Kyuafile X 2017,2018,2019,2020,2021
./lib/isc/aes.c C 2014,2016,2017,2018,2019,2020,2021
-./lib/isc/api X 1999,2000,2001,2006,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021
./lib/isc/app.c C 1999,2000,2001,2002,2003,2004,2005,2007,2008,2009,2013,2014,2015,2016,2017,2018,2019,2020,2021
./lib/isc/assertions.c C 1997,1998,1999,2000,2001,2004,2005,2007,2008,2009,2015,2016,2018,2019,2020,2021
./lib/isc/astack.c C 2019,2020,2021
./lib/isc/xoshiro128starstar.c C.PORTION 2018,2019,2020,2021
./lib/isccc/Kyuafile X 2018,2019,2020,2021
./lib/isccc/alist.c C.NOM 2001,2004,2005,2007,2015,2016,2018,2019,2020,2021
-./lib/isccc/api X 2001,2006,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021
./lib/isccc/base64.c C.NOM 2001,2004,2005,2007,2013,2016,2018,2019,2020,2021
./lib/isccc/cc.c C.NOM 2001,2002,2003,2004,2005,2006,2007,2012,2013,2014,2015,2016,2018,2019,2020,2021
./lib/isccc/ccmsg.c C.NOM 2001,2004,2005,2007,2016,2018,2019,2020,2021
./lib/isccc/win32/version.c C 2001,2004,2007,2016,2018,2019,2020,2021
./lib/isccfg/Kyuafile X 2017,2018,2019,2020,2021
./lib/isccfg/aclconf.c C 1999,2000,2001,2002,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021
-./lib/isccfg/api X 2001,2006,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021
./lib/isccfg/dnsconf.c C 2009,2016,2018,2019,2020,2021
./lib/isccfg/include/isccfg/aclconf.h C 1999,2000,2001,2004,2005,2006,2007,2010,2011,2012,2013,2014,2016,2018,2019,2020,2021
./lib/isccfg/include/isccfg/cfg.h C 2000,2001,2002,2004,2005,2006,2007,2010,2013,2014,2015,2016,2018,2019,2020,2021
./lib/isccfg/win32/libisccfg.vcxproj.user X 2013,2018,2019,2020,2021
./lib/isccfg/win32/version.c C 1998,1999,2000,2001,2004,2007,2016,2018,2019,2020,2021
./lib/ns/Kyuafile X 2017,2018,2019,2020,2021
-./lib/ns/api X 2017,2018,2019,2020,2021
./lib/ns/client.c C 2017,2018,2019,2020,2021
./lib/ns/hooks.c C 2018,2019,2020,2021
./lib/ns/include/ns/client.h C 2017,2018,2019,2020,2021
./util/COPYRIGHT.NOM X 2001,2004,2007,2016,2018,2019,2020,2021
./util/COPYRIGHT.PORTION X 1996,1997,1998,1999,2000,2001,2004,2007,2016,2018,2019,2020,2021
./util/COPYRIGHT.TOP X 2018,2019,2020,2021
-./util/api-checker.sh SH 2020,2021
./util/bindkeys.pl PERL 2009,2010,2011,2012,2014,2016,2017,2018,2019,2020,2021
./util/branchsync.sh SH 2013,2016,2018,2019,2020,2021
./util/check-ans-prereq.sh SH 2019,2020,2021
sub makeversion {
# List of directories with version files
- my @dirlist = ("isc", "dns", "ns", "isccc", "isccfg", "bind9", "irs");
- my %LibMacros = (
- "bind9" => "LIBBIND9_EXPORTS",
- "dns" => "LIBDNS_EXPORTS",
- "irs" => "LIBIRS_EXPORTS",
- "isc" => "LIBISC_EXPORTS",
- "isccc" => "LIBISCCC_EXPORTS",
- "isccfg" => "LIBISCCFG_EXPORTS",
- "ns" => "LIBNS_EXPORTS");
- my @VersionNames = ("LIBINTERFACE", "LIBREVISION", "LIBAGE");
my $Version;
- my %ApiVersions;
my $Mapapi;
my $versionfile = "versions.h";
my $versionpath = "..\\$versionfile";
"#define MAJOR \"$Versions{'MAJORVER'}.$Versions{'MINORVER'}\"\n\n";
print O "#define MAPAPI \"$Mapapi\"\n\n";
- my $dir;
- my $apifile;
- foreach $dir (@dirlist) {
- $apifile = "..\\lib\\$dir\\api";
- open A, $apifile || die $!;
- while (<A>) {
- chomp;
- ($data) = split(/\#/);
- if ($data) {
- ($name, $value) = split(/=/, $data);
- $name =~ s/\s+//;
- $value =~ s/\s+//;
- $ApiVersions{$name} = $value;
- }
- }
- close A;
-
- print O "\n#ifdef $LibMacros{$dir}\n";
- foreach $name (@VersionNames) {
- print O "#define $name\t$ApiVersions{$name}\n";
- }
- print O "#endif\n\n";
- }
-
print O "#endif /* VERSIONS_H */\n";
close O;
}