I recently snapped XDM (Xtreme Download Manager) as a snap, the snap is live but it cant open several links to firefox and also when downloading and saving files it always throwback error :
–> Disk is either full or read only, this behaviour is observed even though my snap has access to home, how do i tackle this and make my snap operate properly, the snap runs absolutely fine when native…
I am having the same issue with KDE ark ( file archive app ) I have the home plug set as well.
Yeps, i tried my best giving all the plugs and interfaces i can in the sandbox but the app wont save and download files, plus it is also unable to open some links to browsers, i hope some snap dev look into this or we can do a joint investigation on this issue ?
I will update here on any progress or lack thereof!
Is this issue related to home not having write permissions, i am not sure but this post seems similar --> Firefox permission issue in Ubuntu 22.04.1
No proper explanation yet, i am still figuring out
well, the thread you link to was actually missing write permissions of the home dir on the filesystem … not related to snaps or anything, just a messed up OS where the user had obviously run a wrong chmod command somehow…
Is there any way i can make the snap executable use chmod 755 because i think the app is built to use chmod755 or can only be used by the local user, this the only link i can get to see how the deb was built --> https://github.com/subhra74/xdm/blob/master/app/packaging/make-deb-pkg
no, you can not any why would you … homedirs are usually 755 already and since you run as the user owning the homedir only the first number of the octal applies anyway (the 7) so you have 100% access to it unless you manually changed that with a chmod command …
The problem is that the app refuses to write anything in the download folder or anywhere in the system, the core function of the app is to download files, without it the app is showpiece, as i mentioned earlier the app refuses to download anything when in snap confinement plus it also refuses to open several links to firefox(or any browser native or sandboxed), this all are behavior not present in native deb packaging, is there any way i can workaround this problem
yes, you said so in your opening post … but still have not provided any debugging info … i.e. snappy-debug denials or logs from your journal or whatnot … just blindly guessing will not get you forward, collect data
snappy debug doesnt give anything meaningful, this is a part of snappy debug --:
= AppArmor =
Time: Mar 22 20:47:34
Log: apparmor=“DENIED” operation=“open” class=“file” profile=“snap.xdm-snap.xdm-snap” name="/firstname.lastname@example.org/app.slice/snap.xdm-snap.xdm-snap.ae9f354a-8bcb-4650-9305-dea5a1f7e171.scope/memory.max" pid=20244 comm=“xdm-app” requested_mask=“r” denied_mask=“r” fsuid=1000 ouid=1000
so your issue is really not snap or confinement related then …
Natively the app is working fine, in regards to packaging, i just dumped the deb and nothing else
well, the above only shows it is trying to read the max allowed memory it can use … but nothing about any file system access … if confinement would block in any way, there would be a denial … are you sure your app is even accessing the actual home dir and not something in the core snap or in your snap (which are both read-only)
Here is the full screenshot, i have provided home interface and other interfaces that are important are provided by gnome extension,
Here is the latest yaml -->
what is that layout supposed to do (it indeed points to a place where your user will not be able to write) ?
you should also use
snapcraft expand-extensions more often, the list of plugs has a lot of duplicates the gnome extension brings along …
In my earlier builds without the layout, then also snap used to fail and produce errors, i just introduced it as a proper way of making the snap read its config, but it didnt solved anything, i will implent the extend command in future works…
Removing it currently although no success is expected as earlier buld were also without layouts…
i’d recommend using strace and analyzing exactly what it does, at which steps it fails and see where exactly it goes wrong … that might give you some hints …