@@ -150,20 +150,24 @@ stages:
150
150
151
151
# Debian
152
152
153
- .respdiff- debian-bullseye-amd64 : &respdiff_debian_bullseye_amd64_image
153
+ .debian-bullseye-amd64 : &debian_bullseye_amd64_image
154
154
image : " $CI_REGISTRY_IMAGE:debian-bullseye-amd64"
155
+ << : *linux_amd64
156
+
157
+ .respdiff-debian-bookworm-amd64 : &respdiff_debian_bookworm_amd64_image
158
+ image : " $CI_REGISTRY_IMAGE:debian-bookworm-amd64"
155
159
<< : *linux_respdiff_amd64
156
160
157
- .debian-bullseye -amd64 : &debian_bullseye_amd64_image
158
- image : " $CI_REGISTRY_IMAGE:debian-bullseye -amd64"
161
+ .debian-bookworm -amd64 : &debian_bookworm_amd64_image
162
+ image : " $CI_REGISTRY_IMAGE:debian-bookworm -amd64"
159
163
<< : *linux_amd64
160
164
161
- .tsan-debian-bullseye -amd64 : &tsan_debian_bullseye_amd64_image
162
- image : " $CI_REGISTRY_IMAGE:tsan-debian-bullseye -amd64"
165
+ .tsan-debian-bookworm -amd64 : &tsan_debian_bookworm_amd64_image
166
+ image : " $CI_REGISTRY_IMAGE:tsan-debian-bookworm -amd64"
163
167
<< : *linux_amd64
164
168
165
- .debian-bullseye -amd64cross32 : &debian_bullseye_amd64cross32_image
166
- image : " $CI_REGISTRY_IMAGE:debian-bullseye -amd64cross32"
169
+ .debian-bookworm -amd64cross32 : &debian_bookworm_amd64cross32_image
170
+ image : " $CI_REGISTRY_IMAGE:debian-bookworm -amd64cross32"
167
171
<< : *linux_amd64
168
172
169
173
.debian-sid-amd64 : &debian_sid_amd64_image
@@ -204,7 +208,7 @@ stages:
204
208
# This is a meta image that is used as a base for non-specific jobs
205
209
206
210
.base : &base_image
207
- << : *debian_bullseye_amd64_image
211
+ << : *debian_bookworm_amd64_image
208
212
209
213
# ## QCOW2 Image Templates
210
214
@@ -487,7 +491,7 @@ cross-version-config-tests:
487
491
- *configure
488
492
- make -j${BUILD_PARALLEL_JOBS:-1} -k doc V=1
489
493
- qpdf --check doc/arm/_build/latex/Bv9ARM.pdf
490
- - find doc/man/ -maxdepth 1 -name "*.[0-9]" -exec mandoc -T lint "{}" \; | ( ! grep -v -e "skipping paragraph macro. sp after" -e "unknown font, skipping request. ft C" )
494
+ - find doc/man/ -maxdepth 1 -name "*.[0-9]" -exec mandoc -T lint "{}" \; | ( ! grep -v -e "skipping paragraph macro. sp after" -e "unknown font, skipping request. ft C" -e "input text line longer than 80 bytes" )
491
495
492
496
.respdiff : &respdiff_job
493
497
stage : system
@@ -627,7 +631,7 @@ tarball-create:
627
631
- job : autoreconf
628
632
artifacts : true
629
633
630
- # Jobs for doc builds on Debian 11 "bullseye " (amd64)
634
+ # Jobs for doc builds on Debian 12 "bookworm " (amd64)
631
635
632
636
docs :
633
637
<< : *default_triggering_rules
@@ -788,48 +792,48 @@ gcc:tarball:nosphinx:
788
792
- job : tarball-create
789
793
artifacts : true
790
794
791
- # Jobs for regular GCC builds on Debian 11 "bullseye " (amd64)
795
+ # Jobs for regular GCC builds on Debian 12 "bookworm " (amd64)
792
796
793
- gcc:bullseye :amd64 :
797
+ gcc:bookworm :amd64 :
794
798
variables :
795
799
BUILD_CONTRIB : 1
796
800
CC : gcc
797
801
CFLAGS : " ${CFLAGS_COMMON} --coverage -O0"
798
802
EXTRA_CONFIGURE : " --with-libidn2 ${WITH_READLINE_LIBEDIT}"
799
803
RUN_MAKE_INSTALL : 1
800
- << : *debian_bullseye_amd64_image
804
+ << : *debian_bookworm_amd64_image
801
805
<< : *build_job
802
806
803
- system:gcc:bullseye :amd64 :
804
- << : *debian_bullseye_amd64_image
807
+ system:gcc:bookworm :amd64 :
808
+ << : *debian_bookworm_amd64_image
805
809
<< : *system_test_gcov_job
806
810
variables :
807
811
CI_ENABLE_ALL_TESTS : 1
808
812
needs :
809
- - job : unit:gcc:bullseye :amd64
813
+ - job : unit:gcc:bookworm :amd64
810
814
artifacts : true
811
815
812
- unit:gcc:bullseye :amd64 :
813
- << : *debian_bullseye_amd64_image
816
+ unit:gcc:bookworm :amd64 :
817
+ << : *debian_bookworm_amd64_image
814
818
<< : *unit_test_gcov_job
815
819
variables :
816
820
CI_ENABLE_ALL_TESTS : 1
817
821
needs :
818
- - job : gcc:bullseye :amd64
822
+ - job : gcc:bookworm :amd64
819
823
artifacts : true
820
824
821
- # Build job for cross-compiled GCC builds on 64-bit Debian 11 "bullseye "
825
+ # Build job for cross-compiled GCC builds on 64-bit Debian 12 "bookworm "
822
826
# (amd64) with 32-bit BIND 9.
823
827
824
- gcc:bullseye :amd64cross32 :
828
+ gcc:bookworm :amd64cross32 :
825
829
variables :
826
830
CFLAGS : " ${CFLAGS_COMMON}"
827
831
CROSS_COMPILATION : 1
828
832
EXTRA_CONFIGURE : " --build=x86_64-linux-gnu --host=i686-linux-gnu --with-libidn2 ${WITH_READLINE_LIBEDIT}"
829
- << : *debian_bullseye_amd64cross32_image
833
+ << : *debian_bookworm_amd64cross32_image
830
834
<< : *build_job
831
835
832
- # Jobs for scan-build builds on Debian 11 "bullseye " (amd64)
836
+ # Jobs for scan-build builds on Debian 12 "bookworm " (amd64)
833
837
834
838
.scan_build : &scan_build
835
839
- ${SCAN_BUILD} --html-title="BIND 9 ($CI_COMMIT_SHORT_SHA)"
@@ -888,20 +892,13 @@ unit:gcc:ossl3:amd64:
888
892
gcc:sid:amd64 :
889
893
variables :
890
894
CC : gcc
891
- CFLAGS : " ${CFLAGS_COMMON} -O3 -DOPENSSL_API_COMPAT=10100"
892
- # For the jemalloc ./configure option, see https://gitlab.isc.org/isc-projects/bind9/-/issues/3444
893
- EXTRA_CONFIGURE : " --with-libidn2 --without-lmdb --without-jemalloc --disable-leak-detection ${WITH_READLINE}"
895
+ CFLAGS : " ${CFLAGS_COMMON} -O3"
896
+ EXTRA_CONFIGURE : " --with-libidn2 --without-lmdb ${WITH_READLINE}"
894
897
RUN_MAKE_INSTALL : 1
895
898
<< : *debian_sid_amd64_image
896
899
<< : *build_job
897
900
898
901
system:gcc:sid:amd64 :
899
- # Set up environment variables that allow the "keyfromlabel" system test to be run
900
- variables :
901
- DEFAULT_OPENSSL_CONF : " /etc/ssl/openssl.cnf"
902
- OPENSSL_CONF : " /var/tmp/etc/openssl.cnf"
903
- SOFTHSM2_CONF : " /var/tmp/softhsm2/softhsm2.conf"
904
- SOFTHSM2_MODULE : " /usr/lib/softhsm/libsofthsm2.so"
905
902
<< : *debian_sid_amd64_image
906
903
<< : *system_test_job
907
904
needs :
@@ -915,7 +912,7 @@ unit:gcc:sid:amd64:
915
912
- job : gcc:sid:amd64
916
913
artifacts : true
917
914
918
- # Job for out-of-tree GCC build on Debian 11 "bullseye " (amd64)
915
+ # Job for out-of-tree GCC build on Debian 12 "bookworm " (amd64)
919
916
# Also tests configration option: --with-lmdb.
920
917
921
918
gcc:out-of-tree :
@@ -949,7 +946,7 @@ unit:gcc:out-of-tree:
949
946
<< : *unit_test_job
950
947
<< : *api_schedules_tags_triggers_web_triggering_rules
951
948
952
- # Jobs for tarball GCC builds on Debian 11 "bullseye " (amd64)
949
+ # Jobs for tarball GCC builds on Debian 12 "bookworm " (amd64)
953
950
954
951
gcc:tarball :
955
952
variables :
@@ -1148,7 +1145,7 @@ unit:gcc:tsan:
1148
1145
artifacts : true
1149
1146
1150
1147
clang:tsan :
1151
- << : *tsan_debian_bullseye_amd64_image
1148
+ << : *tsan_debian_bookworm_amd64_image
1152
1149
<< : *build_job
1153
1150
variables :
1154
1151
CC : " ${CLANG}"
@@ -1159,7 +1156,7 @@ clang:tsan:
1159
1156
system:clang:tsan :
1160
1157
variables :
1161
1158
TSAN_OPTIONS : " ${TSAN_OPTIONS_DEBIAN}"
1162
- << : *tsan_debian_bullseye_amd64_image
1159
+ << : *tsan_debian_bookworm_amd64_image
1163
1160
<< : *system_test_tsan_job
1164
1161
needs :
1165
1162
- job : clang:tsan
@@ -1168,28 +1165,45 @@ system:clang:tsan:
1168
1165
unit:clang:tsan :
1169
1166
variables :
1170
1167
TSAN_OPTIONS : " ${TSAN_OPTIONS_DEBIAN}"
1171
- << : *tsan_debian_bullseye_amd64_image
1168
+ << : *tsan_debian_bookworm_amd64_image
1172
1169
<< : *unit_test_tsan_job
1173
1170
needs :
1174
1171
- job : clang:tsan
1175
1172
artifacts : true
1176
1173
1177
- # Jobs for Clang builds on Debian 11 "bullseye" (amd64)
1178
- # The -Wno-compound-token-split-by-macro option prevents warning when compiling
1179
- # Perl DLZ module with Clang against Perl older than version 5.35.2.
1174
+ # Jobs for Debian 11 "bullseye" (amd64)
1180
1175
1181
1176
clang:bullseye:amd64 :
1182
1177
variables :
1183
- BUILD_CONTRIB : 1
1184
1178
CC : ${CLANG}
1185
- CFLAGS : " ${CFLAGS_COMMON} -Wenum-conversion -Wno-compound-token-split-by-macro"
1186
- # See https://gitlab.isc.org/isc-projects/bind9/-/issues/3444
1187
- EXTRA_CONFIGURE : " --without-jemalloc --disable-leak-detection"
1188
- RUN_MAKE_INSTALL : 1
1179
+ CFLAGS : " ${CFLAGS_COMMON} -Wenum-conversion"
1189
1180
<< : *debian_bullseye_amd64_image
1190
1181
<< : *build_job
1191
1182
1192
1183
system:clang:bullseye:amd64 :
1184
+ << : *debian_bullseye_amd64_image
1185
+ << : *system_test_job
1186
+ needs :
1187
+ - job : clang:bullseye:amd64
1188
+ artifacts : true
1189
+
1190
+ unit:clang:bullseye:amd64 :
1191
+ << : *debian_bullseye_amd64_image
1192
+ << : *unit_test_job
1193
+ needs :
1194
+ - job : clang:bullseye:amd64
1195
+ artifacts : true
1196
+
1197
+ gcc:bullseye:amd64 :
1198
+ variables :
1199
+ CC : gcc
1200
+ CFLAGS : " ${CFLAGS_COMMON}"
1201
+ # See https://gitlab.isc.org/isc-projects/bind9/-/issues/3444
1202
+ EXTRA_CONFIGURE : " --with-libidn2 --without-jemalloc --disable-leak-detection"
1203
+ << : *debian_bullseye_amd64_image
1204
+ << : *build_job
1205
+
1206
+ system:gcc:bullseye:amd64 :
1193
1207
# Set up environment variables that allow the "keyfromlabel" system test to be run
1194
1208
variables :
1195
1209
DEFAULT_OPENSSL_CONF : " /etc/ssl/openssl.cnf"
@@ -1199,14 +1213,47 @@ system:clang:bullseye:amd64:
1199
1213
<< : *debian_bullseye_amd64_image
1200
1214
<< : *system_test_job
1201
1215
needs :
1202
- - job : clang :bullseye:amd64
1216
+ - job : gcc :bullseye:amd64
1203
1217
artifacts : true
1204
1218
1205
- unit:clang :bullseye:amd64 :
1219
+ unit:gcc :bullseye:amd64 :
1206
1220
<< : *debian_bullseye_amd64_image
1207
1221
<< : *unit_test_job
1208
1222
needs :
1209
- - job : clang:bullseye:amd64
1223
+ - job : gcc:bullseye:amd64
1224
+ artifacts : true
1225
+
1226
+ # Jobs for Clang builds on Debian 12 "bookworm" (amd64)
1227
+
1228
+ clang:bookworm:amd64 :
1229
+ variables :
1230
+ BUILD_CONTRIB : 1
1231
+ CC : ${CLANG}
1232
+ CFLAGS : " ${CFLAGS_COMMON} -Wenum-conversion -DOPENSSL_API_COMPAT=10100"
1233
+ # See https://gitlab.isc.org/isc-projects/bind9/-/issues/3444
1234
+ EXTRA_CONFIGURE : " --without-jemalloc --disable-leak-detection"
1235
+ RUN_MAKE_INSTALL : 1
1236
+ << : *debian_bookworm_amd64_image
1237
+ << : *build_job
1238
+
1239
+ system:clang:bookworm:amd64 :
1240
+ # Set up environment variables that allow the "keyfromlabel" system test to be run
1241
+ variables :
1242
+ DEFAULT_OPENSSL_CONF : " /etc/ssl/openssl.cnf"
1243
+ OPENSSL_CONF : " /var/tmp/etc/openssl.cnf"
1244
+ SOFTHSM2_CONF : " /var/tmp/softhsm2/softhsm2.conf"
1245
+ SOFTHSM2_MODULE : " /usr/lib/softhsm/libsofthsm2.so"
1246
+ << : *debian_bookworm_amd64_image
1247
+ << : *system_test_job
1248
+ needs :
1249
+ - job : clang:bookworm:amd64
1250
+ artifacts : true
1251
+
1252
+ unit:clang:bookworm:amd64 :
1253
+ << : *debian_bookworm_amd64_image
1254
+ << : *unit_test_job
1255
+ needs :
1256
+ - job : clang:bookworm:amd64
1210
1257
artifacts : true
1211
1258
1212
1259
# Jobs for Clang builds on FreeBSD 12 (amd64)
@@ -1382,7 +1429,7 @@ coverity:
1382
1429
respdiff-short :
1383
1430
<< : *respdiff_job
1384
1431
<< : *default_triggering_rules
1385
- << : *debian_bullseye_amd64_image
1432
+ << : *debian_bookworm_amd64_image
1386
1433
variables :
1387
1434
CC : gcc
1388
1435
CFLAGS : " ${CFLAGS_COMMON} -Og -DISC_TRACK_PTHREADS_OBJECTS"
@@ -1393,7 +1440,7 @@ respdiff-short:
1393
1440
respdiff-short:asan :
1394
1441
<< : *respdiff_job
1395
1442
<< : *default_triggering_rules
1396
- << : *debian_bullseye_amd64_image
1443
+ << : *debian_bookworm_amd64_image
1397
1444
variables :
1398
1445
CC : gcc
1399
1446
CFLAGS : " ${CFLAGS_COMMON} -Og -fsanitize=address,undefined"
@@ -1406,7 +1453,7 @@ respdiff-short:asan:
1406
1453
respdiff-short:tsan :
1407
1454
<< : *respdiff_job
1408
1455
<< : *default_triggering_rules
1409
- << : *tsan_debian_bullseye_amd64_image
1456
+ << : *tsan_debian_bookworm_amd64_image
1410
1457
variables :
1411
1458
CC : gcc
1412
1459
CFLAGS : " ${CFLAGS_COMMON} -Og -fsanitize=thread"
@@ -1423,7 +1470,7 @@ respdiff-short:tsan:
1423
1470
respdiff-long :
1424
1471
<< : *respdiff_job
1425
1472
<< : *api_schedules_tags_triggers_web_triggering_rules
1426
- << : *respdiff_debian_bullseye_amd64_image
1473
+ << : *respdiff_debian_bookworm_amd64_image
1427
1474
variables :
1428
1475
CC : gcc
1429
1476
CFLAGS : " ${CFLAGS_COMMON} -Og -DISC_TRACK_PTHREADS_OBJECTS"
@@ -1434,7 +1481,7 @@ respdiff-long:
1434
1481
respdiff-long:asan :
1435
1482
<< : *respdiff_job
1436
1483
<< : *api_schedules_tags_triggers_web_triggering_rules
1437
- << : *debian_bullseye_amd64_image
1484
+ << : *debian_bookworm_amd64_image
1438
1485
variables :
1439
1486
CC : gcc
1440
1487
CFLAGS : " ${CFLAGS_COMMON} -Og -fsanitize=address,undefined"
@@ -1447,7 +1494,7 @@ respdiff-long:asan:
1447
1494
respdiff-long:tsan :
1448
1495
<< : *respdiff_job
1449
1496
<< : *api_schedules_tags_triggers_web_triggering_rules
1450
- << : *tsan_debian_bullseye_amd64_image
1497
+ << : *tsan_debian_bookworm_amd64_image
1451
1498
variables :
1452
1499
CC : gcc
1453
1500
CFLAGS : " ${CFLAGS_COMMON} -Og -fsanitize=thread"
@@ -1464,7 +1511,7 @@ respdiff-long:tsan:
1464
1511
respdiff-long-third-party :
1465
1512
<< : *respdiff_job
1466
1513
<< : *api_schedules_tags_triggers_web_triggering_rules
1467
- << : *debian_bullseye_amd64_image
1514
+ << : *debian_bookworm_amd64_image
1468
1515
variables :
1469
1516
CC : gcc
1470
1517
CFLAGS : " ${CFLAGS_COMMON} -Og"
@@ -1653,36 +1700,27 @@ gcov:
1653
1700
<< : *default_triggering_rules
1654
1701
stage : postcheck
1655
1702
needs :
1656
- - job : system:gcc:bullseye :amd64
1703
+ - job : system:gcc:bookworm :amd64
1657
1704
artifacts : true
1658
1705
script :
1659
- # *.gcno and *.gcda files generated for shared library objects are created
1660
- # in directories in which gcovr is unable to process them properly
1661
- # (.../.libs/...). Move such *.gcno and *.gcda files one level higher.
1662
- - find . -regex ".*/\.libs/.*\.\(gcda\|gcno\)" -execdir mv "{}" .. \;
1663
- # Help gcovr process the nasty tricks in lib/dns/code.h, where we include C
1664
- # source files from lib/dns/rdata/*/, using an even nastier trick.
1665
- - find lib/dns/rdata/* -name "*.c" -execdir cp -f "{}" ../../ \;
1666
- # Help gcovr process inline functions in headers by copying all libdns and
1667
- # libisc headers to lib/{dns,isc,ns}/.
1668
- - for SRC in dns isc; do for DST in dns isc ns; do cp -f "lib/${SRC}/include/${SRC}"/*.h "lib/${DST}/"; done; done
1669
- - find bin lib -maxdepth 1 -mindepth 1 -type d -exec cp -f lib/isc/include/isc/buffer.h "{}" \;
1670
- - cp -f lib/isc/include/isc/buffer.h lib/isc/netmgr/buffer.h
1671
- - cp -f lib/isc/include/isc/dnsstream.h lib/isc/netmgr/dnsstream.h
1672
- - cp -f lib/isc/include/isc/tid.h lib/isc/netmgr/tid.h
1673
- # Help gcovr find dlz_dbi.c file
1674
- - for DST in ldap mysql mysqldyn sqlite3 wildcard; do cp contrib/dlz/modules/common/dlz_dbi.c "contrib/dlz/modules/${DST}"; done
1706
+ # Ensure gcov files for unit tests are found via tests/ rather than
1707
+ # lib/*/tests/ to prevent confusing gcovr.
1708
+ - find lib/ -name tests -type l -delete
1709
+ # The "a-conftest.gcno" file is result of the ./configure step and
1710
+ # should be removed as it does not belong to the BIND 9 code base.
1711
+ - rm a-conftest.gcno
1675
1712
# Generate XML file in the Cobertura XML format suitable for use by GitLab
1676
1713
# for the purpose of displaying code coverage information in the diff view
1677
1714
# of a given merge request.
1678
- - gcovr --root . -- exclude-directories bin/tests --exclude-directories doc --exclude-directories fuzz --exclude-directories lib/samples --exclude tests --xml -o coverage.xml
1679
- - gcovr --root . -- exclude-directories bin/tests --exclude-directories doc --exclude-directories fuzz --exclude-directories lib/samples --exclude tests --html-details -o coverage.html
1680
- - gcovr --root . -- exclude-directories bin/tests --exclude-directories doc --exclude-directories fuzz --exclude-directories lib/samples --exclude tests -o coverage.txt
1715
+ - gcovr --exclude-directories bin/tests --exclude-directories doc --exclude-directories fuzz --exclude tests --cobertura-pretty -o coverage.xml
1716
+ - gcovr --exclude-directories bin/tests --exclude-directories doc --exclude-directories fuzz --exclude tests --html-details -o coverage.html
1717
+ - gcovr --exclude-directories bin/tests --exclude-directories doc --exclude-directories fuzz --exclude tests --txt -o coverage.txt
1681
1718
- tail -n 3 coverage.txt
1682
1719
coverage : /^TOTAL.*\s+(\d+\%)$/
1683
1720
artifacts :
1684
1721
paths :
1685
1722
- coverage*.html
1723
+ - coverage.css
1686
1724
- coverage.txt
1687
1725
- coverage.xml
1688
1726
reports :
0 commit comments