def update(self, pkgs):
request = self.create_request()
- repo_installed = self.solver.get_repo("installed")
- assert repo_installed
-
- for solvable in repo_installed:
- request.update(solvable)
+ # If there are given any packets on the command line, we will
+ # only update them. Otherwise, we update the whole system.
+ if pkgs:
+ update = False
+ for pkg in pkgs:
+ request.update(pkg)
+ else:
+ update = True
solver = self.create_solver()
- t = solver.solve(request, update=True)
+ t = solver.solve(request, update=update)
if not t:
return
# Configure the solver for an update.
if update:
- self._solver.set_update_system(True)
+ self._solver.set_updatesystem(True)
self._solver.set_do_split_provides(True)
res = self._solver.solve(request)
{"set_allow_uninstall", (PyCFunction)Solver_set_allow_uninstall, METH_VARARGS, NULL},
{"get_updatesystem", (PyCFunction)Solver_get_updatesystem, METH_NOARGS, NULL},
{"set_updatesystem", (PyCFunction)Solver_set_updatesystem, METH_VARARGS, NULL},
+ {"get_do_split_provides", (PyCFunction)Solver_get_do_split_provides, METH_NOARGS, NULL},
+ {"set_do_split_provides", (PyCFunction)Solver_set_do_split_provides, METH_VARARGS, NULL},
{"get_problems", (PyCFunction)Solver_get_problems, METH_VARARGS, NULL},
{ NULL, NULL, 0, NULL }
};
Py_RETURN_NONE;
}
+PyObject *Solver_get_do_split_provides(SolverObject *self, PyObject *args) {
+ return Py_BuildValue("i", self->_solver->dosplitprovides);
+}
+
+PyObject *Solver_set_do_split_provides(SolverObject *self, PyObject *args) {
+ int val;
+
+ if (!PyArg_ParseTuple(args, "i", &val)) {
+ /* XXX raise exception */
+ }
+
+ self->_solver->dosplitprovides = val;
+
+ Py_RETURN_NONE;
+}
+
PyObject *Solver_solve(SolverObject *self, PyObject *args) {
RequestObject *request;
extern PyObject *Solver_set_allow_uninstall(SolverObject *self, PyObject *args);
extern PyObject *Solver_get_updatesystem(SolverObject *self, PyObject *args);
extern PyObject *Solver_set_updatesystem(SolverObject *self, PyObject *args);
+extern PyObject *Solver_get_do_split_provides(SolverObject *self, PyObject *args);
+extern PyObject *Solver_set_do_split_provides(SolverObject *self, PyObject *args);
extern PyObject *Solver_solve(SolverObject *self, PyObject *args);
extern PyObject *Solver_get_problems(SolverObject *self, PyObject *args);