mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-26 08:53:21 +00:00
Merge pull request #332933 from K900/more-kde-hardcoding
kdePackages: hardcode locations of more binaries
This commit is contained in:
commit
09db61de02
@ -1,5 +1,9 @@
|
||||
{
|
||||
lib,
|
||||
mkKdeDerivation,
|
||||
substituteAll,
|
||||
procps,
|
||||
xsettingsd,
|
||||
pkg-config,
|
||||
wrapGAppsHook3,
|
||||
sass,
|
||||
@ -11,7 +15,17 @@ mkKdeDerivation {
|
||||
|
||||
# The gtkconfig KDED module will crash the daemon if the GSettings schemas
|
||||
# aren't found.
|
||||
patches = [./0001-gsettings-schemas-path.patch];
|
||||
patches = [
|
||||
./0001-gsettings-schemas-path.patch
|
||||
(
|
||||
substituteAll {
|
||||
src = ./dependency-paths.patch;
|
||||
pgrep = lib.getExe' procps "pgrep";
|
||||
xsettingsd = lib.getExe xsettingsd;
|
||||
}
|
||||
)
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
NIX_CFLAGS_COMPILE+=" -DGSETTINGS_SCHEMAS_PATH=\"$GSETTINGS_SCHEMAS_PATH\""
|
||||
'';
|
||||
@ -21,4 +35,10 @@ mkKdeDerivation {
|
||||
dontWrapGApps = true; # There is nothing to wrap
|
||||
|
||||
extraCmakeFlags = ["-DGLIB_SCHEMAS_DIR=${gsettings-desktop-schemas.out}/"];
|
||||
|
||||
# Hardcoded as QStrings, which are UTF-16 so Nix can't pick these up automatically
|
||||
postFixup = ''
|
||||
mkdir -p $out/nix-support
|
||||
echo "${procps} ${xsettingsd}" > $out/nix-support/depends
|
||||
'';
|
||||
}
|
||||
|
22
pkgs/kde/plasma/kde-gtk-config/dependency-paths.patch
Normal file
22
pkgs/kde/plasma/kde-gtk-config/dependency-paths.patch
Normal file
@ -0,0 +1,22 @@
|
||||
diff --git a/kded/config_editor/xsettings.cpp b/kded/config_editor/xsettings.cpp
|
||||
index 1f9fe5b..9824973 100644
|
||||
--- a/kded/config_editor/xsettings.cpp
|
||||
+++ b/kded/config_editor/xsettings.cpp
|
||||
@@ -46,7 +46,7 @@ void replaceValueInXSettingsdContents(QString &xSettingsdContents, const QString
|
||||
pid_t pidOfXSettingsd()
|
||||
{
|
||||
QProcess pgrep;
|
||||
- pgrep.start(QStringLiteral("pgrep"),
|
||||
+ pgrep.start(QStringLiteral("@pgrep@"),
|
||||
QStringList{
|
||||
QStringLiteral("-u"),
|
||||
QString::number(getuid()),
|
||||
@@ -67,7 +67,7 @@ reloadXSettingsd(void *)
|
||||
{
|
||||
pid_t xSettingsdPid = pidOfXSettingsd();
|
||||
if (xSettingsdPid == 0) {
|
||||
- QProcess::startDetached(QStandardPaths::findExecutable(QStringLiteral("xsettingsd")), QStringList());
|
||||
+ QProcess::startDetached(QStringLiteral("@xsettingsd@"), QStringList());
|
||||
} else {
|
||||
kill(xSettingsdPid, SIGHUP);
|
||||
}
|
@ -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
pkgs/kde/plasma/plasma-workspace/dependency-paths.patch
Normal file
149
pkgs/kde/plasma/plasma-workspace/dependency-paths.patch
Normal 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
|
@ -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
|
@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ romildo ];
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "xsettingsd";
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user