commit:     a28bbe7cb1a166b1b71c20e3a4d2734e0593de76
Author:     Jory Pratt <anarchy <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 18 19:12:21 2019 +0000
Commit:     Jory Pratt <anarchy <AT> gentoo <DOT> org>
CommitDate: Thu Apr 18 19:14:04 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a28bbe7c

sys-auth/elogind: fix musl unable to write to cgroup

Package-Manager: Portage-2.3.63, Repoman-2.3.12
Signed-off-by: Jory Pratt <anarchy <AT> gentoo.org>

 sys-auth/elogind/elogind-241.2.ebuild              |  1 +
 .../elogind/files/elogind-241.2-unbreak-musl.patch | 41 ++++++++++++++++++++++
 2 files changed, 42 insertions(+)

diff --git a/sys-auth/elogind/elogind-241.2.ebuild 
b/sys-auth/elogind/elogind-241.2.ebuild
index 37406f56c43..2b18cff05a4 100644
--- a/sys-auth/elogind/elogind-241.2.ebuild
+++ b/sys-auth/elogind/elogind-241.2.ebuild
@@ -42,6 +42,7 @@ PDEPEND="
 DOCS=( src/libelogind/sd-bus/GVARIANT-SERIALIZATION )
 
 PATCHES=(
+       "${FILESDIR}/${PN}-241.2-unbreak-musl.patch"
        "${FILESDIR}/${PN}-241.1-docs.patch"
 )
 

diff --git a/sys-auth/elogind/files/elogind-241.2-unbreak-musl.patch 
b/sys-auth/elogind/files/elogind-241.2-unbreak-musl.patch
new file mode 100644
index 00000000000..3688402d2e0
--- /dev/null
+++ b/sys-auth/elogind/files/elogind-241.2-unbreak-musl.patch
@@ -0,0 +1,41 @@
+From cac266581e2bc3595be60171910db6274c3bf944 Mon Sep 17 00:00:00 2001
+From: Sven Eden <[email protected]>
+Date: Thu, 18 Apr 2019 19:25:55 +0200
+Subject: [PATCH] src/basic/filio.c: Do not disable file buffers on non-glibc
+ [#130]
+
+When opening an existing file with open() and then turning is into
+a FILE* with fdopen(), a following fputs() returns EOF and sets errno
+to EINVAL on musl-libc based systems when setvbuf() was used to turn
+off the file buffer.
+
+To remedy this return to the old behavior until v239 and never
+diesable the file buffer in such cases when not on a glibc based
+system.
+
+Bug: #130
+Closes: #130
+Signed-off-by: Sven Eden <[email protected]>
+---
+ src/basic/fileio.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/basic/fileio.c b/src/basic/fileio.c
+index e981cd024..eaad5ccf0 100644
+--- a/src/basic/fileio.c
++++ b/src/basic/fileio.c
+@@ -162,6 +162,11 @@ int write_string_file_ts(
+                         safe_close(fd);
+                         goto fail;
+                 }
++
++#ifndef __GLIBC__ /// elogind must not disable buffers on musl-libc based 
systems when going this route
++                if (flags & WRITE_STRING_FILE_DISABLE_BUFFER)
++                        flags ^= WRITE_STRING_FILE_DISABLE_BUFFER;
++#endif // __GLIBC__
+         }
+ 
+         (void) __fsetlocking(f, FSETLOCKING_BYCALLER);
+-- 
+2.21.0
+

Reply via email to