summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/database.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/database.c b/src/database.c
index 4366223..a84f2e6 100644
--- a/src/database.c
+++ b/src/database.c
@@ -645,15 +645,6 @@ int apk_db_open(struct apk_database *db, const char *root)
free(db->root);
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");
@@ -663,6 +654,19 @@ int apk_db_open(struct apk_database *db, const char *root)
if (r != 0)
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)
apk_db_add_repository(db, APK_BLOB_STR(apk_repository));