From owner-dev-commits-ports-all@freebsd.org Sat Jul 17 22:22:03 2021 Return-Path: Delivered-To: dev-commits-ports-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C00A765D279; Sat, 17 Jul 2021 22:22:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4GS2f356tLz3HLg; Sat, 17 Jul 2021 22:22:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9925718920; Sat, 17 Jul 2021 22:22:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 16HMM3jU075499; Sat, 17 Jul 2021 22:22:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 16HMM33Z075498; Sat, 17 Jul 2021 22:22:03 GMT (envelope-from git) Date: Sat, 17 Jul 2021 22:22:03 GMT Message-Id: <202107172222.16HMM33Z075498@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Adriaan de Groot Subject: git: 87b48b8d60d4 - main - x11/sddm: make "user session" more resilient MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: adridg X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 87b48b8d60d42f77e3cea05610bbb5dde23ec896 Auto-Submitted: auto-generated X-BeenThere: dev-commits-ports-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the ports repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jul 2021 22:22:03 -0000 The branch main has been updated by adridg: URL: https://cgit.FreeBSD.org/ports/commit/?id=87b48b8d60d42f77e3cea05610bbb5dde23ec896 commit 87b48b8d60d42f77e3cea05610bbb5dde23ec896 Author: Adriaan de Groot AuthorDate: 2021-07-17 22:12:57 +0000 Commit: Adriaan de Groot CommitDate: 2021-07-17 22:21:59 +0000 x11/sddm: make "user session" more resilient It's possible to install SDDM with very little other X11 baggage, like xterm. In such a minimal install situation, SDDM will still come up and offer "User Session" -- and that session will fail, because there's nothing to run. Depend on xmessage, and then fall back to xinit's default script and if **that** isn't there, show the user a message instead of just sitting there with a black screen and an X cursor. PR: 256648 Reported by: Graham Perrin --- x11/sddm/Makefile | 7 +++++-- x11/sddm/files/xinit-session | 22 ++++++++++++++++------ x11/sddm/pkg-message | 7 +++++++ 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/x11/sddm/Makefile b/x11/sddm/Makefile index b13d0c4c0940..d3afc62e8501 100644 --- a/x11/sddm/Makefile +++ b/x11/sddm/Makefile @@ -1,7 +1,7 @@ PORTNAME= sddm PORTVERSION= 0.19.0 DISTVERSIONPREFIX= v -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= x11 MAINTAINER= kde@FreeBSD.org @@ -18,7 +18,8 @@ LICENSE_FILE_CC-BY-3.0= ${WRKSRC}/LICENSE.CC-BY-3.0 BUILD_DEPENDS= rst2man.py-${PYTHON_VER}:textproc/py-docutils@${PY_FLAVOR} RUN_DEPENDS= dbus-run-session:devel/dbus \ - xauth:x11/xauth + xauth:x11/xauth \ + xmessage:x11/xmessage USES= cmake compiler:c++11-lang kde:5 pkgconfig python:build qt:5 xorg USE_GITHUB= yes @@ -53,5 +54,7 @@ post-install: ${MKDIR} ${STAGEDIR}${PREFIX}/share/xsessions ${INSTALL_DATA} ${WRKDIR}/xinitrc.desktop ${STAGEDIR}${PREFIX}/share/xsessions ${INSTALL_SCRIPT} ${FILESDIR}/xinit-session ${STAGEDIR}${PREFIX}/share/sddm/scripts + ${REINPLACE_CMD} -e 's#@@LOCALBASE@@#${LOCALBASE}#' ${STAGEDIR}${PREFIX}/share/sddm/scripts/xinit-session + .include diff --git a/x11/sddm/files/xinit-session b/x11/sddm/files/xinit-session index 804728c9ca53..d10125d73770 100644 --- a/x11/sddm/files/xinit-session +++ b/x11/sddm/files/xinit-session @@ -1,12 +1,22 @@ #!/bin/sh # # Runs the user's .xinitrc (at this point, .xsession has already -# been sourced). +# been sourced). If there is no .xinitrc, but xinit is installed, +# then there is a default script. If neither is installed, +# display a message. RC="$HOME/.xinitrc" +if [ ! -f "$RC" ] ; then + RC="@@LOCALBASE@@/etc/X11/xinit/xinitrc" + # But that one needs at least xterm to do something useful + if [ ! -x @@LOCALBASE@@/bin/xterm ] ; then + RC="" + fi +fi -test -f "$RC" || exit 1 - -test -x "$RC" && exec "$RC" -test -f "$RC" && exec /bin/sh "$RC" - +if [ -n "$RC" -a -f "$RC" ] ; then + test -x "$RC" && exec "$RC" + test -f "$RC" && exec /bin/sh "$RC" +else + exec @@LOCALBASE@@/bin/xmessage -geometry +0+0 "There is no user-session or usable default with xterm" +fi diff --git a/x11/sddm/pkg-message b/x11/sddm/pkg-message index bd1e209ceecf..2f3a3614efe5 100644 --- a/x11/sddm/pkg-message +++ b/x11/sddm/pkg-message @@ -10,4 +10,11 @@ following commands as root: # rm -rf /usr/local/etc/sddm/home EOM } +{ type: install + message: <