summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/pseudo/files/0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/pseudo/files/0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch')
-rw-r--r--meta/recipes-devtools/pseudo/files/0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/meta/recipes-devtools/pseudo/files/0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch b/meta/recipes-devtools/pseudo/files/0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch
new file mode 100644
index 0000000000..9c49e33b02
--- /dev/null
+++ b/meta/recipes-devtools/pseudo/files/0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch
@@ -0,0 +1,49 @@
+From b0902e36108b49e6bc88d6b251cc2f8cffcd5a13 Mon Sep 17 00:00:00 2001
+From: Ricardo Ribalda <ricardo@ribalda.com>
+Date: Sun, 5 Apr 2020 11:40:30 +0000
+Subject: [PATCH] pseudo: On a DB fixup remove files that do not exist anymore
+
+If the user decides to fix a database, remove the files that do not
+exist anymore.
+If only DB test is selected do not change the behaviour (return error).
+
+Signed-off-by: Ricardo Ribalda <ricardo@ribalda.com>
+Upstream-Status: Submitted [https://lists.openembedded.org/g/openembedded-core/message/137045]
+---
+ pseudo.c | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/pseudo.c b/pseudo.c
+index 0f5850e..98e5b0c 100644
+--- a/pseudo.c
++++ b/pseudo.c
+@@ -1087,9 +1087,15 @@ pseudo_db_check(int fix) {
+ int fixup_needed = 0;
+ pseudo_debug(PDBGF_DB, "Checking <%s>\n", m->path);
+ if (lstat(m->path, &buf)) {
+- errors = EXIT_FAILURE;
+- pseudo_diag("can't stat <%s>\n", m->path);
+- continue;
++ if (!fix) {
++ pseudo_diag("can't stat <%s>\n", m->path);
++ errors = EXIT_FAILURE;
++ continue;
++ } else {
++ pseudo_debug(PDBGF_DB, "can't stat <%s>\n", m->path);
++ fixup_needed = 2;
++ goto do_fixup;
++ }
+ }
+ /* can't check for device type mismatches, uid/gid, or
+ * permissions, because those are the very things we
+@@ -1125,6 +1131,7 @@ pseudo_db_check(int fix) {
+ S_ISDIR(m->mode));
+ fixup_needed = 2;
+ }
++ do_fixup:
+ if (fixup_needed) {
+ /* in fixup mode, either delete (mismatches) or
+ * correct (dev/ino).
+--
+2.21.1
+