День добрый, Беру srpm и пересобираю для p10, для стендовых условий. Версия 0.0.1 работала без каких либо проблем, версия 0.0.2 сразу же выпадает в ошибку. Все окружение тоже самое. Как воспроизвести вам, понятия не имею ;) , но скажите лучше куда мне самому посмотреть. [domainuser1@host-15 Рабочий стол]$ gpresult Traceback (most recent call last): File "/usr/bin/gpresult", line 9, in <module> sys.exit(main()) File "/usr/lib/python3/site-packages/gpresult/gpresult.py", line 130, in main gpos = gpr_get_policies.get_policies(obj) File "/usr/lib/python3/site-packages/gpresult/gpr_get_policies.py", line 23, in get_policies gpr_init.init_data(path, 'user') File "/usr/lib/python3/site-packages/gpresult/gpr_init.py", line 203, in init_data init_preferences(path, obj) File "/usr/lib/python3/site-packages/gpresult/gpr_init.py", line 193, in init_preferences preference_list = ast.literal_eval(v.get_string()) File "/usr/lib64/python3.9/ast.py", line 62, in literal_eval node_or_string = parse(node_or_string, mode='eval') File "/usr/lib64/python3.9/ast.py", line 50, in parse return compile(source, filename, mode, flags, File "<unknown>", line 1 [{'login': '', 'password': '', 'dir': 'L', 'path': '\\\\dc.test.alt\\share', 'action': 'U', 'thisDrive': 'NOCHANGE', 'allDrives': 'NOCHANGE', 'label': 'DefaultPolicyDrive', 'persistent': '0', 'useLetter': '1', 'policy_name': 'Default Domain Policy'}, {'login': '', 'password': '', 'dir': 'W', 'path': '\\\\dc.test.alt\\share', 'action': 'U', 'thisDrive': 'NOCHANGE', 'allDrives': 'NOCHANGE', 'label': ''Мой диск'', 'persistent': '1', 'useLetter': '1', 'policy_name': 'Сетевые_шары'}] ^ SyntaxError: invalid syntax
Проблема решена, но вам надо это учесть. Смысл в том, что раньше если в имени шары был пробел, то все падало и решалось взятие в двойные кавычки ("Мой диск"). В 0.0.2 это приводит к 'label': ''Мой диск'' убрал совсем кавычки, все работает, но осадочек остался ;)
Воспроизвёл с версией 0.0.4-alt1 и нашёл шаги воспроизведения. Воспроизводится при создании объекта типа "Значок" (подробные шаги ниже). Однако, что странно, при его последующем изменении ошибка уже не воспроизводится, даже если сделать ещё одно изменение и вернуть указанные параметры в исходное значение. При этом, если создать новый значок, ошибка снова воспроизведётся. В моём случае спотыкается на "<" в: > 'desktop_file': <xdg.DesktopEntry.DesktopEntry object at 0x7fe7cbda6b70> > ^ Проблема, думаю, в `/usr/lib/python3/site-packages/gpresult/gpr_init.py:194` (`init_preferences`): `ast.literal_eval(v.get_string())` не будет работать во всех случаях, в частном случае со сложными объектами типа `xdg.DesktopEntry.DesktopEntry`. Полный вывод: > [testuser@q2 ~]$ gpresult -c > Traceback (most recent call last): > File "/usr/bin/gpresult", line 9, in <module> > sys.exit(main()) > ^^^^^^ > File "/usr/lib/python3/site-packages/gpresult/gpresult.py", line 150, in main > gpos = gpr_get_policies.get_policies(obj) > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > File "/usr/lib/python3/site-packages/gpresult/gpr_get_policies.py", line 19, in get_policies > gpr_init.init_data(path, 'machine') > File "/usr/lib/python3/site-packages/gpresult/gpr_init.py", line 204, in init_data > init_preferences(path, obj) > File "/usr/lib/python3/site-packages/gpresult/gpr_init.py", line 194, in init_preferences > preference_list = ast.literal_eval(v.get_string()) > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > File "/usr/lib64/python3.12/ast.py", line 66, in literal_eval > node_or_string = parse(node_or_string.lstrip(" \t"), mode='eval') > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > File "/usr/lib64/python3.12/ast.py", line 52, in parse > return compile(source, filename, mode, flags, > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > File "<unknown>", line 1 > [{'dest': 'q', 'path': 'q', 'expanded_path': None, 'arguments': '', 'name': 'q', 'action': 'C', 'changed': '2025-03-14 18:14:01', 'icon': '', 'comment': '', 'is_in_user_context': False, 'type': 'FILESYSTEM', 'desktop_file_template': None, 'clsid': '{4F2F7C55-2790-433e-8127-0739D1CFA327}', 'guid': '{6255b5aa-94bd-408f-b87d-af2f5dbefc00}', 'policy_name': 'qq', 'desktop_file': <xdg.DesktopEntry.DesktopEntry object at 0x7fe7cbda6b70>}] > ^ > SyntaxError: invalid syntax Шаги воспроизведения ==================== I. Развернуть сервер домена samba и присоединить клиента. II. Для задания групповых политик установить на сервере (если на нём есть графика) или на клиенте (на котором войти в пользователя администратора домена Administrator или выполнить $ kinit administrator): # apt-get install -y admc gpui 1. Создать чистую групповую политику: открыть приложение ADMC -> Объекты групповой политики -> ПКМ на имени домена (например samba.testdomain) -> Создать политику и связать с этим подразделением -> ввести любое имя -> ОК 2. Нажать ПКМ на созданную политику -> Изменить... 3. Зайти в разделы Компьютер → Настройки → Настройки Системы и создать объект Значки -> ПКМ в пустой области справа -> Новый -> Значок -> ввести Название: q, Целевой путь: q -> нажать ОК): III. На клиенте установить gpresult. Войти в обычного доменного пользователя и обновить групповые политики: # apt-get install -y gpresult $ gpupdate IV. Выполнить: $ gpresult -c
(In reply to Artem Varaksa from comment #2) > Воспроизводится при создании объекта типа "Значок" (подробные шаги ниже). > Однако, что странно, при его последующем изменении ошибка уже не > воспроизводится, даже если сделать ещё одно изменение и вернуть указанные > параметры в исходное значение. Уточнение: даже просто `$ gpupdate` без изменений может починить. > При этом, если создать новый значок, ошибка снова воспроизведётся. Уточнение: ошибка плавающая, даже при создании значка воспроизводится не всегда.
(Ответ для Artem Varaksa на комментарий #2) > Воспроизвёл с версией 0.0.4-alt1 и нашёл шаги воспроизведения. > > Воспроизводится при создании объекта типа "Значок" (подробные шаги ниже). > Однако, что странно, при его последующем изменении ошибка уже не > воспроизводится, даже если сделать ещё одно изменение и вернуть указанные > параметры в исходное значение. При этом, если создать новый значок, ошибка > снова воспроизведётся. > > В моём случае спотыкается на "<" в: > > 'desktop_file': <xdg.DesktopEntry.DesktopEntry object at 0x7fe7cbda6b70> > > ^ > > Проблема, думаю, в `/usr/lib/python3/site-packages/gpresult/gpr_init.py:194` > (`init_preferences`): `ast.literal_eval(v.get_string())` не будет работать > во всех случаях, в частном случае со сложными объектами типа > `xdg.DesktopEntry.DesktopEntry`. > > Полный вывод: > > > [testuser@q2 ~]$ gpresult -c > > Traceback (most recent call last): > > File "/usr/bin/gpresult", line 9, in <module> > > sys.exit(main()) > > ^^^^^^ > > File "/usr/lib/python3/site-packages/gpresult/gpresult.py", line 150, in main > > gpos = gpr_get_policies.get_policies(obj) > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > File "/usr/lib/python3/site-packages/gpresult/gpr_get_policies.py", line 19, in get_policies > > gpr_init.init_data(path, 'machine') > > File "/usr/lib/python3/site-packages/gpresult/gpr_init.py", line 204, in init_data > > init_preferences(path, obj) > > File "/usr/lib/python3/site-packages/gpresult/gpr_init.py", line 194, in init_preferences > > preference_list = ast.literal_eval(v.get_string()) > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > File "/usr/lib64/python3.12/ast.py", line 66, in literal_eval > > node_or_string = parse(node_or_string.lstrip(" \t"), mode='eval') > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > File "/usr/lib64/python3.12/ast.py", line 52, in parse > > return compile(source, filename, mode, flags, > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > File "<unknown>", line 1 > > [{'dest': 'q', 'path': 'q', 'expanded_path': None, 'arguments': '', 'name': 'q', 'action': 'C', 'changed': '2025-03-14 18:14:01', 'icon': '', 'comment': '', 'is_in_user_context': False, 'type': 'FILESYSTEM', 'desktop_file_template': None, 'clsid': '{4F2F7C55-2790-433e-8127-0739D1CFA327}', 'guid': '{6255b5aa-94bd-408f-b87d-af2f5dbefc00}', 'policy_name': 'qq', 'desktop_file': <xdg.DesktopEntry.DesktopEntry object at 0x7fe7cbda6b70>}] > > ^ > > SyntaxError: invalid syntax > > > Шаги воспроизведения > ==================== > > I. Развернуть сервер домена samba и присоединить клиента. > > II. Для задания групповых политик установить на сервере (если на нём есть > графика) или на клиенте (на котором войти в пользователя администратора > домена Administrator или выполнить $ kinit administrator): > > # apt-get install -y admc gpui > > 1. Создать чистую групповую политику: открыть приложение ADMC -> Объекты > групповой политики -> ПКМ на имени домена (например samba.testdomain) -> > Создать политику и связать с этим подразделением -> ввести любое имя -> ОК > > 2. Нажать ПКМ на созданную политику -> Изменить... > > 3. Зайти в разделы Компьютер → Настройки → Настройки Системы и создать > объект Значки -> ПКМ в пустой области справа -> Новый -> Значок -> ввести > Название: q, Целевой путь: q -> нажать ОК): > > III. На клиенте установить gpresult. Войти в обычного доменного пользователя > и обновить групповые политики: > > # apt-get install -y gpresult > $ gpupdate > > IV. Выполнить: > > $ gpresult -c Добрый день! Тестирую с gpresult-0.0.5, ошибка не воспроизводится. Можете, пожалуйста, предоставить доступ к стенду? Могу для этого создать задачу.(Ответ для Artem Varaksa на комментарий #2) > Воспроизвёл с версией 0.0.4-alt1 и нашёл шаги воспроизведения. > > Воспроизводится при создании объекта типа "Значок" (подробные шаги ниже). > Однако, что странно, при его последующем изменении ошибка уже не > воспроизводится, даже если сделать ещё одно изменение и вернуть указанные > параметры в исходное значение. При этом, если создать новый значок, ошибка > снова воспроизведётся. > > В моём случае спотыкается на "<" в: > > 'desktop_file': <xdg.DesktopEntry.DesktopEntry object at 0x7fe7cbda6b70> > > ^ > > Проблема, думаю, в `/usr/lib/python3/site-packages/gpresult/gpr_init.py:194` > (`init_preferences`): `ast.literal_eval(v.get_string())` не будет работать > во всех случаях, в частном случае со сложными объектами типа > `xdg.DesktopEntry.DesktopEntry`. > > Полный вывод: > > > [testuser@q2 ~]$ gpresult -c > > Traceback (most recent call last): > > File "/usr/bin/gpresult", line 9, in <module> > > sys.exit(main()) > > ^^^^^^ > > File "/usr/lib/python3/site-packages/gpresult/gpresult.py", line 150, in main > > gpos = gpr_get_policies.get_policies(obj) > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > File "/usr/lib/python3/site-packages/gpresult/gpr_get_policies.py", line 19, in get_policies > > gpr_init.init_data(path, 'machine') > > File "/usr/lib/python3/site-packages/gpresult/gpr_init.py", line 204, in init_data > > init_preferences(path, obj) > > File "/usr/lib/python3/site-packages/gpresult/gpr_init.py", line 194, in init_preferences > > preference_list = ast.literal_eval(v.get_string()) > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > File "/usr/lib64/python3.12/ast.py", line 66, in literal_eval > > node_or_string = parse(node_or_string.lstrip(" \t"), mode='eval') > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > File "/usr/lib64/python3.12/ast.py", line 52, in parse > > return compile(source, filename, mode, flags, > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > File "<unknown>", line 1 > > [{'dest': 'q', 'path': 'q', 'expanded_path': None, 'arguments': '', 'name': 'q', 'action': 'C', 'changed': '2025-03-14 18:14:01', 'icon': '', 'comment': '', 'is_in_user_context': False, 'type': 'FILESYSTEM', 'desktop_file_template': None, 'clsid': '{4F2F7C55-2790-433e-8127-0739D1CFA327}', 'guid': '{6255b5aa-94bd-408f-b87d-af2f5dbefc00}', 'policy_name': 'qq', 'desktop_file': <xdg.DesktopEntry.DesktopEntry object at 0x7fe7cbda6b70>}] > > ^ > > SyntaxError: invalid syntax > > > Шаги воспроизведения > ==================== > > I. Развернуть сервер домена samba и присоединить клиента. > > II. Для задания групповых политик установить на сервере (если на нём есть > графика) или на клиенте (на котором войти в пользователя администратора > домена Administrator или выполнить $ kinit administrator): > > # apt-get install -y admc gpui > > 1. Создать чистую групповую политику: открыть приложение ADMC -> Объекты > групповой политики -> ПКМ на имени домена (например samba.testdomain) -> > Создать политику и связать с этим подразделением -> ввести любое имя -> ОК > > 2. Нажать ПКМ на созданную политику -> Изменить... > > 3. Зайти в разделы Компьютер → Настройки → Настройки Системы и создать > объект Значки -> ПКМ в пустой области справа -> Новый -> Значок -> ввести > Название: q, Целевой путь: q -> нажать ОК): > > III. На клиенте установить gpresult. Войти в обычного доменного пользователя > и обновить групповые политики: > > # apt-get install -y gpresult > $ gpupdate > > IV. Выполнить: > > $ gpresult -c Добрый день! Проводила тест на версии gpresult-0.0.5 (по логике он не отличается от 0.0.4) и gpupdate 0.13.2 - sysuphus (к сожалению, Вашу версию gpupdate не знаю). Описанная проблема не воспроизвелась, тем более в /etc/dconf/db/policy.d/policy.ini отсутствует в значках ключ "dektop_file". Судя по логам, проблема из-за того, что значение ключа dekstop_file сохраняется не в виде строки, а в виде объекта. Данный процесс происходит на стороне gpupdate. Данный ключ был убран из gpupdate в версии 0.13.0-alt1 (ссылка на коммит с исправлением - https://github.com/altlinux/gpupdate/commit/93bcac5f193ab66227d472522d99297813dc626e). Соответственно, если обновиться до gpupdate 0.13.0-alt1 проблема должна исчезнуть.
Спасибо, вероятно это решит проблему, да. Если стенд всё ещё нужен, создайте пожалуйста задачу. (Похоже, в вашем комментарии смешались 2 разных ответа.)
(Ответ для Artem Varaksa на комментарий #5) > Спасибо, вероятно это решит проблему, да. > > Если стенд всё ещё нужен, создайте пожалуйста задачу. (Похоже, в вашем > комментарии смешались 2 разных ответа.) Да, извините, случайно неактуальный ответ прикрепила. Стенд пока не нужен.