Bug 48503

Summary: Не добавляет модель лица во время мастер настройки
Product: Sisyphus Reporter: Evgeny Shesteperov <alimektor>
Component: howdyAssignee: Leontiy Volodin <lvol>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: lvol
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Evgeny Shesteperov 2023-11-18 20:43:27 MSK
Версия

-   howdy-3.0.0-alt10.beta1.gitc5b1766

Шаги воспроизведения

Настроить sudo для пользователя.

    # apt-get install -y howdy-gtk
    $ sudo howdy-gtk

Продолжить настройку, выбрать корректную ИК-камеру, на шаге Добавление
образца лица нажать Начать сканирование лица.

Ожидаемый результат: Запрос на создание модели.

Фактический результат: ошибка в терминале

    howdy add output:
    Невозможно выполнить команду от имени пользователя root. Пожалуйста, запустите её с флагом --user
    Traceback (most recent call last):
      File "/usr/libexec/howdy-gtk/onboarding.py", line 266, in run_add
        self.show_error(_("Can't save face model"), output)
      File "/usr/libexec/howdy-gtk/onboarding.py", line 318, in show_error
        self.exit()
    TypeError: exit() missing 2 required positional arguments: 'widget' and 'contex

Выполнил следующий Grep:

    # grep howdy /usr/libexec/howdy-gtk/onboarding.py
            self.proc = subprocess.Popen("howdy set device_path " + device_path, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
            status, output = subprocess.getstatusoutput(["howdy add -y"])
            print("howdy add output:")
            self.proc = subprocess.Popen("howdy set certainty " + str(radio_certanty), stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)

Заметил разницу subprocess.Popen("howdy set device_path "... VS
status, output = subprocess.getstatusoutput(["howdy add -y"])

Workaround для отдельного пользователя:

sed -i 's|howdy add -y|howdy --user test add -y|g' /usr/libexec/howdy-gtk/onboarding.py
Comment 1 Evgeny Shesteperov 2023-11-18 21:24:06 MSK
Этот же код отвечает и за добавление образца при нажатии кнопки Добавить.

1. Открыть после настройки Howdy GTK → Вкладка Добавить.
2. Нажать Добавить.
Comment 2 Evgeny Shesteperov 2023-11-18 21:27:46 MSK
(Ответ для Evgeny Shesteperov на комментарий #1)
> Этот же код отвечает и за добавление образца при нажатии кнопки Добавить.
> 
> 1. Открыть после настройки Howdy GTK → Вкладка Добавить.
> 2. Нажать Добавить.

Нет, я ошибся.
Comment 3 Repository Robot 2023-12-05 15:03:32 MSK
howdy-3.0.0-alt11.beta1.gitc5b1766 -> sisyphus:

 Tue Dec 05 2023 Anton Golubev <golubevan@altlinux> 3.0.0-alt11.beta1.gitc5b1766
 - howdy-gtk: Add default args to exit functions (ALT #48543)
 - Don't pkexec if already root
 - Handle the case if there are no cameras via except (ALT #48544)
 - Show real camera ID in the 'Video' tab (ALT #48542)
 - Don't add a model if the user list is empty (ALT #48529)
 - More correct preview when stretching the window (ALT #48527)
 - Remove reading of non-existent '_variables' file (ALT #48500)
 - Update the container when the slide changes (ALT #48502)
 - Also use PKEXEC_UID to get username (ALT #48503)