+static void flag_related_packages(pkg_t *pkg, int state_flags)
+{
+ int i, j;
+ compound_depend_t *deps;
+
+ for (deps = pkg_get_ptr(pkg, PKG_DEPENDS), i = 0; deps && deps[i].type; i++)
+ for (j = 0; j < deps[i].possibility_count; j++) {
+ if ((deps[i].possibilities[j]->pkg->state_flag & state_flags) != state_flags) {
+ opkg_msg(DEBUG, "propagating pkg flag to dependent abpkg %s\n",
+ deps[i].possibilities[j]->pkg->name);
+ deps[i].possibilities[j]->pkg->state_flag |= state_flags;
+ }
+ }
+
+ for (deps = pkg_get_ptr(pkg, PKG_CONFLICTS), i = 0; deps && deps[i].type; i++)
+ for (j = 0; j < deps[i].possibility_count; j++) {
+ if ((deps[i].possibilities[j]->pkg->state_flag & state_flags) != state_flags) {
+ opkg_msg(DEBUG, "propagating pkg flag to conflicting abpkg %s\n",
+ deps[i].possibilities[j]->pkg->name);
+ deps[i].possibilities[j]->pkg->state_flag |= state_flags;
+ }
+ }
+}
+