[PATCH] opkg: prioritize the latest provider (not the first)

Peter Stadler peter.stadler at student.uibk.ac.at
Thu Jul 16 10:28:55 EDT 2020


Set `priorized_matching` to the latest provider with maximum priority, such
that it is similar to the other selections (especially `good_pkg_by_name`).
So, we have consistency between using `opkg install apkg` and installing a
package that `DEPENDS:=+apkg` (if there are two providers for `apkg`).

Signed-off-by: Peter Stadler <peter.stadler at student.uibk.ac.at>
---
 libopkg/pkg_hash.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/libopkg/pkg_hash.c b/libopkg/pkg_hash.c
index 52c64ff..9b22f01 100644
--- a/libopkg/pkg_hash.c
+++ b/libopkg/pkg_hash.c
@@ -410,10 +410,15 @@ pkg_t *pkg_hash_fetch_best_installation_candidate(abstract_pkg_t * apkg,
 		if (constraint_fcn(matching, cdata)) {
 			opkg_msg(DEBUG, "Candidate: %s %s.\n",
 				 matching->name, pkg_get_string(matching, PKG_VERSION));
-			good_pkg_by_name = matching;
+			/* Select the first (the same as for priorized_matching) */
+			if (good_pkg_by_name == NULL) {
+				good_pkg_by_name = matching;
+                        }
 			/* It has been provided by hand, so it is what user want */
-			if (matching->provided_by_hand == 1)
+			if (matching->provided_by_hand == 1) {
+				good_pkg_by_name = matching;
 				break;
+			}
 		}
 	}
 
-- 
2.25.3




More information about the openwrt-devel mailing list