opkg: Fix add-exclude.patch
authorPaul Barker <paul@paulbarker.me.uk>
Wed, 19 Feb 2014 15:15:17 +0000 (15:15 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 20 Feb 2014 14:28:12 +0000 (14:28 +0000)
The case statement for ARGS_OPT_ADD_EXCLUDE added to the argument handling
switch statement in opkg was missing a "break;" at the end, so it was falling
through into the handler for ARGS_OPT_NOACTION. Thus when "--add-exclude" was
specified on the command line it was as if "--noaction" was also being
specified. This appears to be the root cause of YP bug 5311.

Tested using the case described by Alexandru Georgescu in YP bug 5311:

    MACHINE ??= "qemux86"
    IMAGE_INSTALL_append = " man"
    PACKAGE_EXCLUDE = "man"
    PACKAGE_CLASSES ?= "package_ipk"

Built image and boot tested on qemu, ensured that man was not installed but the
rest of the system was installed correctly.

(From OE-Core rev: c269cea3117d7fa120c02bdb47d1adf18a1bcba1)

Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
Cc: Mark Hatle <mark.hatle@windriver.com>
Cc: Saul Wold <saul.wold@intel.com>
Cc: Alexandru Georgescu <alexandru.c.georgescu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/opkg/opkg/add-exclude.patch

index 8489058..8d328d5 100644 (file)
@@ -84,7 +84,7 @@ Index: trunk/src/opkg-cl.c
        {"test", 0, 0, ARGS_OPT_NOACTION},
        {"tmp-dir", 1, 0, 't'},
        {"tmp_dir", 1, 0, 't'},
-@@ -198,6 +200,17 @@ args_parse(int argc, char *argv[])
+@@ -198,6 +200,18 @@ args_parse(int argc, char *argv[])
                        }
                        free(tuple);
                        break;
@@ -99,10 +99,11 @@ Index: trunk/src/opkg-cl.c
 +                              conf->exclude_list = realloc(conf->exclude_list, sizeof(char *) * conf->exclude_count);
 +                              conf->exclude_list[conf->exclude_count - 1] = tuple;
 +                      }
++                      break;
                case ARGS_OPT_NOACTION:
                        conf->noaction = 1;
                        break;
-@@ -282,6 +295,7 @@ usage()
+@@ -282,6 +296,7 @@ usage()
        printf("\t--offline-root <dir>  offline installation of packages.\n");
        printf("\t--add-arch <arch>:<prio>      Register architecture with given priority\n");
        printf("\t--add-dest <name>:<path>      Register destination with given path\n");