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

Add com.github._0negal.Viper #2991

Closed

Conversation

GeckoEidechse
Copy link

@GeckoEidechse GeckoEidechse commented Apr 6, 2022

Please confirm your submission meets all the criteria

  • I have read the App Requirements and App Maintenance pages.
  • My pull request follows the instructions at App Submission.
  • I am using only the minimal set of permissions. (If not, please explain each non-standard permission.)
    Non-standard permissions:
    • --filesystem=host: I'd love to restrict this further but the point of this application is to autodetect the Steam install location of the game "Titanfall 2" and then access that location.
      In order to do that it needs access to Steam configuration file that specifies the install locations which can be located at multiple places inside the user's home directory depending on the install method (deb vs Flatpak). Further it then needs access to the game's install location which can be anywhere in the filesystem.
    • --filesystem=home: Required to access the Steam library location config file (read-only) as well as the installed "Titanfall 2" game itself (write access to download and add the mod).
    • --filesystem=/media: Alternative install location for games on Steam if they are installed on a SD card. Common on platforms like the SteamDeck.
    • --filesystem=/mnt: Alternative install location for games on Steam if they are installed a secondary drive (like an HDD due to storage limitations on the main drive.
  • All assets referenced in the manifest are redistributable by any party. If not, the unredistributable parts are using an extra-data source type.
  • I am an upstream contributor to the project. If not, I contacted upstream developers about submitting their software to Flathub.
    Link: feat: Flatpak support 0neGal/viper#75 (comment)
  • I own the domain used in the application ID or the domain has a policy for delegating subdomains (e.g. GitHub, SourceForge).
    There's a small issue with this part:
    I cannot make the application ID 1:1 based on the repo URL as the owner's name starts with a zero, so the resulting ID would be com.github.0neGal.viper. However having an element in the ID start with a digit is disallowed by Flatpak. As such, when discussing with the maintainer we settled on com.github.onegal.Viper. Checking Github, there exists no user with the name onegal so I guess this should be fine ¯\_(ツ)_/¯
    AppID updated to com.github._0negal.Viper
  • Any additional patches or files have been submitted to the upstream projects concerned. (If not, explain why.)

- --share=ipc # Necessary for X11
- --share=network # Network access
- --device=dri # OpenGL rendering
- --filesystem=host # Full filesystem access, Titanfall2 could be installed anywhere on disk
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:-(

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the issue here exactly? As explained in the initial description--filesystem=host is sadly necessary :/

com.github.onegal.Viper.yaml Outdated Show resolved Hide resolved
com.github.onegal.Viper.yaml Outdated Show resolved Hide resolved
com.github.onegal.Viper.yaml Outdated Show resolved Hide resolved
com.github.onegal.Viper.yaml Outdated Show resolved Hide resolved
com.github.onegal.Viper.yaml Outdated Show resolved Hide resolved
com.github.onegal.Viper.yaml Outdated Show resolved Hide resolved
@hfiguiere
Copy link
Contributor

bot, build com.github.onegal.viper

@flathubbot
Copy link

Queued test build for com.github.onegal.viper.

@hfiguiere
Copy link
Contributor

bot, build com.github.onegal.Viper

@flathubbot
Copy link

Queued test build for com.github.onegal.Viper.

@GeckoEidechse GeckoEidechse changed the title Add files for submission to Flathub Add com.github.onegal.Viper Apr 6, 2022
GeckoEidechse and others added 5 commits April 6, 2022 23:55
Co-authored-by: Hubert Figuière <hub@figuiere.net>
Co-authored-by: Hubert Figuière <hub@figuiere.net>
@hfiguiere
Copy link
Contributor

bot, build com.github._0negal.Viper

@flathubbot
Copy link

Queued test build for com.github._0negal.Viper.

@GeckoEidechse GeckoEidechse changed the title Add com.github.onegal.Viper Add com.github._0negal.Viper Apr 6, 2022
@GeckoEidechse
Copy link
Author

Also I forgot to mention but if accepted, @0neGal should probably also be given write access to the repo ^^

@flathubbot
Copy link

Started test build 85162

@flathubbot
Copy link

Build 85162 successful
To test this build, install it from the testing repository:

flatpak install --user https://dl.flathub.org/build-repo/83007/com.github._0negal.Viper.flatpakref

@barthalion
Copy link
Member

barthalion commented Apr 7, 2022

--filesystem=host: I'd love to restrict this further but the point of this application is to autodetect the Steam install location of the game "Titanfall 2" and then access that location.
In order to do that it needs access to Steam configuration file that specifies the install locations which can be located at multiple places inside the user's home directory depending on the install method (deb vs Flatpak). Further it then needs access to the game's install location which can be anywhere in the filesystem.

Please bear with me for a minute… If we're talking about installations done by host-level Steam or flatpaked Steam, wouldn't this location be the same in 99% of cases? The point of my question is that we generally prefer locked-down permissions that are good enough for the majority of users over wide ones, as they can always be modified through CLI or Flatseal.

README.md Show resolved Hide resolved
update-version.py Show resolved Hide resolved
@GeckoEidechse
Copy link
Author

--filesystem=host: I'd love to restrict this further but the point of this application is to autodetect the Steam install location of the game "Titanfall 2" and then access that location.
In order to do that it needs access to Steam configuration file that specifies the install locations which can be located at multiple places inside the user's home directory depending on the install method (deb vs Flatpak). Further it then needs access to the game's install location which can be anywhere in the filesystem.

Please bear with me for a minute… If we're talking about installations done by host-level Steam or flatpaked Steam, wouldn't this location be the same in 99% of cases? The point of my question is that we generally prefer locked-down permissions that are good enough for the majority of users over wide ones, as they can always be modified through CLI or Flatseal.

I agree, I'd also prefer more locked down permissions but the issue is the following:

So the location of the Steam library config file is known and is always within the user's home directory in one of 3 places:

  • ~/.steam/steam/steamapps/libraryfolders.vdf
  • ~/.var/app/com.valvesoftware.Steam/.steam/steam/steamapps/libraryfolders.vdf
  • ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/libraryfolders.vdf

The default install location for the game itself is usually also within the user's home directory (depending on how Steam was installed):

  • ~/.steam/steam/steamapps/common/
  • ~/.var/app/com.valvesoftware.Steam/.steam/steam/steamapps/common/
  • ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/

However that's just the default location. For example one of our targets with Viper is the SteamDeck where the game it adds the mods for could be installed on the SD card. So we also need file system access to that location (usually /media?).

There's also users that have games installed on a secondary drive (usually some HDD) due to games' ever increasing filesize. As such to make the install as smooth as possible for those users, /mnt access would probably also be needed as well.

Then finally, to my knowledge, on Linux a user can add arbitrary locations in the filesystem as a Steam library folder which is where things start to break down if we limit ourselves to just home directory, /mnt and /media.

Now I agree with your reasoning that 99% of users will either have their install in either of those 3 ($HOME, /media, /mnt), so I can try to update the manifest accordingly. However this means we'll also have to add some documentation somewhere for the last 1% of users to tell them how to enable full access via Flatseal.

This shouldn't have been in there in the first place. I only intended to
add the header image
@GeckoEidechse
Copy link
Author

I restricted file system access now in 8cc035d

@GeckoEidechse
Copy link
Author

bot, build com.github._0negal.Viper

@flathubbot
Copy link

Queued test build for com.github._0negal.Viper.

@flathubbot
Copy link

Started test build 85208

@flathubbot
Copy link

Build 85208 successful
To test this build, install it from the testing repository:

flatpak install --user https://dl.flathub.org/build-repo/83053/com.github._0negal.Viper.flatpakref

@GeckoEidechse
Copy link
Author

Newest build seems to still work ^^

@barthalion
Copy link
Member

/merge @0neGal

@flathubbot
Copy link

A repository for this submission has been created: https://github.com/flathub/com.github._0negal.Viper

You will receive an invitation to be a collaborator which will grant you write access to the repository above. The invite can be also viewed here.

If you have never maintained an application before, common questions are answered in the app maintenance guide.

Thanks!

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

Successfully merging this pull request may close these issues.

None yet

4 participants