Mailinglist Archive: opensuse-commit (857 mails)

< Previous Next >
commit libsatsolver
  • From: root@xxxxxxxxxxxxxxx (h_root)
  • Date: Fri, 16 Nov 2007 12:43:39 +0100
  • Message-id: <20071116114339.DC1446781B8@xxxxxxxxxxxxxxx>

Hello community,

here is the log from the commit of package libsatsolver
checked in at Fri Nov 16 12:43:39 CET 2007.

--------
--- libsatsolver/libsatsolver.changes 2007-11-15 12:47:37.000000000 +0100
+++ /mounts/work_src_done/STABLE/libsatsolver/libsatsolver.changes
2007-11-16 12:35:13.068819000 +0100
@@ -1,0 +2,5 @@
+Fri Nov 16 12:17:13 CET 2007 - coolo@xxxxxxx
+
+- update to SVN again to make libzypp compilable again
+
+-------------------------------------------------------------------

Old:
----
satsolver-0.0.4.tar.bz2

New:
----
satsolver-0.0.5.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libsatsolver.spec ++++++
--- /var/tmp/diff_new_pack.S11232/_old 2007-11-16 12:43:22.000000000 +0100
+++ /var/tmp/diff_new_pack.S11232/_new 2007-11-16 12:43:22.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package libsatsolver (Version 0.0.4)
+# spec file for package libsatsolver (Version 0.0.5)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -10,7 +10,7 @@


Name: libsatsolver
-Version: 0.0.4
+Version: 0.0.5
Release: 1
License: BSD 3-Clause
Url: http://svn.opensuse.org/svn/zypp/trunk/sat-solver
@@ -23,6 +23,8 @@
%description
A new approach to package dependency solving

+
+
Authors:
--------
Michael Schroeder <mls@xxxxxxx>
@@ -36,6 +38,22 @@
%description devel
A new approach to package dependency solving

+
+
+Authors:
+--------
+ Michael Schroeder <mls@xxxxxxx>
+ Klaus Kaempf <kkaempf@xxxxxxx>
+
+%package ruby
+Summary: A new approach to package dependency solving
+Group: Development/Libraries/C and C++
+
+%description ruby
+A new approach to package dependency solving
+
+
+
Authors:
--------
Michael Schroeder <mls@xxxxxxx>
@@ -45,16 +63,17 @@
%setup -n satsolver-%{version}

%build
-cmake -DCMAKE_INSTALL_PREFIX=%_prefix -DLIB_INSTALL_DIR=%_libdir -DLIB=%{_lib}
.
-make
+cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+ -DLIB=%{_lib} \
+ -DCMAKE_VERBOSE_MAKEFILE=TRUE \
+ -DCMAKE_C_FLAGS_RELEASE:STRING="%{optflags}" \
+ -DCMAKE_CXX_FLAGS_RELEASE:STRING="%{optflags}" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=1
+make %{?jobs:-j %jobs}

%install
-make DESTDIR=%{buildroot} install
-# removing ruby bindings for now - too lazy to do a package split
-rm -rf $RPM_BUILD_ROOT/usr/lib*/ruby
-#rm -f %{buildroot}%{_libdir}/libsatsolver.la
-#%post -p /sbin/ldconfig
-#%postun -p /sbin/ldconfig
+make DESTDIR=$RPM_BUILD_ROOT install

