dpkg-native:fix dpkg-scanpackages error at deb image creation time on Fedora 17
authorHongxu Jia <hongxu.jia@windriver.com>
Fri, 1 Feb 2013 02:38:17 +0000 (10:38 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 1 Feb 2013 15:54:00 +0000 (15:54 +0000)
commitebd5574ad1d71a4ac6477c9ca7b6483226729dc3
tree5d512c9b60d3398c6348dfd8b264b3d96600a8fe
parent81ef6e36464debab92e489f281ba593b4408c36a
dpkg-native:fix dpkg-scanpackages error at deb image creation time on Fedora 17

Invoking dpkg-scanpackages on Fedora 17 to build deb image meets such an error:

Can't locate Dpkg.pm in @INC  (@INC contains: /usr/local/lib64/perl5 /usr/loc
al/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr
/lib64/perl5 /usr/share/perl5.) at tmp/sysroots/x86_64-linux/usr/bin/dpkg-sca
npackages line 27.

1. The dpkg-scanpackages is invoked at deb image creation time and it is built
by dpkg-native. The dpkg-scanpackages is a perl script and import module `Dpkg'.

2. The Dpkg.pm has been installed in perl's staging dir at dpkg-native compiling
time. Such as `tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/Dpkg.pm'

3. The dpkg-native uses create_wrapper to relocate to perl-native if perl-native
has been built. If perl-native isn't built, it will use the host Dpkg as default.

4. If dpkg-native is built on a new build envionment which means perl-native doesn't
exist before, and the build system doesn't install dpkg (such as Fedora 17), the
dpkg-scanpackages could not work correctly.

5. Modify dpkg-native's depends, change `perl-native-runtime' to `perl-native', Let
perl-native automatically be built before building dpkg-native.

[YOCTO #3817]

(From OE-Core rev: 7d194e72ee12cb6690bf07a8423cb461dd210719)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/dpkg/dpkg.inc