sys-libs/talloc: Uprev from 2.3.1 to 2.3.3

sys-libs/talloc is a dependency of net-fs/samba which is being uprevved
to 4.15.0 which has a dependency requirement for talloc has a
requirement of >=2.3.3.

This also requires an update of the waf-utils.eclass to work as well as
the PYTHON_COMPAT for talloc ebuild to align with the build toolchain
which runs at 3.6.

BUG=chromium:1261791
TEST=emerge-{hatch,kevin,kevin64) talloc, deploy and test

Change-Id: Iaa34d114cb4fb8a58b97ef7077c4103e772305b1
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/overlays/portage-stable/+/3260296
Reviewed-by: Josh Simmons <simmonsjosh@google.com>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Ben Reich <benreich@chromium.org>
Commit-Queue: Ben Reich <benreich@chromium.org>
diff --git a/eclass/waf-utils.eclass b/eclass/waf-utils.eclass
index 7ee8abe..411b19f 100644
--- a/eclass/waf-utils.eclass
+++ b/eclass/waf-utils.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: waf-utils.eclass
@@ -8,21 +8,22 @@
 # Original Author: Gilles Dartiguelongue <eva@gentoo.org>
 # Various improvements based on cmake-utils.eclass: Tomáš Chvátal <scarabeus@gentoo.org>
 # Proper prefix support: Jonathan Callen <jcallen@gentoo.org>
+# @SUPPORTED_EAPIS: 6 7
 # @BLURB: common ebuild functions for waf-based packages
 # @DESCRIPTION:
 # The waf-utils eclass contains functions that make creating ebuild for
 # waf-based packages much easier.
 # Its main features are support of common portage default settings.
 
-[[ ${EAPI} == [45] ]] && inherit eutils
 inherit multilib toolchain-funcs multiprocessing
 
 case ${EAPI:-0} in
-	4|5|6) EXPORT_FUNCTIONS src_configure src_compile src_install ;;
+	6|7) EXPORT_FUNCTIONS src_configure src_compile src_install ;;
 	*) die "EAPI=${EAPI} is not supported" ;;
 esac
 
 # @ECLASS-VARIABLE: WAF_VERBOSE
+# @USER_VARIABLE
 # @DESCRIPTION:
 # Set to OFF to disable verbose messages during compilation
 # this is _not_ meant to be set in ebuilds
@@ -34,9 +35,6 @@
 waf-utils_src_configure() {
 	debug-print-function ${FUNCNAME} "$@"
 
-	# WAF looks for PKGCONFIG not PKG_CONFIG.
-	export PKGCONFIG=$(tc-getPKG_CONFIG)
-
 	local fail
 	if [[ ! ${_PYTHON_ANY_R1} && ! ${_PYTHON_SINGLE_R1} && ! ${_PYTHON_R1} ]]; then
 		eerror "Using waf-utils.eclass without any python-r1 suite eclass is not supported."
@@ -71,28 +69,39 @@
 
 	[[ ${fail} ]] && die "Invalid use of waf-utils.eclass"
 
-	local libdir=()
-
 	# @ECLASS-VARIABLE: WAF_BINARY
 	# @DESCRIPTION:
 	# Eclass can use different waf executable. Usually it is located in "${S}/waf".
 	: ${WAF_BINARY:="${S}/waf"}
 
-	# @ECLASS-VARIABLE: NO_WAF_LIBDIR
-	# @DEFAULT_UNSET
-	# @DESCRIPTION:
-	# Variable specifying that you don't want to set the libdir for waf script.
-	# Some scripts does not allow setting it at all and die if they find it.
-	[[ -z ${NO_WAF_LIBDIR} ]] && libdir=(--libdir="${EPREFIX}/usr/$(get_libdir)")
+	local conf_args=()
+
+	local waf_help=$("${WAF_BINARY}" --help 2>/dev/null)
+	if [[ ${waf_help} == *--docdir* ]]; then
+		conf_args+=( --docdir="${EPREFIX}"/usr/share/doc/${PF} )
+	fi
+	if [[ ${waf_help} == *--htmldir* ]]; then
+		conf_args+=( --htmldir="${EPREFIX}"/usr/share/doc/${PF}/html )
+	fi
+	if [[ ${waf_help} == *--libdir* ]]; then
+		conf_args+=( --libdir="${EPREFIX}/usr/$(get_libdir)" )
+	fi
 
 	tc-export AR CC CPP CXX RANLIB
-	echo "CCFLAGS=\"${CFLAGS}\" LINKFLAGS=\"${CFLAGS} ${LDFLAGS}\" \"${WAF_BINARY}\" --prefix=${EPREFIX}/usr ${libdir[@]} $@ configure"
 
-	CCFLAGS="${CFLAGS}" LINKFLAGS="${CFLAGS} ${LDFLAGS}" "${WAF_BINARY}" \
-		"--prefix=${EPREFIX}/usr" \
-		"${libdir[@]}" \
-		"$@" \
-		configure || die "configure failed"
+	local CMD=(
+		CCFLAGS="${CFLAGS}"
+		LINKFLAGS="${CFLAGS} ${LDFLAGS}"
+		PKGCONFIG="$(tc-getPKG_CONFIG)"
+		"${WAF_BINARY}"
+		"--prefix=${EPREFIX}/usr"
+		"${conf_args[@]}"
+		"${@}"
+		configure
+	)
+
+	echo "${CMD[@]@Q}" >&2
+	env "${CMD[@]}" || die "configure failed"
 }
 
 # @FUNCTION: waf-utils_src_compile
