Commit 0fc7b46f authored by K900's avatar K900
Browse files

kdePackages.plasma-workspace: hardcode even more dependency paths

parent 508a0a89
Loading
Loading
Loading
Loading
+15 −4
Original line number Diff line number Diff line
@@ -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"];
}
+149 −0
Original line number Diff line number Diff line
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 46363ddcb..d787f9993 100644
index 8fdd99f9ed..1bd7d552a5 100644
--- a/kcms/krdb/krdb.cpp
+++ b/kcms/krdb/krdb.cpp
@@ -468,7 +468,7 @@ void runRdb(unsigned int flags)
@@ -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.
@@ -11,30 +92,8 @@ index 46363ddcb..d787f9993 100644
 
     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
index 2c52a4b87d..fd7fdc8ac1 100644
--- a/ksmserver/plasma-restoresession.service.in
+++ b/ksmserver/plasma-restoresession.service.in
@@ -5,5 +5,5 @@ RefuseManualStart=yes
@@ -45,7 +104,7 @@ index 2c52a4b87..fd7fdc8ac 100644
+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
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
@@ -55,8 +114,30 @@ index 7218628ce..9126475ea 100644
-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 3f6744f37..c51266794 100644
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