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

Use flatpak extensions #104

Open
vilmasvensson opened this issue Mar 5, 2021 · 15 comments
Open

Use flatpak extensions #104

vilmasvensson opened this issue Mar 5, 2021 · 15 comments

Comments

@vilmasvensson
Copy link
Contributor

Using extensions for binary addons would improve user experience greatly, especially since Kodi 19 ask you about enabling every installed binary addon. It would also help halve the install size and enable individual updates of addons instead of grouping them together with releases.

Could this be done with the optional dependencies as well? If so, that would be great. Otherwise, adding all optional dependencies to the installation would resolve compatibility issues as well.

@Erick555
Copy link
Contributor

Erick555 commented Mar 6, 2021

Each extension would need separate github repo which would need to be maintained. Considering there are dozens of binary addons and only a few people doing the maintenance I think this would cause more harm than good. For example you would need to do dozens of separate PRs in order to bump all things instead of one.

@bam80
Copy link

bam80 commented Mar 6, 2021

How about pushing out to the extensions only a part of them? Those updated more frequently/most important ones.

@Erick555
Copy link
Contributor

Erick555 commented Mar 6, 2021

If something is more important then I think it make more sense to install it by default rather than put it somewhere else where user need to find it.

@bam80
Copy link

bam80 commented Mar 6, 2021

It's just a matter of updating. Can users update it from within Kodi otherwise?

@Erick555
Copy link
Contributor

Erick555 commented Mar 6, 2021

I don't know but extension wouldn't change anything in that matter. Putting addons in extension would only mean they aren't installed by default.

@vilmasvensson
Copy link
Contributor Author

vilmasvensson commented Mar 7, 2021

Putting addons in extension would only mean they aren't installed by default.

Which was the point, to make the addons optional. As of now the only way to not have them installed is to edit the source code and compile it yourself, which is not ideal. This and the fact Kodi prompts you about all 74 (currently) of them on first launch is an issue. As I understand it separate repositories are not needed, but will do some testing.

@Erick555
Copy link
Contributor

Erick555 commented Mar 7, 2021

Separate repos are needed. Extension is like new app that user install with flatpak install xxx. See how it's done for vlc or steam. I can't imagine handling 74 repos in github to maintain kodi.

@vilmasvensson
Copy link
Contributor Author

Yeah, 74 different repos would be ridiculous. How about a tv.kodi.Kodi.BinaryAddons repo? Still not ideal since users need to install all of them if they want a binary addon but much better. Binary addons do not come preinstalled in regular Kodi.

@Erick555
Copy link
Contributor

Erick555 commented Mar 8, 2021

Maybe. I also wonder if those addons have to be present there at all instead of letting user to use the app to download them?

I'm not sure if there isn't some kind of regression as I don't recall those ask dialogs in previous major updates and this one ask about enabling some addon on every launch.

@vilmasvensson
Copy link
Contributor Author

Unfortunately, installing binary addons through the app is not possible in Linux. So they need to be provided in some way. I think this is best done with an extension.

@bam80
Copy link

bam80 commented Mar 8, 2021

Unfortunately, installing binary addons through the app is not possible in Linux

It's a pity. What prevents it? Maybe it's better to solve it on Kodi side?

@vilmasvensson
Copy link
Contributor Author

vilmasvensson commented Mar 9, 2021

I believe it is because there isn't an easy way to ensure that a binary runs on all Linux systems. Actually there is, and it's called Flatpak, too bad Kodi doesn't support it 🙃

I understand why, as then Team Kodi would need to maintain multiple versions instead of one. This means we probably won't be seeing official support unless someone manages to Flatpak the entire Kodi build system.

Since there aren't enough maintainers of the Flatpak'd version to support a different repo for every binary addon they have to be bundled in some way. Here are the options:

  1. Bundle all binary addons together with the app (current solution).
  2. Bundle all binary addons in a single repo.
  3. Bundle binary addons into repos by category (personal favorite):
    • tv.kodi.Kodi.Addons.AudioDecoder
    • tv.kodi.Kodi.Addons.AudioEncoder
    • tv.kodi.Kodi.Addons.ImageDecoder
    • tv.kodi.Kodi.Addons.InputStream*
    • tv.kodi.Kodi.Addons.Peripheral*
    • tv.kodi.Kodi.Addons.PVR
    • tv.kodi.Kodi.Addons.Screensaver
    • tv.kodi.Kodi.Addons.VFS
    • tv.kodi.Kodi.Addons.Visualization

* Contains very few addons, most important of which seem to be bundled with Kodi by default, but requires testing to say for sure. Meaning they might not be needed.

@bam80
Copy link

bam80 commented Mar 9, 2021

So we could start with "2. Bundle all binary addons in a single repo." end eventually produce more repo's if needed?

@vilmasvensson
Copy link
Contributor Author

♯2 doesn't offer as much flexibility for users but is a step in the right direction. Let's say a user wants a PVR addon, with that configuration then they have to install all other types of addons as well. With ♯3 they'd still have to install all PVR addons but is a lot better, especially since addons of the same category sometimes share dependencies.

♯2 however would be easier to maintain and still sees benefits, such as a smaller install size for a user not needing binary addons. Also shorter compile times and easier to upgrade and maintain.

But I agree, starting with ♯2 would be smart.

@deisi
Copy link

deisi commented Sep 19, 2022

Not that I have any say in that matter, but #1 in clearly within the spirit of flatpak. Install run and call it a day. If I would care about app size and installation speed, I would not be using flatpak in the first place. However I care about simplicity and ease of use. And #1 is the clear winner from user perspective here. Its the only solution that just works, where I don't have to google around and read how to turn on feature xyz.

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

No branches or pull requests

4 participants