Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Standalone wine builds in AppImage format #128

Open
probonopd opened this issue Aug 1, 2020 · 3 comments
Open

Standalone wine builds in AppImage format #128

probonopd opened this issue Aug 1, 2020 · 3 comments

Comments

@probonopd
Copy link

probonopd commented Aug 1, 2020

(Continuation from ferion11/Proton_Appimage#2 (comment))

Providing standalone wine builds in AppImage format would have several advantages. It is a frequently discussed/requested topic in the forums.

In a nutshell, we would have a single executable file that could run w32 apps on 64-bit Linux systems without the need for any 32-bit libraries to be installed on the target system.

Proof-of-concept:

In a second step, we could use the same methodology to package standalone w32 apps as single executable files using the AppImage format (maybe automated using https://github.com/PhoenicisOrg/scripts) reusing much of the same work.

Proof-of-concept:

@qparis here:

Phoenicis wine build could automatically build any version to an app image format. What do we need to know to create a wine app image from a source root?

Looking at https://github.com/Hackerl/Wine_Appimage/blob/master/deployscript/debian-winedeploy.sh, it is actually quite easy - the existing wine builds can be reused, and an AppImage can be made by just executing a few extra steps:

  1. Add libhookexecv.so and wine-preloader_hook here
  2. Add all dependencies of wine (in this example, using debian) here
  3. Turn the directory into an AppImage using appimagetool here
@probonopd
Copy link
Author

In case you wonder what libhookexecv.so and wine-preloader_hook are all about, it is explained in detail at

Instead of getting a patch into wine upstream, @Hackerl made a solution using LD_PRELOAD: Hackerl/Wine_Appimage#11.

If you think it would be cleaner, it might still be worthwhile to get the solution into wine upstream proper. Since @qparis is a well-known wine community member, I guess that with your support it could be achieved.

@qparis
Copy link
Member

qparis commented Aug 1, 2020

Ok ! It seems quite easy. In fact, if we start from the .tar.gz generated by winebuild, the 2) is already done.

I suggest we start with wine-preloader_hook to see if it works before implementing some patches.

Simple question: can the appimagetool run inside a docker container?

@probonopd
Copy link
Author

probonopd commented Aug 1, 2020

Yes. It comes as an AppImage itself which means it needs FUSE. For security reasons, FUSE is usually disabled in Docker containers, so you can use --appimage-extract or --appimage-extract-and-run as described at https://github.com/AppImage/AppImageKit/wiki/FUSE#docker:

wget -c https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x appimagetool-x86_64.AppImage
./appimagetool-x86_64.AppImage --appimage-extract-and-run <other command line arguments>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants