diff mbox

[PATCHv4] git: fix perl binding installation

Message ID 1399019818-4767-1-git-send-email-koen.kooi@linaro.org
State New
Headers show

Commit Message

Koen Kooi May 2, 2014, 8:36 a.m. UTC
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.

Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
---
 meta/recipes-devtools/git/git.inc | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Saul Wold May 8, 2014, 4:37 p.m. UTC | #1
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

Sau!


> Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
> ---
>   meta/recipes-devtools/git/git.inc | 7 ++++++-
>   1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/meta/recipes-devtools/git/git.inc b/meta/recipes-devtools/git/git.inc
> index 73e11eb..178b768 100644
> --- a/meta/recipes-devtools/git/git.inc
> +++ b/meta/recipes-devtools/git/git.inc
> @@ -28,10 +28,14 @@ do_install () {
>   		template_dir=${datadir}/git-core/templates \
>   		GIT_PYTHON_DIR=${D}${datadir}/git-core/python
>
> +	cd ${B}/perl && oe_runmake install DESTDIR="${D}" bindir=${bindir}
> +
>   	# ${libdir} is not applicable here, perl-native files are always
>   	# installed to /usr/lib on both 32/64 bits targets.
> +	# Fix up build paths and point to target locations.
> +	mv ${D}${exec_prefix}/lib/perl-native/perl ${D}${exec_prefix}/lib/perl
> +	sed -i -e s:${D}::g ${D}${exec_prefix}/lib/perl/*/auto/Git/.packlist
>   	rm -rf ${D}${exec_prefix}/lib/perl-native
> -	rmdir ${D}${exec_prefix}/lib || true
>   }
>
>   PERLSEDFIXUP = " \
> @@ -75,6 +79,7 @@ PERLTOOLS = " \
>   PACKAGES =+ "${PN}-perltools"
>   FILES_${PN}-perltools += " \
>       ${PERLTOOLS} \
> +    ${prefix}/lib/perl \
>       ${datadir}/perl \
>   "
>   RDEPENDS_${PN}-perltools = "${PN} perl perl-module-file-path liberror-perl findutils"
>
Koen Kooi May 8, 2014, 5:30 p.m. UTC | #2
Op 8 mei 2014, om 18:37 heeft Saul Wold <sgw@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.

regards,

Koen

> 
> Sau!
> 
> 
>> Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
>> ---
>>  meta/recipes-devtools/git/git.inc | 7 ++++++-
>>  1 file changed, 6 insertions(+), 1 deletion(-)
>> 
>> diff --git a/meta/recipes-devtools/git/git.inc b/meta/recipes-devtools/git/git.inc
>> index 73e11eb..178b768 100644
>> --- a/meta/recipes-devtools/git/git.inc
>> +++ b/meta/recipes-devtools/git/git.inc
>> @@ -28,10 +28,14 @@ do_install () {
>>  		template_dir=${datadir}/git-core/templates \
>>  		GIT_PYTHON_DIR=${D}${datadir}/git-core/python
>> 
>> +	cd ${B}/perl && oe_runmake install DESTDIR="${D}" bindir=${bindir}
>> +
>>  	# ${libdir} is not applicable here, perl-native files are always
>>  	# installed to /usr/lib on both 32/64 bits targets.
>> +	# Fix up build paths and point to target locations.
>> +	mv ${D}${exec_prefix}/lib/perl-native/perl ${D}${exec_prefix}/lib/perl
>> +	sed -i -e s:${D}::g ${D}${exec_prefix}/lib/perl/*/auto/Git/.packlist
>>  	rm -rf ${D}${exec_prefix}/lib/perl-native
>> -	rmdir ${D}${exec_prefix}/lib || true
>>  }
>> 
>>  PERLSEDFIXUP = " \
>> @@ -75,6 +79,7 @@ PERLTOOLS = " \
>>  PACKAGES =+ "${PN}-perltools"
>>  FILES_${PN}-perltools += " \
>>      ${PERLTOOLS} \
>> +    ${prefix}/lib/perl \
>>      ${datadir}/perl \
>>  "
>>  RDEPENDS_${PN}-perltools = "${PN} perl perl-module-file-path liberror-perl findutils"
>>
Koen Kooi May 9, 2014, 5:59 a.m. UTC | #3
Op 8 mei 2014, om 19:30 heeft Koen Kooi <koen@dominion.thruhere.net> het volgende geschreven:

