flecs
flecs copied to clipboard
Package for Flatpak
Closes #737
This patch adds flatpak support. I built and installed it on my branch with these commands:
pnpm build
pnpm electron-builder --linux flatpak
flatpak install --bundle 'pack/YouTube Music-3.3.6-x86_64.flatpak'
A few things to note, I need to write a separate yml to publish to flathub which repeats a lot of metadata (electron builder doesn't currently have any way to publish to flathub automatically). According to the flatpak app submission guidelines:
Flathub is primarily intended as a service that is used by app developers to distribute their apps. Our goal is to give developers control of their apps and to allow them a closer relationship with their users without middlemen getting in the way. However, as part of setting up Flathub, some applications are being distributed on Flathub without the involvement of their developers. We would prefer that these applications are controlled by their authors.
I am perfectly fine with maintaining the flatpak myself.
The appstream metadata should probably contain content warnings since YT music also has explicit content. I've left it blank for now. It also needs to be packaged manually since electron builder doesn't yet support adding it (see electron-userland/electron-builder#1993). I'll manually include it in the manifest until that issue is resolved. The appstream file is useful for all linux packages, not just flatpak, which is why I've included it in the PR.
If you don't want to wait, you can checkout my branch and install it yourself with the above commands. Cheers!
You can try using https://hughsie.github.io/oars/generate.html to generate the missing oars data
You can try using https://hughsie.github.io/oars/generate.html to generate the missing oars data
Here's what I got. I'm unsure if it's accurate since it's only audio and not video.
<content_rating type="oars-1.1">
<content_attribute id="drugs-alcohol">mild</content_attribute>
<content_attribute id="drugs-narcotics">mild</content_attribute>
<content_attribute id="drugs-tobacco">mild</content_attribute>
<content_attribute id="sex-nudity">mild</content_attribute>
<content_attribute id="sex-themes">mild</content_attribute>
<content_attribute id="language-profanity">moderate</content_attribute>
<content_attribute id="social-info">intense</content_attribute>
<content_attribute id="money-purchasing">intense</content_attribute>
<content_attribute id="money-advertising">intense</content_attribute>
</content_rating>
is there any point in setting oars ratings to anything other than intense
?
we do not have control over youtube's content, so we cannot explicitly set age ratings
Won't this also play video in some cases?
Also social-info
shouldn't be marked intense, anonymous users can use this app
Also
social-info
shouldn't be marked intense, anonymous users can use this app
I'm pretty sure the algorithm still works for anonymous users.
From https://hughsie.github.io/oars/generate.html If the user is able to "enable" NSFW or "adult" content, then this should be included in the assessment even if it is turned off by default.
This makes me think that it should be the "worst case" for all the fields.
Any update on this ? :) Would be really cool to see the app packaged as a Flatpak :+1:
The app currently uses com.github.th_ch.youtube_music
as its app id but according to this, it makes more sense to use io.github.th_ch.youtube_music
. This is probably better suited for a separate issue but maybe all instances of the old app id should be changed?
https://docs.flathub.org/docs/for-app-authors/verification/#source-code-hosting-site
Apart from that, I'll try to make a manifest that can be used for submission into flathub whenever I get the time.
Despite my best attempts it's been really complicated to build a flatpak. I think I'm going to give up and just manually update it when I need to. I'm going to leave some information here if anyone else wants to take a crack at it.
- [ ] Generate a list of sources from
pnpm-lock.yaml
to include in the flatpak manifest sources. - [ ] electron-builder only generates a single-file bundle. I couldn't figure out a way to get it to build a directory.
- [ ] Trying to package a regular linux build is more complicated because electron builder doesn't generate a desktop file for other package types (unless I just don't know how to do it).
Here's the changes I made to package.json
to build a flatpak with the commands in my original comment.
"linux": {
"icon": "assets/generated/icons/png",
"category": "AudioVideo",
"target": [
"AppImage",
"snap",
"freebsd",
"flatpak",
"deb",
"rpm"
]
},
"flatpak": {
"runtimeVersion": "23.08",
"baseVersion": "23.08",
"useWaylandFlags": true,
"finishArgs": [
"--socket=wayland",
"--socket=fallback-x11",
"--share=ipc",
"--device=dri",
"--socket=pulseaudio",
"--filesystem=xdg-music",
"--share=network",
"--talk-name=org.freedesktop.Notifications",
"--talk-name=org.kde.StatusNotifierWatcher",
"--talk-name=org.gnome.SettingsDaemon.MediaKeys",
"--talk-name=com.canonical.AppMenu.Registrar",
"--talk-name=org.gnome.SessionManager",
"--own-name=org.mpris.MediaPlayer2.chromium.*"
]
},
Added flatpak bundle starting in 3.6.1 and later https://github.com/th-ch/youtube-music/releases/tag/v3.6.1
Any plans on publishing the flatpak in the flathub repo?