summaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/sat-solver
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@windriver.com>2011-03-16 17:15:09 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-03-17 00:18:14 +0000
commit275241ea681a8a6019b89c41ec39d65c45b851f3 (patch)
tree4ce5734d1caf268068aa8d5baedee8687aa6c78a /meta/recipes-extended/sat-solver
parent129c62433380a314dadffafb367c5bd6f7dccfaf (diff)
downloadpoky-275241ea681a8a6019b89c41ec39d65c45b851f3.tar.gz
sat-solver: Fix solution DB generation and general cleanup
Uprev sat-solver to the latest git version. This corrects the solv db generation with RPM5. Refactor the patches for RPM5 support, cleaning up components of the cmake.patch for submission upstream. (Also fix a problem remaining in the upstream with a mismatched function name.) (From OE-Core rev: 89a5ad96eef411dccea817a6c37cb1e24840fdc1) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-extended/sat-solver')
-rw-r--r--meta/recipes-extended/sat-solver/sat-solver/cmake.patch58
-rw-r--r--meta/recipes-extended/sat-solver/sat-solver/rpm5-solvdb.patch30
-rw-r--r--meta/recipes-extended/sat-solver/sat-solver/rpm5.patch53
-rw-r--r--meta/recipes-extended/sat-solver/sat-solver/sat-solver_rpm5.patch67
-rw-r--r--meta/recipes-extended/sat-solver/sat-solver_git.bb7
5 files changed, 77 insertions, 138 deletions
diff --git a/meta/recipes-extended/sat-solver/sat-solver/cmake.patch b/meta/recipes-extended/sat-solver/sat-solver/cmake.patch
index 854bd40d75..52319f0e4f 100644
--- a/meta/recipes-extended/sat-solver/sat-solver/cmake.patch
+++ b/meta/recipes-extended/sat-solver/sat-solver/cmake.patch
@@ -1,59 +1,15 @@
1check rpm 1Enable debugging for all builds
2not building docs (need oxygen) 2not building docs (need oxygen)
3 3
48/19/2010 - created by Qing He <qing.he@intel.com> 48/19/2010 - created by Qing He <qing.he@intel.com>
51/24/2011 - Disable Fedora/Debian checking/settings by Mark Hatle <mark.hatle@windriver.com> 51/24/2011 - Disable Fedora/Debian checking/settings by Mark Hatle <mark.hatle@windriver.com>
63/15/2011 - Updated to newer version of sat-solver by Mark Hatle <mark.hatle@windriver.com> 63/15/2011 - Updated to newer version of sat-solver by Mark Hatle <mark.hatle@windriver.com>
73/16/2011 - Split original patch and simplify by Mark Hatle <mark.hatle@windriver.com>
7 8
8diff -ur git.orig/CMakeLists.txt git/CMakeLists.txt 9diff -ur git.orig2/CMakeLists.txt git/CMakeLists.txt
9--- git.orig/CMakeLists.txt 2011-03-15 17:14:22.000000000 -0500 10--- git.orig2/CMakeLists.txt 2011-03-16 16:29:43.532032285 -0500
10+++ git/CMakeLists.txt 2011-03-15 17:20:09.648880770 -0500 11+++ git/CMakeLists.txt 2011-03-16 16:32:59.982034501 -0500
11@@ -35,22 +35,15 @@ 12@@ -177,7 +177,7 @@
12 FIND_PACKAGE(Check REQUIRED)
13 FIND_PACKAGE(ZLIB REQUIRED)
14
15-IF ( FEDORA )
16-MESSAGE(STATUS "Building for Fedora")
17-ADD_DEFINITIONS( -DFEDORA )
18-ENDIF ( FEDORA)
19-
20-IF ( DEBIAN )
21-MESSAGE(STATUS "Building for Debian")
22-ADD_DEFINITIONS( -DDEBIAN -DDEBIAN_SEMANTICS)
23-ENDIF ( DEBIAN )
24-
25 IF ( MULTI_SEMANTICS )
26 MESSAGE(STATUS "Enabling multi dist support")
27 ADD_DEFINITIONS( -DMULTI_SEMANTICS)
28 ENDIF ( MULTI_SEMANTICS )
29
30-IF ( NOT DEBIAN )
31+FIND_PACKAGE(PkgConfig REQUIRED)
32+PKG_CHECK_MODULES(RPM REQUIRED rpm)
33+INCLUDE_DIRECTORIES( ${RPM_INCLUDE_DIRS} )
34+
35 FIND_LIBRARY(RPMDB_LIBRARY NAMES rpmdb)
36 IF ( NOT RPMDB_LIBRARY )
37 FIND_LIBRARY(RPMDB_LIBRARY NAMES rpm)
38@@ -59,13 +52,14 @@
39 IF ( RPMIO_LIBRARY )
40 SET( RPMDB_LIBRARY ${RPMIO_LIBRARY} ${RPMDB_LIBRARY} )
41 ENDIF ( RPMIO_LIBRARY )
42-IF ( FEDORA )
43+FIND_LIBRARY(RPMMISC_LIBRARY NAMES rpmmisc)
44+IF ( RPMMISC_LIBRARY )
45+SET( RPMDB_LIBRARY ${RPMMISC_LIBRARY} ${RPMDB_LIBRARY} )
46+ENDIF ( RPMMISC_LIBRARY )
47 FIND_LIBRARY(DB_LIBRARY NAMES db)
48 IF ( DB_LIBRARY )
49 SET( RPMDB_LIBRARY ${DB_LIBRARY} ${RPMDB_LIBRARY} )
50 ENDIF ( DB_LIBRARY )
51-ENDIF ( FEDORA )
52-ENDIF ( NOT DEBIAN )
53
54 INCLUDE ( CheckFunctionExists )
55 INCLUDE ( TestBigEndian )
56@@ -164,7 +158,7 @@
57 13
58 MESSAGE(STATUS "Looking modules in ${CMAKE_MODULE_PATH}") 14 MESSAGE(STATUS "Looking modules in ${CMAKE_MODULE_PATH}")
59 15
@@ -62,7 +18,7 @@ diff -ur git.orig/CMakeLists.txt git/CMakeLists.txt
62 set ( CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -g -O3" ) 18 set ( CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -g -O3" )
63 set ( CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -g3 -O0" ) 19 set ( CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -g3 -O0" )
64 20
65@@ -173,7 +167,7 @@ 21@@ -186,7 +186,7 @@
66 ADD_SUBDIRECTORY(tools) 22 ADD_SUBDIRECTORY(tools)
67 ADD_SUBDIRECTORY(tests) 23 ADD_SUBDIRECTORY(tests)
68 ADD_SUBDIRECTORY(examples) 24 ADD_SUBDIRECTORY(examples)
diff --git a/meta/recipes-extended/sat-solver/sat-solver/rpm5-solvdb.patch b/meta/recipes-extended/sat-solver/sat-solver/rpm5-solvdb.patch
deleted file mode 100644
index 8ce1b150c5..0000000000
--- a/meta/recipes-extended/sat-solver/sat-solver/rpm5-solvdb.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1sat-solver rpmdb based solv database construction
2
3The first time the database is created on an RPM5 system it works
4correctly. However any subsequent rebuilds cause an empty database to
5occur.
6
7The following is from Michael Schroeder <mls@suse.de>:
8> rpmdb2solv contains a hack that makes it use the unchanged already
9> converted packages. To do this, it needs to get the database id
10> for every installed packages by reading the "Name" index. This
11> somehow doesn't seem to work with rpm5.
12>
13> As a workaround you can add a "ref = 0;" line at the top of the
14> repo_add_rpmdb() function in ext/repo_rpmdb.c.
15
16Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
17
18diff -ur git.orig/ext/repo_rpmdb.c git/ext/repo_rpmdb.c
19--- git.orig/ext/repo_rpmdb.c 2011-03-16 09:43:50.470008215 -0500
20+++ git/ext/repo_rpmdb.c 2011-03-16 09:47:55.503989694 -0500
21@@ -1344,6 +1344,9 @@
22 memset(&dbkey, 0, sizeof(dbkey));
23 memset(&dbdata, 0, sizeof(dbdata));
24
25+ /* Workaround for RPM 5 database construction */
26+ ref = 0;
27+
28 if (!rootdir)
29 rootdir = "";
30
diff --git a/meta/recipes-extended/sat-solver/sat-solver/rpm5.patch b/meta/recipes-extended/sat-solver/sat-solver/rpm5.patch
deleted file mode 100644
index 5ab632155d..0000000000
--- a/meta/recipes-extended/sat-solver/sat-solver/rpm5.patch
+++ /dev/null
@@ -1,53 +0,0 @@
1fix rpm5 build
2
38/19/2010 - created by Qing He <qing.he@intel.com>
4
5
6pgpDigNew/pgpDigFree has changed in RPM 5.4.0
7
8Signed-off-by: Qing He <qing.he@intel.com>
9
10diff --git a/ext/repo_rpmdb.c b/ext/repo_rpmdb.c
11index 34f2b65..3c6ab9a 100644
12--- a/ext/repo_rpmdb.c
13+++ b/ext/repo_rpmdb.c
14@@ -21,10 +21,11 @@
15 #include <string.h>
16 #include <unistd.h>
17 #include <assert.h>
18+#include <stdint.h>
19
20 #include <rpm/rpmio.h>
21 #include <rpm/rpmpgp.h>
22-#include <rpm/header.h>
23+//#include <rpm/header.h>
24 #include <rpm/rpmdb.h>
25
26 #ifndef DB_CREATE
27@@ -2466,7 +2467,7 @@ rpm_byrpmh(Header h, void **statep)
28 int sigdsize, sigcnt, l;
29 RpmHead *rpmhead;
30
31- uh = headerUnload(h);
32+ uh = headerUnload(h, NULL);
33 if (!uh)
34 return 0;
35 sigcnt = getu32(uh);
36@@ -2982,7 +2983,7 @@ pubkey2solvable(Solvable *s, Repodata *data, char *pubkey)
37 parsekeydata(s, data, pkts, pktsl);
38 /* only rpm knows how to do the release calculation, we don't dare
39 * to recreate all the bugs */
40- dig = pgpNewDig();
41+ dig = pgpDigNew(RPMVSF_DEFAULT, 0);
42 (void) pgpPrtPkts(pkts, pktsl, dig, 0);
43 btime = dig->pubkey.time[0] << 24 | dig->pubkey.time[1] << 16 | dig->pubkey.time[2] << 8 | dig->pubkey.signid[3];
44 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]);
45@@ -2996,7 +2997,7 @@ pubkey2solvable(Solvable *s, Repodata *data, char *pubkey)
46 repodata_set_str(data, s - s->repo->pool->solvables, PUBKEY_KEYID, keyid);
47 if (dig->pubkey.userid)
48 setutf8string(data, s - s->repo->pool->solvables, SOLVABLE_SUMMARY, dig->pubkey.userid);
49- pgpFreeDig(dig);
50+ (void) pgpDigFree(dig);
51 sat_free((void *)pkts);
52 return 1;
53 }
diff --git a/meta/recipes-extended/sat-solver/sat-solver/sat-solver_rpm5.patch b/meta/recipes-extended/sat-solver/sat-solver/sat-solver_rpm5.patch
new file mode 100644
index 0000000000..1776f6cd59
--- /dev/null
+++ b/meta/recipes-extended/sat-solver/sat-solver/sat-solver_rpm5.patch
@@ -0,0 +1,67 @@
1Add RPM5 configuration support
2
3Update the cmake configuration to detect additional files needed by RPM5.
4
5Original work by Qing He <qing.he@intel.com>.
6
7Merged and updated to make this more likely to be accepted upstream.
8
9Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
10
11diff -ur git.orig/CMakeLists.txt git/CMakeLists.txt
12--- git.orig/CMakeLists.txt 2011-03-16 16:16:29.152786178 -0500
13+++ git/CMakeLists.txt 2011-03-16 16:29:43.532032285 -0500
14@@ -50,7 +50,16 @@
15 ADD_DEFINITIONS( -DMULTI_SEMANTICS)
16 ENDIF ( MULTI_SEMANTICS )
17
18-IF ( NOT DEBIAN )
19+if ( RPM5 )
20+MESSAGE(STATUS "Enabling RPM 5 support")
21+ADD_DEFINITIONS( -DRPM5)
22+
23+FIND_PACKAGE(PkgConfig REQUIRED)
24+PKG_CHECK_MODULES(RPM REQUIRED rpm)
25+INCLUDE_DIRECTORIES( ${RPM_INCLUDE_DIRS} )
26+ENDIF ( RPM5 )
27+
28+IF ( RPM5 OR NOT DEBIAN )
29 FIND_LIBRARY(RPMDB_LIBRARY NAMES rpmdb)
30 IF ( NOT RPMDB_LIBRARY )
31 FIND_LIBRARY(RPMDB_LIBRARY NAMES rpm)
32@@ -59,13 +68,17 @@
33 IF ( RPMIO_LIBRARY )
34 SET( RPMDB_LIBRARY ${RPMIO_LIBRARY} ${RPMDB_LIBRARY} )
35 ENDIF ( RPMIO_LIBRARY )
36-IF ( FEDORA )
37+FIND_LIBRARY(RPMMISC_LIBRARY NAMES rpmmisc)
38+IF ( RPMMISC_LIBRARY )
39+SET ( RPMDB_LIBRARY ${RPMMISC_LIBRARY} ${RPMDB_LIBRARY} )
40+ENDIF ( RPMMISC_LIBRARY )
41+IF ( RPM5 OR FEDORA )
42 FIND_LIBRARY(DB_LIBRARY NAMES db)
43 IF ( DB_LIBRARY )
44 SET( RPMDB_LIBRARY ${DB_LIBRARY} ${RPMDB_LIBRARY} )
45 ENDIF ( DB_LIBRARY )
46-ENDIF ( FEDORA )
47-ENDIF ( NOT DEBIAN )
48+ENDIF ( RPM5 OR FEDORA )
49+ENDIF ( RPM5 OR NOT DEBIAN )
50
51 INCLUDE ( CheckFunctionExists )
52 INCLUDE ( TestBigEndian )
53diff -ur git.orig/ext/repo_rpmdb.c git/ext/repo_rpmdb.c
54--- git.orig/ext/repo_rpmdb.c 2011-03-16 18:03:55.401907738 -0500
55+++ git/ext/repo_rpmdb.c 2011-03-16 18:04:47.472989651 -0500
56@@ -3039,7 +3039,11 @@
57 repodata_set_str(data, s - s->repo->pool->solvables, PUBKEY_KEYID, keyid);
58 if (dig->pubkey.userid)
59 setutf8string(data, s - s->repo->pool->solvables, SOLVABLE_SUMMARY, dig->pubkey.userid);
60+#ifndef RPM5
61 (void)pgpFreeDig(dig);
62+#else
63+ (void)pgpDigFree(dig);
64+#endif
65 sat_free((void *)pkts);
66 return 1;
67 }
diff --git a/meta/recipes-extended/sat-solver/sat-solver_git.bb b/meta/recipes-extended/sat-solver/sat-solver_git.bb
index a6519d5921..ba5af67f70 100644
--- a/meta/recipes-extended/sat-solver/sat-solver_git.bb
+++ b/meta/recipes-extended/sat-solver/sat-solver_git.bb
@@ -7,12 +7,11 @@ LIC_FILES_CHKSUM = "file://LICENSE.BSD;md5=62272bd11c97396d4aaf1c41bc11f7d8"
7DEPENDS = "libcheck rpm zlib expat db" 7DEPENDS = "libcheck rpm zlib expat db"
8 8
9PV = "0.0-git${SRCPV}" 9PV = "0.0-git${SRCPV}"
10PR = "r5" 10PR = "r6"
11 11
12SRC_URI = "git://gitorious.org/opensuse/sat-solver.git;protocol=git \ 12SRC_URI = "git://gitorious.org/opensuse/sat-solver.git;protocol=git \
13 file://sat-solver_rpm5.patch \
13 file://cmake.patch \ 14 file://cmake.patch \
14 file://rpm5.patch \
15 file://rpm5-solvdb.patch \
16 file://db5.patch \ 15 file://db5.patch \
17 file://builtin-arch.patch;apply=no \ 16 file://builtin-arch.patch;apply=no \
18 file://no-builtin-arch.patch;apply=no \ 17 file://no-builtin-arch.patch;apply=no \
@@ -20,7 +19,7 @@ SRC_URI = "git://gitorious.org/opensuse/sat-solver.git;protocol=git \
20 19
21S = "${WORKDIR}/git" 20S = "${WORKDIR}/git"
22 21
23EXTRA_OECMAKE += "-DLIB=lib" 22EXTRA_OECMAKE += "-DLIB=lib -DRPM5=RPM5"
24 23
25inherit cmake pkgconfig 24inherit cmake pkgconfig
26 25