aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/opkg/opkg/status-conffile.patch
blob: 6fc405b2fd8ca71105179ee8740440884b97e240 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Upstream-Status: Submitted
Signed-off-by: Ross Burton <ross.burton@intel.com>

From 086d5083dfe0102368cb7c8ce89b0c06b64ca773 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Tue, 10 Jan 2017 15:24:59 +0000
Subject: [PATCH 1/2] opkg_cmd: only look at conffile status if we're going to
 output it

The loop to compare the recorded conffile hash with their hash on disk is
outputted at level INFO but the loop was executed at level NOTICE and higher.

This means that if a conffile had been deleted the status operation would
produce error messages for output it isn't displaying.

Signed-off-by: Ross Burton <ross.burton@intel.com>
---
 libopkg/opkg_cmd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libopkg/opkg_cmd.c b/libopkg/opkg_cmd.c
index ba57c6a..37416fd 100644
--- a/libopkg/opkg_cmd.c
+++ b/libopkg/opkg_cmd.c
@@ -638,7 +638,7 @@ static int opkg_info_status_cmd(int argc, char **argv, int installed_only)
 
         pkg_formatted_info(stdout, pkg);
 
-        if (opkg_config->verbosity >= NOTICE) {
+        if (opkg_config->verbosity >= INFO) {
             conffile_list_elt_t *iter;
             for (iter = nv_pair_list_first(&pkg->conffiles); iter;
                  iter = nv_pair_list_next(&pkg->conffiles, iter)) {
-- 
2.8.1

From 225e30e0f9fa7cfeaa3f89e2713e5147ab371def Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Tue, 10 Jan 2017 15:28:47 +0000
Subject: [PATCH 2/2] conffile: gracefully handle deleted conffiles in
 conffile_has_been_modified

Handle conffiles that don't exist gracefully so that instead of showing an error
message from file_md5sum_alloc() a notice that the file has been deleted is
shown instead.

Signed-off-by: Ross Burton <ross.burton@intel.com>
---
 libopkg/conffile.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/libopkg/conffile.c b/libopkg/conffile.c
index b2f2469..7b4b87b 100644
--- a/libopkg/conffile.c
+++ b/libopkg/conffile.c
@@ -51,6 +51,11 @@ int conffile_has_been_modified(conffile_t * conffile)
     }
 
     root_filename = root_filename_alloc(filename);
+    if (!file_exists(root_filename)) {
+        opkg_msg(INFO, "Conffile %s deleted\n", conffile->name);
+        free(root_filename);
+        return 1;
+    }
 
     md5sum = file_md5sum_alloc(root_filename);
 
-- 
2.8.1