diff options
Diffstat (limited to 'main/apk-tools/0002-db-keep-packages-with-no-files-with-installed-status.patch')
-rw-r--r-- | main/apk-tools/0002-db-keep-packages-with-no-files-with-installed-status.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/main/apk-tools/0002-db-keep-packages-with-no-files-with-installed-status.patch b/main/apk-tools/0002-db-keep-packages-with-no-files-with-installed-status.patch new file mode 100644 index 000000000..3061ed560 --- /dev/null +++ b/main/apk-tools/0002-db-keep-packages-with-no-files-with-installed-status.patch @@ -0,0 +1,46 @@ +From 3f9fe4c28be7987bd404f06e27ed03aafd8e8b52 Mon Sep 17 00:00:00 2001 +From: Timo Teras <timo.teras@iki.fi> +Date: Fri, 25 Dec 2009 14:14:40 +0200 +Subject: [PATCH 2/2] db: keep packages with no files with installed status + +got broke few commits ago when apk_pkg_installed() call was +moved to happen after the package name has been read. +--- + src/database.c | 16 ++++++++++------ + 1 files changed, 10 insertions(+), 6 deletions(-) + +diff --git a/src/database.c b/src/database.c +index 5118f5c..2fcb275 100644 +--- a/src/database.c ++++ b/src/database.c +@@ -587,17 +587,21 @@ int apk_db_index_read(struct apk_database *db, struct apk_bstream *bs, int repo) + } + + /* Standard index line? */ +- if (apk_pkg_add_info(db, pkg, field, l) == 0) ++ if (apk_pkg_add_info(db, pkg, field, l) == 0) { ++ if (repo == -1 && field == 'S') { ++ /* Instert to installed database; this needs to ++ * happen after package name has been read, but ++ * before first FDB entry. */ ++ ipkg = apk_pkg_install(db, pkg); ++ diri_node = hlist_tail_ptr(&ipkg->owned_dirs); ++ } + continue; ++ } + +- if (repo != -1) { ++ if (repo != -1 || ipkg == NULL) { + apk_error("Invalid index entry '%c'", field); + return -1; + } +- if (ipkg == NULL) { +- ipkg = apk_pkg_install(db, pkg); +- diri_node = hlist_tail_ptr(&ipkg->owned_dirs); +- } + + /* Check FDB special entries */ + switch (field) { +-- +1.6.5.7 + |