summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoshua Watt <JPEWhacker@gmail.com>2024-05-23 12:26:54 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2024-06-03 07:47:04 +0100
commit242be0888c80df082c7f19f2bce6afaaac095d7d (patch)
tree737517f7a2dbffad88fddffdb486c297d393a8d5
parentaf6d28d2b0abdfcfa70edcc95abd99a3c1a64ac8 (diff)
downloadpoky-242be0888c80df082c7f19f2bce6afaaac095d7d.tar.gz
lib: package: Add file_reverse_translate
Adds API to reverse the removal of special characters from file names so it can be correctly done in multiple places without open-coding it. Replace the translation done in the package_rpm.bbclass with the new API (From OE-Core rev: 4cb7e93c624987d146aaf626ce8e99568e938a70) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes-global/package_rpm.bbclass8
-rw-r--r--meta/lib/oe/package.py25
2 files changed, 21 insertions, 12 deletions
diff --git a/meta/classes-global/package_rpm.bbclass b/meta/classes-global/package_rpm.bbclass
index 790ccbfaf0..474d2491eb 100644
--- a/meta/classes-global/package_rpm.bbclass
+++ b/meta/classes-global/package_rpm.bbclass
@@ -38,6 +38,7 @@ def filter_nativesdk_deps(srcname, var):
38 38
39# Construct per file dependencies file 39# Construct per file dependencies file
40def write_rpm_perfiledata(srcname, d): 40def write_rpm_perfiledata(srcname, d):
41 import oe.package
41 workdir = d.getVar('WORKDIR') 42 workdir = d.getVar('WORKDIR')
42 packages = d.getVar('PACKAGES') 43 packages = d.getVar('PACKAGES')
43 pkgd = d.getVar('PKGD') 44 pkgd = d.getVar('PKGD')
@@ -53,12 +54,7 @@ def write_rpm_perfiledata(srcname, d):
53 key = "FILE" + varname + ":" + dfile + ":" + pkg 54 key = "FILE" + varname + ":" + dfile + ":" + pkg
54 deps = filter_nativesdk_deps(srcname, d.getVar(key) or "") 55 deps = filter_nativesdk_deps(srcname, d.getVar(key) or "")
55 depends_dict = bb.utils.explode_dep_versions(deps) 56 depends_dict = bb.utils.explode_dep_versions(deps)
56 file = dfile.replace("@underscore@", "_") 57 file = oe.package.file_reverse_translate(dfile)
57 file = file.replace("@closebrace@", "]")
58 file = file.replace("@openbrace@", "[")
59 file = file.replace("@tab@", "\t")
60 file = file.replace("@space@", " ")
61 file = file.replace("@at@", "@")
62 outfile.write('"' + pkgd + file + '" : "') 58 outfile.write('"' + pkgd + file + '" : "')
63 for dep in depends_dict: 59 for dep in depends_dict:
64 ver = depends_dict[dep] 60 ver = depends_dict[dep]
diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py
index 1511ba47c4..0fe49c00d6 100644
--- a/meta/lib/oe/package.py
+++ b/meta/lib/oe/package.py
@@ -195,14 +195,27 @@ def strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, max_process, qa_alre
195 195
196 oe.utils.multiprocess_launch_mp(runstrip, sfiles, max_process) 196 oe.utils.multiprocess_launch_mp(runstrip, sfiles, max_process)
197 197
198TRANSLATE = (
199 ("@", "@at@"),
200 (" ", "@space@"),
201 ("\t", "@tab@"),
202 ("[", "@openbrace@"),
203 ("]", "@closebrace@"),
204 ("_", "@underscore@"),
205)
198 206
199def file_translate(file): 207def file_translate(file):
200 ft = file.replace("@", "@at@") 208 ft = file
201 ft = ft.replace(" ", "@space@") 209 for s, replace in TRANSLATE:
202 ft = ft.replace("\t", "@tab@") 210 ft = ft.replace(s, replace)
203 ft = ft.replace("[", "@openbrace@") 211
204 ft = ft.replace("]", "@closebrace@") 212 return ft
205 ft = ft.replace("_", "@underscore@") 213
214def file_reverse_translate(file):
215 ft = file
216 for s, replace in reversed(TRANSLATE):
217 ft = ft.replace(replace, s)
218
206 return ft 219 return ft
207 220
208def filedeprunner(arg): 221def filedeprunner(arg):