mmtrt / foobar2000_AppImage

MIT License
5 stars 0 forks source link

AppImages should not download stuff at runtime #1

Closed probonopd closed 3 years ago

probonopd commented 5 years ago

AppImages should contain everything they need to run and not download stuff. Otherwise they will not work in offline scenarios. We are also testing this and to be listed on https://appimage.github.io/ an AppImage needs to be able to work without any Internet connectivity.

Instead, everything that is needed to run should be downloaded at AppImage creation time. Doing so will

Reference: https://docs.appimage.org/introduction/concepts.html

probonopd commented 5 years ago

Here someone also shares their concern: https://twitter.com/app4soft/status/1142892599445008385

mmtrt commented 5 years ago

I could remove wine appimage download part but then again this appimage does notify users when it downloads it if user don't have notify-send install then it didn't shown up.

This can work offline fine when wine-stable appimage exists in downloads or bin paths but then again it does use winetricks to install windows media player 9 for wma wmv playback support.

mmtrt commented 5 years ago

done 18de37d62dac6606091e86e7f2d4c5254212ef88 removed auto downloads of wine appimage.

probonopd commented 5 years ago

Next, let's bundle the subset of Wine that is needed to run foobar2000 in the foobar2000 AppImage. As per the AppImage philosophy, an AppImage must not depend on other AppImages.

I have done an example for Notepad++ at https://github.com/probonopd/libhookexecv/blob/a95d5b4bac7ea9375a4a1dea14166a5963b32ca4/winedeploy.sh

mmtrt commented 5 years ago

That can be done but the reason I did not done it was that we will be shipping same wine with its needed pkgs in per different appimage would be waste of disk space.

This was also the reason why I remove shipping wine and its pkgs in per windows application snap that I created which reduce size of snaps 99% as compared to having wine and its pkgs.

I think my approach is better which provides better wine support as wine appimage have all dependencies and don't have to hunt down each and every dependencies for games and applications which is time consuming and takes more time to build.

probonopd commented 5 years ago

Please consider that it is possible to ship just a minimized subset of Wine that is needed for the particular application or game, and this makes the resulting AppImages very small. Here is an example:

https://github.com/probonopd/libhookexecv/releases/download/continuous/NotepadPlusPlus-7.7.1-x86_64.AppImage

The Notepad++ application, the custom subset of Wine that is needed to run it, and all dependency libraries are bundled, yet the AppImage is still under 20 MB. The big advantage is that you need nothing besides the AppImage to run it.