diff --git a/fix-ukui-settings-daemon-SIGABRT.patch b/fix-ukui-settings-daemon-SIGABRT.patch new file mode 100644 index 0000000..93bccf9 --- /dev/null +++ b/fix-ukui-settings-daemon-SIGABRT.patch @@ -0,0 +1,43 @@ +From a5af2ea9613c8c0defc175911468ee185f2e188f Mon Sep 17 00:00:00 2001 +From: peijiankang +Date: Fri, 21 Jul 2023 15:45:25 +0800 +Subject: [PATCH] fix ukui-settings-daemon SIGABRT + +--- + daemon/main.cpp | 16 +++------------- + 1 file changed, 3 insertions(+), 13 deletions(-) + +diff --git a/daemon/main.cpp b/daemon/main.cpp +index 1db2eb6..e56fc7c 100644 +--- a/daemon/main.cpp ++++ b/daemon/main.cpp +@@ -107,23 +107,13 @@ int main (int argc, char* argv[]) + USD_LOG(LOG_INFO, "manager start error!"); + return 0; + } +-/* + QObject::connect(&app,&QCoreApplication::aboutToQuit,[&]{ + +- //PluginManager::getInstance()->managerStop(); +- //managerStop()执行时间过长,导致注销时,所有插件未完全Daectivity就已经强行关闭系统,最终导致SIGSEGV、SIGABRT ++ manager->managerStop();//注销时释放资源 ++ exit(0); + +- app.processEvents(); +- //QTimer timer; +- // Wait until the event loop starts +- QTimer::singleShot(500, [=](){ +- //make sure program exit +- exit(0); + }); +- qApp->quit(); +- exit(0); +- }); +-*/ ++ + USD_LOG(LOG_INFO, "ukui-settings-daemon started!"); + return app.exec(); + } +-- +2.33.0 + diff --git a/fix-ukui-settings-daemon-SIGSEGV.patch b/fix-ukui-settings-daemon-SIGSEGV.patch new file mode 100644 index 0000000..b473c47 --- /dev/null +++ b/fix-ukui-settings-daemon-SIGSEGV.patch @@ -0,0 +1,48 @@ +From 13693e16771b266448e084cd9cdb3a4e62a38563 Mon Sep 17 00:00:00 2001 +From: peijiankang +Date: Tue, 18 Jul 2023 09:23:41 +0800 +Subject: [PATCH] fix ukui-settings-daemon about color + +--- + daemon/main.cpp | 4 ++-- + plugins/color/color-manager.cpp | 2 ++ + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/daemon/main.cpp b/daemon/main.cpp +index 64148a7..90adce1 100644 +--- a/daemon/main.cpp ++++ b/daemon/main.cpp +@@ -106,7 +106,7 @@ int main (int argc, char* argv[]) + USD_LOG(LOG_INFO, "manager start error!"); + return 0; + } +- ++/* + QObject::connect(&app,&QCoreApplication::aboutToQuit,[&]{ + + //PluginManager::getInstance()->managerStop(); +@@ -124,7 +124,7 @@ int main (int argc, char* argv[]) + qApp->quit(); + exit(0); + }); +- ++*/ + USD_LOG(LOG_INFO, "ukui-settings-daemon started!"); + return app.exec(); + } +diff --git a/plugins/color/color-manager.cpp b/plugins/color/color-manager.cpp +index 227cfbe..b877b76 100644 +--- a/plugins/color/color-manager.cpp ++++ b/plugins/color/color-manager.cpp +@@ -84,6 +84,8 @@ ColorManager::ColorManager() + disabled_until_tmw = false; + datetime_override = NULL; + geoclue_enabled = true; ++ geoclue_client = nullptr; ++ geoclue_simple = nullptr; + smooth_enabled = true; + cached_sunrise = -1.f; + cached_sunset = -1.f; +-- +2.33.0 + diff --git a/session.patch b/session.patch new file mode 100644 index 0000000..bced2da --- /dev/null +++ b/session.patch @@ -0,0 +1,40 @@ +diff -Naur ukui-settings-daemon-3.1.2/daemon/main.cpp ukui-settings-daemon-3.1.2~/daemon/main.cpp +--- ukui-settings-daemon-3.1.2/daemon/main.cpp 2023-07-11 15:31:29.785135187 +0800 ++++ ukui-settings-daemon-3.1.2~/daemon/main.cpp 2023-07-11 15:30:40.694366917 +0800 +@@ -56,6 +56,14 @@ + QApplication::exit(15); + } + ++void handlerB(int no) ++{ ++ USD_LOG(LOG_DEBUG,"catch SIGSEGV signal, with exitcode %d",no); ++ ++// manager->managerStop(); ++ QApplication::exit(15); ++} ++ + int main (int argc, char* argv[]) + { + #if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)) +@@ -74,6 +82,7 @@ + + signal(SIGTERM, &handler); + signal(SIGABRT, &handlerA); ++ signal(SIGSEGV, &handlerB); + QApplication::setQuitOnLastWindowClosed(false); + + QTranslator translator; +@@ -108,10 +117,11 @@ + //QTimer timer; + // Wait until the event loop starts + QTimer::singleShot(500, [=](){ +- ++ //make sure program exit + exit(0); + }); +- ++ qApp->quit(); ++ exit(0); + }); + + USD_LOG(LOG_INFO, "ukui-settings-daemon started!"); diff --git a/ukui-settings-daemon.spec b/ukui-settings-daemon.spec index 979a011..e704c30 100644 --- a/ukui-settings-daemon.spec +++ b/ukui-settings-daemon.spec @@ -1,6 +1,6 @@ Name: ukui-settings-daemon Version: 3.1.2 -Release: 5 +Release: 8 Summary: daemon handling the UKUI session settings License: GPL-2.0-or-later and GPL-3.0-or-later and LGPL-2.0-or-later URL: http://www.ukui.org @@ -8,6 +8,9 @@ Source0: %{name}-%{version}.tar.gz Patch1: 0001-modify-compile-error-of-ukui-settings-daemon.patch Patch2: Fix-the-failure-of-shortcut-key-to-open-terminal.patch Patch4: ukui-settings-daemon-3.1.2-kylin-fix-coredump.patch +Patch5: session.patch +Patch6: fix-ukui-settings-daemon-SIGSEGV.patch +Patch7: fix-ukui-settings-daemon-SIGABRT.patch BuildRequires: pkgconf-pkg-config BuildRequires: intltool @@ -90,6 +93,9 @@ Summary: daemon handling the UKUI session settings (common files) %patch1 -p1 %patch2 -p1 %patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 %build %{qmake_qt5} @@ -135,7 +141,25 @@ glib-compile-schemas /usr/share/glib-2.0/schemas/ &> /dev/null || : %changelog -* Mon Jul 10 2023 huayadong - 3.1.0-5 +* Fri Jul 21 2023 peijiankang - 3.1.2-8 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:add Patch7:fix-ukui-settings-daemon-SIGABRT.patch + +* Tue Jul 18 2023 peijiankang - 3.1.2-7 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:add Patch6:fix-ukui-settings-daemon-SIGSEGV.patch + +* Tue Jul 11 2023 peijiankang - 3.1.2-6 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:add Patch5:session.patch + +* Mon Jul 10 2023 huayadong - 3.1.2-5 - Type:bugfix - ID:NA - SUG:NA