%clean
rm -rf "$RPM_BUILD_ROOT"
@@ -72,7 +91,14 @@
%doc doc/PLANNING
%dir /usr/include/satsolver
/usr/include/satsolver/*
+
+%files ruby
+%defattr(-,root,root,-)
+%{_libdir}/ruby/vendor_ruby/%{rb_ver}/%{rb_arch}/satsolverx.so
+%{_libdir}/ruby/vendor_ruby/%{rb_ver}/satsolver.rb
%changelog
+* Fri Nov 16 2007 - coolo@xxxxxxx
+- update to SVN again to make libzypp compilable again
* Wed Nov 14 2007 - schubi@xxxxxxx
- further develpment. bugfix, logging, docu,...
* Mon Nov 12 2007 - coolo@xxxxxxx

++++++ satsolver-0.0.4.tar.bz2 -> satsolver-0.0.5.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/satsolver-0.0.4/bindings/satsolver.i
new/satsolver-0.0.5/bindings/satsolver.i
--- old/satsolver-0.0.4/bindings/satsolver.i 2007-11-14 21:35:50.000000000
+0100
+++ new/satsolver-0.0.5/bindings/satsolver.i 2007-11-16 12:34:22.000000000
+0100
@@ -128,7 +128,7 @@
{ queue_free($self); }

Queue* clone()
- { Queue *t; queue_clone(t, $self); return t; }
+ { Queue *t = new Queue(); queue_clone(t, $self); return t; }

Id shift()
{ return queue_shift($self); }
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/satsolver-0.0.4/package/libsatsolver.changes
new/satsolver-0.0.5/package/libsatsolver.changes
--- old/satsolver-0.0.4/package/libsatsolver.changes 2007-11-15
12:42:40.000000000 +0100
+++ new/satsolver-0.0.5/package/libsatsolver.changes 2007-11-16
12:22:55.000000000 +0100
@@ -1,4 +1,9 @@
-------------------------------------------------------------------
+Fri Nov 16 12:17:13 CET 2007 - coolo@xxxxxxx
+
+- update to SVN again to make libzypp compilable again
+
+-------------------------------------------------------------------
Wed Nov 14 16:10:21 CET 2007 - schubi@xxxxxxx

- further develpment. bugfix, logging, docu,...
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/satsolver-0.0.4/package/libsatsolver.spec.in
new/satsolver-0.0.5/package/libsatsolver.spec.in
--- old/satsolver-0.0.4/package/libsatsolver.spec.in 2007-11-14
16:41:59.000000000 +0100
+++ new/satsolver-0.0.5/package/libsatsolver.spec.in 2007-11-16
12:30:05.000000000 +0100
@@ -1,72 +1,75 @@
+
Name: libsatsolver
Version: @VERSION@
Release: 1
-License: BSD
+License: BSD 3-Clause
Url: http://svn.opensuse.org/svn/zypp/trunk/sat-solver
Source: satsolver-%{version}.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Group: System/Libraries
-BuildRequires: libexpat-devel db43-devel cmake
-BuildRequires: ruby-devel swig
-Requires: expat db43
+Group: Development/Libraries/C and C++
+BuildRequires: cmake db43-devel gcc-c++ libexpat-devel ruby-devel swig
Summary: A new approach to package dependency solving

-
%description
--
+A new approach to package dependency solving
+
+Authors:
+--------
+ Michael Schroeder <mls@xxxxxxx>
+ Klaus Kaempf <kkaempf@xxxxxxx>

%package devel
Summary: A new approach to package dependency solving
-Group: Development/Libraries
+Group: Development/Libraries/C and C++
+Requires: libsatsolver = %version

%description devel
--
+A new approach to package dependency solving
+
+Authors:
+--------
+ Michael Schroeder <mls@xxxxxxx>
+ Klaus Kaempf <kkaempf@xxxxxxx>

%package ruby
Summary: Ruby bindings for sat solver
Group: Development/Languages/Ruby

%description ruby
--
+.

%prep
%setup -n satsolver-%{version}

%build
-mkdir build
-cd build
cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} \
-DLIB=%{_lib} \
-DCMAKE_VERBOSE_MAKEFILE=TRUE \
-DCMAKE_C_FLAGS_RELEASE:STRING="%{optflags}" \
-DCMAKE_CXX_FLAGS_RELEASE:STRING="%{optflags}" \
-DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_SKIP_RPATH=1 \
- ..
+ -DCMAKE_SKIP_RPATH=1
make %{?jobs:-j %jobs}

%install
-cd build
-make install DESTDIR=$RPM_BUILD_ROOT
-#rm -f %{buildroot}%{_libdir}/libsatsolver.la
-
-#%post -p /sbin/ldconfig
-#%postun -p /sbin/ldconfig
+make DESTDIR=$RPM_BUILD_ROOT install

%clean
rm -rf "$RPM_BUILD_ROOT"

-#%files
-#%defattr(-,root,root)
+%files
+%defattr(-,root,root)
+%doc LICENSE*
+/usr/bin/*

%files devel
%defattr(-,root,root)
-%{_libdir}/libsatsolver.a
+%_libdir/libsatsolver.a
%doc doc/README*
%doc doc/THEORY
%doc doc/PLANNING
-%dir %{_includedir}/satsolver
-%{_includedir}/satsolver/*
+%dir /usr/include/satsolver
+/usr/include/satsolver/*

%files ruby
%defattr(-,root,root,-)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/satsolver-0.0.4/src/policy.h
new/satsolver-0.0.5/src/policy.h
--- old/satsolver-0.0.4/src/policy.h 2007-11-10 23:24:18.000000000 +0100
+++ new/satsolver-0.0.5/src/policy.h 2007-11-15 13:33:35.000000000 +0100
@@ -23,4 +23,7 @@

extern int policy_illegal_archchange(Pool *pool, Solvable *s1, Solvable *s2);
extern int policy_illegal_vendorchange(Pool *pool, Solvable *s1, Solvable
*s2);
-extern void policy_findupdatepackages(Solver *solv, Solvable *s, Queue *qs,
int allowall);
+extern void policy_findupdatepackages(Solver *solv,
+ Solvable *s,
+ Queue *qs,
+ int allowall); /* do not regard policies
for vendor,architecuture,... change */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/satsolver-0.0.4/src/solver.c
new/satsolver-0.0.5/src/solver.c
--- old/satsolver-0.0.4/src/solver.c 2007-11-15 00:22:22.000000000 +0100
+++ new/satsolver-0.0.5/src/solver.c 2007-11-16 09:27:24.000000000 +0100
@@ -550,15 +550,12 @@
Id v, vv;
int decisionstart;

