diff --git a/x11/lightdm/Makefile b/x11/lightdm/Makefile index 94ee2c635347..e1aad6524cbe 100644 --- a/x11/lightdm/Makefile +++ b/x11/lightdm/Makefile @@ -1,95 +1,106 @@ PORTNAME= lightdm -PORTVERSION= 1.32.0 -PORTREVISION= 7 +PORTVERSION= 1.33.0 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= GPLv3 LGPL20 LGPL3 LICENSE_COMB= multi LICENSE_FILE_GPLv3= ${WRKSRC}/COPYING.GPL3 LICENSE_FILE_LGPL20= ${WRKSRC}/COPYING.LGPL2 LICENSE_FILE_LGPL3= ${WRKSRC}/COPYING.LGPL3 BUILD_DEPENDS= itstool:textproc/itstool LIB_DEPENDS= libgcrypt.so:security/libgcrypt \ libxklavier.so:x11/libxklavier RUN_DEPENDS= accountsservice>=0:sysutils/accountsservice \ ck-launch-session:sysutils/consolekit2 -USES= autoreconf compiler:c++11-lang cpe gettext-tools gmake gnome \ +USES= autoreconf compiler:c++17-lang cpe gettext-tools gmake gnome \ libtool localbase pathfix pkgconfig tar:xz xorg CPE_VENDOR= ${PORTNAME}_project -USE_CXXSTD= c++11 +USE_CXXSTD= c++17 +USE_GITHUB= yes +GH_ACCOUNT= ubuntu USE_GNOME= glib20 intltool USE_LDCONFIG= yes USE_RC_SUBR= lightdm USE_XORG= x11 xcb xdmcp GNU_CONFIGURE= yes -GNU_CONFIGURE_MANPREFIX=${PREFIX}/share -# tests causes PAM errors +GNU_CONFIGURE_MANPREFIX= ${PREFIX}/share +# tests cause 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 -OPTIONS_DEFINE= DOCS NLS QT5 VAPI +OPTIONS_DEFINE= DOCS NLS VAPI OPTIONS_DEFAULT= VAPI +OPTIONS_RADIO= QT +OPTIONS_RADIO_QT= QT5 QT6 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 NLS_USES= gettext-runtime NLS_CONFIGURE_ENABLE= nls QT5_USES= qt:5 QT5_USE= QT=buildtools,core,dbus,gui QT5_CONFIGURE_ENABLE= liblightdm-qt5 +QT6_USES= qt:6 +QT6_USE= QT=base +QT6_CONFIGURE_ENABLE= liblightdm-qt6 + VAPI_USES= vala:build VAPI_USE= GNOME=introspection:build VAPI_CONFIGURE_ENABLE= vala post-patch: - @${REINPLACE_CMD} -i "" -e 's,%%PREFIX%%,${PREFIX},' \ + @${REINPLACE_CMD} -i "" -e 's,%%PREFIX%%,${PREFIX},g' \ ${WRKSRC}/data/lightdm.1 \ ${WRKSRC}/data/lightdm.conf + @${REINPLACE_CMD} -i "" -e 's,%%LOCALBASE%%,${LOCALBASE},g' \ + ${WRKSRC}/src/session-child.c 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-patch-QT6-on: + @${REINPLACE_CMD} -i "" -e 's,%%QT6MOC%%,${MOC},g' \ + ${WRKSRC}/m4/qt-validate-moc.m4 + post-install: ${RM} -r ${STAGEDIR}${PREFIX}/etc/init ${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/distinfo b/x11/lightdm/distinfo index 596b60919c52..47a83749890f 100644 --- a/x11/lightdm/distinfo +++ b/x11/lightdm/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1660386883 -SHA256 (lightdm-1.32.0.tar.xz) = 12f5ab432748f0387c7cf8b94430495a558a035a4f8465e5181af6faff133e4b -SIZE (lightdm-1.32.0.tar.xz) = 518168 +TIMESTAMP = 1786088899 +SHA256 (ubuntu-lightdm-1.33.0_GH0.tar.gz) = e699ac06f44fcbbbda9a81433588e2a916c9a222e942b023e339919a57ae5e8e +SIZE (ubuntu-lightdm-1.33.0_GH0.tar.gz) = 406123 diff --git a/x11/lightdm/files/patch-configure.ac b/x11/lightdm/files/patch-configure.ac deleted file mode 100644 index 82f71abb6f26..000000000000 --- a/x11/lightdm/files/patch-configure.ac +++ /dev/null @@ -1,11 +0,0 @@ ---- 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.in b/x11/lightdm/files/patch-data_Makefile.in deleted file mode 100644 index 149327f29935..000000000000 --- a/x11/lightdm/files/patch-data_Makefile.in +++ /dev/null @@ -1,147 +0,0 @@ ---- data/Makefile.in.orig 2022-07-18 03:38:31 UTC -+++ data/Makefile.in -@@ -99,7 +99,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \ - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) - DIST_COMMON = $(srcdir)/Makefile.am \ -- $(dist_apparmor_profile_abstractions_DATA) \ - $(dist_completions_DATA) $(dist_conf_DATA) $(dist_dbus_DATA) \ - $(dist_dbusconf_DATA) $(dist_init_DATA) $(dist_pam_DATA) \ - $(am__DIST_COMMON) -@@ -155,16 +154,13 @@ am__uninstall_files_from_dir = { \ - } - man1dir = $(mandir)/man1 - am__installdirs = "$(DESTDIR)$(man1dir)" \ -- "$(DESTDIR)$(apparmor_profiledir)" \ -- "$(DESTDIR)$(apparmor_profile_abstractionsdir)" \ - "$(DESTDIR)$(completionsdir)" "$(DESTDIR)$(confdir)" \ - "$(DESTDIR)$(dbusdir)" "$(DESTDIR)$(dbusconfdir)" \ - "$(DESTDIR)$(initdir)" "$(DESTDIR)$(pamdir)" \ - "$(DESTDIR)$(polkitdir)" - NROFF = nroff - MANS = $(dist_man1_MANS) --DATA = $(apparmor_profile_DATA) \ -- $(dist_apparmor_profile_abstractions_DATA) \ -+DATA = \ - $(dist_completions_DATA) $(dist_conf_DATA) $(dist_dbus_DATA) \ - $(dist_dbusconf_DATA) $(dist_init_DATA) $(dist_pam_DATA) \ - $(polkit_DATA) -@@ -375,15 +371,7 @@ dist_pam_DATA = pam/lightdm \ - - completionsdir = $(datadir)/bash-completion/completions - dist_completions_DATA = bash-completion/dm-tool bash-completion/lightdm --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 - dist_dbus_DATA = \ -@@ -476,48 +464,6 @@ uninstall-man1: - } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ - -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ - dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) --install-apparmor_profileDATA: $(apparmor_profile_DATA) -- @$(NORMAL_INSTALL) -- @list='$(apparmor_profile_DATA)'; test -n "$(apparmor_profiledir)" || list=; \ -- if test -n "$$list"; then \ -- echo " $(MKDIR_P) '$(DESTDIR)$(apparmor_profiledir)'"; \ -- $(MKDIR_P) "$(DESTDIR)$(apparmor_profiledir)" || exit 1; \ -- fi; \ -- for p in $$list; do \ -- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ -- echo "$$d$$p"; \ -- done | $(am__base_list) | \ -- while read files; do \ -- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(apparmor_profiledir)'"; \ -- $(INSTALL_DATA) $$files "$(DESTDIR)$(apparmor_profiledir)" || exit $$?; \ -- done -- --uninstall-apparmor_profileDATA: -- @$(NORMAL_UNINSTALL) -- @list='$(apparmor_profile_DATA)'; test -n "$(apparmor_profiledir)" || list=; \ -- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ -- dir='$(DESTDIR)$(apparmor_profiledir)'; $(am__uninstall_files_from_dir) --install-dist_apparmor_profile_abstractionsDATA: $(dist_apparmor_profile_abstractions_DATA) -- @$(NORMAL_INSTALL) -- @list='$(dist_apparmor_profile_abstractions_DATA)'; test -n "$(apparmor_profile_abstractionsdir)" || list=; \ -- if test -n "$$list"; then \ -- echo " $(MKDIR_P) '$(DESTDIR)$(apparmor_profile_abstractionsdir)'"; \ -- $(MKDIR_P) "$(DESTDIR)$(apparmor_profile_abstractionsdir)" || exit 1; \ -- fi; \ -- for p in $$list; do \ -- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ -- echo "$$d$$p"; \ -- done | $(am__base_list) | \ -- while read files; do \ -- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(apparmor_profile_abstractionsdir)'"; \ -- $(INSTALL_DATA) $$files "$(DESTDIR)$(apparmor_profile_abstractionsdir)" || exit $$?; \ -- done -- --uninstall-dist_apparmor_profile_abstractionsDATA: -- @$(NORMAL_UNINSTALL) -- @list='$(dist_apparmor_profile_abstractions_DATA)'; test -n "$(apparmor_profile_abstractionsdir)" || list=; \ -- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ -- dir='$(DESTDIR)$(apparmor_profile_abstractionsdir)'; $(am__uninstall_files_from_dir) - install-dist_completionsDATA: $(dist_completions_DATA) - @$(NORMAL_INSTALL) - @list='$(dist_completions_DATA)'; test -n "$(completionsdir)" || list=; \ -@@ -708,7 +654,7 @@ check-am: all-am - check: check-am - all-am: Makefile $(MANS) $(DATA) - installdirs: -- for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(apparmor_profiledir)" "$(DESTDIR)$(apparmor_profile_abstractionsdir)" "$(DESTDIR)$(completionsdir)" "$(DESTDIR)$(confdir)" "$(DESTDIR)$(dbusdir)" "$(DESTDIR)$(dbusconfdir)" "$(DESTDIR)$(initdir)" "$(DESTDIR)$(pamdir)" "$(DESTDIR)$(polkitdir)"; do \ -+ for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(completionsdir)" "$(DESTDIR)$(confdir)" "$(DESTDIR)$(dbusdir)" "$(DESTDIR)$(dbusconfdir)" "$(DESTDIR)$(initdir)" "$(DESTDIR)$(pamdir)" "$(DESTDIR)$(polkitdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done - install: install-am -@@ -762,9 +708,8 @@ info: info-am - - info-am: - --install-data-am: install-apparmor_profileDATA \ -- install-dist_apparmor_profile_abstractionsDATA \ -- install-dist_completionsDATA install-dist_confDATA \ -+install-data-am: install-dist_completionsDATA \ -+ install-dist_confDATA \ - install-dist_dbusDATA install-dist_dbusconfDATA \ - install-dist_initDATA install-dist_pamDATA install-man \ - install-polkitDATA -@@ -812,9 +757,8 @@ ps: ps-am - - ps-am: - --uninstall-am: uninstall-apparmor_profileDATA \ -- uninstall-dist_apparmor_profile_abstractionsDATA \ -- uninstall-dist_completionsDATA uninstall-dist_confDATA \ -+uninstall-am: uninstall-dist_completionsDATA \ -+ uninstall-dist_confDATA \ - uninstall-dist_dbusDATA uninstall-dist_dbusconfDATA \ - uninstall-dist_initDATA uninstall-dist_pamDATA uninstall-man \ - uninstall-polkitDATA -@@ -826,8 +770,8 @@ uninstall-man: uninstall-man1 - .PHONY: all all-am check check-am clean clean-generic clean-libtool \ - cscopelist-am ctags-am distclean distclean-generic \ - distclean-libtool distdir dvi dvi-am html html-am info info-am \ -- install install-am install-apparmor_profileDATA install-data \ -- install-data-am install-dist_apparmor_profile_abstractionsDATA \ -+ install install-am install-data \ -+ install-data-am \ - install-dist_completionsDATA install-dist_confDATA \ - install-dist_dbusDATA install-dist_dbusconfDATA \ - install-dist_initDATA install-dist_pamDATA install-dvi \ -@@ -838,8 +782,7 @@ uninstall-man: uninstall-man1 - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ -- uninstall-am uninstall-apparmor_profileDATA \ -- uninstall-dist_apparmor_profile_abstractionsDATA \ -+ uninstall-am \ - uninstall-dist_completionsDATA uninstall-dist_confDATA \ - uninstall-dist_dbusDATA uninstall-dist_dbusconfDATA \ - uninstall-dist_initDATA uninstall-dist_pamDATA uninstall-man \ diff --git a/x11/lightdm/files/patch-m4_qt-validate-moc.m4 b/x11/lightdm/files/patch-m4_qt-validate-moc.m4 new file mode 100644 index 000000000000..5ba64173fe57 --- /dev/null +++ b/x11/lightdm/files/patch-m4_qt-validate-moc.m4 @@ -0,0 +1,10 @@ +--- m4/qt-validate-moc.m4.orig 2026-08-06 19:53:11 UTC ++++ m4/qt-validate-moc.m4 +@@ -53,6 +53,7 @@ AC_DEFUN([QT6_VALIDATE_MOC], [ + dnl Try to find a Qt 6 'moc' + AS_IF([test "x$MOCCMD" = "x"], + [for mocpath in "moc" "qtchooser -run-tool=moc -qt=6" "moc-qt6" \ ++ "%%QT6MOC%%" \ + "/usr/lib/qt6/moc" "/usr/lib/qt6/libexec/moc" \ + "/usr/lib64/qt6/moc" "/usr/lib64/qt6/libexec/moc" \ + "$prefix/lib/qt6/moc" "$prefix/lib/qt6/libexec/moc" \ diff --git a/x11/lightdm/files/patch-src_lightdm.c b/x11/lightdm/files/patch-src_lightdm.c index bc422d31c2af..69d219d00b82 100644 --- a/x11/lightdm/files/patch-src_lightdm.c +++ b/x11/lightdm/files/patch-src_lightdm.c @@ -1,20 +1,20 @@ ---- src/lightdm.c.orig 2022-07-10 21:17:23 UTC +--- src/lightdm.c.orig 2026-08-06 19:53:11 UTC +++ src/lightdm.c -@@ -758,6 +758,8 @@ main (int argc, char **argv) +@@ -775,6 +775,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) +@@ -830,7 +832,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 5ee4af1043f3..3132e4069675 100644 --- a/x11/lightdm/files/patch-src_session-child.c +++ b/x11/lightdm/files/patch-src_session-child.c @@ -1,131 +1,73 @@ ---- src/session-child.c.orig 2021-04-12 04:52:50 UTC +--- src/session-child.c.orig 2026-08-06 19:53:11 UTC +++ src/session-child.c -@@ -13,9 +13,11 @@ +@@ -13,7 +13,6 @@ #include #include #include -#include #include #include -+#if HAVE_SETUSERCONTEXT -+#include -+#endif - - #if HAVE_LIBAUDIT - #include -@@ -193,28 +195,6 @@ read_xauth (void) + #if HAVE_SETUSERCONTEXT +@@ -196,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) -@@ -364,7 +344,6 @@ session_child_run (int argc, char **argv) +@@ -367,8 +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); -@@ -394,7 +373,7 @@ session_child_run (int argc, char **argv) + #endif +@@ -397,7 +372,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"); - 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))); -@@ -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) ++ pam_putenv (pam_handle, "PATH=/sbin:/bin:/usr/sbin:/usr/bin:%%LOCALBASE%%/sbin:%%LOCALBASE%%/bin"); + g_autofree gchar* user_env = g_strdup_printf ("USER=%s", username); + pam_putenv (pam_handle, user_env); + g_autofree gchar* logname_env = g_strdup_printf ("LOGNAME=%s", username); +@@ -759,7 +734,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); -@@ -750,7 +757,6 @@ session_child_run (int argc, char **argv) +@@ -800,7 +774,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 index 73629fc301e7..5b5510fd2039 100644 --- a/x11/lightdm/files/patch-src_session.c +++ b/x11/lightdm/files/patch-src_session.c @@ -1,21 +1,21 @@ ---- src/session.c.orig 2021-04-12 04:52:50 UTC +--- src/session.c.orig 2026-08-06 19:53:11 UTC +++ src/session.c -@@ -981,7 +981,17 @@ session_init (Session *session) +@@ -1002,7 +1002,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/files/patch-src_vt.c b/x11/lightdm/files/patch-src_vt.c index a41bfc74fd41..5154fa94a41d 100644 --- a/x11/lightdm/files/patch-src_vt.c +++ b/x11/lightdm/files/patch-src_vt.c @@ -1,99 +1,13 @@ ---- src/vt.c.orig 2019-08-04 22:29:55 UTC +--- src/vt.c.orig 2026-08-06 19:53:11 UTC +++ src/vt.c -@@ -16,6 +16,9 @@ - #include - #include - #include -+#ifdef __FreeBSD__ -+#include -+#endif - #ifdef __linux__ - #include - #endif -@@ -23,31 +26,56 @@ - #include "vt.h" - #include "configuration.h" - -+#if defined(__FreeBSD__) -+#define CONSOLE "/dev/console" -+#else -+#define CONSOLE "/dev/tty0" -+#endif -+ - static GList *used_vts = NULL; - - static gint - open_tty (void) - { -- int fd = g_open ("/dev/tty0", O_RDONLY | O_NOCTTY, 0); -+ int fd = g_open (CONSOLE, O_RDONLY | O_NOCTTY, 0); - if (fd < 0) -- g_warning ("Error opening /dev/tty0: %s", strerror (errno)); -+ g_warning ("Error opening " CONSOLE ": %s", strerror (errno)); - return fd; - } - +@@ -46,7 +46,9 @@ vt_can_multi_seat (void) gboolean vt_can_multi_seat (void) { -+#if defined(__linux__) +-#if defined(__linux__) ++#if defined(__FreeBSD__) ++ return TRUE; ++#elif defined(__linux__) /* Quick check to see if we can multi seat. This is intentionally the same check logind does, just without actually reading from the files. Existence will prove whether we have CONFIG_VT built into the kernel. */ - return access ("/dev/tty0", F_OK) == 0 && - access ("/sys/class/tty/tty0/active", F_OK) == 0; -+#else -+ return FALSE; -+#endif - } - - gint - vt_get_active (void) - { --#ifdef __linux__ -+#if defined(__FreeBSD__) -+ int active, res; -+ int tty_fd = open_tty (); -+ -+ if (tty_fd >= 0) -+ { -+ res = ioctl (tty_fd, VT_GETACTIVE, &active); -+ close (tty_fd); -+ if (res == 0) -+ return active; -+ -+ g_warning ("Error using VT_GETACTIVE on " CONSOLE ": %s", strerror (errno)); -+ } -+ -+ return -1; -+#elif defined(__linux__) - /* Pretend always active */ - if (getuid () != 0) - return 1; -@@ -73,7 +101,7 @@ vt_set_active (gint number) - void - vt_set_active (gint number) - { --#ifdef __linux__ -+#if defined(__FreeBSD__) || defined(__linux__) - g_debug ("Activating VT %d", number); - - /* Pretend always active */ -@@ -86,7 +114,7 @@ vt_set_active (gint number) - int n = number; - if (ioctl (tty_fd, VT_ACTIVATE, n) < 0) - { -- g_warning ("Error using VT_ACTIVATE %d on /dev/tty0: %s", n, strerror (errno)); -+ g_warning ("Error using VT_ACTIVATE %d on " CONSOLE ": %s", n, strerror (errno)); - close (tty_fd); - return; - } -@@ -101,7 +129,7 @@ vt_set_active (gint number) - { - if (errno == EINTR) - continue; -- g_warning ("Error using VT_WAITACTIVE %d on /dev/tty0: %s", n, strerror (errno)); -+ g_warning ("Error using VT_WAITACTIVE %d on " CONSOLE ": %s", n, strerror (errno)); - } - break; - } diff --git a/x11/lightdm/files/patch-src_x-server-local.c b/x11/lightdm/files/patch-src_x-server-local.c index 94a59c432c92..1706c6958f5d 100644 --- a/x11/lightdm/files/patch-src_x-server-local.c +++ b/x11/lightdm/files/patch-src_x-server-local.c @@ -1,24 +1,24 @@ ---- src/x-server-local.c.orig 2018-08-30 00:35:31 UTC +--- src/x-server-local.c.orig 2026-08-06 19:53:11 UTC +++ src/x-server-local.c -@@ -530,17 +530,13 @@ x_server_local_start (DisplayServer *display_server) +@@ -542,17 +542,13 @@ x_server_local_start (DisplayServer *display_server) } } - /* Pass through library variables */ - if (g_getenv ("LD_PRELOAD")) - process_set_env (priv->x_server_process, "LD_PRELOAD", g_getenv ("LD_PRELOAD")); - if (g_getenv ("LD_LIBRARY_PATH")) - process_set_env (priv->x_server_process, "LD_LIBRARY_PATH", g_getenv ("LD_LIBRARY_PATH")); - if (g_getenv ("PATH")) - process_set_env (priv->x_server_process, "PATH", g_getenv ("PATH")); - /* Variable required for regression tests */ if (g_getenv ("LIGHTDM_TEST_ROOT")) + { process_set_env (priv->x_server_process, "LIGHTDM_TEST_ROOT", g_getenv ("LIGHTDM_TEST_ROOT")); + process_set_env (priv->x_server_process, "LD_PRELOAD", g_getenv ("LD_PRELOAD")); + process_set_env (priv->x_server_process, "LD_LIBRARY_PATH", g_getenv ("LD_LIBRARY_PATH")); + } gboolean result = process_start (priv->x_server_process, FALSE); if (result) diff --git a/x11/lightdm/files/patch-src_x-server.c b/x11/lightdm/files/patch-src_x-server.c deleted file mode 100644 index 514215b861ab..000000000000 --- a/x11/lightdm/files/patch-src_x-server.c +++ /dev/null @@ -1,63 +0,0 @@ ---- src/x-server.c.orig 2019-08-04 22:29:55 UTC -+++ src/x-server.c -@@ -152,13 +152,60 @@ x_server_connect_session (DisplayServer *display_serve - g_autofree gchar *tty_text = NULL; - g_autofree gchar *vt_text = NULL; - -+#ifdef __FreeBSD__ -+ char vty_num32[6]; -+ int num; -+ const int base = 32; -+ size_t offset = 0; -+ -+ num = vt - 1; -+ -+ if (num == 0) { -+ vty_num32[offset++] = '0'; -+ vty_num32[offset] = '\0'; -+ } else { -+ for (int remaning = num; remaning > 0; remaning /= base, offset++) { -+ if (offset + 1 >= 6) { -+ g_error ("tty number buffer too small"); -+ goto error; -+ } -+ -+ const int value = remaning % base; -+ if (value >= 10) { -+ vty_num32[offset] = 'a' + value - 10; -+ } else { -+ vty_num32[offset] = '0' + value; -+ } -+ } -+ -+ for (size_t i = 0; i < offset / 2; i++) { -+ const size_t p1 = i; -+ const size_t p2 = offset - 1 - i; -+ const char tmp = vty_num32[p1]; -+ vty_num32[p1] = vty_num32[p2]; -+ vty_num32[p2] = tmp; -+ } -+ -+ vty_num32[offset] = '\0'; -+ } -+ -+ tty_text = g_strdup_printf ("/dev/ttyv%s", vty_num32); -+#else - tty_text = g_strdup_printf ("/dev/tty%d", vt); -+#endif - session_set_tty (session, tty_text); - -+#ifdef __FreeBSD__ -+ vt_text = g_strdup_printf ("%d", num); -+#else - vt_text = g_strdup_printf ("%d", vt); -+#endif - session_set_env (session, "XDG_VTNR", vt_text); - } - else -+#ifdef __FreeBSD__ -+error: -+#endif - l_debug (session, "Not setting XDG_VTNR"); - - session_set_env (session, "DISPLAY", x_server_get_address (X_SERVER (display_server))); diff --git a/x11/lightdm/pkg-plist b/x11/lightdm/pkg-plist index 16ac24f6a0af..aafa4fa33433 100644 --- a/x11/lightdm/pkg-plist +++ b/x11/lightdm/pkg-plist @@ -1,181 +1,194 @@ bin/dm-tool %%ETCDIR%%/Xsession @sample %%ETCDIR%%/keys.conf.sample @sample %%ETCDIR%%/lightdm.conf.sample @sample %%ETCDIR%%/users.conf.sample @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 +%%QT6%%include/lightdm-qt6-3/QLightDM/Greeter +%%QT6%%include/lightdm-qt6-3/QLightDM/Power +%%QT6%%include/lightdm-qt6-3/QLightDM/SessionsModel +%%QT6%%include/lightdm-qt6-3/QLightDM/UsersModel +%%QT6%%include/lightdm-qt6-3/QLightDM/greeter.h +%%QT6%%include/lightdm-qt6-3/QLightDM/power.h +%%QT6%%include/lightdm-qt6-3/QLightDM/sessionsmodel.h +%%QT6%%include/lightdm-qt6-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 +%%QT6%%lib/liblightdm-qt6-3.a +%%QT6%%lib/liblightdm-qt6-3.so +%%QT6%%lib/liblightdm-qt6-3.so.0 +%%QT6%%lib/liblightdm-qt6-3.so.0.0.0 libdata/pkgconfig/liblightdm-gobject-1.pc %%QT5%%libdata/pkgconfig/liblightdm-qt5-3.pc +%%QT6%%libdata/pkgconfig/liblightdm-qt6-3.pc libexec/lightdm-guest-session share/man/man1/dm-tool.1.gz share/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%%%%PORTDOCS%%share/help/C/lightdm/autologin.page %%VAPI%%%%PORTDOCS%%share/help/C/lightdm/config.page %%VAPI%%%%PORTDOCS%%share/help/C/lightdm/default-greeter.page %%VAPI%%%%PORTDOCS%%share/help/C/lightdm/default-session.page %%VAPI%%%%PORTDOCS%%share/help/C/lightdm/diagnostics.page %%VAPI%%%%PORTDOCS%%share/help/C/lightdm/guest.page %%VAPI%%%%PORTDOCS%%share/help/C/lightdm/index.page %%VAPI%%%%PORTDOCS%%share/help/C/lightdm/legal.xml %%VAPI%%%%PORTDOCS%%share/help/C/lightdm/local-sessions.page %%VAPI%%%%PORTDOCS%%share/help/C/lightdm/remote-sessions.page %%VAPI%%%%PORTDOCS%%share/help/C/lightdm/seat.page %%VAPI%%%%PORTDOCS%%share/help/C/lightdm/standard-authentication.page %%VAPI%%%%PORTDOCS%%share/help/C/lightdm/user-list.page %%VAPI%%%%PORTDOCS%%share/help/C/lightdm/user-switching.page %%VAPI%%%%PORTDOCS%%share/help/C/lightdm/vnc.page %%VAPI%%%%PORTDOCS%%share/help/C/lightdm/write-greeter.page %%VAPI%%%%PORTDOCS%%share/help/C/lightdm/xdmcp.page %%NLS%%share/locale/af/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/an/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/ar/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/ast/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/az/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/be/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/bg/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/bn/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/bo/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/br/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/bs/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/ca/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/ca@valencia/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/ckb/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/cs/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/da/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/de/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/el/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/en_AU/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/en_CA/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/en_GB/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/eo/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/es/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/et/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/eu/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/fa/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/fi/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/fo/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/fr/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/fy/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/gd/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/gl/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/gu/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/he/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/hi/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/hr/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/hu/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/ia/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/id/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/is/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/it/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/ja/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/kk/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/km/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/kn/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/ko/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/ku/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/lb/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/lt/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/lv/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/mhr/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/mi/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/ml/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/mr/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/ms/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/my/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/nb/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/nl/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/nn/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/oc/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/pa/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/pl/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/pt/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/pt_BR/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/ro/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/ru/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/sc/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/sd/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/shn/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/si/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/sk/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/sl/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/sq/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/sr/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/sv/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/ta/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/te/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/tg/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/th/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/tl/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/tr/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/ug/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/uk/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/uz/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/vi/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/wae/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/zh_CN/LC_MESSAGES/lightdm.mo %%NLS%%share/locale/zh_HK/LC_MESSAGES/lightdm.mo %%NLS%%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