diff options
Diffstat (limited to 'poky/meta/recipes-devtools/pseudo/files/0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch')
-rw-r--r-- | poky/meta/recipes-devtools/pseudo/files/0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/poky/meta/recipes-devtools/pseudo/files/0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch b/poky/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/poky/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 + |