From patchwork Sun Oct 21 15:40:40 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [V2,2/5] opkg: Add patch to fix removing packages with recommends Date: Sun, 21 Oct 2012 15:40:40 -0000 From: Andrei Gherzan X-Patchwork-Id: 38367 Message-Id: <1f862ff3b195e8fda9f58bc3a5e5bd083bca3944.1350833713.git.andrei@gherzan.ro> To: openembedded-core@lists.openembedded.org 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] Signed-off-by: Andrei Gherzan --- ...t-add-recommends-pkgs-to-depended-upon-by.patch | 26 ++++++++++++++++++++ meta/recipes-devtools/opkg/opkg_svn.bb | 1 + 2 files changed, 27 insertions(+) create mode 100644 meta/recipes-devtools/opkg/opkg/don-t-add-recommends-pkgs-to-depended-upon-by.patch 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 index 0000000..e581dc0 --- /dev/null +++ b/meta/recipes-devtools/opkg/opkg/don-t-add-recommends-pkgs-to-depended-upon-by.patch @@ -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 + +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; diff --git a/meta/recipes-devtools/opkg/opkg_svn.bb b/meta/recipes-devtools/opkg/opkg_svn.bb index 4e83cfb..3a90677 100644 --- a/meta/recipes-devtools/opkg/opkg_svn.bb +++ b/meta/recipes-devtools/opkg/opkg_svn.bb @@ -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"