> 
> Op 8 mei 2014, om 18:37 heeft Saul Wold <sgw@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.


> 
> regards,
> 
> Koen
> 
>> 
>> Sau!
>> 
>> 
>>> Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
>>> ---
>>> meta/recipes-devtools/git/git.inc | 7 ++++++-
>>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>> 
>>> diff --git a/meta/recipes-devtools/git/git.inc b/meta/recipes-devtools/git/git.inc
>>> index 73e11eb..178b768 100644
>>> --- a/meta/recipes-devtools/git/git.inc
>>> +++ b/meta/recipes-devtools/git/git.inc
>>> @@ -28,10 +28,14 @@ do_install () {
>>> 		template_dir=${datadir}/git-core/templates \
>>> 		GIT_PYTHON_DIR=${D}${datadir}/git-core/python
>>> 
>>> +	cd ${B}/perl && oe_runmake install DESTDIR="${D}" bindir=${bindir}
>>> +
>>> 	# ${libdir} is not applicable here, perl-native files are always
>>> 	# installed to /usr/lib on both 32/64 bits targets.
>>> +	# Fix up build paths and point to target locations.
>>> +	mv ${D}${exec_prefix}/lib/perl-native/perl ${D}${exec_prefix}/lib/perl
>>> +	sed -i -e s:${D}::g ${D}${exec_prefix}/lib/perl/*/auto/Git/.packlist
>>> 	rm -rf ${D}${exec_prefix}/lib/perl-native
>>> -	rmdir ${D}${exec_prefix}/lib || true
>>> }
>>> 
>>> PERLSEDFIXUP = " \
>>> @@ -75,6 +79,7 @@ PERLTOOLS = " \
>>> PACKAGES =+ "${PN}-perltools"
>>> FILES_${PN}-perltools += " \
>>>     ${PERLTOOLS} \
>>> +    ${prefix}/lib/perl \
>>>     ${datadir}/perl \
>>> "
>>> RDEPENDS_${PN}-perltools = "${PN} perl perl-module-file-path liberror-perl findutils"
Saul Wold May 9, 2014, 6:38 a.m. UTC | #4
On 05/08/2014 10:59 PM, Koen Kooi wrote:
>
> Op 8 mei 2014, om 19:30 heeft Koen Kooi <koen@dominion.thruhere.net> het volgende geschreven:
>
>>
>> Op 8 mei 2014, om 18:37 heeft Saul Wold <sgw@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 git-replacement-native target.

Thanks
	Sau!

>
>>
>> regards,
>>
>> Koen
>>
>>>
>>> Sau!
>>>
>>>
>>>> Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
>>>> ---
>>>> meta/recipes-devtools/git/git.inc | 7 ++++++-
>>>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/meta/recipes-devtools/git/git.inc b/meta/recipes-devtools/git/git.inc
>>>> index 73e11eb..178b768 100644
>>>> --- a/meta/recipes-devtools/git/git.inc
>>>> +++ b/meta/recipes-devtools/git/git.inc
>>>> @@ -28,10 +28,14 @@ do_install () {
>>>> 		template_dir=${datadir}/git-core/templates \
>>>> 		GIT_PYTHON_DIR=${D}${datadir}/git-core/python
>>>>
>>>> +	cd ${B}/perl && oe_runmake install DESTDIR="${D}" bindir=${bindir}
>>>> +
>>>> 	# ${libdir} is not applicable here, perl-native files are always
>>>> 	# installed to /usr/lib on both 32/64 bits targets.
>>>> +	# Fix up build paths and point to target locations.
>>>> +	mv ${D}${exec_prefix}/lib/perl-native/perl ${D}${exec_prefix}/lib/perl
>>>> +	sed -i -e s:${D}::g ${D}${exec_prefix}/lib/perl/*/auto/Git/.packlist
>>>> 	rm -rf ${D}${exec_prefix}/lib/perl-native
>>>> -	rmdir ${D}${exec_prefix}/lib || true
>>>> }
>>>>
>>>> PERLSEDFIXUP = " \
>>>> @@ -75,6 +79,7 @@ PERLTOOLS = " \
>>>> PACKAGES =+ "${PN}-perltools"
>>>> FILES_${PN}-perltools += " \
>>>>      ${PERLTOOLS} \
>>>> +    ${prefix}/lib/perl \
>>>>      ${datadir}/perl \
>>>> "
>>>> RDEPENDS_${PN}-perltools = "${PN} perl perl-module-file-path liberror-perl findutils"
>
>
>
Koen Kooi May 9, 2014, 8:50 a.m. UTC | #5
Op 9 mei 2014, om 08:38 heeft Saul Wold <sgw@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@dominion.thruhere.net> het volgende geschreven:
>> 
>>> 
>>> Op 8 mei 2014, om 18:37 heeft Saul Wold <sgw@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?

