yktoo / indicator-sound-switcher

Sound input/output selector indicator for Linux
https://yktoo.com/en/software/sound-switcher-indicator/
GNU General Public License v3.0
365 stars 28 forks source link

Fix autostart after multiple snap updates #127

Closed eth481642 closed 1 year ago

eth481642 commented 1 year ago

Resolves #128.

Исправлена проблема, суть которой в следующем: символическая ссылка на .desktop файл создаётся в $SNAP_USER_DATA/.config/autostart/ только во время первого запуска после установки и не изменяется после обновлений snap пакета. Snapd хранит только две ревизии $SNAP_USER_DATA: текущую и предыдущую. К примеру мы установили пакет с ревизией 90. В /home/user/snap/indicator-sound-switcher/ создаётся директория 90 и $SNAP_USER_DATA указывает на эту директорию. После первого запуска программы в $SNAP_USER_DATA/.config/autostart/ создаётся символическая ссылка на /snap/indicator-sound-switcher/90/share/applications/indicator-sound-switcher.desktop. Далее мы обновляем snap пакет на ревизию 91, но символическая ссылка $SNAP_USER_DATA/.config/autostart/indicator-sound-switcher.desktop будет указывать на .desktop файл из предыдущей ревизии - /snap/indicator-sound-switcher/90/share/applications/indicator-sound-switcher.desktop. Пока что всё нормально. Но при следующем обновлении на ревизию 92, директория с ревизией 90 удаляется(/snap/indicator-sound-switcher/90/) и теперь наша ссылка указывает на несуществующую директорию и как следствие автозапуск перестаёт работать

Также внёс небольшие изменения в snapcraft.yaml. Во-первых при сборке на современных версиях snapcraft ругается на то, что в секции stage указаны директории. А во-вторых ругается на директиву python-version, которая судя по всему становится deprecated

yktoo commented 1 year ago

Спасибо, @eth481642 !