From f4edc200d3a9645f9674eae0f8d10926680ba4f8 Mon Sep 17 00:00:00 2001 From: Tom Rini Date: Sun, 11 Jun 2017 08:36:31 -0400 Subject: cpan-base.bbclass: Move PERLVERSION and get_perl_version to a new file It is possible for non-CPAN recipes to contain perl modules. These perl modules must reside in the versioned perl library directory in order to work in normal circumstances.. Export this logic to a separate class so that it can be reused without the rest of the cpan logic. Without this, dpkg will not export its perl code to the correct location and will not be found by utilities that expect to use it. Signed-off-by: Tom Rini Signed-off-by: Richard Purdie --- meta/classes/cpan-base.bbclass | 24 +----------------------- meta/classes/perl-version.bbclass | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 23 deletions(-) create mode 100644 meta/classes/perl-version.bbclass (limited to 'meta/classes') diff --git a/meta/classes/cpan-base.bbclass b/meta/classes/cpan-base.bbclass index 55ac052695..577fcd63ce 100644 --- a/meta/classes/cpan-base.bbclass +++ b/meta/classes/cpan-base.bbclass @@ -7,27 +7,7 @@ FILES_${PN} += "${libdir}/perl ${datadir}/perl" DEPENDS += "${@["perl", "perl-native"][(bb.data.inherits_class('native', d))]}" RDEPENDS_${PN} += "${@["perl", ""][(bb.data.inherits_class('native', d))]}" -PERL_OWN_DIR = "${@["", "/perl-native"][(bb.data.inherits_class('native', d))]}" - -# Determine the staged version of perl from the perl configuration file -# Assign vardepvalue, because otherwise signature is changed before and after -# perl is built (from None to real version in config.sh). -get_perl_version[vardepvalue] = "${PERL_OWN_DIR}" -def get_perl_version(d): - import re - cfg = d.expand('${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/config.sh') - try: - f = open(cfg, 'r') - except IOError: - return None - l = f.readlines(); - f.close(); - r = re.compile("^version='(\d*\.\d*\.\d*)'") - for s in l: - m = r.match(s) - if m: - return m.group(1) - return None +inherit perl-version def is_target(d): if not bb.data.inherits_class('native', d): @@ -36,5 +16,3 @@ def is_target(d): PERLLIBDIRS = "${libdir}/perl" PERLLIBDIRS_class-native = "${libdir}/perl-native" -PERLVERSION := "${@get_perl_version(d)}" -PERLVERSION[vardepvalue] = "" diff --git a/meta/classes/perl-version.bbclass b/meta/classes/perl-version.bbclass new file mode 100644 index 0000000000..fafe68a775 --- /dev/null +++ b/meta/classes/perl-version.bbclass @@ -0,0 +1,24 @@ +PERL_OWN_DIR = "${@["", "/perl-native"][(bb.data.inherits_class('native', d))]}" + +# Determine the staged version of perl from the perl configuration file +# Assign vardepvalue, because otherwise signature is changed before and after +# perl is built (from None to real version in config.sh). +get_perl_version[vardepvalue] = "${PERL_OWN_DIR}" +def get_perl_version(d): + import re + cfg = d.expand('${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/config.sh') + try: + f = open(cfg, 'r') + except IOError: + return None + l = f.readlines(); + f.close(); + r = re.compile("^version='(\d*\.\d*\.\d*)'") + for s in l: + m = r.match(s) + if m: + return m.group(1) + return None + +PERLVERSION := "${@get_perl_version(d)}" +PERLVERSION[vardepvalue] = "" -- cgit 1.2.3-korg