opkg: Add patch to fix removing packages with recommends
authorAndrei Gherzan <andrei@gherzan.ro>
Sun, 21 Oct 2012 15:40:40 +0000 (18:40 +0300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 23 Oct 2012 11:28:32 +0000 (12:28 +0100)
While removing a package with opkg, the process shouldn't be blocked if
another package RECOMMENDS the package wanted to be removed. This is
because, while generating the dependencies, opkg adds dependencies to
depended_upon_by even if dependency's type is RECOMMEND. The fix is to
skip dependencies of type RECOMMEND while constructing depended_upon_by.

[YOCTO: #2431]

(From OE-Core rev: 08a5ef44c7aa58ffcad0457e8dda3504f2c3192b)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/opkg/opkg/don-t-add-recommends-pkgs-to-depended-upon-by.patch [new file with mode: 0644]
meta/recipes-devtools/opkg/opkg_svn.bb

diff --git a/meta/recipes-devtools/opkg/opkg/don-t-add-recommends-pkgs-to-depended-upon-by.patch b/meta/recipes-devtools/opkg/opkg/don-t-add-recommends-pkgs-to-depended-upon-by.patch
new file mode 100644 (file)
index 0000000..e581dc0
--- /dev/null
@@ -0,0 +1,26 @@
+While removing a package with opkg, the process shouldn't be blocked if
+another package RECOMMENDS the package wanted to be removed. This is
+because, while generating the dependencies, opkg adds dependencies to
+depended_upon_by even if dependency's type is RECOMMEND. The fix is to
+skip dependencies of type RECOMMEND while constructing depended_upon_by.
+
+Bug info:
+https://bugzilla.yoctoproject.org/show_bug.cgi?id=2431
+
+Upstream-Status: Pending
+Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
+
+Index: trunk/libopkg/pkg_depends.c
+===================================================================
+--- trunk.orig/libopkg/pkg_depends.c   2011-09-03 05:54:56.000000000 +0300
++++ trunk/libopkg/pkg_depends.c        2012-10-20 22:23:03.783573202 +0300
+@@ -785,8 +785,7 @@
+       for (i = 0; i < count; i++) {
+               depends = &pkg->depends[i];
+               if (depends->type != PREDEPEND
+-                  && depends->type != DEPEND
+-                  && depends->type != RECOMMEND)
++                  && depends->type != DEPEND)
+                       continue;
+               for (j = 0; j < depends->possibility_count; j++) {
+                       ab_depend = depends->possibilities[j]->pkg;
index 4e83cfb..3a90677 100644 (file)
@@ -12,6 +12,7 @@ SRC_URI = "svn://opkg.googlecode.com/svn;module=trunk;protocol=http \
   file://0009-pkg_depends-fix-version-constraints.patch \
   file://0010-pkg_depends-fix-version_constraints_satisfied.patch \
   file://opkg-no-sync-offline.patch \
+  file://don-t-add-recommends-pkgs-to-depended-upon-by.patch \
 "
 
 S = "${WORKDIR}/trunk"