summaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/sat-solver
diff options
context:
space:
mode:
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