The previous fix for this same issue (OE-Core rev f31f6a70ec24e8c9515d69c5092e15effc5e7d4d) was not sufficient - we are setting the PERLVERSION variable from the get_perl_version function, but we're setting it using immediate expansion; thus the value is going into the signature and is still different between the time the recipe is cached on an empty TMPDIR and after perl is in the sysroot and we run bitbake -S perf. We could remove the immediate expansion, but that would mean the get_perl_version function would be called more often, so just set vardepvalue on the PERLVERSION variable to fix the problem instead. (From OE-Core rev: 262a62dff2d7f0902d717c734fcf5563e96a38bc) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
56 lines
1.8 KiB
Text
56 lines
1.8 KiB
Text
#
|
|
# cpan-base providers various perl related information needed for building
|
|
# cpan modules
|
|
#
|
|
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
|
|
|
|
# Determine where the library directories are
|
|
def perl_get_libdirs(d):
|
|
libdir = d.getVar('libdir', True)
|
|
if is_target(d) == "no":
|
|
libdir += '/perl-native'
|
|
libdir += '/perl'
|
|
return libdir
|
|
|
|
def is_target(d):
|
|
if not bb.data.inherits_class('native', d):
|
|
return "yes"
|
|
return "no"
|
|
|
|
PERLLIBDIRS := "${@perl_get_libdirs(d)}"
|
|
PERLVERSION := "${@get_perl_version(d)}"
|
|
PERLVERSION[vardepvalue] = ""
|
|
|
|
FILES_${PN}-dbg += "${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 \
|
|
"
|