]> code.ossystems Code Review - openembedded-core.git/commitdiff
meta/classes: adjust perl-related classes to the new recipes
authorAlexander Kanavin <alex.kanavin@gmail.com>
Sun, 2 Dec 2018 11:52:00 +0000 (12:52 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 11 Jan 2019 10:29:37 +0000 (10:29 +0000)
This mostly means tweaking the paths to match upstream defaults.

get_perl_arch() functions are taken from the patch by Jens Rehsack:
http://lists.openembedded.org/pipermail/openembedded-core/2018-November/276546.html

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
meta/classes/cpan-base.bbclass
meta/classes/cpan.bbclass
meta/classes/cpan_build.bbclass
meta/classes/perl-version.bbclass

index 577fcd63ce9fb91a5350be9e9623b985797b2b43..867edf87073f49b732dbe0e5cf915cc914382b03 100644 (file)
@@ -2,7 +2,7 @@
 # cpan-base providers various perl related information needed for building
 # cpan modules
 #
-FILES_${PN} += "${libdir}/perl ${datadir}/perl"
+FILES_${PN} += "${libdir}/perl5 ${datadir}/perl5"
 
 DEPENDS  += "${@["perl", "perl-native"][(bb.data.inherits_class('native', d))]}"
 RDEPENDS_${PN} += "${@["perl", ""][(bb.data.inherits_class('native', d))]}"
@@ -14,5 +14,5 @@ def is_target(d):
         return "yes"
     return "no"
 
-PERLLIBDIRS = "${libdir}/perl"
-PERLLIBDIRS_class-native = "${libdir}/perl-native"
+PERLLIBDIRS = "${libdir}/perl5"
+PERLLIBDIRS_class-native = "${libdir}/perl5"
index 511fe3fb924cca522e9e8889e52e70ca15fe2282..e9908ae4b816798b59794973173c52d19b4767ac 100644 (file)
@@ -10,10 +10,11 @@ EXTRA_PERLFLAGS ?= ""
 export PERLCONFIGTARGET = "${@is_target(d)}"
 
 # Env var which tells perl where the perl include files are
-export PERL_INC = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(d)}/CORE"
-export PERL_LIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/${@get_perl_version(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 PERL_INC = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}/${@get_perl_arch(d)}/CORE"
+export PERL_LIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}"
+export PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}/${@get_perl_arch(d)}"
+export PERLHOSTLIB = "${STAGING_LIBDIR_NATIVE}/perl5/${@get_perl_version(d)}/"
+export PERLHOSTARCHLIB = "${STAGING_LIBDIR_NATIVE}/perl5/${@get_perl_version(d)}/${@get_perl_hostarch(d)}/"
 
 cpan_do_configure () {
        yes '' | perl ${EXTRA_PERLFLAGS} Makefile.PL INSTALLDIRS=vendor NO_PERLLOCAL=1 NO_PACKLIST=1 PERL=$(which perl) ${EXTRA_CPANFLAGS}
@@ -27,7 +28,7 @@ cpan_do_configure () {
        [ -e Makefile ] || bbfatal "No Makefile was generated by Makefile.PL"
 
        if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then
-               . ${STAGING_LIBDIR}${PERL_OWN_DIR}/perl/config.sh
+               . ${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/config.sh
                # Use find since there can be a Makefile generated for each Makefile.PL
                for f in `find -name Makefile.PL`; do
                        f2=`echo $f | sed -e 's/.PL//'`
index 9a2ad895ef44db0a3b0ad01010596b78258e27e3..f3fb4666ef33fa2bf56f81d3e81f561c12a7c49a 100644 (file)
@@ -7,14 +7,15 @@ 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 PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}/${@get_perl_arch(d)}"
+export PERLHOSTLIB = "${STAGING_LIBDIR_NATIVE}/perl5/${@get_perl_version(d)}/"
+export PERLHOSTARCHLIB = "${STAGING_LIBDIR_NATIVE}/perl5/${@get_perl_version(d)}/${@get_perl_hostarch(d)}/"
 export LD = "${CCLD}"
 
 cpan_build_do_configure () {
        if [ "${@is_target(d)}" = "yes" ]; then
                # build for target
-               . ${STAGING_LIBDIR}/perl/config.sh
+               . ${STAGING_LIBDIR}/perl5/config.sh
        fi
 
        perl Build.PL --installdirs vendor --destdir ${D} \
index bafd96518a5058bdcf626e26ccd745d5742696e1..84b67b81806d78354248951357caeff5d5bb569d 100644 (file)
@@ -1,4 +1,4 @@
-PERL_OWN_DIR = "${@["", "/perl-native"][(bb.data.inherits_class('native', d))]}"
+PERL_OWN_DIR = ""
 
 # Determine the staged version of perl from the perl configuration file
 # Assign vardepvalue, because otherwise signature is changed before and after
@@ -6,7 +6,7 @@ PERL_OWN_DIR = "${@["", "/perl-native"][(bb.data.inherits_class('native', d))]}"
 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')
+    cfg = d.expand('${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/config.sh')
     try:
         f = open(cfg, 'r')
     except IOError:
@@ -22,3 +22,45 @@ def get_perl_version(d):
 
 PERLVERSION := "${@get_perl_version(d)}"
 PERLVERSION[vardepvalue] = ""
+
+
+# Determine the staged arch 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).
+def get_perl_arch(d):
+    import re
+    cfg = d.expand('${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/config.sh')
+    try:
+        f = open(cfg, 'r')
+    except IOError:
+        return None
+    l = f.readlines();
+    f.close();
+    r = re.compile("^archname='([^']*)'")
+    for s in l:
+        m = r.match(s)
+        if m:
+            return m.group(1)
+    return None
+
+PERLARCH := "${@get_perl_arch(d)}"
+PERLARCH[vardepvalue] = ""
+
+# Determine the staged arch of perl-native 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).
+def get_perl_hostarch(d):
+    import re
+    cfg = d.expand('${STAGING_LIBDIR_NATIVE}/perl5/config.sh')
+    try:
+        f = open(cfg, 'r')
+    except IOError:
+        return None
+    l = f.readlines();
+    f.close();
+    r = re.compile("^archname='([^']*)'")
+    for s in l:
+        m = r.match(s)
+        if m:
+            return m.group(1)
+    return None