@@ -101,11 +110,11 @@
 waf-utils_src_compile() {
 	debug-print-function ${FUNCNAME} "$@"
 	local _mywafconfig
-	[[ "${WAF_VERBOSE}" ]] && _mywafconfig="--verbose"
+	[[ ${WAF_VERBOSE} == ON ]] && _mywafconfig="--verbose"
 
 	local jobs="--jobs=$(makeopts_jobs)"
-	echo "\"${WAF_BINARY}\" build ${_mywafconfig} ${jobs}"
-	"${WAF_BINARY}" ${_mywafconfig} ${jobs} || die "build failed"
+	echo "\"${WAF_BINARY}\" build ${_mywafconfig} ${jobs} ${*}"
+	"${WAF_BINARY}" ${_mywafconfig} ${jobs} "${@}" || die "build failed"
 }
 
 # @FUNCTION: waf-utils_src_install
@@ -114,8 +123,8 @@
 waf-utils_src_install() {
 	debug-print-function ${FUNCNAME} "$@"
 
-	echo "\"${WAF_BINARY}\" --destdir=\"${D}\" install"
-	"${WAF_BINARY}" --destdir="${D}" install  || die "Make install failed"
+	echo "\"${WAF_BINARY}\" --destdir=\"${D}\" ${*} install"
+	"${WAF_BINARY}" --destdir="${D}" "${@}" install  || die "Make install failed"
 
 	# Manual document installation
 	einstalldocs
diff --git a/metadata/md5-cache/sys-libs/talloc-2.3.1 b/metadata/md5-cache/sys-libs/talloc-2.3.1
deleted file mode 100644
index b4e535d..0000000
--- a/metadata/md5-cache/sys-libs/talloc-2.3.1
+++ /dev/null
@@ -1,15 +0,0 @@
-DEFINED_PHASES=compile configure install prepare setup test
-DEPEND=!elibc_FreeBSD? ( !elibc_SunOS? ( !elibc_Darwin? ( dev-libs/libbsd[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?,abi_arm_32(-)?,abi_arm_64(-)?] ) ) ) python? ( python_single_target_python3_6? ( dev-lang/python:3.6[threads(+)] >=dev-lang/python-exec-2:=[python_targets_python3_6] ) python_single_target_python3_7? ( dev-lang/python:3.7[threads(+)] >=dev-lang/python-exec-2:=[python_targets_python3_7] ) python_single_target_python3_8? ( dev-lang/python:3.8[threads(+)] >=dev-lang/python-exec-2:=[python_targets_python3_8] ) ) !!<sys-libs/talloc-2.0.5 sys-devel/gettext dev-libs/libxslt python_single_target_python3_6? ( dev-lang/python:3.6[threads(+)] >=dev-lang/python-exec-2:=[python_targets_python3_6] ) python_single_target_python3_7? ( dev-lang/python:3.7[threads(+)] >=dev-lang/python-exec-2:=[python_targets_python3_7] ) python_single_target_python3_8? ( dev-lang/python:3.8[threads(+)] >=dev-lang/python-exec-2:=[python_targets_python3_8] )
-DESCRIPTION=Samba talloc library
-EAPI=6
-HOMEPAGE=https://talloc.samba.org/
-IUSE=compat +python python_single_target_python3_6 python_single_target_python3_7 python_single_target_python3_8 abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64 abi_arm_32 abi_arm_64
-KEYWORDS=*
-LICENSE=GPL-3 LGPL-3+ LGPL-2
-RDEPEND=!elibc_FreeBSD? ( !elibc_SunOS? ( !elibc_Darwin? ( dev-libs/libbsd[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?,abi_arm_32(-)?,abi_arm_64(-)?] ) ) ) python? ( python_single_target_python3_6? ( dev-lang/python:3.6[threads(+)] >=dev-lang/python-exec-2:=[python_targets_python3_6] ) python_single_target_python3_7? ( dev-lang/python:3.7[threads(+)] >=dev-lang/python-exec-2:=[python_targets_python3_7] ) python_single_target_python3_8? ( dev-lang/python:3.8[threads(+)] >=dev-lang/python-exec-2:=[python_targets_python3_8] ) ) !!<sys-libs/talloc-2.0.5
-REQUIRED_USE=^^ ( python_single_target_python3_6 python_single_target_python3_7 python_single_target_python3_8 )
-RESTRICT=test
-SLOT=0
-SRC_URI=https://www.samba.org/ftp/talloc/talloc-2.3.1.tar.gz
-_eclasses_=multibuild	40fe59465edacd730c644ec2bc197809	multilib	2477ebe553d3e4d2c606191fe6c33602	multilib-build	1979aa0ff4d356d32507ca4650d9f37d	multilib-minimal	8bddda43703ba94d8341f4e247f97566	multiprocessing	c3cf317581e5bd068a4b851f03dd8cba	python-single-r1	674c48c926cbb44e91b656e0399d8f54	python-utils-r1	157a6a7a3e99c7dbdf81acc9dd4f57cd	toolchain-funcs	f783d68a26b62d6b19e070e6bcada5e6	waf-utils	0af0bf9207f47292d40e888b9687763c
-_md5_=36f909e80a8ad8580aa76c14be2152aa
diff --git a/metadata/md5-cache/sys-libs/talloc-2.3.3 b/metadata/md5-cache/sys-libs/talloc-2.3.3
new file mode 100644
index 0000000..b6b8731
--- /dev/null
+++ b/metadata/md5-cache/sys-libs/talloc-2.3.3
@@ -0,0 +1,16 @@
+BDEPEND=python_single_target_python3_8? ( dev-lang/python:3.8[threads(+)] >=dev-lang/python-exec-2:=[python_targets_python3_8] ) python_single_target_python3_9? ( dev-lang/python:3.9[threads(+)] >=dev-lang/python-exec-2:=[python_targets_python3_9] ) python_single_target_python3_10? ( dev-lang/python:3.10[threads(+)] >=dev-lang/python-exec-2:=[python_targets_python3_10] ) dev-libs/libxslt sys-devel/gettext
+DEFINED_PHASES=compile configure install prepare setup test
+DEPEND=!elibc_FreeBSD? ( !elibc_SunOS? ( !elibc_Darwin? ( dev-libs/libbsd[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?,abi_arm_32(-)?,abi_arm_64(-)?] ) ) ) python? ( python_single_target_python3_8? ( dev-lang/python:3.8[threads(+)] >=dev-lang/python-exec-2:=[python_targets_python3_8] ) python_single_target_python3_9? ( dev-lang/python:3.9[threads(+)] >=dev-lang/python-exec-2:=[python_targets_python3_9] ) python_single_target_python3_10? ( dev-lang/python:3.10[threads(+)] >=dev-lang/python-exec-2:=[python_targets_python3_10] ) ) !!<sys-libs/talloc-2.0.5
+DESCRIPTION=Samba talloc library
+EAPI=7
+HOMEPAGE=https://talloc.samba.org/
+IUSE=compat +python python_single_target_python3_8 python_single_target_python3_9 python_single_target_python3_10 abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64 abi_arm_32 abi_arm_64
+KEYWORDS=*
+LICENSE=GPL-3 LGPL-3+ LGPL-2
+RDEPEND=!elibc_FreeBSD? ( !elibc_SunOS? ( !elibc_Darwin? ( dev-libs/libbsd[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?,abi_arm_32(-)?,abi_arm_64(-)?] ) ) ) python? ( python_single_target_python3_8? ( dev-lang/python:3.8[threads(+)] >=dev-lang/python-exec-2:=[python_targets_python3_8] ) python_single_target_python3_9? ( dev-lang/python:3.9[threads(+)] >=dev-lang/python-exec-2:=[python_targets_python3_9] ) python_single_target_python3_10? ( dev-lang/python:3.10[threads(+)] >=dev-lang/python-exec-2:=[python_targets_python3_10] ) ) !!<sys-libs/talloc-2.0.5
+REQUIRED_USE=^^ ( python_single_target_python3_8 python_single_target_python3_9 python_single_target_python3_10 )
+RESTRICT=test
+SLOT=0
+SRC_URI=https://www.samba.org/ftp/talloc/talloc-2.3.3.tar.gz
+_eclasses_=eapi8-dosym	cd7d420bb5be5ee079f27239ce76b8f5	multibuild	40fe59465edacd730c644ec2bc197809	multilib	2477ebe553d3e4d2c606191fe6c33602	multilib-build	1979aa0ff4d356d32507ca4650d9f37d	multilib-minimal	8bddda43703ba94d8341f4e247f97566	multiprocessing	c3cf317581e5bd068a4b851f03dd8cba	python-single-r1	674c48c926cbb44e91b656e0399d8f54	python-utils-r1	655fe65f186504e455c2f3116808fda8	toolchain-funcs	f783d68a26b62d6b19e070e6bcada5e6	waf-utils	6dce9ffe7d6fe961321a99f8da53a887
+_md5_=ebdfaa3e812e38a3fe28e2dfc1164194
diff --git a/sys-libs/talloc/Manifest b/sys-libs/talloc/Manifest
index 851108b..ae0afae 100644
--- a/sys-libs/talloc/Manifest
+++ b/sys-libs/talloc/Manifest
@@ -1 +1,2 @@
-DIST talloc-2.3.1.tar.gz 638878 BLAKE2B 3d014a47639434c65f5dda2c51da3c6c28d5d60dbc9afdaca27b8ec903cde3433a8fa4ca33305750ff60911f7e43171d0d932d98c2d30ea38494aa532d6d9626 SHA512 064fc39a9aaace6e0209f3251c8ff198d8a318b4cf4198006ff9892ca6e15e7d817b2fda43e0444fbbf04d2c3e70d06523dff5d57cbb796d27317ef4759e062e
+DIST talloc-2.3.2.tar.gz 661344 BLAKE2B 957eedc4a367051cb99fa4d2edb8e778de8e0187bb5c0d84a1afef20aab122a8b7310d10c694e15ddd6a0a45194889fe3d26dae0ceb8e406d51512af95a23014 SHA512 c851a6f43025720453a3bff8734bfcfff0e29fb7cf2ffcc6c03b6ab8589098daf01d668deec61aa2f238d4df3eb3c47bd080e26eec760cf04a70e1afcad5c5e1
+DIST talloc-2.3.3.tar.gz 650493 BLAKE2B 4312d8bbd54da2cb8917946e46bb77dae1c6fdfeb72bd85d86ef8d5900f2132a36c5f0075608116a9bf036a2f02671472d389eed704f8e2923f8320d29aa12bd SHA512 1e4b90769b9be72421d76bf9149fd0736f43d034b1573ab2dfb5cd613b4fb3fdf67d575f81789851787e1cbbc7353cdfc114cefbccb15fc0f39e222f40aff65f
diff --git a/sys-libs/talloc/metadata.xml b/sys-libs/talloc/metadata.xml
index afa6476..74582fb 100644
--- a/sys-libs/talloc/metadata.xml
+++ b/sys-libs/talloc/metadata.xml
@@ -1,10 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-  <maintainer type="person">
-    <email>patrick@gentoo.org</email>
-    <name>Patrick Lauer</name>
-  </maintainer>
   <maintainer type="project">
     <email>samba@gentoo.org</email>
     <name>Samba</name>
diff --git a/sys-libs/talloc/talloc-2.3.1.ebuild b/sys-libs/talloc/talloc-2.3.1.ebuild
deleted file mode 100644
index 2f357fb..0000000
--- a/sys-libs/talloc/talloc-2.3.1.ebuild
+++ /dev/null
@@ -1,96 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python3_{6,7,8} )
-PYTHON_REQ_USE="threads(+)"
-
-inherit waf-utils python-single-r1 multilib multilib-minimal
-
-DESCRIPTION="Samba talloc library"
-HOMEPAGE="https://talloc.samba.org/"
-SRC_URI="https://www.samba.org/ftp/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-3 LGPL-3+ LGPL-2"
-SLOT="0"
-KEYWORDS="*"
-IUSE="compat +python"
-
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-RDEPEND="!elibc_FreeBSD? (
-			!elibc_SunOS? (
-				!elibc_Darwin? (
-					dev-libs/libbsd[${MULTILIB_USEDEP}]
-				)
-			)
-		)
-	python? ( ${PYTHON_DEPS} )
-	!!<sys-libs/talloc-2.0.5"
-DEPEND="${RDEPEND}
-	sys-devel/gettext
-	dev-libs/libxslt
-	${PYTHON_DEPS}"
-
-WAF_BINARY="${S}/buildtools/bin/waf"
-
-RESTRICT="test"
-
-MULTILIB_WRAPPED_HEADERS=(
-	# python goes only for native
-	/usr/include/pytalloc.h
-)
-
-pkg_setup() {
-	# try to turn off distcc and ccache for people that have a problem with it
-	export DISTCC_DISABLE=1
-	export CCACHE_DISABLE=1
-
-	python-single-r1_pkg_setup
-}
-
-src_prepare() {
-	default
-
-	# what would you expect of waf? i won't even waste time trying.
-	multilib_copy_sources
-}
-
-multilib_src_configure() {
-	local extra_opts=(
-		$(usex compat --enable-talloc-compat1 '')
-		$(multilib_native_usex python '' --disable-python)
-		$([[ ${CHOST} == *-solaris* ]] && echo '--disable-symbol-versions')
-	)
-	waf-utils_src_configure "${extra_opts[@]}"
-}
-
-multilib_src_compile() {
-	waf-utils_src_compile
-}
-
-multilib_src_install() {
-	waf-utils_src_install
-
-	# waf is stupid, and no, we can't fix the build-system, since it's provided
-	# as a brilliant binary blob thats decompressed on the fly
-	if [[ ${CHOST} == *-darwin* ]] ; then
-		install_name_tool \
-			-id "${EPREFIX}"/usr/$(get_libdir)/libtalloc.2.dylib \
-			"${ED}"/usr/$(get_libdir)/libtalloc.2.0.5.dylib || die
-		if use python ; then
-			install_name_tool \
-				-id "${EPREFIX}"/usr/$(get_libdir)/libpytalloc-util.2.dylib \
-				"${ED}"/usr/$(get_libdir)/libpytalloc-util.2.0.5.dylib || die
-			install_name_tool \
-				-change "${S}/bin/default/libtalloc.dylib" \
-					"${EPREFIX}"/usr/$(get_libdir)/libtalloc.2.dylib \
-				"${ED}"/usr/$(get_libdir)/libpytalloc-util.2.0.5.dylib || die
-			install_name_tool \
-				-change "${S}/bin/default/libtalloc.dylib" \
-					"${EPREFIX}"/usr/$(get_libdir)/libtalloc.2.dylib \
-				"${D}"$(python_get_sitedir)/talloc.bundle || die
-		fi
-	fi
-}
diff --git a/sys-libs/talloc/talloc-2.3.3.ebuild b/sys-libs/talloc/talloc-2.3.3.ebuild
new file mode 100644
index 0000000..6836bed
--- /dev/null
+++ b/sys-libs/talloc/talloc-2.3.3.ebuild
@@ -0,0 +1,118 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6..9} )
+PYTHON_REQ_USE="threads(+)"
+inherit waf-utils python-single-r1 multilib-minimal
+
+DESCRIPTION="Samba talloc library"
+HOMEPAGE="https://talloc.samba.org/"
+SRC_URI="https://www.samba.org/ftp/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3 LGPL-3+ LGPL-2"
+SLOT="0"
+KEYWORDS="*"
+IUSE="compat +python"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+RESTRICT="test"
+
+RDEPEND="
+	!elibc_FreeBSD? (
+		!elibc_SunOS? (
+			!elibc_Darwin? (
+				dev-libs/libbsd[${MULTILIB_USEDEP}]
+			)
+		)
+	)
+	python? ( ${PYTHON_DEPS} )
+	!!<sys-libs/talloc-2.0.5
+"
+DEPEND="${RDEPEND}"
+BDEPEND="${PYTHON_DEPS}
+	dev-libs/libxslt
+	sys-devel/gettext
+"
+
+WAF_BINARY="${S}/buildtools/bin/waf"
+
+MULTILIB_WRAPPED_HEADERS=(
+	# python goes only for native
+	/usr/include/pytalloc.h
+)
+
+pkg_setup() {
+	# try to turn off distcc and ccache for people that have a problem with it
+	export DISTCC_DISABLE=1
+	export CCACHE_DISABLE=1
+
+	python-single-r1_pkg_setup
+}
+
+src_prepare() {
+	default
+
+	if [[ ${CHOST} == *-darwin* ]] ; then
+		# Drop irritating ABI names (e.g. cpython-37m)
+		# We're only installing one implementation anyway
+		sed -i "s/+ conf.all_envs\['default'\]\['PYTHON_SO_ABI_FLAG'\]//" wscript || die
+		sed -i "s/name = bld.pyembed_libname('pytalloc-util')/name = 'pytalloc-util'/" wscript || die
+	fi
+
+	# what would you expect of waf? i won't even waste time trying.
+	multilib_copy_sources
+}
+
+multilib_src_configure() {
+	local extra_opts=(
+		$(usex compat --enable-talloc-compat1 '')
+		$(multilib_native_usex python '' --disable-python)
+		$([[ ${CHOST} == *-solaris* ]] && echo '--disable-symbol-versions')
+	)
+	waf-utils_src_configure "${extra_opts[@]}"
+}
+
+multilib_src_compile() {
+	waf-utils_src_compile
+}
+
+multilib_src_install() {
+	waf-utils_src_install
+
+	# waf is stupid, and no, we can't fix the build-system, since it's provided
+	# as a brilliant binary blob thats decompressed on the fly
+	if [[ ${CHOST} == *-darwin* ]] ; then
+		install_name_tool \
+			-id "${EPREFIX}"/usr/$(get_libdir)/libtalloc.2.dylib \
+			"${ED}"/usr/$(get_libdir)/libtalloc.${PV}.dylib || die
+
+		if use python ; then
+			install_name_tool \
+				-id "${EPREFIX}"/usr/$(get_libdir)/libpytalloc-util.2.dylib \
+				"${ED}"/usr/$(get_libdir)/libpytalloc-util.${PV}.dylib || die
+			install_name_tool \
+				-change "${BUILD_DIR}/bin/default/libtalloc.dylib" \
+				"${EPREFIX}"/usr/$(get_libdir)/libtalloc.2.dylib \
+				"${ED}"/usr/$(get_libdir)/libpytalloc-util.${PV}.dylib || die
+
+			install_name_tool \
+				-id "${EPREFIX}"/usr/$(get_libdir)/libpytalloc-util.dylib \
+				"${ED}"/usr/$(get_libdir)/libpytalloc-util.dylib || die
+			install_name_tool \
+				-change "${BUILD_DIR}/bin/default/libtalloc.dylib" \
+				"${EPREFIX}"/usr/$(get_libdir)/libtalloc.2.dylib \
+				"${ED}"/usr/$(get_libdir)/libpytalloc-util.dylib || die
+
+			install_name_tool \
+				-change "${BUILD_DIR}/bin/default/libpytalloc-util.dylib" \
+				"${EPREFIX}"/usr/$(get_libdir)/libpytalloc-util.dylib \
+				"${D}"$(python_get_sitedir)/talloc*.bundle || die
+			install_name_tool \
+				-change "${BUILD_DIR}/bin/default/libtalloc.dylib" \
+				"${EPREFIX}"/usr/$(get_libdir)/libtalloc.2.dylib \
+				"${D}"$(python_get_sitedir)/talloc*.bundle || die
+		fi
+	fi
+}