Bug 43884 - Активна кнопка "назад" в alterator-setup после шага preinstall
Summary: Активна кнопка "назад" в alterator-setup после шага preinstall
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: alterator-net-eth (show other bugs)
Version: unstable
Hardware: all Linux
: P5 normal
Assignee: Mikhail Efremov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-09-28 13:53 MSK by DVoropaev
Modified: 2023-01-19 16:39 MSK (History)
9 users (show)

See Also:


Attachments
фотография ошибки (3.14 MB, image/jpeg)
2022-09-28 13:53 MSK, DVoropaev
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description DVoropaev 2022-09-28 13:53:00 MSK
Created attachment 11591 [details]
фотография ошибки

Во время установки тестового образа (https://git.altlinux.org/people/jqt4/public/?p=mkimage-profiles-rpi.git;a=commit;h=969e1719506edc48a719c8c9ef21f7a083afc7a2)
если дойти до пункта настройки сети в alterator-setup, а потом перейти назад возникает ошибка:

Execution of script failed:
85-samba-usershares

проблема в том, что при переходе назад повторно запускается скрипт /usr/share/install2preinstall.d/85-samba-usershares.sh и пытается создать уже существующую группу 'sambashare'.

Антон Мидюков утверждает, что в пункте "Настройка сети" кнопка "назад" не должна быть активна. (https://bugzilla.altlinux.org/show_bug.cgi?id=43878#c8)
Comment 1 DVoropaev 2022-09-28 13:57:59 MSK
> Во время установки тестового образа
> (https://git.altlinux.org/people/jqt4/public/?p=mkimage-profiles-rpi.git;
> a=commit;h=969e1719506edc48a719c8c9ef21f7a083afc7a2)
Тестовая сборка slinux-rpi-20220923-aarch64.img.xz, собранная на этом профиле
Comment 2 jqt4 2022-09-30 12:39:52 MSK
> Тестовая сборка slinux-rpi-20220923-aarch64.img.xz, собранная на этом профиле

Образ, в котором наблюдается проблема, опубликован:
http://beta.altlinux.org/simply/aarch64/slinux-10.1-beta2-rpi4-aarch64.img.xz
Comment 3 Антон Мидюков 2022-09-30 13:02:00 MSK
(Ответ для jqt4 на комментарий #2)
> > Тестовая сборка slinux-rpi-20220923-aarch64.img.xz, собранная на этом профиле
> 
> Образ, в котором наблюдается проблема, опубликован:
> http://beta.altlinux.org/simply/aarch64/slinux-10.1-beta2-rpi4-aarch64.img.xz

Эта проблема во всех дистрибутивах есть. Её нет в стартеркитах, так как там нет шага preinstall.
Comment 4 Антон Мидюков 2022-11-18 08:09:17 MSK
Доступность кнопки назад определяется в ui модуля alterator. В данном случае необходимо запретить кнопку назад в alterator-net-eth.
Я полагаю, что аналогичная проблема присутствует в e2k, так как там нет шага grub. Но и возвращение обратно к установке загрузчика grub также кажется неправильным.
Comment 5 Ivan A. Melnikov 2022-11-21 12:27:59 MSK
(In reply to Антон Мидюков from comment #4)
> Доступность кнопки назад определяется в ui модуля alterator.

Это, кстати, немного странно: если я переставлю шаги, мне нужно будет править ui-файлы? Мне кажется, логичнее, когда доступность кнопки "назад" определяется не тем, что правится сейчас, а тем, куда она возвращает -- например, возвращаться на шаг preinstall никогда не нужно.
Comment 6 Антон Мидюков 2022-11-21 12:40:14 MSK
(Ответ для Ivan A. Melnikov на комментарий #5)
> (In reply to Антон Мидюков from comment #4)
> > Доступность кнопки назад определяется в ui модуля alterator.
> 
> Это, кстати, немного странно: если я переставлю шаги, мне нужно будет
> править ui-файлы? Мне кажется, логичнее, когда доступность кнопки "назад"
> определяется не тем, что правится сейчас, а тем, куда она возвращает --
> например, возвращаться на шаг preinstall никогда не нужно.

Согласен. Но я посмотрел, что работает это именно так. У меня даже получилось кнопку назад сделать не активной. Правда, я не уверен, что сделал правильно.
Подсмотрел, как сделано в alterator-grub.
Как вариант, можно убрать возвращение назад у всех шагов, которые выполняются из установленной системы.

diff --git a/alterator-net-eth/ui/net-eth/index.scm b/alterator-net-eth/ui/net-eth/index.scm
index 8ab025a..b9072cb 100644
--- a/alterator-net-eth/ui/net-eth/index.scm
+++ b/alterator-net-eth/ui/net-eth/index.scm
@@ -361,12 +361,11 @@
 	(form-bind "bridge_del" "click" bridge-del)
 	(form-bind "bridge_ch" "click" bridge-ch)
 
-    (or (global 'frame:next)
+    (or (and (global 'frame:next) (frame:back-activity #f))
       (begin (form-bind "apply" "click" (lambda() (begin (commit-interface)
                                                          (read-interface (form-value "name") (form-value "ipv")))))
 	     (form-bind "reset" "click" reset-interface)))))
 
-(frame:on-back (lambda() (or (commit-interface) 'cancel)))
 (frame:on-next (lambda() (or (commit-interface) 'cancel)))
 
 ; vim: ft=lisp expandtab
Comment 7 DVoropaev 2023-01-19 16:39:19 MSK
(Ответ для Антон Мидюков на комментарий #6)
> (Ответ для Ivan A. Melnikov на комментарий #5)
> > (In reply to Антон Мидюков from comment #4)
> > > Доступность кнопки назад определяется в ui модуля alterator.
> > 
> > Это, кстати, немного странно: если я переставлю шаги, мне нужно будет
> > править ui-файлы? Мне кажется, логичнее, когда доступность кнопки "назад"
> > определяется не тем, что правится сейчас, а тем, куда она возвращает --
> > например, возвращаться на шаг preinstall никогда не нужно.
> 
> Согласен. Но я посмотрел, что работает это именно так. У меня даже
> получилось кнопку назад сделать не активной. Правда, я не уверен, что сделал
> правильно.
> Подсмотрел, как сделано в alterator-grub.
> Как вариант, можно убрать возвращение назад у всех шагов, которые
> выполняются из установленной системы.
> 
> diff --git a/alterator-net-eth/ui/net-eth/index.scm
> b/alterator-net-eth/ui/net-eth/index.scm
> index 8ab025a..b9072cb 100644
> --- a/alterator-net-eth/ui/net-eth/index.scm
> +++ b/alterator-net-eth/ui/net-eth/index.scm
> @@ -361,12 +361,11 @@
>  	(form-bind "bridge_del" "click" bridge-del)
>  	(form-bind "bridge_ch" "click" bridge-ch)
>  
> -    (or (global 'frame:next)
> +    (or (and (global 'frame:next) (frame:back-activity #f))
>        (begin (form-bind "apply" "click" (lambda() (begin (commit-interface)
>                                                           (read-interface
> (form-value "name") (form-value "ipv")))))
>  	     (form-bind "reset" "click" reset-interface)))))
>  
> -(frame:on-back (lambda() (or (commit-interface) 'cancel)))
>  (frame:on-next (lambda() (or (commit-interface) 'cancel)))
>  
>  ; vim: ft=lisp expandtab

Добавил исправление. Собрал, протестировал. Прошу принять.
https://git.altlinux.org/tasks/313536/