Skip to contentSkip to conversation

dhcp: allow for excluding the external bind

PATCH New Armin Kuster 1 participant 1 message Nov 13, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 dhcp: allow for excluding the external bind

There is a known issue when using ISC DHCP alongside bind 9.10. DHCP uses libraries provided by bind and there is a bug which results in dhcpd/dhclient not running in the background and not responding to sigterm.

The issue was first reported in 02/2015 by the fedora team here:

https://lists.isc.org/pipermail/bind-users/2015-February/094636.html

and as of 02/2018 it is still unresolved:

https://bugzilla.redhat.com/show_bug.cgi?id=1457871

Fedora's workaround seems to consist of providing working libraries from the bind 9.9 package just for DHCP.

added 'ext-bind' in PACKACGECONFIG
added notes on how to enable the workaround
refreshed patches too

[ Yocto # 12744 ]

---
 meta/recipes-connectivity/dhcp/dhcp.inc            |  3 +-
 .../dhcp/0008-tweak-to-support-external-bind.patch | 69 +++++++++---------
 .../dhcp/dhcp/0010-build-shared-libs.patch         | 83 +++++++++++-----------
 meta/recipes-connectivity/dhcp/dhcp_4.3.6.bb       | 17 ++++-
 4 files changed, 89 insertions(+), 83 deletions(-)
meta/recipes-connectivity/dhcp/dhcp.inc +1 -2
index e943707..44e946c 100644
@@ -10,7 +10,7 @@ HOMEPAGE = "http://www.isc.org/"
 LICENSE = "ISC"
 LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;md5=c5c64d696107f84b56fe337d14da1753"
 
-DEPENDS = "openssl bind"
+DEPENDS = "openssl"
 
 SRC_URI = "http://ftp.isc.org/isc/dhcp/${PV}/dhcp-${PV}.tar.gz \
            file://init-relay file://default-relay \
@@ -48,7 +48,6 @@ EXTRA_OECONF = "--with-srv-lease-file=${localstatedir}/lib/dhcp/dhcpd.leases \
                 --with-srv6-lease-file=${localstatedir}/lib/dhcp/dhcpd6.leases \
                 --with-cli-lease-file=${localstatedir}/lib/dhcp/dhclient.leases \
                 --with-cli6-lease-file=${localstatedir}/lib/dhcp/dhclient6.leases \
-                --with-libbind=${STAGING_LIBDIR}/ \
                 --enable-paranoia --disable-static \
                 --with-randomdev=/dev/random \
                "
meta/recipes-connectivity/dhcp/dhcp/0008-tweak-to-support-external-bind.patch +33 -36

119 lines not on this page · raw message

meta/recipes-connectivity/dhcp/dhcp/0010-build-shared-libs.patch +40 -43

135 lines not on this page · raw message

meta/recipes-connectivity/dhcp/dhcp_4.3.6.bb +15 -2
index cc13549..8b30579 100644
@@ -7,7 +7,6 @@ SRC_URI += "file://0001-define-macro-_PATH_DHCPD_CONF-and-_PATH_DHCLIENT_CON.pat
             file://0005-dhcp-client-fix-invoke-dhclient-script-failed-on-Rea.patch \
             file://0006-site.h-enable-gentle-shutdown.patch \
             file://0007-Add-configure-argument-to-make-the-libxml2-dependenc.patch \
-            file://0008-tweak-to-support-external-bind.patch \
             file://0009-remove-dhclient-script-bash-dependency.patch \
             file://0010-build-shared-libs.patch \
             file://0011-Moved-the-call-to-isc_app_ctxstart-to-not-get-signal.patch \
@@ -15,8 +14,22 @@ SRC_URI += "file://0001-define-macro-_PATH_DHCPD_CONF-and-_PATH_DHCLIENT_CON.pat
             file://CVE-2017-3144.patch \
            "
 
+# use internal libisc libraries which are based on bind 9.9.11 - there
+# is a bug in bind 9.10.x (normally supplied by OE) that prevents
+# dhcpd/dhclient from shutting down cleanly on sigterm and from running
+# in the background
+#
+# [https://bugzilla.yoctoproject.org/show_bug.cgi?id=12744]
+#
+# remove "ext-bind" and
+# also set PARALLEL_MAKE = "" 
+# [ Yocto 12744 ]
+#
+SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'ext-bind', 'file://0008-tweak-to-support-external-bind.patch', '', d)}"
+
 SRC_URI[md5sum] = "afa6e9b3eb7539ea048421a82c668adc"
 SRC_URI[sha256sum] = "a41eaf6364f1377fe065d35671d9cf82bbbc8f21207819b2b9f33f652aec6f1b"
 
-PACKAGECONFIG ?= ""
+PACKAGECONFIG ?= "ext-bind"
 PACKAGECONFIG[bind-httpstats] = "--with-libxml2,--without-libxml2,libxml2"
+PACKAGECONFIG[ext-bind] = "--with-libbind=${STAGING_LIBDIR}, --without-libbind, bind"
Signature · 1 line
2.7.4