Fixed crash when application is launched without root

pull/9/head
parent 5313404058
commit 5bd400ad84

@ -138,11 +138,16 @@ void *yon_interface_update(main_window *widgets){
int kernels_size;
config_str kernels = yon_resource_open_file(kernels_path, &kernels_size);
char *boot_config_run = config(KERNEL_BOOT_parameter);
char *boot_config_run=NULL;
int boot_size;
config_str boot_run = yon_config_load(get_active_kernel_command,&boot_size);
yon_char_remove_last_symbol(boot_run[0],'\n');
config_str boot_run=NULL;
if(!getuid()){
boot_config_run = config(KERNEL_BOOT_parameter);
boot_run = yon_config_load(get_active_kernel_command,&boot_size);
yon_char_remove_last_symbol(boot_run[0],'\n');
}
for (int i=1;i<kernels_size;i++){
kernels_tab *tab = yon_tab_row_new(GTK_LIST_BOX(widgets->KernelsPackageBox),kernels[i],widgets);
@ -152,17 +157,19 @@ void *yon_interface_update(main_window *widgets){
gtk_widget_destroy(g_list_nth_data(list,i));
}
g_list_free(list);}
if (!strcmp(boot_run[0],tab->package)){
yon_tag_add(GTK_BOX(tab->run_tags_box),RUNNING_LABEL,"tag_green",NULL);
gtk_widget_hide(tab->remove_module_button);
gtk_widget_hide(tab->remove_package_button);
gtk_widget_hide(tab->launch_button);
} else if (!yon_char_is_empty(boot_config_run)&&!strcmp(boot_config_run,tab->package)){
yon_tag_add(GTK_BOX(tab->run_tags_box),BOOT_RUN_LABEL,"tag_orange",NULL);
gtk_widget_hide(tab->launch_button);
gtk_widget_hide(tab->remove_module_button);
gtk_widget_hide(tab->remove_package_button);
}
if(!getuid()){
if (boot_run&&!strcmp(boot_run[0],tab->package)){
yon_tag_add(GTK_BOX(tab->run_tags_box),RUNNING_LABEL,"tag_green",NULL);
gtk_widget_hide(tab->remove_module_button);
gtk_widget_hide(tab->remove_package_button);
gtk_widget_hide(tab->launch_button);
} else if (!yon_char_is_empty(boot_config_run)&&!strcmp(boot_config_run,tab->package)){
yon_tag_add(GTK_BOX(tab->run_tags_box),BOOT_RUN_LABEL,"tag_orange",NULL);
gtk_widget_hide(tab->launch_button);
gtk_widget_hide(tab->remove_module_button);
gtk_widget_hide(tab->remove_package_button);
}
}
gtk_widget_set_can_focus(gtk_widget_get_parent(tab->main_box),0);
}
yon_char_parsed_free(kernels,kernels_size);
@ -554,6 +561,14 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
g_signal_connect(G_OBJECT(tab->remove_package_button),"clicked",G_CALLBACK(on_package_remove_clicked),dict);
g_signal_connect(G_OBJECT(tab->changelog_button),"clicked",G_CALLBACK(on_changelog_clicked),tab);
g_signal_connect(G_OBJECT(tab->launch_button),"clicked",G_CALLBACK(on_launch_cliked),dict);
if(getuid()){
gtk_widget_set_sensitive(tab->launch_button,0);
gtk_widget_set_sensitive(tab->remove_module_button,0);
gtk_widget_set_sensitive(tab->install_module_button,0);
gtk_widget_set_sensitive(tab->remove_package_button,0);
gtk_widget_set_sensitive(tab->install_package_button,0);
}
tab->module_installed=-1;
tab->package_installed=-1;
tab->name = yon_char_new(parsed[0]);
@ -590,29 +605,33 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
tab->module_requirements = yon_char_parse(parsed[3],&tab->module_requirements_size,",");
tab->package_requirements = yon_char_parse(parsed[4],&tab->package_requirements_size,",");
char *check_install_command = get_package_is_installed_command(tab->module);
if (!system(check_install_command)){
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL);
tab->module_installed=1;
gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),module_icon_path,GTK_ICON_SIZE_BUTTON);
gtk_widget_show(tab->remove_module_button);
gtk_widget_hide(tab->install_module_button);
gtk_widget_show(tab->changelog_button);
gtk_widget_show(tab->launch_button);
} else tab->module_installed=0;
{
free(check_install_command);
check_install_command = get_package_is_installed_command(tab->package);
if (!getuid()){
if (!system(check_install_command)){
tab->package_installed=1;
yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",NULL);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),package_icon_path,GTK_ICON_SIZE_BUTTON);
gtk_widget_hide(tab->install_package_button);
gtk_widget_show(tab->remove_package_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL);
tab->module_installed=1;
gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),module_icon_path,GTK_ICON_SIZE_BUTTON);
gtk_widget_show(tab->remove_module_button);
gtk_widget_hide(tab->install_module_button);
gtk_widget_show(tab->changelog_button);
gtk_widget_show(tab->launch_button);
} else tab->package_installed=0;
} else tab->module_installed=0;
{
free(check_install_command);
check_install_command = get_package_is_installed_command(tab->package);
if (!system(check_install_command)){
tab->package_installed=1;
yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",NULL);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),package_icon_path,GTK_ICON_SIZE_BUTTON);
gtk_widget_hide(tab->install_package_button);
gtk_widget_show(tab->remove_package_button);
gtk_widget_show(tab->changelog_button);
gtk_widget_show(tab->launch_button);
} else tab->package_installed=0;
}
} else {
yon_tag_add(GTK_BOX(tab->install_tags_box),UNKNOWN_LABEL,"tag_grey",NULL);
}
yon_char_parsed_free(types_parsed,types_size);
gtk_label_set_markup(GTK_LABEL(tab->name_label),name);
@ -963,6 +982,9 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(on_config_local_load),widgets);
g_signal_connect(G_OBJECT(widgets->LoadCustomMenuItem),"activate",G_CALLBACK(on_config_custom_load),widgets);
if (getuid()){
gtk_widget_set_sensitive(widgets->BuildingButton,0);
}
gtk_progress_bar_set_pulse_step(GTK_PROGRESS_BAR(widgets->InstallationProgress),1);
GdkRGBA rgba;
vte_terminal_get_color_background_for_draw(VTE_TERMINAL(widgets->InstallTerminal),&rgba);
@ -989,7 +1011,8 @@ int main(int argc, char *argv[]){
int size=0;
yon_ubl_setup_arguments(argc,argv,&unfound,&size,NULL);
gtk_init(&argc,&argv);
template_main_window *widgets = yon_ubl_window_setup();
template_main_window *widgets = yon_ubl_window_setup();
yon_root_button_setup(widgets,argv,argc);
yon_main_window_complete((main_window*)widgets);
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
yon_window_config_load(path);

@ -14,6 +14,7 @@
#define PACKAGE_INSTALLED_LABEL _("Package installed")
#define MODULE_INSTALLED_LABEL _("Module installed")
#define UNKNOWN_LABEL _("Installation unknown")
#define BOOT_RUN_LABEL _("Startup boot")
#define RUNNING_LABEL _("Running")

@ -196,4 +196,13 @@ background:transparent;
color:#2f2f2f;
background-color:#80ff80
}
.tag_grey{
border-radius: 2px;
border-width: 0.5px;
border-style: solid;
margin:2px;
color:#2f2f2f;
background-color:#999999
}

