FreeBSD Bugzilla – Attachment 193430 Details for
Bug 228116
[patch] x11/sddm: consolekit + PAM support
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch2
sddm.patch (text/plain), 36.21 KB, created by
Tijl Coosemans
on 2018-05-15 13:17:32 UTC
(
hide
)
Description:
patch2
Filename:
MIME Type:
Creator:
Tijl Coosemans
Created:
2018-05-15 13:17:32 UTC
Size:
36.21 KB
patch
obsolete
>Index: x11/sddm/Makefile >=================================================================== >--- x11/sddm/Makefile (revision 470013) >+++ x11/sddm/Makefile (working copy) >@@ -1,14 +1,16 @@ > # $FreeBSD$ > > PORTNAME= sddm >-PORTVERSION= 0.14.0 >+PORTVERSION= 0.17.0 > DISTVERSIONPREFIX= v > CATEGORIES= x11 > > MAINTAINER= kde@FreeBSD.org > COMMENT= QML based login manager > >-USES= cmake:outsource desktop-file-utils kde:5 >+RUN_DEPENDS= dbus-run-session:devel/dbus >+ >+USES= cmake:outsource kde:5 > USE_KDE= ecm > USE_QT5= concurrent core dbus gui linguisttools multimedia network \ > printsupport qml quick script sql webkit widgets \ >@@ -18,12 +20,9 @@ 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 >+SUB_FILES= xinitrc.desktop > > USERS= sddm > GROUPS= sddm >@@ -31,16 +30,18 @@ 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 >+ @${REINPLACE_CMD} -e 's#/etc/X11#${LOCALBASE}/etc/X11#' \ >+ -e 's#/usr/bin/#${LOCALBASE}/bin/#g' \ >+ -e 's#/usr/share/#${LOCALBASE}/share/#' \ >+ ${WRKSRC}/data/scripts/Xsession \ >+ ${WRKSRC}/src/common/Configuration.h > > post-install: >+ ${MV} ${STAGEDIR}${PREFIX}/etc/sddm.conf \ >+ ${STAGEDIR}${PREFIX}/etc/sddm.conf.sample > # Install xsession.desktop to launch .xinitrc via sddm. > ${MKDIR} ${STAGEDIR}${PREFIX}/share/xsessions >- ${INSTALL_DATA} ${FILESDIR}/xinitrc.desktop ${STAGEDIR}${PREFIX}/share/xsessions >+ ${INSTALL_DATA} ${WRKDIR}/xinitrc.desktop ${STAGEDIR}${PREFIX}/share/xsessions > ${INSTALL_SCRIPT} ${FILESDIR}/xinit-session ${STAGEDIR}${PREFIX}/share/sddm/scripts > > .include <bsd.port.mk> >Index: x11/sddm/distinfo >=================================================================== >--- x11/sddm/distinfo (revision 470013) >+++ x11/sddm/distinfo (working copy) >@@ -1,3 +1,3 @@ >-TIMESTAMP = 1488014449 >-SHA256 (sddm-sddm-v0.14.0_GH0.tar.gz) = a551551a6ba324e9c384c89bc63e871de65fea3740eadbea2d63df86045f8205 >-SIZE (sddm-sddm-v0.14.0_GH0.tar.gz) = 3367582 >+TIMESTAMP = 1525019041 >+SHA256 (sddm-sddm-v0.17.0_GH0.tar.gz) = c6da2862688d21a091f1568b78a5f5900cd2e02a83dd42c016f0c5867e69a92d >+SIZE (sddm-sddm-v0.17.0_GH0.tar.gz) = 3524362 >Index: x11/sddm/files/patch-CMakeLists.txt >=================================================================== >--- x11/sddm/files/patch-CMakeLists.txt (revision 470013) >+++ x11/sddm/files/patch-CMakeLists.txt (working copy) >@@ -1,16 +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.orig 2017-12-05 16:00:16 UTC > +++ CMakeLists.txt >-@@ -143,8 +143,8 @@ if(SYSTEMD_FOUND) >- set(REBOOT_COMMAND "/usr/bin/systemctl reboot") >- else() >- set(SYSTEMD_FOUND 0) >+@@ -168,8 +168,8 @@ add_feature_info("elogind" ELOGIND_FOUND "elogind supp >+ >+ # Default behaviour if neither systemd nor elogind is used >+ if (NOT ELOGIND_FOUND AND NOT SYSTEMD_FOUND) > - 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(HALT_COMMAND "/sbin/shutdown -p now") > set(REBOOT_COMMAND "/sbin/shutdown -r now") > endif() >- add_feature_info("systemd" SYSTEMD_FOUND "systemd support") >+ >Index: x11/sddm/files/patch-data_scripts_Xsession >=================================================================== >--- x11/sddm/files/patch-data_scripts_Xsession (nonexistent) >+++ x11/sddm/files/patch-data_scripts_Xsession (working copy) >@@ -0,0 +1,23 @@ >+Fix use of "$@" (see sh(1)). >+ >+There's no systemd on FreeBSD so start the session using $STARTUP which is >+defined in 90-consolekit if ConsoleKit2 is installed. By default this allows >+local users to shutdown/reboot the machine and access devices like USB keys. >+ >+Also use dbus-run-session so libdbus doesn't have to autolauch the session bus >+daemon on first use. Autolaunched dbus daemons tend to linger and may only >+exit if the X server exits. >+ >+--- data/scripts/Xsession.orig 2017-12-05 16:00:16 UTC >++++ data/scripts/Xsession >+@@ -94,8 +94,8 @@ if [ -f "$USERXSESSION" ]; then >+ . "$USERXSESSION" >+ fi >+ >+-if [ -z "$@" ]; then >++if [ -z "$1" ]; then >+ exec xmessage -center -buttons OK:0 -default OK "Sorry, $DESKTOP_SESSION is no valid session." >+ else >+- exec $@ >++ exec $STARTUP /usr/bin/dbus-run-session --dbus-daemon=/usr/bin/dbus-daemon -- "$@" >+ fi > >Property changes on: x11/sddm/files/patch-data_scripts_Xsession >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: x11/sddm/files/patch-services_sddm-autologin.pam >=================================================================== >--- x11/sddm/files/patch-services_sddm-autologin.pam (nonexistent) >+++ x11/sddm/files/patch-services_sddm-autologin.pam (working copy) >@@ -0,0 +1,23 @@ >+--- services/sddm-autologin.pam.orig 2017-12-05 16:00:16 UTC >++++ services/sddm-autologin.pam >+@@ -1,13 +1,9 @@ >+ #%PAM-1.0 >+-auth required pam_env.so >+-auth required pam_tally.so file=/var/log/faillog onerr=succeed >+-auth required pam_shells.so >+-auth required pam_nologin.so >+ auth required pam_permit.so >+--auth optional pam_gnome_keyring.so >+--auth optional pam_kwallet5.so >+-account include system-local-login >+-password include system-local-login >+-session include system-local-login >+--session optional pam_gnome_keyring.so auto_start >+--session optional pam_kwallet5.so auto_start >++#auth optional pam_gnome_keyring.so >++#auth optional pam_kwallet5.so >++account include login >++password required pam_deny.so >++session include login >++#session optional pam_gnome_keyring.so auto_start >++#session optional pam_kwallet5.so auto_start > >Property changes on: x11/sddm/files/patch-services_sddm-autologin.pam >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: x11/sddm/files/patch-services_sddm-greeter.pam >=================================================================== >--- x11/sddm/files/patch-services_sddm-greeter.pam (nonexistent) >+++ x11/sddm/files/patch-services_sddm-greeter.pam (working copy) >@@ -0,0 +1,19 @@ >+--- services/sddm-greeter.pam.orig 2017-12-05 16:00:16 UTC >++++ services/sddm-greeter.pam >+@@ -1,8 +1,5 @@ >+ #%PAM-1.0 >+ >+-# Load environment from /etc/environment and ~/.pam_environment >+-auth required pam_env.so >+- >+ # Always let the greeter start without authentication >+ auth required pam_permit.so >+ >+@@ -13,6 +10,4 @@ account required pam_permit.so >+ password required pam_deny.so >+ >+ # Setup session >+-session required pam_unix.so >+--session optional pam_systemd.so >+--session optional pam_elogind.so >++session required pam_permit.so > >Property changes on: x11/sddm/files/patch-services_sddm-greeter.pam >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: x11/sddm/files/patch-services_sddm.pam >=================================================================== >--- x11/sddm/files/patch-services_sddm.pam (nonexistent) >+++ x11/sddm/files/patch-services_sddm.pam (working copy) >@@ -0,0 +1,27 @@ >+--- services/sddm.pam.orig 2017-12-05 16:00:16 UTC >++++ services/sddm.pam >+@@ -1,15 +1,14 @@ >+ #%PAM-1.0 >+ >+-auth include system-login >+--auth optional pam_gnome_keyring.so >+--auth optional pam_kwallet5.so >++auth include login >++#auth optional pam_gnome_keyring.so >++#auth optional pam_kwallet5.so >+ >+-account include system-login >++account include login >+ >+-password include system-login >+--password optional pam_gnome_keyring.so use_authtok >++password include login >++#password optional pam_gnome_keyring.so use_authtok >+ >+-session optional pam_keyinit.so force revoke >+-session include system-login >+--session optional pam_gnome_keyring.so auto_start >+--session optional pam_kwallet5.so auto_start >++session include login >++#session optional pam_gnome_keyring.so auto_start >++#session optional pam_kwallet5.so auto_start > >Property changes on: x11/sddm/files/patch-services_sddm.pam >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: x11/sddm/files/patch-src_common_Configuration.h >=================================================================== >--- x11/sddm/files/patch-src_common_Configuration.h (revision 470013) >+++ x11/sddm/files/patch-src_common_Configuration.h (working copy) >@@ -1,38 +1,36 @@ >-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... >+Leave InputMethod empty by default since qtvirtualkeyboard does not appear to >+be supported by the included themes. The keyboard is drawn on top of the >+login screen and has to be clicked away (button lower-right). > >---- src/common/Configuration.h.orig 2016-08-28 11:54:03 UTC >+Set the default theme and cursor theme to breeze, because sddm is most likely >+used together with Plasma. If they aren't available sddm falls back to a >+compiled-in theme. >+ >+--- src/common/Configuration.h.orig 2017-12-05 16:00:16 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 { >+@@ -42,14 +42,14 @@ namespace SDDM { >+ Entry(Numlock, NumState, NUM_NONE, _S("Initial NumLock state. Can be on, off or none.\n" >+ "If property is set to none, numlock won't be changed\n" >+ "NOTE: Currently ignored if autologin is enabled.")); >+- Entry(InputMethod, QString, QStringLiteral("qtvirtualkeyboard"), _S("Input method module")); >++ Entry(InputMethod, QString, QString(), _S("Input method module")); >+ // Name Entries (but it's a regular class again) >+ Section(Theme, >+ Entry(ThemeDir, QString, _S(DATA_INSTALL_DIR "/themes"), _S("Theme directory path")); >+- Entry(Current, QString, _S(""), _S("Current theme name")); >++ Entry(Current, QString, _S("breeze"), _S("Current theme name")); >+ Entry(FacesDir, QString, _S(DATA_INSTALL_DIR "/faces"), _S("Global directory for user avatars\n" >+ "The files should be named <username>.face.icon")); >+- Entry(CursorTheme, QString, QString(), _S("Cursor theme used in the greeter")); >++ Entry(CursorTheme, QString, _S("breeze_cursors"), _S("Cursor theme used in the greeter")); >+ Entry(EnableAvatars, bool, true, _S("Enable display of custom user avatars")); >+ Entry(DisableAvatarsThreshold,int, 7, _S("Number of users to use as threshold\n" >+ "above which avatars are disabled\n" >+@@ -80,7 +80,7 @@ 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("/usr/local/bin:/usr/bin:/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")); >Index: x11/sddm/files/patch-src_daemon_CMakeLists.txt >=================================================================== >--- x11/sddm/files/patch-src_daemon_CMakeLists.txt (revision 470013) >+++ x11/sddm/files/patch-src_daemon_CMakeLists.txt (working copy) >@@ -1,19 +1,9 @@ >-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' >+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.orig 2017-12-05 16:00:16 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 >+@@ -29,7 +29,6 @@ set(DAEMON_SOURCES > SeatManager.cpp > SignalHandler.cpp > SocketServer.cpp >Index: x11/sddm/files/patch-src_daemon_DaemonApp.cpp >=================================================================== >--- x11/sddm/files/patch-src_daemon_DaemonApp.cpp (nonexistent) >+++ x11/sddm/files/patch-src_daemon_DaemonApp.cpp (working copy) >@@ -0,0 +1,22 @@ >+On FreeBSD console-kit-daemon isn't started by the init system, so try to >+start it from sddm. >+ >+--- src/daemon/DaemonApp.cpp.orig 2017-12-05 16:00:16 UTC >++++ src/daemon/DaemonApp.cpp >+@@ -28,6 +28,7 @@ >+ >+ #include "MessageHandler.h" >+ >++#include <QDBusConnectionInterface> >+ #include <QDebug> >+ #include <QHostInfo> >+ #include <QTimer> >+@@ -48,6 +49,8 @@ namespace SDDM { >+ >+ // set testing parameter >+ m_testing = (arguments().indexOf(QStringLiteral("--test-mode")) != -1); >++ >++ QDBusConnection::systemBus().interface()->startService(QStringLiteral("org.freedesktop.ConsoleKit")); >+ >+ // create display manager >+ m_displayManager = new DisplayManager(this); > >Property changes on: x11/sddm/files/patch-src_daemon_DaemonApp.cpp >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: x11/sddm/files/patch-src_daemon_Display.cpp >=================================================================== >--- x11/sddm/files/patch-src_daemon_Display.cpp (revision 470013) >+++ x11/sddm/files/patch-src_daemon_Display.cpp (working copy) >@@ -2,7 +2,12 @@ VirtualTerminal for Wayland is only present on Linux a > 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 >+Only set XDG_CURRENT_DESKTOP and XDG_SESSION_DESKTOP if the xsession .desktop >+file defines DesktopNames. Our xinitrc.desktop does not set it because that >+may confuse the desktop session started from ~/.xinitrc. These environment >+variables are used for OnlyShowIn and NotShowIn in .desktop files. >+ >+--- src/daemon/Display.cpp.orig 2017-12-05 16:00:16 UTC > +++ src/daemon/Display.cpp > @@ -30,7 +30,9 @@ > #include "Greeter.h" >@@ -14,7 +19,7 @@ can hide it behind a Q_OS_LINUX. > > #include <QDebug> > #include <QFile> >-@@ -280,8 +282,10 @@ namespace SDDM { >+@@ -310,8 +312,10 @@ namespace SDDM { > > // create new VT for Wayland sessions otherwise use greeter vt > int vt = terminalId(); >@@ -25,7 +30,21 @@ can hide it behind a Q_OS_LINUX. > m_lastSession.setVt(vt); > > QProcessEnvironment env; >-@@ -321,9 +325,11 @@ namespace SDDM { >+@@ -321,11 +325,13 @@ namespace SDDM { >+ env.insert(QStringLiteral("XDG_SEAT_PATH"), daemonApp->displayManager()->seatPath(seat()->name())); >+ env.insert(QStringLiteral("XDG_SESSION_PATH"), daemonApp->displayManager()->sessionPath(QStringLiteral("Session%1").arg(daemonApp->newSessionId()))); >+ env.insert(QStringLiteral("DESKTOP_SESSION"), session.desktopSession()); >++ if (!session.desktopNames().isEmpty()) >+ env.insert(QStringLiteral("XDG_CURRENT_DESKTOP"), session.desktopNames()); >+ env.insert(QStringLiteral("XDG_SESSION_CLASS"), QStringLiteral("user")); >+ env.insert(QStringLiteral("XDG_SESSION_TYPE"), session.xdgSessionType()); >+ env.insert(QStringLiteral("XDG_SEAT"), seat()->name()); >+ >++ if (!session.desktopNames().isEmpty()) >+ env.insert(QStringLiteral("XDG_SESSION_DESKTOP"), session.desktopNames()); >+ if (seat()->name() == QLatin1String("seat0")) { >+ env.insert(QStringLiteral("XDG_VTNR"), QString::number(vt)); >+@@ -366,9 +372,11 @@ namespace SDDM { > stateConfig.Last.Session.setDefault(); > stateConfig.save(); > >Index: x11/sddm/files/patch-src_daemon_LogindDBusTypes.cpp >=================================================================== >--- x11/sddm/files/patch-src_daemon_LogindDBusTypes.cpp (nonexistent) >+++ x11/sddm/files/patch-src_daemon_LogindDBusTypes.cpp (working copy) >@@ -0,0 +1,13 @@ >+Disable ConsoleKit seat management for now. It is mistakenly assumed to have >+the same D-Bus interface as logind. >+ >+--- src/daemon/LogindDBusTypes.cpp.orig 2017-12-05 16:00:16 UTC >++++ src/daemon/LogindDBusTypes.cpp >+@@ -58,6 +58,7 @@ LogindPathInternal::LogindPathInternal() >+ return; >+ } >+ >++ if (0) >+ if (QDBusConnection::systemBus().interface()->isServiceRegistered(QStringLiteral("org.freedesktop.ConsoleKit"))) { >+ qDebug() << "Console kit interface found"; >+ available = true; > >Property changes on: x11/sddm/files/patch-src_daemon_LogindDBusTypes.cpp >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: x11/sddm/files/patch-src_daemon_SignalHandler.cpp >=================================================================== >--- x11/sddm/files/patch-src_daemon_SignalHandler.cpp (nonexistent) >+++ x11/sddm/files/patch-src_daemon_SignalHandler.cpp (working copy) >@@ -0,0 +1,45 @@ >+From 62d776518594f517dc59de3c87e53afdda339079 Mon Sep 17 00:00:00 2001 >+From: Romain Labolle <ravomavain@gmail.com> >+Date: Sat, 3 Mar 2018 22:09:30 +0100 >+Subject: [PATCH] Add SOCK_CLOEXEC to signal handling sockets >+ >+SDDM is currennty leaking 8 sockets file descriptors to the user session. >+Adding the CLOEXEC flag to the fd to avoid thoses leaks. >+--- >+ src/daemon/SignalHandler.cpp | 8 ++++---- >+ 1 file changed, 4 insertions(+), 4 deletions(-) >+ >+diff --git a/src/daemon/SignalHandler.cpp b/src/daemon/SignalHandler.cpp >+index 5c536603..3054e635 100644 >+--- src/daemon/SignalHandler.cpp.orig 2017-12-05 16:00:16 UTC >++++ src/daemon/SignalHandler.cpp >+@@ -34,25 +34,25 @@ namespace SDDM { >+ int sigusr1Fd[2]; >+ >+ SignalHandler::SignalHandler(QObject *parent) : QObject(parent) { >+- if (::socketpair(AF_UNIX, SOCK_STREAM, 0, sighupFd)) >++ if (::socketpair(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0, sighupFd)) >+ qCritical() << "Failed to create socket pair for SIGHUP handling."; >+ >+ snhup = new QSocketNotifier(sighupFd[1], QSocketNotifier::Read, this); >+ connect(snhup, SIGNAL(activated(int)), this, SLOT(handleSighup())); >+ >+- if (::socketpair(AF_UNIX, SOCK_STREAM, 0, sigintFd)) >++ if (::socketpair(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0, sigintFd)) >+ qCritical() << "Failed to create socket pair for SIGINT handling."; >+ >+ snint = new QSocketNotifier(sigintFd[1], QSocketNotifier::Read, this); >+ connect(snint, SIGNAL(activated(int)), this, SLOT(handleSigint())); >+ >+- if (::socketpair(AF_UNIX, SOCK_STREAM, 0, sigtermFd)) >++ if (::socketpair(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0, sigtermFd)) >+ qCritical() << "Failed to create socket pair for SIGTERM handling."; >+ >+ snterm = new QSocketNotifier(sigtermFd[1], QSocketNotifier::Read, this); >+ connect(snterm, SIGNAL(activated(int)), this, SLOT(handleSigterm())); >+ >+- if (::socketpair(AF_UNIX, SOCK_STREAM, 0, sigusr1Fd)) >++ if (::socketpair(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0, sigusr1Fd)) >+ qCritical() << "Failed to create socket pair for SIGUSR1 handling."; >+ >+ snusr1 = new QSocketNotifier(sigusr1Fd[1], QSocketNotifier::Read, this); > >Property changes on: x11/sddm/files/patch-src_daemon_SignalHandler.cpp >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: x11/sddm/files/patch-src_greeter_UserModel.cpp >=================================================================== >--- x11/sddm/files/patch-src_greeter_UserModel.cpp (revision 470013) >+++ x11/sddm/files/patch-src_greeter_UserModel.cpp (working copy) >@@ -1,12 +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.orig 2017-12-05 16:00:16 UTC > +++ src/greeter/UserModel.cpp > @@ -55,6 +55,7 @@ namespace SDDM { >- const QString defaultFace = QStringLiteral("%1/.face.icon").arg(facesDir); >- >+ const QString defaultFace = QStringLiteral("file://%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_HelperApp.cpp >=================================================================== >--- x11/sddm/files/patch-src_helper_HelperApp.cpp (nonexistent) >+++ x11/sddm/files/patch-src_helper_HelperApp.cpp (working copy) >@@ -0,0 +1,48 @@ >+--- src/helper/HelperApp.cpp.orig 2017-12-05 16:00:16 UTC >++++ src/helper/HelperApp.cpp >+@@ -33,8 +33,11 @@ >+ #include <iostream> >+ #include <unistd.h> >+ #include <sys/socket.h> >++#include <sys/time.h> >+ >++#if defined(Q_OS_LINUX) >+ #include <utmp.h> >++#endif >+ #include <utmpx.h> >+ #include <QByteArray> >+ >+@@ -301,12 +304,20 @@ namespace SDDM { >+ >+ // append to failed login database btmp >+ if (!authSuccessful) { >++#if defined(Q_OS_FREEBSD) >++ pututxline(&entry); >++#else >+ updwtmpx("/var/log/btmp", &entry); >++#endif >+ } >+ >+ // append to wtmp >+ else { >++#if defined(Q_OS_FREEBSD) >++ pututxline(&entry); >++#else >+ updwtmpx("/var/log/wtmp", &entry); >++#endif >+ } >+ } >+ >+@@ -342,8 +353,12 @@ namespace SDDM { >+ qWarning() << "Failed to write utmpx: " << strerror(errno); >+ endutxent(); >+ >++#if defined(Q_OS_FREEBSD) >++ pututxline(&entry); >++#else >+ // append to wtmp >+ updwtmpx("/var/log/wtmp", &entry); >++#endif >+ } >+ } >+ >Index: x11/sddm/files/patch-src_helper_UserSession.cpp >=================================================================== >--- x11/sddm/files/patch-src_helper_UserSession.cpp (revision 470013) >+++ x11/sddm/files/patch-src_helper_UserSession.cpp (working copy) >@@ -1,12 +1,24 @@ >-Include '<errno.h>' as 'errno' is used. >+Run sddm-greeter via the session command (Xsession script) so it also gets X >+resources and a ConsoleKit and D-Bus session. The ConsoleKit session has its >+session-class set to "user" instead of "greeter" because ck-launch-session >+doesn't provide a way to change this. ConsoleKit doesn't do anything with >+this value though so it is believed to be harmless. The XDG_SESSION_CLASS >+environment variable does have the value "greeter". > >---- src/helper/UserSession.cpp.orig 2016-07-06 14:00:10 UTC >+Remove double quotes because we fixed the use of "$@" in the script. >+ >+--- src/helper/UserSession.cpp.orig 2017-12-05 16:00:16 UTC > +++ src/helper/UserSession.cpp >-@@ -25,6 +25,7 @@ >+@@ -45,10 +45,8 @@ namespace SDDM { >+ bool UserSession::start() { >+ QProcessEnvironment env = qobject_cast<HelperApp*>(parent())->session()->processEnvironment(); > >- #include <sys/types.h> >- #include <sys/ioctl.h> >-+#include <errno.h> >- #include <unistd.h> >- #include <pwd.h> >- #include <grp.h> >+- if (env.value(QStringLiteral("XDG_SESSION_CLASS")) == QLatin1String("greeter")) { >+- QProcess::start(m_path); >+- } else if (env.value(QStringLiteral("XDG_SESSION_TYPE")) == QLatin1String("x11")) { >+- const QString cmd = QStringLiteral("%1 \"%2\"").arg(mainConfig.X11.SessionCommand.get()).arg(m_path); >++ if (env.value(QStringLiteral("XDG_SESSION_TYPE")) == QLatin1String("x11")) { >++ const QString cmd = QStringLiteral("%1 %2").arg(mainConfig.X11.SessionCommand.get()).arg(m_path); >+ qInfo() << "Starting:" << cmd; >+ QProcess::start(cmd); >+ } else if (env.value(QStringLiteral("XDG_SESSION_TYPE")) == QLatin1String("wayland")) { >Index: x11/sddm/files/patch-src_helper_backend_PasswdBackend.cpp >=================================================================== >--- x11/sddm/files/patch-src_helper_backend_PasswdBackend.cpp (revision 470013) >+++ x11/sddm/files/patch-src_helper_backend_PasswdBackend.cpp (nonexistent) >@@ -1,46 +0,0 @@ >-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; >- } > >Property changes on: x11/sddm/files/patch-src_helper_backend_PasswdBackend.cpp >___________________________________________________________________ >Deleted: fbsd:nokeywords >## -1 +0,0 ## >-yes >\ No newline at end of property >Deleted: svn:eol-style >## -1 +0,0 ## >-native >\ No newline at end of property >Deleted: svn:mime-type >## -1 +0,0 ## >-text/plain >\ No newline at end of property >Index: x11/sddm/files/sddm.in >=================================================================== >--- x11/sddm/files/sddm.in (revision 470013) >+++ x11/sddm/files/sddm.in (working copy) >@@ -16,30 +16,19 @@ rcvar=sddm_enable > > load_rc_config ${name} > >+: ${sddm_enable="NO"} > : ${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" >+command="%%PREFIX%%/bin/sddm" > 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 >+ while ! pgrep -f "^/usr/libexec/getty " > /dev/null; do > if [ ${iter} -eq 60 ]; then > break > fi >@@ -48,28 +37,19 @@ sddm_start() > done > > if checkyesno hald_enable; then >- if [ ! -x /usr/local/sbin/hald ]; then >+ if [ ! -x %%LOCALBASE%%/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 >+ ! pgrep -f "^%%LOCALBASE%%/sbin/hald" > /dev/null; 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/files/xinitrc.desktop >=================================================================== >--- x11/sddm/files/xinitrc.desktop (revision 470013) >+++ x11/sddm/files/xinitrc.desktop (nonexistent) >@@ -1,7 +0,0 @@ >-[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 > >Property changes on: x11/sddm/files/xinitrc.desktop >___________________________________________________________________ >Deleted: fbsd:nokeywords >## -1 +0,0 ## >-yes >\ No newline at end of property >Deleted: svn:eol-style >## -1 +0,0 ## >-native >\ No newline at end of property >Deleted: svn:mime-type >## -1 +0,0 ## >-text/plain >\ No newline at end of property >Index: x11/sddm/files/xinitrc.desktop.in >=================================================================== >--- x11/sddm/files/xinitrc.desktop.in (revision 470013) >+++ x11/sddm/files/xinitrc.desktop.in (working copy) >@@ -1,7 +1,6 @@ > [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 >+Exec=%%PREFIX%%/share/sddm/scripts/xinit-session >+TryExec=%%PREFIX%%/share/sddm/scripts/xinit-session > Name=User Session >Index: x11/sddm/pkg-plist >=================================================================== >--- x11/sddm/pkg-plist (revision 470013) >+++ x11/sddm/pkg-plist (working copy) >@@ -4,7 +4,7 @@ etc/dbus-1/system.d/org.freedesktop.DisplayManager.con > etc/pam.d/sddm > etc/pam.d/sddm-autologin > etc/pam.d/sddm-greeter >-etc/sddm.conf >+@sample etc/sddm.conf.sample > %%QT_QMLDIR%%/SddmComponents/Background.qml > %%QT_QMLDIR%%/SddmComponents/Button.qml > %%QT_QMLDIR%%/SddmComponents/Clock.qml >@@ -132,33 +132,52 @@ libexec/sddm-helper > %%DATADIR%%/themes/maldives/metadata.desktop > %%DATADIR%%/themes/maldives/rectangle.png > %%DATADIR%%/themes/maldives/theme.conf >+%%DATADIR%%/themes/maya/LICENSE >+%%DATADIR%%/themes/maya/Main.qml >+%%DATADIR%%/themes/maya/README >+%%DATADIR%%/themes/maya/components/SpButton.qml >+%%DATADIR%%/themes/maya/components/SpClock.qml >+%%DATADIR%%/themes/maya/fonts/OpenSans_CondLight.ttf >+%%DATADIR%%/themes/maya/images/ic_arrow_drop_down_white_24px.svg >+%%DATADIR%%/themes/maya/images/ic_power_settings_new_white_24px.svg >+%%DATADIR%%/themes/maya/images/ic_refresh_white_24px.svg >+%%DATADIR%%/themes/maya/images/ic_warning_white_24px.svg >+%%DATADIR%%/themes/maya/metadata.desktop >+%%DATADIR%%/themes/maya/screenshots/hi_IN.png >+%%DATADIR%%/themes/maya/theme.conf > %%DATADIR%%/translations/ar.qm > %%DATADIR%%/translations/ca.qm > %%DATADIR%%/translations/cs.qm >+%%DATADIR%%/translations/da.qm > %%DATADIR%%/translations/de.qm > %%DATADIR%%/translations/es.qm > %%DATADIR%%/translations/et.qm > %%DATADIR%%/translations/fi.qm > %%DATADIR%%/translations/fr.qm >+%%DATADIR%%/translations/hi_IN.qm > %%DATADIR%%/translations/hu.qm > %%DATADIR%%/translations/it.qm > %%DATADIR%%/translations/ja.qm >+%%DATADIR%%/translations/kk.qm > %%DATADIR%%/translations/ko.qm > %%DATADIR%%/translations/lt.qm > %%DATADIR%%/translations/lv.qm > %%DATADIR%%/translations/nb.qm >+%%DATADIR%%/translations/nl.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/sk.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/uk.qm > %%DATADIR%%/translations/zh_CN.qm > %%DATADIR%%/translations/zh_TW.qm > share/xsessions/xinitrc.desktop
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 228116
:
193236
|
193248
| 193430