| Summary: | баг в работе расширения removable drive menu - появляются фиктивные флешки | ||
|---|---|---|---|
| Product: | Branch p11 | Reporter: | kullibbin <kullibbin> |
| Component: | gnome-shell-extensions | Assignee: | Semen Fomchenkov <armatik> |
| Status: | NEW --- | QA Contact: | qa-p11 <qa-p11> |
| Severity: | normal | ||
| Priority: | P5 | CC: | amakeenk, antohami, dmitry, kullibbin, udalov |
| Version: | unspecified | ||
| Hardware: | all | ||
| OS: | Linux | ||
| See Also: | https://bugzilla.altlinux.org/show_bug.cgi?id=57366 | ||
| Attachments: | |||
|
Description
kullibbin
2025-12-25 12:01:56 MSK
в файле расширения extension.js Created attachment 20402 [details]
Пропатченный файл js для временного решения проблемы.
Исправленный extension.js для временного решения проблемы.
Мое предположение было правильным, баги с расширениями возникают из-за слишком ранней инициализации их. Если добавить задержку в 5 секунд, например, при инициализации расширения removable drive menu, то проблема пропадает. Как временное решение, с помощью нейросети исправил файл extension.js так, чтоб он запускался через 5 секунд только, после логина пользователя. Все работает. Но расширение не виновато - та же проблема с pipewire settings. И если ставить removeale drive menu с сайта расширений, удалив из системы (удалив каталог с расширением, по-варварски :) ), точно такой же баг проявляется и тогда. файл extension.js скопировать с заменой в папку admin:///usr/share/gnome-shell/extensions/drive-menu@gnome-shell-extensions.gcampax.github.com Пулл-риквест в апстрим: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/440 Created attachment 20424 [details]
Скрипт для решения проблемы. Бэкапит исходный файл расширения js и создает новый, с задержкой запуска 5 сек, что решает проблему. Используетс
Created attachment 20431 [details] патч, добавляющий проверку на дубликаты при монтирование (исправление для версии 48.3) В расширение добавлена проверка для предотвращения дублирования носителей, MR в апстрим отправлен: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/440 Comment on attachment 20431 [details]
патч, добавляющий проверку на дубликаты при монтирование (исправление для версии 48.3)
Изменил название файла в соответствии со стандартом
Comment on attachment 20431 [details]
патч, добавляющий проверку на дубликаты при монтирование (исправление для версии 48.3)
diff -urN gnome-shell-extensions-original/extensions/drive-menu/extension.js gnome-shell-extensions/extensions/drive-menu/extension.js
--- gnome-shell-extensions-original/extensions/drive-menu/extension.js 2025-12-29 21:49:23.096987297 +0600
+++ gnome-shell-extensions/extensions/drive-menu/extension.js 2025-12-29 21:54:16.094220518 +0600
@@ -178,6 +178,9 @@
}
_addMount(mount) {
+ if (this._mounts.some(item => item.mount === mount))
+ return;
+
let item = new MountMenuItem(mount);
this._mounts.unshift(item);
this.menu.addMenuItem(item, 0);
Comment on attachment 20431 [details]
патч, добавляющий проверку на дубликаты при монтирование (исправление для версии 48.3)
diff -urN gnome-shell-extensions-original/extensions/drive-menu/extension.js gnome-shell-extensions/extensions/drive-menu/extension.js
--- gnome-shell-extensions-original/extensions/drive-menu/extension.js 2025-12-29 21:49:23.096987297 +0600
+++ gnome-shell-extensions/extensions/drive-menu/extension.js 2025-12-29 21:54:16.094220518 +0600
@@ -178,6 +178,9 @@
}
_addMount(mount) {
+ if (this._mounts.some(item => item.mount === mount))
+ return;
+
let item = new MountMenuItem(mount);
this._mounts.unshift(item);
this.menu.addMenuItem(item, 0);
Created attachment 20432 [details]
патч
В расширение добавлена проверка для предотвращения дублирования носителей, MR в апстрим отправлен:
P.S
Извините за спам, я изучаю особенностей bugzilla по работе с файлами и их редактированию )
Нашел еще один, видимо, правильный фикс проблемы. Не надо патчить расширение. Как я понимаю, флэшки монтирует как gdm, так и gnome shell, то есть два раза - могу криво выражаться, я не программист. Если запретить gdm монтировать флешки, то фантомы исчезают, но флешки и диски все равно после логина автоматически монтируются правильно, для пользователя ничего не меняется.
Создаем файл
sudo nano /etc/polkit-1/rules.d/49-no-usb-mount-gdm.rules
И вписываем содержимое
polkit.addRule(function(action, subject) {
if (subject.user == "gdm") {
if (action.id == "org.freedesktop.udisks2.filesystem-mount" ||
action.id == "org.freedesktop.udisks2.filesystem-mount-other-seat" ||
action.id == "org.freedesktop.udisks2.encrypted-unlock" ||
action.id == "org.freedesktop.udisks2.encrypted-unlock-other-seat" ||
action.id == "org.freedesktop.udisks2.loop-setup") {
return polkit.Result.NO;
}
}
});
После чего перезагружаемся. Профит. Фантомов нет, но флешки примонтированы.
Упс.. переустановил систему - скрипт не срабатывает. Да, самый надежный вариант - применить указанный выше патч к расширению. Другие варианты ненадежны. |