commit: 0326445b2ff09d42d0fa399840e3314e56dd1644 Author: brahmajit das <listout <AT> protonmail <DOT> com> AuthorDate: Thu Jul 21 13:53:18 2022 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Thu Sep 1 02:09:10 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0326445b
x11-misc/lightdm: Fix LC_IDENTIFICATION and updwtmpx on musl This commit fixes two issues with lightdm on musl - LC_IDENTIFICATION not being defined, and - updwtmpx giving conflicting types Patches are documented to the best of my abilities. Closes: https://bugs.gentoo.org/766866 Signed-off-by: brahmajit das <listout <AT> protonmail.com> Closes: https://github.com/gentoo/gentoo/pull/26469 Signed-off-by: Sam James <sam <AT> gentoo.org> .../lightdm/files/lightdm-1.30.0-musl-locale.patch | 42 ++++++++++++++++++++++ .../files/lightdm-1.30.0-musl-updwtmpx.patch | 26 ++++++++++++++ x11-misc/lightdm/lightdm-1.30.0-r3.ebuild | 5 +++ 3 files changed, 73 insertions(+) diff --git a/x11-misc/lightdm/files/lightdm-1.30.0-musl-locale.patch b/x11-misc/lightdm/files/lightdm-1.30.0-musl-locale.patch new file mode 100644 index 000000000000..46c65d79f764 --- /dev/null +++ b/x11-misc/lightdm/files/lightdm-1.30.0-musl-locale.patch @@ -0,0 +1,42 @@ +https://github.com/canonical/lightdm/pull/261 + +# Fix LC_IDENTIFICATION undeclared on musl or other libc that doesn't have it defined +# Patch is taken from Alpine linux [1] +# [1]: https://git.alpinelinux.org/aports/tree/community/lightdm/musl-language.patch +# Closes: https://bugs.gentoo.org/766866 +diff --git a/liblightdm-gobject/language.c b/liblightdm-gobject/language.c +index 3d4fa96..e38f5ce 100644 +--- a/liblightdm-gobject/language.c ++++ b/liblightdm-gobject/language.c +@@ -210,6 +210,7 @@ lightdm_language_get_name (LightDMLanguage *language) + + if (!priv->name) + { ++#if HAVE_LC_IDENTIFICATION + g_autofree gchar *locale = get_locale_name (priv->code); + if (locale) + { +@@ -223,6 +224,7 @@ lightdm_language_get_name (LightDMLanguage *language) + + setlocale (LC_ALL, current); + } ++#endif + if (!priv->name) + { + g_auto(GStrv) tokens = g_strsplit_set (priv->code, "_.@", 2); +@@ -250,6 +252,7 @@ lightdm_language_get_territory (LightDMLanguage *language) + + if (!priv->territory && strchr (priv->code, '_')) + { ++#if HAVE_LC_IDENTIFICATION + g_autofree gchar *locale = get_locale_name (priv->code); + if (locale) + { +@@ -263,6 +266,7 @@ lightdm_language_get_territory (LightDMLanguage *language) + + setlocale (LC_ALL, current); + } ++#endif + if (!priv->territory) + { + g_auto(GStrv) tokens = g_strsplit_set (priv->code, "_.@", 3); diff --git a/x11-misc/lightdm/files/lightdm-1.30.0-musl-updwtmpx.patch b/x11-misc/lightdm/files/lightdm-1.30.0-musl-updwtmpx.patch new file mode 100644 index 000000000000..0df9bd4f051e --- /dev/null +++ b/x11-misc/lightdm/files/lightdm-1.30.0-musl-updwtmpx.patch @@ -0,0 +1,26 @@ +https://github.com/canonical/lightdm/pull/261 + +# A little bit modified version of Alpine linux patch [1]. On musl the default +# implementation of updwtmpx will give conflicting types error and build will +# fail. This patch should fix that. This issue is noticed together with bug +# 766866 [2]. +# [1]: https://git.alpinelinux.org/aports/tree/community/lightdm/musl-updwtmpx.patch +# [2]: https://bugs.gentoo.org/766866 +diff --git a/src/session-child.c b/src/session-child.c +index eef51e4..0052904 100644 +--- a/src/session-child.c ++++ b/src/session-child.c +@@ -193,8 +193,13 @@ read_xauth (void) + } + + /* GNU provides this but we can't rely on that so let's make our own version */ ++#if defined(__GLIBC__) + static void + updwtmpx (const gchar *wtmp_file, struct utmpx *ut) ++#else // use this version in libc's other than glibc ++void ++updwtmpx (const char *wtmp_file, const struct utmpx *ut) ++#endif + { + struct utmp u; + memset (&u, 0, sizeof (u)); diff --git a/x11-misc/lightdm/lightdm-1.30.0-r3.ebuild b/x11-misc/lightdm/lightdm-1.30.0-r3.ebuild index 2c0883c92e03..5f23bb293fae 100644 --- a/x11-misc/lightdm/lightdm-1.30.0-r3.ebuild +++ b/x11-misc/lightdm/lightdm-1.30.0-r3.ebuild @@ -51,6 +51,11 @@ DOCS=( NEWS ) RESTRICT="test" REQUIRED_USE="vala? ( introspection )" +PATCHES=( + "${FILESDIR}"/${PN}-1.30.0-musl-locale.patch + "${FILESDIR}"/${PN}-1.30.0-musl-updwtmpx.patch +) + pkg_setup() { export LIGHTDM_USER=${LIGHTDM_USER:-lightdm} }