regards,

Koen

> 
> Thanks
> 	Sau!
> 
>> 
>>> 
>>> regards,
>>> 
>>> Koen
>>> 
>>>> 
>>>> Sau!
>>>> 
>>>> 
>>>>> Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
>>>>> ---
>>>>> meta/recipes-devtools/git/git.inc | 7 ++++++-
>>>>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>>>> 
>>>>> diff --git a/meta/recipes-devtools/git/git.inc b/meta/recipes-devtools/git/git.inc
>>>>> index 73e11eb..178b768 100644
>>>>> --- a/meta/recipes-devtools/git/git.inc
>>>>> +++ b/meta/recipes-devtools/git/git.inc
>>>>> @@ -28,10 +28,14 @@ do_install () {
>>>>> 		template_dir=${datadir}/git-core/templates \
>>>>> 		GIT_PYTHON_DIR=${D}${datadir}/git-core/python
>>>>> 
>>>>> +	cd ${B}/perl && oe_runmake install DESTDIR="${D}" bindir=${bindir}
>>>>> +
>>>>> 	# ${libdir} is not applicable here, perl-native files are always
>>>>> 	# installed to /usr/lib on both 32/64 bits targets.
>>>>> +	# Fix up build paths and point to target locations.
>>>>> +	mv ${D}${exec_prefix}/lib/perl-native/perl ${D}${exec_prefix}/lib/perl
>>>>> +	sed -i -e s:${D}::g ${D}${exec_prefix}/lib/perl/*/auto/Git/.packlist
>>>>> 	rm -rf ${D}${exec_prefix}/lib/perl-native
>>>>> -	rmdir ${D}${exec_prefix}/lib || true
>>>>> }
>>>>> 
>>>>> PERLSEDFIXUP = " \
>>>>> @@ -75,6 +79,7 @@ PERLTOOLS = " \
>>>>> PACKAGES =+ "${PN}-perltools"
>>>>> FILES_${PN}-perltools += " \
>>>>>     ${PERLTOOLS} \
>>>>> +    ${prefix}/lib/perl \
>>>>>     ${datadir}/perl \
>>>>> "
>>>>> RDEPENDS_${PN}-perltools = "${PN} perl perl-module-file-path liberror-perl findutils"
Koen Kooi May 9, 2014, 9:16 a.m. UTC | #6
Op 9 mei 2014, om 10:50 heeft Koen Kooi <koen@dominion.thruhere.net> het volgende geschreven:

> 
> Op 9 mei 2014, om 08:38 heeft Saul Wold <sgw@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@dominion.thruhere.net> het volgende geschreven:
>>> 
>>>> 
>>>> Op 8 mei 2014, om 18:37 heeft Saul Wold <sgw@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@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.

regards,

Koen


> 
> regards,
> 
> Koen
> 
>> 
>> Thanks
>> 	Sau!
>> 
>>> 
>>>> 
>>>> regards,
>>>> 
>>>> Koen
>>>> 
>>>>> 
>>>>> Sau!
>>>>> 
>>>>> 
>>>>>> Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
>>>>>> ---
>>>>>> meta/recipes-devtools/git/git.inc | 7 ++++++-
>>>>>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>>>>> 
>>>>>> diff --git a/meta/recipes-devtools/git/git.inc b/meta/recipes-devtools/git/git.inc
>>>>>> index 73e11eb..178b768 100644
>>>>>> --- a/meta/recipes-devtools/git/git.inc
>>>>>> +++ b/meta/recipes-devtools/git/git.inc
>>>>>> @@ -28,10 +28,14 @@ do_install () {
>>>>>> 		template_dir=${datadir}/git-core/templates \
>>>>>> 		GIT_PYTHON_DIR=${D}${datadir}/git-core/python
>>>>>> 
>>>>>> +	cd ${B}/perl && oe_runmake install DESTDIR="${D}" bindir=${bindir}
>>>>>> +
>>>>>> 	# ${libdir} is not applicable here, perl-native files are always
>>>>>> 	# installed to /usr/lib on both 32/64 bits targets.
>>>>>> +	# Fix up build paths and point to target locations.
>>>>>> +	mv ${D}${exec_prefix}/lib/perl-native/perl ${D}${exec_prefix}/lib/perl
>>>>>> +	sed -i -e s:${D}::g ${D}${exec_prefix}/lib/perl/*/auto/Git/.packlist
>>>>>> 	rm -rf ${D}${exec_prefix}/lib/perl-native
>>>>>> -	rmdir ${D}${exec_prefix}/lib || true
>>>>>> }
>>>>>> 
>>>>>> PERLSEDFIXUP = " \
>>>>>> @@ -75,6 +79,7 @@ PERLTOOLS = " \
>>>>>> PACKAGES =+ "${PN}-perltools"
>>>>>> FILES_${PN}-perltools += " \
>>>>>>    ${PERLTOOLS} \
>>>>>> +    ${prefix}/lib/perl \
>>>>>>    ${datadir}/perl \
>>>>>> "
>>>>>> RDEPENDS_${PN}-perltools = "${PN} perl perl-module-file-path liberror-perl findutils"
Richard Purdie May 9, 2014, 10:16 a.m. UTC | #7
On Fri, 2014-05-09 at 11:16 +0200, Koen Kooi wrote:
> Op 9 mei 2014, om 10:50 heeft Koen Kooi <koen@dominion.thruhere.net> het volgende geschreven:
> 
> > 
> > Op 9 mei 2014, om 08:38 heeft Saul Wold <sgw@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@dominion.thruhere.net> het volgende geschreven:
> >>> 
> >>>> 
> >>>> Op 8 mei 2014, om 18:37 heeft Saul Wold <sgw@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@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
Koen Kooi May 12, 2014, 8:15 a.m. UTC | #8
Op 9 mei 2014, om 12:53 heeft Koen Kooi <koen.kooi@linaro.org> het volgende geschreven:

