[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
07/19: gnu: kwin: Unwrap executable name for desktop file search.
From: |
guix-commits |
Subject: |
07/19: gnu: kwin: Unwrap executable name for desktop file search. |
Date: |
Thu, 14 Sep 2023 17:45:21 -0400 (EDT) |
civodul pushed a commit to branch master
in repository guix.
commit a5d207f0db20933501712c037703cb7cb27adbbc
Author: Zheng Junjie <zhengjunjie@iscas.ac.cn>
AuthorDate: Wed Sep 6 23:43:53 2023 +0800
gnu: kwin: Unwrap executable name for desktop file search.
see https://github.com/NixOS/nixpkgs/pull/116549
*
gnu/packages/patches/kwin-unwrap-executable-name-for-dot-desktop-search.patch:
New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/kde-plasma.scm (kwin)[origin]: Use it.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
gnu/local.mk | 1 +
gnu/packages/kde-plasma.scm | 1 +
...ap-executable-name-for-dot-desktop-search.patch | 89 ++++++++++++++++++++++
3 files changed, 91 insertions(+)
diff --git a/gnu/local.mk b/gnu/local.mk
index 0d6e6846ee..a94fce9248 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1479,6 +1479,7 @@ dist_patch_DATA =
\
%D%/packages/patches/kobodeluxe-midicon-segmentation-fault.patch \
%D%/packages/patches/kobodeluxe-graphics-window-signed-char.patch \
%D%/packages/patches/kodi-set-libcurl-ssl-parameters.patch \
+
%D%/packages/patches/kwin-unwrap-executable-name-for-dot-desktop-search.patch\
%D%/packages/patches/kodi-mesa-eglchromium.patch \
%D%/packages/patches/laby-make-install.patch \
%D%/packages/patches/laby-use-tmpdir-from-runtime.patch \
diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index 11586a6ce2..331ab28cd1 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -1210,6 +1210,7 @@ KDE Frameworks components.")
(method url-fetch)
(uri (string-append "mirror://kde/stable/plasma/" version "/"
name "-" version ".tar.xz"))
+ (patches (search-patches
"kwin-unwrap-executable-name-for-dot-desktop-search.patch"))
(sha256
(base32
"0bssp76lzqqlan5pfg6wjf4z9c6pl6p66ri8p82vqqw406x5bzyb"))))
diff --git
a/gnu/packages/patches/kwin-unwrap-executable-name-for-dot-desktop-search.patch
b/gnu/packages/patches/kwin-unwrap-executable-name-for-dot-desktop-search.patch
new file mode 100644
index 0000000000..8f67553138
--- /dev/null
+++
b/gnu/packages/patches/kwin-unwrap-executable-name-for-dot-desktop-search.patch
@@ -0,0 +1,89 @@
+origin patch from nixos.
+
+see
https://github.com/NixOS/nixpkgs/blob/2457551a54ffbd93b7d8f84af8b8fb3aac5cbdd5/pkgs/desktops/plasma-5/kwin/0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch
+
+---
+ src/guix_utils.h | 41 +++++++++++++++++++++++++++++++++++++++++
+ src/service_utils.h | 4 +++-
+ src/waylandwindow.cpp | 5 ++++-
+ 3 files changed, 48 insertions(+), 2 deletions(-)
+ create mode 100644 src/guix_utils.h
+
+diff a/src/guix_utils.h b/src/guix_utils.h
+new file mode 100644
+index 0000000..726065d
+--- /dev/null
++++ b/src/guix_utils.h
+@@ -0,0 +1,24 @@
++#ifndef GUIX_UTILS_H
++#define GUIX_UTILS_H
++
++// kwin
++#include <kwinglobals.h>
++
++namespace KWin
++{
++
++static QString unwrapExecutablePath(const QString &in_executablePath)
++{
++ QString executablePath(in_executablePath);
++
++ while (executablePath.endsWith("-real") &&
executablePath[executablePath.lastIndexOf("/")+1] == QChar('.')) {
++ executablePath.remove(executablePath.length() - 5, 5);
++ executablePath.remove(executablePath.lastIndexOf("/")+1, 1);
++ }
++
++ return executablePath;
++}
++
++}// namespace
++
++#endif // GUIX_UTILS_H
+diff a/src/utils/serviceutils.h b/src/utils/serviceutils.h
+index 8a70c1f..475b15d 100644
+--- a/src/utils/serviceutils.h
++++ b/src/utils/serviceutils.h
+@@ -19,6 +19,7 @@
+ #include <QLoggingCategory>
+ //KF
+ #include <KApplicationTrader>
++#include "guix_utils.h"
+
+ namespace KWin
+ {
+@@ -26,8 +27,9 @@ namespace KWin
+ const static QString s_waylandInterfaceName =
QStringLiteral("X-KDE-Wayland-Interfaces");
+ const static QString s_dbusRestrictedInterfaceName =
QStringLiteral("X-KDE-DBUS-Restricted-Interfaces");
+
+-static QStringList fetchProcessServiceField(const QString &executablePath,
const QString &fieldName)
++static QStringList fetchProcessServiceField(const QString &in_executablePath,
const QString &fieldName)
+ {
++ const QString executablePath = unwrapExecutablePath(in_executablePath);
+ // needed to be able to use the logging category in a header static
function
+ static QLoggingCategory KWIN_UTILS ("KWIN_UTILS", QtWarningMsg);
+ const auto servicesFound = KApplicationTrader::query([&executablePath]
(const KService::Ptr &service) {
+diff a/src/waylandwindow.cpp b/src/waylandwindow.cpp
+index fd2c0c1..ae8cf96 100644
+--- a/src/waylandwindow.cpp
++++ b/src/waylandwindow.cpp
+@@ -10,6 +10,7 @@
+ #include "screens.h"
+ #include "wayland_server.h"
+ #include "workspace.h"
++#include "guix_utils.h"
+
+ #include <KWaylandServer/display.h>
+ #include <KWaylandServer/clientbuffer.h>
+@@ -173,7 +174,9 @@ void WaylandWindow::updateIcon()
+
+ void WaylandWindow::updateResourceName()
+ {
+- const QFileInfo fileInfo(surface()->client()->executablePath());
++ const QString in_path = surface()->client()->executablePath();
++ const QString path = unwrapExecutablePath(in_path);
++ const QFileInfo fileInfo(path);
+ if (fileInfo.exists()) {
+ const QByteArray executableFileName = fileInfo.fileName().toUtf8();
+ setResourceClass(executableFileName, executableFileName);
+--
+2.32.0
\ No newline at end of file
- 05/19: gnu: dpf-plugins: Update to 1.7., (continued)
- 05/19: gnu: dpf-plugins: Update to 1.7., guix-commits, 2023/09/14
- 14/19: gnu: libftdi: Build ftdi_eeprom., guix-commits, 2023/09/14
- 09/19: gnu: icewm: Update to 3.4.1, guix-commits, 2023/09/14
- 12/19: gnu: libftdi: Do not build example programs., guix-commits, 2023/09/14
- 16/19: gnu: libftdi: Build Python bindings., guix-commits, 2023/09/14
- 02/19: gnu: makefile2graph: fix cross-compile., guix-commits, 2023/09/14
- 03/19: gnu: uncrustify: Update to 0.77.1., guix-commits, 2023/09/14
- 01/19: gnu: openmpi: Enable PMIx., guix-commits, 2023/09/14
- 04/19: gnu: uncrustify: use new style and gexp., guix-commits, 2023/09/14
- 08/19: gnu: armagetronad: Update to 0.2.9.1.1., guix-commits, 2023/09/14
- 07/19: gnu: kwin: Unwrap executable name for desktop file search.,
guix-commits <=
- 10/19: gnu: libftdi: Update package style., guix-commits, 2023/09/14
- 19/19: gnu: go-ipfs: Update to 0.13.0., guix-commits, 2023/09/14
- 06/19: gnu: nanosvg: Add a patch for PrusaSlicer 2.6., guix-commits, 2023/09/14
- 15/19: gnu: libftdi: Build C++ bindings., guix-commits, 2023/09/14
- 18/19: gnu: libftdi: Build API documentation., guix-commits, 2023/09/14
- 13/19: gnu: libftdi: Install libraries to /lib instead of /lib64., guix-commits, 2023/09/14
- 17/19: gnu: libftdi: Update to 1.5., guix-commits, 2023/09/14
- 11/19: gnu: libftdi: Use HTTPS for package source., guix-commits, 2023/09/14