Menu

#5 Consider uploading to Flathub

open
nobody
None
2022-09-20
2022-09-07
No

Recently, I noticed that a lot of the classic "distro repo games" like Frozen Bubble, Rocks'n'Diamonds, and Enigma have been added to Flathub and, as someone who enjoys Hex-a-hop, I'd really like to see it on there too, both for the convenience and the chance to get found by new players.

(If you're not familiar with Flathub, it's the main package repository for Flatpak, which is the effort to provide a modern cross-distro package manager with Android/iOS-like sandboxing that's being taken up by basically all distros except Ubuntu, who are staying true to form and trying to get people to adopt a competing solution (with a more fundamentally flawed design but a bigger PR budget) that they control named Snap... though I can confirm Flatpak works perfectly on Ubuntu-family distros if you follow the quick install instruction on Flathub.)

If you're interested, I'd be willing to put together a set of the requisite metadata files analogous to the debian folder in your repo. It's just that their submission guide says they just want people to ask upstream to do the submitting if possible. (If you need an example of the relevant metadata, here's a set of such files that I put together for the e-mail I sent to the author of I Have No Tomatoes yesterday. The only file in that repo that isn't a "Useful for everyone. Upstream it if possible." file is the flatpak-builder JSON file itself.)

Discussion

  • Stephan Sokolow

    Stephan Sokolow - 2022-09-07

    Also, I forgot to mention, but it's likely the reason such games have been showing up on Flathub lately is that, by default, the Steam Deck comes with a read-only OS partition and Flathub support, so uploading to Flathub is sort of like submitting to F-Droid, but for the Steam Deck.

     
  • Paul Wise

    Paul Wise - 2022-09-19

    Thanks for the suggestion and sorry for the delay in responding.

    I agree that it would be useful for Hex-a-Hop to be available on Flathub for folks who use immutable systems like Fedora Silverblue or SteamOS.

    Since Flatpak is a packaging system I think that the packaging files should be maintained separately to the upstream project. The appropriate location would be where separate Flatpak packaging is often stored. For Flathub that seems to be in a git repository in the @flathub organisation on GitHub.

    Personally I prefer packaging systems with more fine-grained dependencies such as Debian packages, so I don't intend to work on a Flathub submission myself and would prefer that someone else submit and maintain the package.

    If you decide to submit Hex-a-Hop to the Flathub GitHub organisation, please @pabs3 in your submission so I get a notification and I can then review what you submitted.

    Please note that some of the audio included in Hex-a-Hop git master is licensed under non-free licenses, so if Flathub requires licenses to be free, then you may need to strip those files out. If you are interested in helping replace them, contributions are welcome of course.

    Please also forward and bugs reported, workarounds found or patches written etc back to this upstream project for Hex-a-Hop. Unfortunately that hasn't happened for other projects I am upstream for like Chromium BSU.

    https://github.com/flathub/net.sourceforge.chromium-bsu/

    I also think that the Debian packaging should be maintained within Debian, so probably the debian/ directory will get removed at some point, since the Debian games team are already maintaining Debian packaging for Hex-a-Hop.

    I can't find your ticket in the Tomatoes project, but I think the same reasoning as above applies to it too.

    https://sourceforge.net/projects/tomatoes/

     
  • Stephan Sokolow

    Stephan Sokolow - 2022-09-19

    Thanks for the suggestion and sorry for the delay in responding.

    No problem.

    Since Flatpak is a packaging system I think that the packaging files should be maintained separately to the upstream project. The appropriate location would be where separate Flatpak packaging is often stored. For Flathub that seems to be in a git repository in the @flathub organisation on GitHub.

    Yeah. They have a couple of bots tied into it for automatic "bump dependencies" PRs if you define how to check for updates, test builds of PRs, and automatic deployment to Flathub.

    Personally I prefer packaging systems with more fine-grained dependencies such as Debian packages, so I don't intend to work on a Flathub submission myself and would prefer that someone else submit and maintain the package.

    No problem. As long as you're OK with it, I'd be willing to put together a build manifest and Appstream XML for it. (Once I finish resolving the remaining blockers on the PySolFC manifest I'm currently working on.)

    My main issue with maintainership in general is limited tolerance for new obligations showing up out of the blue and, with flatpak-external-data-checker handling version bumps and the game itself seeing minimal change meriting new releases, that shouldn't be a problem.

    If you decide to submit Hex-a-Hop to the Flathub GitHub organisation, please @pabs3 in your submission so I get a notification and I can then review what you submitted.

    Would you prefer I put something up on my personal GitHub account for you to review before I do the "fork new-pr on flathub, put your submission in it, open a PR, and let them review it" dance and involve a submission reviewer from Flathub?

    Please note that some of the audio included in Hex-a-Hop git master is licensed under non-free licenses, so if Flathub requires licenses to be free, then you may need to strip those files out. If you are interested in helping replace them, contributions are welcome of course.

    Flathub is OK with non-free licenses. As I understand it, that's why Fedora Silverblue doesn't enable it as a source by default.

    The submission guidelines say:

    All content hosted on Flathub must allow legal redistribution, and the license must be correctly specified in the app's appdata file. Non-redistributable files can be downloaded at install time using the extra-data source type.

    ...so it should be fine.

    Please also forward and bugs reported, workarounds found or patches written etc back to this upstream project for Hex-a-Hop. Unfortunately that hasn't happened for other projects I am upstream for like Chromium BSU.

    I'll have to ask them if they'd be willing to turn off the issue tracker on the GitHub repo and let you @ssokolow me when I'm relevant.

    I can't find your ticket in the Tomatoes project, but I think the same reasoning as above applies to it too.

    I e-mailed Mika Halttunen directly because the state of the SourceForge project didn't give me much confidence that I'd get a response there. I already got the "I don't have time to do this, but go ahead" and I'm now maintaining a FlatHub release of it:

    https://flathub.org/apps/details/net.sourceforge.tomatoes.IHaveNoTomatoes

     

    Last edit: Stephan Sokolow 2022-09-19
    • Paul Wise

      Paul Wise - 2022-09-19

      On Mon, 2022-09-19 at 06:58 +0000, Stephan Sokolow wrote:

      No problem. As long as you're OK with it, I'd be willing to put
      together a build manifest and Appstream XML for it.

      Please do. There is an Appstream XML file in the upstream git repo
      already, hopefully it is suitable for Flathub too.

      Would you prefer I put something up on my personal GitHub account for
      you to review before I do the "fork new-pr on flathub, put your
      submission in it, open a PR, and let them review it" dance and
      involve a submission reviewer from Flathub?

      That seems reasonable to me, if you want to go that way.
      I am also fine just commenting on your initial submission too.

      Flathub is OK with non-free licenses. As I understand it, that's why
      Fedora Silverblue doesn't enable it as a source by default.

      Sounds like Fedora might change that at some point.

      https://lwn.net/Articles/897793/

      I'll have to ask them if they'd be willing to turn off the issue
      tracker and let you @ssokolow me when I'm relevant.

      That seems OK too, if you prefer it instead of forwarding issues.

      I e-mailed Mika Halttunen directly because the state of the
      SourceForge project didn't give me much confidence that I'd get a
      response there.

      Yeah, I got access to the Tomatoes project too but never got around to
      modernising the project with a VCS/etc.

      I already got the "I don't have time to do this, but go ahead" and
      I'm now maintaining a FlatHub release of it:

      Great, thanks for that.

      --
      bye,
      pabs

      https://bonedaddy.net/pabs3/

       
  • Stephan Sokolow

    Stephan Sokolow - 2022-09-20

    Please do. There is an Appstream XML file in the upstream git repo already, hopefully it is suitable for Flathub too.

    It's a bit incomplete. Aside from me being a completionist and a perfectionist, I'm not sure it'll pass validation, since I think the validator wants at least one <release> element so it can surface them in the upcoming UI redesign being demo'd at beta.flatpak.org (beta.flathub.org).

    (I've fired off a request to relicense the release text from Tomatoes to improve its entry on that front.)

    You'll probably see me offering up a patch to expand your Appstream XML out to something like this.

    Sounds like Fedora might change that at some point.

    https://lwn.net/Articles/897793/

    Thanks for that. I really need to get back to reading LWN consistently again.

    Yeah, I got access to the Tomatoes project too but never got around to
    modernising the project with a VCS/etc.

    Speaking of which, would you like me to add a <url type="bugtracker">https://sourceforge.net/p/tomatoes/_list/tickets</url> element to the Appstream XML for Tomatoes when I add the x-checker-data definitions I forgot to add for Tomatoes itself?

    Also, if you ever do get around to it, let me know in case I have time to write a patch to add native joystick/gamepad support for people like Steam Deck users.

     
    • Paul Wise

      Paul Wise - 2022-09-20

      On Tue, 2022-09-20 at 00:43 +0000, Stephan Sokolow wrote:

      It's a bit incomplete. Aside from me being a completionist and a
      perfectionist, I'm not sure it'll pass validation,

      Is there a command-line validator tool for the format I should use?

      You'll probably see me offering up a patch to expand your Appstream
      XML out to something like [this]

      Great, thanks.

      Speaking of which, would you like me to add a [bugtracker] element to
      the Appstream XML for Tomatoes when I add the x-checker-data
      definitions I forgot to add for Tomatoes itself?

      Sounds good.

      Also, if you ever do get around to it, let me know in case I have
      time to write a patch to add native joystick/gamepad support for
      people like Steam Deck users.

      OK, will do.

      --
      bye,
      pabs

      https://bonedaddy.net/pabs3/

       
  • Stephan Sokolow

    Stephan Sokolow - 2022-09-20

    Is there a command-line validator tool for the format I should use?

    Yes, but the upstream maintainership situation is... less than satisfactory and it's no longer in sync with the published spec. (eg. It'll reject valid <description> markup with confusing error messages and reject valid <url> types, among other things.)

    The fork you're supposed to use is available as:

    flatpak install flathub org.freedesktop.appstream-glib
    flatpak run org.freedesktop.appstream-glib validate <FILENAME>
    

    EDIT: They also want the .desktop file to pass desktop-file-validate <FILENAME> (available in desktop-file-utils on Debian-family distros) if you're not already using that.

     

    Last edit: Stephan Sokolow 2022-09-20

Log in to post a comment.

MongoDB Logo MongoDB