sat-solver: upgrade to newer git version

This works with rpm 5.4.0

Signed-off-by: Qing He <qing.he@intel.com>

Update the CMAKE configuration file to find the proper DB library as used
by RPM5 within Poky.

Disable checking for Fedora and Debian, as this might lead to incorrect
results.

Merge the dso_linking_change_build_fix with the other cmake changes.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
This commit is contained in:
Mark Hatle
2011-01-15 22:05:29 -06:00
committed by Saul Wold
parent ffd12fc476
commit 2c32f494cc
6 changed files with 71 additions and 40 deletions

View File

@@ -160,7 +160,7 @@ SRCREV_pn-qemu-nativesdk ??= "${QEMUSRCREV}"
SRCREV_pn-qemu ??= "${QEMUSRCREV}"
SRCREV_pn-qemugl ??= "d888bbc723c00d197d34a39b5b7448660ec1b1c0"
SRCREV_pn-qemugl-nativesdk ??= "d888bbc723c00d197d34a39b5b7448660ec1b1c0"
SRCREV_pn-sat-solver = "aa799f7bae0ec055e0e527203635001bb7346dbc"
SRCREV_pn-sat-solver = "9e1f2a097965debebc69cebf8ed73c6ff31a5220"
SRCREV_pn-screenshot ??= "292"
SRCREV_pn-settings-daemon ??= "0f174f463dfed500b65533e249cd22942e439c77"
SRCREV_pn-swabber-native ??= "a0792390c5d6d5a5bade7ab155c80eef3f30fa52"

View File

@@ -2,23 +2,56 @@ check rpm
not building docs (need oxygen)
8/19/2010 - created by Qing He <qing.he@intel.com>
1/24/2011 - Disable Fedora/Debian checking/settings by Mark Hatle <mark.hatle@windriver.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 24234db..69413e4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -50,6 +50,10 @@ MESSAGE(STATUS "Enabling multi dist support")
@@ -35,22 +35,15 @@
FIND_PACKAGE(Check REQUIRED)
FIND_PACKAGE(ZLIB REQUIRED)
-IF ( FEDORA )
-MESSAGE(STATUS "Building for Fedora")
-ADD_DEFINITIONS( -DFEDORA )
-ENDIF ( FEDORA)
-
-IF ( DEBIAN )
-MESSAGE(STATUS "Building for Debian")
-ADD_DEFINITIONS( -DDEBIAN -DDEBIAN_SEMANTICS)
-ENDIF ( DEBIAN )
-
IF ( MULTI_SEMANTICS )
MESSAGE(STATUS "Enabling multi dist support")
ADD_DEFINITIONS( -DMULTI_SEMANTICS)
ENDIF ( MULTI_SEMANTICS )
-IF ( NOT DEBIAN )
+FIND_PACKAGE(PkgConfig REQUIRED)
+PKG_CHECK_MODULES(RPM REQUIRED rpm)
+INCLUDE_DIRECTORIES( ${RPM_INCLUDE_DIRS} )
+
IF ( NOT DEBIAN )
FIND_LIBRARY(RPMDB_LIBRARY NAMES rpmdb)
IF ( NOT RPMDB_LIBRARY )
@@ -159,22 +163,7 @@ ADD_SUBDIRECTORY(tools)
FIND_LIBRARY(RPMDB_LIBRARY NAMES rpm)
@@ -59,13 +52,14 @@
IF ( RPMIO_LIBRARY )
SET( RPMDB_LIBRARY ${RPMIO_LIBRARY} ${RPMDB_LIBRARY} )
ENDIF ( RPMIO_LIBRARY )
-IF ( FEDORA )
+FIND_LIBRARY(RPMMISC_LIBRARY NAMES rpmmisc)
+IF ( RPMMISC_LIBRARY )
+SET( RPMDB_LIBRARY ${RPMMISC_LIBRARY} ${RPMDB_LIBRARY} )
+ENDIF ( RPMMISC_LIBRARY )
FIND_LIBRARY(DB_LIBRARY NAMES db)
IF ( DB_LIBRARY )
SET( RPMDB_LIBRARY ${DB_LIBRARY} ${RPMDB_LIBRARY} )
ENDIF ( DB_LIBRARY )
-ENDIF ( FEDORA )
-ENDIF ( NOT DEBIAN )
SET( PACKAGE "satsolver" )
SET( VERSION "${LIBSATSOLVER_MAJOR}.${LIBSATSOLVER_MINOR}.${LIBSATSOLVER_PATCH}" )
@@ -159,22 +153,7 @@
ADD_SUBDIRECTORY(applayer)
ADD_SUBDIRECTORY(tests)
ADD_SUBDIRECTORY(examples)

View File

@@ -0,0 +1,24 @@
RPM no longer includes an internal version of db, it now relies on the system
version. The system version in Poky is available at /usr/include/db51
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
rebased to sat-solver commit 9e1f2a097965debebc69cebf8ed73c6ff31a5220
Signed-off-by: Qing He <qing.he@intel.com>
--- git/ext/repo_rpmdb.c.orig 2011-01-06 10:46:37.369900542 -0600
+++ git/ext/repo_rpmdb.c 2011-01-06 10:48:35.482919434 -0600
@@ -29,11 +29,7 @@
#include <rpm/rpmdb.h>
#ifndef DB_CREATE
-# ifdef FEDORA
-# include <db.h>
-# else
-# include <rpm/db.h>
-# endif
+# include <db.h>
#endif
#include "pool.h"

