summaryrefslogtreecommitdiff
path: root/sysutils/plasma5-kinfocenter/files/patch-pciconf_support
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/plasma5-kinfocenter/files/patch-pciconf_support')
-rw-r--r--sysutils/plasma5-kinfocenter/files/patch-pciconf_support124
1 files changed, 124 insertions, 0 deletions
diff --git a/sysutils/plasma5-kinfocenter/files/patch-pciconf_support b/sysutils/plasma5-kinfocenter/files/patch-pciconf_support
new file mode 100644
index 000000000000..43b2066edb96
--- /dev/null
+++ b/sysutils/plasma5-kinfocenter/files/patch-pciconf_support
@@ -0,0 +1,124 @@
+From 602697a3e3870335358dd9334bcacd1157af371b Mon Sep 17 00:00:00 2001
+From: "Tobias C. Berner" <tcberner@FreeBSD.org>
+Date: Mon, 24 Jan 2022 11:41:16 +0100
+Subject: [PATCH] kcm_pci: add support for pciconf for FreeBSD
+
+Summary:
+* add search module for pciconf binary
+* prefer pciconf over lspci if found (maybe add an option to override?)
+* add backend.h containing 'pciconv -lv' respectively 'lscpi -v'
+
+Test Plan:
+
+Reviewers: #freebsd
+
+Subscribers:
+---
+ Modules/pci/CMakeLists.txt | 14 ++++++++++++++
+ Modules/pci/backend.h.cmake | 2 ++
+ Modules/pci/{kcm_pci.json => kcm_pci.json.cmake} | 2 +-
+ Modules/pci/main.cpp | 5 ++++-
+ cmake/Findpciconf.cmake | 10 ++++++++++
+ 5 files changed, 31 insertions(+), 2 deletions(-)
+ create mode 100644 Modules/pci/backend.h.cmake
+ rename Modules/pci/{kcm_pci.json => kcm_pci.json.cmake} (99%)
+ create mode 100644 cmake/Findpciconf.cmake
+
+diff --git Modules/pci/CMakeLists.txt Modules/pci/CMakeLists.txt
+index 664d6bb1..5b35ab8d 100644
+--- Modules/pci/CMakeLists.txt
++++ Modules/pci/CMakeLists.txt
+@@ -4,6 +4,20 @@
+ find_package(lspci)
+ set_package_properties(lspci PROPERTIES TYPE RUNTIME)
+
++find_package(pciconf)
++set_package_properties(pciconf PROPERTIES TYPE RUNTIME)
++
++if(pciconf_FOUND)
++ set(PCI_BACKEND pciconf)
++ set(PCI_BACKEND_ARGUMENTS "-lv")
++else()
++ set(PCI_BACKEND lspci)
++ set(PCI_BACKEND_ARGUMENTS "-v")
++endif()
++
++configure_file(kcm_pci.json.cmake kcm_pci.json)
++configure_file(backend.h.cmake backend.h)
++
+ add_definitions(-DTRANSLATION_DOMAIN=\"kcm_pci\")
+
+ add_library(kcm_pci MODULE main.cpp)
+diff --git Modules/pci/backend.h.cmake Modules/pci/backend.h.cmake
+new file mode 100644
+index 00000000..525b37b0
+--- /dev/null
++++ Modules/pci/backend.h.cmake
+@@ -0,0 +1,2 @@
++#cmakedefine PCI_BACKEND "@PCI_BACKEND@"
++#cmakedefine PCI_BACKEND_ARGUMENTS "@PCI_BACKEND_ARGUMENTS@"
+diff --git Modules/pci/kcm_pci.json Modules/pci/kcm_pci.json.cmake
+similarity index 99%
+rename from Modules/pci/kcm_pci.json
+rename to Modules/pci/kcm_pci.json.cmake
+index 695f43c5..23036fac 100644
+--- Modules/pci/kcm_pci.json
++++ Modules/pci/kcm_pci.json.cmake
+@@ -121,7 +121,7 @@
+ "Name[zh_CN]": "PCI",
+ "Name[zh_TW]": "PCI"
+ },
+- "TryExec": "lspci",
++ "TryExec": "@PCI_BACKEND@",
+ "X-KDE-KInfoCenter-Category": "device_information",
+ "X-KDE-Keywords": "PCI,PCI-Devices,PCI-Bus,System Information",
+ "X-KDE-Keywords[ar]": "PCI,أجهزة PCI,PCI-Bus,معلومات النّظام",
+diff --git Modules/pci/main.cpp Modules/pci/main.cpp
+index 590503ab..30179d64 100644
+--- Modules/pci/main.cpp
++++ Modules/pci/main.cpp
+@@ -1,6 +1,7 @@
+ /*
+ SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
+ SPDX-FileCopyrightText: 2021 Harald Sitter <sitter@kde.org>
++ SPDX-FileCopyrightText: 2022 Tobias C. Berner <tcberner@FreeBSD.org>
+ */
+
+ #include <KAboutData>
+@@ -10,6 +11,8 @@
+
+ #include <CommandOutputContext.h>
+
++#include "backend.h"
++
+ class KCMXServer : public KQuickAddons::ConfigModule
+ {
+ Q_OBJECT
+@@ -17,7 +20,7 @@ public:
+ explicit KCMXServer(QObject *parent, const KPluginMetaData &data, const QVariantList &args)
+ : ConfigModule(parent, data, args)
+ {
+- auto outputContext = new CommandOutputContext(QStringLiteral("lspci"), {QStringLiteral("-v")}, parent);
++ auto outputContext = new CommandOutputContext(QStringLiteral(PCI_BACKEND), {QStringLiteral(PCI_BACKEND_ARGUMENTS)}, parent);
+ qmlRegisterSingletonInstance("org.kde.kinfocenter.pci.private", 1, 0, "InfoOutputContext", outputContext);
+
+ auto *about = new KAboutData(QStringLiteral("kcm_pci"), i18nc("@label kcm name", "PCI"), QStringLiteral("1.0"), QString(), KAboutLicense::GPL);
+diff --git cmake/Findpciconf.cmake cmake/Findpciconf.cmake
+new file mode 100644
+index 00000000..07cf1cf7
+--- /dev/null
++++ cmake/Findpciconf.cmake
+@@ -0,0 +1,10 @@
++# This module defines the following variables:
++#
++# pciconf_FOUND - true if found
++# pciconf_PATH - path to the bin (only when found)
++#
++# SPDX-License-Identifier: BSD-2-Clause
++# SPDX-FileCopyrightText: 2022 Tobias C. Berner <tcberner@FreeBSD.org>
++
++include(ProgramFinder)
++program_finder(pciconf)
+--
+2.34.1
+