Originally posted by Britoid
View Post
Announcement
Collapse
No announcement yet.
MPV 0.31 Video Player Adds Pseudo Client Side Decorations, Wayland Improvements
Collapse
X
-
Last edited by Gusar; 28 December 2019, 05:18 PM.
- Likes 5
-
Originally posted by Gusar View PostBut they're using NSWindow for more than just decorations right, it's used for all OS interaction. Whereas GTK would be needed *just* for decorations, while everything else can be handled by lower-lever interfaces - X calls or Wayland protocol calls or even KMS/GBM calls. protocol.
You could also directly talk to the Quartz compositor if you really wanted to, but I don't think that's recommended and it's a private API.
Originally posted by Gusar View PostAnd even GTK isn't actually needed if Mutter devs implement the xdg-decoration protocol.Last edited by Britoid; 28 December 2019, 05:37 PM.
Comment
-
Originally posted by Britoid View Post
People love them because they think it gives you the macOS-like application distribution under Linux, but the technology is really really bad and not comparable to how macOS does it. So these reasons listed here are purely technical.
1) They're not guaranteed to run everywhere, unlike say a Flatpak, because AppImages are often compiled for an Ubuntu LTS which is nearly-always incompatible with a fast-moving distro like Fedora or Arch. This means the application author has to always keep trying to see what dependencies they can and can't bundle, which is painful to the point they give up in the end (Stremio, Peek etc dropped their AppImages).
Originally posted by Britoid View Post2) FUSE... it uses FUSE to mount the application files at startup which causes multiple issues. It will slow the application startup quite significantly and because each subsequent launch remounts the files as a fresh mount, you'll loose any benefit of filesystem cache (the app won't launch faster the second time). It also doesn't work in envrionments where FUSE isn't enabled, which is fairly common in enterprise envrionments.
Originally posted by Britoid View Post3) It's often bundle bingo in terms of what dependencys are bundled, I've seen AppImages bundle OpenSSL, GnuTLS, libcurl etc which is an awful idea for security reasons, compared to Flatpak where these come from mantained runtimes.
Originally posted by Britoid View Post4) No native sandboxing, you can enable services that track AppImages on the disk and try and sandbox them with firejail, but this doesn't work as cohesive as sandboxing in Flatpak.
Snap: I'm not sure
AppImage: Can be sandboxed, but done by application
Windows executable: Same as AppImage
macOS bundle: Best choice. Can be sandboxed, done by system.
Originally posted by Britoid View Post5) Desktop intergration. The AppImage does self extract a desktop file, but it won't pick it up when you delete it. Again, you can add more services that watch the filesystem for new AppImages, which then executes them to extract desktop files, this is a big security issue. Flatpak natively intergrates with the various XDG standards. System-installed AppImages are also a pain to install.
Like, dropping the AppImage to some apps directory and that's it...
Originally posted by Britoid View Post6) They promote a bad security practice of setting things you download as executable and running them, this is how people stupidly install malware.
I mean, any Windows user normally just downloads their app and runs it... like no need to "make it executable" or any of that stuff...
I really hate mentioning them, but I think Apple made the best application packaging scheme ever...
Comment
-
Originally posted by tildearrow View PostNot only it is a bad practice, but also is Average Joe-unfriendly. Who thought having to "make it executable" was a good idea?
I mean, any Windows user normally just downloads their app and runs it... like no need to "make it executable" or any of that stuff...
Comment
-
Originally posted by tildearrow View PostI wish they would go the macOS way...
Like, dropping the AppImage to some apps directory and that's it...
If I'm not mistaken appimaged looks for a default firejail profile and loads it if exists
and no, no FUSE were needed to mount squashfs last time I checked. That guy speaks gibberish
Usually the problem is not the AppImage but firejail profiles. If an app won't start with provided profile it's pita to figure out why.
And I like separation of concerns here - appimage for packaging and firejail for sandboxing. Both parts can be used independently.
Comment
-
Originally posted by tildearrow View PostDoes it matter? Developers in macOS/Windows land also bundle those libraries with their apps, and nobody complains?...
Originally posted by tildearrow View PostI really hate mentioning them, but I think Apple made the best application packaging scheme ever...
Comment
-
Originally posted by flux242 View Post
so they did https://github.com/AppImage/appimaged/
If I'm not mistaken appimaged looks for a default firejail profile and loads it if exists
and no, no FUSE were needed to mount squashfs last time I checked. That guy speaks gibberish
Usually the problem is not the AppImage but firejail profiles. If an app won't start with provided profile it's pita to figure out why.
And I like separation of concerns here - appimage for packaging and firejail for sandboxing. Both parts can be used independently.
So please take back your comment.
Comment
-
-
Originally posted by Britoid View PostSo please take back your comment.
The appimaged daemon described here 30 now uses an existing installation of firejail to run AppImages without the need of making them executable. firejail, in turn, uses in-kernel mounting, which should make the AppImages even a little faster to launch.
Comment
-
Originally posted by flux242 View Postsorry, I can't because
so ALL appimages I have are mounted as loop devices
me:
2) FUSE... it uses FUSE to mount the application files at startup
and no, no FUSE were needed to mount squashfs last time I checked. That guy speaks gibberishCode:./LibreOffice-fresh.full-x86_64.AppImage dlopen(): error loading libfuse.so.2 AppImages require FUSE to run. You might still be able to extract the contents of this AppImage if you run it with the --appimage-extract option. See https://github.com/AppImage/AppImageKit/wiki/FUSE for more information
Last edited by Britoid; 29 December 2019, 06:12 AM.
- Likes 1
Comment
Comment