Hello community, here is the log from the commit of package libsolv for openSUSE:Factory checked in at 2015-05-07 08:28:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libsolv (Old) and /work/SRC/openSUSE:Factory/.libsolv.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libsolv" Changes: -------- --- /work/SRC/openSUSE:Factory/libsolv/libsolv.changes 2015-04-02 16:02:02.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.libsolv.new/libsolv.changes 2015-05-07 08:28:10.000000000 +0200 @@ -1,0 +2,5 @@ +Sat May 2 11:44:08 UTC 2015 - mrueck...@suse.de + +- you really want to use rbconfig there + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libsolv.spec ++++++ --- /var/tmp/diff_new_pack.SWI6lP/_old 2015-05-07 08:28:10.000000000 +0200 +++ /var/tmp/diff_new_pack.SWI6lP/_new 2015-05-07 08:28:10.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package libsolv # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -65,7 +65,7 @@ BuildRequires: swig %endif %if %{with ruby_binding} -%global ruby_vendorarch %(ruby -r rbconfig -e "puts Config::CONFIG['vendorarchdir'].nil? ? Config::CONFIG['sitearchdir'] : Config::CONFIG['vendorarchdir']") +%global ruby_vendorarch %(ruby -r rbconfig -e "puts RbConfig::CONFIG['vendorarchdir'].nil? ? RbConfig::CONFIG['sitearchdir'] : RbConfig::CONFIG['vendorarchdir']") BuildRequires: ruby BuildRequires: ruby-devel BuildRequires: swig ++++++ libsolv-0.6.10.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.10/bindings/solv.i new/libsolv-0.6.10/bindings/solv.i --- old/libsolv-0.6.10/bindings/solv.i 2015-03-04 13:30:37.000000000 +0100 +++ new/libsolv-0.6.10/bindings/solv.i 2015-04-07 16:36:13.000000000 +0200 @@ -2801,6 +2801,7 @@ static const int SOLVER_FLAG_BREAK_ORPHANS = SOLVER_FLAG_BREAK_ORPHANS; static const int SOLVER_FLAG_FOCUS_INSTALLED = SOLVER_FLAG_FOCUS_INSTALLED; static const int SOLVER_FLAG_YUM_OBSOLETES = SOLVER_FLAG_YUM_OBSOLETES; + static const int SOLVER_FLAG_NEED_UPDATEPROVIDE = SOLVER_FLAG_NEED_UPDATEPROVIDE; static const int SOLVER_REASON_UNRELATED = SOLVER_REASON_UNRELATED; static const int SOLVER_REASON_UNIT_RULE = SOLVER_REASON_UNIT_RULE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.10/cmake/modules/FindRuby.cmake new/libsolv-0.6.10/cmake/modules/FindRuby.cmake --- old/libsolv-0.6.10/cmake/modules/FindRuby.cmake 2014-07-01 11:09:49.000000000 +0200 +++ new/libsolv-0.6.10/cmake/modules/FindRuby.cmake 2015-05-05 17:40:56.000000000 +0200 @@ -112,7 +112,7 @@ _RUBY_CONFIG_VAR("sitelibdir" RUBY_SITELIB_DIR) # vendor_ruby available ? - EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print 'true' unless Config::CONFIG['vendorarchdir'].nil?" + EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print 'true' unless RbConfig::CONFIG['vendorarchdir'].nil?" OUTPUT_VARIABLE RUBY_HAS_VENDOR_RUBY ERROR_QUIET) IF(RUBY_HAS_VENDOR_RUBY) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.10/ext/testcase.c new/libsolv-0.6.10/ext/testcase.c --- old/libsolv-0.6.10/ext/testcase.c 2015-03-23 15:16:12.000000000 +0100 +++ new/libsolv-0.6.10/ext/testcase.c 2015-04-07 16:36:13.000000000 +0200 @@ -109,6 +109,7 @@ { SOLVER_FLAG_BREAK_ORPHANS, "breakorphans", 0 }, { SOLVER_FLAG_FOCUS_INSTALLED, "focusinstalled", 0 }, { SOLVER_FLAG_YUM_OBSOLETES, "yumobsoletes", 0 }, + { SOLVER_FLAG_NEED_UPDATEPROVIDE, "needupdateprovide", 0 }, { 0, 0, 0 } }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.10/package/libsolv.changes new/libsolv-0.6.10/package/libsolv.changes --- old/libsolv-0.6.10/package/libsolv.changes 2015-03-18 11:11:12.000000000 +0100 +++ new/libsolv-0.6.10/package/libsolv.changes 2015-05-05 17:40:56.000000000 +0200 @@ -1,4 +1,9 @@ ------------------------------------------------------------------- +Sat May 2 11:44:08 UTC 2015 - mrueck...@suse.de + +- you really want to use rbconfig there + +------------------------------------------------------------------- Wed Mar 18 11:04:34 CET 2015 - m...@suse.de - fix bug in dislike_old_versions that could lead to a segfault diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.10/package/libsolv.spec.in new/libsolv-0.6.10/package/libsolv.spec.in --- old/libsolv-0.6.10/package/libsolv.spec.in 2015-01-14 08:21:01.000000000 +0100 +++ new/libsolv-0.6.10/package/libsolv.spec.in 2015-05-05 17:40:56.000000000 +0200 @@ -64,7 +64,7 @@ BuildRequires: swig %endif %if %{with ruby_binding} -%global ruby_vendorarch %(ruby -r rbconfig -e "puts Config::CONFIG['vendorarchdir'].nil? ? Config::CONFIG['sitearchdir'] : Config::CONFIG['vendorarchdir']") +%global ruby_vendorarch %(ruby -r rbconfig -e "puts RbConfig::CONFIG['vendorarchdir'].nil? ? RbConfig::CONFIG['sitearchdir'] : RbConfig::CONFIG['vendorarchdir']") BuildRequires: ruby BuildRequires: ruby-devel BuildRequires: swig diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.10/src/policy.c new/libsolv-0.6.10/src/policy.c --- old/libsolv-0.6.10/src/policy.c 2015-03-21 18:56:11.000000000 +0100 +++ new/libsolv-0.6.10/src/policy.c 2015-04-08 13:25:56.000000000 +0200 @@ -891,9 +891,11 @@ Id r = aa[1] - bb[1]; if (r) return r < 0 ? -1 : 1; + if (aa[2] == bb[2]) + return 0; a = aa[2] < 0 ? -aa[2] : aa[2]; b = bb[2] < 0 ? -bb[2] : bb[2]; - if (pool->disttype != DISTTYPE_DEB) + if (pool->disttype != DISTTYPE_DEB && a != b) { /* treat release-less versions different */ const char *as = pool_id2str(pool, a); @@ -1127,10 +1129,10 @@ prune_to_best_arch(pool, plist); if (plist->count > 1) prune_to_best_version(pool, plist); - if (plist->count > 1 && mode == POLICY_MODE_CHOOSE) + if (plist->count > 1 && (mode == POLICY_MODE_CHOOSE || mode == POLICY_MODE_CHOOSE_NOREORDER)) { prune_to_recommended(solv, plist); - if (plist->count > 1) + if (plist->count > 1 && mode != POLICY_MODE_CHOOSE_NOREORDER) { /* do some fancy reordering */ #if 0 @@ -1360,7 +1362,7 @@ } else if (!allownamechange) continue; - else if (!solv->noupdateprovide && ps->obsoletes) /* provides/obsoletes combination ? */ + else if ((!solv->noupdateprovide || solv->needupdateprovide) && ps->obsoletes) /* provides/obsoletes combination ? */ { /* check if package ps obsoletes installed package s */ /* implicitobsoleteusescolors is somewhat wrong here, but we nevertheless @@ -1400,7 +1402,7 @@ return; /* if we have found some valid candidates and noupdateprovide is not set, we're done. otherwise we fallback to all obsoletes */ - if (!solv->noupdateprovide && haveprovobs) + if (solv->needupdateprovide || (!solv->noupdateprovide && haveprovobs)) return; if (solv->obsoletes && solv->obsoletes[n - solv->installed->start]) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.10/src/policy.h new/libsolv-0.6.10/src/policy.h --- old/libsolv-0.6.10/src/policy.h 2014-07-25 18:27:17.000000000 +0200 +++ new/libsolv-0.6.10/src/policy.h 2015-04-08 13:25:56.000000000 +0200 @@ -19,6 +19,7 @@ #define POLICY_MODE_CHOOSE 0 #define POLICY_MODE_RECOMMEND 1 #define POLICY_MODE_SUGGEST 2 +#define POLICY_MODE_CHOOSE_NOREORDER 3 /* internal, do not use */ #define POLICY_ILLEGAL_DOWNGRADE 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.10/src/solver.c new/libsolv-0.6.10/src/solver.c --- old/libsolv-0.6.10/src/solver.c 2015-03-26 12:46:11.000000000 +0100 +++ new/libsolv-0.6.10/src/solver.c 2015-04-08 13:25:56.000000000 +0200 @@ -1764,6 +1764,8 @@ return solv->focus_installed; case SOLVER_FLAG_YUM_OBSOLETES: return solv->do_yum_obsoletes; + case SOLVER_FLAG_NEED_UPDATEPROVIDE: + return solv->needupdateprovide; default: break; } @@ -1839,6 +1841,9 @@ case SOLVER_FLAG_YUM_OBSOLETES: solv->do_yum_obsoletes = value; break; + case SOLVER_FLAG_NEED_UPDATEPROVIDE: + solv->needupdateprovide = value; + break; default: break; } @@ -2066,7 +2071,7 @@ int i, j, n; Solvable *s; Pool *pool = solv->pool; - Id p, pp, *dp; + Id p, pp, *dp, postponed; int minimizationsteps; int installedpos = solv->installed ? solv->installed->start : 0; @@ -2333,8 +2338,17 @@ if (!solv->decisioncnt_resolve) solv->decisioncnt_resolve = solv->decisionq.count; POOL_DEBUG(SOLV_DEBUG_POLICY, "deciding unresolved rules\n"); - for (i = 1, n = 1; n < solv->nrules; i++, n++) + postponed = 0; + for (i = 1, n = 1; ; i++, n++) { + if (n >= solv->nrules) + { + if (postponed <= 0) + break; + i = postponed; + postponed = -1; + n = 1; + } if (i == solv->nrules) i = 1; r = solv->rules + i; @@ -2416,6 +2430,17 @@ } } + if (dq.count > 1 && postponed >= 0) + { + policy_filter_unwanted(solv, &dq, POLICY_MODE_CHOOSE_NOREORDER); + if (dq.count > 1) + { + if (!postponed) + postponed = i; + continue; + } + } + olevel = level; level = selectandinstall(solv, level, &dq, disablerules, r - solv->rules); if (level == 0) @@ -2426,7 +2451,7 @@ n = 0; } - if (n != solv->nrules) /* ran into trouble? */ + if (n < solv->nrules) /* ran into trouble? */ { if (level == 0) break; /* unsolvable */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libsolv-0.6.10/src/solver.h new/libsolv-0.6.10/src/solver.h --- old/libsolv-0.6.10/src/solver.h 2015-03-26 12:46:11.000000000 +0100 +++ new/libsolv-0.6.10/src/solver.h 2015-04-07 16:36:13.000000000 +0200 @@ -155,6 +155,7 @@ int allowvendorchange; /* allow to change vendor of installed solvables */ int allowuninstall; /* allow removal of installed solvables */ int noupdateprovide; /* true: update packages needs not to provide old package */ + int needupdateprovide; /* true: update packages must provide old package */ int dosplitprovides; /* true: consider legacy split provides */ int dontinstallrecommended; /* true: do not install recommended packages */ int addalreadyrecommended; /* true: also install recommended packages that were already recommended by the installed packages */ @@ -295,6 +296,7 @@ #define SOLVER_FLAG_BREAK_ORPHANS 19 #define SOLVER_FLAG_FOCUS_INSTALLED 20 #define SOLVER_FLAG_YUM_OBSOLETES 21 +#define SOLVER_FLAG_NEED_UPDATEPROVIDE 22 #define GET_USERINSTALLED_NAMES (1 << 0) /* package names instead of ids */ #define GET_USERINSTALLED_INVERTED (1 << 1) /* autoinstalled */