From fa2687cc7a1d49b209065a1a310c02117f4a5f65a7e019f425940d6591ab3967 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20M=C3=BCller?= Date: Fri, 8 May 2015 14:24:45 +0000 Subject: [PATCH 1/3] Accepting request 305950 from home:guohouzuo:freeipa - Enable export libraries to support plugin development. Install DNSSEC root key. Expose new interface for developing dynamic zone database. + dns_dynamic_db.patch OBS-URL: https://build.opensuse.org/request/show/305950 OBS-URL: https://build.opensuse.org/package/show/network/bind?expand=0&rev=165 --- bind.changes | 8 + bind.spec | 12 +- dns_dynamic_db.patch | 743 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 762 insertions(+), 1 deletion(-) create mode 100644 dns_dynamic_db.patch diff --git a/bind.changes b/bind.changes index 0a55c3b..4e6eb83 100644 --- a/bind.changes +++ b/bind.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri May 8 11:48:03 UTC 2015 - hguo@suse.com + +- Enable export libraries to support plugin development. + Install DNSSEC root key. + Expose new interface for developing dynamic zone database. + + dns_dynamic_db.patch + ------------------------------------------------------------------- Tue Feb 10 22:24:26 UTC 2015 - dvaleev@suse.com diff --git a/bind.spec b/bind.spec index 677c2b2..a78af30 100644 --- a/bind.spec +++ b/bind.spec @@ -38,6 +38,7 @@ Source40: http://www.venaas.no/ldap/bind-sdb/dnszone-schema.txt Patch: configure.in.diff Patch1: Makefile.in.diff Patch4: perl-path.diff +Patch5: dns_dynamic_db.patch Patch51: pie_compile.diff Patch52: named-bootconf.diff Patch53: bind-sdb-ldap.patch @@ -364,6 +365,7 @@ Name Domain (BIND) DNS server is found in the package named bind. %patch -p1 %patch1 -p1 %patch4 -p0 +%patch5 -p1 #%patch50 %patch51 %patch52 @@ -420,6 +422,9 @@ CONFIGURE_OPTIONS="\ --sysconfdir=%{_sysconfdir} \ --localstatedir=%{_var} \ --libdir=%{_libdir} \ + --enable-exportlib \ + --with-export-libdir=%{_libdir} \ + --with-export-includedir=%{_includedir} \ --includedir=%{_includedir}/bind \ --mandir=%{_mandir} \ --infodir=%{_infodir} \ @@ -478,11 +483,14 @@ mkdir -p \ ${RPM_BUILD_ROOT}%{_mandir}/{man1,man3,man5,man8} \ ${RPM_BUILD_ROOT}/var/adm/fillup-templates \ ${RPM_BUILD_ROOT}/%{_rundir} \ - ${RPM_BUILD_ROOT}/%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services + ${RPM_BUILD_ROOT}/%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services \ + ${RPM_BUILD_ROOT}%{_includedir}/bind/dns %{__make} DESTDIR=${RPM_BUILD_ROOT} install pushd contrib/idn/idnkit-1.0-src %{__make} DESTDIR=${RPM_BUILD_ROOT} install popd +# install header file for developing Dynamic DB plugin +install -m 0644 ./lib/dns/include/dns/dynamic_db.h ${RPM_BUILD_ROOT}%{_includedir}/bind/dns/ # remove useless .la files rm -f ${RPM_BUILD_ROOT}/%{_lib}/libidnkit.la rm -f ${RPM_BUILD_ROOT}/%{_lib}/libidnkitlite.la @@ -541,6 +549,7 @@ pushd ${RPM_BUILD_ROOT}%{_defaultdocdir}/bind/contrib/idn/idnkit-1.0-src rm -rf include lib man map patch tools win wsock Makefile.in acconfig.h aclocal.m4 config.* configure* install-sh ltconfig make.wnt mkinstalldirs popd # --------------------------------------------------------------------------- +install -m 0644 bind.keys ${RPM_BUILD_ROOT}/var/lib/named/named.root.key %pre # Are we updating from a package named bind9? @@ -799,6 +808,7 @@ fi %config %{_var}/lib/named/root.hint %config %{_var}/lib/named/127.0.0.zone %config %{_var}/lib/named/localhost.zone +%config %{_var}/lib/named/named.root.key %ghost %{_var}/lib/named/etc/localtime %attr(0644,root,named) %ghost %{_var}/lib/named/etc/named.conf.include %attr(-,named,named) %dir %{_var}/lib/named/var/run/named diff --git a/dns_dynamic_db.patch b/dns_dynamic_db.patch new file mode 100644 index 0000000..6135609 --- /dev/null +++ b/dns_dynamic_db.patch @@ -0,0 +1,743 @@ +# The patch content was originally written by Tomas Hozza: +# From 9b40e9166ee28f2d00424248fe303045e42b1c93 Mon Sep 17 00:00:00 2001 +# From: Tomas Hozza +# Date: Tue, 29 Jul 2014 15:16:10 +0200 +# Subject: [PATCH] Dynamic DB database for BIND 9.10 +# Signed-off-by: Tomas Hozza +# +# Based on the original patch, some minor adjustments to line numbers are made by Howard Guo . + +diff -rupN bind-9.10.1-P1-orig/bin/named/main.c bind-9.10.1-P1-patched/bin/named/main.c +--- bind-9.10.1-P1-orig/bin/named/main.c 2014-11-21 00:56:37.000000000 +0100 ++++ bind-9.10.1-P1-patched/bin/named/main.c 2015-04-27 11:33:20.619196452 +0200 +@@ -43,6 +43,7 @@ + #include + + #include ++#include + #include + #include + #include +diff -rupN bind-9.10.1-P1-orig/bin/named/server.c bind-9.10.1-P1-patched/bin/named/server.c +--- bind-9.10.1-P1-orig/bin/named/server.c 2014-11-21 00:56:37.000000000 +0100 ++++ bind-9.10.1-P1-patched/bin/named/server.c 2015-04-27 11:33:20.620196464 +0200 +@@ -68,6 +68,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -1304,6 +1305,72 @@ configure_peer(const cfg_obj_t *cpeer, i + } + + static isc_result_t ++configure_dynamic_db(const cfg_obj_t *dynamic_db, isc_mem_t *mctx, ++ const dns_dyndb_arguments_t *dyndb_args) ++{ ++ isc_result_t result; ++ const cfg_obj_t *obj; ++ const cfg_obj_t *options; ++ const cfg_listelt_t *element; ++ const char *name; ++ const char *libname; ++ const char **argv = NULL; ++ unsigned int i; ++ unsigned int len; ++ ++ /* Get the name of the database. */ ++ obj = cfg_tuple_get(dynamic_db, "name"); ++ name = cfg_obj_asstring(obj); ++ ++ /* Get options. */ ++ options = cfg_tuple_get(dynamic_db, "options"); ++ ++ /* Get library name. */ ++ obj = NULL; ++ CHECK(cfg_map_get(options, "library", &obj)); ++ libname = cfg_obj_asstring(obj); ++ ++ /* Create a list of arguments. */ ++ obj = NULL; ++ result = cfg_map_get(options, "arg", &obj); ++ if (result == ISC_R_NOTFOUND) ++ len = 0; ++ else if (result == ISC_R_SUCCESS) ++ len = cfg_list_length(obj, isc_boolean_false); ++ else ++ goto cleanup; ++ ++ /* Account for the last terminating NULL. */ ++ len++; ++ ++ argv = isc_mem_allocate(mctx, len * sizeof(const char *)); ++ if (argv == NULL) { ++ result = ISC_R_NOMEMORY; ++ goto cleanup; ++ } ++ for (element = cfg_list_first(obj), i = 0; ++ element != NULL; ++ element = cfg_list_next(element), i++) ++ { ++ REQUIRE(i < len); ++ ++ obj = cfg_listelt_value(element); ++ argv[i] = cfg_obj_asstring(obj); ++ } ++ REQUIRE(i < len); ++ argv[i] = NULL; ++ ++ CHECK(dns_dynamic_db_load(libname, name, mctx, argv, dyndb_args)); ++ ++cleanup: ++ if (argv != NULL) ++ isc_mem_free(mctx, argv); ++ ++ return result; ++} ++ ++ ++static isc_result_t + disable_algorithms(const cfg_obj_t *disabled, dns_resolver_t *resolver) { + isc_result_t result; + const cfg_obj_t *algorithms; +@@ -2323,6 +2390,7 @@ configure_view(dns_view_t *view, dns_vie + const cfg_obj_t *dlz; + unsigned int dlzargc; + char **dlzargv; ++ const cfg_obj_t *dynamic_db_list; + const cfg_obj_t *disabled; + const cfg_obj_t *obj; + const cfg_listelt_t *element; +@@ -2599,6 +2667,8 @@ configure_view(dns_view_t *view, dns_vie + } + } + ++ ++ + /* + * Obtain configuration parameters that affect the decision of whether + * we can reuse/share an existing cache. +@@ -3615,6 +3685,37 @@ configure_view(dns_view_t *view, dns_vie + dns_view_setrootdelonly(view, ISC_FALSE); + + /* ++ * Configure dynamic databases. ++ */ ++ dynamic_db_list = NULL; ++ if (voptions != NULL) ++ (void)cfg_map_get(voptions, "dynamic-db", &dynamic_db_list); ++ else ++ (void)cfg_map_get(config, "dynamic-db", &dynamic_db_list); ++ element = cfg_list_first(dynamic_db_list); ++ if (element != NULL) { ++ dns_dyndb_arguments_t *args; ++ ++ args = dns_dyndb_arguments_create(mctx); ++ if (args == NULL) { ++ result = ISC_R_NOMEMORY; ++ goto cleanup; ++ } ++ dns_dyndb_set_view(args, view); ++ dns_dyndb_set_zonemgr(args, ns_g_server->zonemgr); ++ dns_dyndb_set_task(args, ns_g_server->task); ++ dns_dyndb_set_timermgr(args, ns_g_timermgr); ++ while (element != NULL) { ++ obj = cfg_listelt_value(element); ++ CHECK(configure_dynamic_db(obj, mctx, args)); ++ ++ element = cfg_list_next(element); ++ } ++ ++ dns_dyndb_arguments_destroy(mctx, args); ++ } ++ ++ /* + * Setup automatic empty zones. If recursion is off then + * they are disabled by default. + */ +@@ -5376,6 +5477,7 @@ load_configuration(const char *filename, + cfg_aclconfctx_detach(&ns_g_aclconfctx); + CHECK(cfg_aclconfctx_create(ns_g_mctx, &ns_g_aclconfctx)); + ++ dns_dynamic_db_cleanup(ISC_FALSE); + /* + * Parse the global default pseudo-config file. + */ +@@ -6582,6 +6684,8 @@ shutdown_server(isc_task_t *task, isc_ev + dns_view_detach(&view); + } + ++ dns_dynamic_db_cleanup(ISC_TRUE); ++ + while ((nsc = ISC_LIST_HEAD(server->cachelist)) != NULL) { + ISC_LIST_UNLINK(server->cachelist, nsc, link); + dns_cache_detach(&nsc->cache); +diff -rupN bind-9.10.1-P1-orig/lib/dns/dynamic_db.c bind-9.10.1-P1-patched/lib/dns/dynamic_db.c +--- bind-9.10.1-P1-orig/lib/dns/dynamic_db.c 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.10.1-P1-patched/lib/dns/dynamic_db.c 2015-04-27 11:33:20.620196464 +0200 +@@ -0,0 +1,366 @@ ++/* ++ * Copyright (C) 2008-2011 Red Hat, Inc. ++ * ++ * Permission to use, copy, modify, and/or distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND Red Hat DISCLAIMS ALL WARRANTIES WITH ++ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY ++ * AND FITNESS. IN NO EVENT SHALL Red Hat BE LIABLE FOR ANY SPECIAL, DIRECT, ++ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ++ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE ++ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ++ * PERFORMANCE OF THIS SOFTWARE. ++ */ ++ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#if HAVE_DLFCN_H ++#include ++#endif ++ ++#ifndef DYNDB_LIBDIR ++#define DYNDB_LIBDIR "" ++#endif ++ ++#define CHECK(op) \ ++ do { result = (op); \ ++ if (result != ISC_R_SUCCESS) goto cleanup; \ ++ } while (0) ++ ++ ++typedef isc_result_t (*register_func_t)(isc_mem_t *mctx, const char *name, ++ const char * const *argv, ++ const dns_dyndb_arguments_t *dyndb_args); ++typedef void (*destroy_func_t)(void); ++ ++typedef struct dyndb_implementation dyndb_implementation_t; ++ ++struct dyndb_implementation { ++ isc_mem_t *mctx; ++ void *handle; ++ register_func_t register_function; ++ destroy_func_t destroy_function; ++ LINK(dyndb_implementation_t) link; ++}; ++ ++struct dns_dyndb_arguments { ++ dns_view_t *view; ++ dns_zonemgr_t *zmgr; ++ isc_task_t *task; ++ isc_timermgr_t *timermgr; ++}; ++ ++/* List of implementations. Locked by dyndb_lock. */ ++static LIST(dyndb_implementation_t) dyndb_implementations; ++/* Locks dyndb_implementations. */ ++static isc_mutex_t dyndb_lock; ++static isc_once_t once = ISC_ONCE_INIT; ++ ++static void ++dyndb_initialize(void) { ++ RUNTIME_CHECK(isc_mutex_init(&dyndb_lock) == ISC_R_SUCCESS); ++ INIT_LIST(dyndb_implementations); ++} ++ ++ ++#if HAVE_DLFCN_H ++static isc_result_t ++load_symbol(void *handle, const char *symbol_name, void **symbolp) ++{ ++ const char *errmsg; ++ void *symbol; ++ ++ REQUIRE(handle != NULL); ++ REQUIRE(symbolp != NULL && *symbolp == NULL); ++ ++ symbol = dlsym(handle, symbol_name); ++ if (symbol == NULL) { ++ errmsg = dlerror(); ++ if (errmsg == NULL) ++ errmsg = "returned function pointer is NULL"; ++ isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE, ++ DNS_LOGMODULE_DYNDB, ISC_LOG_ERROR, ++ "failed to lookup symbol %s: %s", ++ symbol_name, errmsg); ++ return ISC_R_FAILURE; ++ } ++ dlerror(); ++ ++ *symbolp = symbol; ++ ++ return ISC_R_SUCCESS; ++} ++ ++static isc_result_t ++load_library(isc_mem_t *mctx, const char *filename, dyndb_implementation_t **impp) ++{ ++ isc_result_t result; ++ size_t module_size; ++ isc_buffer_t *module_buf = NULL; ++ isc_region_t module_region; ++ void *handle = NULL; ++ dyndb_implementation_t *imp; ++ register_func_t register_function = NULL; ++ destroy_func_t destroy_function = NULL; ++ ++ REQUIRE(impp != NULL && *impp == NULL); ++ ++ /* Build up the full path. */ ++ module_size = strlen(DYNDB_LIBDIR) + strlen(filename) + 1; ++ CHECK(isc_buffer_allocate(mctx, &module_buf, module_size)); ++ isc_buffer_putstr(module_buf, DYNDB_LIBDIR); ++ isc_buffer_putstr(module_buf, filename); ++ isc_buffer_putuint8(module_buf, 0); ++ isc_buffer_region(module_buf, &module_region); ++ ++ handle = dlopen((char *)module_region.base, RTLD_LAZY); ++ if (handle == NULL) { ++ isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE, ++ DNS_LOGMODULE_DYNDB, ISC_LOG_ERROR, ++ "failed to dynamically load driver '%s': %s", ++ filename, dlerror()); ++ result = ISC_R_FAILURE; ++ goto cleanup; ++ } ++ dlerror(); ++ ++ CHECK(load_symbol(handle, "dynamic_driver_init", ++ (void **)®ister_function)); ++ CHECK(load_symbol(handle, "dynamic_driver_destroy", ++ (void **)&destroy_function)); ++ ++ imp = isc_mem_get(mctx, sizeof(dyndb_implementation_t)); ++ if (imp == NULL) { ++ result = ISC_R_NOMEMORY; ++ goto cleanup; ++ } ++ ++ imp->mctx = NULL; ++ isc_mem_attach(mctx, &imp->mctx); ++ imp->handle = handle; ++ imp->register_function = register_function; ++ imp->destroy_function = destroy_function; ++ INIT_LINK(imp, link); ++ ++ *impp = imp; ++ ++cleanup: ++ if (result != ISC_R_SUCCESS && handle != NULL) ++ dlclose(handle); ++ if (module_buf != NULL) ++ isc_buffer_free(&module_buf); ++ ++ return result; ++} ++ ++static void ++unload_library(dyndb_implementation_t **impp) ++{ ++ dyndb_implementation_t *imp; ++ ++ REQUIRE(impp != NULL && *impp != NULL); ++ ++ imp = *impp; ++ ++ isc_mem_putanddetach(&imp->mctx, imp, sizeof(dyndb_implementation_t)); ++ ++ *impp = NULL; ++} ++ ++#else /* HAVE_DLFCN_H */ ++static isc_result_t ++load_library(isc_mem_t *mctx, const char *filename, dyndb_implementation_t **impp) ++{ ++ UNUSED(mctx); ++ UNUSED(filename); ++ UNUSED(impp); ++ ++ isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE, DNS_LOGMODULE_DYNDB, ++ ISC_LOG_ERROR, ++ "dynamic database support is not implemented") ++ ++ return ISC_R_NOTIMPLEMENTED; ++} ++ ++static void ++unload_library(dyndb_implementation_t **impp) ++{ ++ dyndb_implementation_t *imp; ++ ++ REQUIRE(impp != NULL && *impp != NULL); ++ ++ imp = *impp; ++ ++ isc_mem_putanddetach(&imp->mctx, imp, sizeof(dyndb_implementation_t)); ++ ++ *impp = NULL; ++} ++#endif /* HAVE_DLFCN_H */ ++ ++isc_result_t ++dns_dynamic_db_load(const char *libname, const char *name, isc_mem_t *mctx, ++ const char * const *argv, ++ const dns_dyndb_arguments_t *dyndb_args) ++{ ++ isc_result_t result; ++ dyndb_implementation_t *implementation = NULL; ++ ++ RUNTIME_CHECK(isc_once_do(&once, dyndb_initialize) == ISC_R_SUCCESS); ++ ++ CHECK(load_library(mctx, libname, &implementation)); ++ CHECK(implementation->register_function(mctx, name, argv, dyndb_args)); ++ ++ LOCK(&dyndb_lock); ++ APPEND(dyndb_implementations, implementation, link); ++ UNLOCK(&dyndb_lock); ++ ++ return ISC_R_SUCCESS; ++ ++cleanup: ++ if (implementation != NULL) ++ unload_library(&implementation); ++ ++ return result; ++} ++ ++void ++dns_dynamic_db_cleanup(isc_boolean_t exiting) ++{ ++ dyndb_implementation_t *elem; ++ dyndb_implementation_t *prev; ++ ++ RUNTIME_CHECK(isc_once_do(&once, dyndb_initialize) == ISC_R_SUCCESS); ++ ++ LOCK(&dyndb_lock); ++ elem = TAIL(dyndb_implementations); ++ while (elem != NULL) { ++ prev = PREV(elem, link); ++ UNLINK(dyndb_implementations, elem, link); ++ elem->destroy_function(); ++ unload_library(&elem); ++ elem = prev; ++ } ++ UNLOCK(&dyndb_lock); ++ ++ if (exiting == ISC_TRUE) ++ isc_mutex_destroy(&dyndb_lock); ++} ++ ++dns_dyndb_arguments_t * ++dns_dyndb_arguments_create(isc_mem_t *mctx) ++{ ++ dns_dyndb_arguments_t *args; ++ ++ args = isc_mem_get(mctx, sizeof(*args)); ++ if (args != NULL) ++ memset(args, 0, sizeof(*args)); ++ ++ return args; ++} ++ ++void ++dns_dyndb_arguments_destroy(isc_mem_t *mctx, dns_dyndb_arguments_t *args) ++{ ++ REQUIRE(args != NULL); ++ ++ dns_dyndb_set_view(args, NULL); ++ dns_dyndb_set_zonemgr(args, NULL); ++ dns_dyndb_set_task(args, NULL); ++ dns_dyndb_set_timermgr(args, NULL); ++ ++ isc_mem_put(mctx, args, sizeof(*args)); ++} ++ ++void ++dns_dyndb_set_view(dns_dyndb_arguments_t *args, dns_view_t *view) ++{ ++ REQUIRE(args != NULL); ++ ++ if (args->view != NULL) ++ dns_view_detach(&args->view); ++ if (view != NULL) ++ dns_view_attach(view, &args->view); ++} ++ ++dns_view_t * ++dns_dyndb_get_view(dns_dyndb_arguments_t *args) ++{ ++ REQUIRE(args != NULL); ++ ++ return args->view; ++} ++ ++void ++dns_dyndb_set_zonemgr(dns_dyndb_arguments_t *args, dns_zonemgr_t *zmgr) ++{ ++ REQUIRE(args != NULL); ++ ++ if (args->zmgr != NULL) ++ dns_zonemgr_detach(&args->zmgr); ++ if (zmgr != NULL) ++ dns_zonemgr_attach(zmgr, &args->zmgr); ++} ++ ++dns_zonemgr_t * ++dns_dyndb_get_zonemgr(dns_dyndb_arguments_t *args) ++{ ++ REQUIRE(args != NULL); ++ ++ return args->zmgr; ++} ++ ++void ++dns_dyndb_set_task(dns_dyndb_arguments_t *args, isc_task_t *task) ++{ ++ REQUIRE(args != NULL); ++ ++ if (args->task != NULL) ++ isc_task_detach(&args->task); ++ if (task != NULL) ++ isc_task_attach(task, &args->task); ++} ++ ++isc_task_t * ++dns_dyndb_get_task(dns_dyndb_arguments_t *args) ++{ ++ REQUIRE(args != NULL); ++ ++ return args->task; ++} ++ ++void ++dns_dyndb_set_timermgr(dns_dyndb_arguments_t *args, isc_timermgr_t *timermgr) ++{ ++ REQUIRE(args != NULL); ++ ++ args->timermgr = timermgr; ++} ++ ++isc_timermgr_t * ++dns_dyndb_get_timermgr(dns_dyndb_arguments_t *args) ++{ ++ REQUIRE(args != NULL); ++ ++ return args->timermgr; ++} +diff -rupN bind-9.10.1-P1-orig/lib/dns/include/dns/dynamic_db.h bind-9.10.1-P1-patched/lib/dns/include/dns/dynamic_db.h +--- bind-9.10.1-P1-orig/lib/dns/include/dns/dynamic_db.h 1970-01-01 01:00:00.000000000 +0100 ++++ bind-9.10.1-P1-patched/lib/dns/include/dns/dynamic_db.h 2015-04-27 11:33:20.620196464 +0200 +@@ -0,0 +1,50 @@ ++/* ++ * Copyright (C) 2008-2011 Red Hat, Inc. ++ * ++ * Permission to use, copy, modify, and/or distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND Red Hat DISCLAIMS ALL WARRANTIES WITH ++ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY ++ * AND FITNESS. IN NO EVENT SHALL Red Hat BE LIABLE FOR ANY SPECIAL, DIRECT, ++ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM ++ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE ++ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ++ * PERFORMANCE OF THIS SOFTWARE. ++ */ ++ ++ ++#ifndef DYNAMIC_DB_H ++#define DYNAMIC_DB_H ++ ++#include ++ ++#include ++ ++/* ++ * TODO: ++ * Reformat the prototypes. ++ * Add annotated comments. ++ */ ++ ++isc_result_t dns_dynamic_db_load(const char *libname, const char *name, ++ isc_mem_t *mctx, const char * const *argv, ++ const dns_dyndb_arguments_t *dyndb_args); ++ ++void dns_dynamic_db_cleanup(isc_boolean_t exiting); ++ ++dns_dyndb_arguments_t *dns_dyndb_arguments_create(isc_mem_t *mctx); ++void dns_dyndb_arguments_destroy(isc_mem_t *mctx, dns_dyndb_arguments_t *args); ++ ++void dns_dyndb_set_view(dns_dyndb_arguments_t *args, dns_view_t *view); ++dns_view_t *dns_dyndb_get_view(dns_dyndb_arguments_t *args); ++void dns_dyndb_set_zonemgr(dns_dyndb_arguments_t *args, dns_zonemgr_t *zmgr); ++dns_zonemgr_t *dns_dyndb_get_zonemgr(dns_dyndb_arguments_t *args); ++void dns_dyndb_set_task(dns_dyndb_arguments_t *args, isc_task_t *task); ++isc_task_t *dns_dyndb_get_task(dns_dyndb_arguments_t *args); ++void dns_dyndb_set_timermgr(dns_dyndb_arguments_t *args, ++ isc_timermgr_t *timermgr); ++isc_timermgr_t *dns_dyndb_get_timermgr(dns_dyndb_arguments_t *args); ++ ++#endif +diff -rupN bind-9.10.1-P1-orig/lib/dns/include/dns/log.h bind-9.10.1-P1-patched/lib/dns/include/dns/log.h +--- bind-9.10.1-P1-orig/lib/dns/include/dns/log.h 2014-11-21 00:56:37.000000000 +0100 ++++ bind-9.10.1-P1-patched/lib/dns/include/dns/log.h 2015-04-27 11:33:20.621196475 +0200 +@@ -78,6 +78,7 @@ LIBDNS_EXTERNAL_DATA extern isc_logmodul + #define DNS_LOGMODULE_DNSSEC (&dns_modules[27]) + #define DNS_LOGMODULE_CRYPTO (&dns_modules[28]) + #define DNS_LOGMODULE_PACKETS (&dns_modules[29]) ++#define DNS_LOGMODULE_DYNDB (&dns_modules[30]) + + ISC_LANG_BEGINDECLS + +diff -rupN bind-9.10.1-P1-orig/lib/dns/include/dns/Makefile.in bind-9.10.1-P1-patched/lib/dns/include/dns/Makefile.in +--- bind-9.10.1-P1-orig/lib/dns/include/dns/Makefile.in 2014-11-21 00:56:37.000000000 +0100 ++++ bind-9.10.1-P1-patched/lib/dns/include/dns/Makefile.in 2015-04-27 11:33:20.621196475 +0200 +@@ -23,7 +23,7 @@ top_srcdir = @top_srcdir@ + + HEADERS = acache.h acl.h adb.h bit.h byaddr.h cache.h callbacks.h cert.h \ + client.h clientinfo.h compress.h \ +- db.h dbiterator.h dbtable.h diff.h dispatch.h \ ++ db.h dbiterator.h dbtable.h diff.h dispatch.h dynamic_db.h \ + dlz.h dlz_dlopen.h dns64.h dnssec.h ds.h dsdigest.h \ + ecdb.h events.h fixedname.h forward.h geoip.h iptable.h \ + journal.h keydata.h keyflags.h keytable.h keyvalues.h \ +diff -rupN bind-9.10.1-P1-orig/lib/dns/include/dns/types.h bind-9.10.1-P1-patched/lib/dns/include/dns/types.h +--- bind-9.10.1-P1-orig/lib/dns/include/dns/types.h 2014-11-21 00:56:37.000000000 +0100 ++++ bind-9.10.1-P1-patched/lib/dns/include/dns/types.h 2015-04-27 11:33:20.621196475 +0200 +@@ -139,6 +139,7 @@ typedef struct dns_zone dns_zone_t; + typedef ISC_LIST(dns_zone_t) dns_zonelist_t; + typedef struct dns_zonemgr dns_zonemgr_t; + typedef struct dns_zt dns_zt_t; ++typedef struct dns_dyndb_arguments dns_dyndb_arguments_t; + + /* + * If we are not using GSSAPI, define the types we use as opaque types here. +diff -rupN bind-9.10.1-P1-orig/lib/dns/log.c bind-9.10.1-P1-patched/lib/dns/log.c +--- bind-9.10.1-P1-orig/lib/dns/log.c 2014-11-21 00:56:37.000000000 +0100 ++++ bind-9.10.1-P1-patched/lib/dns/log.c 2015-04-27 11:33:20.621196475 +0200 +@@ -84,6 +84,7 @@ LIBDNS_EXTERNAL_DATA isc_logmodule_t dns + { "dns/dnssec", 0 }, + { "dns/crypto", 0 }, + { "dns/packets", 0 }, ++ { "dns/dynamic_db", 0 }, + { NULL, 0 } + }; + +diff -rupN bind-9.10.1-P1-orig/lib/dns/Makefile.in bind-9.10.1-P1-patched/lib/dns/Makefile.in +--- bind-9.10.1-P1-orig/lib/dns/Makefile.in 2014-11-21 00:56:37.000000000 +0100 ++++ bind-9.10.1-P1-patched/lib/dns/Makefile.in 2015-04-27 11:36:30.228342475 +0200 +@@ -65,7 +65,7 @@ GEOIPLINKOBJS = geoip.@O@ + DNSOBJS = acache.@O@ acl.@O@ adb.@O@ byaddr.@O@ \ + cache.@O@ callbacks.@O@ clientinfo.@O@ compress.@O@ \ + db.@O@ dbiterator.@O@ dbtable.@O@ diff.@O@ dispatch.@O@ \ +- dlz.@O@ dns64.@O@ dnssec.@O@ ds.@O@ forward.@O@ \ ++ dlz.@O@ dns64.@O@ dnssec.@O@ ds.@O@ dynamic_db.@O@ forward.@O@ \ + iptable.@O@ journal.@O@ keydata.@O@ keytable.@O@ \ + lib.@O@ log.@O@ lookup.@O@ \ + master.@O@ masterdump.@O@ message.@O@ \ +@@ -103,7 +103,7 @@ GEOIOLINKSRCS = geoip.c + DNSSRCS = acache.c acl.c adb.c byaddr.c \ + cache.c callbacks.c clientinfo.c compress.c \ + db.c dbiterator.c dbtable.c diff.c dispatch.c \ +- dlz.c dns64.c dnssec.c ds.c forward.c geoip.c \ ++ dlz.c dns64.c dnssec.c ds.c dynamic_db.c forward.c geoip.c \ + iptable.c journal.c keydata.c keytable.c lib.c log.c \ + lookup.c master.c masterdump.c message.c \ + name.c ncache.c nsec.c nsec3.c order.c peer.c portlist.c \ +@@ -138,6 +138,11 @@ version.@O@: version.c + -DLIBAGE=${LIBAGE} \ + -c ${srcdir}/version.c + ++dynamic_db.@O@: dynamic_db.c ++ ${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \ ++ -DDYNDB_LIBDIR=\"/var/lib/named/\" \ ++ -c ${srcdir}/dynamic_db.c ++ + libdns.@SA@: ${OBJS} + ${AR} ${ARFLAGS} $@ ${OBJS} + ${RANLIB} $@ +diff -rupN bind-9.10.1-P1-orig/lib/isccfg/namedconf.c bind-9.10.1-P1-patched/lib/isccfg/namedconf.c +--- bind-9.10.1-P1-orig/lib/isccfg/namedconf.c 2014-11-21 00:56:37.000000000 +0100 ++++ bind-9.10.1-P1-patched/lib/isccfg/namedconf.c 2015-04-27 11:33:20.621196475 +0200 +@@ -660,6 +660,40 @@ static cfg_type_t cfg_type_transferforma + &transferformat_enums + }; + ++/* ++ * Dynamic database clauses. ++ */ ++ ++static cfg_clausedef_t ++dynamic_db_clauses[] = { ++ { "library", &cfg_type_qstring, 0 }, ++ { "arg", &cfg_type_qstring, CFG_CLAUSEFLAG_MULTI }, ++ { NULL, NULL, 0 } ++}; ++ ++static cfg_clausedef_t * ++dynamic_db_clausesets[] = { ++ dynamic_db_clauses, ++ NULL ++}; ++ ++static cfg_type_t cfg_type_dynamic_db_opts = { ++ "dynamically_loadable_zones_opts", cfg_parse_map, ++ cfg_print_map, cfg_doc_map, &cfg_rep_map, ++ dynamic_db_clausesets ++}; ++ ++static cfg_tuplefielddef_t dynamic_db_fields[] = { ++ { "name", &cfg_type_astring, 0 }, ++ { "options", &cfg_type_dynamic_db_opts, 0 }, ++ { NULL, NULL, 0 } ++}; ++ ++static cfg_type_t cfg_type_dynamic_db = { ++ "dynamic_db", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple, ++ &cfg_rep_tuple, dynamic_db_fields ++}; ++ + /*% + * The special keyword "none", as used in the pid-file option. + */ +@@ -906,6 +940,7 @@ namedconf_or_view_clauses[] = { + { "key", &cfg_type_key, CFG_CLAUSEFLAG_MULTI }, + { "zone", &cfg_type_zone, CFG_CLAUSEFLAG_MULTI }, + { "dlz", &cfg_type_dlz, CFG_CLAUSEFLAG_MULTI }, ++ { "dynamic-db", &cfg_type_dynamic_db, CFG_CLAUSEFLAG_MULTI }, + { "server", &cfg_type_server, CFG_CLAUSEFLAG_MULTI }, + { "trusted-keys", &cfg_type_dnsseckeys, CFG_CLAUSEFLAG_MULTI }, + { "managed-keys", &cfg_type_managedkeys, CFG_CLAUSEFLAG_MULTI }, +@@ -2131,6 +2166,7 @@ static cfg_type_t cfg_type_dialuptype = + &cfg_rep_string, dialup_enums + }; + ++ + static const char *notify_enums[] = { "explicit", "master-only", NULL }; + static isc_result_t + parse_notify_type(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) { +@@ -3199,3 +3235,4 @@ static cfg_type_t cfg_type_maxttl = { + "maxttl_no_default", parse_maxttl, cfg_print_ustring, cfg_doc_terminal, + &cfg_rep_string, maxttl_enums + }; ++ From 44ffc351bb5406aa89e58722aa4585641ab5f9a356ba9737d26738fd4a158f16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20M=C3=BCller?= Date: Fri, 8 May 2015 15:44:01 +0000 Subject: [PATCH 2/3] - Update to version 9.10.2 - Handle timeout in legacy system test. [RT #38573] - dns_rdata_freestruct could be called on a uninitialised structure when handling a error. [RT #38568] - Addressed valgrind warnings. [RT #38549] - UDP dispatches could use the wrong pseudorandom number generator context. [RT #38578] - Fixed several small bugs in automatic trust anchor management, including a memory leak and a possible loss of key state information. [RT #38458] - 'dnssec-dsfromkey -T 0' failed to add ttl field. [RT #38565] - Revoking a managed trust anchor and supplying an untrusted replacement could cause named to crash with an assertion failure. (CVE-2015-1349) [RT #38344] - Fix a leak of query fetchlock. [RT #38454] - Fix a leak of pthread_mutexattr_t. [RT #38454] - RPZ could send spurious SERVFAILs in response to duplicate queries. [RT #38510] - CDS and CDNSKEY had the wrong attributes. [RT #38491] - adb hash table was not being grown. [RT #38470] - Update bind.keyring - Update baselibs.conf due to updates to libdns160 and libisc148 OBS-URL: https://build.opensuse.org/package/show/network/bind?expand=0&rev=166 --- baselibs.conf | 10 ++-- bind-9.10.1-P1.tar.gz | 3 -- bind-9.10.1-P1.tar.gz.asc | 12 ----- bind-9.10.2.tar.gz | 3 ++ bind-9.10.2.tar.gz.asc | 11 ++++ bind.changes | 25 +++++++++ bind.keyring | 107 ++++++++++++++++++++++++++++---------- bind.spec | 32 ++++++------ configure.in.diff | 2 +- dns_dynamic_db.patch | 14 ++--- pie_compile.diff | 4 +- 11 files changed, 149 insertions(+), 74 deletions(-) delete mode 100644 bind-9.10.1-P1.tar.gz delete mode 100644 bind-9.10.1-P1.tar.gz.asc create mode 100644 bind-9.10.2.tar.gz create mode 100644 bind-9.10.2.tar.gz.asc diff --git a/baselibs.conf b/baselibs.conf index f0828d2..cf1c221 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1,10 +1,10 @@ libbind9-140 -libdns146 +libdns160 libidnkit1 libidnkitlite1 libidnkitres1 libirs141 -libisc142 +libisc148 obsoletes "bind-libs- = " provides "bind-libs- = " libisccc140 @@ -13,13 +13,13 @@ liblwres141 bind-devel requires -bind- requires "libbind9-140- = " - requires "libdns146- = " + requires "libdns160- = " requires "libirs141- = " - requires "libisc142- = " + requires "libisc148- = " requires "libisccc140- = " requires "libisccfg140- = " requires "liblwres141- = " idnkit-devel - requires "libdns146- = " + requires "libdns160- = " requires "libidnkit1- = " requires "libidnkitlite1- = " diff --git a/bind-9.10.1-P1.tar.gz b/bind-9.10.1-P1.tar.gz deleted file mode 100644 index e4c5158..0000000 --- a/bind-9.10.1-P1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:974343108d32f253a130383d0ba51290fb7bf372092f1451f264a9e3ac09898d -size 8356463 diff --git a/bind-9.10.1-P1.tar.gz.asc b/bind-9.10.1-P1.tar.gz.asc deleted file mode 100644 index c3bb036..0000000 --- a/bind-9.10.1-P1.tar.gz.asc +++ /dev/null @@ -1,12 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG/MacGPG2 v2.0.17 (Darwin) -Comment: GPGTools - http://gpgtools.org - -iQEcBAABAgAGBQJUbrEDAAoJEEWseFcYnNvFws8H/2I6YJNbUxY4rS6/alBUwIWy -N3oUSb290Szatl1sAUjlZ6SQbIgvKKxPRcp6HwKvhpecc+/Y0EAN43IWrGrndnoX -Fvfutn68I9cWCSFROnlOOlrmSFCs6Xg7OHZJy5mkf5cm9DflXYo3Xp6b1VCk7Z6j -jxuXGn7Uj4a/Ylk1ERV9ELl4qXugPj8J9bN+cjtr6iBl8yxXKwuZiiSDaZZf36w0 -SziClj2G8CA0UOGDu7XxPENJdJZPmS+sopxXWBpU7pL0EojcrFPbGENU9FtzHrjq -oVte/sQlrXfZXjo4op7tTeQH7d7PE6i01p+VJwG9YDtAQ3HA5jovSTBiiEtICfU= -=LVgj ------END PGP SIGNATURE----- diff --git a/bind-9.10.2.tar.gz b/bind-9.10.2.tar.gz new file mode 100644 index 0000000..14ac1ea --- /dev/null +++ b/bind-9.10.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f9bb7908aa45c1edfa391e356fc0afc1ded175386cdefb6cf9e1289f7457a98 +size 8481111 diff --git a/bind-9.10.2.tar.gz.asc b/bind-9.10.2.tar.gz.asc new file mode 100644 index 0000000..f661dce --- /dev/null +++ b/bind-9.10.2.tar.gz.asc @@ -0,0 +1,11 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.11 (GNU/Linux) + +iQEcBAABAgAGBQJU7cGfAAoJEG+m68mRGkwCjI4H/2wkIzyXFeRtDiqZbci94llj +7ecXQjx3OFya/eu5bqcR3ov55KcDcu/OjR9sagiLoBlenmX9ITHKyGMWPjvUjBrD +ZaSE89seWg8e3Gq0bODv5IMi3rnlxdGSUE+8bSJu8mhlDywc77KLMpvj/6wJAgNs +M56N9KGTPUkvpxJVUGPzIFIn6tWpeZJh/hu9Tw/cXtHcpQajunnWufX5jVFZXoPz +5Dp/02jJ9JMWTua1URDAE5rITa5KwFajdz+epocoaI+9/athoK9xNAeIzYxMl78L +hT9FDi1SNpOO+zBaGiMUEOnzK457ljwA0z9OFlBSYtzXBPIhwxDbYIkNqcaoKT8= +=eKOZ +-----END PGP SIGNATURE----- diff --git a/bind.changes b/bind.changes index 4e6eb83..7e1d45e 100644 --- a/bind.changes +++ b/bind.changes @@ -1,3 +1,28 @@ +------------------------------------------------------------------- +Fri May 8 15:05:25 UTC 2015 - lmuelle@suse.com + +- Update to version 9.10.2 + - Handle timeout in legacy system test. [RT #38573] + - dns_rdata_freestruct could be called on a uninitialised structure when + handling a error. [RT #38568] + - Addressed valgrind warnings. [RT #38549] + - UDP dispatches could use the wrong pseudorandom + number generator context. [RT #38578] + - Fixed several small bugs in automatic trust anchor management, including a + memory leak and a possible loss of key state information. [RT #38458] + - 'dnssec-dsfromkey -T 0' failed to add ttl field. [RT #38565] + - Revoking a managed trust anchor and supplying an untrusted replacement + could cause named to crash with an assertion failure. + (CVE-2015-1349) [RT #38344] + - Fix a leak of query fetchlock. [RT #38454] + - Fix a leak of pthread_mutexattr_t. [RT #38454] + - RPZ could send spurious SERVFAILs in response + to duplicate queries. [RT #38510] + - CDS and CDNSKEY had the wrong attributes. [RT #38491] + - adb hash table was not being grown. [RT #38470] +- Update bind.keyring +- Update baselibs.conf due to updates to libdns160 and libisc148 + ------------------------------------------------------------------- Fri May 8 11:48:03 UTC 2015 - hguo@suse.com diff --git a/bind.keyring b/bind.keyring index 525fbc1..8b2b549 100644 --- a/bind.keyring +++ b/bind.keyring @@ -1,31 +1,82 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.12 (NetBSD) +Version: GnuPG v2 -mQENBFEKeFYBCADaN83gsb0VDjlGZkYra0PPlHz/eczKBU+/6I/VBq/FcsFEc27/ -O8IE05rIID10rXLjZ0k8y4ydvhI40eVZfxwaFvQEX/StVtU1ie3F7TS02ZuJ1yal -YRtU29hhnZ5icDdiJ98gcZSH2WKhIWLRpmc60Lja/sTsO0lkLPJe9x2MDuzkQu9M -Z7hlMgqZxZ1I/mQ/KsjT3oUt8euwyntg8/w/cpY8H0EVjyBnZWV2yejsLnbCo947 -hbjvUMSluGs7AZP0d+yqpGNsgRQ9iHy0NiL3ELdBqD22cqGRGTkX76KcLoXvqLVY -450bBtXsI2uUXy5iL/eUkUP2JgWQybjju/M3ABEBAAG0SEludGVybmV0IFN5c3Rl -bXMgQ29uc29ydGl1bSwgSW5jLiAoU2lnbmluZyBrZXksIDIwMTMpIDxjb2Rlc2ln -bkBpc2Mub3JnPokBPgQTAQIAKAUCUQp4VgIbAwUJA8JnAAYLCQgHAwIGFQgCCQoL -BBYCAwECHgECF4AACgkQRax4Vxic28XzIQf6AwLblJ98KI6l8gWqKVHMErYgl9+Q -RiIxrqJtyn4OjeZHX9diVjv2HlsRjnTpNl5MiSB9tXvq+GX696w6dtpoqYjZEQoP -ZCwE2USR6XO71eYO3rxLBnc0ymRvQm4zB2YKqworQDym0+wE8xiGBO8LyyVDfS5G -aGWXl0YJkfNYXzhEp6toIiLwRE0uP0TarHcHCo2CboVBgODvDZqwSBfT+i6dT+Gy -6nVEh3j7XnqgjCQ25cGev9sHR3hobT/fxG0F2YZ7sMwpWj9q0Y/dOlY7SV/ZGSs+ -ubKQ55BWsTjJRrNqyDX8QLb8oVic5q/yQkV+RTs1sP5s6JSs0KqQdyR3ZbkBDQRR -CnhWAQgApxtu688JKcr6NXWOneWXn1Pti2jRhdVKNlNkGgLJ76vQTVdMmmTDwEty -YQM6C9qjIXj8cEwz+LGRUXoCXOX9Yokf5oOjNpQutn4KVS+IRvWMYaK0qsTaa/c0 -FaIiFWvswyGucXAX/q9H5IoK8uYKXv5ww7+x3l1etg9/QdDQ/CANyMQbjBn38Wfn -Fy/zoUl+mMZLfqs+3NwT5C+m/4M99SoyC7XQLaZt3PBO4rVjUnMkCgiXsNdDIZnv -0XgUKyzSgrdPZcqKEG3yj8v5aTOC2k60Ffw1/ytA3hyfxLmdxxsyGyNQ4ZY8ZxmB -Z6AyUWVK95bL4oQqUCqfzSscHpWokQARAQABiQElBBgBAgAPBQJRCnhWAhsMBQkD -wmcAAAoJEEWseFcYnNvF4JAH/0MlU+Iwu5k6II3KufE2agMsRD2hk1VkpZcC08qi -LfHxX/4HrCZd7jcViLpFeK+I5JaDM2G21Co9jBMoPh+EUDnalG3eglXgeNEbUfAZ -pM7c9UejTNVmrw6crcgeUhKS2l0oBu9gRRlcSJEYY8XngfKJHBscCrsafp3RMVkO -m4Ti4CcxOot3uQ10U8GojjtWp7bgqIaFBF8aV8vugXJLl9IHqgVEtvo9miM+0Tfi -evOzuZMrgVY4zI2ZiLcrVM1KuIeZ2nIKbNWkJpDH2ZwUfsIx/KTxjpqld+NStzGQ -B9v1wazIBDHQU4hq5ddOlk0lrLDAmMJzHbavlduWmFRkuv4= -=bGLP +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 +=vnk9 -----END PGP PUBLIC KEY BLOCK----- diff --git a/bind.spec b/bind.spec index a78af30..8476170 100644 --- a/bind.spec +++ b/bind.spec @@ -18,8 +18,8 @@ Name: bind %define pkg_name bind -%define pkg_vers 9.10.1-P1 -%define rpm_vers 9.10.1P1 +%define pkg_vers 9.10.2 +%define rpm_vers 9.10.2 %define idn_vers 1.0 Summary: Domain Name System (DNS) Server (named) License: ISC @@ -138,13 +138,13 @@ Release: 0 This library contains a few utility functions used by the BIND server and utilities. -%package -n libdns146 +%package -n libdns160 Summary: DNS library used by BIND Group: System/Libraries Version: %rpm_vers Release: 0 -%description -n libdns146 +%description -n libdns160 This subpackage contains the "DNS client" module. This is a higher level API that provides an interface to name resolution, single DNS transaction with a particular server, and dynamic update. Regarding @@ -224,7 +224,7 @@ libirs provides an interface to parse the traditional resolv.conf file and an parameters that would be beyond the capability of the resolv.conf file. This subpackage contains the header files needed for building programs with it. -%package -n libisc142 +%package -n libisc148 Summary: ISC shared library used by BIND Group: System/Libraries Version: %rpm_vers @@ -235,7 +235,7 @@ Release: 0 Obsoletes: bind-libs = %version-%release Provides: bind-libs < %version-%release -%description -n libisc142 +%description -n libisc148 This library contains miscellaneous utility function used by the BIND server and utilities. It includes functions for assertion handling, balanced binary (AVL) trees, bit masks comparison, event based @@ -295,9 +295,9 @@ Group: Development/Libraries/C and C++ Version: %rpm_vers Release: 0 Requires: libbind9-140 = %version -Requires: libdns146 = %version +Requires: libdns160 = %version Requires: libirs141 = %version -Requires: libisc142 = %version +Requires: libisc148 = %version Requires: libisccc140 = %version Requires: libisccfg140 = %version Requires: liblwres141 = %version @@ -707,8 +707,8 @@ fi %post -n libbind9-140 -p /sbin/ldconfig %postun -n libbind9-140 -p /sbin/ldconfig -%post -n libdns146 -p /sbin/ldconfig -%postun -n libdns146 -p /sbin/ldconfig +%post -n libdns160 -p /sbin/ldconfig +%postun -n libdns160 -p /sbin/ldconfig %post -n libidnkit1 -p /sbin/ldconfig %postun -n libidnkit1 -p /sbin/ldconfig %post -n libidnkitlite1 -p /sbin/ldconfig @@ -717,8 +717,8 @@ fi %postun -n libidnkitres1 -p /sbin/ldconfig %post -n libirs141 -p /sbin/ldconfig %postun -n libirs141 -p /sbin/ldconfig -%post -n libisc142 -p /sbin/ldconfig -%postun -n libisc142 -p /sbin/ldconfig +%post -n libisc148 -p /sbin/ldconfig +%postun -n libisc148 -p /sbin/ldconfig %post -n libisccc140 -p /sbin/ldconfig %postun -n libisccc140 -p /sbin/ldconfig %post -n libisccfg140 -p /sbin/ldconfig @@ -837,9 +837,9 @@ fi %defattr(-,root,root) %_libdir/libbind9.so.140* -%files -n libdns146 +%files -n libdns160 %defattr(-,root,root) -%_libdir/libdns.so.146* +%_libdir/libdns.so.160* %files -n libidnkit1 %defattr(-,root,root) @@ -861,9 +861,9 @@ fi %defattr(-,root,root) %_libdir/libirs.so -%files -n libisc142 +%files -n libisc148 %defattr(-,root,root) -%_libdir/libisc.so.142* +%_libdir/libisc.so.148* %files -n libisccc140 %defattr(-,root,root) diff --git a/configure.in.diff b/configure.in.diff index a73cfab..3d17a5f 100644 --- a/configure.in.diff +++ b/configure.in.diff @@ -2,7 +2,7 @@ Index: bind-9.9.4-P2/configure.in =================================================================== --- bind-9.9.4-P2.orig/configure.in 2013-12-20 01:28:28.000000000 +0100 +++ bind-9.9.4-P2/configure.in 2014-01-21 17:55:51.063395215 +0100 -@@ -3839,7 +3839,7 @@ AC_SUBST(DOXYGEN) +@@ -3914,7 +3914,7 @@ AC_SUBST(DOXYGEN) # empty). The variable VARIABLE will be substituted into output files. # diff --git a/dns_dynamic_db.patch b/dns_dynamic_db.patch index 6135609..57e19b5 100644 --- a/dns_dynamic_db.patch +++ b/dns_dynamic_db.patch @@ -102,7 +102,7 @@ diff -rupN bind-9.10.1-P1-orig/bin/named/server.c bind-9.10.1-P1-patched/bin/nam disable_algorithms(const cfg_obj_t *disabled, dns_resolver_t *resolver) { isc_result_t result; const cfg_obj_t *algorithms; -@@ -2323,6 +2390,7 @@ configure_view(dns_view_t *view, dns_vie +@@ -2329,6 +2396,7 @@ configure_view(dns_view_t *view, dns_vie const cfg_obj_t *dlz; unsigned int dlzargc; char **dlzargv; @@ -110,7 +110,7 @@ diff -rupN bind-9.10.1-P1-orig/bin/named/server.c bind-9.10.1-P1-patched/bin/nam const cfg_obj_t *disabled; const cfg_obj_t *obj; const cfg_listelt_t *element; -@@ -2599,6 +2667,8 @@ configure_view(dns_view_t *view, dns_vie +@@ -2605,6 +2673,8 @@ configure_view(dns_view_t *view, dns_vie } } @@ -119,7 +119,7 @@ diff -rupN bind-9.10.1-P1-orig/bin/named/server.c bind-9.10.1-P1-patched/bin/nam /* * Obtain configuration parameters that affect the decision of whether * we can reuse/share an existing cache. -@@ -3615,6 +3685,37 @@ configure_view(dns_view_t *view, dns_vie +@@ -3607,6 +3677,37 @@ configure_view(dns_view_t *view, dns_vie dns_view_setrootdelonly(view, ISC_FALSE); /* @@ -157,7 +157,7 @@ diff -rupN bind-9.10.1-P1-orig/bin/named/server.c bind-9.10.1-P1-patched/bin/nam * Setup automatic empty zones. If recursion is off then * they are disabled by default. */ -@@ -5376,6 +5477,7 @@ load_configuration(const char *filename, +@@ -5349,6 +5450,7 @@ load_configuration(const char *filename, cfg_aclconfctx_detach(&ns_g_aclconfctx); CHECK(cfg_aclconfctx_create(ns_g_mctx, &ns_g_aclconfctx)); @@ -165,7 +165,7 @@ diff -rupN bind-9.10.1-P1-orig/bin/named/server.c bind-9.10.1-P1-patched/bin/nam /* * Parse the global default pseudo-config file. */ -@@ -6582,6 +6684,8 @@ shutdown_server(isc_task_t *task, isc_ev +@@ -6556,6 +6658,8 @@ shutdown_server(isc_task_t *task, isc_ev dns_view_detach(&view); } @@ -601,7 +601,7 @@ diff -rupN bind-9.10.1-P1-orig/lib/dns/include/dns/dynamic_db.h bind-9.10.1-P1-p diff -rupN bind-9.10.1-P1-orig/lib/dns/include/dns/log.h bind-9.10.1-P1-patched/lib/dns/include/dns/log.h --- bind-9.10.1-P1-orig/lib/dns/include/dns/log.h 2014-11-21 00:56:37.000000000 +0100 +++ bind-9.10.1-P1-patched/lib/dns/include/dns/log.h 2015-04-27 11:33:20.621196475 +0200 -@@ -78,6 +78,7 @@ LIBDNS_EXTERNAL_DATA extern isc_logmodul +@@ -79,6 +79,7 @@ LIBDNS_EXTERNAL_DATA extern isc_logmodul #define DNS_LOGMODULE_DNSSEC (&dns_modules[27]) #define DNS_LOGMODULE_CRYPTO (&dns_modules[28]) #define DNS_LOGMODULE_PACKETS (&dns_modules[29]) @@ -635,7 +635,7 @@ diff -rupN bind-9.10.1-P1-orig/lib/dns/include/dns/types.h bind-9.10.1-P1-patche diff -rupN bind-9.10.1-P1-orig/lib/dns/log.c bind-9.10.1-P1-patched/lib/dns/log.c --- bind-9.10.1-P1-orig/lib/dns/log.c 2014-11-21 00:56:37.000000000 +0100 +++ bind-9.10.1-P1-patched/lib/dns/log.c 2015-04-27 11:33:20.621196475 +0200 -@@ -84,6 +84,7 @@ LIBDNS_EXTERNAL_DATA isc_logmodule_t dns +@@ -85,6 +85,7 @@ LIBDNS_EXTERNAL_DATA isc_logmodule_t dns { "dns/dnssec", 0 }, { "dns/crypto", 0 }, { "dns/packets", 0 }, diff --git a/pie_compile.diff b/pie_compile.diff index 2b87888..cab48e1 100644 --- a/pie_compile.diff +++ b/pie_compile.diff @@ -188,8 +188,8 @@ Index: contrib/idn/idnkit-1.0-src/tools/idnconv/Makefile.in OBJS = idnconv.o util.o selectiveencode.o Index: contrib/zkt/Makefile.in =================================================================== ---- contrib/zkt-1.1.2/Makefile.in.orig 2013-07-17 00:13:06.000000000 +0200 -+++ contrib/zkt-1.1.2/Makefile.in 2013-08-06 12:08:19.494457743 +0200 +--- contrib/zkt-1.1.3/Makefile.in.orig 2013-07-17 00:13:06.000000000 +0200 ++++ contrib/zkt-1.1.3/Makefile.in 2013-08-06 12:08:19.494457743 +0200 @@ -13,11 +13,11 @@ OPTIM = # -O3 -DNDEBUG From 1ea9273bb0af31646b0c64f6ce69c5a1399f4f9d1169a92477df613aaab5108b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20M=C3=BCller?= Date: Fri, 8 May 2015 18:11:21 +0000 Subject: [PATCH 3/3] This change set makes bind build again for SLE 11 too. - Depend on systemd macros and sysvinit on post-12.3 only. - Create empty lwresd.conf at build time. - Reduce file list pre-13.1. OBS-URL: https://build.opensuse.org/package/show/network/bind?expand=0&rev=167 --- bind.changes | 7 +++++++ bind.spec | 28 +++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/bind.changes b/bind.changes index 7e1d45e..73cbe6c 100644 --- a/bind.changes +++ b/bind.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri May 8 18:00:41 UTC 2015 - lmuelle@suse.com + +- Depend on systemd macros and sysvinit on post-12.3 only. +- Create empty lwresd.conf at build time. +- Reduce file list pre-13.1. + ------------------------------------------------------------------- Fri May 8 15:05:25 UTC 2015 - lmuelle@suse.com diff --git a/bind.spec b/bind.spec index 8476170..27a6e79 100644 --- a/bind.spec +++ b/bind.spec @@ -54,7 +54,9 @@ BuildRequires: openldap2-devel BuildRequires: openssl BuildRequires: openssl-devel BuildRequires: python-base +%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1230 BuildRequires: systemd-rpm-macros +%endif BuildRequires: update-desktop-files Provides: bind8 Provides: bind9 @@ -317,7 +319,9 @@ Summary: BIND documentation Group: Documentation/Other Version: %rpm_vers Release: 0 +%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1230 BuildArch: noarch +%endif %description doc Documentation of the Berkeley Internet Name Domain (BIND) Domain Name @@ -332,7 +336,9 @@ Release: 0 Requires: %{name}-chrootenv Provides: dns_daemon Requires(pre): /usr/sbin/groupadd /usr/sbin/useradd +%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1230 PreReq: sysvinit(network) sysvinit(syslog) +%endif %description lwresd Bind-lwresd provides resolution services to local clients using a @@ -498,7 +504,7 @@ rm -f ${RPM_BUILD_ROOT}/%{_libdir}/lib*.{la,a} mv vendor-files/config/named.conf ${RPM_BUILD_ROOT}/%{_sysconfdir} mv vendor-files/config/bind.reg ${RPM_BUILD_ROOT}/%{_sysconfdir}/slp.reg.d mv vendor-files/config/rndc-access.conf ${RPM_BUILD_ROOT}/%{_sysconfdir}/named.d -for file in named.conf.include rndc.key; do +for file in lwresd.conf named.conf.include rndc.key; do touch ${RPM_BUILD_ROOT}/%{_sysconfdir}/${file} done for file in lwresd named; do @@ -576,11 +582,15 @@ test -d ${TEMP_DIR} || \ test -e ${TEMP_SYSCONFIG_FILE} && \ old ${TEMP_SYSCONFIG_FILE} echo "NAMED_RUN_CHROOTED=\"${NAMED_RUN_CHROOTED}\"" >${TEMP_SYSCONFIG_FILE} +%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1230 %service_add_pre named +%endif %preun %stop_on_removal named +%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1230 %service_del_preun named +%endif %post %{fillup_and_insserv -nf named} @@ -698,12 +708,16 @@ if [ -f ${NAMED_ACTIVE_FILE} ]; then sbin/insserv named test ! -s ${NAMED_ACTIVE_FILE} && rm -f ${NAMED_ACTIVE_FILE} fi +%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1230 %service_add_post named +%endif %postun %restart_on_update named %insserv_cleanup +%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1230 %service_del_postun named +%endif %post -n libbind9-140 -p /sbin/ldconfig %postun -n libbind9-140 -p /sbin/ldconfig @@ -737,7 +751,9 @@ fi %pre lwresd %{GROUPADD_NAMED} %{USERADD_NAMED} +%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1230 %service_add_pre lwresd +%endif %post lwresd # Create a key if usr/sbin/rndc-confgen is installed. @@ -753,16 +769,22 @@ fi if [ $1 -le 1 ]; then %{fillup_and_insserv -fy lwresd} fi; +%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1230 %service_add_post lwresd +%endif %preun lwresd %stop_on_removal lwresd +%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1230 %service_del_preun lwresd +%endif %postun lwresd %restart_on_update lwresd %insserv_cleanup +%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1230 %service_del_postun lwresd +%endif %post utils /sbin/ldconfig @@ -939,8 +961,10 @@ fi %{_bindir}/genDDNSkey %{_sbindir}/arpaname %{_sbindir}/ddns-confgen +%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1230 %{_sbindir}/dnssec-checkds %{_sbindir}/dnssec-coverage +%endif %{_sbindir}/dnssec-dsfromkey %{_sbindir}/dnssec-importkey %{_sbindir}/dnssec-keyfromlabel @@ -967,8 +991,10 @@ fi %{_mandir}/man1/nsupdate.1.gz %{_mandir}/man5/rndc.conf.5.gz %{_mandir}/man8/ddns-confgen.8.gz +%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1230 %{_mandir}/man8/dnssec-checkds.8.gz %{_mandir}/man8/dnssec-coverage.8.gz +%endif %{_mandir}/man8/dnssec-dsfromkey.8.gz %{_mandir}/man8/dnssec-importkey.8.gz %{_mandir}/man8/dnssec-keyfromlabel.8.gz