View File

@@ -1,31 +0,0 @@
After adding dso patch to gcc, the linking of libraries has to be explicit.
Following error caused by dso patch is fixed for this patch.
| make[2]: Entering directory `/disk0/pokybuild/build1/tmp/work/i586-poky-linux/sat-solver-0.0-git0+aa799f7bae0ec055e0e527203635001bb7346dbc-r1/git'^M
| Linking C executable findfileconflicts^M
| cd /disk0/pokybuild/build1/tmp/work/i586-poky-linux/sat-solver-0.0-git0+aa799f7bae0ec055e0e527203635001bb7346dbc-r1/git/tools && /disk0/pokybuild/build1/tmp/sysroots/x86_64-linux/usr/bin/cmake -E cmake_link_script CMakeFiles/findfileconflicts.dir/link.txt --verbose=1^M
| /disk0/pokybuild/build1/tmp/sysroots/x86_64-linux/usr/bin/i586-poky-linux/i586-poky-linux-gcc -march=i586 --sysroot=/disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux -Werror -Wall -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed CMakeFiles/findfileconflicts.dir/findfileconflicts.o -o findfileconflicts -rdynamic ../ext/libsatsolverext.a ../src/libsatsolver.a -lrpmio -lrpmdb^M
| /disk0/pokybuild/build1/tmp/sysroots/x86_64-linux/usr/libexec/i586-poky-linux/gcc/i586-poky-linux/4.5.1/ld: [: invalid DSO for symbol `db_env_create_rpmdb@@LIBRPMMISC_0' definition^M
| /disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux/usr/lib/librpmmisc-5.0.so: could not read symbols: Bad value^M
| collect2: ld returned 1 exit status^M
| make[2]: *** [tools/findfileconflicts] Error 1^M
Nitin A Kamble <nitin.a.kamble@intel.com>
Date: 2011/01/11
Index: git/CMakeLists.txt
===================================================================
--- git.orig/CMakeLists.txt
+++ git/CMakeLists.txt
@@ -63,6 +63,10 @@ FIND_LIBRARY(RPMIO_LIBRARY NAMES rpmio)
IF ( RPMIO_LIBRARY )
SET( RPMDB_LIBRARY ${RPMIO_LIBRARY} ${RPMDB_LIBRARY} )
ENDIF ( RPMIO_LIBRARY )
+FIND_LIBRARY(RPMMISC_LIBRARY NAMES rpmmisc)
+IF ( RPMMISC_LIBRARY )
+SET( RPMDB_LIBRARY ${RPMMISC_LIBRARY} ${RPMDB_LIBRARY} )
+ENDIF ( RPMMISC_LIBRARY )
IF ( FEDORA )
FIND_LIBRARY(DB_LIBRARY NAMES db)
IF ( DB_LIBRARY )

View File

@@ -2,6 +2,11 @@ fix rpm5 build
8/19/2010 - created by Qing He <qing.he@intel.com>
pgpDigNew/pgpDigFree has changed in RPM 5.4.0
Signed-off-by: Qing He <qing.he@intel.com>
diff --git a/ext/repo_rpmdb.c b/ext/repo_rpmdb.c
index 34f2b65..3c6ab9a 100644
--- a/ext/repo_rpmdb.c
@@ -33,7 +38,7 @@ index 34f2b65..3c6ab9a 100644
/* only rpm knows how to do the release calculation, we don't dare
* to recreate all the bugs */
- dig = pgpNewDig();
+ dig = pgpDigNew(0);
+ dig = pgpDigNew(RPMVSF_DEFAULT, 0);
(void) pgpPrtPkts(pkts, pktsl, dig, 0);
btime = dig->pubkey.time[0] << 24 | dig->pubkey.time[1] << 16 | dig->pubkey.time[2] << 8 | dig->pubkey.signid[3];
sprintf(evrbuf, "%02x%02x%02x%02x-%02x%02x%02x%02x", dig->pubkey.signid[4], dig->pubkey.signid[5], dig->pubkey.signid[6], dig->pubkey.signid[7], dig->pubkey.time[0], dig->pubkey.time[1], dig->pubkey.time[2], dig->pubkey.time[3]);
@@ -42,7 +47,7 @@ index 34f2b65..3c6ab9a 100644
if (dig->pubkey.userid)
setutf8string(data, s - s->repo->pool->solvables, SOLVABLE_SUMMARY, dig->pubkey.userid);
- pgpFreeDig(dig);
+ (void) pgpDigFree(dig, "");
+ (void) pgpDigFree(dig);
sat_free((void *)pkts);
return 1;
}

View File

@@ -12,7 +12,7 @@ PR = "r3"
SRC_URI = "git://gitorious.org/opensuse/sat-solver.git;protocol=git \
file://cmake.patch \
file://rpm5.patch \
file://dso_linking_change_build_fix.patch"
file://db5.patch"
S = "${WORKDIR}/git"