Skip to content

Commit

Permalink
x11/plasma5-plasma-workspace: Fix XDG_CONFIG_DIRS for Wayland
Browse files Browse the repository at this point in the history
Since Plasma 5.22, setupPlasmaEnvironment adds to XDG_CONFIG_DIRS, with
a fallback for the XDG-mandated /etc/xdg default. When using X11, this
is ok, as runStartupConfig gets called before setupPlasmaEnvironment,
and so the latter uses our modified value. However, when using Wayland,
they are called in the opposite order, and so runStartupConfig sees the
variable is already set and doesn't inject our modified default. Fix
this by changing setupPlasmaEnvironment's default value instead so it's
only set in one place. This approach also matches how other ports get
patched for our non-conforming environment.

Without this, the splash screen shows but plasmashell is never started
(nor any other autostart programs), eventually timing out and fading to
a black screen.

PR:		265505
Obtained from:	CheriBSD
Approved by:	maintainer timeout (3 months)
  • Loading branch information
jrtc27 authored and jbeich committed Aug 19, 2023
1 parent e6a46ad commit f06a1b4
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 21 deletions.
6 changes: 5 additions & 1 deletion x11/plasma5-plasma-workspace/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
PORTNAME= plasma-workspace
DISTVERSION= ${KDE_PLASMA_VERSION}
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= x11 kde kde-plasma

MAINTAINER= kde@FreeBSD.org
Expand Down Expand Up @@ -60,6 +60,10 @@ CMAKE_OFF= BUILD_TESTING
# In 5.15 a file was moved from x11/plasma5-plasma-desktop to x11/plasma5-plasma-workspace:
CONFLICTS_INSTALL= plasma5-plasma-desktop-5.14.*

post-patch:
@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
${PATCH_WRKSRC}/startkde/startplasma.cpp

post-stage:
${INSTALL_SCRIPT} ${FILESDIR}/startplasma-wayland.sh ${STAGEDIR}/${LOCALBASE}/bin/

Expand Down
28 changes: 8 additions & 20 deletions x11/plasma5-plasma-workspace/files/patch-setup_xdg_environment
Original file line number Diff line number Diff line change
@@ -1,23 +1,11 @@
--- startkde/startplasma.cpp.orig 2019-10-19 18:43:24.172713000 +0200
+++ startkde/startplasma.cpp 2019-10-19 18:45:50.953945000 +0200
@@ -192,6 +192,10 @@
if (!qEnvironmentVariableIsSet("XDG_DATA_DIRS")) {
qputenv("XDG_DATA_DIRS", KDE_INSTALL_FULL_DATAROOTDIR ":/usr/share:/usr/local/share");
@@ -362,6 +362,6 @@
// Add kdedefaults dir to allow config defaults overriding from a writable location
QByteArray currentConfigDirs = qgetenv("XDG_CONFIG_DIRS");
if (currentConfigDirs.isEmpty()) {
- currentConfigDirs = "/etc/xdg";
+ currentConfigDirs = "%%LOCALBASE%%/etc/xdg:/etc/xdg";
}
+ // Additionally also set default value for XDG_CONFIG_DIRS which is not set by default on FreeBSD.
+ if (!qEnvironmentVariableIsSet("XDG_CONFIG_DIRS")) {
+ qputenv("XDG_CONFIG_DIRS", KDE_INSTALL_FULL_CONFDIR ":/etc/xdg:/usr/local/etc/xdg");
+ }
}


--- startkde/config-startplasma.h.cmake.orig 2019-10-19 18:56:51.844465000 +0200
+++ startkde/config-startplasma.h.cmake 2019-10-19 18:57:22.843807000 +0200
@@ -3,6 +3,7 @@

#define CMAKE_INSTALL_FULL_BINDIR "@CMAKE_INSTALL_FULL_BINDIR@"
#define KDE_INSTALL_FULL_DATAROOTDIR "@KDE_INSTALL_FULL_DATAROOTDIR@"
+#define KDE_INSTALL_FULL_CONFDIR "@KDE_INSTALL_FULL_CONFDIR@"
#define CMAKE_INSTALL_FULL_LIBEXECDIR "@CMAKE_INSTALL_FULL_LIBEXECDIR@"
#define CMAKE_INSTALL_FULL_LIBEXECDIR_KF5 "@CMAKE_INSTALL_FULL_LIBEXECDIR_KF5@"
#define KWIN_WAYLAND_BIN_PATH "@KWIN_WAYLAND_BIN_PATH@"
const auto extraConfigDir = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation).toUtf8() + "/kdedefaults";
QDir().mkpath(QString::fromUtf8(extraConfigDir));

0 comments on commit f06a1b4

Please sign in to comment.