From: Jens Rehsack <rehsack@gmail.com>
To: OE-core <openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 1/3] perl: fix Perl5 module builds
Date: Wed, 28 Oct 2015 11:26:18 +0100 [thread overview]
Message-ID: <611CD789-ACC1-47CE-9503-2C40F26E4BB1@gmail.com> (raw)
In-Reply-To: <C5B806CA-2384-4924-8FA7-8BC6F146416A@gmail.com>
> 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
next prev parent reply other threads:[~2015-10-28 10:26 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-08 14:21 [PATCH 1/3] perl: fix Perl5 module builds Jens Rehsack
2015-10-28 10:26 ` Jens Rehsack [this message]
2015-10-29 7:31 ` Burton, Ross
2015-10-29 7:39 ` Richard Purdie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=611CD789-ACC1-47CE-9503-2C40F26E4BB1@gmail.com \
--to=rehsack@gmail.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.