kdePackages.plasma-workspace: hardcode even more dependency paths

This commit is contained in:
K900 2024-08-07 10:09:22 +03:00
parent 508a0a890c
commit 0fc7b46f30
3 changed files with 164 additions and 72 deletions

View File

@ -2,7 +2,9 @@
lib,
mkKdeDerivation,
substituteAll,
fontconfig,
xorg,
lsof,
pkg-config,
spirv-tools,
qtsvg,
@ -19,10 +21,13 @@ mkKdeDerivation {
patches = [
(substituteAll {
src = ./tool-paths.patch;
xmessage = "${lib.getBin xorg.xmessage}/bin/xmessage";
xsetroot = "${lib.getBin xorg.xsetroot}/bin/xsetroot";
qdbus = "${lib.getBin qttools}/bin/qdbus";
src = ./dependency-paths.patch;
fc-match = lib.getExe' fontconfig "fc-match";
lsof = lib.getExe lsof;
qdbus = lib.getExe' qttools "qdbus";
xmessage = lib.getExe xorg.xmessage;
xrdb = lib.getExe xorg.xrdb;
xsetroot = lib.getExe xorg.xsetroot;
})
];
@ -50,5 +55,11 @@ mkKdeDerivation {
gpsd
];
# Hardcoded as QStrings, which are UTF-16 so Nix can't pick these up automatically
postFixup = ''
mkdir -p $out/nix-support
echo "${lsof} ${xorg.xmessage} ${xorg.xsetroot}" > $out/nix-support/depends
'';
passthru.providedSessions = ["plasma" "plasmax11"];
}

View File

