Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 1/3] perl: fix Perl5 module builds
@ 2015-10-08 14:21 Jens Rehsack
  2015-10-28 10:26 ` Jens Rehsack
  0 siblings, 1 reply; 4+ messages in thread
From: Jens Rehsack @ 2015-10-08 14:21 UTC (permalink / raw)
  To: OE-core

This patch fixes some issues in classes providing cpan module build support:

* add support even for xs modules with more than 3 levels as
  B::Hooks::End::Of::Scope or Math::Random::ISAAC::XS
* correct handling of Module::Build (as far as stolen from pkgsrc
  and my humble knowledge)
* configure to install to vendor_libs as default, even when
  inherited do_install remains unused (overwritten do_install)

Signed-off-by: Jens Rehsack <sno@netbsd.org>
---
 meta/classes/cpan-base.bbclass  |  4 ++++
 meta/classes/cpan.bbclass       |  2 +-
 meta/classes/cpan_build.bbclass | 13 +++++++++++--
 3 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/meta/classes/cpan-base.bbclass b/meta/classes/cpan-base.bbclass
index d9817ba..7810a4d 100644
--- a/meta/classes/cpan-base.bbclass
+++ b/meta/classes/cpan-base.bbclass
@@ -49,7 +49,11 @@ PERLVERSION[vardepvalue] = ""
 FILES_${PN}-dbg += "${PERLLIBDIRS}/auto/*/.debug \
                     ${PERLLIBDIRS}/auto/*/*/.debug \
                     ${PERLLIBDIRS}/auto/*/*/*/.debug \
+                    ${PERLLIBDIRS}/auto/*/*/*/*/.debug \
+                    ${PERLLIBDIRS}/auto/*/*/*/*/*/.debug \
                     ${PERLLIBDIRS}/vendor_perl/${PERLVERSION}/auto/*/.debug \
                     ${PERLLIBDIRS}/vendor_perl/${PERLVERSION}/auto/*/*/.debug \
                     ${PERLLIBDIRS}/vendor_perl/${PERLVERSION}/auto/*/*/*/.debug \
+                    ${PERLLIBDIRS}/vendor_perl/${PERLVERSION}/auto/*/*/*/*/.debug \
+                    ${PERLLIBDIRS}/vendor_perl/${PERLVERSION}/auto/*/*/*/*/*/.debug \
                     "
diff --git a/meta/classes/cpan.bbclass b/meta/classes/cpan.bbclass
index e2bbd2f..8e079e0 100644
--- a/meta/classes/cpan.bbclass
+++ b/meta/classes/cpan.bbclass
@@ -17,7 +17,7 @@ export PERLHOSTLIB = "${STAGING_LIBDIR_NATIVE}/perl-native/perl/${@get_perl_vers
 
 cpan_do_configure () {
 	export PERL5LIB="${PERL_ARCHLIB}"
-	yes '' | perl ${EXTRA_PERLFLAGS} Makefile.PL ${EXTRA_CPANFLAGS}
+	yes '' | perl ${EXTRA_PERLFLAGS} Makefile.PL INSTALLDIRS=vendor ${EXTRA_CPANFLAGS}
 
 	# Makefile.PLs can exit with success without generating a
 	# Makefile, e.g. in cases of missing configure time
diff --git a/meta/classes/cpan_build.bbclass b/meta/classes/cpan_build.bbclass
index 4f648a6..3653748 100644
--- a/meta/classes/cpan_build.bbclass
+++ b/meta/classes/cpan_build.bbclass
@@ -8,6 +8,7 @@ EXTRA_CPAN_BUILD_FLAGS ?= ""
 # Env var which tells perl if it should use host (no) or target (yes) settings
 export PERLCONFIGTARGET = "${@is_target(d)}"
 export PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}"
+export PERLHOSTLIB = "${STAGING_LIBDIR_NATIVE}/perl-native/perl/${@get_perl_version(d)}/"
 export LD = "${CCLD}"
 
 cpan_build_do_configure () {
@@ -24,14 +25,22 @@ cpan_build_do_configure () {
 				--install_path bindoc=${mandir}/man1 \
 				--install_path libdoc=${mandir}/man3 \
                                 ${EXTRA_CPAN_BUILD_FLAGS}
+
+	# Build.PLs can exit with success without generating a
+	# Build, e.g. in cases of missing configure time
+	# dependencies. This is considered a best practice by
+	# cpantesters.org. See:
+	#  * http://wiki.cpantesters.org/wiki/CPANAuthorNotes
+	#  * http://www.nntp.perl.org/group/perl.qa/2008/08/msg11236.html
+	[ -e Build ] || bbfatal "No Build was generated by Build.PL"
 }
 
 cpan_build_do_compile () {
-        perl Build
+        perl Build verbose=1
 }
 
 cpan_build_do_install () {
-	perl Build install
+	perl Build install --destdir ${D}
 }
 
 EXPORT_FUNCTIONS do_configure do_compile do_install
-- 
2.3.8 (Apple Git-58)

-- 
Jens Rehsack - rehsack@gmail.com



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/3] perl: fix Perl5 module builds
  2015-10-08 14:21 [PATCH 1/3] perl: fix Perl5 module builds Jens Rehsack
@ 2015-10-28 10:26 ` Jens Rehsack
  2015-10-29  7:31   ` Burton, Ross
  0 siblings, 1 reply; 4+ messages in thread
From: Jens Rehsack @ 2015-10-28 10:26 UTC (permalink / raw)
  To: OE-core


> Am 08.10.2015 um 16:21 schrieb Jens Rehsack <rehsack@gmail.com>:
> 
> This patch fixes some issues in classes providing cpan module build support:
> 
> * add support even for xs modules with more than 3 levels as
>  B::Hooks::End::Of::Scope or Math::Random::ISAAC::XS
> * correct handling of Module::Build (as far as stolen from pkgsrc
>  and my humble knowledge)
> * configure to install to vendor_libs as default, even when
>  inherited do_install remains unused (overwritten do_install)
> 
> Signed-off-by: Jens Rehsack <sno@netbsd.org>
> ---
> meta/classes/cpan-base.bbclass  |  4 ++++
> meta/classes/cpan.bbclass       |  2 +-
> meta/classes/cpan_build.bbclass | 13 +++++++++++--
> 3 files changed, 16 insertions(+), 3 deletions(-)
> 
> diff --git a/meta/classes/cpan-base.bbclass b/meta/classes/cpan-base.bbclass
> index d9817ba..7810a4d 100644
> --- a/meta/classes/cpan-base.bbclass
> +++ b/meta/classes/cpan-base.bbclass
> @@ -49,7 +49,11 @@ PERLVERSION[vardepvalue] = ""
> FILES_${PN}-dbg += "${PERLLIBDIRS}/auto/*/.debug \
>                     ${PERLLIBDIRS}/auto/*/*/.debug \
>                     ${PERLLIBDIRS}/auto/*/*/*/.debug \
> +                    ${PERLLIBDIRS}/auto/*/*/*/*/.debug \
> +                    ${PERLLIBDIRS}/auto/*/*/*/*/*/.debug \
>                     ${PERLLIBDIRS}/vendor_perl/${PERLVERSION}/auto/*/.debug \
>                     ${PERLLIBDIRS}/vendor_perl/${PERLVERSION}/auto/*/*/.debug \
>                     ${PERLLIBDIRS}/vendor_perl/${PERLVERSION}/auto/*/*/*/.debug \
> +                    ${PERLLIBDIRS}/vendor_perl/${PERLVERSION}/auto/*/*/*/*/.debug \
> +                    ${PERLLIBDIRS}/vendor_perl/${PERLVERSION}/auto/*/*/*/*/*/.debug \
>                     "
> diff --git a/meta/classes/cpan.bbclass b/meta/classes/cpan.bbclass
> index e2bbd2f..8e079e0 100644
> --- a/meta/classes/cpan.bbclass
> +++ b/meta/classes/cpan.bbclass
> @@ -17,7 +17,7 @@ export PERLHOSTLIB = "${STAGING_LIBDIR_NATIVE}/perl-native/perl/${@get_perl_vers
> 
> cpan_do_configure () {
> 	export PERL5LIB="${PERL_ARCHLIB}"
> -	yes '' | perl ${EXTRA_PERLFLAGS} Makefile.PL ${EXTRA_CPANFLAGS}
> +	yes '' | perl ${EXTRA_PERLFLAGS} Makefile.PL INSTALLDIRS=vendor ${EXTRA_CPANFLAGS}
> 
> 	# Makefile.PLs can exit with success without generating a
> 	# Makefile, e.g. in cases of missing configure time
> diff --git a/meta/classes/cpan_build.bbclass b/meta/classes/cpan_build.bbclass
> index 4f648a6..3653748 100644
> --- a/meta/classes/cpan_build.bbclass
> +++ b/meta/classes/cpan_build.bbclass
> @@ -8,6 +8,7 @@ EXTRA_CPAN_BUILD_FLAGS ?= ""
> # Env var which tells perl if it should use host (no) or target (yes) settings
> export PERLCONFIGTARGET = "${@is_target(d)}"
> export PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}"
> +export PERLHOSTLIB = "${STAGING_LIBDIR_NATIVE}/perl-native/perl/${@get_perl_version(d)}/"
> export LD = "${CCLD}"
> 
> cpan_build_do_configure () {
> @@ -24,14 +25,22 @@ cpan_build_do_configure () {
> 				--install_path bindoc=${mandir}/man1 \
> 				--install_path libdoc=${mandir}/man3 \
>                                 ${EXTRA_CPAN_BUILD_FLAGS}
> +
> +	# Build.PLs can exit with success without generating a
> +	# Build, e.g. in cases of missing configure time
> +	# dependencies. This is considered a best practice by
> +	# cpantesters.org. See:
> +	#  * http://wiki.cpantesters.org/wiki/CPANAuthorNotes
> +	#  * http://www.nntp.perl.org/group/perl.qa/2008/08/msg11236.html
> +	[ -e Build ] || bbfatal "No Build was generated by Build.PL"
> }
> 
> cpan_build_do_compile () {
> -        perl Build
> +        perl Build verbose=1
> }
> 
> cpan_build_do_install () {
> -	perl Build install
> +	perl Build install --destdir ${D}
> }
> 
> EXPORT_FUNCTIONS do_configure do_compile do_install
> -- 
> 2.3.8 (Apple Git-58)
> 
> -- 
> Jens Rehsack - rehsack@gmail.com

Since it's two weeks ago since submitted and this patch series fixes several problems how yocto deals with perl module distributions, I'd like to get a more concrete explanation why an infrastructure fix isn't validated during feature freeze for branching.

None of the three patches adds a feature, they all fix broken infrastructure of perl module handling in Yocto which should better now validated than after branching.
Since after freeze the master branch might become unstable for a while, I might not be able to re-submit.

Cheers
-- 
Jens Rehsack - rehsack@gmail.com



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/3] perl: fix Perl5 module builds
  2015-10-28 10:26 ` Jens Rehsack
