* [OE-core][PATCH 1/2] lib: package: Add file_reverse_translate
@ 2024-05-23 18:26 Joshua Watt
2024-05-23 18:26 ` [OE-core][PATCH 2/2] lib: package: Replace ":" in file names Joshua Watt
0 siblings, 1 reply; 2+ messages in thread
From: Joshua Watt @ 2024-05-23 18:26 UTC (permalink / raw)
To: openembedded-core; +Cc: Joshua Watt
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
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
---
meta/classes-global/package_rpm.bbclass | 8 ++------
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 790ccbfaf0c..474d2491eb0 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):
# Construct per file dependencies file
def write_rpm_perfiledata(srcname, d):
+ import oe.package
workdir = d.getVar('WORKDIR')
packages = d.getVar('PACKAGES')
pkgd = d.getVar('PKGD')
@@ -53,12 +54,7 @@ def write_rpm_perfiledata(srcname, d):
key = "FILE" + varname + ":" + dfile + ":" + pkg
deps = filter_nativesdk_deps(srcname, d.getVar(key) or "")
depends_dict = bb.utils.explode_dep_versions(deps)
- file = dfile.replace("@underscore@", "_")
- file = file.replace("@closebrace@", "]")
- file = file.replace("@openbrace@", "[")
- file = file.replace("@tab@", "\t")
- file = file.replace("@space@", " ")
- file = file.replace("@at@", "@")
+ file = oe.package.file_reverse_translate(dfile)
outfile.write('"' + pkgd + file + '" : "')
for dep in depends_dict:
ver = depends_dict[dep]
diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py
index 1511ba47c42..0fe49c00d6d 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
oe.utils.multiprocess_launch_mp(runstrip, sfiles, max_process)
+TRANSLATE = (
+ ("@", "@at@"),
+ (" ", "@space@"),
+ ("\t", "@tab@"),
+ ("[", "@openbrace@"),
+ ("]", "@closebrace@"),
+ ("_", "@underscore@"),
+)
def file_translate(file):
- ft = file.replace("@", "@at@")
- ft = ft.replace(" ", "@space@")
- ft = ft.replace("\t", "@tab@")
- ft = ft.replace("[", "@openbrace@")
- ft = ft.replace("]", "@closebrace@")
- ft = ft.replace("_", "@underscore@")
+ ft = file
+ for s, replace in TRANSLATE:
+ ft = ft.replace(s, replace)
+
+ return ft
+
+def file_reverse_translate(file):
+ ft = file
+ for s, replace in reversed(TRANSLATE):
+ ft = ft.replace(replace, s)
+
return ft
def filedeprunner(arg):
--
2.43.2
^ permalink raw reply related [flat|nested] 2+ messages in thread* [OE-core][PATCH 2/2] lib: package: Replace ":" in file names
2024-05-23 18:26 [OE-core][PATCH 1/2] lib: package: Add file_reverse_translate Joshua Watt
@ 2024-05-23 18:26 ` Joshua Watt
0 siblings, 0 replies; 2+ messages in thread
From: Joshua Watt @ 2024-05-23 18:26 UTC (permalink / raw)
To: openembedded-core; +Cc: Joshua Watt
The purpose of this translation API is to make sure that the file name
can be used in a bitbake variable without adding special meaning,
therefore the ":" should also be replaced since it is the override
separator
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
---
meta/lib/oe/package.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py
index 0fe49c00d6d..d1303f32bfd 100644
--- a/meta/lib/oe/package.py
+++ b/meta/lib/oe/package.py
@@ -202,6 +202,7 @@ TRANSLATE = (
("[", "@openbrace@"),
("]", "@closebrace@"),
("_", "@underscore@"),
+ (":", "@colon@"),
)
def file_translate(file):
--
2.43.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-05-23 18:27 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-23 18:26 [OE-core][PATCH 1/2] lib: package: Add file_reverse_translate Joshua Watt
2024-05-23 18:26 ` [OE-core][PATCH 2/2] lib: package: Replace ":" in file names Joshua Watt
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.