diff --git a/0001-fix-libkysdk-system-2.2.3.5-known-issue.patch b/0001-fix-libkysdk-system-2.2.3.5-known-issue.patch new file mode 100644 index 0000000000000000000000000000000000000000..0a0040df72ab05deaa20384a45e907f7c414107c --- /dev/null +++ b/0001-fix-libkysdk-system-2.2.3.5-known-issue.patch @@ -0,0 +1,811 @@ +From dfb85c5d9c8337a21cf32a9263a2338364185bd6 Mon Sep 17 00:00:00 2001 +From: peijiankang +Date: Fri, 6 Sep 2024 14:29:45 +0800 +Subject: [PATCH] fix libkysdk-system-2.2.3.5 known issue + +--- + src/kdkocr/libkyocr.cpp | 4 +- + src/systemtime/date.c | 32 +++---- + src/systemtime/libkydate.c | 172 ++++++++++++++++++++----------------- + src/systemtime/m_systime.c | 47 +++++----- + 4 files changed, 135 insertions(+), 120 deletions(-) + +diff --git a/src/kdkocr/libkyocr.cpp b/src/kdkocr/libkyocr.cpp +index b14cad8..78bc1d6 100644 +--- a/src/kdkocr/libkyocr.cpp ++++ b/src/kdkocr/libkyocr.cpp +@@ -78,7 +78,7 @@ void kdk::kdkOCR::handleImage(const std::string &imagePath) + + // tesseract识别 + tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI(); +- if (!api->Init(NULL, "chi_sim")) ++ if (!api->Init("/usr/share/tesseract/tessdata", "chi_sim")) + { + Pix *image = pixRead(imagePath.c_str()); + if (image) +@@ -244,4 +244,4 @@ vector kdk::kdkOCR::getCls(const std::string &imagePath, int nums){ + return result; + + } +-#endif +\ No newline at end of file ++#endif +diff --git a/src/systemtime/date.c b/src/systemtime/date.c +index 7c8501b..e9c6ff4 100644 +--- a/src/systemtime/date.c ++++ b/src/systemtime/date.c +@@ -33,14 +33,14 @@ u_int8_t g_DateChanged; // 发生了文件变更 + + uint verify_file(char *pFileName) + { +- return !strncmp(pFileName, "/home", strlen("/home")); ++ return !strncmp(pFileName, "/home", strlen("/home")) || !strncmp(pFileName, "/root", strlen("/root")); + } + + static void *printDate(DBusConnection *ptr) + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + + DBusConnection *conn = ptr; + DBusMessage *msg; +@@ -114,8 +114,8 @@ static void *printDate(DBusConnection *ptr) + sprintf(tmp, "%s %d,%d", tdate, now->tm_mday, (1900 + now->tm_year)%100 ); + strcpy(tmpvalue, "*year*mon*day"); + }else{ +- sprintf(tmp, gettext("%d_year%d_mon%d_day"), (now->tm_year)%100, now->tm_mon+1, now->tm_mday); +- strcpy(tmpvalue, gettext("*year*mon*day")); ++ sprintf(tmp, dgettext(GETTEXT_PACKAGE, "%d_year%d_mon%d_day"), (now->tm_year)%100, now->tm_mon+1, now->tm_mday); ++ strcpy(tmpvalue, dgettext(GETTEXT_PACKAGE, "*year*mon*day")); + } + } + +@@ -153,8 +153,8 @@ static void *printDate(DBusConnection *ptr) + strftime(tmp, sizeof(tmp), "%b %d,%Y", localtime(¤t)); + strcpy(tmpvalue, "**year**mon**day"); + }else{ +- strftime(tmp, sizeof(tmp), gettext("%Y_year%m_mon%d_day"), localtime(¤t)); +- strcpy(tmpvalue, gettext("**year**mon**day")); ++ strftime(tmp, sizeof(tmp), dgettext(GETTEXT_PACKAGE, "%Y_year%m_mon%d_day"), localtime(¤t)); ++ strcpy(tmpvalue, dgettext(GETTEXT_PACKAGE, "**year**mon**day")); + } + } + +@@ -173,14 +173,14 @@ static void *printDate(DBusConnection *ptr) + { + strcpy(tvalue, "24-hour clock"); + }else{ +- strcpy(tvalue, gettext("24-hour clock")); ++ strcpy(tvalue, dgettext(GETTEXT_PACKAGE, "24-hour clock")); + } + }else{ + if(strstr(lang, "en_US")) + { + strcpy(tvalue, "12-hour clock"); + }else{ +- strcpy(tvalue, gettext("12-hour clock")); ++ strcpy(tvalue, dgettext(GETTEXT_PACKAGE, "12-hour clock")); + } + } + +@@ -213,7 +213,7 @@ static void *print_longDate(DBusConnection *ptr) + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + + DBusConnection *conn = ptr; + DBusMessage *msg; +@@ -256,7 +256,7 @@ static void *print_longDate(DBusConnection *ptr) + strftime(tdate, sizeof(tdate), "%b", localtime(¤t)); + sprintf(tmp, "%s %d,%d", tdate, now->tm_mday, (1900 + now->tm_year)%100 ); + }else{ +- sprintf(tmp, gettext("%d_year%d_mon%d_day"), (now->tm_year)%100, now->tm_mon+1, now->tm_mday); ++ sprintf(tmp, dgettext(GETTEXT_PACKAGE, "%d_year%d_mon%d_day"), (now->tm_year)%100, now->tm_mon+1, now->tm_mday); + } + } + +@@ -266,7 +266,7 @@ static void *print_longDate(DBusConnection *ptr) + { + strftime(tmp, sizeof(tmp), "%b %d,%Y", localtime(¤t)); + }else{ +- strftime(tmp, sizeof(tmp), gettext("%Y_year%m_mon%d_day"), localtime(¤t)); ++ strftime(tmp, sizeof(tmp), dgettext(GETTEXT_PACKAGE, "%Y_year%m_mon%d_day"), localtime(¤t)); + } + } + strcpy(tvalue, tmp); +@@ -301,7 +301,7 @@ static void *print_shortDate(DBusConnection *ptr) + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + + DBusConnection *conn = ptr; + DBusMessage *msg; +@@ -436,7 +436,7 @@ static void *print_Time(DBusConnection *ptr) + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + + DBusConnection *conn = ptr; + DBusMessage *msg; +@@ -473,14 +473,14 @@ static void *print_Time(DBusConnection *ptr) + { + strcpy(tvalue, "24-hour clock"); + }else{ +- strcpy(tvalue, gettext("24-hour clock")); ++ strcpy(tvalue, dgettext(GETTEXT_PACKAGE, "24-hour clock")); + } + }else{ + if(strstr(lang, "en_US")) + { + strcpy(tvalue, "12-hour clock"); + }else{ +- strcpy(tvalue, gettext("12-hour clock")); ++ strcpy(tvalue, dgettext(GETTEXT_PACKAGE, "12-hour clock")); + } + } + if(tvalue[0] != '\0') +@@ -512,7 +512,7 @@ static void *print_Time(DBusConnection *ptr) + out: + if(str_tmp) + free(str_tmp); +- return ; ++ return NULL; + } + + void *actionDateChanged(void *ptr) +diff --git a/src/systemtime/libkydate.c b/src/systemtime/libkydate.c +index 1097130..5d1281f 100644 +--- a/src/systemtime/libkydate.c ++++ b/src/systemtime/libkydate.c +@@ -28,7 +28,7 @@ char path[100] = {0}; //用户修改后配置文件路径 + + uint verify_file(char *pFileName) + { +- return !strncmp(pFileName, "/home", strlen("/home")); ++ return !strncmp(pFileName, "/home", strlen("/home")) || !strncmp(pFileName, "/root", strlen("/root")); + } + + char *en_long_mon(int mon) +@@ -129,7 +129,7 @@ char** kdk_system_get_dateformat() + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + time_t timep; + time(&timep); + struct tm *p; +@@ -177,7 +177,7 @@ char** kdk_system_get_dateformat() + } + free(mon); + }else{ +- strftime(tmpe, sizeof(tmpe), gettext("%Y_year%m_mon%d_day"), localtime(&timep)); ++ strftime(tmpe, sizeof(tmpe), dgettext(GETTEXT_PACKAGE, "%Y_year%m_mon%d_day"), localtime(&timep)); + } + strcpy(res[index], tmpe); + +@@ -248,7 +248,7 @@ char** kdk_system_get_dateformat() + sprintf(tmp, "%s %d, %d", mon, (p->tm_mday), (1900 + p->tm_year)%100); + free(mon); + }else{ +- sprintf(tmp, gettext("%d_year%d_mon%d_day"), (1900 + p->tm_year)%100, (1+p->tm_mon), (p->tm_mday)); ++ sprintf(tmp, dgettext(GETTEXT_PACKAGE, "%d_year%d_mon%d_day"), (1900 + p->tm_year)%100, (1+p->tm_mon), (p->tm_mday)); + + } + strcpy(res[index], tmp); +@@ -548,7 +548,7 @@ char* kdk_system_get_now_dateformat() + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + char *homeDir = NULL; + char *value = NULL; + char *tvalue = malloc(sizeof(char) * 128); +@@ -596,7 +596,7 @@ char* kdk_system_get_now_dateformat() + { + strcpy(tvalue, "**year**mon**day"); + }else{ +- strcpy(tvalue, gettext("**year**mon**day")); ++ strcpy(tvalue, dgettext(GETTEXT_PACKAGE, "**year**mon**day")); + } + } + if(strstr(value, "*年*月*日")) +@@ -605,7 +605,7 @@ char* kdk_system_get_now_dateformat() + { + strcpy(tvalue, "*year*mon*day"); + }else{ +- strcpy(tvalue, gettext("*year*mon*day")); ++ strcpy(tvalue, dgettext(GETTEXT_PACKAGE, "*year*mon*day")); + } + } + fclose(fp); +@@ -618,7 +618,7 @@ char* kdk_system_get_now_timeformat() + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + char *homeDir = NULL; + char value[64] = "\0"; + char *tvalue = malloc(sizeof(char) * 128); +@@ -651,7 +651,7 @@ char* kdk_system_get_now_timeformat() + { + strcpy(tvalue, "24-hour clock"); + }else{ +- strcpy(tvalue, gettext("24-hour clock")); ++ strcpy(tvalue, dgettext(GETTEXT_PACKAGE, "24-hour clock")); + } + } + else{ +@@ -663,7 +663,7 @@ char* kdk_system_get_now_timeformat() + { + strcpy(tvalue, "24-hour clock"); + }else{ +- strcpy(tvalue, gettext("24-hour clock")); ++ strcpy(tvalue, dgettext(GETTEXT_PACKAGE, "24-hour clock")); + } + } + else{ +@@ -675,7 +675,7 @@ char* kdk_system_get_now_timeformat() + { + strcpy(tvalue, "12-hour clock"); + }else{ +- strcpy(tvalue, gettext("12-hour clock")); ++ strcpy(tvalue, dgettext(GETTEXT_PACKAGE, "12-hour clock")); + } + } + else if(strstr(value, "24")) +@@ -684,7 +684,7 @@ char* kdk_system_get_now_timeformat() + { + strcpy(tvalue, "24-hour clock"); + }else{ +- strcpy(tvalue, gettext("24-hour clock")); ++ strcpy(tvalue, dgettext(GETTEXT_PACKAGE, "24-hour clock")); + } + } + fclose(fp); +@@ -698,7 +698,7 @@ kdk_dateinfo *kdk_system_tran_dateformat(struct tm *ptr) + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + char *homeDir = NULL; + char *value = (char *)malloc(sizeof(char) * 64); + char *tvalue = (char *)malloc(sizeof(char) * 64); +@@ -793,7 +793,7 @@ kdk_dateinfo *kdk_system_tran_dateformat(struct tm *ptr) + sprintf(tmp, "%s %d, %d", mon, ptr->tm_mday, ptr_year%100); + free(mon); + }else{ +- sprintf(tmp, gettext("%d_year%d_mon%d_day"), ptr_year%100, ptr_mon, ptr->tm_mday); ++ sprintf(tmp, dgettext(GETTEXT_PACKAGE, "%d_year%d_mon%d_day"), ptr_year%100, ptr_mon, ptr->tm_mday); + } + } + else if(strstr(value, "**-**-**")) +@@ -836,7 +836,7 @@ kdk_dateinfo *kdk_system_tran_dateformat(struct tm *ptr) + } + free(mon); + }else{ +- strftime(tmp, sizeof(tmp), gettext("%Y_year%m_mon%d_day"), ptr); ++ strftime(tmp, sizeof(tmp), dgettext(GETTEXT_PACKAGE, "%Y_year%m_mon%d_day"), ptr); + } + } + +@@ -881,12 +881,12 @@ kdk_dateinfo *kdk_system_tran_dateformat(struct tm *ptr) + }else{ + if (ap_time == 0) + { +- strftime(tmpe, sizeof(tmpe), gettext("am%I:%M"), ptr); +- strftime(stmp, sizeof(stmp), gettext("am%I:%M:%S"), ptr); ++ strftime(tmpe, sizeof(tmpe), dgettext(GETTEXT_PACKAGE, "am%I:%M"), ptr); ++ strftime(stmp, sizeof(stmp), dgettext(GETTEXT_PACKAGE, "am%I:%M:%S"), ptr); + } + else{ +- strftime(tmpe, sizeof(tmpe), gettext("pm%I:%M"), ptr); +- strftime(stmp, sizeof(stmp), gettext("pm%I:%M:%S"), ptr); ++ strftime(tmpe, sizeof(tmpe), dgettext(GETTEXT_PACKAGE, "pm%I:%M"), ptr); ++ strftime(stmp, sizeof(stmp), dgettext(GETTEXT_PACKAGE, "pm%I:%M:%S"), ptr); + } + } + +@@ -911,7 +911,7 @@ char* kdk_system_nowtime() + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + char tmp[30]; + char *homeDir = NULL; + struct tm *now; +@@ -993,9 +993,9 @@ char* kdk_system_nowtime() + }else{ + if (ap_time == 0) + { +- strftime(tmp, sizeof(tmp), gettext("am%I:%M"), localtime(¤t)); ++ strftime(tmp, sizeof(tmp), dgettext(GETTEXT_PACKAGE, "am%I:%M"), localtime(¤t)); + }else{ +- strftime(tmp, sizeof(tmp), gettext("pm%I:%M"), localtime(¤t)); ++ strftime(tmp, sizeof(tmp), dgettext(GETTEXT_PACKAGE, "pm%I:%M"), localtime(¤t)); + } + } + } +@@ -1009,7 +1009,7 @@ char* kdk_system_nowdate() + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + char tmp[40]; + char *homeDir = NULL; + struct tm *p; +@@ -1131,7 +1131,7 @@ char* kdk_system_nowdate() + } + free(mon); + }else{ +- strftime(tmp, sizeof(tmp), gettext("%Y_year%m_mon%d_day"), localtime(¤t)); ++ strftime(tmp, sizeof(tmp), dgettext(GETTEXT_PACKAGE, "%Y_year%m_mon%d_day"), localtime(¤t)); + } + } + else if (strstr(tvalue, "*年*月*日")) +@@ -1142,7 +1142,7 @@ char* kdk_system_nowdate() + sprintf(tmp, "%s %d, %d", mon, (p->tm_mday), (1900 + p->tm_year)%100); + free(mon); + }else{ +- sprintf(tmp, gettext("%d_year%d_mon%d_day"), (1900 + p->tm_year)%100, (1+p->tm_mon), (p->tm_mday)); ++ sprintf(tmp, dgettext(GETTEXT_PACKAGE, "%d_year%d_mon%d_day"), (1900 + p->tm_year)%100, (1+p->tm_mon), (p->tm_mday)); + } + } + +@@ -1156,7 +1156,7 @@ char* kdk_system_shortweek() + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + char *tmpe = malloc(sizeof(char) * 64); + char *lang = getenv("LANG"); + struct tm *p; +@@ -1195,25 +1195,25 @@ char* kdk_system_shortweek() + switch (p->tm_wday) + { + case 0: +- strcpy(tmpe, gettext("_Sun")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Sun")); + break; + case 1: +- strcpy(tmpe, gettext("_Mon")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Mon")); + break; + case 2: +- strcpy(tmpe, gettext("_Tue")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Tue")); + break; + case 3: +- strcpy(tmpe, gettext("_Wed")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Wed")); + break; + case 4: +- strcpy(tmpe, gettext("_Thu")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Thu")); + break; + case 5: +- strcpy(tmpe, gettext("_Fri")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Fri")); + break; + case 6: +- strcpy(tmpe, gettext("_Sat")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Sat")); + break; + default: + break; +@@ -1226,7 +1226,7 @@ char* kdk_system_longweek() + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + char *tmpe = (char *)malloc(sizeof(char) * 256); + char *lang = getenv("LANG"); + struct tm *p; +@@ -1265,25 +1265,25 @@ char* kdk_system_longweek() + switch (p->tm_wday) + { + case 0: +- strcpy(tmpe, gettext("_Sunday")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Sunday")); + break; + case 1: +- strcpy(tmpe, gettext("_Monday")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Monday")); + break; + case 2: +- strcpy(tmpe, gettext("_Tuesday")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Tuesday")); + break; + case 3: +- strcpy(tmpe, gettext("_Wednesday")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Wednesday")); + break; + case 4: +- strcpy(tmpe, gettext("_Thursday")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Thursday")); + break; + case 5: +- strcpy(tmpe, gettext("_Friday")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Friday")); + break; + case 6: +- strcpy(tmpe, gettext("_Saturday")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Saturday")); + break; + default: + break; +@@ -1294,11 +1294,16 @@ char* kdk_system_longweek() + + char* kdk_system_loginweek() + { +- setlocale (LC_ALL, ""); ++ char *lang = getenv("LANG"); ++ if(strstr(lang, "zh")){ ++ setlocale (LC_ALL, "zh_CN.UTF-8"); ++ }else{ ++ setlocale (LC_ALL, ""); ++ } ++ + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + char *tmpe = (char *)malloc(sizeof(char) * 256); +- char *lang = getenv("LANG"); + struct tm *p; + time_t current; + time(¤t); +@@ -1335,25 +1340,25 @@ char* kdk_system_loginweek() + switch (p->tm_wday) + { + case 0: +- strcpy(tmpe, gettext("_Sunday")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Sunday")); + break; + case 1: +- strcpy(tmpe, gettext("_Monday")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Monday")); + break; + case 2: +- strcpy(tmpe, gettext("_Tuesday")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Tuesday")); + break; + case 3: +- strcpy(tmpe, gettext("_Wednesday")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Wednesday")); + break; + case 4: +- strcpy(tmpe, gettext("_Thursday")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Thursday")); + break; + case 5: +- strcpy(tmpe, gettext("_Friday")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Friday")); + break; + case 6: +- strcpy(tmpe, gettext("_Saturday")); ++ strcpy(tmpe, dgettext(GETTEXT_PACKAGE, "_Saturday")); + break; + default: + break; +@@ -1366,7 +1371,7 @@ char* kdk_system_second() + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + char tmp[64]; + char *homeDir = NULL; + struct tm *now; +@@ -1443,9 +1448,9 @@ char* kdk_system_second() + }else{ + if(ap_time == 0) + { +- strftime(tmp, sizeof(tmp), gettext("am%I:%M:%S"), localtime(¤t)); ++ strftime(tmp, sizeof(tmp), dgettext(GETTEXT_PACKAGE, "am%I:%M:%S"), localtime(¤t)); + }else{ +- strftime(tmp, sizeof(tmp), gettext("pm%I:%M:%S"), localtime(¤t)); ++ strftime(tmp, sizeof(tmp), dgettext(GETTEXT_PACKAGE, "pm%I:%M:%S"), localtime(¤t)); + } + } + } +@@ -1460,7 +1465,7 @@ kdk_logn_dateinfo *kdk_system_logn_dateinfo(char *user) + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + char value[64] = "\0"; + char *tvalue = NULL; + char tmp[64]; +@@ -1499,9 +1504,9 @@ kdk_logn_dateinfo *kdk_system_logn_dateinfo(char *user) + }else{ + if(now->tm_hour >= 12) + { +- strftime(tmp, sizeof(tmp), gettext("pm%I:%M"), localtime(¤t)); ++ strftime(tmp, sizeof(tmp), dgettext(GETTEXT_PACKAGE, "pm%I:%M"), localtime(¤t)); + }else{ +- strftime(tmp, sizeof(tmp), gettext("am%I:%M"), localtime(¤t)); ++ strftime(tmp, sizeof(tmp), dgettext(GETTEXT_PACKAGE, "am%I:%M"), localtime(¤t)); + } + } + } +@@ -1578,7 +1583,7 @@ kdk_logn_dateinfo *kdk_system_logn_dateinfo(char *user) + sprintf(tmpe, "%s %d, %d", mon, now->tm_mday, (1900 + now->tm_year)); + free(mon); + }else{ +- strftime(tmpe, sizeof(tmpe), gettext("%Y_year%m_mon%d_day"), localtime(¤t)); ++ strftime(tmpe, sizeof(tmpe), dgettext(GETTEXT_PACKAGE, "%Y_year%m_mon%d_day"), localtime(¤t)); + } + } + else if (strstr(value, "*年*月*日")) +@@ -1589,7 +1594,7 @@ kdk_logn_dateinfo *kdk_system_logn_dateinfo(char *user) + sprintf(tmpe, "%s %d, %d", mon, now->tm_mday, (1900 + now->tm_year)%100); + free(mon); + }else{ +- sprintf(tmpe, gettext("%d_year%d_mon%d_day"), (1900 + now->tm_year)%100, (1+now->tm_mon), (now->tm_mday)); ++ sprintf(tmpe, dgettext(GETTEXT_PACKAGE, "%d_year%d_mon%d_day"), (1900 + now->tm_year)%100, (1+now->tm_mon), (now->tm_mday)); + } + } + strcpy(res->date, tmpe); +@@ -1606,7 +1611,7 @@ char* kdk_system_gjx_time(char *date) + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + char tmp[64]; + char dtmp[64]; + strcpy(dtmp, date); +@@ -1753,7 +1758,7 @@ char* kdk_system_gjx_time(char *date) + { + sprintf(tmp, "%s %s, %s", buff[1], days, years); + }else{ +- sprintf(tmp, gettext("%s_year%s_mon%s_day"), years, mons, days); ++ sprintf(tmp, dgettext(GETTEXT_PACKAGE, "%s_year%s_mon%s_day"), years, mons, days); + } + } + else if (strstr(tvalue, "*年*月*日")) +@@ -1762,7 +1767,7 @@ char* kdk_system_gjx_time(char *date) + { + sprintf(tmp, "%s %d, %d", buff[1], day, year%100); + }else{ +- sprintf(tmp, gettext("%d_year%d_mon%d_day"), year%100, mon, day); ++ sprintf(tmp, dgettext(GETTEXT_PACKAGE, "%d_year%d_mon%d_day"), year%100, mon, day); + } + } + strcpy(value, tmp); +@@ -2039,7 +2044,7 @@ char* kdk_system_get_longformat_date() + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + char tmp[64]; + char *homeDir = NULL; + struct tm *p; +@@ -2105,7 +2110,7 @@ char* kdk_system_get_longformat_date() + } + free(mon); + }else{ +- strftime(tmp, sizeof(tmp), gettext("%Y_year%m_mon%d_day"), localtime(¤t)); ++ strftime(tmp, sizeof(tmp), dgettext(GETTEXT_PACKAGE, "%Y_year%m_mon%d_day"), localtime(¤t)); + } + } + else if (strstr(tvalue, "yy M d")) +@@ -2116,7 +2121,7 @@ char* kdk_system_get_longformat_date() + sprintf(tmp, "%s %d, %d", mon, (p->tm_mday), (1900 + p->tm_year)%100); + free(mon); + }else{ +- sprintf(tmp, gettext("%d_year%d_mon%d_day"), (1900 + p->tm_year)%100, (1+p->tm_mon), (p->tm_mday)); ++ sprintf(tmp, dgettext(GETTEXT_PACKAGE, "%d_year%d_mon%d_day"), (1900 + p->tm_year)%100, (1+p->tm_mon), (p->tm_mday)); + } + } + +@@ -2255,7 +2260,7 @@ char* kdk_system_get_longformat() + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + char *homeDir = NULL; + char *value = NULL; + char *tvalue = malloc(sizeof(char) * 32); +@@ -2380,7 +2385,7 @@ char* kdk_system_longformat_transform(struct tm *ptr) + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + char *homeDir = NULL; + char value[32] = "\0"; + char *tvalue = (char *)malloc(sizeof(char) * 64); +@@ -2441,7 +2446,7 @@ char* kdk_system_longformat_transform(struct tm *ptr) + sprintf(tmp, "%s %d, %d", mon, ptr->tm_mday, ptr_year%100); + free(mon); + }else{ +- sprintf(tmp, gettext("%d_year%d_mon%d_day"), ptr_year%100, ptr_mon, ptr->tm_mday); ++ sprintf(tmp, dgettext(GETTEXT_PACKAGE, "%d_year%d_mon%d_day"), ptr_year%100, ptr_mon, ptr->tm_mday); + } + } + else if(strstr(value, "yyyy MM dd")) +@@ -2457,7 +2462,7 @@ char* kdk_system_longformat_transform(struct tm *ptr) + } + free(mon); + }else{ +- strftime(tmp, sizeof(tmp), gettext("%Y_year%m_mon%d_day"), ptr); ++ strftime(tmp, sizeof(tmp), dgettext(GETTEXT_PACKAGE, "%Y_year%m_mon%d_day"), ptr); + } + } + +@@ -2594,9 +2599,15 @@ char* kdk_system_shortformat_transform(struct tm *ptr) + + kdk_logn_dateinfo *kdk_system_login_lock_dateinfo(char *user) + { +- setlocale (LC_ALL, ""); ++ char *lang = getenv("LANG"); ++ if(strstr(lang, "zh")){ ++ setlocale (LC_ALL, "zh_CN.UTF-8"); ++ }else{ ++ setlocale (LC_ALL, ""); ++ } ++ + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + char value[64] = "\0"; + char *tvalue = NULL; + char tmp[64] = "\0"; +@@ -2605,7 +2616,6 @@ kdk_logn_dateinfo *kdk_system_login_lock_dateinfo(char *user) + time_t current; + time(¤t); + now = localtime(¤t); +- char *lang = getenv("LANG"); + sprintf(path, "/var/lib/lightdm-data/%s/dateformat.conf", user); + GKeyFile *config = g_key_file_new(); + kdk_logn_dateinfo *res = (kdk_dateinfo *)calloc(1, sizeof(kdk_dateinfo)); +@@ -2658,9 +2668,9 @@ kdk_logn_dateinfo *kdk_system_login_lock_dateinfo(char *user) + }else{ + if(now->tm_hour >= 12) + { +- strftime(tmp, sizeof(tmp), gettext("pm%I:%M"), localtime(¤t)); ++ strftime(tmp, sizeof(tmp), dgettext(GETTEXT_PACKAGE, "pm%I:%M"), localtime(¤t)); + }else{ +- strftime(tmp, sizeof(tmp), gettext("am%I:%M"), localtime(¤t)); ++ strftime(tmp, sizeof(tmp), dgettext(GETTEXT_PACKAGE, "am%I:%M"), localtime(¤t)); + } + } + } +@@ -2690,7 +2700,7 @@ kdk_logn_dateinfo *kdk_system_login_lock_dateinfo(char *user) + sprintf(tmpe, "%s %d, %d", mon, now->tm_mday, (1900 + now->tm_year)); + free(mon); + }else{ +- strftime(tmpe, sizeof(tmpe), gettext("%Y_year%m_mon%d_day"), localtime(¤t)); ++ strftime(tmpe, sizeof(tmpe), dgettext(GETTEXT_PACKAGE, "%Y_year%m_mon%d_day"), localtime(¤t)); + } + } + else if (strstr(value, "yy M d")) +@@ -2701,7 +2711,7 @@ kdk_logn_dateinfo *kdk_system_login_lock_dateinfo(char *user) + sprintf(tmpe, "%s %d, %d", mon, now->tm_mday, (1900 + now->tm_year)%100); + free(mon); + }else{ +- sprintf(tmpe, gettext("%d_year%d_mon%d_day"), (1900 + now->tm_year)%100, (1+now->tm_mon), (now->tm_mday)); ++ sprintf(tmpe, dgettext(GETTEXT_PACKAGE, "%d_year%d_mon%d_day"), (1900 + now->tm_year)%100, (1+now->tm_mon), (now->tm_mday)); + } + } + strcpy(res->date, tmpe); +@@ -2726,7 +2736,7 @@ kdk_timeinfo *kdk_system_timeformat_transform(struct tm *ptr) + { + setlocale (LC_ALL, ""); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); +- textdomain (GETTEXT_PACKAGE); ++ //textdomain (GETTEXT_PACKAGE); + char *homeDir = NULL; + char *tvalue = (char *)malloc(sizeof(char) * 64); + char tmp[64]; +@@ -2810,12 +2820,12 @@ kdk_timeinfo *kdk_system_timeformat_transform(struct tm *ptr) + }else{ + if (ap_time == 0) + { +- strftime(tmpe, sizeof(tmpe), gettext("am%I:%M"), ptr); +- strftime(stmp, sizeof(stmp), gettext("am%I:%M:%S"), ptr); ++ strftime(tmpe, sizeof(tmpe), dgettext(GETTEXT_PACKAGE, "am%I:%M"), ptr); ++ strftime(stmp, sizeof(stmp), dgettext(GETTEXT_PACKAGE, "am%I:%M:%S"), ptr); + } + else{ +- strftime(tmpe, sizeof(tmpe), gettext("pm%I:%M"), ptr); +- strftime(stmp, sizeof(stmp), gettext("pm%I:%M:%S"), ptr); ++ strftime(tmpe, sizeof(tmpe), dgettext(GETTEXT_PACKAGE, "pm%I:%M"), ptr); ++ strftime(stmp, sizeof(stmp), dgettext(GETTEXT_PACKAGE, "pm%I:%M:%S"), ptr); + } + } + +diff --git a/src/systemtime/m_systime.c b/src/systemtime/m_systime.c +index 719268c..2eefdd7 100644 +--- a/src/systemtime/m_systime.c ++++ b/src/systemtime/m_systime.c +@@ -6,6 +6,7 @@ + #include "m_systime.h" + #include + #include ++#include + #include + #include + #include +@@ -203,34 +204,38 @@ void *actionTimeChanged(void *ptr) + } + // 20020721新增时区变化监听 + int monitorSystemTimeZoneChange(){ ++ char buf[4096]; ++ int fd = inotify_init(); + +- char buf[BUFSIZ]; +- int fd = inotify_init(); +- buf[sizeof(buf) - 1] = 0; ++ if (fd < 0) { ++ return -1; ++ } + +- struct inotify_event *event; ++ int wid = inotify_add_watch(fd, "/etc", IN_MOVED_TO); + +- if (fd < 0) +- { ++ if (wid < 0) { ++ close(fd); + return -1; +- } ++ } + +- int ftimezone = inotify_add_watch(fd,"/etc/timezone",IN_DELETE_SELF); ++ while (1) { ++ int ret= read(fd, buf, sizeof buf); ++ int off = 0; ++ ++ while (ret > 0) { ++ struct inotify_event *e = buf + off; ++ ++ if (e->len > 9 && !e->name[9] && !strncmp(e->name, "localtime", 9)) { ++ close(fd); ++ return 1; ++ } ++ off += 16 + e->len; ++ ret -= 16 + e->len; ++ } ++ } + +- if (ftimezone < 0) +- { +- close(fd); +- return -1; +- } +- int ret = read(fd, buf, sizeof(buf) - 1); + close(fd); +- event = (struct inotify_event *)&buf[0]; +- if (ret) +- { +- fprintf(stdout, "%s --- %s\n", event->name, "IN_DELETE_SELF"); +- return 1; +- } +- return 0; ++ return 1; + } + // 20020721新增时区变化监听 + void *actionTimeZoneChanged(void *ptr) +-- +2.25.1 + diff --git a/libkysdk-system.spec b/libkysdk-system.spec index 1dfc136f3d29ad3f210dbb4da5916bb70954cbd7..92d2f4f9884122949e3f040acf8ab5436bada12b 100644 --- a/libkysdk-system.spec +++ b/libkysdk-system.spec @@ -1,12 +1,13 @@ Name: libkysdk-system Version: 2.2.3.5 -Release: 3 +Release: 4 Summary: Kylin Software Development Kit - System Layer Kit License: GPL-2+ URL: http://www.ukui.org Source0: %{name}-%{version}.tar.gz Patch01: 0001-Removing-the-strlcpy-function-to-fix-the-compilation.patch +Patch02: 0001-fix-libkysdk-system-2.2.3.5-known-issue.patch BuildRequires: cmake BuildRequires: glibc-devel @@ -555,6 +556,12 @@ fi %{_prefix}/lib/kysdk/kysdk-system/logrotate.cron %changelog +* Fri Feb 21 2025 peijiankang - 2.2.3.5-4 +- Type:update +- ID:NA +- SUG:NA +- DESC: add 0001-fix-libkysdk-system-2.2.3.5-known-issue.patch + * Tue Nov 26 2024 Funda Wang - 2.2.3.5-3 - adopt to new cmake macro - use find_lang to deal with translations