DavidoTek / ProtonUp-Qt

Install and manage GE-Proton, Luxtorpeda & more for Steam and Wine-GE & more for Lutris with this graphical user interface.
https://davidotek.github.io/protonup-qt
GNU General Public License v3.0
1.27k stars 40 forks source link

Create a snap package (the hidden files or folder access of ~/.steam/ can now be solved!) #123

Open heidiwenger opened 2 years ago

heidiwenger commented 2 years ago

On Ubuntu, there is no .deb package and putting up flatpak support takes terminal commands and too much effort for a new comer to Linux (and Ubuntu is the main destination).

Referring to this partly solved issue (a flatpak was created but snap had a hurdle) https://github.com/DavidoTek/ProtonUp-Qt/issues/3

The technic that provides the same thing (to access those needed files / folders) as in the flatpack package is: https://snapcraft.io/docs/personal-files-interface

"The personal-files interface provides access to the specified files in the user’s home. This interface gives privileged access to the user’s data.

Auto-connect: no Super-privileged: yes "

DavidoTek commented 2 years ago

putting up flatpak support takes terminal commands and too much effort for a new comer to Linux (and Ubuntu is the main destination).

Yeah, it's probably easier to connect the personal files interface than installing Flatpak, even though you probably should do that as many apps are available as Flatpak.

ProtonUp-Qt could detect if it is running as Snap and if the personal files interface is connected. If that is not the case it can show the user a message like You are running the Snap version. You either need to connect the Personal Files Interface [or use the Flatpak version]. Please open a Terminal and enter snap connect blahblah.

I will take a look at creating a Snap package, if anyone wants to contribute a snapcraft.yaml in the meantime, feel free to do so.

heidiwenger commented 2 years ago

putting up flatpak support takes terminal commands and too much effort for a new comer to Linux (and Ubuntu is the main destination).

Yeah, it's probably easier to connect the personal files interface than installing Flatpak, even though you probably should do that as many apps are available as Flatpak.

ProtonUp-Qt could detect if it is running as Snap and if the personal files interface is connected. If that is not the case it can show the user a message like You are running the Snap version. You either need to connect the Personal Files Interface [or use the Flatpak version]. Please open a Terminal and enter snap connect blahblah.

I will take a look at creating a Snap package, if anyone wants to contribute a snapcraft.yaml in the meantime, feel free to do so.

Amazing stuff. All kinds of aid for this can be gotten from https://forum.snapcraft.io/t/protonup-qt-to-easily-install-proton-ge-for-steam/26492/2 additionally.

vrement commented 11 months ago

Came for the same. There's no snap package. Is there any progress for one yet?

sonic2kk commented 11 months ago

As far as I know, this has not been picked up. I didn't see anything in the commit history or any PRs directly related to this. I'm also not intimately familiar with Snap packaging (or really, any application packaging) so I'm not sure what needs to be done to implement this.

Probably a good place to start would be creating a snapcraft.yaml file, which is likely some kind of manifest file detailing an application's dependencies and permissions. I'm unsure of how to structure the dependencies, or of the overall format of the file, but a good reference might be the Flatpak JSON manifest. This should give an idea of what types of permissions ProtonUp-Qt needs (such as access to devices for controller support) as well as which files/folders it needs access to, and what kind of read/write permissions it needs (for example, it needs create permissions for ~/stl, and read-only permissions for a bunch of Lutris folders).

Creating the snapcraft.yaml would likely involve translating much of the information from the Flatpak manifest over into the structure used by Snapcraft manifest, but as for what is involved or how to do that, I am not sure.

DavidoTek commented 11 months ago

I think following steps need to be takes to create a Snap package:

Maintaining the Snap would require following:

I haven't planned to do that at the moment, but I'm happy to receive PRs or if anyone would like to maintain a snap package.

vrement commented 11 months ago

Alright, well i hope someone would pick this up then. I'll check back later :)

vrement commented 7 months ago

It has gone about 4 months now and i remembered this one. If there is anything to report i'd love to hear! I think ProtonUP is one of crucial tools for gamers. Would be great if it was available easily on Ubuntu as the LTS comes already nexth month.

sonic2kk commented 7 months ago

To my knowledge, no one has offered to create a Snap. At least they haven't posted about it here or made any PRs for a Snapcraft yaml or any CI/CD changes.

I don't use Snaps on my system (I believe you can set them up for Arch, but I have not done so) and I think its best to leave this kind of task to someone who uses and knows how to maintain Snaps.

I believe DavidoTek's comment above on what is involved still applies. I think if someone came forward to help maintain a Snap package they would've left some comments or questions here :-)

To this end, if you know anyone interested, be sure to spread the word.

DavidoTek commented 1 month ago

This looks promising: https://discourse.ubuntu.com/t/ubuntu-desktop-s-24-10-dev-cycle-part-5-introducing-permissions-prompting/47963

How prompting gives users control over the home interface The home interface 4 is a common interface required by desktop applications as it allows access to non-hidden files owned by the user in their home directory

Hmm, sounds like only non-hidden folders can be selected. Let's see. (It could still work for Steam snap when installed in ~/snap as this is not a hidden folder. That will likely change however with the introduction of the hidden snap folder ~/.snap https://github.com/DavidoTek/ProtonUp-Qt/issues/445)