applications icon indicating copy to clipboard operation
applications copied to clipboard

[Idea] Use Phoenicis CLI to install applications

Open plata opened this issue 5 years ago • 23 comments

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

  • more applications
  • easier way to describe application specific dependencies/settings (e.g. Wine dll overrides)
  • automatically and up-to-date Wine versions through phoenicis-winebuild (currently only generic Linux builds, but flatpak is considered)

What Phoenicis would gain

  • your flatpak experience
  • more integrated user experience for (probably) the majority of users

plata avatar Oct 21 '18 09:10 plata

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.

Maryse47 avatar Oct 21 '18 10:10 Maryse47

@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.

plata avatar Oct 21 '18 11:10 plata

I doubt it will work

Maryse47 avatar Oct 21 '18 12:10 Maryse47

Why?

plata avatar Oct 21 '18 12:10 plata

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: .

Maryse47 avatar Oct 21 '18 13:10 Maryse47

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.

plata avatar Oct 21 '18 13:10 plata

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

omichalek avatar Nov 28 '18 17:11 omichalek

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.

plata avatar Nov 28 '18 17:11 plata

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

omichalek avatar Nov 28 '18 18:11 omichalek

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

plata avatar Nov 28 '18 18:11 plata

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.

Maryse47 avatar Nov 29 '18 12:11 Maryse47

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.

plata avatar Nov 29 '18 16:11 plata

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.

Maryse47 avatar Nov 29 '18 21:11 Maryse47

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

plata avatar Nov 29 '18 21:11 plata

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?

Maryse47 avatar Nov 30 '18 10:11 Maryse47

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!

omichalek avatar Nov 30 '18 12:11 omichalek

@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.

plata avatar Nov 30 '18 14:11 plata

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.

Maryse47 avatar Nov 30 '18 17:11 Maryse47

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?

omichalek avatar Dec 01 '18 23:12 omichalek

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.

Maryse47 avatar Dec 02 '18 10:12 Maryse47

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.

plata avatar Apr 18 '20 18:04 plata

@plata side question - is phoenicis flatpak still alive?

Maryse47 avatar Apr 19 '20 10:04 Maryse47

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

plata avatar Apr 19 '20 12:04 plata

Closing due to inactivity.

plata avatar Oct 30 '23 11:10 plata