diff options
Diffstat (limited to 'config/uefitool/patches/0001-common-filesystem-define-ACCESSPERMS-if-undefined.patch')
-rw-r--r-- | config/uefitool/patches/0001-common-filesystem-define-ACCESSPERMS-if-undefined.patch | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/config/uefitool/patches/0001-common-filesystem-define-ACCESSPERMS-if-undefined.patch b/config/uefitool/patches/0001-common-filesystem-define-ACCESSPERMS-if-undefined.patch new file mode 100644 index 00000000..56ba0cb6 --- /dev/null +++ b/config/uefitool/patches/0001-common-filesystem-define-ACCESSPERMS-if-undefined.patch @@ -0,0 +1,54 @@ +From 35f5bbf5aa7dc32f0140147737af73fd3866f455 Mon Sep 17 00:00:00 2001 +From: Leah Rowe <info@minifree.org> +Date: Sun, 28 Jul 2024 16:04:30 +0100 +Subject: [PATCH 1/1] common/filesystem: define ACCESSPERMS if undefined + +normally defined in sys/stat.h on various libc implementations, +but musl libc doesn't seem to have it, leading to this build +issue: + +common/filesystem.cpp:86:38: error: 'ACCESSPERMS' was not declared in this scope + 86 | return (mkdir(dir.toLocal8Bit(), ACCESSPERMS) == 0); + +ACCESSPERMS is typically defined as the result of bitwise OR: +S_IRWXU | S_IRWXG | S_IRWXO + +This creates the chmod permission 0777, used on the mkdir() call. + +ACCESSPERMS is supported on GNU C Library, for compatibility with +BSD libc implementations; the latter also implements ALLPERMS +and DEFFILEMODE, which don't seem to be used by uefitool regardless. + +Signed-off-by: Leah Rowe <info@minifree.org> +--- + common/filesystem.cpp | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/common/filesystem.cpp b/common/filesystem.cpp +index b2b8d65..9672e07 100644 +--- a/common/filesystem.cpp ++++ b/common/filesystem.cpp +@@ -15,6 +15,13 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + #include <sys/stat.h> + #include <fstream> + ++/* musl libc does not define ACCESSPERMS, seen on glibc and many bsd libc. ++ * let's do alpine linux users a massive favour, so that the code compiles. ++ */ ++#ifndef ACCESSPERMS ++#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) /* chmod permission: 0777 */ ++#endif ++ + bool readFileIntoBuffer(const UString& inPath, UByteArray& buf) + { + if (!isExistOnFs(inPath)) +@@ -103,4 +110,4 @@ UString getAbsPath(const UString & path) { + return UString(abs); + return path; + } +-#endif +\ No newline at end of file ++#endif +-- +2.39.2 + |