diff options
author | Xiangyu Chen <xiangyu.chen@windriver.com> | 2023-03-24 16:36:20 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-03-26 18:50:17 +0100 |
commit | 810a71236d4d8f79a3540b08837028162bece722 (patch) | |
tree | 23fd4383f0ccda740ad791f4cb55a2d1f7786765 | |
parent | 765bf36720b95aa005084bdd3cbca4828194d187 (diff) | |
download | poky-810a71236d4d8f79a3540b08837028162bece722.tar.gz |
package: 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: a73e269d3e591a10bb397b94b82e3fb960112d33)
Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/lib/oe/package.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py index c9eb75d852..7a6b31957a 100644 --- a/meta/lib/oe/package.py +++ b/meta/lib/oe/package.py | |||
@@ -1823,18 +1823,18 @@ def process_pkgconfig(pkgfiles, d): | |||
1823 | with open(file, 'r') as f: | 1823 | with open(file, 'r') as f: |
1824 | lines = f.readlines() | 1824 | lines = f.readlines() |
1825 | for l in lines: | 1825 | for l in lines: |
1826 | m = var_re.match(l) | ||
1827 | if m: | ||
1828 | name = m.group(1) | ||
1829 | val = m.group(2) | ||
1830 | pd.setVar(name, pd.expand(val)) | ||
1831 | continue | ||
1832 | m = field_re.match(l) | 1826 | m = field_re.match(l) |
1833 | if m: | 1827 | if m: |
1834 | hdr = m.group(1) | 1828 | hdr = m.group(1) |
1835 | exp = pd.expand(m.group(2)) | 1829 | exp = pd.expand(m.group(2)) |
1836 | if hdr == 'Requires': | 1830 | if hdr == 'Requires': |
1837 | pkgconfig_needed[pkg] += exp.replace(',', ' ').split() | 1831 | pkgconfig_needed[pkg] += exp.replace(',', ' ').split() |
1832 | continue | ||
1833 | m = var_re.match(l) | ||
1834 | if m: | ||
1835 | name = m.group(1) | ||
1836 | val = m.group(2) | ||
1837 | pd.setVar(name, pd.expand(val)) | ||
1838 | 1838 | ||
1839 | for pkg in packages.split(): | 1839 | for pkg in packages.split(): |
1840 | pkgs_file = os.path.join(shlibswork_dir, pkg + ".pclist") | 1840 | pkgs_file = os.path.join(shlibswork_dir, pkg + ".pclist") |