Synchronize patches, adjust spec file format alignment

This commit is contained in:
liuxinhao 2024-12-08 11:09:36 +08:00
parent 1d8ae11db2
commit e4da079226
15 changed files with 1162 additions and 55 deletions

View 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

View File

@ -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

View File

@ -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

View File

@ -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

View 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

View 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>'&lt;Control&gt;&lt;Alt&gt;Delete'</default>
<summary>Shut down</summary>
<description>Binding to shut down.</description>
</key>
--
2.27.0

View File

@ -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

View 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

View 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

View 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

View File

@ -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

View 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

View File

@ -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

View 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

View File

@ -1,30 +1,44 @@
Name: kiran-cc-daemon
Version: 2.6.1
Release: 15%{?dist}
Release: 24%{?dist}
Summary: DBus daemon for Kiran Desktop
License: MulanPSL-2.0
Source0: %{name}-%{version}.tar.gz
Source1: 99_unikylin-mate-SettingsDaemon-plugins.gschema.override
Source2: 99_unikylin-mate-Marco-global-keybindings.gschema.override
Source1: 99_unikylin-mate-SettingsDaemon-plugins.gschema.override
Source2: 99_unikylin-mate-Marco-global-keybindings.gschema.override
Patch0000: 0000-fix-xsettings-set-default-icon-theme-to-Spring.patch
Patch0001: 0001-fix-xsettings-Fix-font-enlargement-on-4K-screen.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
Patch0004: 0004-fix-keybinding-Fix-shortcut-grab-in-system-and-conf-.patch
Patch0005: 0005-fix-power-Fix-dpms-force-level-effective-while-state.patch
Patch0006: 0006-feature-appearance-Add-support-reset-default-font.patch
Patch0007: 0007-fix-keybidning-avoid-shift-to-participate-in-transla.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
Patch0010: 0010-feature-CI-ref-new-CI-entry-point.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
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
Patch0015: 0015-fix-display-Fix-handling-Dbus-method-calls-returning.patch
Patch0016: 0016-fix-power-Fix-poweroff-action-while-button-event-dup.patch
Patch0000: 0000-fix-xsettings-set-default-icon-theme-to-Spring.patch
Patch0001: 0001-fix-xsettings-Fix-font-enlargement-on-4K-screen.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
Patch0004: 0004-fix-keybinding-Fix-shortcut-grab-in-system-and-conf-.patch
Patch0005: 0005-fix-power-Fix-dpms-force-level-effective-while-state.patch
Patch0006: 0006-feature-appearance-Add-support-reset-default-font.patch
Patch0007: 0007-fix-keybidning-avoid-shift-to-participate-in-transla.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
Patch0010: 0010-feature-CI-ref-new-CI-entry-point.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
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
Patch0015: 0015-fix-display-Fix-handling-Dbus-method-calls-returning.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: pkgconfig(glibmm-2.4)
@ -48,19 +62,19 @@ BuildRequires: kiran-log-gtk3-devel
BuildRequires: fmt-devel >= 6.2.1
%if "%{?kylin_major_version}" == "3" && "%{?kylin_minor_version}" == "3" && "%{?kylin_sub_minor_version}" == "6"
BuildRequires: python36-jinja2
BuildRequires: python36-jinja2
%else
BuildRequires: python%{python3_pkgversion}-jinja2
BuildRequires: python%{python3_pkgversion}-jinja2
%endif
BuildRequires: gdbus-codegen-glibmm
BuildRequires: gtest-devel
BuildRequires: libnotify-devel
BuildRequires: pulseaudio-libs-devel
BuildRequires: libgtop2-devel
BuildRequires: libgudev-devel
BuildRequires: cryptopp-devel
BuildRequires: libwnck3-devel
BuildRequires: gtest-devel
BuildRequires: libnotify-devel
BuildRequires: pulseaudio-libs-devel
BuildRequires: libgtop2-devel
BuildRequires: libgudev-devel
BuildRequires: cryptopp-devel
BuildRequires: libwnck3-devel
%description
@ -68,61 +82,61 @@ DBus daemon for Kiran Desktop
%package -n kiran-system-daemon
Summary: System DBus daemon for Kiran Desktop
Requires: systemd
Summary: System DBus daemon for Kiran Desktop
%{?systemd_requires}
%if 0%{?rhel} > 7 || 0%{?openEuler}
Requires: dbus-daemon
Requires: dbus-daemon
%else
Requires: dbus
Requires: dbus
%endif
Requires: polkit
Requires: kiran-cc-daemon-common
Requires: util-linux
Requires: pciutils
Requires: libgtop2
Requires: libgudev
Requires: lshw
Requires: passwd
Requires: iso-codes
Requires: polkit
Requires: kiran-cc-daemon-common
Requires: util-linux
Requires: pciutils
Requires: libgtop2
Requires: libgudev
Requires: lshw
Requires: passwd
Requires: iso-codes
%if "%{?kylin}" == ""
Requires: openeuler-lsb
Requires: openeuler-lsb
%else
Requires: %{_vendor}-lsb
Requires: %{_vendor}-lsb
%endif
%description -n kiran-system-daemon
System DBus daemon for Kiran Desktop
%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}
Requires: dbus-daemon
Requires: dbus-daemon
%else
Requires: dbus
Requires: dbus
%endif
Requires: kiran-session-manager
Requires: xorg-x11-server-utils
Requires: kiran-cc-daemon-common
Requires: upower
Requires: pulseaudio
Requires: libwnck3
Requires: kiran-session-manager
Requires: xorg-x11-server-utils
Requires: kiran-cc-daemon-common
Requires: upower
Requires: pulseaudio
Requires: libwnck3
%description -n kiran-session-daemon
Session DBus daemon for Kiran Desktop
%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
Common files for kiran-session-daemon and kiran-system-daemon
%package devel
Summary: Development files for communicating with control center daemon
Summary: Development files for communicating with control center daemon
%description devel
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
%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
- KYOS-B: Fix poweroff action while button event duplicate once clicked (#28620)