- /* no learnt rules for now */
- if (solv->learntrules && solv->learntrules != solv->nrules)
- abort();
-
decisionstart = solv->decisionq.count;
- /* the loop is over jobrules, system rules and weak rules */
+ /* rpm rules don't have assertions, so we can start with the job
+ * rules */
for (ri = solv->jobrules, r = solv->rules + ri; ri < solv->nrules; ri++, r++)
{
- if (!r->w1 || r->w2)
+ if (!r->w1 || r->w2) /* disabled or no assertion */
continue;
v = r->p;
vv = v > 0 ? v : -v;
@@ -574,12 +571,19 @@
if (v < 0 && solv->decisionmap[vv] < 0)
continue;
/* found a conflict! */
+ if (solv->learntrules && ri >= solv->learntrules)
+ {
+ /* cannot happen, as this would mean that the problem
+ * was not solvable, so we wouldn't have created the
+ * learnt rule at all */
+ abort();
+ }
/* if we are weak, just disable ourself */
if (ri >= solv->weakrules)
{
printf("conflict, but I am weak, disabling ");
printrule(solv, r);
- r->w1 = 0;
+ disablerule(solv, r);
continue;
}
/* only job and system rules left */
@@ -641,6 +645,53 @@
}
}

+/*
+ * we have enabled or disabled some of our rules. We now reenable all
+ * of our learnt rules but the ones that were learnt from rules that
+ * are now disabled.
+ */
+static void
+enabledisablelearntrules(Solver *solv)
+{
+ Pool *pool = solv->pool;
+ Rule *r;
+ Id why, *whyp;
+ int i;
+
+ if (pool->verbose)
+ printf("enabledisablelearntrules called\n");
+ for (i = solv->learntrules, r = solv->rules + i; i < solv->nrules; i++, r++)
+ {
+ whyp = solv->learnt_pool.elements + solv->learnt_why.elements[i -
solv->learntrules];
+ while ((why = *whyp++) != 0)
+ {
+ if (why < 0 || why >= i)
+ abort(); /* cannot reference newer learnt rules */
+ if (!solv->rules[why].w1)
+ break;
+ }
+ /* why != 0: we found a disabled rule, disable the learnt rule */
+ if (why && r->w1)
+ {
+ if (pool->verbose)
+ {
+ printf("disabling learnt ");
+ printrule(solv, r);
+ }
+ disablerule(solv, r);
+ }
+ else if (!why && !r->w1)
+ {
+ if (pool->verbose)
+ {
+ printf("re-enabling learnt ");
+ printrule(solv, r);
+ }
+ enablerule(solv, r);
+ }
+ }
+}
+

