diff --git a/x11/lightdm/Makefile b/x11/lightdm/Makefile index a1bef078c1a5..cc0b195c5978 100644 --- a/x11/lightdm/Makefile +++ b/x11/lightdm/Makefile @@ -1,71 +1,90 @@ PORTNAME= lightdm PORTVERSION= 1.32.0 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= x11 MASTER_SITES= https://github.com/canonical/${PORTNAME}/releases/download/${DISTVERSIONPREFIX}${DISTVERSION}/ MAINTAINER= desktop@FreeBSD.org COMMENT= Lightweight Display Manager WWW= https://github.com/canonical/lightdm # library/bindings are LGPLv2 or LGPLv3, the rest GPLv3+ -LICENSE= LGPL20 LGPL3 GPLv3 +LICENSE= GPLv3 LGPL20 LGPL3 LICENSE_COMB= multi +LICENSE_FILE_GPLv3= ${WRKSRC}/COPYING.GPL3 LICENSE_FILE_LGPL20= ${WRKSRC}/COPYING.LGPL2 LICENSE_FILE_LGPL3= ${WRKSRC}/COPYING.LGPL3 -LICENSE_FILE_GPLv3= ${WRKSRC}/COPYING.GPL3 BUILD_DEPENDS= itstool:textproc/itstool -LIB_DEPENDS= libaccountsservice.so:sysutils/accountsservice \ - libck-connector.so:sysutils/consolekit2 \ - libgcrypt.so:security/libgcrypt \ +LIB_DEPENDS= libgcrypt.so:security/libgcrypt \ libxklavier.so:x11/libxklavier +RUN_DEPENDS= accountsservice>=0:sysutils/accountsservice \ + ck-launch-session:sysutils/consolekit2 -USES= compiler:c++11-lang cpe gettext gmake gnome libtool localbase \ - pathfix pkgconfig tar:xz xorg +USES= autoreconf compiler:c++11-lang cpe gettext gmake gnome \ + libtool localbase pathfix pkgconfig tar:xz xorg CPE_VENDOR= ${PORTNAME}_project USE_CXXSTD= c++11 USE_GNOME= glib20 intltool -USE_XORG= x11 xcb xdmcp USE_LDCONFIG= yes USE_RC_SUBR= lightdm +USE_XORG= x11 xcb xdmcp +GNU_CONFIGURE= yes +# tests causes PAM errors +CONFIGURE_ARGS= --disable-libaudit \ + --disable-tests +INSTALL_TARGET= install-strip +LIBS= -lutil CONFLICTS_INSTALL= sddm +PORTSCOUT= limitw:1,even +SUB_FILES= Xsession +USERS= lightdm +GROUPS= lightdm video -GNU_CONFIGURE= yes -CONFIGURE_ARGS= --disable-tests # PAM errors -INSTALL_TARGET= install-strip -USERS= lightdm -GROUPS= lightdm video -PORTSCOUT= limitw:1,even -SUB_FILES= Xsession +OPTIONS_DEFINE= DOCS QT5 VAPI +OPTIONS_DEFAULT= VAPI +OPTIONS_SUB= yes -OPTIONS_DEFINE= DOCS VAPI -OPTIONS_DEFAULT=VAPI -OPTIONS_SUB= yes +DOCS_BUILD_DEPENDS= ${LOCALBASE}/share/aclocal/yelp.m4:textproc/yelp-tools \ + gtkdoc-check:textproc/gtk-doc +DOCS_CONFIGURE_ON= --enable-gtk-doc -DOCS_BUILD_DEPENDS= gtkdoc-check:textproc/gtk-doc -DOCS_CONFIGURE_ENABLE= gtk-doc +QT5_USES= qt:5 +QT5_USE= QT=buildtools,core,dbus,gui +QT5_CONFIGURE_ENABLE= liblightdm-qt5 VAPI_USES= vala:build +VAPI_USE= GNOME=introspection:build VAPI_CONFIGURE_ENABLE= vala -VAPI_USE= gnome=introspection:build post-patch: @${REINPLACE_CMD} -e 's,%%PREFIX%%,${PREFIX},' \ ${WRKSRC}/data/lightdm.conf +post-patch-DOCS-off: + @${REINPLACE_CMD} -e '/^GTK_DOC_CHECK/d' \ + -e '/^YELP_HELP_INIT/d' \ + -e '/^doc\/Makefile/d' \ + -e '/^help\/Makefile/d' \ + ${WRKSRC}/configure.ac + @${REINPLACE_CMD} -e '/^SUBDIRS/s/ doc help//' \ + ${WRKSRC}/Makefile.am + post-install: ${RM} -r ${STAGEDIR}${PREFIX}/etc/init - ${INSTALL_SCRIPT} ${WRKDIR}/Xsession ${STAGEDIR}${PREFIX}/etc/lightdm/ - ${MV} ${STAGEDIR}${PREFIX}/etc/lightdm/keys.conf ${STAGEDIR}${PREFIX}/etc/lightdm/keys.conf.sample - ${MV} ${STAGEDIR}${PREFIX}/etc/lightdm/lightdm.conf ${STAGEDIR}${PREFIX}/etc/lightdm/lightdm.conf.sample - ${MV} ${STAGEDIR}${PREFIX}/etc/lightdm/users.conf ${STAGEDIR}${PREFIX}/etc/lightdm/users.conf.sample + ${INSTALL_SCRIPT} ${WRKDIR}/Xsession ${STAGEDIR}${ETCDIR} + ${MV} ${STAGEDIR}${ETCDIR}/keys.conf ${STAGEDIR}${ETCDIR}/keys.conf.sample + ${MV} ${STAGEDIR}${ETCDIR}/lightdm.conf ${STAGEDIR}${ETCDIR}/lightdm.conf.sample + ${MV} ${STAGEDIR}${ETCDIR}/users.conf ${STAGEDIR}${ETCDIR}/users.conf.sample + ${MV} ${STAGEDIR}${PREFIX}/etc/pam.d/lightdm ${STAGEDIR}${PREFIX}/etc/pam.d/lightdm.sample + ${MV} ${STAGEDIR}${PREFIX}/etc/pam.d/lightdm-autologin ${STAGEDIR}${PREFIX}/etc/pam.d/lightdm-autologin.sample + ${MV} ${STAGEDIR}${PREFIX}/etc/pam.d/lightdm-greeter ${STAGEDIR}${PREFIX}/etc/pam.d/lightdm-greeter.sample ${MKDIR} ${STAGEDIR}/var/cache/lightdm \ ${STAGEDIR}/var/log/lightdm \ ${STAGEDIR}/var/run/lightdm ${MKDIR} ${STAGEDIR}${PREFIX}/share/xgreeters @(cd ${STAGEDIR}${PREFIX}/share/xgreeters && \ ${LN} -sf lightdm-gtk-greeter.desktop default.desktop) .include diff --git a/x11/lightdm/files/patch-common_configuration.c b/x11/lightdm/files/patch-common_configuration.c new file mode 100644 index 000000000000..46b802cf0d25 --- /dev/null +++ b/x11/lightdm/files/patch-common_configuration.c @@ -0,0 +1,10 @@ +--- common/configuration.c.orig 2021-02-15 22:00:52 UTC ++++ common/configuration.c +@@ -346,6 +346,7 @@ config_init (Configuration *config) + g_hash_table_insert (config->priv->lightdm_keys, "greeters-directory", GINT_TO_POINTER (KEY_SUPPORTED)); + g_hash_table_insert (config->priv->lightdm_keys, "backup-logs", GINT_TO_POINTER (KEY_SUPPORTED)); + g_hash_table_insert (config->priv->lightdm_keys, "dbus-service", GINT_TO_POINTER (KEY_SUPPORTED)); ++ g_hash_table_insert (config->priv->lightdm_keys, "smart-xsession-errors", GINT_TO_POINTER (KEY_SUPPORTED)); + g_hash_table_insert (config->priv->lightdm_keys, "logind-load-seats", GINT_TO_POINTER (KEY_DEPRECATED)); + + g_hash_table_insert (config->priv->seat_keys, "type", GINT_TO_POINTER (KEY_SUPPORTED)); diff --git a/x11/lightdm/files/patch-configure.ac b/x11/lightdm/files/patch-configure.ac new file mode 100644 index 000000000000..82f71abb6f26 --- /dev/null +++ b/x11/lightdm/files/patch-configure.ac @@ -0,0 +1,11 @@ +--- configure.ac.orig 2022-07-18 03:42:33 UTC ++++ configure.ac +@@ -48,7 +48,7 @@ AC_CHECK_HEADERS(gcrypt.h, [], AC_MSG_ERROR(libgcrypt + + AC_CHECK_HEADERS(gcrypt.h, [], AC_MSG_ERROR(libgcrypt not found)) + +-AC_CHECK_FUNCS(setresgid setresuid clearenv __getgroups_chk) ++AC_CHECK_FUNCS(setresgid setresuid setusercontext clearenv __getgroups_chk) + + PKG_CHECK_MODULES(LIGHTDM, [ + glib-2.0 >= 2.44 diff --git a/x11/lightdm/files/patch-data_Makefile.am b/x11/lightdm/files/patch-data_Makefile.am new file mode 100644 index 000000000000..bb824df623ef --- /dev/null +++ b/x11/lightdm/files/patch-data_Makefile.am @@ -0,0 +1,29 @@ +--- data/Makefile.am.orig 2022-05-01 23:00:26 UTC ++++ data/Makefile.am +@@ -15,18 +15,6 @@ dist_completions_DATA = bash-completion/dm-tool bash-c + completionsdir = $(datadir)/bash-completion/completions + dist_completions_DATA = bash-completion/dm-tool bash-completion/lightdm + +-lightdm-guest-session: $(srcdir)/apparmor/lightdm-guest-session.in +- sed -e 's|@libexecdir[@]|$(libexecdir)|g' $< >$@ +- +-apparmor_profiledir = $(sysconfdir)/apparmor.d +-apparmor_profile_DATA = \ +- lightdm-guest-session +- +-apparmor_profile_abstractionsdir = $(apparmor_profiledir)/abstractions +-dist_apparmor_profile_abstractions_DATA = \ +- apparmor/abstractions/lightdm \ +- apparmor/abstractions/lightdm_chromium-browser +- + accountsservice_interface = org.freedesktop.DisplayManager.AccountsService.xml + + dbusdir = $(datadir)/dbus-1/interfaces +@@ -46,5 +34,5 @@ dist_man1_MANS = dm-tool.1 \ + dist_man1_MANS = dm-tool.1 \ + lightdm.1 + +-EXTRA_DIST = apparmor/lightdm-guest-session.in $(polkit_in_files) +-CLEANFILES = lightdm-guest-session $(polkit_DATA) ++EXTRA_DIST = $(polkit_in_files) ++CLEANFILES = $(polkit_DATA) diff --git a/x11/lightdm/files/patch-data_lightdm.conf b/x11/lightdm/files/patch-data_lightdm.conf index 4fa124de5e6e..2307f7ac0134 100644 --- a/x11/lightdm/files/patch-data_lightdm.conf +++ b/x11/lightdm/files/patch-data_lightdm.conf @@ -1,22 +1,37 @@ ---- data/lightdm.conf.orig 2018-09-05 01:33:31 UTC +--- data/lightdm.conf.orig 2022-07-04 03:28:22 UTC +++ data/lightdm.conf -@@ -22,8 +22,8 @@ +@@ -17,13 +17,15 @@ + # greeters-directory = Directory to find greeters + # backup-logs = True to move add a .old suffix to old log files when opening new ones + # dbus-service = True if LightDM provides a D-Bus service to control it ++# smart-xsession-errors = True to force .xsesion.errors file to be positioned according to XDG standards ++# Default False, put it in ~/.xsession-errors + # + [LightDM] #start-default-seat=true #greeter-user=lightdm #minimum-display-number=0 -#minimum-vt=7 -#lock-memory=true +minimum-vt=9 +lock-memory=false #user-authority-in-system-dir=false #guest-account-script=guest-account - #logind-check-graphical=false -@@ -108,7 +108,7 @@ + #logind-check-graphical=true +@@ -35,6 +37,7 @@ + #greeters-directory=$XDG_DATA_DIRS/lightdm/greeters:$XDG_DATA_DIRS/xgreeters + #backup-logs=true + #dbus-service=true ++#smart-xsession-errors=false + + # + # Seat configuration +@@ -108,7 +111,7 @@ #allow-user-switching=true #allow-guest=true #guest-session= -#session-wrapper=lightdm-session +session-wrapper=%%PREFIX%%/etc/lightdm/Xsession #greeter-wrapper= #guest-wrapper= #display-setup-script= diff --git a/x11/lightdm/files/patch-data_users.conf b/x11/lightdm/files/patch-data_users.conf index 5366e684f798..e30ff589bcd1 100644 --- a/x11/lightdm/files/patch-data_users.conf +++ b/x11/lightdm/files/patch-data_users.conf @@ -1,10 +1,10 @@ ---- data/users.conf.orig 2015-08-09 23:30:00 UTC +--- data/users.conf.orig 2019-08-04 22:29:55 UTC +++ data/users.conf @@ -9,6 +9,6 @@ # hidden-shells = Shells that indicate a user cannot login # [UserList] -minimum-uid=500 +minimum-uid=1001 hidden-users=nobody nobody4 noaccess - hidden-shells=/bin/false /usr/sbin/nologin + hidden-shells=/bin/false /usr/sbin/nologin /sbin/nologin diff --git a/x11/lightdm/files/patch-liblightdm-gobject_language.c b/x11/lightdm/files/patch-liblightdm-gobject_language.c index adfbd9a9e9a4..f6d5cbea8165 100644 --- a/x11/lightdm/files/patch-liblightdm-gobject_language.c +++ b/x11/lightdm/files/patch-liblightdm-gobject_language.c @@ -1,82 +1,82 @@ https://bugs.launchpad.net/lightdm/+bug/790186 ---- liblightdm-gobject/language.c.orig 2018-08-29 22:30:07 UTC +--- liblightdm-gobject/language.c.orig 2021-02-15 22:06:28 UTC +++ liblightdm-gobject/language.c -@@ -57,6 +57,12 @@ G_DEFINE_TYPE_WITH_PRIVATE (LightDMLanguage, lightdm_l +@@ -55,6 +55,12 @@ static GList *languages = NULL; static gboolean have_languages = FALSE; static GList *languages = NULL; +static gboolean +is_utf8 (const gchar *code) +{ + return g_strrstr (code, ".utf8") || g_strrstr (code, ".UTF-8"); +} + static void update_languages (void) { -@@ -83,7 +89,7 @@ update_languages (void) +@@ -81,7 +87,7 @@ update_languages (void) continue; /* Ignore the non-interesting languages */ - if (strcmp (command, "locale -a") == 0 && !g_strrstr (code, ".utf8")) + if (strcmp (command, "locale -a") == 0 && !is_utf8 (code)) continue; LightDMLanguage *language = g_object_new (LIGHTDM_TYPE_LANGUAGE, "code", code, NULL); -@@ -94,12 +100,6 @@ update_languages (void) +@@ -92,12 +98,6 @@ update_languages (void) have_languages = TRUE; } -static gboolean -is_utf8 (const gchar *code) -{ - return g_strrstr (code, ".utf8") || g_strrstr (code, ".UTF-8"); -} - /* Get a valid locale name that can be passed to setlocale(), so we always can use nl_langinfo() to get language and country names. */ static gchar * get_locale_name (const gchar *code) -@@ -131,7 +131,7 @@ get_locale_name (const gchar *code) +@@ -129,7 +129,7 @@ get_locale_name (const gchar *code) for (gint i = 0; avail_locales[i]; i++) { const gchar *loc = avail_locales[i]; - if (!g_strrstr (loc, ".utf8")) + if (!is_utf8 (loc)) continue; if (g_str_has_prefix (loc, language)) return g_strdup (loc); @@ -214,10 +214,16 @@ lightdm_language_get_name (LightDMLanguage *language) if (locale) { const gchar *current = setlocale (LC_ALL, NULL); +#ifdef LC_IDENTIFICATION setlocale (LC_IDENTIFICATION, locale); +#endif setlocale (LC_MESSAGES, ""); +#ifdef _NL_IDENTIFICATION_LANGUAGE const gchar *language_en = nl_langinfo (_NL_IDENTIFICATION_LANGUAGE); +#else + const gchar *language_en = "Unknown"; +#endif if (language_en && strlen (language_en) > 0) priv->name = g_strdup (dgettext ("iso_639_3", language_en)); @@ -254,10 +260,16 @@ lightdm_language_get_territory (LightDMLanguage *langu if (locale) { gchar *current = setlocale (LC_ALL, NULL); +#ifdef LC_IDENTIFICATION setlocale (LC_IDENTIFICATION, locale); +#endif setlocale (LC_MESSAGES, ""); +#ifdef _NL_IDENTIFICATION_TERRITORY gchar *country_en = nl_langinfo (_NL_IDENTIFICATION_TERRITORY); +#else + gchar *country_en = "Unknown"; +#endif if (country_en && strlen (country_en) > 0 && g_strcmp0 (country_en, "ISO") != 0) priv->territory = g_strdup (dgettext ("iso_3166", country_en)); diff --git a/x11/lightdm/files/patch-src_lightdm.c b/x11/lightdm/files/patch-src_lightdm.c index 99f72cd044b1..bc422d31c2af 100644 --- a/x11/lightdm/files/patch-src_lightdm.c +++ b/x11/lightdm/files/patch-src_lightdm.c @@ -1,11 +1,20 @@ --- src/lightdm.c.orig 2022-07-10 21:17:23 UTC +++ src/lightdm.c -@@ -813,7 +813,7 @@ main (int argc, char **argv) +@@ -758,6 +758,8 @@ main (int argc, char **argv) + config_set_boolean (config_get_instance (), "LightDM", "backup-logs", TRUE); + if (!config_has_key (config_get_instance (), "LightDM", "dbus-service")) + config_set_boolean (config_get_instance (), "LightDM", "dbus-service", TRUE); ++ if (!config_has_key (config_get_instance (), "LightDM", "smart-xsession-errors")) ++ config_set_boolean (config_get_instance (), "LightDM", "smart-xsession-errors", FALSE); + if (!config_has_key (config_get_instance (), "Seat:*", "type")) + config_set_string (config_get_instance (), "Seat:*", "type", "local"); + if (!config_has_key (config_get_instance (), "Seat:*", "pam-service")) +@@ -813,7 +815,7 @@ main (int argc, char **argv) if (!config_has_key (config_get_instance (), "XDMCPServer", "hostname")) config_set_string (config_get_instance (), "XDMCPServer", "hostname", g_get_host_name ()); if (!config_has_key (config_get_instance (), "LightDM", "logind-check-graphical")) - config_set_boolean (config_get_instance (), "LightDM", "logind-check-graphical", TRUE); + config_set_boolean (config_get_instance (), "LightDM", "logind-check-graphical", FALSE); /* Override defaults */ if (log_dir) diff --git a/x11/lightdm/files/patch-src_session-child.c b/x11/lightdm/files/patch-src_session-child.c index ba8fd14b5577..5ee4af1043f3 100644 --- a/x11/lightdm/files/patch-src_session-child.c +++ b/x11/lightdm/files/patch-src_session-child.c @@ -1,72 +1,131 @@ ---- src/session-child.c.orig 2018-02-06 23:31:03 UTC +--- src/session-child.c.orig 2021-04-12 04:52:50 UTC +++ src/session-child.c -@@ -13,7 +13,6 @@ +@@ -13,9 +13,11 @@ #include #include #include -#include #include #include ++#if HAVE_SETUSERCONTEXT ++#include ++#endif -@@ -192,28 +191,6 @@ read_xauth (void) + #if HAVE_LIBAUDIT + #include +@@ -193,28 +195,6 @@ read_xauth (void) return x_authority_new (x_authority_family, x_authority_address, x_authority_address_length, x_authority_number, x_authority_name, x_authority_data, x_authority_data_length); } -/* GNU provides this but we can't rely on that so let's make our own version */ -static void -updwtmpx (const gchar *wtmp_file, struct utmpx *ut) -{ - struct utmp u; - memset (&u, 0, sizeof (u)); - u.ut_type = ut->ut_type; - u.ut_pid = ut->ut_pid; - if (ut->ut_line) - strncpy (u.ut_line, ut->ut_line, sizeof (u.ut_line)); - if (ut->ut_id) - strncpy (u.ut_id, ut->ut_id, sizeof (u.ut_id)); - if (ut->ut_user) - strncpy (u.ut_user, ut->ut_user, sizeof (u.ut_user)); - if (ut->ut_host) - strncpy (u.ut_host, ut->ut_host, sizeof (u.ut_host)); - u.ut_tv.tv_sec = ut->ut_tv.tv_sec; - u.ut_tv.tv_usec = ut->ut_tv.tv_usec; - - updwtmp (wtmp_file, &u); -} - #if HAVE_LIBAUDIT static void audit_event (int type, const gchar *username, uid_t uid, const gchar *remote_host_name, const gchar *tty, gboolean success) -@@ -363,7 +340,6 @@ session_child_run (int argc, char **argv) +@@ -364,7 +344,6 @@ session_child_run (int argc, char **argv) ut.ut_tv.tv_sec = tv.tv_sec; ut.ut_tv.tv_usec = tv.tv_usec; - updwtmpx ("/var/log/btmp", &ut); #if HAVE_LIBAUDIT audit_event (AUDIT_USER_LOGIN, username, -1, remote_host_name, tty, FALSE); -@@ -393,7 +369,7 @@ session_child_run (int argc, char **argv) +@@ -394,7 +373,7 @@ session_child_run (int argc, char **argv) else { /* Set POSIX variables */ - pam_putenv (pam_handle, "PATH=/usr/local/bin:/usr/bin:/bin"); -+ pam_putenv (pam_handle, "PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:~/bin"); ++ pam_putenv (pam_handle, "PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"); pam_putenv (pam_handle, g_strdup_printf ("USER=%s", username)); pam_putenv (pam_handle, g_strdup_printf ("LOGNAME=%s", username)); pam_putenv (pam_handle, g_strdup_printf ("HOME=%s", user_get_home_directory (user))); -@@ -708,7 +684,6 @@ session_child_run (int argc, char **argv) +@@ -636,7 +615,29 @@ session_child_run (int argc, char **argv) + /* Make this process its own session */ + if (setsid () < 0) + _exit (errno); +- ++#if HAVE_SETUSERCONTEXT ++ /* Setup user context ++ * Reset the current environment to what is in the PAM context, ++ * then setusercontext will add to it as necessary as there is no ++ * option for setusercontext to add to a PAM context. ++ */ ++ extern char **environ; ++ environ = pam_getenvlist (pam_handle); ++ struct passwd* pwd = getpwnam (username); ++ if (pwd) { ++ if (setusercontext (NULL, pwd, pwd->pw_uid, LOGIN_SETALL) < 0) { ++ int _errno = errno; ++ fprintf(stderr, "setusercontext for \"%s\" (%d) failed: %s\n", ++ username, user_get_uid (user), strerror (errno)); ++ _exit (_errno); ++ } ++ endpwent(); ++ } else { ++ fprintf (stderr, "getpwname for \"%s\" failed: %s\n", ++ username, strerror (errno)); ++ _exit (ENOENT); ++ } ++#else + /* Change to this user */ + if (getuid () == 0) + { +@@ -646,6 +647,7 @@ session_child_run (int argc, char **argv) + if (setuid (uid) != 0) + _exit (errno); + } ++#endif + + /* Change working directory */ + /* NOTE: This must be done after the permissions are changed because NFS filesystems can +@@ -668,7 +670,13 @@ session_child_run (int argc, char **argv) + signal (SIGPIPE, SIG_DFL); + + /* Run the command */ +- execve (command_argv[0], command_argv, pam_getenvlist (pam_handle)); ++ execve (command_argv[0], command_argv, ++#if HAVE_SETUSERCONTEXT ++ environ ++#else ++ pam_getenvlist (pam_handle) ++#endif ++ ); + _exit (EXIT_FAILURE); + } + +@@ -709,7 +717,6 @@ session_child_run (int argc, char **argv) if (!pututxline (&ut)) g_printerr ("Failed to write utmpx: %s\n", strerror (errno)); endutxent (); - updwtmpx ("/var/log/wtmp", &ut); #if HAVE_LIBAUDIT audit_event (AUDIT_USER_LOGIN, username, uid, remote_host_name, tty, TRUE); -@@ -749,7 +724,6 @@ session_child_run (int argc, char **argv) +@@ -750,7 +757,6 @@ session_child_run (int argc, char **argv) if (!pututxline (&ut)) g_printerr ("Failed to write utmpx: %s\n", strerror (errno)); endutxent (); - updwtmpx ("/var/log/wtmp", &ut); #if HAVE_LIBAUDIT audit_event (AUDIT_USER_LOGOUT, username, uid, remote_host_name, tty, TRUE); diff --git a/x11/lightdm/files/patch-src_session.c b/x11/lightdm/files/patch-src_session.c new file mode 100644 index 000000000000..73629fc301e7 --- /dev/null +++ b/x11/lightdm/files/patch-src_session.c @@ -0,0 +1,21 @@ +--- src/session.c.orig 2021-04-12 04:52:50 UTC ++++ src/session.c +@@ -981,7 +981,17 @@ session_init (Session *session) + { + SessionPrivate *priv = session_get_instance_private (session); + +- priv->log_filename = g_strdup (".xsession-errors"); ++ if(config_get_boolean (config_get_instance (), "LightDM", "smart-xsession-errors")) { ++ if (g_getenv ("XDG_STATE_HOME")) { ++ priv->log_filename = g_build_filename (g_getenv ("XDG_STATE_HOME"), ".xsession-errors", NULL); ++ } else if (g_getenv ("XDG_CACHE_HOME")) { ++ priv->log_filename = g_build_filename (g_getenv ("XDG_CACHE_HOME"), ".xsession-errors", NULL); ++ } else { ++ priv->log_filename = g_build_filename (".cache", ".xsession-errors", NULL); ++ } ++ } else { ++ priv->log_filename = g_strdup (".xsession-errors"); ++ } + priv->log_mode = LOG_MODE_BACKUP_AND_TRUNCATE; + priv->to_child_input = -1; + priv->from_child_output = -1; diff --git a/x11/lightdm/pkg-plist b/x11/lightdm/pkg-plist index 4813332c3660..ed4fcb87411f 100644 --- a/x11/lightdm/pkg-plist +++ b/x11/lightdm/pkg-plist @@ -1,168 +1,181 @@ bin/dm-tool %%ETCDIR%%/Xsession @sample %%ETCDIR%%/keys.conf.sample @sample %%ETCDIR%%/lightdm.conf.sample @sample %%ETCDIR%%/users.conf.sample -etc/pam.d/lightdm -etc/pam.d/lightdm-autologin -etc/pam.d/lightdm-greeter +@sample etc/pam.d/lightdm.sample +@sample etc/pam.d/lightdm-autologin.sample +@sample etc/pam.d/lightdm-greeter.sample include/lightdm-gobject-1/lightdm.h include/lightdm-gobject-1/lightdm/greeter.h include/lightdm-gobject-1/lightdm/language.h include/lightdm-gobject-1/lightdm/layout.h include/lightdm-gobject-1/lightdm/power.h include/lightdm-gobject-1/lightdm/session.h include/lightdm-gobject-1/lightdm/system.h include/lightdm-gobject-1/lightdm/user.h +%%QT5%%include/lightdm-qt5-3/QLightDM/Greeter +%%QT5%%include/lightdm-qt5-3/QLightDM/Power +%%QT5%%include/lightdm-qt5-3/QLightDM/SessionsModel +%%QT5%%include/lightdm-qt5-3/QLightDM/UsersModel +%%QT5%%include/lightdm-qt5-3/QLightDM/greeter.h +%%QT5%%include/lightdm-qt5-3/QLightDM/power.h +%%QT5%%include/lightdm-qt5-3/QLightDM/sessionsmodel.h +%%QT5%%include/lightdm-qt5-3/QLightDM/usersmodel.h %%VAPI%%lib/girepository-1.0/LightDM-1.typelib lib/liblightdm-gobject-1.a lib/liblightdm-gobject-1.so lib/liblightdm-gobject-1.so.0 lib/liblightdm-gobject-1.so.0.0.0 +%%QT5%%lib/liblightdm-qt5-3.a +%%QT5%%lib/liblightdm-qt5-3.so +%%QT5%%lib/liblightdm-qt5-3.so.0 +%%QT5%%lib/liblightdm-qt5-3.so.0.0.0 libdata/pkgconfig/liblightdm-gobject-1.pc +%%QT5%%libdata/pkgconfig/liblightdm-qt5-3.pc libexec/lightdm-guest-session man/man1/dm-tool.1.gz man/man1/lightdm.1.gz sbin/lightdm share/accountsservice/interfaces/org.freedesktop.DisplayManager.AccountsService.xml share/bash-completion/completions/dm-tool share/bash-completion/completions/lightdm share/dbus-1/interfaces/org.freedesktop.DisplayManager.AccountsService.xml share/dbus-1/system.d/org.freedesktop.DisplayManager.conf %%VAPI%%share/gir-1.0/LightDM-1.gir %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/LightDMGreeter.html %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/LightDMLanguage.html %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/LightDMLayout.html %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/LightDMSession.html %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/LightDMUser.html %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/LightDMUserList.html %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/annotation-glossary.html %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/api-index-full.html %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/ch01.html %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/deprecated-api-index.html %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/home.png %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/index.html %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/left-insensitive.png %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/left.png %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/lightdm-gobject-1-Power-Management.html %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/lightdm-gobject-1-System-Information.html %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/lightdm-gobject-1.devhelp2 %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/object-tree.html %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/right-insensitive.png %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/right.png %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/style.css %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/up-insensitive.png %%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/up.png %%VAPI%%share/help/C/lightdm/autologin.page %%VAPI%%share/help/C/lightdm/config.page %%VAPI%%share/help/C/lightdm/default-greeter.page %%VAPI%%share/help/C/lightdm/default-session.page %%VAPI%%share/help/C/lightdm/diagnostics.page %%VAPI%%share/help/C/lightdm/guest.page %%VAPI%%share/help/C/lightdm/index.page %%VAPI%%share/help/C/lightdm/legal.xml %%VAPI%%share/help/C/lightdm/local-sessions.page %%VAPI%%share/help/C/lightdm/remote-sessions.page %%VAPI%%share/help/C/lightdm/seat.page %%VAPI%%share/help/C/lightdm/standard-authentication.page %%VAPI%%share/help/C/lightdm/user-list.page %%VAPI%%share/help/C/lightdm/user-switching.page %%VAPI%%share/help/C/lightdm/vnc.page %%VAPI%%share/help/C/lightdm/write-greeter.page %%VAPI%%share/help/C/lightdm/xdmcp.page %%VAPI%%share/locale/af/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/an/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/ar/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/ast/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/az/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/be/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/bg/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/bn/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/bo/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/br/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/bs/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/ca/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/ca@valencia/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/ckb/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/cs/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/da/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/de/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/el/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/en_AU/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/en_CA/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/en_GB/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/eo/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/es/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/et/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/eu/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/fa/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/fi/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/fo/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/fr/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/fy/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/gd/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/gl/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/gu/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/he/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/hi/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/hr/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/hu/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/ia/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/id/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/is/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/it/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/ja/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/kk/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/km/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/kn/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/ko/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/ku/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/lb/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/lt/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/lv/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/mhr/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/mi/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/ml/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/mr/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/ms/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/my/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/nb/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/nl/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/nn/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/oc/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/pa/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/pl/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/pt/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/pt_BR/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/ro/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/ru/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/sc/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/sd/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/shn/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/si/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/sk/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/sl/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/sq/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/sr/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/sv/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/ta/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/te/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/tg/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/th/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/tl/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/tr/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/ug/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/uk/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/uz/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/vi/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/wae/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/zh_CN/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/zh_HK/LC_MESSAGES/lightdm.mo %%VAPI%%share/locale/zh_TW/LC_MESSAGES/lightdm.mo share/polkit-1/actions/org.freedesktop.DisplayManager.AccountsService.policy %%VAPI%%share/vala/vapi/liblightdm-gobject-1.deps %%VAPI%%share/vala/vapi/liblightdm-gobject-1.vapi share/xgreeters/default.desktop @dir /var/cache/lightdm @dir /var/log/lightdm @dir /var/run/lightdm