]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
rpm: keep leading `/' from sed operation
authorHongxu Jia <hongxu.jia@windriver.com>
Mon, 8 Sep 2025 03:17:19 +0000 (20:17 -0700)
committerSteve Sakoman <steve@sakoman.com>
Fri, 12 Sep 2025 16:53:54 +0000 (09:53 -0700)
For /usr/lib/rpm/macros, Yocto explicitly set OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM
= "ONLY" [1][2] to search tools from CMAKE_FIND_ROOT_PATH [5] which locates in
native recipe sysroot or HOSTTOOLS_DIR. If found in native recipe sysroot or
HOSTTOOLS_DIR, the sed operation removed leading `/'

root@qemux86-64:~# vi /usr/lib/rpm/macros
...
%__xz                   usr/bin/xz
%__make                 usr/bin/make
%__zstd                 usr/bin/zstd
%__quilt                usr/bin/quilt
%__patch                usr/bin/patch
...

root@qemux86-64:~# rpm --eval "%{__xz} %{__make} %{__zstd} %{__quilt} %{__patch}"
usr/bin/xz usr/bin/make usr/bin/zstd usr/bin/quilt usr/bin/patch

This commit keeps leading `/' from sed operation, and similar reason for
/usr/lib/cmake/rpm/rpm-targets.cmake

After applying this commit:
root@qemux86-64:~# rpm --eval "%{__xz} %{__make} %{__zstd} %{__quilt} %{__patch}"
/usr/bin/xz /usr/bin/make /usr/bin/zstd /usr/bin/quilt /usr/bin/patch

[1] https://git.openembedded.org/openembedded-core/commit/?id=f4ea12f6635125ee793f4dd801c538c0186f9dc3
[2] https://cmake.org/cmake/help/latest/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.html

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(master rev: 0d0773879ab9520c475c4a8c930b2e663de0e032)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
meta/recipes-devtools/rpm/rpm_4.20.0.bb

index 4ded77e8ce9ca47547495f892ca454a2d8d0c0ac..002a91179d1e85db39727e2c0627eb607d3520cf 100644 (file)
@@ -139,10 +139,10 @@ do_install:append:class-nativesdk() {
 }
 
 do_install:append () {
-       sed -i -e 's:${HOSTTOOLS_DIR}/::g' \
-            -e 's:${STAGING_DIR_NATIVE}/::g' \
+       sed -i -e 's:${HOSTTOOLS_DIR}::g' \
+            -e 's:${STAGING_DIR_NATIVE}::g' \
            ${D}/${libdir}/rpm/macros
-       sed -i -e 's:${RECIPE_SYSROOT}/::g' \
+       sed -i -e 's:${RECIPE_SYSROOT}::g' \
            ${D}/${libdir}/cmake/rpm/rpm-targets.cmake
 
 }