mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 00:20:08 +00:00
package.bbclass: moving field data process before variable process in process_pkgconfig
Currently, the latest version abseil-cpp contains a new library named "absl_log_internal_format", it's
basic package config(.pc file) as below:
prefix=/usr
exec_prefix=${prefix}
......
Requires: absl_config = 20230125, absl_core_headers = 20230125, absl_log_internal_append_truncated = 20230125,
absl_log_internal_config = 20230125, absl_log_internal_globals = 20230125, absl_log_severity = 20230125,
absl_strings = 20230125, absl_str_format = 20230125, absl_time = 20230125, absl_span = 20230125
......
Normally, the process_pkgconfig() would process variable data before field data in a .pc file, but in the
absl_log_internal_format, the field data in "Requires" section contains "xxxx = xxxx" format, the
process_pkgconfig() treats them as normal variable and using the setVar() in bitbake's data_smart.py
try to process. The absl_log_internal_format field data contains "_append_", this hit the setVar() checking
and finally bitbake stop building and reporting an error as below:
"Variable xxx contains an operation using the old override syntax. Please convert this layer/metadata before attempting to use with a newer bitbake."
This patch move the field data process before variable process to avoid the process_pkgconfig() treat the field
data as variable.
(From OE-Core rev: e7d3e02a624f7ce23d012bb11ad1df2049066b37)
Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
(cherry picked from commit a73e269d3e591a10bb397b94b82e3fb960112d33)
Signed-off-by: Clément Péron <peron.clem@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
committed by
Steve Sakoman
parent
55e4c90abf
commit
6539812e23
@@ -2178,18 +2178,18 @@ python package_do_pkgconfig () {
|
|||||||
with open(file, 'r') as f:
|
with open(file, 'r') as f:
|
||||||
lines = f.readlines()
|
lines = f.readlines()
|
||||||
for l in lines:
|
for l in lines:
|
||||||
m = var_re.match(l)
|
|
||||||
if m:
|
|
||||||
name = m.group(1)
|
|
||||||
val = m.group(2)
|
|
||||||
pd.setVar(name, pd.expand(val))
|
|
||||||
continue
|
|
||||||
m = field_re.match(l)
|
m = field_re.match(l)
|
||||||
if m:
|
if m:
|
||||||
hdr = m.group(1)
|
hdr = m.group(1)
|
||||||
exp = pd.expand(m.group(2))
|
exp = pd.expand(m.group(2))
|
||||||
if hdr == 'Requires':
|
if hdr == 'Requires':
|
||||||
pkgconfig_needed[pkg] += exp.replace(',', ' ').split()
|
pkgconfig_needed[pkg] += exp.replace(',', ' ').split()
|
||||||
|
continue
|
||||||
|
m = var_re.match(l)
|
||||||
|
if m:
|
||||||
|
name = m.group(1)
|
||||||
|
val = m.group(2)
|
||||||
|
pd.setVar(name, pd.expand(val))
|
||||||
|
|
||||||
for pkg in packages.split():
|
for pkg in packages.split():
|
||||||
pkgs_file = os.path.join(shlibswork_dir, pkg + ".pclist")
|
pkgs_file = os.path.join(shlibswork_dir, pkg + ".pclist")
|
||||||
|
|||||||
Reference in New Issue
Block a user