[Buildroot] [git commit] makedevs: support optional files

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Mon Jul 3 22:54:36 UTC 2017


commit: https://git.buildroot.net/buildroot/commit/?id=bdbbc72934bc781cff7306da3c5233d21022bc33
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master

Add the 'F' file type to makedevs, that allows a file to be optional.
With this option, the line is just silently skipped if the file doesn't
exist (or is not a regular file).

This is useful for _PERMISSIONS where the file can be configured out
by package-specific configuration that is not directly handled by
Buildroot, like busybox.

Cc: Clayton Shotwell <clayton.shotwell at rockwellcollins.com>
Cc: Matthew Weber <matthew.weber at rockwellcollins.com>
Cc: Niranjan Reddy <niranjan.reddy at rockwellcollins.com>
Cc: Bryce Ferguson <bryce.ferguson at rockwellcollins.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
---
 package/makedevs/makedevs.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/package/makedevs/makedevs.c b/package/makedevs/makedevs.c
index 7092b14..1ba5936 100644
--- a/package/makedevs/makedevs.c
+++ b/package/makedevs/makedevs.c
@@ -570,9 +570,12 @@ int main(int argc, char **argv)
 				ret = EXIT_FAILURE;
 				goto loop;
 			}
-		} else if (type == 'f') {
+		} else if (type == 'f' || type == 'F') {
 			struct stat st;
 			if ((stat(full_name, &st) < 0 || !S_ISREG(st.st_mode))) {
+				if (type == 'F') {
+					continue; /*Ignore optional files*/
+				}
 				bb_perror_msg("line %d: regular file '%s' does not exist", linenum, full_name);
 				ret = EXIT_FAILURE;
 				goto loop;


More information about the buildroot mailing list