Adding `bind-tools` to EdgeOS

BUG=b/230593189
TEST=Manually verified that the binaries from the package are present in the final image
RELEASE_NOTE=Added the `bind-tools` package to EdgeOS

Change-Id: I9f2775a46cf03c87733f90d0219cb403e038efb8
Reviewed-on: https://cos-review.googlesource.com/c/cos/overlays/board-overlays/+/32620
Reviewed-by: Roy Yang <royyang@google.com>
Tested-by: Cusky Presubmit Bot <presubmit@cos-infra-prod.iam.gserviceaccount.com>
diff --git a/project-edgeos/net-dns/bind-tools/Manifest b/project-edgeos/net-dns/bind-tools/Manifest
new file mode 100644
index 0000000..49bed98
--- /dev/null
+++ b/project-edgeos/net-dns/bind-tools/Manifest
@@ -0,0 +1 @@
+DIST bind-9.16.27.tar.xz 5084340 BLAKE2B 37b49ce81aa5122493a4feb2bb7be53c5d46ff2ce28456aec31ce1332520a09c10bb2293c736bffe7badbc2bc3d156c05f83367678bd101e17b99ca3ff69bebf SHA512 5c71f228db83aa8cc9e65466d6e5afca4a9f80c693358111a003fe09e1a14522175eb2b6a0f11e2a2cd4fdba01f2ae315de52e394a441b3861ca2a011e02af62
diff --git a/project-edgeos/net-dns/bind-tools/bind-tools-9.16.27.ebuild b/project-edgeos/net-dns/bind-tools/bind-tools-9.16.27.ebuild
new file mode 100644
index 0000000..a928124
--- /dev/null
+++ b/project-edgeos/net-dns/bind-tools/bind-tools-9.16.27.ebuild
@@ -0,0 +1,152 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools flag-o-matic toolchain-funcs
+
+MY_PN=${PN//-tools}
+MY_PV=${PV/_p/-P}
+MY_PV=${MY_PV/_rc/rc}
+MY_P="${MY_PN}-${MY_PV}"
+
+DESCRIPTION="bind tools: dig, nslookup, host, nsupdate, dnssec-keygen"
+HOMEPAGE="https://www.isc.org/software/bind"
+SRC_URI="https://downloads.isc.org/isc/bind9/${PV}/${MY_P}.tar.xz"
+
+LICENSE="Apache-2.0 BSD BSD-2 GPL-2 HPND ISC MPL-2.0"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="+caps doc gssapi idn ipv6 libedit readline xml"
+# no PKCS11 currently as it requires OpenSSL to be patched, also see bug 409687
+
+COMMON_DEPEND="
+	dev-libs/libuv:=
+	caps? ( sys-libs/libcap )
+	dev-libs/openssl:=
+	xml? ( dev-libs/libxml2 )
+	idn? ( net-dns/libidn2:= )
+	gssapi? ( virtual/krb5 )
+	libedit? ( dev-libs/libedit )
+	!libedit? (
+		readline? ( sys-libs/readline:= )
+	)
+"
+DEPEND="${COMMON_DEPEND}"
+RDEPEND="${COMMON_DEPEND}"
+
+# sphinx required for man-page and html creation
+BDEPEND="
+	doc? ( dev-python/sphinx )
+	virtual/pkgconfig
+"
+
+S="${WORKDIR}/${MY_P}"
+
+# bug 479092, requires networking
+RESTRICT="test"
+
+src_prepare() {
+	default
+
+	export LDFLAGS="${LDFLAGS} -L${EPREFIX}/usr/$(get_libdir)"
+
+	# Disable tests for now, bug 406399
+	sed -i '/^SUBDIRS/s:tests::' bin/Makefile.in lib/Makefile.in || die
+
+	# Do not disable thread local storage on Solaris, it works with our
+	# toolchain, and it breaks further configure checks
+	sed -i -e '/LDFLAGS=/s/-zrelax=transtls//' configure.ac configure || die
+
+	# bug #220361
+	rm aclocal.m4 || die
+	rm -rf libtool.m4/ || die
+
+	eautoreconf
+}
+
+src_configure() {
+	local myeconfargs=(
+		--localstatedir="${EPREFIX}"/var
+		--without-python
+		--without-libjson
+		--without-zlib
+		--without-lmdb
+		--without-maxminddb
+		--disable-geoip
+		--with-openssl="${ESYSROOT}"/usr
+		$(use_with idn libidn2 "${ESYSROOT}"/usr)
+		$(use_with xml libxml2)
+		$(use_with gssapi)
+		$(use_with readline)
+		$(use_enable caps linux-caps)
+		AR="$(type -P $(tc-getAR))"
+	)
+
+	# bug 607400
+	if use libedit ; then
+		myeconfargs+=( --with-readline=-ledit )
+	elif use readline ; then
+		myeconfargs+=( --with-readline=-lreadline )
+	else
+		myeconfargs+=( --without-readline )
+	fi
+
+	# bug 344029
+	append-cflags "-DDIG_SIGCHASE"
+
+	# to expose CMSG_* macros from sys/sockets.h
+	[[ ${CHOST} == *-solaris* ]] && append-cflags "-D_XOPEN_SOURCE=600"
+
+	# localstatedir for nsupdate -l, bug 395785
+	tc-export BUILD_CC
+	econf "${myeconfargs[@]}"
+
+	# bug #151839
+	echo '#undef SO_BSDCOMPAT' >> config.h
+}
+
+src_compile() {
+	local AR=$(tc-getAR)
+
+	emake AR="${AR}" -C lib/
+	emake AR="${AR}" -C bin/delv/
+	emake AR="${AR}" -C bin/dig/
+	emake AR="${AR}" -C bin/nsupdate/
+	emake AR="${AR}" -C bin/dnssec/
+	emake -C doc/man/ man $(usev doc)
+}
+
+src_install() {
+	local man_dir="${S}/doc/man"
+	local html_dir="${man_dir}/_build/html"
+
+	dodoc README CHANGES
+
+	cd "${S}"/bin/delv || die
+	dobin delv
+	doman ${man_dir}/delv.1
+
+	cd "${S}"/bin/dig || die
+	dobin dig host nslookup
+	doman ${man_dir}/{dig,host,nslookup}.1
+
+	cd "${S}"/bin/nsupdate || die
+	dobin nsupdate
+	doman ${man_dir}/nsupdate.1
+	if use doc; then
+		docinto html
+		dodoc ${html_dir}/nsupdate.html
+	fi
+
+	cd "${S}"/bin/dnssec || die
+	for tool in dsfromkey importkey keyfromlabel keygen \
+		revoke settime signzone verify; do
+		dobin dnssec-"${tool}"
+		doman ${man_dir}/dnssec-"${tool}".8
+		if use doc; then
+			docinto html
+			dodoc ${html_dir}/dnssec-"${tool}".html
+		fi
+	done
+}
diff --git a/project-edgeos/virtual/target-edgeos/target-edgeos-1.5-r4.ebuild b/project-edgeos/virtual/target-edgeos/target-edgeos-1.5-r5.ebuild
similarity index 100%
rename from project-edgeos/virtual/target-edgeos/target-edgeos-1.5-r4.ebuild
rename to project-edgeos/virtual/target-edgeos/target-edgeos-1.5-r5.ebuild
diff --git a/project-edgeos/virtual/target-edgeos/target-edgeos-1.5.ebuild b/project-edgeos/virtual/target-edgeos/target-edgeos-1.5.ebuild
index d209556..c52e8ff 100644
--- a/project-edgeos/virtual/target-edgeos/target-edgeos-1.5.ebuild
+++ b/project-edgeos/virtual/target-edgeos/target-edgeos-1.5.ebuild
@@ -31,4 +31,5 @@
 	app-crypt/tpm2-tools
 	app-arch/unzip
 	sys-apps/systemd-cryptsetup
+	net-dns/bind-tools
 "