db: apk_db_read_state() needs to be before apk_db_add_repository()

Otherwise installed db load fails due to internal reasons. This would
cause a lot of other funny stuff happen.
cute-signatures
Timo Teras 2009-01-16 16:25:19 +02:00
parent 82b9cb31fd
commit edfaac3099
1 changed files with 13 additions and 9 deletions

View File

@ -645,15 +645,6 @@ int apk_db_open(struct apk_database *db, const char *root)
free(db->root); free(db->root);
return -errno; return -errno;
} }
if (apk_repos == NULL)
apk_repos = "/etc/apk/repositories";
blob = apk_blob_from_file(apk_repos);
if (!APK_BLOB_IS_NULL(blob)) {
apk_blob_for_each_segment(blob, "\n",
apk_db_add_repository, db);
free(blob.ptr);
}
} }
blob = APK_BLOB_STR("etc:-etc/init.d"); blob = APK_BLOB_STR("etc:-etc/init.d");
@ -663,6 +654,19 @@ int apk_db_open(struct apk_database *db, const char *root)
if (r != 0) if (r != 0)
return r; return r;
if (root != NULL) {
if (apk_repos == NULL)
apk_repos = "/etc/apk/repositories";
blob = apk_blob_from_file(apk_repos);
if (!APK_BLOB_IS_NULL(blob)) {
r = apk_blob_for_each_segment(blob, "\n",
apk_db_add_repository, db);
free(blob.ptr);
if (r != 0)
return r;
}
}
if (apk_repository != NULL) if (apk_repository != NULL)
apk_db_add_repository(db, APK_BLOB_STR(apk_repository)); apk_db_add_repository(db, APK_BLOB_STR(apk_repository));