groff: Fix build on Fedora 17
authorSong.Li <Song.Li@windriver.com>
Thu, 7 Jun 2012 23:36:58 +0000 (16:36 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 8 Jun 2012 10:43:20 +0000 (11:43 +0100)
Generally distros keep perl at /usr/bin/perl
But Fedora 17 also has /bin/perl,
this causes groff_1.20.1 build to put perl
interpreter path as /bin/perl
But we set perl location for target as /usr/bin/perl

This mismatch of perl path causes failure of rootfs image creation
like this:

| error: Failed dependencies:
|       bin/perl is needed by groff-1.20.1-r1.ppc603e

(From OE-Core rev: 79fc557683d4eeadaebeb00dfba53762956e4910)

Signed-off-by: Song.Li <song.li@windriver.com>
Sync up with the do_install_append_virtclass-native chunk.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-extended/groff/groff_1.20.1.bb

index 6cb72bf..ef22548 100644 (file)
@@ -4,7 +4,7 @@ formatting commands and produces formatted output."
 SECTION = "base"
 HOMEPAGE = "ftp://ftp.gnu.org/gnu/groff/"
 LICENSE = "GPLv2"
-PR = "r1"
+PR = "r2"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
@@ -18,6 +18,10 @@ DEPENDS_virtclass-native = ""
 
 inherit autotools
 
+PERLPATH = "${bindir}/perl"
+PERLPATH_virtclass-native = "/usr/bin/env perl"
+PERLPATH_virtclass-nativesdk = "/usr/bin/env perl"
+
 EXTRA_OECONF = "--without-x"
 PARALLEL_MAKE = ""
 
@@ -34,7 +38,25 @@ do_configure_prepend() {
        fi
 }
 
+do_install_append() {
+       # Some distros have both /bin/perl and /usr/bin/perl, but we set perl location
+       # for target as /usr/bin/perl, so fix it to /usr/bin/perl.
+       for i in afmtodit mmroff; do
+               if [ -f ${D}${bindir}/$i ]; then
+                       sed -i -e '1s,#!.*perl,#! ${PERLPATH},' ${D}${bindir}/$i
+               fi
+       done
+}
+
 do_install_append_virtclass-native() {
+       # Some distros have both /bin/perl and /usr/bin/perl, but we set perl location
+       # for target as /usr/bin/perl, so fix it to /usr/bin/perl.
+       for i in afmtodit mmroff; do
+               if [ -f ${D}${bindir}/$i ]; then
+                       sed -i -e '1s,#!.*perl,#! ${PERLPATH},' ${D}${bindir}/$i
+               fi
+       done
+
        create_cmdline_wrapper ${D}/${bindir}/groff \
                -F${STAGING_DIR_NATIVE}${datadir_native}/groff/${PV}/font \
                -M${STAGING_DIR_NATIVE}${datadir_native}/groff/${PV}/tmac