From: Ondřej Surý Date: Tue, 12 Jan 2021 12:38:44 +0000 (+0100) Subject: Use -release instead of -version-info for internal library SONAMEs X-Git-Tag: v9.17.10~25^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c605d75ea5e1d200ea332f25d2bc303984517d9f;p=thirdparty%2Fbind9.git Use -release instead of -version-info for internal library SONAMEs The BIND 9 libraries are considered to be internal only and hence the API and ABI changes a lot. Keeping track of the API/ABI changes takes time and it's a complicated matter as the safest way to make everything stable would be to bump any library in the dependency chain as in theory if libns links with libdns, and a binary links with both, and we bump the libdns SOVERSION, but not the libns SOVERSION, the old libns might be loaded by binary pulling old libdns together with new libdns loaded by the binary. The situation gets even more complicated with loading the plugins that have been compiled with few versions old BIND 9 libraries and then dynamically loaded into the named. We are picking the safest option possible and usable for internal libraries - instead of using -version-info that has only a weak link to BIND 9 version number, we are using -release libtool option that will embed the corresponding BIND 9 version number into the library name. That means that instead of libisc.so.1701 (as an example) the library will now be named libisc-9.17.10.so. --- diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4f3056d434f..1dfccdbf50c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1504,39 +1504,6 @@ stress:recursive:freebsd12:amd64: 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_17_9 - 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/ - - autoreconf -fi - - *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 diff --git a/configure.ac b/configure.ac index 75fc3fbd501..2944b3ca444 100644 --- a/configure.ac +++ b/configure.ac @@ -71,17 +71,6 @@ AS_IF([test "$cross_compiling" = no], [AM_MAINTAINER_MODE(m4_ifset([bind_SRCID],[enable],[disable]))], [AM_MAINTAINER_MODE([disable])]) -# Set the library versions -# https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html - -AX_BIND9_LIB_VERSION([bind9]) -AX_BIND9_LIB_VERSION([dns]) -AX_BIND9_LIB_VERSION([irs]) -AX_BIND9_LIB_VERSION([isc]) -AX_BIND9_LIB_VERSION([isccc]) -AX_BIND9_LIB_VERSION([isccfg]) -AX_BIND9_LIB_VERSION([ns]) - # # Enable system extensions to C and POSIX # diff --git a/lib/bind9/Makefile.am b/lib/bind9/Makefile.am index f981c9216d2..f3e8c377fc4 100644 --- a/lib/bind9/Makefile.am +++ b/lib/bind9/Makefile.am @@ -28,6 +28,4 @@ libbind9_la_LIBADD = \ libbind9_la_LDFLAGS = \ $(AM_LDFLAGS) \ - $(libbind9_VERSION_INFO) - -EXTRA_DIST = api + -release "$(PACKAGE_VERSION)" diff --git a/lib/bind9/api b/lib/bind9/api deleted file mode 100644 index 1f742a50afe..00000000000 --- a/lib/bind9/api +++ /dev/null @@ -1,16 +0,0 @@ -# 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 -# 9.17/9.18: 1700-1899 -LIBINTERFACE = 1701 -LIBREVISION = 4 -LIBAGE = 0 diff --git a/lib/dns/Makefile.am b/lib/dns/Makefile.am index 61c0ef45c20..d996b5b16da 100644 --- a/lib/dns/Makefile.am +++ b/lib/dns/Makefile.am @@ -22,7 +22,6 @@ gen$(BUILD_EXEEXT): gen.c gen-unix.h $(CC_FOR_BUILD) -g -I. $(GEN_NEED_OPTARG) $(srcdir)/gen.c -o $@ EXTRA_DIST = \ - api \ dnstap.proto \ gen.c \ gen-unix.h \ @@ -282,7 +281,7 @@ libdns_la_CPPFLAGS = \ libdns_la_LDFLAGS = \ $(AM_LDFLAGS) \ - $(libdns_VERSION_INFO) + -release "$(PACKAGE_VERSION)" libdns_la_LIBADD = \ $(LIBISC_LIBS) \ diff --git a/lib/dns/api b/lib/dns/api deleted file mode 100644 index 73f959a0368..00000000000 --- a/lib/dns/api +++ /dev/null @@ -1,16 +0,0 @@ -# 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 -# 9.17/9.18: 1700-1899 -LIBINTERFACE = 1709 -LIBREVISION = 0 -LIBAGE = 0 diff --git a/lib/irs/Makefile.am b/lib/irs/Makefile.am index f7b82b47bc5..eac972b26db 100644 --- a/lib/irs/Makefile.am +++ b/lib/irs/Makefile.am @@ -24,11 +24,8 @@ libirs_la_LIBADD = \ libirs_la_LDFLAGS = \ $(AM_LDFLAGS) \ - $(libirs_VERSION_INFO) - + -release "$(PACKAGE_VERSION)" if HAVE_CMOCKA SUBDIRS = tests endif - -EXTRA_DIST = api diff --git a/lib/irs/api b/lib/irs/api deleted file mode 100644 index 88c9b9df520..00000000000 --- a/lib/irs/api +++ /dev/null @@ -1,16 +0,0 @@ -# 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 -# 9.17/9.18: 1700-1899 -LIBINTERFACE = 1701 -LIBREVISION = 0 -LIBAGE = 0 diff --git a/lib/isc/Makefile.am b/lib/isc/Makefile.am index 57f5b19f5a6..c516fd54587 100644 --- a/lib/isc/Makefile.am +++ b/lib/isc/Makefile.am @@ -229,7 +229,7 @@ libisc_la_CPPFLAGS = \ libisc_la_LDFLAGS = \ $(AM_LDFLAGS) \ - $(libisc_VERSION_INFO) + -release "$(PACKAGE_VERSION)" libisc_la_LIBADD = \ $(LIBUV_LIBS) \ @@ -255,5 +255,3 @@ endif HAVE_LIBXML2 if HAVE_CMOCKA SUBDIRS = tests endif - -EXTRA_DIST = api diff --git a/lib/isc/api b/lib/isc/api deleted file mode 100644 index 313f25dc921..00000000000 --- a/lib/isc/api +++ /dev/null @@ -1,16 +0,0 @@ -# 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 -# 9.17/9.18: 1700-1899 -LIBINTERFACE = 1707 -LIBREVISION = 1 -LIBAGE = 0 diff --git a/lib/isccc/Makefile.am b/lib/isccc/Makefile.am index aca06f777fe..d5cc537ead7 100644 --- a/lib/isccc/Makefile.am +++ b/lib/isccc/Makefile.am @@ -36,10 +36,8 @@ libisccc_la_LIBADD = \ libisccc_la_LDFLAGS = \ $(AM_LDFLAGS) \ - $(libisccc_VERSION_INFO) + -release "$(PACKAGE_VERSION)" if HAVE_CMOCKA SUBDIRS = tests endif - -EXTRA_DIST = api diff --git a/lib/isccc/api b/lib/isccc/api deleted file mode 100644 index c1c1be9b850..00000000000 --- a/lib/isccc/api +++ /dev/null @@ -1,16 +0,0 @@ -# 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 -# 9.17/9.18: 1700-1899 -LIBINTERFACE = 1703 -LIBREVISION = 0 -LIBAGE = 0 diff --git a/lib/isccfg/Makefile.am b/lib/isccfg/Makefile.am index a9853decfc6..3205e3b93bb 100644 --- a/lib/isccfg/Makefile.am +++ b/lib/isccfg/Makefile.am @@ -32,10 +32,8 @@ libisccfg_la_LIBADD = \ libisccfg_la_LDFLAGS = \ $(AM_LDFLAGS) \ - $(libisccfg_VERSION_INFO) + -release "$(PACKAGE_VERSION)" if HAVE_CMOCKA SUBDIRS = tests endif - -EXTRA_DIST = api diff --git a/lib/isccfg/api b/lib/isccfg/api deleted file mode 100644 index 2a38956a547..00000000000 --- a/lib/isccfg/api +++ /dev/null @@ -1,16 +0,0 @@ -# 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 -# 9.17/9.18: 1700-1899 -LIBINTERFACE = 1704 -LIBREVISION = 0 -LIBAGE = 0 diff --git a/lib/ns/Makefile.am b/lib/ns/Makefile.am index 243d087c5c8..cdfc6192bc9 100644 --- a/lib/ns/Makefile.am +++ b/lib/ns/Makefile.am @@ -56,10 +56,8 @@ libns_la_LIBADD = \ libns_la_LDFLAGS = \ $(AM_LDFLAGS) \ - $(libns_VERSION_INFO) + -release "$(PACKAGE_VERSION)" if HAVE_CMOCKA SUBDIRS = tests endif - -EXTRA_DIST = api diff --git a/lib/ns/api b/lib/ns/api deleted file mode 100644 index f55bd9eef63..00000000000 --- a/lib/ns/api +++ /dev/null @@ -1,16 +0,0 @@ -# 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 -# 9.17/9.18: 1700-1899 -LIBINTERFACE = 1707 -LIBREVISION = 0 -LIBAGE = 0 diff --git a/m4/ax_bind9_lib_version.m4 b/m4/ax_bind9_lib_version.m4 deleted file mode 100644 index dd08f6b7d76..00000000000 --- a/m4/ax_bind9_lib_version.m4 +++ /dev/null @@ -1,10 +0,0 @@ -AC_DEFUN([AX_BIND9_LIB_VERSION], - [AS_IF([test -z "$SED"], - [AC_PROG_SED]) - AS_IF([test -z "$SED"], - [AC_MSG_ERROR([sed not found, but required, set \$SED to sed])]) - ax_bind9_lib$1_current=`$SED -n "s,^LIBINTERFACE = \(.*\),\1,p" "$srcdir/lib/$1/api"` - ax_bind9_lib$1_revision=`$SED -n "s,^LIBREVISION = \(.*\),\1,p" "$srcdir/lib/$1/api"` - ax_bind9_lib$1_age=`$SED -n "s,^LIBAGE = \(.*\),\1,p" "$srcdir/lib/$1/api"` - AC_SUBST([lib$1_VERSION_INFO],["-version-info $ax_bind9_lib$1_current:$ax_bind9_lib$1_revision:$ax_bind9_lib$1_age]") - ]) diff --git a/util/api-checker.sh b/util/api-checker.sh deleted file mode 100755 index 978731b0379..00000000000 --- a/util/api-checker.sh +++ /dev/null @@ -1,83 +0,0 @@ -#!/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} " - echo "" - echo "Generate API compatibility reports for BIND libraries." - echo "" - echo " is a directory with current (new) BIND version" - echo " 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' ! -name '*-nosymtbl*') - -# 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') diff --git a/util/copyrights b/util/copyrights index b17dd9d4f46..4898b95b776 100644 --- a/util/copyrights +++ b/util/copyrights @@ -1274,7 +1274,6 @@ ./fuzz/isc_lex_gettoken.c C 2020,2021 ./fuzz/libfuzzer.sh SH 2020,2021 ./fuzz/main.c C 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 @@ -1286,7 +1285,6 @@ ./lib/bind9/win32/libbind9.vcxproj.user X 2013,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 @@ -1742,7 +1740,6 @@ ./lib/dns/zonekey.c C 2001,2003,2004,2005,2007,2016,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/api X 2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021 ./lib/irs/include/irs/resconf.h C 2009,2014,2016,2018,2019,2020,2021 ./lib/irs/resconf.c C 2009,2011,2012,2014,2015,2016,2017,2018,2019,2020,2021 ./lib/irs/tests/resconf_test.c C 2016,2018,2019,2020,2021 @@ -1770,7 +1767,6 @@ ./lib/irs/win32/libirs.vcxproj.user X 2014,2018,2019,2020,2021 ./lib/irs/win32/resconf.c C 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 @@ -2070,7 +2066,6 @@ ./lib/isc/win32/unistd.h C 2000,2001,2004,2007,2008,2009,2016,2018,2019,2020,2021 ./lib/isc/win32/win32os.c C 2002,2004,2007,2013,2014,2015,2016,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 @@ -2095,7 +2090,6 @@ ./lib/isccc/win32/libisccc.vcxproj.in X 2013,2014,2015,2016,2017,2018,2019,2020 ./lib/isccc/win32/libisccc.vcxproj.user X 2013,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 @@ -2114,7 +2108,6 @@ ./lib/isccfg/win32/libisccfg.vcxproj.filters.in X 2013,2014,2015,2016,2018,2019,2020 ./lib/isccfg/win32/libisccfg.vcxproj.in X 2013,2014,2015,2016,2017,2018,2019,2020 ./lib/isccfg/win32/libisccfg.vcxproj.user X 2013,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 @@ -2188,7 +2181,6 @@ ./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-categories.sh SH 2015,2016,2017,2018,2019,2020,2021