Call for testing: OpenToonz snap

It did not work, theres any way to make OT recognize my system ffmpeg installation?

I tried this as well, unfortunately AppArmor service still denies it. I think based on standard policy settings for snap it filters out bin and lib directories.

When using the browser in OT to pick the folder, it cannot navigate to the folder. If OT cannot navigate to it, it cannot get to it even if you just type in the path without browsing for it.

I’m not familiar with snap security, but is there a way you can you set up an AppArmor policy specifically for snap.opentoonz.opentoonz (I think) to use ā€œcomplainā€ mode? Curently, on Ubuntu, the policy is set to ā€œenforcedā€, but I think its inheriting it from the snap policy.

When you say ā€œdoesn’t workā€, what actually happens?

The directory selection dialog always fails with ā€œThe input folder path is invalidā€ error message and the audit log shows that the application attempt to access random top-level directories and as a result get a denial:

[97803.772237] audit: type=1400 audit(1556418141.285:1446): apparmor="DENIED" operation="open" profile="snap.opentoonz.opentoonz" name="/etc/" pid=16282 comm="OpenToonz" requested_mask="r" denied_mask="r" fsuid=12345 ouid=0
[97807.520837] audit: type=1400 audit(1556418145.033:1447): apparmor="DENIED" operation="open" profile="snap.opentoonz.opentoonz" name="/sbin/" pid=16282 comm="OpenToonz" requested_mask="r" denied_mask="r" fsuid=12345 ouid=0

The problem might be that the paths between /snap/…/current isn’t really accessible by the application and the file system traverse attempt failed.

Even when you force the FFmpeg path by throw in the /snap/opentoonz/current/usr/bin value into the textbox OpenToonz still complain about FFmpeg not found with more denial errors with unrelated paths:

[98105.899039] audit: type=1400 audit(1556418443.410:1455): apparmor="DENIED" operation="open" profile="snap.opentoonz.opentoonz" name="/meta/" pid=16282 comm="OpenToonz" requested_mask="r" denied_mask="r" fsuid=12345 ouid=0
[98105.899053] audit: type=1400 audit(1556418443.410:1456): apparmor="DENIED" operation="open" profile="snap.opentoonz.opentoonz" name="/mnt/" pid=16282 comm="OpenToonz" requested_mask="r" denied_mask="r" fsuid=12345 ouid=0
[98105.899055] audit: type=1400 audit(1556418443.410:1457): apparmor="DENIED" operation="open" profile="snap.opentoonz.opentoonz" name="/opt/" pid=16282 comm="OpenToonz" requested_mask="r" denied_mask="r" fsuid=12345 ouid=0
[98105.900637] audit: type=1400 audit(1556418443.414:1458): apparmor="DENIED" operation="open" profile="snap.opentoonz.opentoonz" name="/run/" pid=16282 comm="OpenToonz" requested_mask="r" denied_mask="r" fsuid=12345 ouid=0
[98105.900640] audit: type=1400 audit(1556418443.414:1459): apparmor="DENIED" operation="open" profile="snap.opentoonz.opentoonz" name="/sbin/" pid=16282 comm="OpenToonz" requested_mask="r" denied_mask="r" fsuid=12345 ouid=0

This is exactly what I was seeing in the logs. Even if you put the ffmpeg in a folder that opentoonz can get to, AppArmor will still deny the request to access it.

The only way I was able to get opentoonz to read the path and run ffmpeg successfully was to remove all the AppArmor profiles and readd the snapd profile in ā€œcomplainā€ mode. This is only temporary until the next reboot. Obviously this is not ideal nor something users should really be playing with.

There is something wrong with the snap. Like @Lin-Buo-Ren said, for some reason it is trying to access all kinds of top-level directories it doesn’t actually need access to. /meta/ is particularly interesting since that isn’t an LSB directory but it is within the snap’s runtime. You could perhaps solve this with layouts, but it really feels like that would just be papering over the bug that is causing this.

You might try installing the snap in --devmode which puts AppArmor in complain mode while you debug this.

1 Like

Hi all

Is there a way to make ffmpeg work finally?

I have noticed that the program ffmpeg included in the snap has problem when launched from terminal.

$ /snap/opentoonz/current/usr/bin/ffmpeg
/snap/opentoonz/current/usr/bin/ffmpeg: error while loading shared libraries: libavdevice.so.57: cannot open shared object file: No such file or directory

$ ls -al /snap/opentoonz/current/usr/bin/ff*
-rwxr-xr-x 1 root root 272528 Apr 24 2019 /snap/opentoonz/current/usr/bin/ffmpeg
-rwxr-xr-x 1 root root 137376 Apr 24 2019 /snap/opentoonz/current/usr/bin/ffplay
-rwxr-xr-x 1 root root 161944 Apr 24 2019 /snap/opentoonz/current/usr/bin/ffprobe
-rwxr-xr-x 1 root root 142608 Apr 24 2019 /snap/opentoonz/current/usr/bin/ffserver

I have logged an issue here (i did not know about this forum before):

I have replied on the github issue.

1 Like