diff options
author | Joshua Watt <JPEWhacker@gmail.com> | 2024-05-23 12:26:54 -0600 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2024-06-03 07:47:04 +0100 |
commit | 242be0888c80df082c7f19f2bce6afaaac095d7d (patch) | |
tree | 737517f7a2dbffad88fddffdb486c297d393a8d5 | |
parent | af6d28d2b0abdfcfa70edcc95abd99a3c1a64ac8 (diff) | |
download | poky-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.bbclass | 8 | ||||
-rw-r--r-- | meta/lib/oe/package.py | 25 |
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 |
40 | def write_rpm_perfiledata(srcname, d): | 40 | def 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 | ||
198 | TRANSLATE = ( | ||
199 | ("@", "@at@"), | ||
200 | (" ", "@space@"), | ||
201 | ("\t", "@tab@"), | ||
202 | ("[", "@openbrace@"), | ||
203 | ("]", "@closebrace@"), | ||
204 | ("_", "@underscore@"), | ||
205 | ) | ||
198 | 206 | ||
199 | def file_translate(file): | 207 | def 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 | |
214 | def 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 | ||
208 | def filedeprunner(arg): | 221 | def filedeprunner(arg): |