aboutsummaryrefslogtreecommitdiff
path: root/x11/sddm
diff options
context:
space:
mode:
authorTobias C. Berner <tcberner@FreeBSD.org>2017-09-06 19:32:40 +0000
committerTobias C. Berner <tcberner@FreeBSD.org>2017-09-06 19:32:40 +0000
commitb9272ca006e684b691a2223c81cb60c8c84ea4b9 (patch)
tree98e82027146e8659cd6930ae02d0c19ce255e750 /x11/sddm
parent65c3338c8ca5a5ce96a71f37a263adb3539ff8a4 (diff)
downloadports-b9272ca006e684b691a2223c81cb60c8c84ea4b9.tar.gz
ports-b9272ca006e684b691a2223c81cb60c8c84ea4b9.zip
New port: x11/sddm
sddm is a QML based X11 and Wayland display manager https://github.com/sddm/sddm Reviewed by: rakuco, groot_kde.org Differential Revision: https://reviews.freebsd.org/D11619
Notes
Notes: svn path=/head/; revision=449358
Diffstat (limited to 'x11/sddm')
-rw-r--r--x11/sddm/Makefile46
-rw-r--r--x11/sddm/distinfo3
-rw-r--r--x11/sddm/files/patch-CMakeLists.txt16
-rw-r--r--x11/sddm/files/patch-src_common_Configuration.h39
-rw-r--r--x11/sddm/files/patch-src_daemon_CMakeLists.txt23
-rw-r--r--x11/sddm/files/patch-src_daemon_Display.cpp39
-rw-r--r--x11/sddm/files/patch-src_greeter_UserModel.cpp12
-rw-r--r--x11/sddm/files/patch-src_helper_UserSession.cpp12
-rw-r--r--x11/sddm/files/patch-src_helper_backend_PasswdBackend.cpp46
-rw-r--r--x11/sddm/files/sddm.in75
-rw-r--r--x11/sddm/files/xinit-session12
-rw-r--r--x11/sddm/files/xinitrc.desktop7
-rw-r--r--x11/sddm/pkg-descr3
-rw-r--r--x11/sddm/pkg-plist164
14 files changed, 497 insertions, 0 deletions
diff --git a/x11/sddm/Makefile b/x11/sddm/Makefile
new file mode 100644
index 000000000000..f99aa29e2bd8
--- /dev/null
+++ b/x11/sddm/Makefile
@@ -0,0 +1,46 @@
+# $FreeBSD$
+
+PORTNAME= sddm
+PORTVERSION= 0.14.0
+DISTVERSIONPREFIX= v
+CATEGORIES= x11
+
+MAINTAINER= kde@FreeBSD.org
+COMMENT= QML based login manager
+
+USES= cmake:outsource desktop-file-utils kde:5
+USE_KDE= ecm
+USE_QT5= concurrent core dbus gui linguisttools multimedia network \
+ printsupport qml quick script sql webkit widgets \
+ buildtools_build qmake_build
+USE_XORG= xcb
+
+CMAKE_ARGS= -DUID_MIN=1000 \
+ -DUID_MAX=65000 \
+ -DCMAKE_INSTALL_SYSCONFDIR:PATH=${LOCALBASE}/etc
+# We need to disable PAM at the moment and use the passwd-based backend;
+# the two backend are mutually exclusive, and we have to investigate how
+# to make it compatible with OpenPAM.
+CMAKE_ARGS+= -DENABLE_PAM:BOOL=FALSE
+
+USE_RC_SUBR= sddm
+
+USERS= sddm
+GROUPS= sddm
+
+USE_GITHUB= yes
+
+post-patch:
+# Patch in the correct location for X11 startup files, and make the session start
+# script of sddm use the value of ${STARTUP} defined by 90-consolekit
+ ${REINPLACE_CMD} -e 's#/etc/X11#${LOCALBASE}/etc/X11#g' \
+ -e '/exec.*session/s#exec#exec $${STARTUP}#g' \
+ ${PATCH_WRKSRC}/data/scripts/Xsession
+
+post-install:
+# Install xsession.desktop to launch .xinitrc via sddm.
+ ${MKDIR} ${STAGEDIR}${PREFIX}/share/xsessions
+ ${INSTALL_DATA} ${FILESDIR}/xinitrc.desktop ${STAGEDIR}${PREFIX}/share/xsessions
+ ${INSTALL_SCRIPT} ${FILESDIR}/xinit-session ${STAGEDIR}${PREFIX}/share/sddm/scripts
+
+.include <bsd.port.mk>
diff --git a/x11/sddm/distinfo b/x11/sddm/distinfo
new file mode 100644
index 000000000000..ac69c1466563
--- /dev/null
+++ b/x11/sddm/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1488014449
+SHA256 (sddm-sddm-v0.14.0_GH0.tar.gz) = a551551a6ba324e9c384c89bc63e871de65fea3740eadbea2d63df86045f8205
+SIZE (sddm-sddm-v0.14.0_GH0.tar.gz) = 3367582
diff --git a/x11/sddm/files/patch-CMakeLists.txt b/x11/sddm/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..2a7e3aa57836
--- /dev/null
+++ b/x11/sddm/files/patch-CMakeLists.txt
@@ -0,0 +1,16 @@
+1) On FreeBSD X is normally started on VT9.
+2) The shutdown command uses '-p' and not '-P' on FreeBSD.
+
+--- CMakeLists.txt.orig 2016-08-28 11:54:03 UTC
++++ CMakeLists.txt
+@@ -143,8 +143,8 @@ if(SYSTEMD_FOUND)
+ set(REBOOT_COMMAND "/usr/bin/systemctl reboot")
+ else()
+ set(SYSTEMD_FOUND 0)
+- set(MINIMUM_VT 7)
+- set(HALT_COMMAND "/sbin/shutdown -h -P now")
++ set(MINIMUM_VT 9)
++ set(HALT_COMMAND "/sbin/shutdown -h -p now")
+ set(REBOOT_COMMAND "/sbin/shutdown -r now")
+ endif()
+ add_feature_info("systemd" SYSTEMD_FOUND "systemd support")
diff --git a/x11/sddm/files/patch-src_common_Configuration.h b/x11/sddm/files/patch-src_common_Configuration.h
new file mode 100644
index 000000000000..b166b904512c
--- /dev/null
+++ b/x11/sddm/files/patch-src_common_Configuration.h
@@ -0,0 +1,39 @@
+Modify the default configuration to fit in to FreeBSD. That is replace '/usr/bin'
+with '/usr/local/bin' and so on.
+The setting of '$PATH' I find a bit dumb... this should respect the values of the
+users profile...
+
+--- src/common/Configuration.h.orig 2016-08-28 11:54:03 UTC
++++ src/common/Configuration.h
+@@ -58,11 +58,11 @@ namespace SDDM {
+
+ // TODO: Not absolutely sure if everything belongs here. Xsessions, VT and probably some more seem universal
+ Section(X11,
+- Entry(ServerPath, QString, _S("/usr/bin/X"), _S("Path to X server binary"));
++ Entry(ServerPath, QString, _S("/usr/local/bin/X"), _S("Path to X server binary"));
+ Entry(ServerArguments, QString, _S("-nolisten tcp"), _S("Arguments passed to the X server invocation"));
+- Entry(XephyrPath, QString, _S("/usr/bin/Xephyr"), _S("Path to Xephyr binary"));
+- Entry(XauthPath, QString, _S("/usr/bin/xauth"), _S("Path to xauth binary"));
+- Entry(SessionDir, QString, _S("/usr/share/xsessions"), _S("Directory containing available X sessions"));
++ Entry(XephyrPath, QString, _S("/usr/local/bin/Xephyr"), _S("Path to Xephyr binary"));
++ Entry(XauthPath, QString, _S("/usr/local/bin/xauth"), _S("Path to xauth binary"));
++ Entry(SessionDir, QString, _S("/usr/local/share/xsessions"), _S("Directory containing available X sessions"));
+ Entry(SessionCommand, QString, _S(SESSION_COMMAND), _S("Path to a script to execute when starting the desktop session"));
+ Entry(SessionLogFile, QString, _S(".local/share/sddm/xorg-session.log"), _S("Path to the user session log file"));
+ Entry(UserAuthFile, QString, _S(".Xauthority"), _S("Path to the Xauthority file"));
+@@ -72,13 +72,13 @@ namespace SDDM {
+ );
+
+ Section(Wayland,
+- Entry(SessionDir, QString, _S("/usr/share/wayland-sessions"), _S("Directory containing available Wayland sessions"));
++ Entry(SessionDir, QString, _S("/usr/local/share/wayland-sessions"), _S("Directory containing available Wayland sessions"));
+ Entry(SessionCommand, QString, _S(WAYLAND_SESSION_COMMAND), _S("Path to a script to execute when starting the desktop session"));
+ Entry(SessionLogFile, QString, _S(".local/share/sddm/wayland-session.log"),_S("Path to the user session log file"));
+ );
+
+ Section(Users,
+- Entry(DefaultPath, QString, _S("/bin:/usr/bin:/usr/local/bin"), _S("Default $PATH for logged in users"));
++ Entry(DefaultPath, QString, _S("/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"), _S("Default $PATH for logged in users"));
+ Entry(MinimumUid, int, UID_MIN, _S("Minimum user id for displayed users"));
+ Entry(MaximumUid, int, UID_MAX, _S("Maximum user id for displayed users"));
+ Entry(HideUsers, QStringList, QStringList(), _S("Comma-separated list of users that should not be listed"));
diff --git a/x11/sddm/files/patch-src_daemon_CMakeLists.txt b/x11/sddm/files/patch-src_daemon_CMakeLists.txt
new file mode 100644
index 000000000000..6e4e688fe83c
--- /dev/null
+++ b/x11/sddm/files/patch-src_daemon_CMakeLists.txt
@@ -0,0 +1,23 @@
+This patch does two things:
+1) Add the include directories for 'libxcb' to the compiler search directories,
+2) Remove VirtualTerminal.cpp from the sources that need to be built.
+ see also 'patch-src_daemon_Display.cpp'
+
+--- src/daemon/CMakeLists.txt.orig 2016-08-28 11:54:03 UTC
++++ src/daemon/CMakeLists.txt
+@@ -3,6 +3,7 @@ include_directories(
+ "${CMAKE_SOURCE_DIR}/src/auth"
+ )
+ include_directories("${CMAKE_BINARY_DIR}/src/common")
++include_directories("${LIBXCB_INCLUDE_DIR}")
+
+ set(DAEMON_SOURCES
+ ${CMAKE_SOURCE_DIR}/src/common/Configuration.cpp
+@@ -26,7 +27,6 @@ set(DAEMON_SOURCES
+ SeatManager.cpp
+ SignalHandler.cpp
+ SocketServer.cpp
+- VirtualTerminal.cpp
+ )
+
+ qt5_add_dbus_adaptor(DAEMON_SOURCES "${CMAKE_SOURCE_DIR}/data/interfaces/org.freedesktop.DisplayManager.xml" "DisplayManager.h" SDDM::DisplayManager)
diff --git a/x11/sddm/files/patch-src_daemon_Display.cpp b/x11/sddm/files/patch-src_daemon_Display.cpp
new file mode 100644
index 000000000000..548b57f5d031
--- /dev/null
+++ b/x11/sddm/files/patch-src_daemon_Display.cpp
@@ -0,0 +1,39 @@
+VirtualTerminal for Wayland is only present on Linux at the moment.
+As we are only interested in an X11 session at the moment, we therefore
+can hide it behind a Q_OS_LINUX.
+
+--- src/daemon/Display.cpp.orig 2016-08-28 11:54:03 UTC
++++ src/daemon/Display.cpp
+@@ -30,7 +30,9 @@
+ #include "Greeter.h"
+ #include "Utils.h"
+ #include "SignalHandler.h"
++#if defined(Q_OS_LINUX)
+ #include "VirtualTerminal.h"
++#endif
+
+ #include <QDebug>
+ #include <QFile>
+@@ -280,8 +282,10 @@ namespace SDDM {
+
+ // create new VT for Wayland sessions otherwise use greeter vt
+ int vt = terminalId();
++#if defined(Q_OS_LINUX)
+ if (session.xdgSessionType() == QLatin1String("wayland"))
+ vt = VirtualTerminal::setUpNewVt();
++#endif
+ m_lastSession.setVt(vt);
+
+ QProcessEnvironment env;
+@@ -321,9 +325,11 @@ namespace SDDM {
+ stateConfig.Last.Session.setDefault();
+ stateConfig.save();
+
++#if defined(Q_OS_LINUX)
+ // switch to the new VT for Wayland sessions
+ if (m_lastSession.xdgSessionType() == QLatin1String("wayland"))
+ VirtualTerminal::jumpToVt(m_lastSession.vt());
++#endif
+
+ if (m_socket)
+ emit loginSucceeded(m_socket);
diff --git a/x11/sddm/files/patch-src_greeter_UserModel.cpp b/x11/sddm/files/patch-src_greeter_UserModel.cpp
new file mode 100644
index 000000000000..421c946818f5
--- /dev/null
+++ b/x11/sddm/files/patch-src_greeter_UserModel.cpp
@@ -0,0 +1,12 @@
+Call 'setpwent' to rewind to the beginning of the passwd database.
+
+--- src/greeter/UserModel.cpp.orig 2016-07-10 21:26:13 UTC
++++ src/greeter/UserModel.cpp
+@@ -55,6 +55,7 @@ namespace SDDM {
+ const QString defaultFace = QStringLiteral("%1/.face.icon").arg(facesDir);
+
+ struct passwd *current_pw;
++ setpwent();
+ while ((current_pw = getpwent()) != nullptr) {
+
+ // skip entries with uids smaller than minimum uid
diff --git a/x11/sddm/files/patch-src_helper_UserSession.cpp b/x11/sddm/files/patch-src_helper_UserSession.cpp
new file mode 100644
index 000000000000..b89fbd121a76
--- /dev/null
+++ b/x11/sddm/files/patch-src_helper_UserSession.cpp
@@ -0,0 +1,12 @@
+Include '<errno.h>' as 'errno' is used.
+
+--- src/helper/UserSession.cpp.orig 2016-07-06 14:00:10 UTC
++++ src/helper/UserSession.cpp
+@@ -25,6 +25,7 @@
+
+ #include <sys/types.h>
+ #include <sys/ioctl.h>
++#include <errno.h>
+ #include <unistd.h>
+ #include <pwd.h>
+ #include <grp.h>
diff --git a/x11/sddm/files/patch-src_helper_backend_PasswdBackend.cpp b/x11/sddm/files/patch-src_helper_backend_PasswdBackend.cpp
new file mode 100644
index 000000000000..f356b30c74ba
--- /dev/null
+++ b/x11/sddm/files/patch-src_helper_backend_PasswdBackend.cpp
@@ -0,0 +1,46 @@
+Implement password authentication on FreeBSD.
+This needs review :)
+
+--- src/helper/backend/PasswdBackend.cpp.orig 2016-07-06 14:00:10 UTC
++++ src/helper/backend/PasswdBackend.cpp
+@@ -27,8 +27,13 @@
+
+ #include <sys/types.h>
+ #include <pwd.h>
++#if defined(Q_OS_LINUX)
+ #include <shadow.h>
+ #include <crypt.h>
++#endif
++#if defined(Q_OS_FREEBSD)
++#include <unistd.h>
++#endif
+
+ namespace SDDM {
+ PasswdBackend::PasswdBackend(HelperApp *parent)
+@@ -72,6 +77,17 @@ namespace SDDM {
+ return false;
+ }
+
++#if defined(Q_OS_FREEBSD)
++ if (!*pw->pw_passwd)
++ {
++ //empty password
++ return true;
++ }
++ char *crypted = crypt(qPrintable(password), pw->pw_passwd);
++ if (0 == strcmp(crypted, pw->pw_passwd)) {
++ return true;
++ }
++#else
+ struct spwd *spw = getspnam(pw->pw_name);
+ if (!spw) {
+ qWarning() << "[Passwd] Could get passwd but not shadow";
+@@ -85,7 +101,7 @@ namespace SDDM {
+ if (0 == strcmp(crypted, spw->sp_pwdp)) {
+ return true;
+ }
+-
++#endif
+ m_app->error(QStringLiteral("Wrong user/password combination"), Auth::ERROR_AUTHENTICATION);
+ return false;
+ }
diff --git a/x11/sddm/files/sddm.in b/x11/sddm/files/sddm.in
new file mode 100644
index 000000000000..8855b0f60a97
--- /dev/null
+++ b/x11/sddm/files/sddm.in
@@ -0,0 +1,75 @@
+#!/bin/sh
+# $FreeBSD$
+#
+# PROVIDE: sddm
+# REQUIRE: LOGIN cleanvar moused syscons dbus hald
+# KEYWORD: shutdown
+#
+# Add the following to /etc/rc.conf to start SDDM at boot time:
+#
+# sddm_enable="YES"
+
+. /etc/rc.subr
+
+name=sddm
+rcvar=sddm_enable
+
+load_rc_config ${name}
+
+: ${sddm_lang="en_US"} # .UTF-8 suffix will be added later to comply with locale format
+
+command="/usr/local/bin/sddm"
+pidfile="/var/run/sddm.pid"
+start_cmd="sddm_start"
+stop_cmd="sddm_stop"
+
+# Creates /etc/sddm.conf after `sddm --example-config` if it's not there already.
+sddm_genconf()
+{
+ if [ ! -r /etc/sddm.conf ]; then
+ echo "Generating SDDM configuration."
+ ${command} --example-config > /etc/sddm.conf
+ fi
+}
+
+sddm_start()
+{
+ echo "Starting ${name}."
+ local iter
+ sddm_genconf
+
+ ( iter=0
+ while ! ps -axoargs | grep "^/usr/libexec/getty" | grep -qv grep > /dev/null 2>&1; do
+ if [ ${iter} -eq 60 ]; then
+ break
+ fi
+ sleep 1
+ iter=$((${iter} + 1))
+ done
+
+ if checkyesno hald_enable; then
+ if [ ! -x /usr/local/sbin/hald ]; then
+ err 1 "Hald does not seem to be installed."
+ fi
+
+ iter=0
+ while [ ${iter} -lt 60 ] &&
+ !pgrep -f "^/usr/local/sbin/hald" > /dev/null 2>&1; do
+ sleep 1
+ iter=$((${iter} + 1))
+ done
+ fi
+
+ LANG=${sddm_lang}.UTF-8 ${command} ${sddm_flags} ) &
+}
+
+# Only takes the user back to the sddm screen when run from X
+sddm_stop()
+{
+ echo "Stopping ${name}."
+ /bin/kill -9 $(/bin/cat "${pidfile}")
+ pkill -9 -U ${name}
+ pkill -9 X
+}
+
+run_rc_command "$1"
diff --git a/x11/sddm/files/xinit-session b/x11/sddm/files/xinit-session
new file mode 100644
index 000000000000..804728c9ca53
--- /dev/null
+++ b/x11/sddm/files/xinit-session
@@ -0,0 +1,12 @@
+#!/bin/sh
+#
+# Runs the user's .xinitrc (at this point, .xsession has already
+# been sourced).
+
+RC="$HOME/.xinitrc"
+
+test -f "$RC" || exit 1
+
+test -x "$RC" && exec "$RC"
+test -f "$RC" && exec /bin/sh "$RC"
+
diff --git a/x11/sddm/files/xinitrc.desktop b/x11/sddm/files/xinitrc.desktop
new file mode 100644
index 000000000000..72c266b4260f
--- /dev/null
+++ b/x11/sddm/files/xinitrc.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=XSession
+Exec=/usr/local/share/sddm/scripts/xinit-session
+TryExec=/usr/local/share/sddm/scripts/xinit-session
+DesktopNames=User Session
+Name=User Session
diff --git a/x11/sddm/pkg-descr b/x11/sddm/pkg-descr
new file mode 100644
index 000000000000..b3c4b7af0a63
--- /dev/null
+++ b/x11/sddm/pkg-descr
@@ -0,0 +1,3 @@
+QML based X11 and Wayland display manager.
+
+WWW: https://github.com/sddm/sddm
diff --git a/x11/sddm/pkg-plist b/x11/sddm/pkg-plist
new file mode 100644
index 000000000000..f9c9ac03a60f
--- /dev/null
+++ b/x11/sddm/pkg-plist
@@ -0,0 +1,164 @@
+bin/sddm
+bin/sddm-greeter
+etc/dbus-1/system.d/org.freedesktop.DisplayManager.conf
+etc/pam.d/sddm
+etc/pam.d/sddm-autologin
+etc/pam.d/sddm-greeter
+etc/sddm.conf
+%%QT_QMLDIR%%/SddmComponents/Background.qml
+%%QT_QMLDIR%%/SddmComponents/Button.qml
+%%QT_QMLDIR%%/SddmComponents/Clock.qml
+%%QT_QMLDIR%%/SddmComponents/ComboBox.qml
+%%QT_QMLDIR%%/SddmComponents/ImageButton.qml
+%%QT_QMLDIR%%/SddmComponents/LayoutBox.qml
+%%QT_QMLDIR%%/SddmComponents/Menu.qml
+%%QT_QMLDIR%%/SddmComponents/PasswordBox.qml
+%%QT_QMLDIR%%/SddmComponents/PictureBox.qml
+%%QT_QMLDIR%%/SddmComponents/TextBox.qml
+%%QT_QMLDIR%%/SddmComponents/TextConstants.qml
+%%QT_QMLDIR%%/SddmComponents/qmldir
+%%QT_QMLDIR%%/SddmComponents/warning.png
+libexec/sddm-helper
+%%DATADIR%%/faces/.face.icon
+%%DATADIR%%/faces/root.face.icon
+%%DATADIR%%/flags/ae.png
+%%DATADIR%%/flags/am.png
+%%DATADIR%%/flags/ar.png
+%%DATADIR%%/flags/at.png
+%%DATADIR%%/flags/az.png
+%%DATADIR%%/flags/be.png
+%%DATADIR%%/flags/bg.png
+%%DATADIR%%/flags/bh.png
+%%DATADIR%%/flags/br.png
+%%DATADIR%%/flags/by.png
+%%DATADIR%%/flags/ca.png
+%%DATADIR%%/flags/ch.png
+%%DATADIR%%/flags/cu.png
+%%DATADIR%%/flags/cz.png
+%%DATADIR%%/flags/de.png
+%%DATADIR%%/flags/dj.png
+%%DATADIR%%/flags/dk.png
+%%DATADIR%%/flags/dz.png
+%%DATADIR%%/flags/ee.png
+%%DATADIR%%/flags/eg.png
+%%DATADIR%%/flags/es.png
+%%DATADIR%%/flags/eu.png
+%%DATADIR%%/flags/fi.png
+%%DATADIR%%/flags/fr.png
+%%DATADIR%%/flags/gb.png
+%%DATADIR%%/flags/ge.png
+%%DATADIR%%/flags/gr.png
+%%DATADIR%%/flags/hr.png
+%%DATADIR%%/flags/hu.png
+%%DATADIR%%/flags/il.png
+%%DATADIR%%/flags/in.png
+%%DATADIR%%/flags/iq.png
+%%DATADIR%%/flags/is.png
+%%DATADIR%%/flags/it.png
+%%DATADIR%%/flags/jo.png
+%%DATADIR%%/flags/jp.png
+%%DATADIR%%/flags/km.png
+%%DATADIR%%/flags/kr.png
+%%DATADIR%%/flags/kw.png
+%%DATADIR%%/flags/la.png
+%%DATADIR%%/flags/lb.png
+%%DATADIR%%/flags/lt.png
+%%DATADIR%%/flags/lv.png
+%%DATADIR%%/flags/ly.png
+%%DATADIR%%/flags/ma.png
+%%DATADIR%%/flags/mk.png
+%%DATADIR%%/flags/mn.png
+%%DATADIR%%/flags/mx.png
+%%DATADIR%%/flags/nl.png
+%%DATADIR%%/flags/no.png
+%%DATADIR%%/flags/om.png
+%%DATADIR%%/flags/pl.png
+%%DATADIR%%/flags/ps.png
+%%DATADIR%%/flags/pt.png
+%%DATADIR%%/flags/qa.png
+%%DATADIR%%/flags/qc.png
+%%DATADIR%%/flags/ro.png
+%%DATADIR%%/flags/ru.png
+%%DATADIR%%/flags/sa.png
+%%DATADIR%%/flags/sd.png
+%%DATADIR%%/flags/se.png
+%%DATADIR%%/flags/si.png
+%%DATADIR%%/flags/sk.png
+%%DATADIR%%/flags/so.png
+%%DATADIR%%/flags/sr.png
+%%DATADIR%%/flags/sy.png
+%%DATADIR%%/flags/th.png
+%%DATADIR%%/flags/tn.png
+%%DATADIR%%/flags/tr.png
+%%DATADIR%%/flags/ua.png
+%%DATADIR%%/flags/uk.png
+%%DATADIR%%/flags/un.png
+%%DATADIR%%/flags/us.png
+%%DATADIR%%/flags/uy.png
+%%DATADIR%%/flags/vn.png
+%%DATADIR%%/flags/ye.png
+%%DATADIR%%/flags/yu.png
+%%DATADIR%%/flags/zz.png
+%%DATADIR%%/scripts/Xsession
+%%DATADIR%%/scripts/Xsetup
+%%DATADIR%%/scripts/Xstop
+%%DATADIR%%/scripts/wayland-session
+%%DATADIR%%/scripts/xinit-session
+%%DATADIR%%/themes/elarun/Main.qml
+%%DATADIR%%/themes/elarun/README
+%%DATADIR%%/themes/elarun/angle-down.png
+%%DATADIR%%/themes/elarun/elarun.jpg
+%%DATADIR%%/themes/elarun/images/background.png
+%%DATADIR%%/themes/elarun/images/lock.png
+%%DATADIR%%/themes/elarun/images/login_active.png
+%%DATADIR%%/themes/elarun/images/login_normal.png
+%%DATADIR%%/themes/elarun/images/rectangle.png
+%%DATADIR%%/themes/elarun/images/rectangle_overlay.png
+%%DATADIR%%/themes/elarun/images/session_normal.png
+%%DATADIR%%/themes/elarun/images/system_hibernate.png
+%%DATADIR%%/themes/elarun/images/system_reboot.png
+%%DATADIR%%/themes/elarun/images/system_shutdown.png
+%%DATADIR%%/themes/elarun/images/system_suspend.png
+%%DATADIR%%/themes/elarun/images/system_switch_user.png
+%%DATADIR%%/themes/elarun/images/user_icon.png
+%%DATADIR%%/themes/elarun/metadata.desktop
+%%DATADIR%%/themes/elarun/theme.conf
+%%DATADIR%%/themes/maldives/LICENSE
+%%DATADIR%%/themes/maldives/Main.qml
+%%DATADIR%%/themes/maldives/README
+%%DATADIR%%/themes/maldives/angle-down.png
+%%DATADIR%%/themes/maldives/background.jpg
+%%DATADIR%%/themes/maldives/maldives.jpg
+%%DATADIR%%/themes/maldives/metadata.desktop
+%%DATADIR%%/themes/maldives/rectangle.png
+%%DATADIR%%/themes/maldives/theme.conf
+%%DATADIR%%/translations/ar.qm
+%%DATADIR%%/translations/ca.qm
+%%DATADIR%%/translations/cs.qm
+%%DATADIR%%/translations/de.qm
+%%DATADIR%%/translations/es.qm
+%%DATADIR%%/translations/et.qm
+%%DATADIR%%/translations/fi.qm
+%%DATADIR%%/translations/fr.qm
+%%DATADIR%%/translations/hu.qm
+%%DATADIR%%/translations/it.qm
+%%DATADIR%%/translations/ja.qm
+%%DATADIR%%/translations/ko.qm
+%%DATADIR%%/translations/lt.qm
+%%DATADIR%%/translations/lv.qm
+%%DATADIR%%/translations/nb.qm
+%%DATADIR%%/translations/nn.qm
+%%DATADIR%%/translations/pl.qm
+%%DATADIR%%/translations/pt_BR.qm
+%%DATADIR%%/translations/pt_PT.qm
+%%DATADIR%%/translations/ro.qm
+%%DATADIR%%/translations/ru.qm
+%%DATADIR%%/translations/sr.qm
+%%DATADIR%%/translations/sr@ijekavian.qm
+%%DATADIR%%/translations/sr@ijekavianlatin.qm
+%%DATADIR%%/translations/sr@latin.qm
+%%DATADIR%%/translations/sv.qm
+%%DATADIR%%/translations/tr.qm
+%%DATADIR%%/translations/zh_CN.qm
+%%DATADIR%%/translations/zh_TW.qm
+share/xsessions/xinitrc.desktop