]> git.ipfire.org Git - pakfire.git/commitdiff
install: Make --without-recommended work
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 5 Jul 2021 20:33:50 +0000 (20:33 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 5 Jul 2021 20:33:50 +0000 (20:33 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/_pakfire/pakfire.c
src/libpakfire/include/pakfire/request.h
src/libpakfire/request.c
src/pakfire/cli.py

index de87c3e3584f5a649db0242305940163eace16ce..e1507af8e73e0f909896edbeb8f28ab1022fd77f 100644 (file)
@@ -275,21 +275,23 @@ ERROR:
 static PyObject* Pakfire_install(PakfireObject* self, PyObject* args, PyObject* kwargs) {
        char* kwlist[] = {
                "packages",
-               "include_recommended",
+               "without_recommended",
                NULL
        };
        char** packages = NULL;
-       int include_recommended = 1;
-       int flags = 0;
+       int without_recommended = 0;
+       int solver_flags = 0;
 
        if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O&|$p", kwlist,
-                       convert_packages, &packages, &include_recommended))
+                       convert_packages, &packages, &without_recommended))
                return NULL;
 
-       // XXX include_recommended
+       // Do not install recommended packages
+       if (without_recommended)
+               solver_flags |= PAKFIRE_REQUEST_WITHOUT_RECOMMENDED;
 
        // Run pakfire_install
-       int r = pakfire_install(self->pakfire, 0, (const char**)packages, NULL, flags, NULL);
+       int r = pakfire_install(self->pakfire, solver_flags, (const char**)packages, NULL, 0, NULL);
        if (r)
                PyErr_SetFromErrno(PyExc_OSError);
 
index 71bee559334cf893d35ce9451c321b9227e5c384..6b2db6b2543dfdf9cbfa6dd757b0121a98f2f87f 100644 (file)
@@ -30,6 +30,10 @@ struct pakfire_request;
 #include <pakfire/types.h>
 
 enum pakfire_request_flags {
+       PAKFIRE_REQUEST_WITHOUT_RECOMMENDED = 1 << 0,
+};
+
+enum pakfire_request_job_flags {
        PAKFIRE_REQUEST_KEEP_DEPS         = 1 << 0,
        PAKFIRE_REQUEST_KEEP_ORPHANED     = 1 << 1,
 };
@@ -37,7 +41,6 @@ enum pakfire_request_flags {
 enum _pakfire_solver_flags {
        PAKFIRE_SOLVER_ALLOW_UNINSTALL    = 1 << 0,
        PAKFIRE_SOLVER_FORCE_BEST         = 1 << 1,
-       PAKFIRE_SOLVER_WITHOUT_RECOMMENDS = 1 << 2,
        PAKFIRE_SOLVER_ALLOW_DOWNGRADE    = 1 << 3,
        PAKFIRE_SOLVER_ALLOW_VENDORCHANGE = 1 << 4,
 };
index 5ec58e514f3abd7ad6e580d226e97eaea33493b7..02f5d2d27d5fb62dc02551852760d575ae7c2363 100644 (file)
@@ -118,7 +118,8 @@ static int setup_solver(struct pakfire_request* request, int flags) {
        if (flags & PAKFIRE_SOLVER_ALLOW_VENDORCHANGE)
                solver_set_flag(request->solver, SOLVER_FLAG_ALLOW_VENDORCHANGE, 1);
 
-       if (flags & PAKFIRE_SOLVER_WITHOUT_RECOMMENDS)
+       // Do not install any recommended packages
+       if (flags & PAKFIRE_REQUEST_WITHOUT_RECOMMENDED)
                solver_set_flag(request->solver, SOLVER_FLAG_IGNORE_RECOMMENDED, 1);
 
        // Add multiinstall packages
index b86088fd658cfbe3ff7fb975605a34f50522792c..85317c798aa950010315fc984a49f596b18b6fd5 100644 (file)
@@ -82,7 +82,7 @@ class Cli(object):
                        help=_("Install one or more packages to the system"))
                install.add_argument("package", nargs="+",
                        help=_("Give name of at least one package to install"))
-               install.add_argument("--without-recommends", action="store_true",
+               install.add_argument("--without-recommended", action="store_true",
                        help=_("Don't install recommended packages"))
                install.set_defaults(func=self.handle_install)
 
@@ -264,7 +264,7 @@ class Cli(object):
 
        def handle_install(self, ns):
                p = self.pakfire(ns)
-               p.install(ns.package, include_recommended=not ns.without_recommends)
+               p.install(ns.package, without_recommended=not ns.without_recommended)
 
        def handle_reinstall(self, ns):
                with self.pakfire(ns) as p: