# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

PLOCALES="de es fr nl pt ro sv"
inherit autotools flag-o-matic plocale

DESCRIPTION="A fake root environment by means of LD_PRELOAD and SysV IPC (or TCP) trickery"
HOMEPAGE="https://packages.qa.debian.org/f/fakeroot.html"
SRC_URI="mirror://debian/pool/main/${PN:0:1}/${PN}/${P/-/_}.orig.tar.gz"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
IUSE="acl debug nls test"
RESTRICT="!test? ( test )"

DEPEND="
	sys-libs/libcap
	acl? ( sys-apps/acl )
	test? ( app-arch/sharutils )
"
BDEPEND="nls? ( app-text/po4a )"

DOCS=( AUTHORS BUGS DEBUG README doc/README.saving )

src_prepare() {
	default

	disable_locale() {
		local locale=${1}

		sed -i -e "s: ${locale}::" doc/po4a/po4a.cfg doc/Makefile.am || die
	}

	plocale_find_changes doc/po4a/po '' '.po'
	plocale_for_each_disabled_locale disable_locale

	# We could make this conditional and disable the autodependency in
	# autotools.eclass but it'd make it too easy for NLS builds to be broken
	# and us not realise.
	eautoreconf
}

src_configure() {
	export ac_cv_header_sys_acl_h=$(usex acl)
	use acl || export ac_cv_search_acl_get_fd=no # bug 759568
	use debug && append-cppflags -DLIBFAKEROOT_DEBUGGING

	# https://bugs.gentoo.org/834445
	# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101270
	filter-flags -fno-semantic-interposition

	econf --disable-static
}

src_compile() {
	local enabled_locales=$(plocale_get_locales)

	if use nls && [[ -n ${enabled_locales} ]] ; then
		# Create translated man pages
		pushd doc >/dev/null || die
		po4a -v -k 0 --variable "srcdir=${S}/doc/" po4a/po4a.cfg || die
		popd >/dev/null || die
	fi

	default
}

src_install() {
	default

	# no static archives
	find "${ED}" -name '*.la' -delete || die
}