Created attachment 21859 [details] Исправляющий патч В KDE Plasma компонент plasma-nm при предоставлении доступа к подключённой Wi-Fi сети не отображает пароль и формирует QR-код без поля P, если пароль хранится агентом секретов, например KWallet. Шаги воспроизведения: 1. В ALT Regular KDE подключиться к защищённой Wi-Fi сети с сохранением пароля в KWallet. 2. Открыть апплет сетей Plasma. 3. Нажать «Поделиться» у Wi-Fi сети в апплете. Фактический результат: QR код генерируется без пароля Ожидаемый результат: Генерация QR кода с паролем Заметил, что в NetworkManager есть два коммита, из-за которых подобное и происходит: https://git.altlinux.org/gears/N/NetworkManager.gitp=NetworkManager.git;a=commit;h=0cbb3befd133adaf9fc3dfefadee6dde09b31668 https://git.altlinux.org/gears/N/NetworkManager.git?p=NetworkManager.git;a=commit;h=6e5cc4d24fe4e3dee1187d1ccea9ddb2c34fcc99 Второй должен был удалять из settings-connection секреты с флагами NOT_SAVED и NOT_REQUIRED. Однако добавленная в этом коммите функция перед обновлением settings-connection проверяет каждый полученный секрет и удаляет его, если он не считается системным. После предыдущего коммита системными считаются только секреты без флагов. Поэтому пароль с флагом AGENT_OWNED, полученный от KWallet, тоже ошибочно удаляется. В результате пароль удаляется из нового NMConnection до обновления settings-connection, и последующий авторизованный вызов GetSecrets() уже не может вернуть его plasma-nm. Решить это довольно легко, можно удалять только секреты с явно установленными флагами и сохранять AGENT_OWNED в памяти settings-connection. Прикладываю патч.
Добавил golubevan@. Антон, как автор патчей, посмотрите пожалуйста.
Ок, займусь этим.
Собрал с приложенным патчем, проблема исправляется, регресса со стороны секретов openvpn подключений, из за которых были изначальные патчи, не наблюдается. Agent-owned секреты, несмотря на то, что после патча не очищаются в этом месте, не записываются в connection. Посмотрел в отладчике, в данном случае (с qr кодом) поток вообще не заходит в ветку if (applied_connection): https://git.altlinux.org/gears/N/NetworkManager.git?p=NetworkManager.git;a=blob;f=NetworkManager/src/core/settings/nm-settings-connection.c;h=76428827befd22046a8719f48ef837a644129c0a;hb=4f2fecc3811502a9bcde9d9e0af3f28586708928#l1069 поскольку applied_connection null, Это даже задокументировано: https://git.altlinux.org/gears/N/NetworkManager.git?p=NetworkManager.git;a=blob;f=NetworkManager/src/core/settings/nm-settings-connection.c;h=76428827befd22046a8719f48ef837a644129c0a;hb=4f2fecc3811502a9bcde9d9e0af3f28586708928#l1121 но даже если applied_connection будет задано, agent-owned секреты отфильтровываются чуть дальше: https://git.altlinux.org/gears/N/NetworkManager.git?p=NetworkManager.git;a=blob;f=NetworkManager/src/core/settings/nm-settings-connection.c;h=76428827befd22046a8719f48ef837a644129c0a;hb=4f2fecc3811502a9bcde9d9e0af3f28586708928#l1083 Таким образом, патч годный, считаю его стоит применить.
Спасибо, приложил.
NetworkManager-1.58.0-alt2 -> sisyphus: Thu Jul 23 2026 Mikhail Efremov <sem@altlinux> 1.58.0-alt2 - settings-connection: keep agent-owned secrets for GetSecrets (by me at katze-942.ru) (closes: #59836).