!142 同步补丁,调整spec对齐
From: @liubuguiii Reviewed-by: @itisyang Signed-off-by: @itisyang
This commit is contained in:
commit
15983d8f4c
139
0017-feature-display-perform-adaptive-settings-when-conne.patch
Normal file
139
0017-feature-display-perform-adaptive-settings-when-conne.patch
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
From d8e6d419f0b4f4965b32e7c62281f257e0595c4b Mon Sep 17 00:00:00 2001
|
||||||
|
From: tangjie02 <tangjie02@kylinsec.com.cn>
|
||||||
|
Date: Mon, 13 May 2024 12:58:46 +0800
|
||||||
|
Subject: [PATCH] feature(display): perform adaptive settings when connection
|
||||||
|
status or monitor uid is changed.
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
- 如果显示器uid和显示接口连接状态有一个发生变化,则重新进行自适应设置。
|
||||||
|
|
||||||
|
Relates #37289
|
||||||
|
|
||||||
|
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
|
||||||
|
---
|
||||||
|
plugins/display/display-manager.cpp | 44 +++++++++++++++++++++--------
|
||||||
|
plugins/display/display-manager.h | 18 ++++++------
|
||||||
|
2 files changed, 42 insertions(+), 20 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/display/display-manager.cpp b/plugins/display/display-manager.cpp
|
||||||
|
index 8cf4099..858f944 100644
|
||||||
|
--- a/plugins/display/display-manager.cpp
|
||||||
|
+++ b/plugins/display/display-manager.cpp
|
||||||
|
@@ -1,14 +1,14 @@
|
||||||
|
/**
|
||||||
|
- * Copyright (c) 2020 ~ 2021 KylinSec Co., Ltd.
|
||||||
|
+ * Copyright (c) 2020 ~ 2021 KylinSec Co., Ltd.
|
||||||
|
* kiran-cc-daemon is licensed under Mulan PSL v2.
|
||||||
|
- * You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
* You may obtain a copy of Mulan PSL v2 at:
|
||||||
|
- * http://license.coscl.org.cn/MulanPSL2
|
||||||
|
- * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
- * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
- * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
- * See the Mulan PSL v2 for more details.
|
||||||
|
- *
|
||||||
|
+ * http://license.coscl.org.cn/MulanPSL2
|
||||||
|
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
+ * See the Mulan PSL v2 for more details.
|
||||||
|
+ *
|
||||||
|
* Author: tangjie02 <tangjie02@kylinos.com.cn>
|
||||||
|
*/
|
||||||
|
|
||||||
|
@@ -749,8 +749,7 @@ ModeInfoVec DisplayManager::monitors_common_modes(const DisplayMonitorVec &monit
|
||||||
|
auto iter = std::remove_if(result.begin(), result.end(), [monitor](std::shared_ptr<ModeInfo> mode) -> bool
|
||||||
|
{
|
||||||
|
auto modes = monitor->get_modes_by_size(mode->width, mode->height);
|
||||||
|
- return (modes.size() == 0);
|
||||||
|
- });
|
||||||
|
+ return (modes.size() == 0); });
|
||||||
|
|
||||||
|
result.erase(iter, result.end());
|
||||||
|
}
|
||||||
|
@@ -863,6 +862,17 @@ std::string DisplayManager::get_monitors_uid()
|
||||||
|
return StrUtils::join(result, MONITOR_JOIN_CHAR);
|
||||||
|
}
|
||||||
|
|
||||||
|
+std::string DisplayManager::get_output_names()
|
||||||
|
+{
|
||||||
|
+ std::vector<std::string> result;
|
||||||
|
+ for (const auto &iter : this->monitors_)
|
||||||
|
+ {
|
||||||
|
+ result.push_back(iter.second->name_get());
|
||||||
|
+ }
|
||||||
|
+ std::sort(result.begin(), result.end(), std::less<std::string>());
|
||||||
|
+ return StrUtils::join(result, MONITOR_JOIN_CHAR);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
std::string DisplayManager::get_c_monitors_uid(const ScreenConfigInfo::MonitorSequence &monitors)
|
||||||
|
{
|
||||||
|
std::vector<std::string> result;
|
||||||
|
@@ -907,13 +917,23 @@ bool DisplayManager::save_to_file(CCErrorCode &error_code)
|
||||||
|
void DisplayManager::resources_changed()
|
||||||
|
{
|
||||||
|
auto old_monitors_uid = this->get_monitors_uid();
|
||||||
|
+ auto old_output_names = this->get_output_names();
|
||||||
|
this->load_monitors();
|
||||||
|
auto new_monitors_uid = this->get_monitors_uid();
|
||||||
|
+ auto new_output_names = this->get_output_names();
|
||||||
|
|
||||||
|
auto screen_changed_adaptation = this->display_settings_->get_boolean(SCREEN_CHANGED_ADAPT);
|
||||||
|
|
||||||
|
- // 如果uid不相同,说明设备硬件发生了变化,此时需要重新进行设置
|
||||||
|
- if (screen_changed_adaptation && old_monitors_uid != new_monitors_uid)
|
||||||
|
+ KLOG_INFO("check display resource changed, the old monitor uid and output names is %s/%s, "
|
||||||
|
+ "the new monitor uid and names is %s/%s",
|
||||||
|
+ old_monitors_uid.c_str(),
|
||||||
|
+ old_output_names.c_str(),
|
||||||
|
+ new_monitors_uid.c_str(),
|
||||||
|
+ new_output_names.c_str());
|
||||||
|
+
|
||||||
|
+ /* 如果uid不相同且连接的接口不一样,说明设备硬件发生了变化,此时需要重新进行设置。这里不能只判断uid是否变化,因为有可能出现 */
|
||||||
|
+ if (screen_changed_adaptation &&
|
||||||
|
+ (old_monitors_uid != new_monitors_uid || old_output_names != new_output_names))
|
||||||
|
{
|
||||||
|
CCErrorCode error_code = CCErrorCode::SUCCESS;
|
||||||
|
if (!this->switch_style_and_save(this->default_style_, error_code))
|
||||||
|
diff --git a/plugins/display/display-manager.h b/plugins/display/display-manager.h
|
||||||
|
index 6348568..e6f84da 100644
|
||||||
|
--- a/plugins/display/display-manager.h
|
||||||
|
+++ b/plugins/display/display-manager.h
|
||||||
|
@@ -1,14 +1,14 @@
|
||||||
|
/**
|
||||||
|
- * Copyright (c) 2020 ~ 2021 KylinSec Co., Ltd.
|
||||||
|
+ * Copyright (c) 2020 ~ 2021 KylinSec Co., Ltd.
|
||||||
|
* kiran-cc-daemon is licensed under Mulan PSL v2.
|
||||||
|
- * You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
* You may obtain a copy of Mulan PSL v2 at:
|
||||||
|
- * http://license.coscl.org.cn/MulanPSL2
|
||||||
|
- * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
- * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
- * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
- * See the Mulan PSL v2 for more details.
|
||||||
|
- *
|
||||||
|
+ * http://license.coscl.org.cn/MulanPSL2
|
||||||
|
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
+ * See the Mulan PSL v2 for more details.
|
||||||
|
+ *
|
||||||
|
* Author: tangjie02 <tangjie02@kylinos.com.cn>
|
||||||
|
*/
|
||||||
|
|
||||||
|
@@ -113,6 +113,8 @@ private:
|
||||||
|
|
||||||
|
// 将uid进行排序后拼接
|
||||||
|
std::string get_monitors_uid();
|
||||||
|
+ // 将output name进行排序后拼接
|
||||||
|
+ std::string get_output_names();
|
||||||
|
std::string get_c_monitors_uid(const ScreenConfigInfo::MonitorSequence& monitors);
|
||||||
|
|
||||||
|
// 保存配置到文件
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
From 5f64a588c8518aada0c2c8fb73f6ee753eef8f98 Mon Sep 17 00:00:00 2001
|
||||||
|
From: tangjie02 <tangjie02@kylinsec.com.cn>
|
||||||
|
Date: Thu, 4 Jul 2024 13:31:05 +0800
|
||||||
|
Subject: [PATCH 18/22] fix(systeminfo): fix the graphical and network hardware
|
||||||
|
info no display problem
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
- 修复由于placehold1数组大小太小导致读取显卡和网络信息错误问题
|
||||||
|
|
||||||
|
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
|
||||||
|
---
|
||||||
|
plugins/systeminfo/systeminfo-hardware.cpp | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/systeminfo/systeminfo-hardware.cpp b/plugins/systeminfo/systeminfo-hardware.cpp
|
||||||
|
index 917afe1..73960f7 100644
|
||||||
|
--- a/plugins/systeminfo/systeminfo-hardware.cpp
|
||||||
|
+++ b/plugins/systeminfo/systeminfo-hardware.cpp
|
||||||
|
@@ -26,7 +26,7 @@ namespace Kiran
|
||||||
|
#define CPUINFO_FILE "/proc/cpuinfo"
|
||||||
|
#define CPUINFO_KEY_DELIMITER ':'
|
||||||
|
#define CPUINFO_KEY_MODEL "model name"
|
||||||
|
-//龙芯cpuinfo中为大写
|
||||||
|
+// 龙芯cpuinfo中为大写
|
||||||
|
#define CPUINFO_KEY_MODEL_LS "Model Name"
|
||||||
|
#define CPUINFO_KEY_PROCESSOR "processor"
|
||||||
|
|
||||||
|
@@ -340,9 +340,9 @@ KVList SystemInfoHardware::get_pcis_by_major_class_id(PCIMajorClassID major_clas
|
||||||
|
auto lines = StrUtils::split_lines(cmd_output);
|
||||||
|
for (auto& line : lines)
|
||||||
|
{
|
||||||
|
- char placehold1[10];
|
||||||
|
+ char placehold1[50];
|
||||||
|
unsigned int full_class_id;
|
||||||
|
- if (sscanf(line.c_str(), "%9s %x:", placehold1, &full_class_id) == 2)
|
||||||
|
+ if (sscanf(line.c_str(), "%49s %x:", placehold1, &full_class_id) == 2)
|
||||||
|
{
|
||||||
|
if ((full_class_id >> 8) == major_class_id)
|
||||||
|
{
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
From df915cbcc72f0ac8c220e40a62eb6da050057c3e Mon Sep 17 00:00:00 2001
|
||||||
|
From: tangjie02 <tangjie02@kylinsec.com.cn>
|
||||||
|
Date: Thu, 4 Jul 2024 19:39:36 +0800
|
||||||
|
Subject: [PATCH 19/22] fix(systeminfo): Remove the duplicate graphical and
|
||||||
|
network hardware info.
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
- 移除重复的显卡和网络设备
|
||||||
|
|
||||||
|
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
|
||||||
|
---
|
||||||
|
plugins/systeminfo/systeminfo-hardware.cpp | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/plugins/systeminfo/systeminfo-hardware.cpp b/plugins/systeminfo/systeminfo-hardware.cpp
|
||||||
|
index 73960f7..8ccb0e4 100644
|
||||||
|
--- a/plugins/systeminfo/systeminfo-hardware.cpp
|
||||||
|
+++ b/plugins/systeminfo/systeminfo-hardware.cpp
|
||||||
|
@@ -355,6 +355,10 @@ KVList SystemInfoHardware::get_pcis_by_major_class_id(PCIMajorClassID major_clas
|
||||||
|
// 如果为空则不执行下面的命令,否则会取到所有的PCI设备(没有了-d选项的限制)
|
||||||
|
RETURN_VAL_IF_TRUE(full_class_ids.size() == 0, KVList());
|
||||||
|
|
||||||
|
+ // 对full_class_ids去重
|
||||||
|
+ std::sort(full_class_ids.begin(), full_class_ids.end());
|
||||||
|
+ full_class_ids.erase(std::unique(full_class_ids.begin(), full_class_ids.end()), full_class_ids.end());
|
||||||
|
+
|
||||||
|
// 根据full_class_id列表获取设备相关信息
|
||||||
|
std::string full_outputs;
|
||||||
|
for (auto& full_class_id : full_class_ids)
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
@ -0,0 +1,80 @@
|
|||||||
|
From 4156ea6bbf3252fd111f6a2f5a0e87ac97171c93 Mon Sep 17 00:00:00 2001
|
||||||
|
From: yangfeng <yangfeng@kylinsec.com.cn>
|
||||||
|
Date: Tue, 23 Jul 2024 17:20:17 +0800
|
||||||
|
Subject: [PATCH 20/22] fix(media-keys-action):The shutdown shortcut cannot be
|
||||||
|
found
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
- 修复关机快捷键找不到
|
||||||
|
|
||||||
|
Related #44337
|
||||||
|
---
|
||||||
|
.../media-keys/media-keys-action.cpp | 25 ++++++++-----------
|
||||||
|
1 file changed, 11 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/keybinding/media-keys/media-keys-action.cpp b/plugins/keybinding/media-keys/media-keys-action.cpp
|
||||||
|
index 31552d5..864f8dc 100644
|
||||||
|
--- a/plugins/keybinding/media-keys/media-keys-action.cpp
|
||||||
|
+++ b/plugins/keybinding/media-keys/media-keys-action.cpp
|
||||||
|
@@ -1,14 +1,14 @@
|
||||||
|
/**
|
||||||
|
- * Copyright (c) 2020 ~ 2021 KylinSec Co., Ltd.
|
||||||
|
+ * Copyright (c) 2020 ~ 2021 KylinSec Co., Ltd.
|
||||||
|
* kiran-cc-daemon is licensed under Mulan PSL v2.
|
||||||
|
- * You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
* You may obtain a copy of Mulan PSL v2 at:
|
||||||
|
- * http://license.coscl.org.cn/MulanPSL2
|
||||||
|
- * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
- * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
- * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
- * See the Mulan PSL v2 for more details.
|
||||||
|
- *
|
||||||
|
+ * http://license.coscl.org.cn/MulanPSL2
|
||||||
|
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
+ * See the Mulan PSL v2 for more details.
|
||||||
|
+ *
|
||||||
|
* Author: meizhigang <meizhigang@kylinsec.com.cn>
|
||||||
|
*/
|
||||||
|
#include "plugins/keybinding/media-keys/media-keys-action.h"
|
||||||
|
@@ -68,8 +68,7 @@ void MediaKeysAction::init_touchpad()
|
||||||
|
if (device_helper->is_touchpad())
|
||||||
|
{
|
||||||
|
this->has_touchpad_ = true;
|
||||||
|
- }
|
||||||
|
- });
|
||||||
|
+ } });
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MediaKeysAction::do_action(XEvent *xev, std::string name)
|
||||||
|
@@ -208,10 +207,9 @@ void MediaKeysAction::do_touchpad_osd(bool state)
|
||||||
|
|
||||||
|
void MediaKeysAction::do_shutdown()
|
||||||
|
{
|
||||||
|
- std::string cmdline = std::string("mate-session-save --shutdown-dialog");
|
||||||
|
-
|
||||||
|
try
|
||||||
|
{
|
||||||
|
+ std::string cmdline = "kiran-session-quit --power-off";
|
||||||
|
Glib::spawn_command_line_async(cmdline);
|
||||||
|
}
|
||||||
|
catch (const Glib::Error &e)
|
||||||
|
@@ -222,10 +220,9 @@ void MediaKeysAction::do_shutdown()
|
||||||
|
|
||||||
|
void MediaKeysAction::do_logout()
|
||||||
|
{
|
||||||
|
- std::string cmdline = std::string("mate-session-save --logout-dialog");
|
||||||
|
-
|
||||||
|
try
|
||||||
|
{
|
||||||
|
+ std::string cmdline = "kiran-session-quit --logout";
|
||||||
|
Glib::spawn_command_line_async(cmdline);
|
||||||
|
}
|
||||||
|
catch (const Glib::Error &e)
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
42
0021-fix-media-keys-action-fix-compile-error.patch
Normal file
42
0021-fix-media-keys-action-fix-compile-error.patch
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
From fb62714c4f58c5705baeffd0a668ca656384391f Mon Sep 17 00:00:00 2001
|
||||||
|
From: yangfeng <yangfeng@kylinsec.com.cn>
|
||||||
|
Date: Wed, 24 Jul 2024 19:47:09 +0800
|
||||||
|
Subject: [PATCH 21/22] fix(media-keys-action):fix compile error
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
- 修复编译错误
|
||||||
|
---
|
||||||
|
plugins/keybinding/media-keys/media-keys-action.cpp | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/keybinding/media-keys/media-keys-action.cpp b/plugins/keybinding/media-keys/media-keys-action.cpp
|
||||||
|
index 864f8dc..27ef53a 100644
|
||||||
|
--- a/plugins/keybinding/media-keys/media-keys-action.cpp
|
||||||
|
+++ b/plugins/keybinding/media-keys/media-keys-action.cpp
|
||||||
|
@@ -207,9 +207,9 @@ void MediaKeysAction::do_touchpad_osd(bool state)
|
||||||
|
|
||||||
|
void MediaKeysAction::do_shutdown()
|
||||||
|
{
|
||||||
|
+ std::string cmdline = "kiran-session-quit --power-off";
|
||||||
|
try
|
||||||
|
{
|
||||||
|
- std::string cmdline = "kiran-session-quit --power-off";
|
||||||
|
Glib::spawn_command_line_async(cmdline);
|
||||||
|
}
|
||||||
|
catch (const Glib::Error &e)
|
||||||
|
@@ -220,9 +220,9 @@ void MediaKeysAction::do_shutdown()
|
||||||
|
|
||||||
|
void MediaKeysAction::do_logout()
|
||||||
|
{
|
||||||
|
+ std::string cmdline = "kiran-session-quit --logout";
|
||||||
|
try
|
||||||
|
{
|
||||||
|
- std::string cmdline = "kiran-session-quit --logout";
|
||||||
|
Glib::spawn_command_line_async(cmdline);
|
||||||
|
}
|
||||||
|
catch (const Glib::Error &e)
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
29
0022-feature-media-keys-add-shutdown-keybinding.patch
Normal file
29
0022-feature-media-keys-add-shutdown-keybinding.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
From 2c7c73ef7bb363c4c0966daf5e48664f6b708c62 Mon Sep 17 00:00:00 2001
|
||||||
|
From: yangfeng <yangfeng@kylinsec.com.cn>
|
||||||
|
Date: Wed, 24 Jul 2024 19:59:51 +0800
|
||||||
|
Subject: [PATCH 22/22] feature(media-keys): add shutdown keybinding
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
- 增加关机快捷键
|
||||||
|
---
|
||||||
|
data/schemas/com.kylinsec.kiran.media-keys.gschema.xml.in | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/data/schemas/com.kylinsec.kiran.media-keys.gschema.xml.in b/data/schemas/com.kylinsec.kiran.media-keys.gschema.xml.in
|
||||||
|
index 7bfb629..7ec3296 100644
|
||||||
|
--- a/data/schemas/com.kylinsec.kiran.media-keys.gschema.xml.in
|
||||||
|
+++ b/data/schemas/com.kylinsec.kiran.media-keys.gschema.xml.in
|
||||||
|
@@ -57,7 +57,7 @@
|
||||||
|
<description>Binding to mute/unmute the microphone.</description>
|
||||||
|
</key>
|
||||||
|
<key name="power" type="s">
|
||||||
|
- <default>''</default>
|
||||||
|
+ <default>'<Control><Alt>Delete'</default>
|
||||||
|
<summary>Shut down</summary>
|
||||||
|
<description>Binding to shut down.</description>
|
||||||
|
</key>
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
@ -0,0 +1,32 @@
|
|||||||
|
From 2af5d982e63e6e7e4b1f7c4729dbd85930c004f1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: liuxinhao <liuxinhao@kylinsec.com.cn>
|
||||||
|
Date: Fri, 9 Aug 2024 10:20:03 +0800
|
||||||
|
Subject: [PATCH] fix(Ungrab): Synchronize requests to XServer after
|
||||||
|
UnGrabServer
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
- UnGrabServer后需立即同步请求至XServer,避免后续请求堆积在队列之中,导致其他XClient无法连接至XServer
|
||||||
|
---
|
||||||
|
plugins/appearance/background/appearance-background.cpp | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/plugins/appearance/background/appearance-background.cpp b/plugins/appearance/background/appearance-background.cpp
|
||||||
|
index fca2231..8b01845 100644
|
||||||
|
--- a/plugins/appearance/background/appearance-background.cpp
|
||||||
|
+++ b/plugins/appearance/background/appearance-background.cpp
|
||||||
|
@@ -373,7 +373,10 @@ bool AppearanceBackground::set_surface_as_root(Glib::RefPtr<Gdk::Screen> screen,
|
||||||
|
XClearWindow(xdisplay, xroot);
|
||||||
|
|
||||||
|
XFlush(xdisplay);
|
||||||
|
+
|
||||||
|
XUngrabServer(xdisplay);
|
||||||
|
+ //立即同步UnGrab请求支XServer
|
||||||
|
+ XFlush(xdisplay);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
119
0024-fix-systeminfo-hardware-Fix-failure-to-get-disk-info.patch
Normal file
119
0024-fix-systeminfo-hardware-Fix-failure-to-get-disk-info.patch
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
From 5c6cbc5e72570a5772b6ed4568cd2c303c02c9d9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: yangfeng <yangfeng@kylinsec.com.cn>
|
||||||
|
Date: Tue, 20 Aug 2024 08:49:07 +0800
|
||||||
|
Subject: [PATCH] fix(systeminfo-hardware):Fix failure to get disk information
|
||||||
|
in virtual machine
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
- 修复虚拟机中获取磁盘信息失败
|
||||||
|
|
||||||
|
Related #46645
|
||||||
|
---
|
||||||
|
plugins/systeminfo/systeminfo-hardware.cpp | 67 +++++++++++++++-------
|
||||||
|
1 file changed, 45 insertions(+), 22 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/systeminfo/systeminfo-hardware.cpp b/plugins/systeminfo/systeminfo-hardware.cpp
|
||||||
|
index 8ccb0e4..706a10d 100644
|
||||||
|
--- a/plugins/systeminfo/systeminfo-hardware.cpp
|
||||||
|
+++ b/plugins/systeminfo/systeminfo-hardware.cpp
|
||||||
|
@@ -19,6 +19,7 @@
|
||||||
|
#include <gudev/gudev.h>
|
||||||
|
#include <cinttypes>
|
||||||
|
#include <fstream>
|
||||||
|
+#include <regex>
|
||||||
|
|
||||||
|
namespace Kiran
|
||||||
|
{
|
||||||
|
@@ -233,13 +234,13 @@ std::map<std::string, std::string> SystemInfoHardware::parse_info_file(const std
|
||||||
|
|
||||||
|
DiskInfoVec SystemInfoHardware::get_disks_info()
|
||||||
|
{
|
||||||
|
- // 老版本lsblk不支持-J选项,所以这里不使用json格式
|
||||||
|
+ // 老版本lsblk不支持-J选项,所以这里不使用json格式
|
||||||
|
DiskInfoVec disks_info;
|
||||||
|
+ std::vector<std::string> argv{DISKINFO_CMD, "-d", "-b", "-P", "-o", "NAME,TYPE,SIZE,MODEL,VENDOR"};
|
||||||
|
|
||||||
|
std::string cmd_output;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
- std::vector<std::string> argv{DISKINFO_CMD, "-d", "-b", "-P", "-o", "NAME,TYPE,SIZE,MODEL,VENDOR"};
|
||||||
|
Glib::spawn_sync("",
|
||||||
|
argv,
|
||||||
|
Glib::SPAWN_DEFAULT,
|
||||||
|
@@ -256,29 +257,51 @@ DiskInfoVec SystemInfoHardware::get_disks_info()
|
||||||
|
|
||||||
|
for (auto& line : lines)
|
||||||
|
{
|
||||||
|
- char name[BUFSIZ] = {0};
|
||||||
|
- char type[BUFSIZ] = {0};
|
||||||
|
- int64_t size = 0;
|
||||||
|
- char model[BUFSIZ] = {0};
|
||||||
|
- char vendor[BUFSIZ] = {0};
|
||||||
|
-
|
||||||
|
- std::string formatstr = "NAME=\"%" + std::to_string(BUFSIZ - 1) + "[^\"]\" TYPE=\"%" + std::to_string(BUFSIZ - 1) + "[^\"]\" SIZE=\"%" + PRId64 +
|
||||||
|
- "\" MODEL=\"%" + std::to_string(BUFSIZ - 1) + "[^\"]\" VENDOR=\"%" + std::to_string(BUFSIZ - 1) + "[^\"]\"";
|
||||||
|
-
|
||||||
|
- // model和vendor只要有一个不为空则认为合法,所以只要能读到4个变量即可
|
||||||
|
- //"NAME=\"%[^\"]\" TYPE=\"%[^\"]\" SIZE=\"%" PRId64 "\" MODEL=\"%[^\"]\" VENDOR=\"%[^\"]\""
|
||||||
|
- if (sscanf(line.c_str(), formatstr.c_str(),
|
||||||
|
- name, type, &size, model, vendor) >= 4)
|
||||||
|
+ std::regex pattern(R"(NAME=\"([^\"]*)\" TYPE=\"([^\"]*)\" SIZE=\"(\d+)\" MODEL=\"([^\"]*)\" VENDOR=\"([^\"]*)\")");
|
||||||
|
+ std::smatch matches;
|
||||||
|
+ if (std::regex_search(line, matches, pattern))
|
||||||
|
{
|
||||||
|
- if (std::string(type) == "disk")
|
||||||
|
+ if (matches[2].str() != "disk")
|
||||||
|
{
|
||||||
|
- DiskInfo disk_info;
|
||||||
|
- disk_info.name = name;
|
||||||
|
- disk_info.size = size;
|
||||||
|
- disk_info.model = StrUtils::trim(model);
|
||||||
|
- disk_info.vendor = StrUtils::trim(vendor);
|
||||||
|
- disks_info.push_back(disk_info);
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ int matched_count = 0;
|
||||||
|
+ for (size_t i = 1; i < matches.size(); ++i)
|
||||||
|
+ {
|
||||||
|
+ if (matches[i].str().size() > 0)
|
||||||
|
+ {
|
||||||
|
+ matched_count++;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ // model和vendor只要有一个不为空则认为合法,所以只要能读到4个变量即可
|
||||||
|
+ if (matched_count < 4)
|
||||||
|
+ {
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+ DiskInfo disk_info;
|
||||||
|
+ if (matches[1].str().size() > 0)
|
||||||
|
+ {
|
||||||
|
+ disk_info.name = matches[1].str();
|
||||||
|
+ }
|
||||||
|
+ if (matches[3].str().size() > 0)
|
||||||
|
+ {
|
||||||
|
+ disk_info.size = std::stoll(matches[3].str());
|
||||||
|
+ }
|
||||||
|
+ if (matches[4].str().size() > 0)
|
||||||
|
+ {
|
||||||
|
+ disk_info.model = matches[4].str();
|
||||||
|
}
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ disk_info.model = disk_info.name;
|
||||||
|
+ }
|
||||||
|
+ if (matches[5].str().size() > 0)
|
||||||
|
+ {
|
||||||
|
+ disk_info.vendor = matches[5].str();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ disks_info.push_back(disk_info);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
106
0025-fix-timedate-Fix-the-ntp-service-load-order-logic-er.patch
Normal file
106
0025-fix-timedate-Fix-the-ntp-service-load-order-logic-er.patch
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
From 2952b5d65d8920ab3ee41433399915b0b20b51a2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: tangjie02 <tangjie02@kylinsec.com.cn>
|
||||||
|
Date: Thu, 29 Aug 2024 09:58:19 +0800
|
||||||
|
Subject: [PATCH 25/27] fix(timedate): Fix the ntp service load order logic
|
||||||
|
error.
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
- 修复ntp服务加载顺序逻辑错误问题,之前的代码加载顺序是随机的
|
||||||
|
- 去重逻辑有问题,std::unique只会对相邻的元素进行去重
|
||||||
|
|
||||||
|
Signed-off-by: tangjie02 <tangjie02@kylinsec.com.cn>
|
||||||
|
---
|
||||||
|
plugins/timedate/timedate-manager.cpp | 42 ++++++++++++++++++---------
|
||||||
|
1 file changed, 28 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/timedate/timedate-manager.cpp b/plugins/timedate/timedate-manager.cpp
|
||||||
|
index fdd9acc..1a28877 100644
|
||||||
|
--- a/plugins/timedate/timedate-manager.cpp
|
||||||
|
+++ b/plugins/timedate/timedate-manager.cpp
|
||||||
|
@@ -1,14 +1,14 @@
|
||||||
|
/**
|
||||||
|
- * Copyright (c) 2020 ~ 2021 KylinSec Co., Ltd.
|
||||||
|
+ * Copyright (c) 2020 ~ 2021 KylinSec Co., Ltd.
|
||||||
|
* kiran-cc-daemon is licensed under Mulan PSL v2.
|
||||||
|
- * You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
* You may obtain a copy of Mulan PSL v2 at:
|
||||||
|
- * http://license.coscl.org.cn/MulanPSL2
|
||||||
|
- * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
- * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
- * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
- * See the Mulan PSL v2 for more details.
|
||||||
|
- *
|
||||||
|
+ * http://license.coscl.org.cn/MulanPSL2
|
||||||
|
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
+ * See the Mulan PSL v2 for more details.
|
||||||
|
+ *
|
||||||
|
* Author: tangjie02 <tangjie02@kylinos.com.cn>
|
||||||
|
*/
|
||||||
|
|
||||||
|
@@ -387,7 +387,7 @@ void TimedateManager::init_ntp_units()
|
||||||
|
this->ntp_unit_name_.clear();
|
||||||
|
for (auto &ntp_unit : ntp_units)
|
||||||
|
{
|
||||||
|
- if (ntp_unit == ntp_units.back())
|
||||||
|
+ if (ntp_unit == ntp_units.front())
|
||||||
|
{
|
||||||
|
this->ntp_unit_name_ = ntp_unit;
|
||||||
|
continue;
|
||||||
|
@@ -426,11 +426,21 @@ std::vector<std::string> TimedateManager::get_ntp_units()
|
||||||
|
{
|
||||||
|
auto &unit_dir = *iter;
|
||||||
|
Glib::Dir dir(unit_dir);
|
||||||
|
+ std::vector<std::string> paths;
|
||||||
|
|
||||||
|
for (auto dir_iter = dir.begin(); dir_iter != dir.end(); ++dir_iter)
|
||||||
|
{
|
||||||
|
auto entry = *dir_iter;
|
||||||
|
auto path = fmt::format("{0}/{1}", unit_dir, entry);
|
||||||
|
+ paths.push_back(path);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ // 排序确定加载优先级,字母序越大的优先使用
|
||||||
|
+ std::sort(paths.begin(), paths.end(), std::greater<std::string>());
|
||||||
|
+
|
||||||
|
+ for (auto iter = paths.begin(); iter != paths.end(); ++iter)
|
||||||
|
+ {
|
||||||
|
+ auto path = *iter;
|
||||||
|
std::string contents;
|
||||||
|
|
||||||
|
try
|
||||||
|
@@ -460,8 +470,15 @@ std::vector<std::string> TimedateManager::get_ntp_units()
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
- KLOG_DEBUG_TIMEDATE("Insert ntp unit: %s %s.", line.c_str(), entry.c_str());
|
||||||
|
- ntp_units.push_back(line);
|
||||||
|
+ if (std::find(ntp_units.begin(), ntp_units.end(), line) == ntp_units.end())
|
||||||
|
+ {
|
||||||
|
+ KLOG_DEBUG_TIMEDATE("Insert ntp unit: %s %s.", line.c_str(), path.c_str());
|
||||||
|
+ ntp_units.push_back(line);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ KLOG_DEBUG_TIMEDATE("Ignore duplication ntp unit: %s %s.", line.c_str(), path.c_str());
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -471,9 +488,6 @@ std::vector<std::string> TimedateManager::get_ntp_units()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- // Remove duplicates.
|
||||||
|
- auto iter = std::unique(ntp_units.begin(), ntp_units.end());
|
||||||
|
- ntp_units.erase(iter, ntp_units.end());
|
||||||
|
return ntp_units;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
121
0026-fix-systeminfo-fix-std-regex-can-not-run-in-gcc-vers.patch
Normal file
121
0026-fix-systeminfo-fix-std-regex-can-not-run-in-gcc-vers.patch
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
From 762c2907fb52dfdebec779c33883a6589d458c0d Mon Sep 17 00:00:00 2001
|
||||||
|
From: yangfeng <yangfeng@kylinsec.com.cn>
|
||||||
|
Date: Thu, 5 Sep 2024 14:13:56 +0800
|
||||||
|
Subject: [PATCH 26/27] fix(systeminfo): fix std::regex can not run in gcc
|
||||||
|
version < 4.9
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
- 修复gcc4.9以下不支持std::regex问题
|
||||||
|
|
||||||
|
Related #48386
|
||||||
|
---
|
||||||
|
plugins/systeminfo/systeminfo-hardware.cpp | 69 +++++++++-------------
|
||||||
|
1 file changed, 28 insertions(+), 41 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/systeminfo/systeminfo-hardware.cpp b/plugins/systeminfo/systeminfo-hardware.cpp
|
||||||
|
index 706a10d..e494e52 100644
|
||||||
|
--- a/plugins/systeminfo/systeminfo-hardware.cpp
|
||||||
|
+++ b/plugins/systeminfo/systeminfo-hardware.cpp
|
||||||
|
@@ -15,11 +15,11 @@
|
||||||
|
#include "plugins/systeminfo/systeminfo-hardware.h"
|
||||||
|
|
||||||
|
#include <gio/gunixinputstream.h>
|
||||||
|
+#include <glib.h>
|
||||||
|
#include <glibtop/mem.h>
|
||||||
|
#include <gudev/gudev.h>
|
||||||
|
#include <cinttypes>
|
||||||
|
#include <fstream>
|
||||||
|
-#include <regex>
|
||||||
|
|
||||||
|
namespace Kiran
|
||||||
|
{
|
||||||
|
@@ -254,57 +254,44 @@ DiskInfoVec SystemInfoHardware::get_disks_info()
|
||||||
|
}
|
||||||
|
|
||||||
|
auto lines = StrUtils::split_lines(cmd_output);
|
||||||
|
+ GRegex* pattern = g_regex_new(R"(NAME=\"([^\"]*)\" TYPE=\"([^\"]*)\" SIZE=\"(\d+)\" MODEL=\"([^\"]*)\" VENDOR=\"([^\"]*)\")", G_REGEX_MULTILINE, (GRegexMatchFlags)0, NULL);
|
||||||
|
|
||||||
|
for (auto& line : lines)
|
||||||
|
{
|
||||||
|
- std::regex pattern(R"(NAME=\"([^\"]*)\" TYPE=\"([^\"]*)\" SIZE=\"(\d+)\" MODEL=\"([^\"]*)\" VENDOR=\"([^\"]*)\")");
|
||||||
|
- std::smatch matches;
|
||||||
|
- if (std::regex_search(line, matches, pattern))
|
||||||
|
+ GMatchInfo* match_info;
|
||||||
|
+ if (g_regex_match(pattern, line.c_str(), (GRegexMatchFlags)0, &match_info))
|
||||||
|
{
|
||||||
|
- if (matches[2].str() != "disk")
|
||||||
|
+ const gchar* name = g_match_info_fetch(match_info, 1);
|
||||||
|
+ const gchar* type = g_match_info_fetch(match_info, 2);
|
||||||
|
+ const gchar* size = g_match_info_fetch(match_info, 3);
|
||||||
|
+ const gchar* model = g_match_info_fetch(match_info, 4);
|
||||||
|
+ const gchar* vendor = g_match_info_fetch(match_info, 5);
|
||||||
|
+
|
||||||
|
+ if (strcmp(type, "disk") == 0 &&
|
||||||
|
+ (name && strlen(name) > 0) &&
|
||||||
|
+ (size && strlen(size) > 0) &&
|
||||||
|
+ ((model && strlen(model) > 0) || (vendor && strlen(vendor) > 0)))
|
||||||
|
{
|
||||||
|
- continue;
|
||||||
|
+ DiskInfo disk_info;
|
||||||
|
+ disk_info.name = name;
|
||||||
|
+ disk_info.size = atoll(size);
|
||||||
|
+ disk_info.model = (strlen(model) ? model : name);
|
||||||
|
+ disk_info.vendor = (strlen(vendor) ? vendor : name);
|
||||||
|
+ disks_info.push_back(disk_info);
|
||||||
|
}
|
||||||
|
|
||||||
|
- int matched_count = 0;
|
||||||
|
- for (size_t i = 1; i < matches.size(); ++i)
|
||||||
|
- {
|
||||||
|
- if (matches[i].str().size() > 0)
|
||||||
|
- {
|
||||||
|
- matched_count++;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- // model和vendor只要有一个不为空则认为合法,所以只要能读到4个变量即可
|
||||||
|
- if (matched_count < 4)
|
||||||
|
- {
|
||||||
|
- continue;
|
||||||
|
- }
|
||||||
|
- DiskInfo disk_info;
|
||||||
|
- if (matches[1].str().size() > 0)
|
||||||
|
- {
|
||||||
|
- disk_info.name = matches[1].str();
|
||||||
|
- }
|
||||||
|
- if (matches[3].str().size() > 0)
|
||||||
|
- {
|
||||||
|
- disk_info.size = std::stoll(matches[3].str());
|
||||||
|
- }
|
||||||
|
- if (matches[4].str().size() > 0)
|
||||||
|
- {
|
||||||
|
- disk_info.model = matches[4].str();
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- disk_info.model = disk_info.name;
|
||||||
|
- }
|
||||||
|
- if (matches[5].str().size() > 0)
|
||||||
|
- {
|
||||||
|
- disk_info.vendor = matches[5].str();
|
||||||
|
- }
|
||||||
|
+ if (name) g_free((gchar*)name);
|
||||||
|
+ if (type) g_free((gchar*)type);
|
||||||
|
+ if (size) g_free((gchar*)size);
|
||||||
|
+ if (model) g_free((gchar*)model);
|
||||||
|
+ if (vendor) g_free((gchar*)vendor);
|
||||||
|
|
||||||
|
- disks_info.push_back(disk_info);
|
||||||
|
+ g_match_info_free(match_info);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ g_regex_unref(pattern);
|
||||||
|
+
|
||||||
|
return disks_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
@ -0,0 +1,94 @@
|
|||||||
|
From 66efa416ca17d10589df7eb6aab8a09a1ec3739e Mon Sep 17 00:00:00 2001
|
||||||
|
From: yangfeng <yangfeng@kylinsec.com.cn>
|
||||||
|
Date: Mon, 9 Sep 2024 11:23:53 +0800
|
||||||
|
Subject: [PATCH 27/27] feature(systeminfo-hardware):use glibmm's regex to
|
||||||
|
replace glib's regex
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
- 使用glibmm正则
|
||||||
|
---
|
||||||
|
plugins/systeminfo/systeminfo-hardware.cpp | 49 +++++++++-------------
|
||||||
|
1 file changed, 19 insertions(+), 30 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/systeminfo/systeminfo-hardware.cpp b/plugins/systeminfo/systeminfo-hardware.cpp
|
||||||
|
index e494e52..a47a8ea 100644
|
||||||
|
--- a/plugins/systeminfo/systeminfo-hardware.cpp
|
||||||
|
+++ b/plugins/systeminfo/systeminfo-hardware.cpp
|
||||||
|
@@ -15,7 +15,7 @@
|
||||||
|
#include "plugins/systeminfo/systeminfo-hardware.h"
|
||||||
|
|
||||||
|
#include <gio/gunixinputstream.h>
|
||||||
|
-#include <glib.h>
|
||||||
|
+#include <glibmm/regex.h>
|
||||||
|
#include <glibtop/mem.h>
|
||||||
|
#include <gudev/gudev.h>
|
||||||
|
#include <cinttypes>
|
||||||
|
@@ -253,45 +253,34 @@ DiskInfoVec SystemInfoHardware::get_disks_info()
|
||||||
|
return disks_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
- auto lines = StrUtils::split_lines(cmd_output);
|
||||||
|
- GRegex* pattern = g_regex_new(R"(NAME=\"([^\"]*)\" TYPE=\"([^\"]*)\" SIZE=\"(\d+)\" MODEL=\"([^\"]*)\" VENDOR=\"([^\"]*)\")", G_REGEX_MULTILINE, (GRegexMatchFlags)0, NULL);
|
||||||
|
-
|
||||||
|
- for (auto& line : lines)
|
||||||
|
+ auto lines = Glib::Regex::split_simple("\n", cmd_output);
|
||||||
|
+ Glib::RefPtr<Glib::Regex> regex = Glib::Regex::create(R"(NAME=\"([^\"]*)\" TYPE=\"([^\"]*)\" SIZE=\"(\d+)\" MODEL=\"([^\"]*)\" VENDOR=\"([^\"]*)\")");
|
||||||
|
+ for (const auto& line : lines)
|
||||||
|
{
|
||||||
|
- GMatchInfo* match_info;
|
||||||
|
- if (g_regex_match(pattern, line.c_str(), (GRegexMatchFlags)0, &match_info))
|
||||||
|
+ Glib::MatchInfo match_info;
|
||||||
|
+ if (regex->match(line, match_info))
|
||||||
|
{
|
||||||
|
- const gchar* name = g_match_info_fetch(match_info, 1);
|
||||||
|
- const gchar* type = g_match_info_fetch(match_info, 2);
|
||||||
|
- const gchar* size = g_match_info_fetch(match_info, 3);
|
||||||
|
- const gchar* model = g_match_info_fetch(match_info, 4);
|
||||||
|
- const gchar* vendor = g_match_info_fetch(match_info, 5);
|
||||||
|
-
|
||||||
|
- if (strcmp(type, "disk") == 0 &&
|
||||||
|
- (name && strlen(name) > 0) &&
|
||||||
|
- (size && strlen(size) > 0) &&
|
||||||
|
- ((model && strlen(model) > 0) || (vendor && strlen(vendor) > 0)))
|
||||||
|
+ std::string name = match_info.fetch(1);
|
||||||
|
+ std::string type = match_info.fetch(2);
|
||||||
|
+ std::string size = match_info.fetch(3);
|
||||||
|
+ std::string model = match_info.fetch(4);
|
||||||
|
+ std::string vendor = match_info.fetch(5);
|
||||||
|
+
|
||||||
|
+ if (type == "disk" &&
|
||||||
|
+ !name.empty() &&
|
||||||
|
+ !size.empty() &&
|
||||||
|
+ (!model.empty() || !vendor.empty()))
|
||||||
|
{
|
||||||
|
DiskInfo disk_info;
|
||||||
|
disk_info.name = name;
|
||||||
|
- disk_info.size = atoll(size);
|
||||||
|
- disk_info.model = (strlen(model) ? model : name);
|
||||||
|
- disk_info.vendor = (strlen(vendor) ? vendor : name);
|
||||||
|
+ disk_info.size = atoll(size.c_str());
|
||||||
|
+ disk_info.model = !model.empty() ? model : name;
|
||||||
|
+ disk_info.vendor = !vendor.empty() ? vendor : name;
|
||||||
|
disks_info.push_back(disk_info);
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- if (name) g_free((gchar*)name);
|
||||||
|
- if (type) g_free((gchar*)type);
|
||||||
|
- if (size) g_free((gchar*)size);
|
||||||
|
- if (model) g_free((gchar*)model);
|
||||||
|
- if (vendor) g_free((gchar*)vendor);
|
||||||
|
-
|
||||||
|
- g_match_info_free(match_info);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- g_regex_unref(pattern);
|
||||||
|
-
|
||||||
|
return disks_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
122
0028-fix-gnome-theme-Fix-the-issue-where-switching-betwee.patch
Normal file
122
0028-fix-gnome-theme-Fix-the-issue-where-switching-betwee.patch
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
From 40d6ee6ad5f920e450160c26bad1dfe2136a529e Mon Sep 17 00:00:00 2001
|
||||||
|
From: liuxinhao <liuxinhao@kylinsec.com.cn>
|
||||||
|
Date: Fri, 27 Sep 2024 15:52:39 +0800
|
||||||
|
Subject: [PATCH] fix(gnome theme): Fix the issue where switching between light
|
||||||
|
and dark themes does not work in Gnome 41 and later versions.
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
- 修复切换深浅色主题对gnome41之后的应用失效的问题
|
||||||
|
|
||||||
|
#35120
|
||||||
|
---
|
||||||
|
plugins/appearance/theme/appearance-theme.cpp | 41 ++++++++++++++++++-
|
||||||
|
plugins/appearance/theme/appearance-theme.h | 2 +
|
||||||
|
2 files changed, 42 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/appearance/theme/appearance-theme.cpp b/plugins/appearance/theme/appearance-theme.cpp
|
||||||
|
index 383e59d..186e156 100644
|
||||||
|
--- a/plugins/appearance/theme/appearance-theme.cpp
|
||||||
|
+++ b/plugins/appearance/theme/appearance-theme.cpp
|
||||||
|
@@ -24,6 +24,16 @@
|
||||||
|
#define MOUSE_SCHEMA_KEY_CURSOR_THEME "cursor-theme"
|
||||||
|
#define MOUSE_SCHEMA_KEY_CURSOR_SIZE "cursor-size"
|
||||||
|
|
||||||
|
+#define GNOME_DESKTOP_SCHEMA_ID "org.gnome.desktop.interface"
|
||||||
|
+#define GNOME_DESKTOP_SCHEMA_KEY_COLOR_SCHEMA "color-scheme"
|
||||||
|
+enum GnomeDesktopColorScheme
|
||||||
|
+{
|
||||||
|
+ GNOME_COLOR_SCHEME_DEFAULT,
|
||||||
|
+ GNOME_COLOR_SCHEME_PREFER_DARK,
|
||||||
|
+ GNOME_COLOR_SCHEME_PREFER_LIGHT,
|
||||||
|
+ GNOME_COLOR_SCHEME_LAST
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
namespace Kiran
|
||||||
|
{
|
||||||
|
AppearanceTheme::AppearanceTheme()
|
||||||
|
@@ -40,6 +50,11 @@ AppearanceTheme::AppearanceTheme()
|
||||||
|
{
|
||||||
|
this->mouse_settings_ = Gio::Settings::create(MOUSE_SCHEMA_ID);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ if (std::find(schemas.begin(), schemas.end(), GNOME_DESKTOP_SCHEMA_ID) != schemas.end())
|
||||||
|
+ {
|
||||||
|
+ this->gnome_desktop_settigns_ = Gio::Settings::create(GNOME_DESKTOP_SCHEMA_ID);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
void AppearanceTheme::init()
|
||||||
|
@@ -54,10 +69,12 @@ void AppearanceTheme::init()
|
||||||
|
{
|
||||||
|
this->add_theme(theme);
|
||||||
|
}
|
||||||
|
- }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
this->xsettings_settings_->signal_changed().connect(sigc::mem_fun(this, &AppearanceTheme::on_xsettings_settings_changed));
|
||||||
|
this->theme_monitor_.signal_monitor_event().connect(sigc::mem_fun(this, &AppearanceTheme::on_monitor_event_changed));
|
||||||
|
+
|
||||||
|
+ this->try_sync_gnome_color_schema();
|
||||||
|
}
|
||||||
|
|
||||||
|
ThemeInfoVec AppearanceTheme::get_themes_by_type(AppearanceThemeType type)
|
||||||
|
@@ -111,6 +128,7 @@ bool AppearanceTheme::set_theme(ThemeKey key, CCErrorCode& error_code)
|
||||||
|
break;
|
||||||
|
case AppearanceThemeType::APPEARANCE_THEME_TYPE_GTK:
|
||||||
|
this->set_gtk_theme(theme->name);
|
||||||
|
+ this->try_sync_gnome_color_schema();
|
||||||
|
break;
|
||||||
|
case AppearanceThemeType::APPEARANCE_THEME_TYPE_METACITY:
|
||||||
|
this->set_metacity_theme(theme->name);
|
||||||
|
@@ -289,4 +307,25 @@ void AppearanceTheme::on_monitor_event_changed(std::shared_ptr<ThemeMonitorInfo>
|
||||||
|
this->themes_changed_.emit(key, ThemeEventType::THEME_EVENT_TYPE_CHG);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+void AppearanceTheme::try_sync_gnome_color_schema()
|
||||||
|
+{
|
||||||
|
+ if (!this->gnome_desktop_settigns_)
|
||||||
|
+ {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ auto theme_name = this->get_theme(APPEARANCE_THEME_TYPE_GTK);
|
||||||
|
+ if (theme_name == APPEARANCE_DEFAULT_DARK_GTK_THEME)
|
||||||
|
+ {
|
||||||
|
+ this->gnome_desktop_settigns_->set_enum(GNOME_DESKTOP_SCHEMA_KEY_COLOR_SCHEMA,
|
||||||
|
+ GNOME_COLOR_SCHEME_PREFER_DARK);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ this->gnome_desktop_settigns_->set_enum(GNOME_DESKTOP_SCHEMA_KEY_COLOR_SCHEMA,
|
||||||
|
+ GNOME_COLOR_SCHEME_PREFER_LIGHT);
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
} // namespace Kiran
|
||||||
|
\ No newline at end of file
|
||||||
|
diff --git a/plugins/appearance/theme/appearance-theme.h b/plugins/appearance/theme/appearance-theme.h
|
||||||
|
index 77d5149..b812128 100644
|
||||||
|
--- a/plugins/appearance/theme/appearance-theme.h
|
||||||
|
+++ b/plugins/appearance/theme/appearance-theme.h
|
||||||
|
@@ -74,6 +74,7 @@ private:
|
||||||
|
void on_xsettings_settings_changed(const Glib::ustring& key);
|
||||||
|
void on_monitor_event_changed(std::shared_ptr<ThemeMonitorInfo> monitor_info, ThemeMonitorEventType event_type);
|
||||||
|
|
||||||
|
+ void try_sync_gnome_color_schema();
|
||||||
|
private:
|
||||||
|
static AppearanceTheme* instance_;
|
||||||
|
|
||||||
|
@@ -89,5 +90,6 @@ private:
|
||||||
|
Glib::RefPtr<Gio::Settings> xsettings_settings_;
|
||||||
|
Glib::RefPtr<Gio::Settings> marco_settings_;
|
||||||
|
Glib::RefPtr<Gio::Settings> mouse_settings_;
|
||||||
|
+ Glib::RefPtr<Gio::Settings> gnome_desktop_settigns_;
|
||||||
|
};
|
||||||
|
} // namespace Kiran
|
||||||
|
\ No newline at end of file
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
From 24a3b5e00c9d57472e5b06d59248df9fcecedc87 Mon Sep 17 00:00:00 2001
|
||||||
|
From: liuxinhao <liuxinhao@kylinsec.com.cn>
|
||||||
|
Date: Tue, 8 Oct 2024 10:36:03 +0800
|
||||||
|
Subject: [PATCH] fix(gnome): Fix crash caused by the previous commit due to
|
||||||
|
the existence of a schema but the absence of a color-schema
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
- 修复上次提交导致存在schema但是不存在color-scehma导致崩溃,加强对于schema以及key的判断
|
||||||
|
---
|
||||||
|
plugins/appearance/theme/appearance-theme.cpp | 8 +++++++-
|
||||||
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/appearance/theme/appearance-theme.cpp b/plugins/appearance/theme/appearance-theme.cpp
|
||||||
|
index 186e156..9f31ca5 100644
|
||||||
|
--- a/plugins/appearance/theme/appearance-theme.cpp
|
||||||
|
+++ b/plugins/appearance/theme/appearance-theme.cpp
|
||||||
|
@@ -53,7 +53,13 @@ AppearanceTheme::AppearanceTheme()
|
||||||
|
|
||||||
|
if (std::find(schemas.begin(), schemas.end(), GNOME_DESKTOP_SCHEMA_ID) != schemas.end())
|
||||||
|
{
|
||||||
|
- this->gnome_desktop_settigns_ = Gio::Settings::create(GNOME_DESKTOP_SCHEMA_ID);
|
||||||
|
+ auto temp_settings = Gio::Settings::create(GNOME_DESKTOP_SCHEMA_ID);
|
||||||
|
+ auto keys = temp_settings->list_keys();
|
||||||
|
+ if ( std::find(keys.begin(), keys.end(), GNOME_DESKTOP_SCHEMA_KEY_COLOR_SCHEMA) != keys.end() )
|
||||||
|
+ {
|
||||||
|
+ // 确保 org.gnome.desktop.interface color-scheme 完全存在才使用
|
||||||
|
+ this->gnome_desktop_settigns_ = temp_settings;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
78
0030-fix-passwd-enriching-pw_history-error-reporing.patch
Normal file
78
0030-fix-passwd-enriching-pw_history-error-reporing.patch
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
From 6875a6f5c1c4c446eb5098f342a53913db83ac8a Mon Sep 17 00:00:00 2001
|
||||||
|
From: liuxinhao <liuxinhao@kylinsec.com.cn>
|
||||||
|
Date: Wed, 23 Oct 2024 10:34:17 +0800
|
||||||
|
Subject: [PATCH] fix(passwd): enriching pw_history error reporing
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
- 丰富pw_history的报错信息
|
||||||
|
|
||||||
|
Related #52096
|
||||||
|
---
|
||||||
|
plugins/accounts/passwd-wrapper.cpp | 41 ++++++++++++++---------------
|
||||||
|
1 file changed, 20 insertions(+), 21 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/accounts/passwd-wrapper.cpp b/plugins/accounts/passwd-wrapper.cpp
|
||||||
|
index 1a26737..e962729 100644
|
||||||
|
--- a/plugins/accounts/passwd-wrapper.cpp
|
||||||
|
+++ b/plugins/accounts/passwd-wrapper.cpp
|
||||||
|
@@ -1,14 +1,14 @@
|
||||||
|
/**
|
||||||
|
- * Copyright (c) 2020 ~ 2021 KylinSec Co., Ltd.
|
||||||
|
+ * Copyright (c) 2020 ~ 2021 KylinSec Co., Ltd.
|
||||||
|
* kiran-cc-daemon is licensed under Mulan PSL v2.
|
||||||
|
- * You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
* You may obtain a copy of Mulan PSL v2 at:
|
||||||
|
- * http://license.coscl.org.cn/MulanPSL2
|
||||||
|
- * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
- * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
- * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
- * See the Mulan PSL v2 for more details.
|
||||||
|
- *
|
||||||
|
+ * http://license.coscl.org.cn/MulanPSL2
|
||||||
|
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
+ * See the Mulan PSL v2 for more details.
|
||||||
|
+ *
|
||||||
|
* Author: tangjie02 <tangjie02@kylinos.com.cn>
|
||||||
|
*/
|
||||||
|
|
||||||
|
@@ -289,20 +289,19 @@ bool PasswdWrapper::process_passwd_output_line(const std::string &line)
|
||||||
|
break;
|
||||||
|
case PASSWD_STATE_RETYPE:
|
||||||
|
if (StrUtils::contains_oneof_substrs(lowercase_passwd_tips, std::vector<std::string>{
|
||||||
|
- "successfully",
|
||||||
|
- "failure",
|
||||||
|
- }))
|
||||||
|
+ "successfully"}))
|
||||||
|
{
|
||||||
|
- if (lowercase_passwd_tips.find("successfully") != std::string::npos)
|
||||||
|
- {
|
||||||
|
- // 密码设置成功
|
||||||
|
- this->end_passwd(true);
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- this->additional_error_message_ = this->translation_passwd_tips(line);
|
||||||
|
- this->state_ = PASSWD_STATE_ERROR;
|
||||||
|
- }
|
||||||
|
+ // 密码设置成功
|
||||||
|
+ this->end_passwd(true);
|
||||||
|
+ retval = true;
|
||||||
|
+ }
|
||||||
|
+ else if (StrUtils::contains_oneof_substrs(lowercase_passwd_tips,
|
||||||
|
+ std::vector<std::string>{"failure"}) ||
|
||||||
|
+ StrUtils::contains_allof_substrs(lowercase_passwd_tips,
|
||||||
|
+ std::vector<std::string>{"password", "already", "used"}))
|
||||||
|
+ {
|
||||||
|
+ this->additional_error_message_ = this->translation_passwd_tips(line);
|
||||||
|
+ this->state_ = PASSWD_STATE_ERROR;
|
||||||
|
retval = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
@ -1,30 +1,44 @@
|
|||||||
Name: kiran-cc-daemon
|
Name: kiran-cc-daemon
|
||||||
Version: 2.6.1
|
Version: 2.6.1
|
||||||
Release: 15%{?dist}
|
Release: 24%{?dist}
|
||||||
Summary: DBus daemon for Kiran Desktop
|
Summary: DBus daemon for Kiran Desktop
|
||||||
|
|
||||||
License: MulanPSL-2.0
|
License: MulanPSL-2.0
|
||||||
Source0: %{name}-%{version}.tar.gz
|
Source0: %{name}-%{version}.tar.gz
|
||||||
Source1: 99_unikylin-mate-SettingsDaemon-plugins.gschema.override
|
Source1: 99_unikylin-mate-SettingsDaemon-plugins.gschema.override
|
||||||
Source2: 99_unikylin-mate-Marco-global-keybindings.gschema.override
|
Source2: 99_unikylin-mate-Marco-global-keybindings.gschema.override
|
||||||
|
|
||||||
Patch0000: 0000-fix-xsettings-set-default-icon-theme-to-Spring.patch
|
Patch0000: 0000-fix-xsettings-set-default-icon-theme-to-Spring.patch
|
||||||
Patch0001: 0001-fix-xsettings-Fix-font-enlargement-on-4K-screen.patch
|
Patch0001: 0001-fix-xsettings-Fix-font-enlargement-on-4K-screen.patch
|
||||||
Patch0002: 0001-fix-media-keys-Fix-use-shortcut-key-with-shift.patch
|
Patch0002: 0001-fix-media-keys-Fix-use-shortcut-key-with-shift.patch
|
||||||
Patch0003: 0003-fix-power-tray-Fixed-an-issue-where-the-laptop-tray-.patch
|
Patch0003: 0003-fix-power-tray-Fixed-an-issue-where-the-laptop-tray-.patch
|
||||||
Patch0004: 0004-fix-keybinding-Fix-shortcut-grab-in-system-and-conf-.patch
|
Patch0004: 0004-fix-keybinding-Fix-shortcut-grab-in-system-and-conf-.patch
|
||||||
Patch0005: 0005-fix-power-Fix-dpms-force-level-effective-while-state.patch
|
Patch0005: 0005-fix-power-Fix-dpms-force-level-effective-while-state.patch
|
||||||
Patch0006: 0006-feature-appearance-Add-support-reset-default-font.patch
|
Patch0006: 0006-feature-appearance-Add-support-reset-default-font.patch
|
||||||
Patch0007: 0007-fix-keybidning-avoid-shift-to-participate-in-transla.patch
|
Patch0007: 0007-fix-keybidning-avoid-shift-to-participate-in-transla.patch
|
||||||
Patch0008: 0008-fix-appearance-Change-the-light-theme-name-to-Kiran-.patch
|
Patch0008: 0008-fix-appearance-Change-the-light-theme-name-to-Kiran-.patch
|
||||||
Patch0009: 0009-fix-power-Fix-coredump-while-log-print-in-power.patch
|
Patch0009: 0009-fix-power-Fix-coredump-while-log-print-in-power.patch
|
||||||
Patch0010: 0010-feature-CI-ref-new-CI-entry-point.patch
|
Patch0010: 0010-feature-CI-ref-new-CI-entry-point.patch
|
||||||
Patch0011: 0011-fix-audio-Fix-audio-stream-volume-retain-while-set-m.patch
|
Patch0011: 0011-fix-audio-Fix-audio-stream-volume-retain-while-set-m.patch
|
||||||
Patch0012: 0012-fix-power-Fix-battery-charging-and-discharging-time.patch
|
Patch0012: 0012-fix-power-Fix-battery-charging-and-discharging-time.patch
|
||||||
Patch0013: 0013-fix-power-Fix-sys-backlight-set-only-in-notebook-wit.patch
|
Patch0013: 0013-fix-power-Fix-sys-backlight-set-only-in-notebook-wit.patch
|
||||||
Patch0014: 0014-fix-touchpad-Fix-touchpad-control-with-the-type-psmo.patch
|
Patch0014: 0014-fix-touchpad-Fix-touchpad-control-with-the-type-psmo.patch
|
||||||
Patch0015: 0015-fix-display-Fix-handling-Dbus-method-calls-returning.patch
|
Patch0015: 0015-fix-display-Fix-handling-Dbus-method-calls-returning.patch
|
||||||
Patch0016: 0016-fix-power-Fix-poweroff-action-while-button-event-dup.patch
|
Patch0016: 0016-fix-power-Fix-poweroff-action-while-button-event-dup.patch
|
||||||
|
Patch0017: 0017-feature-display-perform-adaptive-settings-when-conne.patch
|
||||||
|
Patch0018: 0018-fix-systeminfo-fix-the-graphical-and-network-hardwar.patch
|
||||||
|
Patch0019: 0019-fix-systeminfo-Remove-the-duplicate-graphical-and-ne.patch
|
||||||
|
Patch0020: 0020-fix-media-keys-action-The-shutdown-shortcut-cannot-b.patch
|
||||||
|
Patch0021: 0021-fix-media-keys-action-fix-compile-error.patch
|
||||||
|
Patch0022: 0022-feature-media-keys-add-shutdown-keybinding.patch
|
||||||
|
Patch0023: 0023-fix-Ungrab-Synchronize-requests-to-XServer-after-UnG.patch
|
||||||
|
Patch0024: 0024-fix-systeminfo-hardware-Fix-failure-to-get-disk-info.patch
|
||||||
|
Patch0025: 0025-fix-timedate-Fix-the-ntp-service-load-order-logic-er.patch
|
||||||
|
Patch0026: 0026-fix-systeminfo-fix-std-regex-can-not-run-in-gcc-vers.patch
|
||||||
|
Patch0027: 0027-feature-systeminfo-hardware-use-glibmm-s-regex-to-re.patch
|
||||||
|
Patch0028: 0028-fix-gnome-theme-Fix-the-issue-where-switching-betwee.patch
|
||||||
|
Patch0029: 0029-fix-gnome-Fix-crash-caused-by-the-previous-commit-du.patch
|
||||||
|
Patch0030: 0030-fix-passwd-enriching-pw_history-error-reporing.patch
|
||||||
|
|
||||||
BuildRequires: cmake >= 3.2
|
BuildRequires: cmake >= 3.2
|
||||||
BuildRequires: pkgconfig(glibmm-2.4)
|
BuildRequires: pkgconfig(glibmm-2.4)
|
||||||
@ -48,19 +62,19 @@ BuildRequires: kiran-log-gtk3-devel
|
|||||||
BuildRequires: fmt-devel >= 6.2.1
|
BuildRequires: fmt-devel >= 6.2.1
|
||||||
|
|
||||||
%if "%{?kylin_major_version}" == "3" && "%{?kylin_minor_version}" == "3" && "%{?kylin_sub_minor_version}" == "6"
|
%if "%{?kylin_major_version}" == "3" && "%{?kylin_minor_version}" == "3" && "%{?kylin_sub_minor_version}" == "6"
|
||||||
BuildRequires: python36-jinja2
|
BuildRequires: python36-jinja2
|
||||||
%else
|
%else
|
||||||
BuildRequires: python%{python3_pkgversion}-jinja2
|
BuildRequires: python%{python3_pkgversion}-jinja2
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
BuildRequires: gdbus-codegen-glibmm
|
BuildRequires: gdbus-codegen-glibmm
|
||||||
BuildRequires: gtest-devel
|
BuildRequires: gtest-devel
|
||||||
BuildRequires: libnotify-devel
|
BuildRequires: libnotify-devel
|
||||||
BuildRequires: pulseaudio-libs-devel
|
BuildRequires: pulseaudio-libs-devel
|
||||||
BuildRequires: libgtop2-devel
|
BuildRequires: libgtop2-devel
|
||||||
BuildRequires: libgudev-devel
|
BuildRequires: libgudev-devel
|
||||||
BuildRequires: cryptopp-devel
|
BuildRequires: cryptopp-devel
|
||||||
BuildRequires: libwnck3-devel
|
BuildRequires: libwnck3-devel
|
||||||
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -68,61 +82,61 @@ DBus daemon for Kiran Desktop
|
|||||||
|
|
||||||
|
|
||||||
%package -n kiran-system-daemon
|
%package -n kiran-system-daemon
|
||||||
Summary: System DBus daemon for Kiran Desktop
|
Summary: System DBus daemon for Kiran Desktop
|
||||||
Requires: systemd
|
%{?systemd_requires}
|
||||||
|
|
||||||
%if 0%{?rhel} > 7 || 0%{?openEuler}
|
%if 0%{?rhel} > 7 || 0%{?openEuler}
|
||||||
Requires: dbus-daemon
|
Requires: dbus-daemon
|
||||||
%else
|
%else
|
||||||
Requires: dbus
|
Requires: dbus
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
Requires: polkit
|
Requires: polkit
|
||||||
Requires: kiran-cc-daemon-common
|
Requires: kiran-cc-daemon-common
|
||||||
Requires: util-linux
|
Requires: util-linux
|
||||||
Requires: pciutils
|
Requires: pciutils
|
||||||
Requires: libgtop2
|
Requires: libgtop2
|
||||||
Requires: libgudev
|
Requires: libgudev
|
||||||
Requires: lshw
|
Requires: lshw
|
||||||
Requires: passwd
|
Requires: passwd
|
||||||
Requires: iso-codes
|
Requires: iso-codes
|
||||||
|
|
||||||
%if "%{?kylin}" == ""
|
%if "%{?kylin}" == ""
|
||||||
Requires: openeuler-lsb
|
Requires: openeuler-lsb
|
||||||
%else
|
%else
|
||||||
Requires: %{_vendor}-lsb
|
Requires: %{_vendor}-lsb
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%description -n kiran-system-daemon
|
%description -n kiran-system-daemon
|
||||||
System DBus daemon for Kiran Desktop
|
System DBus daemon for Kiran Desktop
|
||||||
|
|
||||||
%package -n kiran-session-daemon
|
%package -n kiran-session-daemon
|
||||||
Summary: Session DBus daemon for Kiran Desktop
|
Summary: Session DBus daemon for Kiran Desktop
|
||||||
|
|
||||||
%if 0%{?rhel} > 7 || 0%{?openEuler}
|
%if 0%{?rhel} > 7 || 0%{?openEuler}
|
||||||
Requires: dbus-daemon
|
Requires: dbus-daemon
|
||||||
%else
|
%else
|
||||||
Requires: dbus
|
Requires: dbus
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
Requires: kiran-session-manager
|
Requires: kiran-session-manager
|
||||||
Requires: xorg-x11-server-utils
|
Requires: xorg-x11-server-utils
|
||||||
Requires: kiran-cc-daemon-common
|
Requires: kiran-cc-daemon-common
|
||||||
Requires: upower
|
Requires: upower
|
||||||
Requires: pulseaudio
|
Requires: pulseaudio
|
||||||
Requires: libwnck3
|
Requires: libwnck3
|
||||||
|
|
||||||
%description -n kiran-session-daemon
|
%description -n kiran-session-daemon
|
||||||
Session DBus daemon for Kiran Desktop
|
Session DBus daemon for Kiran Desktop
|
||||||
|
|
||||||
%package common
|
%package common
|
||||||
Summary: Common files for kiran-session-daemon and kiran-system-daemon
|
Summary: Common files for kiran-session-daemon and kiran-system-daemon
|
||||||
|
|
||||||
%description common
|
%description common
|
||||||
Common files for kiran-session-daemon and kiran-system-daemon
|
Common files for kiran-session-daemon and kiran-system-daemon
|
||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
Summary: Development files for communicating with control center daemon
|
Summary: Development files for communicating with control center daemon
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
Development files for communicating with control center daemon
|
Development files for communicating with control center daemon
|
||||||
@ -211,6 +225,23 @@ glib-compile-schemas /usr/share/glib-2.0/schemas &> /dev/nulls || :
|
|||||||
%{_libdir}/pkgconfig/kiran-cc-daemon.pc
|
%{_libdir}/pkgconfig/kiran-cc-daemon.pc
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Dec 08 2024 liuxinhao <liuxinhao@kylinsec.com.cn> - 2.6.1-24
|
||||||
|
- KYOS-F: Decrease the priority of override file configurations(#52881)
|
||||||
|
- KYOS-F: Marking the configuration as not to be replaced
|
||||||
|
- KYOS-B: Enrichment of error messages in pw_history module when changing passwords(#52096)
|
||||||
|
- KYOS-B: Fix crash caused by the previous commit due to the existence of a schema but the absence of a color-schema (#35120)
|
||||||
|
- KYOS-B: Fix the issue where switching between light and dark themes does not work in Gnome 41 and later versions.(#35120)
|
||||||
|
- KYSO-B: Fix the ntp service load order logic error
|
||||||
|
- KYSO-B: Fix std::regex can not run in gcc version < 4.9(#48386)
|
||||||
|
- KYSO-F: Use glibmm's regex to replace glib's regex
|
||||||
|
- KYSO-B: Fix failure to get disk information in virtual machine(#46645)
|
||||||
|
- KYOS-B: Fixed the issue where Unglab was not executed in a timely manner, causing subsequent Xclient connections to XServer to fail
|
||||||
|
- KYOS-B: fix the graphical and network hardware info no display problem.(#37289)
|
||||||
|
- KYOS-B: Remove the duplicate graphical and network hardware info.
|
||||||
|
- KYOS-B: The shutdown shortcut cannot be found.(#44337)
|
||||||
|
- KYOS-F: add shutdown keybinding
|
||||||
|
- KYOS-B: perform adaptive settings when connection status or monitor uid is changed.(#37289)
|
||||||
|
|
||||||
* Mon Apr 22 2024 meizhigang <meizhigang@kylinsec.com.cn> - 2.6.1-15
|
* Mon Apr 22 2024 meizhigang <meizhigang@kylinsec.com.cn> - 2.6.1-15
|
||||||
- KYOS-B: Fix poweroff action while button event duplicate once clicked (#28620)
|
- KYOS-B: Fix poweroff action while button event duplicate once clicked (#28620)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user