/* FIXME: bad code ahead, replace as soon as possible */
static void
@@ -797,7 +848,7 @@
{
r = solv->rules + solv->systemrules + i;
if (r->w1 && MAPTST(&solv->noupdate, i))
- r->w1 = 0; /* was enabled, need to disable */
+ disablerule(solv, r); /* was enabled, need to disable */
}
}

@@ -990,6 +1041,9 @@
}
}
queue_free(&q);
+ if (solv->pool->verbose > 3)
+ printf ("----- addrpmrulesforsolvable end -----\n");
+
}

static void
@@ -1038,6 +1092,8 @@
addrpmrulesforsolvable(solv, s, m);
n = 0;
}
+ if (solv->pool->verbose > 3)
+ printf ("----- addrpmrulesforweak end -----\n");
}

static void
@@ -1059,6 +1115,10 @@
if (!MAPTST(m, qs.elements[i]))
addrpmrulesforsolvable(solv, pool->solvables + qs.elements[i], m);
queue_free(&qs);
+
+ if (solv->pool->verbose > 3)
+ printf ("----- addrpmrulesforupdaters -----\n");
+
}

/*
@@ -1088,6 +1148,8 @@
d = pool_queuetowhatprovides(pool, &qs); /* intern computed queue */
queue_free(&qs);
addrule(solv, s - pool->solvables, d); /* allow update of s */
+ if (solv->pool->verbose > 3)
+ printf ("----- addupdaterule end -----\n");
}


@@ -1171,6 +1233,9 @@
Id *decisionmap = solv->decisionmap;
Id *watches = solv->watches + pool->nsolvables;

+ if (solv->pool->verbose > 3)
+ printf ("----- propagate -----\n");
+
while (solv->propagate_index < solv->decisionq.count)
{
/* negate because our watches trigger if literal goes FALSE */
@@ -1264,6 +1329,9 @@
}
}
}
+ if (solv->pool->verbose > 3)
+ printf ("----- propagate end-----\n");
+
return 0; /* all is well */
}

@@ -1296,7 +1364,18 @@
idx = solv->decisionq.count;
for (;;)
{
- if (pool->verbose > 1) printrule(solv, c);
+ if (pool->verbose > 1)
+ {
+ if (c - solv->rules >= solv->learntrules)
+ printf("LEARNT ");
+ else if (c - solv->rules >= solv->weakrules)
+ printf("WEAK ");
+ else if (c - solv->rules >= solv->systemrules)
+ printf("SYSTEM ");
+ else if (c - solv->rules >= solv->jobrules)
+ printf("JOB ");
+ printrule(solv, c);
+ }
queue_push(&solv->learnt_pool, c - solv->rules);
dp = c->d ? pool->whatprovidesdata + c->d : 0;
for (i = -1; ; i++)
@@ -1406,10 +1485,14 @@
int i;
Id v;

+#if 0
/* delete all learnt rules */
solv->nrules = solv->learntrules;
queue_empty(&solv->learnt_why);
queue_empty(&solv->learnt_pool);
+#else
+ enabledisablelearntrules(solv);
+#endif

/* redo all direct rpm rule decisions */
/* we break at the first decision with a why attached, this is
@@ -1439,8 +1522,8 @@
/* redo all job/system decisions */
makeruledecisions(solv);
if (solv->pool->verbose > 1)
- printf("decisions after adding job and system rules: %d\n",
solv->decisionq.count);
- /* recreate watches */
+ printf("decisions so far: %d\n", solv->decisionq.count);
+ /* recreate watch chains */
makewatches(solv);
}

@@ -1601,7 +1684,7 @@
r = solv->rules + lastweak;
printf("disabling weak ");
printrule(solv, r);
- r->w1 = 0;
+ disablerule(solv, r);
reset_solver(solv);
return 1;
}
@@ -1908,12 +1991,12 @@
printrule(solv, solv->rules + i);
}

