From fd257fb9c490f4af3fbfb71c4d099fe876be28eb Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Thu, 27 Oct 2016 14:56:47 +0900 Subject: [PATCH] Imported Upstream version 0.6.14 Change-Id: I3e83c4ddc30f8d8cfa6f965a85ecca72781d89e4 Signed-off-by: DongHun Kwak --- VERSION.cmake | 2 +- bindings/perl/CMakeLists.txt | 2 +- bindings/python/CMakeLists.txt | 2 +- bindings/ruby/CMakeLists.txt | 2 +- examples/solv/solv.c | 2 +- examples/tclsolv | 2 +- package/libsolv.changes | 8 ++++++++ src/rules.c | 10 ++++++++-- src/solver.c | 11 +++++++++-- tools/testsolv.c | 2 +- 10 files changed, 32 insertions(+), 11 deletions(-) diff --git a/VERSION.cmake b/VERSION.cmake index f67959d..9ae12b5 100644 --- a/VERSION.cmake +++ b/VERSION.cmake @@ -49,5 +49,5 @@ SET(LIBSOLVEXT_SOVERSION "0") SET(LIBSOLV_MAJOR "0") SET(LIBSOLV_MINOR "6") -SET(LIBSOLV_PATCH "13") +SET(LIBSOLV_PATCH "14") diff --git a/bindings/perl/CMakeLists.txt b/bindings/perl/CMakeLists.txt index cb9cd37..49a3902 100644 --- a/bindings/perl/CMakeLists.txt +++ b/bindings/perl/CMakeLists.txt @@ -28,7 +28,7 @@ ADD_DEFINITIONS(${PERL_CCFLAGS} -Wno-unused -Wno-nonnull) LINK_DIRECTORIES (${PERL_CORE_DIR}) INCLUDE_DIRECTORIES (${PERL_INCLUDE_PATH} ${PERL_CORE_DIR}) -ADD_LIBRARY (bindings_perl SHARED solv_perl.c) +ADD_LIBRARY (bindings_perl MODULE solv_perl.c) SET_TARGET_PROPERTIES (bindings_perl PROPERTIES PREFIX "" OUTPUT_NAME "solv") SET_TARGET_PROPERTIES (bindings_perl PROPERTIES LINK_FLAGS "${PERL_CCLDFLAGS}") TARGET_LINK_LIBRARIES (bindings_perl libsolvext libsolv ${SYSTEM_LIBRARIES}) diff --git a/bindings/python/CMakeLists.txt b/bindings/python/CMakeLists.txt index 22ddec3..73f2dca 100644 --- a/bindings/python/CMakeLists.txt +++ b/bindings/python/CMakeLists.txt @@ -24,7 +24,7 @@ ADD_CUSTOM_COMMAND ( ADD_DEFINITIONS(-Wno-unused) INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_PATH}) -ADD_LIBRARY (bindings_python SHARED solv_python.c) +ADD_LIBRARY (bindings_python MODULE solv_python.c) SET_TARGET_PROPERTIES (bindings_python PROPERTIES PREFIX "" OUTPUT_NAME "_solv") TARGET_LINK_LIBRARIES (bindings_python libsolvext libsolv ${SYSTEM_LIBRARIES}) diff --git a/bindings/ruby/CMakeLists.txt b/bindings/ruby/CMakeLists.txt index bc7a1f9..6c3bd50 100644 --- a/bindings/ruby/CMakeLists.txt +++ b/bindings/ruby/CMakeLists.txt @@ -19,7 +19,7 @@ ADD_CUSTOM_COMMAND ( ADD_DEFINITIONS(-Wno-unused) INCLUDE_DIRECTORIES (${RUBY_INCLUDE_PATH}) -ADD_LIBRARY (bindings_ruby SHARED solv_ruby.c) +ADD_LIBRARY (bindings_ruby MODULE solv_ruby.c) SET_TARGET_PROPERTIES (bindings_ruby PROPERTIES PREFIX "" OUTPUT_NAME "solv") TARGET_LINK_LIBRARIES (bindings_ruby libsolvext libsolv ${SYSTEM_LIBRARIES}) diff --git a/examples/solv/solv.c b/examples/solv/solv.c index d624bf6..6840a6e 100644 --- a/examples/solv/solv.c +++ b/examples/solv/solv.c @@ -661,7 +661,7 @@ main(int argc, char **argv) queue_push2(&job, SOLVER_ERASE|SOLVER_CLEANDEPS|SOLVER_SOLVABLE_PROVIDES, pool_rel2id(pool, NAMESPACE_LANGUAGE, 0, REL_NAMESPACE, 1)); #endif -#if defined(ENABLE_RPMDB) && (defined(SUSE) || defined(FEDORA)) +#if defined(ENABLE_RPMDB) && (defined(SUSE) || defined(FEDORA) || defined(MANDRIVA) || defined(MAGEIA)) rerunsolver: #endif solv = solver_create(pool); diff --git a/examples/tclsolv b/examples/tclsolv index 6f819aa..0fc4e2a 100755 --- a/examples/tclsolv +++ b/examples/tclsolv @@ -738,7 +738,7 @@ foreach cl [$trans classify [expr $solv::Transaction_SOLVER_TRANSACTION_SHOW_OBS set cltype [$cl cget -type] if {$cltype == $solv::Transaction_SOLVER_TRANSACTION_UPGRADED || $cltype ==$solv::Transaction_SOLVER_TRANSACTION_DOWNGRADED} { set op [$trans othersolvable $p] - puts [format { - %s -> %s} [$p str] [$p str]] + puts [format { - %s -> %s} [$p str] [$op str]] } else { puts [format { - %s} [$p str]] } diff --git a/package/libsolv.changes b/package/libsolv.changes index 5ddad42..745e5bf 100644 --- a/package/libsolv.changes +++ b/package/libsolv.changes @@ -1,4 +1,12 @@ ------------------------------------------------------------------- +Mon Oct 5 13:27:25 CEST 2015 - mls@suse.de + +- fix bug in recommends handling [bnc#948482] +- also check installed packages in multiversion handling +- fix build on Mageia +- bump version to 0.6.14 + +------------------------------------------------------------------- Fri Sep 25 11:54:02 CEST 2015 - mls@suse.de - support a generic string for pattern-visible() [bnc#900769] diff --git a/src/rules.c b/src/rules.c index 3264e9b..b941986 100644 --- a/src/rules.c +++ b/src/rules.c @@ -928,7 +928,13 @@ solver_addpkgrulesforsolvable(Solver *solv, Solvable *s, Map *m) /* we still obsolete packages with same nevra, like rpm does */ /* (actually, rpm mixes those packages. yuck...) */ if (multi && (s->name != ps->name || s->evr != ps->evr || s->arch != ps->arch)) - continue; + { + if (isinstalled || ps->repo != installed) + continue; + /* also check the installed package for multi-ness */ + if (MAPTST(&solv->multiversion, p)) + continue; + } if (!pool->implicitobsoleteusesprovides && s->name != ps->name) continue; if (pool->implicitobsoleteusescolors && !pool_colormatch(pool, s, ps)) @@ -938,7 +944,7 @@ solver_addpkgrulesforsolvable(Solver *solv, Solvable *s, Map *m) if (s->name == ps->name) { /* optimization: do not add the same-name conflict rule if it was - * already added when we looket at the other package. + * already added when we looked at the other package. * (this assumes pool_colormatch is symmetric) */ if (p && m && ps->repo != installed && MAPTST(m, p) && (ps->arch != ARCH_SRC && ps->arch != ARCH_NOSRC) && diff --git a/src/solver.c b/src/solver.c index 3358b6b..c6cad6b 100644 --- a/src/solver.c +++ b/src/solver.c @@ -2544,13 +2544,20 @@ solver_run_sat(Solver *solv, int disablerules, int doweak) continue; if (solv->decisionmap[p] <= 0) continue; - if (solv->multiversion.size && MAPTST(&solv->multiversion, p)) + if (!solv->keepexplicitobsoletes && solv->multiversion.size && MAPTST(&solv->multiversion, p)) continue; obsp = s->repo->idarraydata + s->obsoletes; /* foreach obsoletes */ while ((obs = *obsp++) != 0) FOR_PROVIDES(po, ppo, obs) - MAPSET(&obsmap, po); + { + Solvable *pos = pool->solvables + po; + if (!pool->obsoleteusesprovides && !pool_match_nevr(pool, pos, obs)) + continue; + if (pool->obsoleteusescolors && !pool_colormatch(pool, s, pos)) + continue; + MAPSET(&obsmap, po); + } } for (i = j = 0; i < dqs.count; i++) if (!MAPTST(&obsmap, dqs.elements[i])) diff --git a/tools/testsolv.c b/tools/testsolv.c index 5c49394..d0328ae 100644 --- a/tools/testsolv.c +++ b/tools/testsolv.c @@ -25,7 +25,7 @@ static struct resultflags2str { }; static void -usage(ex) +usage(int ex) { fprintf(ex ? stderr : stdout, "Usage: testsolv \n"); exit(ex); -- 2.7.4