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

Flatpak Packaging #3512

Open
Jummit opened this issue Jan 7, 2024 · 8 comments
Open

Flatpak Packaging #3512

Jummit opened this issue Jan 7, 2024 · 8 comments
Assignees
Labels
backlog Ideas that might be cool and can be looked into later. hack A fun side-project that's not directly tied to the core service. help wanted Extra attention is needed

Comments

@Jummit
Copy link

Jummit commented Jan 7, 2024

Share your bug report, feature request, or comment.

I think it would be nice to provide a Flatpak package as an alternative installation method.

For reference, I found Jellyfin very easy to set up: https://flathub.org/apps/org.jellyfin.JellyfinServer

@gabek gabek added help wanted Extra attention is needed backlog Ideas that might be cool and can be looked into later. hack A fun side-project that's not directly tied to the core service. labels Jan 7, 2024
Copy link

github-actions bot commented Jan 7, 2024

Good First Issue

This item was marked as a good first issue because of the following:

  • It's self contained as a single feature or change.
  • Is clear when it's complete.
  • You do not need deep knowledge of Owncast to accomplish it.

Next Steps

  1. Comment on this issue before starting work so it can be assigned to you. Also, this issue may have been filed with limited detail or changes may have occurred that are worth sharing with you before you start work.
  2. Drop by our community chat if you'd like to be involved in more real-time discussion around Owncast to talk about this change.
  3. Follow the project's getting started tips to make sure you can build and run the project from source.

Notes

  • Development takes place on the develop branch.
  • We use Storybook for testing and developing React components. npm run storybook. A hosted version is available for viewing.
  • If you need to install the Go programming language to run the Owncast backend it's simple from here.
  • Active contributors get an Owncast t-shirt! Ask about it if you feel like you've been contributing and haven't yet been given one.

New to Git?

If you're brand new to Git you may want a short primer about the Fork -> Commit -> Pull Request workflow that enables changes to get made collaboratively using git. Visit the First Contributions project to learn step-by-step how to commit a change to a Git repository such as this one.

@gabek
Copy link
Member

gabek commented Mar 7, 2024

If anybody who has experience with Flatpak sees this, and would be interested in helping, please chime in. It's unlikely I'm going to dig into the ecosystem of Flatpak anytime soon, simply because I rarely use it myself. But I'm not opposed to adding it to our deployment methods, as long as packaging or it on our side is a low lift, and can be automated.

@varungujarathi9
Copy link
Contributor

Hey @gabek
I can work on this!

@gabek
Copy link
Member

gabek commented Mar 29, 2024

Cool @varungujarathi9! I know nothing about packaging for Flatpak myself, but go for it! Feel free to update here if you want to discuss anything about it.

@varungujarathi9
Copy link
Contributor

@gabek
I was able to create the Flatpak of the owncast executable. Where should I put the build commands and where should the .flatpak file be saved in our repo?

@gabek
Copy link
Member

gabek commented Apr 26, 2024

I'm not sure. What is included in building a flatpak? What is included in a .flatpak file? Is it something that is stored in a Git repository, or is it something that gets sent to a Flathub or something? I don't know much about it, so I don't have the answers at the moment.

@varungujarathi9
Copy link
Contributor

So right now, I am building an executable using go build and creating flatpak of that executable.

A .flatpak file is like a .deb file that can be used to install an application. Once installed the app can be run using flatpak run command

@gabek
Copy link
Member

gabek commented Apr 26, 2024

Oh ok, got it. We shouldn't be saving binaries in our repo, but we can build and add the .flatpak file as a part of our release process.

Our releases are built using Earthly, using the Earthfile. This build process already creates a binary for different architectures using go build, so you could probably take that same binary artifact and build the flatpak out of it by creating a new flatpak target that copies the binary from the build step and does whatever you need from it. There's some documentation here: https://docs.earthly.dev/basics/part-1-a-simple-earthfile

Feel free to let me know if you want to talk through this at all.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backlog Ideas that might be cool and can be looked into later. hack A fun side-project that's not directly tied to the core service. help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants