mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-06 00:48:18 -07:00
sys-apps/accountsservice: add musl build fixes from Alpine Linux
Closes: https://bugs.gentoo.org/762442 Signed-off-by: Germ Mipseb <germtoo@outlook.com> Signed-off-by: germ <germtoo@outlook.com> Closes: https://github.com/gentoo/gentoo/pull/33600 Signed-off-by: Pacho Ramos <pacho@gentoo.org>
This commit is contained in:
@@ -55,6 +55,9 @@ RDEPEND="${CDEPEND}
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-22.04.62-gentoo-system-users.patch
|
||||
"${FILESDIR}"/${PN}-23.13.9-generate-version.patch #905770
|
||||
# From Alpine Linux
|
||||
# https://gitlab.freedesktop.org/accountsservice/accountsservice/-/merge_requests/97
|
||||
"${FILESDIR}"/${PN}-23.13.9-musl-fixes.patch
|
||||
)
|
||||
|
||||
python_check_deps() {
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
From 962a66aa12932c7899cda78c4cbda0f581947285 Mon Sep 17 00:00:00 2001
|
||||
From: germ <germtoo@outlook.com>
|
||||
Date: Mon, 30 Oct 2023 06:16:16 -0400
|
||||
Subject: [PATCH 1/1] This applies two apatches to sys-apps/accountsserice
|
||||
https://gitlab.alpinelinux.org/alpine/aports/-/raw/75528d8dc4206a74501799f6a6042be20b80801d/community/accountsservice/musl-fgetspent_r.patch
|
||||
https://gitlab.alpinelinux.org/alpine/aports/-/raw/75528d8dc4206a74501799f6a6042be20b80801d/community/accountsservice/musl-wtmp.patch
|
||||
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -103,8 +103,7 @@ elif cc.has_header_symbol('paths.h', '_PATH_WTMPX')
|
||||
|
||||
config_h.set('PATH_WTMP', '_PATH_WTMPX')
|
||||
else
|
||||
- path_wtmp = '/var/log/utx.log'
|
||||
- assert(run_command('test', '-e', path_wtmp, check: false).returncode() == 0, 'Do not know which filename to watch for wtmp changes')
|
||||
+ path_wtmp = '/var/log/wtmp'
|
||||
config_h.set_quoted('PATH_WTMP', path_wtmp)
|
||||
endif
|
||||
|
||||
--- a/src/daemon.c
|
||||
+++ b/src/daemon.c
|
||||
@@ -215,6 +215,27 @@ remove_cache_files (const gchar *user_name)
|
||||
g_remove (icon_filename);
|
||||
}
|
||||
|
||||
+#ifndef __GLIBC__
|
||||
+/* Musl libc does not support fgetspent_r(), write own
|
||||
+* wrapper
|
||||
+*/
|
||||
+static int fgetspent_r(FILE *fp, struct spwd *spbuf, char *buf, size_t buflen, struct spwd **spbufp) {
|
||||
+ struct spwd *shadow_entry = fgetspent(fp);
|
||||
+ if(!shadow_entry)
|
||||
+ return -1;
|
||||
+ size_t namplen = strlen(shadow_entry->sp_namp);
|
||||
+ size_t pwdplen = strlen(shadow_entry->sp_pwdp);
|
||||
+
|
||||
+ if(namplen + pwdplen + 2 > buflen)
|
||||
+ return -1;
|
||||
+ *spbufp = memcpy(spbuf, shadow_entry, sizeof(struct spwd));
|
||||
+ spbuf->sp_namp = strncpy(buf, shadow_entry->sp_namp, namplen + 1);
|
||||
+ spbuf->sp_pwdp = strncpy(buf + namplen + 1, shadow_entry->sp_pwdp, pwdplen + 1);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
static struct passwd *
|
||||
entry_generator_fgetpwent (Daemon *daemon,
|
||||
GHashTable *users,
|
||||
--
|
||||
2.42.0
|
||||
|
||||
Reference in New Issue
Block a user