- /* all new rules are learnt after this point */
- solv->learntrules = solv->nrules;
- /* crate watches lists */
+ /* create watches chains */
makewatches(solv);

if (pool->verbose) printf("initial decisions: %d\n", solv->decisionq.count);
+ if (pool->verbose > 3)
+ printdecisions (solv);

/* start SAT algorithm */
level = 1;
@@ -1929,7 +2012,7 @@

if (level == 1)
{
- if (pool->verbose) printf("propagating (%d %d)...\n",
solv->propagate_index, solv->decisionq.count);
+ if (pool->verbose) printf("propagating (propagate_index: %d; size
decisionq: %d)...\n", solv->propagate_index, solv->decisionq.count);
if ((r = propagate(solv, level)) != 0)
{
if (analyze_unsolvable(solv, r, disablerules))
@@ -3271,9 +3354,9 @@
/* we create all update rules, but disable some later on depending on
the job */
for (i = installed->start, s = pool->solvables + i; i < installed->end;
i++, s++)
if (s->repo == installed)
- addupdaterule(solv, s, 0);
+ addupdaterule(solv, s, 0); /* allowall = 0 */
else
- addupdaterule(solv, 0, 0); /* create dummy rule */
+ addupdaterule(solv, 0, 0); /* create dummy rule; allowall = 0 */
/* consistency check: we added a rule for _every_ system solvable */
if (solv->nrules - solv->systemrules != installed->end -
installed->start)
abort();
@@ -3315,6 +3398,9 @@
}
}

+ /* all new rules are learnt after this point */
+ solv->learntrules = solv->nrules;
+
/*
* solve !
*
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/satsolver-0.0.4/tools/repo_helix.c
new/satsolver-0.0.5/tools/repo_helix.c
--- old/satsolver-0.0.4/tools/repo_helix.c 2007-11-14 21:35:50.000000000
+0100
+++ new/satsolver-0.0.5/tools/repo_helix.c 2007-11-16 12:30:05.000000000
+0100
@@ -667,9 +667,9 @@
{
char newdep[100];
strcpy(newdep, "kernel(");
- strncat(newdep, cflavor, sizeof(newdep));
- strncat(newdep, ":", sizeof(newdep));
- strncat(newdep, depname + strlen("kernel("), 100);
+ strncat(newdep, cflavor, sizeof(newdep) - 1);
+ strncat(newdep, ":", sizeof(newdep) - 1);
+ strncat(newdep, depname + strlen("kernel("),
sizeof(newdep) - 1);
pid = str2id(pool, newdep, 1);
if (prd)
pid = rel2id(pool, pid, prd->evr, prd->flags, 1);
@@ -704,9 +704,9 @@
{
char newdep[100];
strcpy(newdep, "kernel(");
- strncat(newdep, cflavor, sizeof(newdep));
- strncat(newdep, ":", sizeof(newdep));
- strncat(newdep, depname + strlen("kernel("), 100);
+ strncat(newdep, cflavor, sizeof(newdep) - 1);
+ strncat(newdep, ":", sizeof(newdep) - 1);
+ strncat(newdep, depname + strlen("kernel("),
sizeof(newdep) - 1);
pid = str2id(pool, newdep, 1);
if (prd)
pid = rel2id(pool, pid, prd->evr, prd->flags, 1);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn
--exclude=.svnignore old/satsolver-0.0.4/VERSION.cmake
new/satsolver-0.0.5/VERSION.cmake
--- old/satsolver-0.0.4/VERSION.cmake 2007-11-15 12:42:40.000000000 +0100
+++ new/satsolver-0.0.5/VERSION.cmake 2007-11-16 12:22:55.000000000 +0100
@@ -46,5 +46,5 @@

SET(LIBSATSOLVER_MAJOR "0")
SET(LIBSATSOLVER_MINOR "0")
-SET(LIBSATSOLVER_PATCH "4")
+SET(LIBSATSOLVER_PATCH "5")



++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-commit+help@xxxxxxxxxxxx

< Previous Next >
This Thread