diff --git a/.bind.metadata b/.bind.metadata index f8ab226..06b0f1d 100644 --- a/.bind.metadata +++ b/.bind.metadata @@ -1,2 +1,2 @@ -cf51456ab314b2c7b2a409c1170b5ddaaf5af2f6 SOURCES/bind-9.11.25.tar.gz +14064c865920842e48f444be2bda9dc91770e439 SOURCES/bind-9.11.26.tar.gz a164fcad1d64d6b5fab5034928cb7260f1fa8fdd SOURCES/random.data diff --git a/.gitignore b/.gitignore index a174750..e31c942 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/bind-9.11.25.tar.gz +SOURCES/bind-9.11.26.tar.gz SOURCES/random.data diff --git a/SOURCES/bind-9.11-nothread-task_test.patch b/SOURCES/bind-9.11-nothread-task_test.patch deleted file mode 100644 index bc000f5..0000000 --- a/SOURCES/bind-9.11-nothread-task_test.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 38445f372fa494f541e566568a022c58c2e0a1e3 Mon Sep 17 00:00:00 2001 -From: Petr Mensik -Date: Mon, 30 Nov 2020 21:53:43 +0100 -Subject: [PATCH] Pass task_test also with threads disabled - -Condition cv is declared only when threads are used. Use it only in that -case. Test compiles and passes without thread support also. ---- - lib/isc/tests/task_test.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/lib/isc/tests/task_test.c b/lib/isc/tests/task_test.c -index 151a9ea..c1c2005 100644 ---- a/lib/isc/tests/task_test.c -+++ b/lib/isc/tests/task_test.c -@@ -61,8 +61,10 @@ _setup(void **state) { - result = isc_mutex_init(&lock); - assert_int_equal(result, ISC_R_SUCCESS); - -+#ifdef ISC_PLATFORM_USETHREADS - result = isc_condition_init(&cv); - assert_int_equal(result, ISC_R_SUCCESS); -+#endif - - result = isc_test_begin(NULL, true, 0); - assert_int_equal(result, ISC_R_SUCCESS); -@@ -79,8 +81,10 @@ _setup2(void **state) { - result = isc_mutex_init(&lock); - assert_int_equal(result, ISC_R_SUCCESS); - -+#ifdef ISC_PLATFORM_USETHREADS - result = isc_condition_init(&cv); - assert_int_equal(result, ISC_R_SUCCESS); -+#endif - - /* Two worker threads */ - result = isc_test_begin(NULL, true, 2); -@@ -98,8 +102,10 @@ _setup4(void **state) { - result = isc_mutex_init(&lock); - assert_int_equal(result, ISC_R_SUCCESS); - -+#ifdef ISC_PLATFORM_USETHREADS - result = isc_condition_init(&cv); - assert_int_equal(result, ISC_R_SUCCESS); -+#endif - - /* Four worker threads */ - result = isc_test_begin(NULL, true, 4); -@@ -113,7 +119,9 @@ _teardown(void **state) { - UNUSED(state); - - isc_test_end(); -+#ifdef ISC_PLATFORM_USETHREADS - isc_condition_destroy(&cv); -+#endif - - return (0); - } --- -2.26.2 - diff --git a/SOURCES/bind-9.11-serve-stale.patch b/SOURCES/bind-9.11-serve-stale.patch index c6fae7d..764a40c 100644 --- a/SOURCES/bind-9.11-serve-stale.patch +++ b/SOURCES/bind-9.11-serve-stale.patch @@ -1,4 +1,4 @@ -From 95b25d45662f4fad39cbc9ddbc3b4bcdae0a04ec Mon Sep 17 00:00:00 2001 +From d55a57427ee696dec51149950478394e43019607 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= Date: Thu, 7 Nov 2019 14:31:03 +0100 Subject: [PATCH] Implement serve-stale in 9.11 @@ -276,7 +276,7 @@ Signed-off-by: Petr Menšík create mode 100755 bin/tests/system/serve-stale/tests.sh diff --git a/bin/named/config.c b/bin/named/config.c -index 5e663c6..560ef04 100644 +index 9e071bb..d2cd3bc 100644 --- a/bin/named/config.c +++ b/bin/named/config.c @@ -182,13 +182,14 @@ options {\n\ @@ -291,7 +291,7 @@ index 5e663c6..560ef04 100644 max-clients-per-query 100;\n\ max-ncache-ttl 10800; /* 3 hours */\n\ max-recursion-depth 7;\n\ - max-recursion-queries 75;\n\ + max-recursion-queries 100;\n\ + max-stale-ttl 604800; /* 1 week */\n\ message-compression yes;\n\ # min-roots ;\n\ @@ -430,7 +430,7 @@ index acfa766..ea6f114 100644 }; diff --git a/bin/named/query.c b/bin/named/query.c -index edf42d2..89cc574 100644 +index b14f081..a95f5ad 100644 --- a/bin/named/query.c +++ b/bin/named/query.c @@ -149,10 +149,14 @@ last_cmpxchg(isc_stdtime_t *x, isc_stdtime_t *e, isc_stdtime_t r) { @@ -644,7 +644,7 @@ index edf42d2..89cc574 100644 RECURSIONOK(client)) { if (dns_rdataset_isassociated(rdataset)) -@@ -8668,7 +8775,11 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) +@@ -8676,7 +8783,11 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) "query_find: unexpected error after resuming: %s", isc_result_totext(result)); CTRACE(ISC_LOG_ERROR, errmsg); @@ -657,7 +657,7 @@ index edf42d2..89cc574 100644 goto cleanup; } -@@ -8924,7 +9035,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) +@@ -8932,7 +9043,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) /* * If we have a zero ttl from the cache refetch it. */ @@ -666,7 +666,7 @@ index edf42d2..89cc574 100644 RECURSIONOK(client)) { if (dns_rdataset_isassociated(rdataset)) -@@ -8935,6 +9046,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) +@@ -8943,6 +9054,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) if (node != NULL) dns_db_detachnode(db, &node); @@ -674,7 +674,7 @@ index edf42d2..89cc574 100644 INSIST(!REDIRECT(client)); result = query_recurse(client, qtype, client->query.qname, -@@ -9215,6 +9327,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) +@@ -9223,6 +9335,7 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) dns_fixedname_name(&wildcardname), true, false); cleanup: @@ -682,7 +682,7 @@ index edf42d2..89cc574 100644 CTRACE(ISC_LOG_DEBUG(3), "query_find: cleanup"); /* * General cleanup. -@@ -9271,6 +9384,49 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) +@@ -9279,6 +9392,49 @@ query_find(ns_client_t *client, dns_fetchevent_t *event, dns_rdatatype_t qtype) goto restart; } @@ -1007,7 +1007,7 @@ index 0acfe3a..2c21c1d 100644 Print a zone's configuration.\n\ sign zone [class [view]]\n\ diff --git a/bin/rndc/rndc.docbook b/bin/rndc/rndc.docbook -index 1e3812e..c7fe65f 100644 +index 159ded9..12a7208 100644 --- a/bin/rndc/rndc.docbook +++ b/bin/rndc/rndc.docbook @@ -689,6 +689,25 @@ @@ -1052,7 +1052,7 @@ index 23bedcd..43385de 100644 + exit 1 +fi diff --git a/bin/tests/system/conf.sh.in b/bin/tests/system/conf.sh.in -index c59cfaf..2b3de5f 100644 +index f6412f6..26c8901 100644 --- a/bin/tests/system/conf.sh.in +++ b/bin/tests/system/conf.sh.in @@ -128,7 +128,7 @@ PARALLELDIRS="dnssec rpzrecurse \ @@ -2039,7 +2039,7 @@ index 0000000..201c996 +echo "I:exit status: $status" +[ $status -eq 0 ] || exit 1 diff --git a/doc/arm/Bv9ARM-book.xml b/doc/arm/Bv9ARM-book.xml -index 1f9df2c..78e75ce 100644 +index 99c8680..5fbabfe 100644 --- a/doc/arm/Bv9ARM-book.xml +++ b/doc/arm/Bv9ARM-book.xml @@ -4336,6 +4336,9 @@ badresp:1,adberr:0,findfail:0,valfail:0] @@ -2113,7 +2113,7 @@ index 1f9df2c..78e75ce 100644 nocookie-udp-size -@@ -7448,13 +7482,19 @@ options { +@@ -7449,13 +7483,19 @@ options { resolver-query-timeout @@ -2140,7 +2140,7 @@ index 1f9df2c..78e75ce 100644 -@@ -9015,6 +9055,27 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; +@@ -9016,6 +9056,27 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; @@ -2169,7 +2169,7 @@ index 1f9df2c..78e75ce 100644 min-roots diff --git a/doc/arm/logging-categories.xml b/doc/arm/logging-categories.xml -index f0776fe..c4b903a 100644 +index 56d05e8..098342b 100644 --- a/doc/arm/logging-categories.xml +++ b/doc/arm/logging-categories.xml @@ -311,6 +311,17 @@ @@ -2982,7 +2982,7 @@ index fa839a0..91b3cab 100644 RUNTIME_CHECK(result == ISC_R_SUCCESS); isc_buffer_usedregion(&buffer, &r); diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c -index 3b75cad..535202b 100644 +index 3a60bcf..8ea4d47 100644 --- a/lib/dns/rbtdb.c +++ b/lib/dns/rbtdb.c @@ -511,6 +511,7 @@ typedef ISC_LIST(rdatasetheader_t) rdatasetheaderlist_t; @@ -3171,7 +3171,7 @@ index 3b75cad..535202b 100644 rdataset->private1 = rbtdb; rdataset->private2 = node; raw = (unsigned char *)header + sizeof(*header); -@@ -4699,6 +4798,19 @@ check_stale_header(dns_rbtnode_t *node, rdatasetheader_t *header, +@@ -4698,6 +4797,19 @@ check_stale_header(dns_rbtnode_t *node, rdatasetheader_t *header, #endif if (!ACTIVE(header, search->now)) { @@ -3191,7 +3191,7 @@ index 3b75cad..535202b 100644 /* * This rdataset is stale. If no one else is using the * node, we can clean it up right now, otherwise we mark -@@ -4738,7 +4850,7 @@ check_stale_header(dns_rbtnode_t *node, rdatasetheader_t *header, +@@ -4737,7 +4849,7 @@ check_stale_header(dns_rbtnode_t *node, rdatasetheader_t *header, node->data = header->next; free_rdataset(search->rbtdb, mctx, header); } else { @@ -3200,7 +3200,7 @@ index 3b75cad..535202b 100644 *header_prev = header; } } else -@@ -5179,7 +5291,7 @@ cache_find(dns_db_t *db, dns_name_t *name, dns_dbversion_t *version, +@@ -5178,7 +5290,7 @@ cache_find(dns_db_t *db, dns_name_t *name, dns_dbversion_t *version, &locktype, lock, &search, &header_prev)) { /* Do nothing. */ @@ -3209,7 +3209,7 @@ index 3b75cad..535202b 100644 /* * We now know that there is at least one active * non-stale rdataset at this node. -@@ -5662,7 +5774,7 @@ expirenode(dns_db_t *db, dns_dbnode_t *node, isc_stdtime_t now) { +@@ -5661,7 +5773,7 @@ expirenode(dns_db_t *db, dns_dbnode_t *node, isc_stdtime_t now) { * refcurrent(rbtnode) must be non-zero. This is so * because 'node' is an argument to the function. */ @@ -3218,7 +3218,7 @@ index 3b75cad..535202b 100644 if (log) isc_log_write(dns_lctx, category, module, level, "overmem cache: stale %s", -@@ -5670,7 +5782,7 @@ expirenode(dns_db_t *db, dns_dbnode_t *node, isc_stdtime_t now) { +@@ -5669,7 +5781,7 @@ expirenode(dns_db_t *db, dns_dbnode_t *node, isc_stdtime_t now) { } else if (force_expire) { if (! RETAIN(header)) { set_ttl(rbtdb, header, 0); @@ -3227,7 +3227,7 @@ index 3b75cad..535202b 100644 } else if (log) { isc_log_write(dns_lctx, category, module, level, "overmem cache: " -@@ -5929,9 +6041,9 @@ cache_findrdataset(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version, +@@ -5928,9 +6040,9 @@ cache_findrdataset(dns_db_t *db, dns_dbnode_t *node, dns_dbversion_t *version, * non-zero. This is so because 'node' is an * argument to the function. */ @@ -3239,7 +3239,7 @@ index 3b75cad..535202b 100644 if (header->type == matchtype) found = header; else if (header->type == RBTDB_RDATATYPE_NCACHEANY || -@@ -6233,7 +6345,7 @@ add32(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion, +@@ -6232,7 +6344,7 @@ add32(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion, topheader = topheader->next) { set_ttl(rbtdb, topheader, 0); @@ -3248,7 +3248,7 @@ index 3b75cad..535202b 100644 } goto find_header; } -@@ -6294,7 +6406,7 @@ add32(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion, +@@ -6293,7 +6405,7 @@ add32(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion, * ncache entry. */ set_ttl(rbtdb, topheader, 0); @@ -3257,7 +3257,7 @@ index 3b75cad..535202b 100644 topheader = NULL; goto find_header; } -@@ -6332,8 +6444,11 @@ add32(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion, +@@ -6331,8 +6443,11 @@ add32(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion, } /* @@ -3271,7 +3271,7 @@ index 3b75cad..535202b 100644 */ if (rbtversion == NULL && trust < header->trust && (ACTIVE(header, now) || header_nx)) { -@@ -6363,6 +6478,10 @@ add32(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion, +@@ -6362,6 +6477,10 @@ add32(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion, if ((options & DNS_DBADD_EXACT) != 0) flags |= DNS_RDATASLAB_EXACT; @@ -3282,7 +3282,7 @@ index 3b75cad..535202b 100644 if ((options & DNS_DBADD_EXACTTTL) != 0 && newheader->rdh_ttl != header->rdh_ttl) result = DNS_R_NOTEXACT; -@@ -6406,11 +6525,12 @@ add32(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion, +@@ -6405,11 +6524,12 @@ add32(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion, } } /* @@ -3300,7 +3300,7 @@ index 3b75cad..535202b 100644 */ if (IS_CACHE(rbtdb) && ACTIVE(header, now) && header->type == dns_rdatatype_ns && -@@ -6583,10 +6703,10 @@ add32(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion, +@@ -6582,10 +6702,10 @@ add32(dns_rbtdb_t *rbtdb, dns_rbtnode_t *rbtnode, rbtdb_version_t *rbtversion, changed->dirty = true; if (rbtversion == NULL) { set_ttl(rbtdb, header, 0); @@ -3313,7 +3313,7 @@ index 3b75cad..535202b 100644 } } if (rbtversion != NULL && !header_nx) { -@@ -8437,6 +8557,30 @@ nodefullname(dns_db_t *db, dns_dbnode_t *node, dns_name_t *name) { +@@ -8436,6 +8556,30 @@ nodefullname(dns_db_t *db, dns_dbnode_t *node, dns_name_t *name) { return (result); } @@ -3344,7 +3344,7 @@ index 3b75cad..535202b 100644 static dns_dbmethods_t zone_methods = { attach, detach, -@@ -8482,7 +8626,9 @@ static dns_dbmethods_t zone_methods = { +@@ -8481,7 +8625,9 @@ static dns_dbmethods_t zone_methods = { NULL, hashsize, nodefullname, @@ -3355,7 +3355,7 @@ index 3b75cad..535202b 100644 }; static dns_dbmethods_t cache_methods = { -@@ -8530,7 +8676,9 @@ static dns_dbmethods_t cache_methods = { +@@ -8529,7 +8675,9 @@ static dns_dbmethods_t cache_methods = { setcachestats, hashsize, nodefullname, @@ -3366,7 +3366,7 @@ index 3b75cad..535202b 100644 }; isc_result_t -@@ -8801,7 +8949,7 @@ dns_rbtdb_create +@@ -8800,7 +8948,7 @@ dns_rbtdb_create rbtdb->rpzs = NULL; rbtdb->load_rpzs = NULL; rbtdb->rpz_num = DNS_RPZ_INVALID_NUM; @@ -3375,7 +3375,7 @@ index 3b75cad..535202b 100644 /* * Version Initialization. */ -@@ -9219,7 +9367,8 @@ rdatasetiter_first(dns_rdatasetiter_t *iterator) { +@@ -9218,7 +9366,8 @@ rdatasetiter_first(dns_rdatasetiter_t *iterator) { * rdatasets to work. */ if (NONEXISTENT(header) || @@ -3385,7 +3385,7 @@ index 3b75cad..535202b 100644 header = NULL; break; } else -@@ -10428,7 +10577,7 @@ static inline bool +@@ -10427,7 +10576,7 @@ static inline bool need_headerupdate(rdatasetheader_t *header, isc_stdtime_t now) { if ((header->attributes & (RDATASET_ATTR_NONEXISTENT | @@ -3394,7 +3394,7 @@ index 3b75cad..535202b 100644 RDATASET_ATTR_ZEROTTL)) != 0) return (false); -@@ -10534,7 +10683,7 @@ expire_header(dns_rbtdb_t *rbtdb, rdatasetheader_t *header, +@@ -10533,7 +10682,7 @@ expire_header(dns_rbtdb_t *rbtdb, rdatasetheader_t *header, bool tree_locked, expire_t reason) { set_ttl(rbtdb, header, 0); @@ -3404,7 +3404,7 @@ index 3b75cad..535202b 100644 /* * Caller must hold the node (write) lock. diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c -index 5e20783..17a4eee 100644 +index 49ec49c..2de70a6 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -141,16 +141,17 @@ @@ -3468,7 +3468,7 @@ index 5e20783..17a4eee 100644 /* * Add a fudge factor to the expected rtt based on the current -@@ -4535,7 +4539,8 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, +@@ -4542,7 +4546,8 @@ fctx_create(dns_resolver_t *res, dns_name_t *name, dns_rdatatype_t type, /* * Compute an expiration time for the entire fetch. */ @@ -3478,7 +3478,7 @@ index 5e20783..17a4eee 100644 iresult = isc_time_nowplusinterval(&fctx->expires, &interval); if (iresult != ISC_R_SUCCESS) { UNEXPECTED_ERROR(__FILE__, __LINE__, -@@ -9059,6 +9064,8 @@ dns_resolver_create(dns_view_t *view, +@@ -9105,6 +9110,8 @@ dns_resolver_create(dns_view_t *view, res->spillattimer = NULL; res->zspill = 0; res->zero_no_soa_ttl = false; @@ -3487,7 +3487,7 @@ index 5e20783..17a4eee 100644 res->query_timeout = DEFAULT_QUERY_TIMEOUT; res->maxdepth = DEFAULT_RECURSION_DEPTH; res->maxqueries = DEFAULT_MAX_QUERIES; -@@ -10393,17 +10400,20 @@ dns_resolver_gettimeout(dns_resolver_t *resolver) { +@@ -10439,17 +10446,20 @@ dns_resolver_gettimeout(dns_resolver_t *resolver) { } void @@ -3516,7 +3516,7 @@ index 5e20783..17a4eee 100644 } void -@@ -10500,3 +10510,34 @@ dns_resolver_getquotaresponse(dns_resolver_t *resolver, dns_quotatype_t which) +@@ -10546,3 +10556,34 @@ dns_resolver_getquotaresponse(dns_resolver_t *resolver, dns_quotatype_t which) return (resolver->quotaresp[which]); } diff --git a/SPECS/bind.spec b/SPECS/bind.spec index 2add63e..c6e40ad 100644 --- a/SPECS/bind.spec +++ b/SPECS/bind.spec @@ -22,11 +22,10 @@ # Legacy GeoIP support %bcond_with GEOIP %bcond_with DNSTAP +%bcond_with DOC %if 0%{?fedora} >= 28 || 0%{?rhel} >= 8 -%bcond_without DOC %bcond_without UNITTEST %else -%bcond_with DOC %bcond_with UNITTEST %endif %bcond_with TSAN @@ -67,7 +66,7 @@ Summary: The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server Name: bind License: MPLv2.0 -Version: 9.11.25 +Version: 9.11.26 Release: 1%{?PATCHVER:.%{PATCHVER}}%{?PREVER:.%{PREVER}}%{?dist} Epoch: 32 Url: https://www.isc.org/downloads/bind/ @@ -154,8 +153,6 @@ Patch174:bind-9.11-fips-disable.patch Patch175:bind-9.11-json-c.patch Patch177:bind-9.11-serve-stale.patch Patch178:bind-9.11-dhcp-time-monotonic.patch -# https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/4442 -Patch179:bind-9.11-nothread-task_test.patch # SDB patches Patch11: bind-9.3.2b2-sdbsrc.patch @@ -550,11 +547,20 @@ are used for building ISC DHCP. %patch175 -p1 -b .json-c %patch177 -p1 -b .serve-stale %patch178 -p1 -b .time-monotonic -%patch179 -p1 -b .nothread-task_test mkdir lib/dns/tests/testdata/dstrandom cp -a %{SOURCE50} lib/dns/tests/testdata/dstrandom/random.data +# Avoid having [FIXME: manual] on top of generated manual pages +# Alternative approach due missing docbook5 style sheets. +# Remove namespace, so docbook is threated as version 4. +# Spaces should be fine. +# https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/4524 +find bin lib/lwres/man -name '*.docbook' -exec \ + sed -e 's|BIND9|BIND9|' \ + -e 's|xmlns="http://docbook.org/ns/docbook"\sversion="5.0"\s||' \ + -i '{}' ';' + %if %{with PKCS11} cp -r bin/named{,-pkcs11} cp -r bin/dnssec{,-pkcs11} @@ -1270,6 +1276,9 @@ rm -rf ${RPM_BUILD_ROOT} %{_mandir}/man8/named-journalprint.8* %doc CHANGES README named.conf.default %doc sample/ +%if %{without DOC} +%doc doc/arm/*.html doc/arm/*.pdf +%endif # Hide configuration %defattr(0640,root,named,0750) @@ -1585,6 +1594,9 @@ rm -rf ${RPM_BUILD_ROOT} %endif %changelog +* Mon Jan 04 2021 Petr Menšík - 32:9.11.26-1 +- Update to 9.11.26 + * Thu Nov 26 2020 Petr Menšík - 32:9.11.25-1 - Update to 9.11.25 - Require libcap from devel package