@ -0,0 +1,149 @@
diff --git a/applets/devicenotifier/plugin/ksolidnotify.cpp b/applets/devicenotifier/plugin/ksolidnotify.cpp
index bcbb58a034..be2570ce97 100644
--- a/applets/devicenotifier/plugin/ksolidnotify.cpp
+++ b/applets/devicenotifier/plugin/ksolidnotify.cpp
@@ -169,7 +169,7 @@ void KSolidNotify::queryBlockingApps(const QString &devicePath)
Q_EMIT blockingAppsReady(blockApps);
p->deleteLater();
});
- p->start(QStringLiteral("lsof"), {QStringLiteral("-t"), devicePath});
+ p->start(QStringLiteral("@lsof@"), {QStringLiteral("-t"), devicePath});
// p.start(QStringLiteral("fuser"), {QStringLiteral("-m"), devicePath});
}
diff --git a/kcms/fonts/fontinit.cpp b/kcms/fonts/fontinit.cpp
index e27e21a7bd..abbf7f32e1 100644
--- a/kcms/fonts/fontinit.cpp
+++ b/kcms/fonts/fontinit.cpp
@@ -27,7 +27,7 @@ Q_DECL_EXPORT void kcminit()
const QByteArray input = "Xft.dpi: " + QByteArray::number(dpi);
QProcess p;
- p.start(QStringLiteral("xrdb"), {QStringLiteral("-quiet"), QStringLiteral("-merge"), QStringLiteral("-nocpp")});
+ p.start(QStringLiteral("@xrdb@"), {QStringLiteral("-quiet"), QStringLiteral("-merge"), QStringLiteral("-nocpp")});
p.setProcessChannelMode(QProcess::ForwardedChannels);
p.write(input);
p.closeWriteChannel();
diff --git a/kcms/fonts/fonts.cpp b/kcms/fonts/fonts.cpp
index 92d8fadd44..2a973d76ef 100644
--- a/kcms/fonts/fonts.cpp
+++ b/kcms/fonts/fonts.cpp
@@ -135,7 +135,7 @@ void KFonts::save()
if (fontsAASettings()->forceFontDPI() == 0 && forceFontDPIChanged && KWindowSystem::isPlatformX11()) {
QProcess proc;
proc.setProcessChannelMode(QProcess::ForwardedChannels);
- proc.start("xrdb",
+ proc.start("@xrdb@",
QStringList() << "-quiet"
<< "-remove"
<< "-nocpp");
diff --git a/kcms/kfontinst/kcmfontinst/FcQuery.cpp b/kcms/kfontinst/kcmfontinst/FcQuery.cpp
index 771c790c74..1be64b0527 100644
--- a/kcms/kfontinst/kcmfontinst/FcQuery.cpp
+++ b/kcms/kfontinst/kcmfontinst/FcQuery.cpp
@@ -44,7 +44,7 @@ void CFcQuery::run(const QString &query)
connect(m_proc, SIGNAL(finished(int, QProcess::ExitStatus)), SLOT(procExited()));
connect(m_proc, &QProcess::readyReadStandardOutput, this, &CFcQuery::data);
- m_proc->start("fc-match", args);
+ m_proc->start("@fc-match@", args);
}
void CFcQuery::procExited()
diff --git a/kcms/krdb/krdb.cpp b/kcms/krdb/krdb.cpp
index 8fdd99f9ed..1bd7d552a5 100644
--- a/kcms/krdb/krdb.cpp
+++ b/kcms/krdb/krdb.cpp
@@ -423,7 +423,7 @@ void runRdb(unsigned int flags)
contents += "Xft.dpi: " + QString::number(dpi) + '\n';
else {
KProcess queryProc;
- queryProc << QStringLiteral("xrdb") << QStringLiteral("-query");
+ queryProc << QStringLiteral("@xrdb@") << QStringLiteral("-query");
queryProc.setOutputChannelMode(KProcess::OnlyStdoutChannel);
queryProc.start();
if (queryProc.waitForFinished()) {
@@ -443,7 +443,7 @@ void runRdb(unsigned int flags)
}
KProcess loadProc;
- loadProc << QStringLiteral("xrdb") << QStringLiteral("-quiet") << QStringLiteral("-load") << QStringLiteral("-nocpp");
+ loadProc << QStringLiteral("@xrdb@") << QStringLiteral("-quiet") << QStringLiteral("-load") << QStringLiteral("-nocpp");
loadProc.start();
if (loadProc.waitForStarted()) {
loadProc.write(db);
@@ -461,16 +461,16 @@ void runRdb(unsigned int flags)
KProcess proc;
#ifndef NDEBUG
- proc << QStringLiteral("xrdb") << QStringLiteral("-merge") << tmpFile.fileName();
+ proc << QStringLiteral("@xrdb@") << QStringLiteral("-merge") << tmpFile.fileName();
#else
- proc << "xrdb"
+ proc << "@xrdb@"
<< "-quiet"
<< "-merge" << tmpFile.fileName();
#endif
proc.execute();
// Needed for applications that don't set their own cursor.
- QProcess::execute(QStringLiteral("xsetroot"), {QStringLiteral("-cursor_name"), QStringLiteral("left_ptr")});
+ QProcess::execute(QStringLiteral("@xsetroot@"), {QStringLiteral("-cursor_name"), QStringLiteral("left_ptr")});
applyGtkStyles(1);
applyGtkStyles(2);
diff --git a/ksmserver/plasma-restoresession.service.in b/ksmserver/plasma-restoresession.service.in
index 2c52a4b87d..fd7fdc8ac1 100644
--- a/ksmserver/plasma-restoresession.service.in
+++ b/ksmserver/plasma-restoresession.service.in
@@ -5,5 +5,5 @@ RefuseManualStart=yes
[Service]
Type=oneshot
-ExecStart=-@QtBinariesDir@/qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.restoreSession
+ExecStart=-@qdbus@ org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.restoreSession
Slice=session.slice
diff --git a/startkde/kcminit/plasma-kcminit-phase1.service.in b/startkde/kcminit/plasma-kcminit-phase1.service.in
index 7218628ce9..9126475ea4 100644
--- a/startkde/kcminit/plasma-kcminit-phase1.service.in
+++ b/startkde/kcminit/plasma-kcminit-phase1.service.in
@@ -6,5 +6,5 @@ PartOf=graphical-session.target
[Service]
Type=oneshot
-ExecStart=@QtBinariesDir@/qdbus org.kde.kcminit /kcminit org.kde.KCMInit.runPhase1
+ExecStart=@qdbus@ org.kde.kcminit /kcminit org.kde.KCMInit.runPhase1
Slice=session.slice
diff --git a/startkde/startplasma.cpp b/startkde/startplasma.cpp
index 0bd4511189..602b7e9eb0 100644
--- a/startkde/startplasma.cpp
+++ b/startkde/startplasma.cpp
@@ -57,7 +57,7 @@ void sigtermHandler(int signalNumber)
void messageBox(const QString &text)
{
out << text;
- runSync(QStringLiteral("xmessage"), {QStringLiteral("-geometry"), QStringLiteral("500x100"), text});
+ runSync(QStringLiteral("@xmessage@"), {QStringLiteral("-geometry"), QStringLiteral("500x100"), text});
}
QStringList allServices(const QLatin1String &prefix)
@@ -507,7 +507,7 @@ QProcess *setupKSplash()
if (ksplashCfg.readEntry("Engine", QStringLiteral("KSplashQML")) == QLatin1String("KSplashQML")) {
p = new QProcess;
p->setProcessChannelMode(QProcess::ForwardedChannels);
- p->start(QStringLiteral("ksplashqml"), {ksplashCfg.readEntry("Theme", QStringLiteral("Breeze"))});
+ p->start(QStringLiteral(CMAKE_INSTALL_FULL_BINDIR "/ksplashqml"), {ksplashCfg.readEntry("Theme", QStringLiteral("Breeze"))});
}
}
return p;
diff --git a/startkde/systemd/plasma-ksplash-ready.service.in b/startkde/systemd/plasma-ksplash-ready.service.in
index 3f6744f378..c51266794d 100644
--- a/startkde/systemd/plasma-ksplash-ready.service.in
+++ b/startkde/systemd/plasma-ksplash-ready.service.in
@@ -6,5 +6,5 @@ PartOf=graphical-session.target
[Service]
Type=oneshot
-ExecStart=-@QtBinariesDir@/qdbus org.kde.KSplash /KSplash org.kde.KSplash.setStage ready
+ExecStart=-@qdbus@ org.kde.KSplash /KSplash org.kde.KSplash.setStage ready
Slice=session.slice

View File

@ -1,68 +0,0 @@
diff --git a/kcms/krdb/krdb.cpp b/kcms/krdb/krdb.cpp
index 46363ddcb..d787f9993 100644
--- a/kcms/krdb/krdb.cpp
+++ b/kcms/krdb/krdb.cpp
@@ -468,7 +468,7 @@ void runRdb(unsigned int flags)
proc.execute();
// Needed for applications that don't set their own cursor.
- QProcess::execute(QStringLiteral("xsetroot"), {QStringLiteral("-cursor_name"), QStringLiteral("left_ptr")});
+ QProcess::execute(QStringLiteral("@xsetroot@"), {QStringLiteral("-cursor_name"), QStringLiteral("left_ptr")});
applyGtkStyles(1);
applyGtkStyles(2);
diff --git a/startkde/startplasma.cpp b/startkde/startplasma.cpp
index b0158c97d..c8f7fe223 100644
--- a/startkde/startplasma.cpp
+++ b/startkde/startplasma.cpp
@@ -50,7 +50,7 @@ void sigtermHandler(int signalNumber)
void messageBox(const QString &text)
{
out << text;
- runSync(QStringLiteral("xmessage"), {QStringLiteral("-geometry"), QStringLiteral("500x100"), text});
+ runSync(QStringLiteral("@xmessage@"), {QStringLiteral("-geometry"), QStringLiteral("500x100"), text});
}
QStringList allServices(const QLatin1String &prefix)
@@ -484,7 +484,7 @@ QProcess *setupKSplash()
if (ksplashCfg.readEntry("Engine", QStringLiteral("KSplashQML")) == QLatin1String("KSplashQML")) {
p = new QProcess;
p->setProcessChannelMode(QProcess::ForwardedChannels);
- p->start(QStringLiteral("ksplashqml"), {ksplashCfg.readEntry("Theme", QStringLiteral("Breeze"))});
+ p->start(QStringLiteral(CMAKE_INSTALL_FULL_BINDIR "/ksplashqml"), {ksplashCfg.readEntry("Theme", QStringLiteral("Breeze"))});
}
}
return p;
diff --git a/ksmserver/plasma-restoresession.service.in b/ksmserver/plasma-restoresession.service.in
index 2c52a4b87..fd7fdc8ac 100644
--- a/ksmserver/plasma-restoresession.service.in
+++ b/ksmserver/plasma-restoresession.service.in
@@ -5,5 +5,5 @@ RefuseManualStart=yes
[Service]
Type=oneshot
-ExecStart=-@QtBinariesDir@/qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.restoreSession
+ExecStart=-@qdbus@ org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.restoreSession
Slice=session.slice
diff --git a/startkde/kcminit/plasma-kcminit-phase1.service.in b/startkde/kcminit/plasma-kcminit-phase1.service.in
index 7218628ce..9126475ea 100644
--- a/startkde/kcminit/plasma-kcminit-phase1.service.in
+++ b/startkde/kcminit/plasma-kcminit-phase1.service.in
@@ -6,5 +6,5 @@ PartOf=graphical-session.target
[Service]
Type=oneshot
-ExecStart=@QtBinariesDir@/qdbus org.kde.kcminit /kcminit org.kde.KCMInit.runPhase1
+ExecStart=@qdbus@ org.kde.kcminit /kcminit org.kde.KCMInit.runPhase1
Slice=session.slice
diff --git a/startkde/systemd/plasma-ksplash-ready.service.in b/startkde/systemd/plasma-ksplash-ready.service.in
index 3f6744f37..c51266794 100644
--- a/startkde/systemd/plasma-ksplash-ready.service.in
+++ b/startkde/systemd/plasma-ksplash-ready.service.in
@@ -6,5 +6,5 @@ PartOf=graphical-session.target
[Service]
Type=oneshot
-ExecStart=-@QtBinariesDir@/qdbus org.kde.KSplash /KSplash org.kde.KSplash.setStage ready
+ExecStart=-@qdbus@ org.kde.KSplash /KSplash org.kde.KSplash.setStage ready
Slice=session.slice