Разработайте пакет Snap для проекта с использованием SDL2
В настоящее время я занимаюсь разработкой приложения, которое использует джойстик и генерирует различные звуковые волны с использованием SDL. Хотя реализация работает без каких-либо проблем, после того, как я упакую свое приложение с помощью Snapcraft, мое приложение не сможет ни генерировать звуки, ни получать данные от джойстика.
Интерфейсы, которые использует мое приложение:
- x11
- сеть
- PulseAudio
- сети связывания
- системы наблюдения
- сети наблюдения
Кроме того, при запуске приложения из терминала я получаю следующие ошибки / предупреждения:
shm_open() failed: Permission denied
ALSA lib conf.c:3750:(snd_config_update_r) Cannot access file /usr/share/alsa/alsa.conf
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM default
XmbTextListToTextProperty result code -2
Эти предупреждения не появляются, если я запускаю свое приложение "классическим" способом (sudo make install). Можно ли настроить мой snapcraft.yaml
чтобы SDL2 работал правильно?
1 ответ
Вы сталкиваетесь с частью структуры безопасности, которая даже в configure: devmode
все еще не позволяет оснастке выполнять произвольные операции в системе. Я дурачился на быстром детском гитхабе (в котором есть чат), но я ни в коем случае не эксперт. Если вы определяете plugs
для каждого из ваших apps
/ parts
и подключаем их к ядру Ubuntu slots
после snap
Если у вас есть кое-что серьезное, над чем поработать. Если вы этого не сделали, продолжайте работать над этим. Вы получили свой snapcraft.yaml
где-нибудь?
snapd
компонент snappy
все еще находится в стадии интенсивного развития, и snapcraft
сам по себе. То, что до сих пор остается ручным, может быть лучше автоматизировано в ближайшее время. Однако я бы сначала предложил перенести ваш проект в snappy-playpen
репо и получить некоторую помощь от команды сообщества и snappy
дэвы. В этот вторник, 21 июня, будет открыта онлайн-клиника. Может быть, посмотрите G+ для получения дополнительной информации, если вам интересно, он будет транслироваться в Ubuntu On Air, пока это происходит.