From 5bfa29543af3e19e1228ba0ffe460fd1cf69bebc Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 27 Mar 2026 13:59:19 +0600 Subject: [PATCH 01/10] Fixed all users deletion --- source/ubinstall-gtk-users.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/source/ubinstall-gtk-users.c b/source/ubinstall-gtk-users.c index 496033a..0799641 100644 --- a/source/ubinstall-gtk-users.c +++ b/source/ubinstall-gtk-users.c @@ -22,6 +22,18 @@ int yon_users_save(main_window *widgets){ GList *users = gtk_container_get_children(GTK_CONTAINER(widgets->UserAddBox)); GList *iter; if (!users){ + { + int size = 0; + config_str users = yon_config_get_all_by_key(USERADD_parameter_search,&size); + for(int i=0;inext){ @@ -42,6 +54,7 @@ int yon_users_save(main_window *widgets){ config_str users = yon_config_get_all_keys_by_key(USERADD_parameter_search,&users_size); yon_char_parsed_add_or_create_if_exists(users,&users_size,root_password_parameter); yon_char_parsed_add_or_create_if_exists(users,&users_size,autologin_parameter); + yon_char_parsed_add_or_create_if_exists(users,&users_size,DEFAULTUSER_parameter); yon_debug_output("%s\n",yon_config_save_list_simple(users,users_size,main_config.config_load_path)); } return 1; -- 2.35.1 From 98e95aa4b81bc4a18f74db4bc1b61ea1a360a57b Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 27 Mar 2026 14:15:23 +0600 Subject: [PATCH 02/10] Fixed root only loading --- source/ubinstall-gtk-users.c | 44 ++++++++++++++++++++---------------- source/ubinstall-gtk.h | 4 +++- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/source/ubinstall-gtk-users.c b/source/ubinstall-gtk-users.c index 0799641..abd73e9 100644 --- a/source/ubinstall-gtk-users.c +++ b/source/ubinstall-gtk-users.c @@ -187,13 +187,16 @@ void yon_user_init(main_window *widgets){ gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->UserRootPasswordCombo),NULL,SET_PASSWORD_LABEL); yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(widgets->UserRootPasswordEntry)); char *root_password = config(root_password_parameter); + if (yon_char_is_empty(root_password)){ + root_password = config(DEFAULTROOTPASSWD_system_parameter); + } char *autologin = config(autologin_parameter); - if (!yon_char_is_empty(root_password)&&!yon_config_check_default(root_password_parameter)){ + if (!yon_char_is_empty(root_password)&&strcmp(root_password,config(DEFAULTROOTPASSWD_system_parameter))){ gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->UserRootPasswordCombo),1); gtk_entry_set_text(GTK_ENTRY(widgets->UserRootPasswordEntry),root_password); } else { gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->UserRootPasswordCombo),0); - gtk_entry_set_text(GTK_ENTRY(widgets->UserRootPasswordEntry),""); + gtk_entry_set_text(GTK_ENTRY(widgets->UserRootPasswordEntry),root_password); } if (!yon_char_is_empty(autologin)&&(!strcmp(autologin,"yes")||!strcmp(autologin,"enable"))){ gtk_switch_set_active(GTK_SWITCH(widgets->UserAutologinSwitch),1); @@ -211,24 +214,27 @@ void yon_user_init(main_window *widgets){ int users_size; config_str users = yon_config_get_all_by_key(USERADD_parameter_search,&users_size); if (!users_size){ - char *default_user = config(DEFAULTUSER_parameter); - if (yon_char_is_empty(default_user)){ - default_user = config(DEFAULTUSER_system_parameter); - } - yon_user_struct *user = yon_user_struct_new(); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),1); - g_signal_connect(G_OBJECT(user->AdminCheck),"clicked",G_CALLBACK(yon_user_admin_check),widgets); - g_object_set_data(G_OBJECT(user->MainBox),"widgets",widgets); - gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0); - gtk_entry_set_text(GTK_ENTRY(user->UsernameEntry),ADMINISTRATOR_LABEL); - if (!yon_char_is_empty(default_user)) - gtk_entry_set_text(GTK_ENTRY(user->LoginEntry),default_user); - else { - gtk_entry_set_text(GTK_ENTRY(user->LoginEntry),"superadmin"); + char *def_usr = config(DEFAULTUSER_parameter); + if (!yon_char_is_empty(def_usr)||(!yon_char_is_empty(def_usr)&&strcmp(def_usr,"root"))){ + char *default_user = config(DEFAULTUSER_parameter); + if (yon_char_is_empty(default_user)){ + default_user = config(DEFAULTUSER_system_parameter); + } + yon_user_struct *user = yon_user_struct_new(); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),1); + g_signal_connect(G_OBJECT(user->AdminCheck),"clicked",G_CALLBACK(yon_user_admin_check),widgets); + g_object_set_data(G_OBJECT(user->MainBox),"widgets",widgets); + gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0); + gtk_entry_set_text(GTK_ENTRY(user->UsernameEntry),ADMINISTRATOR_LABEL); + if (!yon_char_is_empty(default_user)) + gtk_entry_set_text(GTK_ENTRY(user->LoginEntry),default_user); + else { + gtk_entry_set_text(GTK_ENTRY(user->LoginEntry),"superadmin"); + } + if (!yon_char_is_empty(default_passwd)) + gtk_entry_set_text(GTK_ENTRY(user->PasswordEntry),default_passwd); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),1); } - if (!yon_char_is_empty(default_passwd)) - gtk_entry_set_text(GTK_ENTRY(user->PasswordEntry),default_passwd); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),1); } for (int i=0;i Date: Fri, 27 Mar 2026 14:31:19 +0600 Subject: [PATCH 03/10] Fixed default user loading --- source/ubinstall-gtk-users.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ubinstall-gtk-users.c b/source/ubinstall-gtk-users.c index abd73e9..2ccc42c 100644 --- a/source/ubinstall-gtk-users.c +++ b/source/ubinstall-gtk-users.c @@ -215,7 +215,7 @@ void yon_user_init(main_window *widgets){ config_str users = yon_config_get_all_by_key(USERADD_parameter_search,&users_size); if (!users_size){ char *def_usr = config(DEFAULTUSER_parameter); - if (!yon_char_is_empty(def_usr)||(!yon_char_is_empty(def_usr)&&strcmp(def_usr,"root"))){ + if (yon_char_is_empty(def_usr)||(!yon_char_is_empty(def_usr)&&strcmp(def_usr,"root"))){ char *default_user = config(DEFAULTUSER_parameter); if (yon_char_is_empty(default_user)){ default_user = config(DEFAULTUSER_system_parameter); -- 2.35.1 From 06b41bfe8a1bcd9ea024a02e7161dceeeaf3cf84 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 27 Mar 2026 15:22:47 +0600 Subject: [PATCH 04/10] Fixed package installation for groups loading --- source/ubinstall-gtk-packages.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source/ubinstall-gtk-packages.c b/source/ubinstall-gtk-packages.c index e0f74a0..17a7e3f 100644 --- a/source/ubinstall-gtk-packages.c +++ b/source/ubinstall-gtk-packages.c @@ -16,16 +16,16 @@ int yon_packages_tab_save(main_window *widgets){ yon_config_append_elements(packages_parameter,package,","); }else if (selectable&&!status){ - yon_config_remove_elements(packages_parameter,package,","); + yon_config_remove_elements_all(packages_parameter,package,","); } else { for (int valid3 = gtk_tree_model_iter_children(GTK_TREE_MODEL(widgets->PackagesList),&packiter,&subiter);valid3;valid3 = gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->PackagesList),&packiter)){ - gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&packiter,0,&status,1,&package,3,&selectable,-1); + gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&packiter,0,&status,1,&package,3,&selectable,4,&sensitive,-1); if (status){ if (sensitive){ yon_config_append_elements(packages_parameter,package,","); } } else { - yon_config_remove_elements(packages_parameter,package,","); + yon_config_remove_elements_all(packages_parameter,package,","); } } } @@ -106,7 +106,7 @@ void yon_packages_tab_init(main_window *widgets){ GtkTreeIter package_iter; gtk_tree_store_append(widgets->PackagesList,&package_iter,subcategory_iter); char *full_string = yon_char_unite("",name_render,"\n",_(parsed[3]),NULL); - gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_element(config_packages,parsed[2],",")||yon_char_check_element(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,!yon_char_check_element(modules,parsed[2],","),5,parsed[2],-1); + gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_elements(config_packages,parsed[2],",")||yon_char_check_elements(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,!yon_char_check_elements(modules,parsed[2],","),5,parsed[2],-1); free(full_string); gtk_tree_iter_free(subcategory_iter); } else { @@ -116,14 +116,14 @@ void yon_packages_tab_init(main_window *widgets){ gtk_tree_store_set(widgets->PackagesList,&subcatiter,1,parsed[1],2,_(parsed[3]),3,0,-1); gtk_tree_store_append(widgets->PackagesList,&package_iter,&subcatiter); char *full_string = yon_char_unite("",name_render,"\n",_(parsed[3]),NULL); - gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_element(config_packages,parsed[2],",")||yon_char_check_element(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,!yon_char_check_element(modules,parsed[2],","),5,parsed[2],-1); + gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_elements(config_packages,parsed[2],",")||yon_char_check_elements(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,!yon_char_check_elements(modules,parsed[2],","),5,parsed[2],-1); free(full_string); } } else { GtkTreeIter package_iter; gtk_tree_store_append(widgets->PackagesList,&package_iter,category_iter); char *full_string = yon_char_unite("",name_render,"\n",_(parsed[3]),NULL); - gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_element(config_packages,parsed[2],",")||yon_char_check_element(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,!yon_char_check_element(modules,parsed[2],","),5,parsed[2],-1); + gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_elements(config_packages,parsed[2],",")||yon_char_check_elements(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,!yon_char_check_elements(modules,parsed[2],","),5,parsed[2],-1); free(full_string); } gtk_tree_iter_free(category_iter); @@ -138,7 +138,7 @@ void yon_packages_tab_init(main_window *widgets){ gtk_tree_store_set(widgets->PackagesList,&subcategory_iter,1,parsed[1],2,_(parsed[1]),3,0,-1); gtk_tree_store_append(widgets->PackagesList,&package_iter,&subcategory_iter); char *full_string = yon_char_unite("",name_render,"\n",_(parsed[3]),NULL); - gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_element(config_packages,parsed[2],",")||yon_char_check_element(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,!yon_char_check_element(modules,parsed[2],","),-1); + gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_elements(config_packages,parsed[2],",")||yon_char_check_elements(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,!yon_char_check_elements(modules,parsed[2],","),-1); free(full_string); } else { GtkTreeIter package_iter; @@ -147,7 +147,7 @@ void yon_packages_tab_init(main_window *widgets){ gtk_tree_store_set(widgets->PackagesList,&catiter,1,parsed[0],2,_(parsed[0]),3,0,-1); gtk_tree_store_append(widgets->PackagesList,&package_iter,&catiter); char *full_string = yon_char_unite("",name_render,"\n",_(parsed[3]),NULL); - gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_element(config_packages,parsed[2],",")||yon_char_check_element(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,!yon_char_check_element(modules,parsed[2],","),5,parsed[2],-1); + gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_elements(config_packages,parsed[2],",")||yon_char_check_elements(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,!yon_char_check_elements(modules,parsed[2],","),5,parsed[2],-1); free(full_string); } } -- 2.35.1 From f4a26fabed98a60c1dc458c87c6a04755be25f52 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 27 Mar 2026 15:30:44 +0600 Subject: [PATCH 05/10] Fixed crash at region page --- source/ubinstall-gtk-region.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ubinstall-gtk-region.c b/source/ubinstall-gtk-region.c index 5d9a461..818cff7 100644 --- a/source/ubinstall-gtk-region.c +++ b/source/ubinstall-gtk-region.c @@ -265,7 +265,7 @@ void yon_region_init(main_window *widgets){ if (!gtk_switch_get_active(GTK_SWITCH(widgets->RegionSensitiveSwitch))){ size=0; config_str autotimezone = yon_config_load(internet_tomezone_check_command,(int*)&size); - if (size&&!yon_char_is_empty(autotimezone[0])){ + if (autotimezone&&!yon_char_is_empty(autotimezone[0])){ yon_char_remove_last_symbol(autotimezone[0],'\n'); gtk_entry_set_text(GTK_ENTRY(widgets->RegionEntry),autotimezone[0]); cc_timezone_map_set_timezone(CC_TIMEZONE_MAP(widgets->RegionMapTarget),autotimezone[0]); -- 2.35.1 From 7c3dda02daf1fd7af4eb27d2a357f467c485751e Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 27 Mar 2026 16:59:57 +0600 Subject: [PATCH 06/10] Added ADDADM parameter --- source/ubinstall-gtk-users.c | 22 +++++++++++++++++++++- source/ubinstall-gtk.h | 8 ++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/source/ubinstall-gtk-users.c b/source/ubinstall-gtk-users.c index 2ccc42c..d34a0f6 100644 --- a/source/ubinstall-gtk-users.c +++ b/source/ubinstall-gtk-users.c @@ -55,6 +55,7 @@ int yon_users_save(main_window *widgets){ yon_char_parsed_add_or_create_if_exists(users,&users_size,root_password_parameter); yon_char_parsed_add_or_create_if_exists(users,&users_size,autologin_parameter); yon_char_parsed_add_or_create_if_exists(users,&users_size,DEFAULTUSER_parameter); + yon_char_parsed_add_or_create_if_exists(users,&users_size,ADDADM_parameter); yon_debug_output("%s\n",yon_config_save_list_simple(users,users_size,main_config.config_load_path)); } return 1; @@ -69,6 +70,17 @@ int yon_user_save(yon_user_struct *user){ yon_ubl_status_highlight_incorrect(user->LoginEntry); return 0; } + char *default_user = config(DEFAULTUSER_parameter); + if (yon_char_is_empty(default_user)){ + default_user = config(DEFAULTUSER_system_parameter); + } + if (!strcmp(default_user,login)){ + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(user->AdminCheck))){ + yon_config_register(ADDADM_parameter,ADDADM_parameter_command,"yes"); + } else { + yon_config_register(ADDADM_parameter,ADDADM_parameter_command,"no"); + } + } if (gtk_combo_box_get_active(GTK_COMBO_BOX(user->PasswordCombo))){ password = (char *)gtk_entry_get_text(GTK_ENTRY(user->PasswordEntry)); if (yon_char_is_empty(password)){ @@ -214,6 +226,10 @@ void yon_user_init(main_window *widgets){ int users_size; config_str users = yon_config_get_all_by_key(USERADD_parameter_search,&users_size); if (!users_size){ + char *addadm = config(ADDADM_parameter); + if (yon_char_is_empty(addadm)){ + addadm = config(ADDADM_system_parameter); + } char *def_usr = config(DEFAULTUSER_parameter); if (yon_char_is_empty(def_usr)||(!yon_char_is_empty(def_usr)&&strcmp(def_usr,"root"))){ char *default_user = config(DEFAULTUSER_parameter); @@ -233,7 +249,11 @@ void yon_user_init(main_window *widgets){ } if (!yon_char_is_empty(default_passwd)) gtk_entry_set_text(GTK_ENTRY(user->PasswordEntry),default_passwd); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),1); + if (!yon_char_is_empty(def_usr)&& !strcmp(def_usr,default_user)){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),!strcmp(addadm,"yes")); + } else { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),strcmp(addadm,"yes")); + } } } for (int i=0;i Date: Fri, 27 Mar 2026 17:38:12 +0600 Subject: [PATCH 07/10] Fixed Next installation page --- source/ubinstall-gtk-installation.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ubinstall-gtk-installation.c b/source/ubinstall-gtk-installation.c index 0d714a0..f136fd0 100644 --- a/source/ubinstall-gtk-installation.c +++ b/source/ubinstall-gtk-installation.c @@ -104,7 +104,7 @@ int yon_install_separate_save(main_window *widgets){ } if (!main_config.configure_mode){ - yon_debug_output("%s\n",yon_config_save_args_simple(main_config.config_load_path,part_format_parameter,part_label_parameter,part_fs_type_parameter,device_parameter,part_parameter,NULL)); + yon_debug_output("%s\n",yon_config_save_args_simple(main_config.config_load_path,part_format_parameter,part_label_parameter,part_fs_type_parameter,device_parameter,part_parameter,AUTOINSTALL_TYPE_INSTALL,NULL)); } return 1; } -- 2.35.1 From ba9d35dbf188f1993e5053c5936781ce69cb3f5c Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 27 Mar 2026 17:43:00 +0600 Subject: [PATCH 08/10] Fixed installer version loading --- source/ubinstall-gtk.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index fb11dd8..0c22aae 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -393,7 +393,8 @@ layout && /description:/ {\ part_crypt_parameter typedef char *string; -__attribute__((unused)) static string version_application; +__attribute__((unused)) static +string version_application; enum YON_PAGES { -- 2.35.1 From 47008b28d78716634e1cad5dd1c3f6f86512ad07 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 27 Mar 2026 17:43:22 +0600 Subject: [PATCH 09/10] Fixed app closing after finish --- source/ubinstall-gtk-page-switch.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/ubinstall-gtk-page-switch.c b/source/ubinstall-gtk-page-switch.c index 27a6221..4bc050a 100644 --- a/source/ubinstall-gtk-page-switch.c +++ b/source/ubinstall-gtk-page-switch.c @@ -479,6 +479,12 @@ void yon_page_init(main_window *widgets, enum YON_PAGES page){ case YON_PAGE_INSTALL_ADVANCED: yon_advanced_init(widgets); break; + case YON_PAGE_COMPLETION: + const char *endaction = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ConfigHubRebootCombo)); + if (!yon_char_is_empty(endaction)&&!strcmp(endaction,"close")){ + on_exit_accepted(widgets); + } + break; case YON_PAGE_INSTALL_COMMON: case YON_PAGE_INSTALL_SEPARATE: case YON_PAGE_INSTALL_SAME_PARTITION: -- 2.35.1 From 3803f056a1a0226927fc8bcac25ead8b37302379 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 27 Mar 2026 17:46:04 +0600 Subject: [PATCH 10/10] Test fix for pacman page crush --- source/ubinstall-gtk-components.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index 2a2cae3..e5085cb 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -653,8 +653,6 @@ gboolean yon_pacman_fill(struct pacman_struct *pacman){ char *size_str = yon_char_unite(yon_char_from_double(size_converted)," ", yon_size_get_name_from_letter(mod),NULL); gtk_list_store_append(widgets->PacmanSoftwareAllList,&iter); gtk_list_store_set(widgets->PacmanSoftwareAllList,&iter,0,0,1,loaded[i],2,version,3,_(description),4,size_str,-1); - if (!yon_char_is_empty(version))free(version); - if (!yon_char_is_empty(description)) free(description); } yon_pacman_software_update_overall_size(widgets); yon_char_parsed_free(loaded,size); -- 2.35.1