@ 2015-10-29  7:31   ` Burton, Ross
  2015-10-29  7:39     ` Richard Purdie
  0 siblings, 1 reply; 4+ messages in thread
From: Burton, Ross @ 2015-10-29  7:31 UTC (permalink / raw)
  To: Jens Rehsack; +Cc: OE-core

[-- Attachment #1: Type: text/plain, Size: 896 bytes --]

On 28 October 2015 at 10:26, Jens Rehsack <rehsack@gmail.com> wrote:

> Since it's two weeks ago since submitted and this patch series fixes
> several problems how yocto deals with perl module distributions, I'd like
> to get a more concrete explanation why an infrastructure fix isn't
> validated during feature freeze for branching.
>
> None of the three patches adds a feature, they all fix broken
> infrastructure of perl module handling in Yocto which should better now
> validated than after branching.
> Since after freeze the master branch might become unstable for a while, I
> might not be able to re-submit.
>

These patches are in the current build under consideration for merging in
time for the Jethro release.  Sorry for the lack of feedback on them, this
release has been cursed with autobuilder stability problems which have
taken up a lot of our time.

Ross

[-- Attachment #2: Type: text/html, Size: 1326 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/3] perl: fix Perl5 module builds
  2015-10-29  7:31   ` Burton, Ross
@ 2015-10-29  7:39     ` Richard Purdie
  0 siblings, 0 replies; 4+ messages in thread
From: Richard Purdie @ 2015-10-29  7:39 UTC (permalink / raw)
  To: Burton, Ross; +Cc: OE-core

On Thu, 2015-10-29 at 07:31 +0000, Burton, Ross wrote:
> On 28 October 2015 at 10:26, Jens Rehsack <rehsack@gmail.com> wrote:
>         Since it's two weeks ago since submitted and this patch series
>         fixes several problems how yocto deals with perl module
>         distributions, I'd like to get a more concrete explanation why
>         an infrastructure fix isn't validated during feature freeze
>         for branching.
>
>         None of the three patches adds a feature, they all fix broken
>         infrastructure of perl module handling in Yocto which should
>         better now validated than after branching.
>         Since after freeze the master branch might become unstable for
>         a while, I might not be able to re-submit.

>
> These patches are in the current build under consideration for merging
> in time for the Jethro release.  Sorry for the lack of feedback on
> them, this release has been cursed with autobuilder stability problems
> which have taken up a lot of our time.

Given the last round of autobuilder results, I just merged them.

Cheers,

Richard




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-10-29  7:39 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-08 14:21 [PATCH 1/3] perl: fix Perl5 module builds Jens Rehsack
2015-10-28 10:26 ` Jens Rehsack
2015-10-29  7:31   ` Burton, Ross
2015-10-29  7:39     ` Richard Purdie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox