With rpm v4 in openembedded but on a host with existing /usr/include/rpm/db.h the native build fails to compile.
Signed-off-by: Max Krummenacher <max.krummenac...@toradex.com> --- ...01-don-t-pick-up-bundled-db-from-host-rpm.patch | 51 ++++++++++++++++++++++ meta/recipes-extended/libsolv/libsolv_0.6.26.bb | 3 +- 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-extended/libsolv/libsolv/0001-don-t-pick-up-bundled-db-from-host-rpm.patch changes in V2: - instead of unconditionally assume db is not bundled evaluate the actually linked librpm.so - fix commit text to include that libsolv-native is failing (but not libsolv and nativesdk-libsolv) diff --git a/meta/recipes-extended/libsolv/libsolv/0001-don-t-pick-up-bundled-db-from-host-rpm.patch b/meta/recipes-extended/libsolv/libsolv/0001-don-t-pick-up-bundled-db-from-host-rpm.patch new file mode 100644 index 0000000..f99cdca --- /dev/null +++ b/meta/recipes-extended/libsolv/libsolv/0001-don-t-pick-up-bundled-db-from-host-rpm.patch @@ -0,0 +1,51 @@ +From f815c166f08f8a0a257630e91c0bcc20409f42cf Mon Sep 17 00:00:00 2001 +From: Max Krummenacher <max.krummenac...@toradex.com> +Date: Sun, 7 May 2017 20:28:11 +0100 +Subject: [PATCH] don't pick up bundled db from host rpm + +For libsolv-native with rpm v4 in openembedded but on a host with +existing /usr/include/rpm/db.h the build is configured to have +HAVE_RPM_DB_H because of the existing header file from the host, +but linking against the librpm.so in recipe-sysroot-native fails. + +Check for a bundled db by testing if librpm.so provides one of +the db functions. + +Fixes the following link errors: +| ../ext/libsolvext.so.0: undefined reference to `db_create_rpmdb' +| ../ext/libsolvext.so.0: undefined reference to `db_env_create_rpmdb' + +Observed on a openSUSE Leap 42.1 build host with rpm-devel installed. + +Upstream-Status: Inappropriate [oe build specific] + +Signed-off-by: Max Krummenacher <max.krummenac...@toradex.com> +--- + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 838f9d0..1ded881 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -185,7 +185,7 @@ IF (ENABLE_RPMDB) + SET (ENABLE_RPMPKG ON) + ENDIF (ENABLE_RPMDB) + +-INCLUDE (CheckIncludeFile) ++INCLUDE (CheckLibraryExists) + IF (ENABLE_RPMDB) + FIND_LIBRARY (RPMDB_LIBRARY NAMES rpmdb) + +@@ -206,7 +206,7 @@ IF (ENABLE_RPMDB) + ENDIF (RPM5) + + # check if rpm contains a bundled berkeley db +- CHECK_INCLUDE_FILE(rpm/db.h HAVE_RPM_DB_H) ++ CHECK_LIBRARY_EXISTS(rpm.so db_create_rpmdb "" HAVE_RPM_DB_H) + IF (NOT HAVE_RPM_DB_H) + FIND_LIBRARY (DB_LIBRARY NAMES db) + IF (DB_LIBRARY) +-- +2.12.0 + diff --git a/meta/recipes-extended/libsolv/libsolv_0.6.26.bb b/meta/recipes-extended/libsolv/libsolv_0.6.26.bb index a33c251..ccd9cfa 100644 --- a/meta/recipes-extended/libsolv/libsolv_0.6.26.bb +++ b/meta/recipes-extended/libsolv/libsolv_0.6.26.bb @@ -8,7 +8,8 @@ LIC_FILES_CHKSUM = "file://LICENSE.BSD;md5=62272bd11c97396d4aaf1c41bc11f7d8" DEPENDS = "expat zlib rpm" SRC_URI = "git://github.com/openSUSE/libsolv.git \ - " + file://0001-don-t-pick-up-bundled-db-from-host-rpm.patch \ + " SRC_URI_append_libc-musl = " file://0001-Add-fallback-fopencookie-implementation.patch \ file://0002-Fixes-to-internal-fopencookie-implementation.patch \ " -- 2.9.3 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core