commit:     26d2abf134411ea9f80c5377c5609808663370c0
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 25 21:38:47 2019 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Fri Jan 25 21:39:30 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=26d2abf1

sys-apps/groff: Fix cross-compiling following build file changes

Override the variables when calling make instead of changing the
Makefiles. The comment in the Makefiles suggests that this is how
upstream wants you to do it.

Using ${EPREFIX} as before is not correct as this refer to the target
prefix, not the build prefix. EAPI 7 provides ${BROOT} for this but
for tools in the path, it is better to use type -P instead.

groff is not in @system so there is no guarantee that it will actually
be present on the build system. EAPI 7 did not include EAPI
5-hdepend's targetroot USE flag feature, which prevents us from
putting groff in BDEPEND. The preferred approach is to do a native
build in tandem with a cross build but this makes the ebuild more
complex so I will attempt this in a separate fix.

Closes: https://bugs.gentoo.org/674866
Package-Manager: Portage-2.3.58, Repoman-2.3.12
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 sys-apps/groff/groff-1.22.4.ebuild | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/sys-apps/groff/groff-1.22.4.ebuild 
b/sys-apps/groff/groff-1.22.4.ebuild
index 8ec07c8c1ad..3fa2e509662 100644
--- a/sys-apps/groff/groff-1.22.4.ebuild
+++ b/sys-apps/groff/groff-1.22.4.ebuild
@@ -47,18 +47,6 @@ src_prepare() {
                Makefile.in \
                || die "failed to modify Makefile.in"
 
-       # Make sure we can cross-compile this puppy
-       if tc-is-cross-compiler ; then
-               sed -i \
-                       -e '/^GROFFBIN=/s:=.*:=${EPREFIX}/usr/bin/groff:' \
-                       -e '/^TROFFBIN=/s:=.*:=${EPREFIX}/usr/bin/troff:' \
-                       -e '/^GROFF_BIN_PATH=/s:=.*:=:' \
-                       -e '/^GROFF_BIN_DIR=/s:=.*:=:' \
-                       contrib/*/Makefile.sub \
-                       doc/Makefile.in \
-                       doc/Makefile.sub || die "cross-compile sed failed"
-       fi
-
        local pfx=$(usex prefix ' Prefix' '')
        cat <<-EOF >> tmac/mdoc.local
        .ds volume-operating-system Gentoo${pfx}
@@ -80,7 +68,18 @@ src_configure() {
 }
 
 src_compile() {
-       emake AR="$(tc-getAR)"
+       if tc-is-cross-compiler ; then
+               local CROSS_ARGS=(
+                       GROFFBIN="$(type -P groff)"
+                       TROFFBIN="$(type -P troff)"
+                       GROFF_BIN_DIR=
+                       GROFF_BIN_PATH=
+               )
+       else
+               unset CROSS_ARGS
+       fi
+
+       emake AR="$(tc-getAR)" "${CROSS_ARGS[@]}"
 }
 
 src_install() {

Reply via email to