Bug 4550

Summary: ADT: iptables autoreconf run fails on CentOS
Product: [Yocto Project Subprojects] ADT Reporter: Yi Zhao <yi.zhao>
Component: adtAssignee: Hongxu Jia <hongxu.jia>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Medium CC: hongxu.jia, kai.kang, ke.zou, liezhi.yang, mark.hatle, ning.zhang, poky.adt.watcher, poky.watcher, Qi.Chen, sen.zhang, sgw, yi.zhao
Version: 1.5   
Target Milestone: 1.5 M2   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: ---

Description Yi Zhao 2013-05-24 09:29:25 UTC
Image location: http://autobuilder.yoctoproject.org/pub/nightly/20130521-1/
Branch: poky/master
Git rev: 176a46b088135f2891983bb8540bc45389341d90

The autoreconf run fails if the adt isn't installed in the default location on CentOS.
 
Steps:
1. Download adt_installer.tar.bz2

2. Run "./adt_installer" to install the adt. Don't use the default install location, use a new one, for exapmle: /opt/test

3. When the installation finish, run "source /opt/test/environment-setup-armv5te-poky-linux-gnueabi"

4. Try to compile iptables-1.4.15. When run "autoreconf -fi", will get the following errors: 
$ cd iptables-1.4.15
$ autoreconf -fi
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `build-aux'.
libtoolize: copying file `build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: copying file `m4/libtool.m4'
libtoolize: copying file `m4/ltoptions.m4'
libtoolize: copying file `m4/ltsugar.m4'
libtoolize: copying file `m4/ltversion.m4'
libtoolize: copying file `m4/lt~obsolete.m4'
automake: error: cannot open < /opt/poky/1.4+snapshot/sysroots/x86_64-pokysdk-linux/usr/share/automake-1.12/am/header-vars.am: No such file or directory
autoreconf: automake failed with exit status: 1
$

This issue only happens on CentOS 6.3 and 6.4. I also test it on opensuse, ubuntu, fedora, there is no this issue.
Comment 1 Hongxu Jia 2013-06-21 06:37:17 UTC
The perl module for automake has an embedded path in it, this needs
to be relocated.

Older versions of 'file' do not return the "ASCII" text in the output for
a perl module file. Hence, the regex pattern didn't match perl module and
they were not getting relocated at all on older distributions.

1) On CentOS release 6.4, the version of file is 5.04
file /usr/lib/perl5/Config_heavy.pl
/usr/lib/perl5/Config_heavy.pl: Perl5 module source text

2) On Ubuntu 13.04, the version of file is 5.11
file /usr/lib/perl/5.14/Config_heavy.pl
/usr/lib/perl/5.14/Config_heavy.pl: C source, ASCII text, with very long lines

Similar issue has been fixed in populate_sdk_base:
http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=5ce8c7fe9ebb8dca0a0b091bda9c58141da26216