Patchwork [1/3] git: fix perl binding installation

login
register
mail settings
Submitter Koen Kooi
Date April 17, 2014, 9:07 a.m.
Message ID <1397725659-9004-1-git-send-email-koen.kooi@linaro.org>
Download mbox | patch
Permalink /patch/70633/
State New
Headers show

Comments

Koen Kooi - April 17, 2014, 9:07 a.m.
Git.pm wasn't ending up in the package because do_install removed it
with a misleading comment about multilib. Fix the problem at the source
so that Git.pm ends up in the correct dir *and* doesn't get deleted.

The perl.mak file gets updated during the regular do_install, so add an
extra make install step to install the *.pm files to the correct
directory.

This is the first step in making git-perltools actually work.

Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
---
 meta/recipes-devtools/git/git.inc | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
Saul Wold - April 18, 2014, 8:25 p.m.
On 04/17/2014 02:07 AM, Koen Kooi wrote:
> Git.pm wasn't ending up in the package because do_install removed it
> with a misleading comment about multilib. Fix the problem at the source
> so that Git.pm ends up in the correct dir *and* doesn't get deleted.
>
> The perl.mak file gets updated during the regular do_install, so add an
> extra make install step to install the *.pm files to the correct
> directory.
>
> This is the first step in making git-perltools actually work.
>
> Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
> ---
>   meta/recipes-devtools/git/git.inc | 9 ++++++++-
>   1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/meta/recipes-devtools/git/git.inc b/meta/recipes-devtools/git/git.inc
> index f5013f1..888b2a5 100644
> --- a/meta/recipes-devtools/git/git.inc
> +++ b/meta/recipes-devtools/git/git.inc
> @@ -28,10 +28,16 @@ do_install () {
>   		template_dir=${datadir}/git-core/templates \
>   		GIT_PYTHON_DIR=${D}${datadir}/git-core/python
>
> +	sed -i -e 's#${STAGING_BINDIR_NATIVE}/perl-native/#${bindir}/#' \
> +	       -e 's#${STAGING_LIBDIR_NATIVE}/#${libdir}/#' \
> +	       -e 's#/lib/perl-native#/lib#g' \
> +	       ${S}/perl/perl.mak
> +
> +	cd ${S}/perl && oe_runmake install DESTDIR="${D}" bindir=${bindir}
> +

Koen,

This still seems to have a problem, and yes I have all 3 patches

> | NOTE: make -j 16 NO_PYTHON=1 RUNTIME_PREFIX=1 NO_GETTEXT=1 install DESTDIR=/srv/hdd/builds/world/tmp/work/ppc7400-poky-linux/git/1.9.0-r0/image bindir=/usr/bin
> | make[1]: Entering directory `/srv/hdd/builds/world/tmp/work/ppc7400-poky-linux/git/1.9.0-r0/git-1.9.0/perl'
> | make[1]: *** No rule to make target `/usr/lib/perl/5.14.3/Config.pm', needed by `perl.mak'.  Stop.
> | make[1]: Leaving directory `/srv/hdd/builds/world/tmp/work/ppc7400-poky-linux/git/1.9.0-r0/git-1.9.0/perl'
> | make: *** [install] Error 2
> | ERROR: oe_runmake failed


Sau!



>   	# ${libdir} is not applicable here, perl-native files are always
>   	# installed to /usr/lib on both 32/64 bits targets.
>   	rm -rf ${D}${exec_prefix}/lib/perl-native
> -	rmdir ${D}${exec_prefix}/lib || true
>   }
>
>   PERLSEDFIXUP = " \
> @@ -75,6 +81,7 @@ PERLTOOLS = " \
>   PACKAGES =+ "${PN}-perltools"
>   FILES_${PN}-perltools += " \
>       ${PERLTOOLS} \
> +    ${prefix}/lib/perl \
>       ${datadir}/perl \
>   "
>   RDEPENDS_${PN}-perltools = "${PN} perl perl-module-file-path findutils"
>
Koen Kooi - April 19, 2014, 7:24 a.m.
Op 18 apr. 2014, om 22:25 heeft Saul Wold <sgw@linux.intel.com> het volgende geschreven:

> On 04/17/2014 02:07 AM, Koen Kooi wrote:
>> Git.pm wasn't ending up in the package because do_install removed it
>> with a misleading comment about multilib. Fix the problem at the source
>> so that Git.pm ends up in the correct dir *and* doesn't get deleted.
>> 
>> The perl.mak file gets updated during the regular do_install, so add an
>> extra make install step to install the *.pm files to the correct
>> directory.
>> 
>> This is the first step in making git-perltools actually work.
>> 
>> Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
>> ---
>>  meta/recipes-devtools/git/git.inc | 9 ++++++++-
>>  1 file changed, 8 insertions(+), 1 deletion(-)
>> 
>> diff --git a/meta/recipes-devtools/git/git.inc b/meta/recipes-devtools/git/git.inc
>> index f5013f1..888b2a5 100644
>> --- a/meta/recipes-devtools/git/git.inc
>> +++ b/meta/recipes-devtools/git/git.inc
>> @@ -28,10 +28,16 @@ do_install () {
>>  		template_dir=${datadir}/git-core/templates \
>>  		GIT_PYTHON_DIR=${D}${datadir}/git-core/python
>> 
>> +	sed -i -e 's#${STAGING_BINDIR_NATIVE}/perl-native/#${bindir}/#' \
>> +	       -e 's#${STAGING_LIBDIR_NATIVE}/#${libdir}/#' \
>> +	       -e 's#/lib/perl-native#/lib#g' \
>> +	       ${S}/perl/perl.mak
>> +
>> +	cd ${S}/perl && oe_runmake install DESTDIR="${D}" bindir=${bindir}
>> +
> 
> Koen,
> 
> This still seems to have a problem, and yes I have all 3 patches
> 
>> | NOTE: make -j 16 NO_PYTHON=1 RUNTIME_PREFIX=1 NO_GETTEXT=1 install DESTDIR=/srv/hdd/builds/world/tmp/work/ppc7400-poky-linux/git/1.9.0-r0/image bindir=/usr/bin
>> | make[1]: Entering directory `/srv/hdd/builds/world/tmp/work/ppc7400-poky-linux/git/1.9.0-r0/git-1.9.0/perl'
>> | make[1]: *** No rule to make target `/usr/lib/perl/5.14.3/Config.pm', needed by `perl.mak'.  Stop.
>> | make[1]: Leaving directory `/srv/hdd/builds/world/tmp/work/ppc7400-poky-linux/git/1.9.0-r0/git-1.9.0/perl'
>> | make: *** [install] Error 2
>> | ERROR: oe_runmake failed

I've seen that pop up as well, but I couldn't reproduce that with 'bitbake -c clean git ; bitbake git'. I only tested with -j4, I'll retest with -j16. Are you seeing this on all builds or only some of them?

regards,

Koen



> 
> 
> Sau!
> 
> 
> 
>>  	# ${libdir} is not applicable here, perl-native files are always
>>  	# installed to /usr/lib on both 32/64 bits targets.
>>  	rm -rf ${D}${exec_prefix}/lib/perl-native
>> -	rmdir ${D}${exec_prefix}/lib || true
>>  }
>> 
>>  PERLSEDFIXUP = " \
>> @@ -75,6 +81,7 @@ PERLTOOLS = " \
>>  PACKAGES =+ "${PN}-perltools"
>>  FILES_${PN}-perltools += " \
>>      ${PERLTOOLS} \
>> +    ${prefix}/lib/perl \
>>      ${datadir}/perl \
>>  "
>>  RDEPENDS_${PN}-perltools = "${PN} perl perl-module-file-path findutils"
>> 
> -- 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
Saul Wold - April 19, 2014, 3:47 p.m.
On 04/19/2014 12:24 AM, Koen Kooi wrote:
>
> Op 18 apr. 2014, om 22:25 heeft Saul Wold <sgw@linux.intel.com> het volgende geschreven:
>
>> On 04/17/2014 02:07 AM, Koen Kooi wrote:
>>> Git.pm wasn't ending up in the package because do_install removed it
>>> with a misleading comment about multilib. Fix the problem at the source
>>> so that Git.pm ends up in the correct dir *and* doesn't get deleted.
>>>
>>> The perl.mak file gets updated during the regular do_install, so add an
>>> extra make install step to install the *.pm files to the correct
>>> directory.
>>>
>>> This is the first step in making git-perltools actually work.
>>>
>>> Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
>>> ---
>>>   meta/recipes-devtools/git/git.inc | 9 ++++++++-
>>>   1 file changed, 8 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/meta/recipes-devtools/git/git.inc b/meta/recipes-devtools/git/git.inc
>>> index f5013f1..888b2a5 100644
>>> --- a/meta/recipes-devtools/git/git.inc
>>> +++ b/meta/recipes-devtools/git/git.inc
>>> @@ -28,10 +28,16 @@ do_install () {
>>>   		template_dir=${datadir}/git-core/templates \
>>>   		GIT_PYTHON_DIR=${D}${datadir}/git-core/python
>>>
>>> +	sed -i -e 's#${STAGING_BINDIR_NATIVE}/perl-native/#${bindir}/#' \
>>> +	       -e 's#${STAGING_LIBDIR_NATIVE}/#${libdir}/#' \
>>> +	       -e 's#/lib/perl-native#/lib#g' \
>>> +	       ${S}/perl/perl.mak
>>> +
>>> +	cd ${S}/perl && oe_runmake install DESTDIR="${D}" bindir=${bindir}
>>> +
>>
>> Koen,
>>
>> This still seems to have a problem, and yes I have all 3 patches
>>
>>> | NOTE: make -j 16 NO_PYTHON=1 RUNTIME_PREFIX=1 NO_GETTEXT=1 install DESTDIR=/srv/hdd/builds/world/tmp/work/ppc7400-poky-linux/git/1.9.0-r0/image bindir=/usr/bin
>>> | make[1]: Entering directory `/srv/hdd/builds/world/tmp/work/ppc7400-poky-linux/git/1.9.0-r0/git-1.9.0/perl'
>>> | make[1]: *** No rule to make target `/usr/lib/perl/5.14.3/Config.pm', needed by `perl.mak'.  Stop.
>>> | make[1]: Leaving directory `/srv/hdd/builds/world/tmp/work/ppc7400-poky-linux/git/1.9.0-r0/git-1.9.0/perl'
>>> | make: *** [install] Error 2
>>> | ERROR: oe_runmake failed
>
> I've seen that pop up as well, but I couldn't reproduce that with 'bitbake -c clean git ; bitbake git'. I only tested with -j4, I'll retest with -j16. Are you seeing this on all builds or only some of them?
>

I can reproduce this on my local build server at -j 16 everytime.

Sau!

> regards,
>
> Koen
>
>
>
>>
>>
>> Sau!
>>
>>
>>
>>>   	# ${libdir} is not applicable here, perl-native files are always
>>>   	# installed to /usr/lib on both 32/64 bits targets.
>>>   	rm -rf ${D}${exec_prefix}/lib/perl-native
>>> -	rmdir ${D}${exec_prefix}/lib || true
>>>   }
>>>
>>>   PERLSEDFIXUP = " \
>>> @@ -75,6 +81,7 @@ PERLTOOLS = " \
>>>   PACKAGES =+ "${PN}-perltools"
>>>   FILES_${PN}-perltools += " \
>>>       ${PERLTOOLS} \
>>> +    ${prefix}/lib/perl \
>>>       ${datadir}/perl \
>>>   "
>>>   RDEPENDS_${PN}-perltools = "${PN} perl perl-module-file-path findutils"
>>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
>
>
Koen Kooi - April 20, 2014, 8:02 a.m.
Op 19 apr. 2014, om 17:47 heeft Saul Wold <sgw@linux.intel.com> het volgende geschreven:

> On 04/19/2014 12:24 AM, Koen Kooi wrote:
>> 
>> Op 18 apr. 2014, om 22:25 heeft Saul Wold <sgw@linux.intel.com> het volgende geschreven:
>> 
>>> On 04/17/2014 02:07 AM, Koen Kooi wrote:
>>>> Git.pm wasn't ending up in the package because do_install removed it
>>>> with a misleading comment about multilib. Fix the problem at the source
>>>> so that Git.pm ends up in the correct dir *and* doesn't get deleted.
>>>> 
>>>> The perl.mak file gets updated during the regular do_install, so add an
>>>> extra make install step to install the *.pm files to the correct
>>>> directory.
>>>> 
>>>> This is the first step in making git-perltools actually work.
>>>> 
>>>> Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
>>>> ---
>>>>  meta/recipes-devtools/git/git.inc | 9 ++++++++-
>>>>  1 file changed, 8 insertions(+), 1 deletion(-)
>>>> 
>>>> diff --git a/meta/recipes-devtools/git/git.inc b/meta/recipes-devtools/git/git.inc
>>>> index f5013f1..888b2a5 100644
>>>> --- a/meta/recipes-devtools/git/git.inc
>>>> +++ b/meta/recipes-devtools/git/git.inc
>>>> @@ -28,10 +28,16 @@ do_install () {
>>>>  		template_dir=${datadir}/git-core/templates \
>>>>  		GIT_PYTHON_DIR=${D}${datadir}/git-core/python
>>>> 
>>>> +	sed -i -e 's#${STAGING_BINDIR_NATIVE}/perl-native/#${bindir}/#' \
>>>> +	       -e 's#${STAGING_LIBDIR_NATIVE}/#${libdir}/#' \
>>>> +	       -e 's#/lib/perl-native#/lib#g' \
>>>> +	       ${S}/perl/perl.mak
>>>> +
>>>> +	cd ${S}/perl && oe_runmake install DESTDIR="${D}" bindir=${bindir}
>>>> +
>>> 
>>> Koen,
>>> 
>>> This still seems to have a problem, and yes I have all 3 patches
>>> 
>>>> | NOTE: make -j 16 NO_PYTHON=1 RUNTIME_PREFIX=1 NO_GETTEXT=1 install DESTDIR=/srv/hdd/builds/world/tmp/work/ppc7400-poky-linux/git/1.9.0-r0/image bindir=/usr/bin
>>>> | make[1]: Entering directory `/srv/hdd/builds/world/tmp/work/ppc7400-poky-linux/git/1.9.0-r0/git-1.9.0/perl'
>>>> | make[1]: *** No rule to make target `/usr/lib/perl/5.14.3/Config.pm', needed by `perl.mak'.  Stop.
>>>> | make[1]: Leaving directory `/srv/hdd/builds/world/tmp/work/ppc7400-poky-linux/git/1.9.0-r0/git-1.9.0/perl'
>>>> | make: *** [install] Error 2
>>>> | ERROR: oe_runmake failed
>> 
>> I've seen that pop up as well, but I couldn't reproduce that with 'bitbake -c clean git ; bitbake git'. I only tested with -j4, I'll retest with -j16. Are you seeing this on all builds or only some of them?
>> 
> 
> I can reproduce this on my local build server at -j 16 everytime.

-j16 instead of -j4 triggers an selinux error on my laptop, so this patch needs rethinking. I'll have a look at this when I get back to work on tuesday.

regards,

Koen


> 
> Sau!
> 
>> regards,
>> 
>> Koen
>> 
>> 
>> 
>>> 
>>> 
>>> Sau!
>>> 
>>> 
>>> 
>>>>  	# ${libdir} is not applicable here, perl-native files are always
>>>>  	# installed to /usr/lib on both 32/64 bits targets.
>>>>  	rm -rf ${D}${exec_prefix}/lib/perl-native
>>>> -	rmdir ${D}${exec_prefix}/lib || true
>>>>  }
>>>> 
>>>>  PERLSEDFIXUP = " \
>>>> @@ -75,6 +81,7 @@ PERLTOOLS = " \
>>>>  PACKAGES =+ "${PN}-perltools"
>>>>  FILES_${PN}-perltools += " \
>>>>      ${PERLTOOLS} \
>>>> +    ${prefix}/lib/perl \
>>>>      ${datadir}/perl \
>>>>  "
>>>>  RDEPENDS_${PN}-perltools = "${PN} perl perl-module-file-path findutils"
>>>> 
>>> --
>>> _______________________________________________
>>> Openembedded-core mailing list
>>> Openembedded-core@lists.openembedded.org
>>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
Koen Kooi - April 22, 2014, 12:50 p.m.
Op 20 apr. 2014, om 10:02 heeft Koen Kooi <koen@dominion.thruhere.net> het volgende geschreven:

> 
> Op 19 apr. 2014, om 17:47 heeft Saul Wold <sgw@linux.intel.com> het volgende geschreven:
> 
>> On 04/19/2014 12:24 AM, Koen Kooi wrote:
>>> 
>>> Op 18 apr. 2014, om 22:25 heeft Saul Wold <sgw@linux.intel.com> het volgende geschreven:
>>> 
>>>> On 04/17/2014 02:07 AM, Koen Kooi wrote:
>>>>> Git.pm wasn't ending up in the package because do_install removed it
>>>>> with a misleading comment about multilib. Fix the problem at the source
>>>>> so that Git.pm ends up in the correct dir *and* doesn't get deleted.
>>>>> 
>>>>> The perl.mak file gets updated during the regular do_install, so add an
>>>>> extra make install step to install the *.pm files to the correct
>>>>> directory.
>>>>> 
>>>>> This is the first step in making git-perltools actually work.
>>>>> 
>>>>> Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
>>>>> ---
>>>>> meta/recipes-devtools/git/git.inc | 9 ++++++++-
>>>>> 1 file changed, 8 insertions(+), 1 deletion(-)
>>>>> 
>>>>> diff --git a/meta/recipes-devtools/git/git.inc b/meta/recipes-devtools/git/git.inc
>>>>> index f5013f1..888b2a5 100644
>>>>> --- a/meta/recipes-devtools/git/git.inc
>>>>> +++ b/meta/recipes-devtools/git/git.inc
>>>>> @@ -28,10 +28,16 @@ do_install () {
>>>>> 		template_dir=${datadir}/git-core/templates \
>>>>> 		GIT_PYTHON_DIR=${D}${datadir}/git-core/python
>>>>> 
>>>>> +	sed -i -e 's#${STAGING_BINDIR_NATIVE}/perl-native/#${bindir}/#' \
>>>>> +	       -e 's#${STAGING_LIBDIR_NATIVE}/#${libdir}/#' \
>>>>> +	       -e 's#/lib/perl-native#/lib#g' \
>>>>> +	       ${S}/perl/perl.mak
>>>>> +
>>>>> +	cd ${S}/perl && oe_runmake install DESTDIR="${D}" bindir=${bindir}
>>>>> +
>>>> 
>>>> Koen,
>>>> 
>>>> This still seems to have a problem, and yes I have all 3 patches
>>>> 
>>>>> | NOTE: make -j 16 NO_PYTHON=1 RUNTIME_PREFIX=1 NO_GETTEXT=1 install DESTDIR=/srv/hdd/builds/world/tmp/work/ppc7400-poky-linux/git/1.9.0-r0/image bindir=/usr/bin
>>>>> | make[1]: Entering directory `/srv/hdd/builds/world/tmp/work/ppc7400-poky-linux/git/1.9.0-r0/git-1.9.0/perl'
>>>>> | make[1]: *** No rule to make target `/usr/lib/perl/5.14.3/Config.pm', needed by `perl.mak'.  Stop.
>>>>> | make[1]: Leaving directory `/srv/hdd/builds/world/tmp/work/ppc7400-poky-linux/git/1.9.0-r0/git-1.9.0/perl'
>>>>> | make: *** [install] Error 2
>>>>> | ERROR: oe_runmake failed
>>> 
>>> I've seen that pop up as well, but I couldn't reproduce that with 'bitbake -c clean git ; bitbake git'. I only tested with -j4, I'll retest with -j16. Are you seeing this on all builds or only some of them?
>>> 
>> 
>> I can reproduce this on my local build server at -j 16 everytime.
> 
> -j16 instead of -j4 triggers an selinux error on my laptop, so this patch needs rethinking. I'll have a look at this when I get back to work on tuesday.

Still  haven't fixed the selinux error, but I'll send a patch with PARALLEL_MAKEINST="" today or tomorrow to run through the autobuilder.


> 
> regards,
> 
> Koen
> 
> 
>> 
>> Sau!
>> 
>>> regards,
>>> 
>>> Koen
>>> 
>>> 
>>> 
>>>> 
>>>> 
>>>> Sau!
>>>> 
>>>> 
>>>> 
>>>>> 	# ${libdir} is not applicable here, perl-native files are always
>>>>> 	# installed to /usr/lib on both 32/64 bits targets.
>>>>> 	rm -rf ${D}${exec_prefix}/lib/perl-native
>>>>> -	rmdir ${D}${exec_prefix}/lib || true
>>>>> }
>>>>> 
>>>>> PERLSEDFIXUP = " \
>>>>> @@ -75,6 +81,7 @@ PERLTOOLS = " \
>>>>> PACKAGES =+ "${PN}-perltools"
>>>>> FILES_${PN}-perltools += " \
>>>>>     ${PERLTOOLS} \
>>>>> +    ${prefix}/lib/perl \
>>>>>     ${datadir}/perl \
>>>>> "
>>>>> RDEPENDS_${PN}-perltools = "${PN} perl perl-module-file-path findutils"
>>>>> 
>>>> --
>>>> _______________________________________________
>>>> Openembedded-core mailing list
>>>> Openembedded-core@lists.openembedded.org
>>>> http://lists.openembedded.org/mailman/listinfo/openembedded-core

Patch

diff --git a/meta/recipes-devtools/git/git.inc b/meta/recipes-devtools/git/git.inc
index f5013f1..888b2a5 100644
--- a/meta/recipes-devtools/git/git.inc
+++ b/meta/recipes-devtools/git/git.inc
@@ -28,10 +28,16 @@  do_install () {
 		template_dir=${datadir}/git-core/templates \
 		GIT_PYTHON_DIR=${D}${datadir}/git-core/python
 
+	sed -i -e 's#${STAGING_BINDIR_NATIVE}/perl-native/#${bindir}/#' \
+	       -e 's#${STAGING_LIBDIR_NATIVE}/#${libdir}/#' \
+	       -e 's#/lib/perl-native#/lib#g' \
+	       ${S}/perl/perl.mak
+
+	cd ${S}/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.
 	rm -rf ${D}${exec_prefix}/lib/perl-native
-	rmdir ${D}${exec_prefix}/lib || true
 }
 
 PERLSEDFIXUP = " \
@@ -75,6 +81,7 @@  PERLTOOLS = " \
 PACKAGES =+ "${PN}-perltools"
 FILES_${PN}-perltools += " \
     ${PERLTOOLS} \
+    ${prefix}/lib/perl \
     ${datadir}/perl \
 "
 RDEPENDS_${PN}-perltools = "${PN} perl perl-module-file-path findutils"