> On 9 May 2014 12:23, Richard Purdie <richard.purdie@linuxfoundation.org> wrote:
> On Fri, 2014-05-09 at 12:19 +0200, Koen Kooi wrote:
> > On 9 May 2014 12:16, Richard Purdie
> > <richard.purdie@linuxfoundation.org> wrote:
> >         On Fri, 2014-05-09 at 11:16 +0200, Koen Kooi wrote:
> >         > Op 9 mei 2014, om 10:50 heeft Koen Kooi
> >         <koen@dominion.thruhere.net> het volgende geschreven:
> >         > real    4m49.390s
> >         > user    8m30.627s
> >         > sys     1m37.368s
> >         >
> >         > Libcrypto does seem to be in sysroot:
> >         >
> >         > [koen@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.
> >
> >
> >
> >
> > It looks like the problem is that I don't have libcrypto in on my
> > host, only in sysroot, I can make it fail this way without the mv as
> > well :(
> >
> 
> Floating dependency in the git recipe?
> 
> git.inc:DEPENDS = "openssl curl zlib expat"
> 
> And libcrypto is present in sysroot.

I removed all my patches, deleted everything including DL_DIR and sstate-cache and

bitbake git-replacement-native
bitbake linaro-image-minimal

will fail with:

[koen@thinkpad git]$ cat  /build/linaro/build/build/tmp-eglibc/work/x86_64-linux/prelink-native/1.0+gitAUTOINC+6822ec76aa-r0/temp/log.do_unpack.17925
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/build/tmp-eglibc/sysroots/x86_64-linux/usr/bin:/build/linaro/build/build/tmp-eglibc/sysroots/x86_64-linux/usr/sbin:/build/linaro/build/build/tmp-eglibc/sysroots/x86_64-linux/usr/bin:/build/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/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/koen/.local/bin:/home/koen/bin:/home/koen/bin"; export HOME="/home/koen"; git -c core.fsyncobjectfiles=0 clone -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.

So 'git-replacement-native' is broken without the git-perl patches anyway, I'm not going to look into that issue any longer.

--
Koen Kooi
Builds and Baselines | Release Manager
Linaro.org | Open source software for ARM SoCs
Richard Purdie May 12, 2014, 9:16 a.m. UTC | #9
On Mon, 2014-05-12 at 10:15 +0200, Koen Kooi wrote:
> So 'git-replacement-native' is broken without the git-perl patches
> anyway, I'm not going to look into that issue any longer.

$ bitbake git-replacement-native
[---build---]
$ ./tmp/sysroots/x86_64-linux/usr/bin/git -c core.fsyncobjectfiles=0
clone -s -n /xxx/sources/git2/git.yoctoproject.org.prelink-cross.git/
test
Cloning into 'test'...
done.

So at least for some of us, this does work before and then no longer
works after your patches.

But thanks for the help in resolving this, its really much appreciated
and I'll keep it in mind next time I get a bug report from you.

Cheers,

Richard
Richard Purdie May 12, 2014, 10:08 a.m. UTC | #10
On Mon, 2014-05-12 at 10:15 +0200, Koen Kooi wrote:
> I removed all my patches, deleted everything including DL_DIR and sstate-cache and
> 
> bitbake git-replacement-native
> bitbake linaro-image-minimal
> 
> will fail with:
> 
> [koen@thinkpad git]$ cat  /build/linaro/build/build/tmp-eglibc/work/x86_64-linux/prelink-native/1.0+gitAUTOINC+6822ec76aa-r0/temp/log.do_unpack.17925
> 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/build/tmp-eglibc/sysroots/x86_64-linux/usr/bin:/build/linaro/build/build/tmp-eglibc/sysroots/x86_64-linux/usr/sbin:/build/linaro/build/build/tmp-eglibc/sysroots/x86_64-linux/usr/bin:/build/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/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/koen/.local/bin:/home/koen/bin:/home/koen/bin"; export HOME="/home/koen"; git -c core.fsyncobjectfiles=0 clone -s -n /build/linaro/build/build/downloads/git2/git.yoctoproject.org.prelink-cross.git/ /build/linaro/build/build/tmp-eglibc/work/x86_64-lin
 ux/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.
> 
> So 'git-replacement-native' is broken without the git-perl patches anyway, I'm not going to look into that issue any longer.

Against my better judgement, I took a look at this and spotted a fix. If
you apply the patch I just sent out, it will most likely fix the
libcrypto issue you were seeing.

I shared it mainly as I'd hate to see anyone duplicate work and the
issue has implications for the buildtools tarball amongst other things.

Cheers,

Richard
diff mbox

Patch

diff --git a/meta/recipes-devtools/git/git.inc b/meta/recipes-devtools/git/git.inc
index 73e11eb..178b768 100644
--- a/meta/recipes-devtools/git/git.inc
+++ b/meta/recipes-devtools/git/git.inc
@@ -28,10 +28,14 @@  do_install () {
 		template_dir=${datadir}/git-core/templates \
 		GIT_PYTHON_DIR=${D}${datadir}/git-core/python
 
+	cd ${B}/perl && oe_runmake install DESTDIR="${D}" bindir=${bindir}
+
 	# ${libdir} is not applicable here, perl-native files are always
 	# installed to /usr/lib on both 32/64 bits targets.
+	# Fix up build paths and point to target locations.
+	mv ${D}${exec_prefix}/lib/perl-native/perl ${D}${exec_prefix}/lib/perl
+	sed -i -e s:${D}::g ${D}${exec_prefix}/lib/perl/*/auto/Git/.packlist
 	rm -rf ${D}${exec_prefix}/lib/perl-native
-	rmdir ${D}${exec_prefix}/lib || true
 }
 
 PERLSEDFIXUP = " \
@@ -75,6 +79,7 @@  PERLTOOLS = " \
 PACKAGES =+ "${PN}-perltools"
 FILES_${PN}-perltools += " \
     ${PERLTOOLS} \
+    ${prefix}/lib/perl \
     ${datadir}/perl \
 "
 RDEPENDS_${PN}-perltools = "${PN} perl perl-module-file-path liberror-perl findutils"