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

EAPI=8

VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/sed.asc
inherit branding flag-o-matic verify-sig

DESCRIPTION="Super-useful stream editor"
HOMEPAGE="https://www.gnu.org/software/sed/"

if [[ ${PV} == *_p* ]] ; then
	# Note: could put this in devspace, but if it's gone, we don't want
	# it in tree anyway. It's just for testing.
	MY_SNAPSHOT="$(ver_cut 1-2).72-47838"
	SRC_URI="
		https://meyering.net/sed/sed-${MY_SNAPSHOT}.tar.xz -> ${P}.tar.xz
		verify-sig? (
			https://meyering.net/sed/sed-${MY_SNAPSHOT}.tar.xz.sig -> ${P}.tar.xz.sig
		)
	"
	S="${WORKDIR}"/${PN}-${MY_SNAPSHOT}
else
	SRC_URI="mirror://gnu/sed/${P}.tar.xz"
	SRC_URI+=" verify-sig? ( mirror://gnu/sed/${P}.tar.xz.sig )"

	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos"
fi

LICENSE="GPL-3+"
SLOT="0"
IUSE="acl nls selinux static test-full"

RDEPEND="
	!static? (
		acl? ( virtual/acl )
		nls? ( virtual/libintl )
		selinux? ( sys-libs/libselinux )
	)
"
DEPEND="${RDEPEND}
	static? (
		acl? ( virtual/acl[static-libs(+)] )
		nls? ( virtual/libintl[static-libs(+)] )
		selinux? ( sys-libs/libselinux[static-libs(+)] )
	)
"
BDEPEND="
	nls? ( sys-devel/gettext )
	verify-sig? ( sec-keys/openpgp-keys-sed )
"

src_configure() {
	use static && append-ldflags -static

	local myconf=(
		--exec-prefix="${EPREFIX}"
		$(use_enable acl)
		$(use_enable nls)
		$(use_with selinux)
		# rename to gsed for better BSD compatibility
		--program-prefix=g
	)
	econf "${myconf[@]}"
}

src_test() {
	local -x RUN_{VERY_,}EXPENSIVE_TESTS=$(usex test-full yes no)

	# We don't want to automagically use Valgrind for tests.
	sed -i -e 's:valgrind --error-exitcode=1:false:' init.cfg || die

	emake VERBOSE=yes check
}

src_install() {
	default

	# symlink to the standard name
	dosym gsed /bin/sed
	dosym gsed.1 /usr/share/man/man1/sed.1
}