From 3fae0c693fa58a8e154a1d3b47497538b6230655 Mon Sep 17 00:00:00 2001 From: Timo Teräs Date: Tue, 6 Oct 2020 14:23:14 +0300 Subject: db: make the --repositories-file change more announced Document the version when changed. And print error with similar note if the given repositories-file cannot be read. --- doc/apk.8.scd | 5 +++-- src/database.c | 10 +++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/doc/apk.8.scd b/doc/apk.8.scd index 4f087c6..0ca26b1 100644 --- a/doc/apk.8.scd +++ b/doc/apk.8.scd @@ -156,8 +156,9 @@ The following options are available for all commands. *--repositories-file* _REPOFILE_ Override system repositories, see *apk-repositories*(8). Specifying this - option override the normal repositories file and repositories.d directory - processing. + option overrides the normal repositories file and repositories.d directory + processing. The given _REPOFILE_ is relative to the startup directory since + apk 2.12.0_rc2. *--wait* _TIME_ Wait for TIME seconds to get an exclusive repository lock before diff --git a/src/database.c b/src/database.c index e5d8b86..22004bc 100644 --- a/src/database.c +++ b/src/database.c @@ -1406,15 +1406,19 @@ static int add_repos_from_file(void *ctx, int dirfd, const char *file) struct apk_database *db = (struct apk_database *) ctx; apk_blob_t blob; - if (dirfd != db->root_fd) { + if (dirfd != AT_FDCWD && dirfd != db->root_fd) { /* loading from repositories.d; check extension */ if (!file_ends_with_dot_list(file)) return 0; } blob = apk_blob_from_file(dirfd, file); - if (APK_BLOB_IS_NULL(blob)) - return 0; + if (APK_BLOB_IS_NULL(blob)) { + if (dirfd != AT_FDCWD) return 0; + apk_error("failed to read repositories: %s", file); + apk_message("NOTE: --repositories-file is relative to the startup directory since apk 2.12.0_rc2"); + return -ENOENT; + } apk_blob_for_each_segment(blob, "\n", apk_db_add_repository, db); free(blob.ptr); -- cgit v1.2.3-70-g09d2