summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRicardo Ribalda Delgado <ricardo@ribalda.com>2020-04-05 13:47:12 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-04-06 16:45:11 +0100
commitc4cd85ca3e07e1bcc2a55dfd519f62b6e7a596d6 (patch)
tree9ddbf67c55c54d0fc69cfa0a7d5242d12f8f3d50
parent242412656b8c7bd684ebca3da71a0d07cd69a830 (diff)
downloadpoky-c4cd85ca3e07e1bcc2a55dfd519f62b6e7a596d6.tar.gz
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>
-rw-r--r--meta/recipes-devtools/pseudo/files/0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch49
-rw-r--r--meta/recipes-devtools/pseudo/pseudo_git.bb1
2 files changed, 50 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 @@
1From b0902e36108b49e6bc88d6b251cc2f8cffcd5a13 Mon Sep 17 00:00:00 2001
2From: Ricardo Ribalda <ricardo@ribalda.com>
3Date: Sun, 5 Apr 2020 11:40:30 +0000
4Subject: [PATCH] pseudo: On a DB fixup remove files that do not exist anymore
5
6If the user decides to fix a database, remove the files that do not
7exist anymore.
8If only DB test is selected do not change the behaviour (return error).
9
10Signed-off-by: Ricardo Ribalda <ricardo@ribalda.com>
11Upstream-Status: Submitted [https://lists.openembedded.org/g/openembedded-core/message/137045]
12---
13 pseudo.c | 13 ++++++++++---
14 1 file changed, 10 insertions(+), 3 deletions(-)
15
16diff --git a/pseudo.c b/pseudo.c
17index 0f5850e..98e5b0c 100644
18--- a/pseudo.c
19+++ b/pseudo.c
20@@ -1087,9 +1087,15 @@ pseudo_db_check(int fix) {
21 int fixup_needed = 0;
22 pseudo_debug(PDBGF_DB, "Checking <%s>\n", m->path);
23 if (lstat(m->path, &buf)) {
24- errors = EXIT_FAILURE;
25- pseudo_diag("can't stat <%s>\n", m->path);
26- continue;
27+ if (!fix) {
28+ pseudo_diag("can't stat <%s>\n", m->path);
29+ errors = EXIT_FAILURE;
30+ continue;
31+ } else {
32+ pseudo_debug(PDBGF_DB, "can't stat <%s>\n", m->path);
33+ fixup_needed = 2;
34+ goto do_fixup;
35+ }
36 }
37 /* can't check for device type mismatches, uid/gid, or
38 * permissions, because those are the very things we
39@@ -1125,6 +1131,7 @@ pseudo_db_check(int fix) {
40 S_ISDIR(m->mode));
41 fixup_needed = 2;
42 }
43+ do_fixup:
44 if (fixup_needed) {
45 /* in fixup mode, either delete (mismatches) or
46 * correct (dev/ino).
47--
482.21.1
49
diff --git a/meta/recipes-devtools/pseudo/pseudo_git.bb b/meta/recipes-devtools/pseudo/pseudo_git.bb
index 89e43c5996..a3049c5e6c 100644
--- a/meta/recipes-devtools/pseudo/pseudo_git.bb
+++ b/meta/recipes-devtools/pseudo/pseudo_git.bb
@@ -11,6 +11,7 @@ SRC_URI = "git://git.yoctoproject.org/pseudo \
11 file://0001-realpath.c-Remove-trailing-slashes.patch \ 11 file://0001-realpath.c-Remove-trailing-slashes.patch \
12 file://0006-xattr-adjust-for-attr-2.4.48-release.patch \ 12 file://0006-xattr-adjust-for-attr-2.4.48-release.patch \
13 file://seccomp.patch \ 13 file://seccomp.patch \
14 file://0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch \
14 " 15 "
15 16
16SRCREV = "060058bb29f70b244e685b3c704eb0641b736f73" 17SRCREV = "060058bb29f70b244e685b3c704eb0641b736f73"