@ -59,162 +59,166 @@ msgid "Module installed"
msgstr ""
#: source/ubl-strings.h:17
msgid "Startup boot"
msgid "Installation unknown"
msgstr ""
#: source/ubl-strings.h:18
msgid "Startup boot"
msgstr ""
#: source/ubl-strings.h:19
msgid "Running"
msgstr ""
#: source/ubl-strings.h:21
#: source/ubl-strings.h:22
msgid "Initramfs building"
msgstr ""
#: source/ubl-strings.h:22
#: source/ubl-strings.h:23
msgid "Execute"
msgstr ""
#: source/ubl-strings.h:23
#: source/ubl-strings.h:24
msgid "Kernel version:"
msgstr ""
#: source/ubl-strings.h:24
#: source/ubl-strings.h:25
msgid "Image file:"
msgstr ""
#: source/ubl-strings.h:25
#: source/ubl-strings.h:26
msgid "Add debug components"
msgstr ""
#: source/ubl-strings.h:26
#: source/ubl-strings.h:27
msgid "Add drivers for current hardware components only"
msgstr ""
#: source/ubl-strings.h:28
#: source/ubl-strings.h:29
msgid "Install module"
msgstr ""
#: source/ubl-strings.h:29
#: source/ubl-strings.h:30
msgid "Remove module"
msgstr ""
#: source/ubl-strings.h:30
#: source/ubl-strings.h:31
msgid "Install package"
msgstr ""
#: source/ubl-strings.h:31
#: source/ubl-strings.h:32
msgid "Remove package"
msgstr ""
#: source/ubl-strings.h:32
#: source/ubl-strings.h:33
msgid "Changelog"
msgstr ""
#: source/ubl-strings.h:33
#: source/ubl-strings.h:34
msgid "Launch"
msgstr ""
#: source/ubl-strings.h:34
#: source/ubl-strings.h:35
msgid "LTS"
msgstr ""
#: source/ubl-strings.h:35
#: source/ubl-strings.h:36
msgid "Reactive"
msgstr ""
#: source/ubl-strings.h:36
#: source/ubl-strings.h:37
msgid "Recomended"
msgstr ""
#: source/ubl-strings.h:37
#: source/ubl-strings.h:38
msgid "Hardened"
msgstr ""
#: source/ubl-strings.h:38
#: source/ubl-strings.h:39
msgid "RealTime"
msgstr ""
#: source/ubl-strings.h:39
#: source/ubl-strings.h:40
msgid "Stable"
msgstr ""
#: source/ubl-strings.h:41
#: source/ubl-strings.h:42
msgid "Kernels"
msgstr ""
#: source/ubl-strings.h:42
#: source/ubl-strings.h:43
msgid "Additions"
msgstr ""
#: source/ubl-strings.h:43
#: source/ubl-strings.h:44
msgid "Update"
msgstr ""
#: source/ubl-strings.h:44
#: source/ubl-strings.h:45
msgid "Open package information"
msgstr ""
#: source/ubl-strings.h:45
#: source/ubl-strings.h:46
msgid "More"
msgstr ""
#: source/ubl-strings.h:47
#: source/ubl-strings.h:48
msgid "Accept"
msgstr ""
#: source/ubl-strings.h:48
#: source/ubl-strings.h:49
msgid "Warning"
msgstr ""
#: source/ubl-strings.h:49
#: source/ubl-strings.h:50
msgid "Dependences"
msgstr ""
#: source/ubl-strings.h:51
#: source/ubl-strings.h:52
msgid "Module"
msgstr ""
#: source/ubl-strings.h:52
#: source/ubl-strings.h:53
msgid "Package"
msgstr ""
#: source/ubl-strings.h:53
#: source/ubl-strings.h:54
msgid "Description"
msgstr ""
#: source/ubl-strings.h:55
#: source/ubl-strings.h:56
msgid "Terminal operation success"
msgstr ""
#: source/ubl-strings.h:55
msgid "Terminal operation in process"
msgstr ""
#: source/ubl-strings.h:56
#: source/ubl-strings.h:57
msgid "Terminal operation failed"
msgstr ""
#: source/ubl-strings.h:58
msgid "Terminal operation in process"
msgstr ""
#: source/ubl-strings.h:60
msgid "Are you sure want to install kernel"
msgstr ""
#: source/ubl-strings.h:59
#: source/ubl-strings.h:61
msgid "Are you sure want to install package"
msgstr ""
#: source/ubl-strings.h:60
#: source/ubl-strings.h:62
msgid "Are you sure want to remove module"
msgstr ""
#: source/ubl-strings.h:61
#: source/ubl-strings.h:63
msgid "Are you sure want to remove package"
msgstr ""
#: source/ubl-strings.h:62
#: source/ubl-strings.h:64
msgid "Are you sure want to launch"
msgstr ""
#: source/ubl-strings.h:62
#: source/ubl-strings.h:64
msgid ""
"for boot?\n"
"\n"

