Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F136853431
D11619.id30856.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
19 KB
Referenced Files
None
Subscribers
None
D11619.id30856.diff
View Options
Index: GIDs
===================================================================
--- GIDs
+++ GIDs
@@ -159,7 +159,7 @@
opendnssec:*:215:
nsd:*:216:
anvil:*:217:
-# free: 218
+sddm:*:218:
# free: 219
bs:*:220:
# free: 221
Index: UIDs
===================================================================
--- UIDs
+++ UIDs
@@ -164,7 +164,7 @@
opendnssec:*:215:215::0:0:Opendnssec Pseudo User:/nonexistent:/usr/sbin/nologin
nsd:*:216:216::0:0:NSD DNS Server:/nonexistent:/usr/sbin/nologin
anvil:*:217:217::0:0:anvil certificate dropper:/var/db/anvil:/bin/sh
-# free: 218
+sddm:*:218:218::0:0:SDDM Display Manager user:/usr/local/etc/sddm/home:/usr/sbin/nologin
# free: 219
bs:*:220:220::0:0:Big Sister:/usr/local/bigsister:/bin/sh
# free: 221
Index: x11/Makefile
===================================================================
--- x11/Makefile
+++ x11/Makefile
@@ -291,6 +291,7 @@
SUBDIR += sbxkb
SUBDIR += scripts
SUBDIR += scrnsaverproto
+ SUBDIR += sddm
SUBDIR += sessreg
SUBDIR += setlayout
SUBDIR += setxkbmap
Index: x11/sddm/Makefile
===================================================================
--- /dev/null
+++ x11/sddm/Makefile
@@ -0,0 +1,38 @@
+# $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
+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
+
+.include <bsd.port.mk>
Index: x11/sddm/distinfo
===================================================================
--- /dev/null
+++ 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
Index: x11/sddm/files/patch-CMakeLists.txt
===================================================================
--- /dev/null
+++ 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")
Index: x11/sddm/files/patch-src_common_Configuration.h
===================================================================
--- /dev/null
+++ 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"));
Index: x11/sddm/files/patch-src_daemon_CMakeLists.txt
===================================================================
--- /dev/null
+++ 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)
Index: x11/sddm/files/patch-src_daemon_Display.cpp
===================================================================
--- /dev/null
+++ 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);
Index: x11/sddm/files/patch-src_greeter_UserModel.cpp
===================================================================
--- /dev/null
+++ 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
Index: x11/sddm/files/patch-src_helper_UserSession.cpp
===================================================================
--- /dev/null
+++ 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>
Index: x11/sddm/files/patch-src_helper_backend_PasswdBackend.cpp
===================================================================
--- /dev/null
+++ 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;
+ }
Index: x11/sddm/files/sddm.in
===================================================================
--- /dev/null
+++ x11/sddm/files/sddm.in
@@ -0,0 +1,75 @@
+#!/bin/sh
+# $FreeBSD: branches/plasma5/PORTS/x11/sddm/files/sddm.in 13764 2017-03-12 08:06:46Z tcberner $
+#
+# 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"
Index: x11/sddm/pkg-descr
===================================================================
--- /dev/null
+++ x11/sddm/pkg-descr
@@ -0,0 +1,3 @@
+QML based X11 and Wayland display manager.
+
+WWW: https://github.com/sddm/sddm
Index: x11/sddm/pkg-plist
===================================================================
--- /dev/null
+++ x11/sddm/pkg-plist
@@ -0,0 +1,162 @@
+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%%/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
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Nov 21, 3:00 AM (9 h, 36 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25748206
Default Alt Text
D11619.id30856.diff (19 KB)
Attached To
Mode
D11619: New port: x11/sddm
Attached
Detach File
Event Timeline
Log In to Comment