[OE-core] [PATCHv4] git: fix perl binding installation

Richard Purdie richard.purdie at linuxfoundation.org
Fri May 9 10:16:07 UTC 2014


On Fri, 2014-05-09 at 11:16 +0200, Koen Kooi wrote:
> Op 9 mei 2014, om 10:50 heeft Koen Kooi <koen at dominion.thruhere.net> het volgende geschreven:
> 
> > 
> > Op 9 mei 2014, om 08:38 heeft Saul Wold <sgw at linux.intel.com> het volgende geschreven:
> > 
> >> On 05/08/2014 10:59 PM, Koen Kooi wrote:
> >>> 
> >>> Op 8 mei 2014, om 19:30 heeft Koen Kooi <koen at dominion.thruhere.net> het volgende geschreven:
> >>> 
> >>>> 
> >>>> Op 8 mei 2014, om 18:37 heeft Saul Wold <sgw at linux.intel.com> het volgende geschreven:
> >>>> 
> >>>>> On 05/02/2014 01:36 AM, Koen Kooi wrote:
> >>>>>> Git.pm wasn't ending up in the package because do_install removed it
> >>>>>> with a misleading comment about multilib. Workaround the problem so
> >>>>>> that Git.pm ends up in the correct dir *and* doesn't get deleted.
> >>>>>> 
> >>>>> 
> >>>>> Seems to be a problem as RP was concerned with:
> >>>>> 
> >>>>> 
> >>>>>> /srv/ssd/builds/world/tmp/sysroots/x86_64-linux/usr/bin/git difftool
> >>>>>> Can't locate Error.pm in @INC (@INC contains: /srv/ssd/builds/world/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.14.3 /srv/ssd/builds/world/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl//5.14.3 /srv/ssd/builds/world/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/ /srv/ssd/machines/meta-intel-iot-devkit/build/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.14.3 .) at /srv/ssd/builds/world/tmp/sysroots/x86_64-linux/usr/lib/git/git-core/git-difftool line 17.
> >>>>>> BEGIN failed--compilation aborted at /srv/ssd/builds/world/tmp/sysroots/x86_64-linux/usr/lib/git/git-core/git-difftool line 17.
> >>>>> 
> >>>>> Doing a find in my sysroot:
> >>>>> 
> >>>>> /srv/ssd/builds/world/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.14.3/CPANPLUS/Error.pm
> >>>>> /srv/ssd/builds/world/tmp/sysroots/x86_64-linux/usr/lib/perl/5.14.3/Error.pm
> >>>> 
> >>>> Drat, I checked for buildpaths and didn't find anything. I'll retest and send a new version hopefully tomorrow.
> >>> 
> >>> I need to read errors better :) Do you have http://patches.openembedded.org/patch/70635/ applied? And did 'difftool' work before this? None of the perl tools worked for me due to error.pm missing.
> >>> 
> >> Apparently not, this must have gotten lost during the release crazies.
> >> 
> >> Can you please resend a rebased patch set against master with both of these tested using the ' target.
> > 
> > What is 'git-replacement-native' and how do I test it?
> 
> OK, I figured it out, I remove TMPDIR and sstate-cache, then did:
> 
> bitbake git-replacement-native
> bitbake linaro-image-minimal
> 
> That blew up with:
> 
> RROR: Function failed: Fetcher failure: Fetch command failed with exit code 128, output:
> Cloning into '/build/linaro/build/build/tmp-eglibc/work/x86_64-linux/prelink-native/1.0+gitAUTOINC+6822ec76aa-r0/git'...
> git-upload-pack: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
> fatal: Could not read from remote repository.
> 
> Please make sure you have the correct access rights
> and the repository exists.
> 
> ERROR: Logfile of failure stored in: /build/linaro/build/build/tmp-eglibc/work/x86_64-linux/prelink-native/1.0+gitAUTOINC+6822ec76aa-r0/temp/log.do_unpack.23257
> Log data follows:
> | DEBUG: Executing python function do_unpack
> | DEBUG: Executing python function base_do_unpack
> | DEBUG: Running export PATH="/build/linaro/build/openembedded-core/scripts/native-intercept:/build/linaro/build/openembedded-core/scripts:/build/linaro/build/build/tmp-eglibc/sysroots/x86_64-linux/usr/bin/x86_64-linux:/build/linaro/build
> ld/linaro/build/build/tmp-eglibc/sysroots/x86_64-linux/sbin:/build/linaro/build/build/tmp-eglibc/sysroots/x86_64-linux/bin:/build/linaro/build/openembedded-core/scripts:/build/linaro/build/openembedded-core/bitbake/bin:/usr/lib64/qt-3.3/b
>  -s -n /build/linaro/build/build/downloads/git2/git.yoctoproject.org.prelink-cross.git/ /build/linaro/build/build/tmp-eglibc/work/x86_64-linux/prelink-native/1.0+gitAUTOINC+6822ec76aa-r0/git/
> | DEBUG: Python function base_do_unpack finished
> | DEBUG: Python function do_unpack finished
> | ERROR: Function failed: Fetcher failure: Fetch command failed with exit code 128, output:
> | Cloning into '/build/linaro/build/build/tmp-eglibc/work/x86_64-linux/prelink-native/1.0+gitAUTOINC+6822ec76aa-r0/git'...
> | git-upload-pack: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
> | fatal: Could not read from remote repository.
> |
> | Please make sure you have the correct access rights
> | and the repository exists.
> |
> ERROR: Task 117 (virtual:native:/build/linaro/build/openembedded-core/meta/recipes-devtools/prelink/prelink_git.bb, do_unpack) failed with exit code '1'
> NOTE: Tasks Summary: Attempted 265 tasks of which 124 didn't need to be rerun and 1 failed.
> Waiting for 0 running tasks to finish:
> 
> Summary: 1 task failed:
>   virtual:native:/build/linaro/build/openembedded-core/meta/recipes-devtools/prelink/prelink_git.bb, do_unpack
> Summary: There were 3 WARNING messages shown.
> Summary: There was 1 ERROR message shown, returning a non-zero exit code.
> 
> real    4m49.390s
> user    8m30.627s
> sys     1m37.368s
> 
> Libcrypto does seem to be in sysroot:
> 
> [koen at thinkpad build]$ find build/ -name "libcrypto.so.1.0.0"
> build/tmp-eglibc/sysroots/x86_64-linux/lib/libcrypto.so.1.0.0
> 
> I don't think this is due to my perl changes, though.

With the native binaries, we encode relative paths to libdir into RPATH.
I'm guessing but I think your "mv xxx" in do_install messes up the
RPATHs in the binaries/libraries.

The fix is probably to make that only happen in target builds
(${CLASS_OVERRIDE} == "class-target" or something like that).

but like I said, I'm guessing.

Cheers,

Richard




More information about the Openembedded-core mailing list