mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00

The perl-version.bbclass executes functions which can depend on variables potentially populated by native, such as `libdir`. The sanity `native-last` suggests that recipes should `inherit native` last, but when that is done the variables like PERLVERSION end up as `None`, since `${STAGING_LIBDIR}` needs `${libdir}` which is not yet populated (by native). All recipes in poky and widely used meta-layers have already been updated to use the functions directly instead of relying on these problematic variables. Delete the variables so that future recipes do not make the mistake of using them. Related: openbmc/openbmc#3770 (From OE-Core rev: 9351b6e7fab5669340bb062b9c84fb4faa3dce0b) Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
67 lines
1.8 KiB
Plaintext
67 lines
1.8 KiB
Plaintext
#
|
|
# Copyright OpenEmbedded Contributors
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
|
|
PERL_OWN_DIR = ""
|
|
|
|
# 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}/perl5/config.sh')
|
|
try:
|
|
f = open(cfg, 'r')
|
|
except IOError:
|
|
return None
|
|
l = f.readlines();
|
|
f.close();
|
|
r = re.compile(r"^version='(\d*\.\d*\.\d*)'")
|
|
for s in l:
|
|
m = r.match(s)
|
|
if m:
|
|
return m.group(1)
|
|
return None
|
|
|
|
|
|
# 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
|
|
|
|
# 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
|