mirror of
https://git.yoctoproject.org/poky
synced 2026-02-07 09:16:36 +01:00
pseudo: During DB fix, remove files that do not exist
If a file does not exist, either because it has been removed outside bitbake, or because only some of the files have been moved to a different location, delete it from the pseudo-db is the user decides to fix the database. (From OE-Core rev: 79f7212ae71a4eb9e7abfe2c333b035ccc10e5c5) Signed-off-by: Ricardo Ribalda Delgado <ricardo@ribalda.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
242412656b
commit
c4cd85ca3e
@@ -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
|
||||
|
||||
@@ -11,6 +11,7 @@ SRC_URI = "git://git.yoctoproject.org/pseudo \
|
||||
file://0001-realpath.c-Remove-trailing-slashes.patch \
|
||||
file://0006-xattr-adjust-for-attr-2.4.48-release.patch \
|
||||
file://seccomp.patch \
|
||||
file://0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch \
|
||||
"
|
||||
|
||||
SRCREV = "060058bb29f70b244e685b3c704eb0641b736f73"
|
||||
|
||||
Reference in New Issue
Block a user