summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXiangyu Chen <xiangyu.chen@windriver.com>2023-03-24 16:36:20 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-03-26 18:50:17 +0100
commit810a71236d4d8f79a3540b08837028162bece722 (patch)
tree23fd4383f0ccda740ad791f4cb55a2d1f7786765
parent765bf36720b95aa005084bdd3cbca4828194d187 (diff)
downloadpoky-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.py12
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")