# Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI=6 inherit flag-o-matic toolchain-funcs DESCRIPTION="Super-useful stream editor" HOMEPAGE="http://sed.sourceforge.net/" SRC_URI="mirror://gnu/sed/${P}.tar.xz" LICENSE="GPL-3" SLOT="0" KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd" IUSE="acl forced-sandbox nls selinux static" RDEPEND="acl? ( virtual/acl ) nls? ( virtual/libintl ) selinux? ( sys-libs/libselinux )" DEPEND="${RDEPEND} nls? ( sys-devel/gettext )" src_bootstrap_sed() { # make sure system-sed works #40786 #650052 if ! type -p sed > /dev/null || has_version 'sys-apps/sed[forced-sandbox]' ; then mkdir -p "${T}/bootstrap" printf '#!/bin/sh\nexec busybox sed "$@"\n' > "${T}/bootstrap/sed" || die chmod a+rx "${T}/bootstrap/sed" PATH="${T}/bootstrap:${PATH}" fi } src_prepare() { # Don't use sed before bootstrap if we have to recover a broken host sed. src_bootstrap_sed default if use forced-sandbox ; then # Upstream doesn't want to add a configure flag for this. # https://lists.gnu.org/archive/html/bug-sed/2018-03/msg00001.html sed -i \ -e '/^bool sandbox = false;/s:false:true:' \ sed/sed.c || die # Make sure the sed took. grep -q '^bool sandbox = true;' sed/sed.c || die "forcing sandbox failed" fi } src_configure() { local myconf=() if use userland_GNU; then myconf+=( --exec-prefix="${EPREFIX}" ) else myconf+=( --program-prefix=g ) fi export ac_cv_search_setfilecon=$(usex selinux -lselinux) export ac_cv_header_selinux_{context,selinux}_h=$(usex selinux) use static && append-ldflags -static myconf+=( $(use_enable acl) $(use_enable nls) ) econf "${myconf[@]}" }