@@ -80,6 +80,7 @@ PTESTS_FAST = "\
python3-webcolors \
qemu \
quilt \
+ rpm-sequoia \
sed \
slang \
wayland \
new file mode 100644
@@ -0,0 +1,29 @@
+From 07c738e8731cb658a15c19e0afa023333da4b431 Mon Sep 17 00:00:00 2001
+From: Ines KCHELFI <ines.kchelfi@smile.fr>
+Date: Thu, 10 Apr 2025 16:03:24 +0200
+Subject: [PATCH] Force the use of librpm_sequoia.so.1 instead of librpm_sequoia.so
+
+Signed-off-by: Ines KCHELFI <ines.kchelfi@smile.fr>
+Upstream-Status: Inappropriate [configuration specific to Yocto]
+---
+ tests/symbols.rs | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/symbols.rs b/tests/symbols.rs
+index dc4a42c..9f7b89c 100644
+--- a/tests/symbols.rs
++++ b/tests/symbols.rs
+@@ -19,12 +19,12 @@ fn symbols() -> anyhow::Result<()> {
+ let mut build_dir = out_dir;
+ let lib = loop {
+ let mut lib = build_dir.clone();
+- lib.push("librpm_sequoia.so");
++ lib.push("librpm_sequoia.so.1");
+ if lib.exists() {
+ break lib;
+ }
+ if ! build_dir.pop() {
+- panic!("Failed to find librpm_sequoia.so");
++ panic!("Failed to find librpm_sequoia.so.1");
+ }
+ };
new file mode 100644
@@ -0,0 +1,35 @@
+From 590937523deea4ad2a2ee0e1ae4412a8f59e0170 Mon Sep 17 00:00:00 2001
+From: Ines KCHELFI <ines.kchelfi@smile.fr>
+Date: Thu, 10 Apr 2025 15:14:11 +0200
+Subject: [PATCH] Use optional env vars to force runtime paths in tests
+
+Signed-off-by: Ines KCHELFI <ines.kchelfi@smile.fr>
+Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm-sequoia/pull/86]
+---
+ tests/symbols.rs | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/tests/symbols.rs b/tests/symbols.rs
+index c16dd9b..dc4a42c 100644
+--- a/tests/symbols.rs
++++ b/tests/symbols.rs
+@@ -14,7 +14,8 @@ fn symbols() -> anyhow::Result<()> {
+ // OUT_DIR gives us
+ // `/tmp/rpm-sequoia/debug/build/rpm-sequoia-HASH/out`.
+
+- let out_dir = PathBuf::from(env!("OUT_DIR"));
++ let out_dir = PathBuf::from(option_env!("FORCE_RUNTIME_PATH_LIB")
++ .unwrap_or(env!("OUT_DIR")));
+ let mut build_dir = out_dir;
+ let lib = loop {
+ let mut lib = build_dir.clone();
+@@ -53,7 +54,8 @@ fn symbols() -> anyhow::Result<()> {
+ }
+
+ let mut expected_symbols_txt_fn
+- = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
++ = PathBuf::from(option_env!("FORCE_RUNTIME_PATH_SRC")
++ .unwrap_or(env!("CARGO_MANIFEST_DIR")));
+ expected_symbols_txt_fn.push("src/symbols.txt");
+
+ let mut expected_symbols_txt = Vec::new();
@@ -10,9 +10,13 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f0ff5ff7747cf7d394079c6ae87f5f0c"
DEPENDS = "openssl"
-inherit pkgconfig rust cargo cargo-update-recipe-crates
+inherit pkgconfig rust cargo cargo-update-recipe-crates ptest-cargo
+
+SRC_URI = "git://github.com/rpm-software-management/rpm-sequoia.git;protocol=https;branch=main \
+ file://0001-Use-optional-env-vars-to-force-runtime-paths-in-test.patch \
+ file://0001-Force-the-use-of-librpm_sequoia.so.1-instead-of-libr.patch \
+"
-SRC_URI = "git://github.com/rpm-software-management/rpm-sequoia.git;protocol=https;branch=main"
SRCREV = "0667e04ae7fb8cf0490919978d69883d16400e41"
@@ -41,6 +45,13 @@ do_compile:prepend () {
export LIBDIR="${libdir}"
}
+# By default, ptest binaries contain host build dir paths.
+# Use custom environment variables to force these paths to match the target instead.
+do_compile_ptest_cargo:prepend() {
+ os.environ["FORCE_RUNTIME_PATH_LIB"] = d.getVar("libdir")
+ os.environ["FORCE_RUNTIME_PATH_SRC"] = d.getVar("PTEST_PATH")
+}
+
do_install:append () {
# Move the library to the correct location expected by rpm-sequoia.pc
mkdir -p ${D}${libdir}
@@ -54,6 +65,14 @@ do_install:append () {
install -m644 ${S}/target/release/rpm-sequoia.pc ${D}${libdir}/pkgconfig
}
+do_install_ptest:append () {
+ install -d ${D}${PTEST_PATH}/src
+ install -m 644 ${S}/src/symbols.txt ${D}${PTEST_PATH}/src/symbols.txt
+}
+
+# Tests need objdump
+RDEPENDS:${PN}-ptest += "binutils"
+
RDEPENDS:${PN} = "rpm-sequoia-crypto-policy"
PACKAGE_WRITE_DEPS += "rpm-sequoia-crypto-policy-native"