winepak / applications

A collection of flatpak manifest for building Microsoft Windows applications with Wine via flatpak
https://www.winepak.org
416 stars 39 forks source link

[Idea] Use Phoenicis CLI to install applications #146

Closed plata closed 8 months ago

plata commented 5 years ago

Disclaimer: I'm an admin of Phoenicis.

I like the idea to be able to install Windows applications like "normal" applications on Linux. However, I think winepak has two big issues:

  1. The number of supported applications is rather small which is probably related to the fact that writing flatpak manifests is not so trivial for the average user (especially if the application requires additional dependencies/settings).
  2. I've read somewhere that it's legally problematic to ship installed applications. Not sure if winepak is considering that currently?

Phoenicis is the designated successor of PlayOnLinux/PlayOnMac. So for users who just want to install and run applications, it's only "yet another app store". I'm currently working on flatpak support for Phoenicis (see https://github.com/PhoenicisOrg/phoenicis/pull/1406). I'm having some trouble to get 32bit Wine installations running (maybe you can provide some input based on your experience with flatpak?). Phoenicis currently provides a GUI and a CLI version.

Therefore my idea: Use the Phoenicis scripts with Phoenicis CLI to create winepak applications in a generic way (i.e. install the application at flatpak installation via Phoenicis). This could be done automatically e.g. by CI.

What winepak would gain

What Phoenicis would gain

Maryse47 commented 5 years ago

I gave similar idea couple months ago, not much feedback: https://github.com/winepak/winepak/issues/17 . I think in case Phoenicis flatpak is created and pushed on flathub then winepak will be quite redundant.

plata commented 5 years ago

@Maryse47 this is not really what I'm proposing here. With my proposal, there would still be one flatpak for each application. The difference is that this flatpak does not have to be written manually but can be auto generated by using a Phoenicis script.

Maryse47 commented 5 years ago

I doubt it will work

plata commented 5 years ago

Why?

Maryse47 commented 5 years ago

Because that sounds very complicated and creating flatpaks aren't easy on its own. Generic Phoenicis flatpak is less ambitious but has more guarantees that will work. I may be wrong though so if I you pull it off then that's great but I'm realist/pessimist :smile: .

plata commented 5 years ago

Well, the only things that would change for different apps is the name and the Phoenicis command to install the apps. It should be rather easy to automate that.

omichalek commented 5 years ago

this sounds like a great idea, it is pity this project does not seem to be so lively

I have one question though:

What winepak would gain

* automatically and up-to-date Wine versions through [phoenicis-winebuild]

Shouldn't Wine be part of a runtime? In that way the applications would share the same runtime when possible. You could maintain a limited number of runtime variants, eg. wine-current, wine-1.6

Apparently it is also possible to define extensions for applications as well as runtimes: https://blogs.gnome.org/mclasen/2018/09/07/on-flatpak-dependencies/ I cannot say, but it may be helpful to you

plata commented 5 years ago

Yes, Wine would be part of a runtime. My point here was that phoenicis-winebuild could be used to build the Wine versions required for the flatpak automatically.

omichalek commented 5 years ago

it only makes sense to me! unfortunately I am not a developer

plata commented 5 years ago

Quick side note: Phoenicis can be installed with flatpak as well now.

Maryse47 commented 5 years ago

Aren't app profiles specify exact wine version they want to use (as it was in POL)? Having wine in the runtime would mean there is only one wine version available for apps unless you bundle all wine versions in the runtime.

plata commented 5 years ago

That's correct. The runtime would only contain the specific Wine version required by the app. I'm talking only about the availability of Wine versions to create a flatpak.

Maryse47 commented 5 years ago

I'm not sure if we understand each other but for the runtime, containing specific Wine version required by the app and sharing it between all apps is mutually exclusive.

plata commented 5 years ago

It's one specific Wine version required by the app.

Maryse47 commented 5 years ago

You can bundle specific Wine version with the app or use generic Wine version from the runtime, not both.

For example, winepak currently has wine 3.0 in the runtime plus couple more as runtime extensions. That's all that apps may use as they don't bundle wine themselves.

How Phoenicis will relate to this?

omichalek commented 5 years ago

I understand there would be a number of Wine runtimes BTW Is there a way to change the runtime dependency by the user? That could be useful.

Quick side note: Phoenicis can be installed with flatpak as well now.

thank you, I have to try that!

plata commented 5 years ago

@Maryse47 my idea was to create a runtime/extension for every Wine version. That way every app can have exactly the Wine version it requires.

@omichalek if you want to have that flexibility, you should probably use Phoenicis directly.

Maryse47 commented 5 years ago

my idea was to create a runtime/extension for every Wine version. That way every app can have exactly the Wine version it requires.

That's one of possible solutions, it will make runtime very huge though. Using Phoenicis directly seems better alternative, especially as winepak doesn't seem to be actively maintained.

omichalek commented 5 years ago

could the extensions come in handy? Does the flatpak program choose which runtime extensions are used? What if you put actual Wine into separate runtime extensions (one Wine version per extension) - would that make the runtime smaller?

Maryse47 commented 5 years ago

I'm not sure but it may be possible. App would declare specific wine version from extension and fallback to generic wine from runtime if declared extension is not available on system.

plata commented 4 years ago

I've implemented something quite similar to this idea with purely Phoenicis technology: https://github.com/plata/phoenicis-flatpak-notepad_plus_plus

If you're interested, take a look and let me know what you think.

Maryse47 commented 4 years ago

@plata side question - is phoenicis flatpak still alive?

plata commented 4 years ago

Yes. It will be updated as soon as the next Phoenicis release is available.

plata commented 8 months ago

Closing due to inactivity.