I want to extend Inkscape (installed with snap) by putting the SVGO-Optimizer SVGO in Inkscape's local extension directory.
According to the Inkscape preferences dialog (Edit/Preferences/System), the directory to use is (and to put extensions in)
$HOME/.config/inkscape/extensions/
There I want to install inkscape-svgo.inx
. I followed the inkscape-svgo instructions.
however, Apparmor does not let me execute the extension from within the Inkscape GUI. I cannot execute the "Save As SVGO-Optimized SVG " dialog.
An uninformative "Saving as [any filename] failed" dialog appears.
I suspect it is an Apparmor issue.
How can I defined or extend the Apparmor rule to allow Inkscape to execute the SVGO extension?
journalctl
gives me this output:
AVC apparmor="DENIED" operation="open" profile="snap.inkscape.inkscape" name="/proc/148064/mountinfo" pid=148064 comm="inkscape" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
AVC apparmor="DENIED" operation="exec" profile="snap.inkscape.inkscape" name="$HOME/.config/inkscape/extensions/inkscape-svgo" pid=149456 comm="inkscape" requested_mask="x" denied_mask="x" fsuid=1000 ouid=1000
Script::execute(): failed to execute program '$HOME/.config/inkscape/extensions/inkscape-svgo'.
Reason: Failed to execute child process “$HOME/.config/inkscape/extensions/inkscape-svgo” (Permission denied)
My Inkscape version:
snap list inkscape
Name Version Rev Tracking Publisher Notes
inkscape 1.1-ce6663b3b7-2021-05-25 9090 latest/stable inkscape✓ -
AppArmor rules are defined in profiles which are stored in
/etc/apparmor.d/
You need to update the AppArmor profile with rules to permit filesystem access to the paths you are interested in for Inkscape.This tutorial from Ubuntu will help to guide you.
More details can be found in the AppArmor documentation, here.