aboutsummaryrefslogtreecommitdiffstats
path: root/main/apk-tools/0002-db-keep-packages-with-no-files-with-installed-status.patch
diff options
context:
space:
mode:
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.patch46
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 0000000000..3061ed5609
--- /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
+