@ -60,162 +60,166 @@ msgid "Module installed"
msgstr "Установлен модуль"
#: source/ubl-strings.h:17
msgid "Installation unknown"
msgstr "Статус неизвестен"
#: source/ubl-strings.h:18
msgid "Startup boot"
msgstr "Будет запущено"
#: source/ubl-strings.h:18
#: source/ubl-strings.h:19
msgid "Running"
msgstr "Запущено"
#: source/ubl-strings.h:21
#: source/ubl-strings.h:22
msgid "Initramfs building"
msgstr "Сборка Initramfs"
#: source/ubl-strings.h:22
#: source/ubl-strings.h:23
msgid "Execute"
msgstr "Выполнить"
#: source/ubl-strings.h:23
#: source/ubl-strings.h:24
msgid "Kernel version:"
msgstr "Версия ядра:"
#: source/ubl-strings.h:24
#: source/ubl-strings.h:25
msgid "Image file:"
msgstr "Файл образа:"
#: source/ubl-strings.h:25
#: source/ubl-strings.h:26
msgid "Add debug components"
msgstr "Добавить компоненты отладки"
#: source/ubl-strings.h:26
#: source/ubl-strings.h:27
msgid "Add drivers for current hardware components only"
msgstr "Добавить драйвера только текущих аппаратных компонентов"
#: source/ubl-strings.h:28
#: source/ubl-strings.h:29
msgid "Install module"
msgstr "Установить модуль"
#: source/ubl-strings.h:29
#: source/ubl-strings.h:30
msgid "Remove module"
msgstr "Удалить модуль"
#: source/ubl-strings.h:30
#: source/ubl-strings.h:31
msgid "Install package"
msgstr "Установить пакет"
#: source/ubl-strings.h:31
#: source/ubl-strings.h:32
msgid "Remove package"
msgstr "Удалить пакет"
#: source/ubl-strings.h:32
#: source/ubl-strings.h:33
msgid "Changelog"
msgstr "Список изменений"
#: source/ubl-strings.h:33
#: source/ubl-strings.h:34
msgid "Launch"
msgstr "Запускать"
#: source/ubl-strings.h:34
#: source/ubl-strings.h:35
msgid "LTS"
msgstr "LTS"
#: source/ubl-strings.h:35
#: source/ubl-strings.h:36
msgid "Reactive"
msgstr "Реактивное"
#: source/ubl-strings.h:36
#: source/ubl-strings.h:37
msgid "Recomended"
msgstr "Рекомендуется"
#: source/ubl-strings.h:37
#: source/ubl-strings.h:38
msgid "Hardened"
msgstr ""
#: source/ubl-strings.h:38
#: source/ubl-strings.h:39
msgid "RealTime"
msgstr "Реальное время"
#: source/ubl-strings.h:39
#: source/ubl-strings.h:40
msgid "Stable"
msgstr "Стабильное"
#: source/ubl-strings.h:41
#: source/ubl-strings.h:42
msgid "Kernels"
msgstr "Ядра"
#: source/ubl-strings.h:42
#: source/ubl-strings.h:43
msgid "Additions"
msgstr "Дополнения"
#: source/ubl-strings.h:43
#: source/ubl-strings.h:44
msgid "Update"
msgstr "Обновить"
#: source/ubl-strings.h:44
#: source/ubl-strings.h:45
msgid "Open package information"
msgstr "Открыть информацию о пакете"
#: source/ubl-strings.h:45
#: source/ubl-strings.h:46
msgid "More"
msgstr "Подробнее"
#: source/ubl-strings.h:47
#: source/ubl-strings.h:48
msgid "Accept"
msgstr "Принять"
#: source/ubl-strings.h:48
#: source/ubl-strings.h:49
msgid "Warning"
msgstr "Внимание"
#: source/ubl-strings.h:49
#: source/ubl-strings.h:50
msgid "Dependences"
msgstr "Зависимости"
#: source/ubl-strings.h:51
#: source/ubl-strings.h:52
msgid "Module"
msgstr "Модуль"
#: source/ubl-strings.h:52
#: source/ubl-strings.h:53
msgid "Package"
msgstr "Пакет"
#: source/ubl-strings.h:53
#: source/ubl-strings.h:54
msgid "Description"
msgstr "Описание"
#: source/ubl-strings.h:55
#: source/ubl-strings.h:56
msgid "Terminal operation success"
msgstr "Операция терминала успешно завершена"
#: source/ubl-strings.h:56
#: source/ubl-strings.h:57
msgid "Terminal operation failed"
msgstr "Операция терминала завершена с ошибкой"
#: source/ubl-strings.h:55
#: source/ubl-strings.h:58
msgid "Terminal operation in process"
msgstr "Операция терминала в процессе выполнения"
#: source/ubl-strings.h:58
#: source/ubl-strings.h:60
msgid "Are you sure want to install kernel"
msgstr "Вы хотите установить в систему ядро"
#: source/ubl-strings.h:59
#: source/ubl-strings.h:61
msgid "Are you sure want to install package"
msgstr "Вы хотите установить в систему пакет с ядром"
#: source/ubl-strings.h:60
#: source/ubl-strings.h:62
msgid "Are you sure want to remove module"
msgstr "Вы действительно хотите удалить из системы пакет с модулем ядра"
#: source/ubl-strings.h:61
#: source/ubl-strings.h:63
msgid "Are you sure want to remove package"
msgstr "Вы действительно хотите удалить из системы пакет с ядром"
#: source/ubl-strings.h:62
#: source/ubl-strings.h:64
msgid "Are you sure want to launch"
msgstr "Выбрать ядро"
#: source/ubl-strings.h:62
#: source/ubl-strings.h:64
msgid ""
"for boot?\n"
"\n"

Loading…
Cancel
Save