fetch: do not include installed non-repository files in search

we do not create mirror repositories from other valid repositories,
not from what was installed locally.
cute-signatures
Timo Teras 2010-03-04 14:01:37 +02:00
parent 4b29ea2a08
commit ef7d467083
3 changed files with 18 additions and 12 deletions

View File

@ -140,14 +140,17 @@ struct apk_db_file *apk_db_file_query(struct apk_database *db,
apk_blob_t dir, apk_blob_t dir,
apk_blob_t name); apk_blob_t name);
#define APK_OPENF_READ 0x0001 #define APK_OPENF_READ 0x0001
#define APK_OPENF_WRITE 0x0002 #define APK_OPENF_WRITE 0x0002
#define APK_OPENF_CREATE 0x0004 #define APK_OPENF_CREATE 0x0004
#define APK_OPENF_NO_INSTALLED 0x0010 #define APK_OPENF_NO_INSTALLED 0x0010
#define APK_OPENF_NO_SCRIPTS 0x0020 #define APK_OPENF_NO_SCRIPTS 0x0020
#define APK_OPENF_NO_WORLD 0x0040 #define APK_OPENF_NO_WORLD 0x0040
#define APK_OPENF_NO_REPOS 0x0080 #define APK_OPENF_NO_SYS_REPOS 0x0100
#define APK_OPENF_NO_INSTALLED_REPO 0x0200
#define APK_OPENF_NO_REPOS (APK_OPENF_NO_SYS_REPOS | \
APK_OPENF_NO_INSTALLED_REPO)
#define APK_OPENF_NO_STATE (APK_OPENF_NO_INSTALLED | \ #define APK_OPENF_NO_STATE (APK_OPENF_NO_INSTALLED | \
APK_OPENF_NO_SCRIPTS | \ APK_OPENF_NO_SCRIPTS | \
APK_OPENF_NO_WORLD) APK_OPENF_NO_WORLD)

View File

@ -1131,7 +1131,7 @@ int apk_db_open(struct apk_database *db, struct apk_db_options *dbopts)
goto ret_r; goto ret_r;
} }
if (!(dbopts->open_flags & APK_OPENF_NO_REPOS)) { if (!(dbopts->open_flags & APK_OPENF_NO_INSTALLED_REPO)) {
if (apk_db_cache_active(db)) { if (apk_db_cache_active(db)) {
bs = apk_bstream_from_file(db->cache_fd, "installed"); bs = apk_bstream_from_file(db->cache_fd, "installed");
if (bs != NULL) { if (bs != NULL) {
@ -1139,7 +1139,8 @@ int apk_db_open(struct apk_database *db, struct apk_db_options *dbopts)
bs->close(bs, NULL); bs->close(bs, NULL);
} }
} }
}
if (!(dbopts->open_flags & APK_OPENF_NO_SYS_REPOS)) {
list_for_each_entry(repo, &dbopts->repository_list, list) { list_for_each_entry(repo, &dbopts->repository_list, list) {
r = apk_db_add_repository(db, APK_BLOB_STR(repo->url)); r = apk_db_add_repository(db, APK_BLOB_STR(repo->url));
rr = r ?: rr; rr = r ?: rr;

View File

@ -240,10 +240,12 @@ static struct apk_option fetch_options[] = {
static struct apk_applet apk_fetch = { static struct apk_applet apk_fetch = {
.name = "fetch", .name = "fetch",
.help = "Download PACKAGEs from repositories to a local directory from " .help = "Download PACKAGEs from global repositories to a local "
"which a local mirror repository can be created.", "directory from which a local mirror repository can be "
"created.",
.arguments = "PACKAGE...", .arguments = "PACKAGE...",
.open_flags = APK_OPENF_READ|APK_OPENF_NO_STATE, .open_flags = APK_OPENF_READ | APK_OPENF_NO_STATE |
APK_OPENF_NO_INSTALLED_REPO,
.context_size = sizeof(struct fetch_ctx), .context_size = sizeof(struct fetch_ctx),
.num_options = ARRAY_SIZE(fetch_options), .num_options = ARRAY_SIZE(fetch_options),
.options = fetch_options, .options = fetch_options,