Skip to content
This repository has been archived by the owner on Jul 1, 2024. It is now read-only.

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

[Request] Flatpak version of StreamFX for OBS #781

Closed
2 tasks
Sethox opened this issue Feb 23, 2022 · 24 comments
Closed
2 tasks

[Request] Flatpak version of StreamFX for OBS #781

Sethox opened this issue Feb 23, 2022 · 24 comments
Labels
enhancement Enhancements

Comments

@Sethox
Copy link

Sethox commented Feb 23, 2022

Explain the Feature/Enhancement

I believe it would make some Linux users from any distribution easier if there exists a Flatpak version of this plugin. Easier up-to-date package maintainer from this project.

What makes this feature/enhancement useful for StreamFX and its users?

Flatpak being Linux distribution agnostic (on any Linux box that has Flatpak installed) can use this.

Checklist

  • I am offering a monetary bounty/reward for the implementation of this Feature/Enhancement.
  • There is no other way to currently do this in StreamFX or OBS Studio.

Any additional Information we need to know?

Here is a link for more information about how to create a plugin for OBS in Flatpak.


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@Xaymar
Copy link
Owner

Xaymar commented Feb 23, 2022

Method 2 is already supported, you just need to extract it to a different location as shown on the guide you linked.

@pmartiner
Copy link

pmartiner commented Feb 27, 2022

@Xaymar thank you for clarifying. The main reason I support the request is that, at least with method 2, OBS is not able to stream with AMF encoding (I don't know if this also with NVENC as well), but the option does appear on the regular OBS bin. If there's a workaround for this issue, maybe it's not necessary to port the plugin

@Xaymar
Copy link
Owner

Xaymar commented Feb 28, 2022

Unfortunately, I have no reason to support Flatpak since StreamFX already works just fine on the target platforms. There is no return on the investment of time into this for me, the only entity benefitting from this is the Flatpak project. As such, I have no reason to support it myself, but I'll leave this open in case anyone else wants to add Flatpak packaging to StreamFX and maintain it forever.

@rmnvgr
Copy link
Contributor

rmnvgr commented May 9, 2022

Hello,

I started writing a Flatpak for StreamFX, and got it working. This is the manifest:

org.obsproject.Studio.Plugin.StreamFX.yml
id: com.obsproject.Studio.Plugin.StreamFX
branch: stable
runtime: com.obsproject.Studio
runtime-version: stable
sdk: org.kde.Sdk//5.15-21.08
build-extension: true
separate-locales: false
appstream-compose: false
build-options:
  prefix: /app/plugins/StreamFX

modules:
  - name: streamfx
    buildsystem: cmake-ninja
    config-opts:
      - -DSTRUCTURE_PACKAGEMANAGER=true
      - -DENABLE_UPDATER=false
      - -DENABLE_FRONTEND=true
      - -DREQUIRE_JSON=true
    build-options:
      cxxflags: '-isystem /app/include/obs'
    post-install:
      - install -Dm644 --target-directory=${FLATPAK_DEST}/share/metainfo ${FLATPAK_ID}.metainfo.xml
      - appstream-compose --basename=${FLATPAK_ID} --prefix=${FLATPAK_DEST} --origin=flatpak ${FLATPAK_ID}
    sources:
      - type: git
        url: https://github.com/Xaymar/obs-StreamFX.git
        tag: 0.11.1
        commit: 81a9699846609385b64a177ed6a2826d77ad97cd
      - type: file
        path: com.obsproject.Studio.Plugin.StreamFX.metainfo.xml
      # Don't download headers and libraries and fix library name
      - type: patch
        path: streamfx.patch

I faced three issues in the process:

  • When setting ENABLE_UPDATER to false (required since the updates will be handled directly by Flatpak), the build fails because it still needs nlohmann/json.hpp in source/ui/ui-about.cpp but its directory is not added to the include directories. I fixed it by manually setting REQUIRE_JSON to true, but it'd be better to always require it.
  • On Flathub you can't download files during the build process, and since we already have all the headers and libraries from OBS, I commented the downloads in CMakeLists.txt and forced the presence of the front-end. I'm not familiar with CMake, but it'd be nice to not download additional files if the dependencies are present on the system.
  • The library name, with this setup, is obs and not libobs.

This is the patch I applied to make it build:

streamfx.patch
diff --git a/CMakeLists.txt b/CMakeLists.txt
index acaa87c..65be527 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -444,15 +444,15 @@ if(NOT ${PREFIX}OBS_NATIVE)
 	endif()
 
 	# Download libOBS
-	download_project(
-		PROJ libobs
-		URL "${_DOWNLOAD_OBS_URL}"
-		URL_HASH "${_DOWNLOAD_OBS_HASH}"
-		DOWNLOAD_NO_PROGRESS OFF
-		UPDATE_DISCONNECTED OFF
-	)
+	#download_project(
+	#	PROJ libobs
+	#	URL "${_DOWNLOAD_OBS_URL}"
+	#	URL_HASH "${_DOWNLOAD_OBS_HASH}"
+	#	DOWNLOAD_NO_PROGRESS OFF
+	#	UPDATE_DISCONNECTED OFF
+	#)
 
-	include("${libobs_SOURCE_DIR}/cmake/LibObs/LibObsConfig.cmake")
+	#include("${libobs_SOURCE_DIR}/cmake/LibObs/LibObsConfig.cmake")
 endif()
 
 ################################################################################
@@ -981,7 +981,7 @@ if(REQUIRE_NVIDIA_CUDA AND D_PLATFORM_WINDOWS)
 endif()
 
 #- OBS Front-End API
-set(HAVE_OBSFE OFF)
+set(HAVE_OBSFE ON)
 if(REQUIRE_OBSFE)
 	if(${PREFIX}OBS_NATIVE)
 		if(TARGET obs-frontend-api)
@@ -1079,7 +1079,7 @@ if(D_PLATFORM_WINDOWS) # Windows Support
 endif()
 
 # Minimum Dependencies
-list(APPEND PROJECT_LIBRARIES libobs)
+list(APPEND PROJECT_LIBRARIES obs)
 
 # Components
 if(HAVE_CURL)

Furthermore, Flathub requires AppStream metadata. I wrote this one:

com.obsproject.Studio.Plugin.StreamFX.metainfo.xml
<?xml version="1.0" encoding="UTF-8"?>
<component type="addon">
	<id>com.obsproject.Studio.Plugin.StreamFX</id>
	<extends>com.obsproject.Studio</extends>
	<name>StreamFX</name>
	<summary>Additional sources, filters, transitions and encoders for OBS Studio</summary>
	<description>
	<p>StreamFX is a plugin to libOBS (OBS Studio, StreamElements OBS Live) that adds new sources, filters and transitions to give you the ability to drastically improve your stream and recording setup past what was possible in OBS Studio until now. Whether it is blurring out a region, moving something in 3D, or just writing your own shaders as a new transition, source or filter - StreamFX has it all.</p>
	</description>
	<url type="homepage">https://streamfx.xaymar.com/</url>
	<url type="bugtracker">https://github.com/Xaymar/obs-StreamFX/issues</url>
	<url type="contact">https://s.xaymar.com/streamfx-dc</url>
	<url type="donation">https://github.com/Xaymar/obs-StreamFX/wiki#support-streamfx-on-github-sponsors-or-patreon</url>
	<url type="translate">https://crowdin.com/project/obs-stream-effects</url>
	<metadata_license>CC0-1.0</metadata_license>
	<project_license>GPL-2.0</project_license>
</component>

AppStream is not specific to Flatpak though, and are used by front-end package installers, so you may want to upstream it so other packagers can make use of it.

If you're fine with this, I can submit it to Flathub, and I'll be maintaining it.

@Xaymar
Copy link
Owner

Xaymar commented May 10, 2022

      - -DSTRUCTURE_PACKAGEMANAGER=true

Does FlatPak install StreamFX system-wide? System-wide installations for StreamFX aren't officially supported in any way, so the users would be turned away at the door to support. StreamFX on linux is meant to be used in a per-user way.

      - -DENABLE_UPDATER=false

If FlatPak has a link handler, you should consider adding a conditional #ifdef to the updater dialog to redirect to something like flatpak:https:///com.obsproject.Studio.Plugin.StreamFX/install or similar. I don't know how FlatPak works, so this would be up to you to implement.

* The library name, with this setup, is `obs` and not `libobs`.

obs is the library name of the UI, not the underlying libOBS library. If flatpak changed this, this may cause a library name collision between the UI and the libOBS library, and should be brought up to the FlatPak maintainer of OBS that they messed up.

On Flathub you can't download files during the build process, and since we already have all the headers and libraries from OBS, I commented the downloads in CMakeLists.txt and forced the presence of the front-end. I'm not familiar with CMake, but it'd be nice to not download additional files if the dependencies are present on the system.

If you build StreamFX as "Grouped", then the downloading of requirements is disabled. Only Standalone builds will enforce a certain version of libOBS, obs-frontend-api, and obs dependencies. There are no plans to allow standalone builds to be configured with different binaries to use, as this has caused impossible issues before - and again led users to be turned away at the door to support.

Overall, I'd prefer it if this was part of a GitHub Action instead of a separate fork. Write some triggers that happen on release and daily, create three flatpak packages (stable, testing, nightly) and update each automatically.

@rmnvgr
Copy link
Contributor

rmnvgr commented May 10, 2022

Thank you for your answer!

Does FlatPak install StreamFX system-wide? System-wide installations for StreamFX aren't officially supported in any way, so the users would be turned away at the door to support. StreamFX on linux is meant to be used in a per-user way.

It depends, Flatpak installations can be system-wide or user-specific. However, because of the sandboxed environment, it shouldn't matter. Do you have examples of issues that I can check?

If FlatPak has a link handler, you should consider adding a conditional #ifdef to the updater dialog to redirect to something like flatpak:https:///com.obsproject.Studio.Plugin.StreamFX/install or similar. I don't know how FlatPak works, so this would be up to you to implement.

There's no need to add anything in my opinion, updates are handled by the software installer GUI.

obs is the library name of the UI, not the underlying libOBS library. If flatpak changed this, this may cause a library name collision between the UI and the libOBS library, and should be brought up to the FlatPak maintainer of OBS that they messed up.

I'll check that, however the maintainers of the OBS Flatpak are the OBS project themselves.

If you build StreamFX as "Grouped", then the downloading of requirements is disabled. Only Standalone builds will enforce a certain version of libOBS, obs-frontend-api, and obs dependencies. There are no plans to allow standalone builds to be configured with different binaries to use, as this has caused impossible issues before - and again led users to be turned away at the door to support.

Hmm using GROUPED, it still tries to download dependencies. I'm really not familiar with CMake, but I don't see anywhere in CMakeLists.txt where it tries to find the system libraries?

Overall, I'd prefer it if this was part of a GitHub Action instead of a separate fork. Write some triggers that happen on release and daily, create three flatpak packages (stable, testing, nightly) and update each automatically.

Actually, there's no forking involved when packaging for Flathub. The repository will only contain the build manifest, and eventually additional files (AppStream metadata, patches). Sources are downloaded at build time. A new PR will be opened automatically for new tags to update the manifest.

@Xaymar
Copy link
Owner

Xaymar commented May 10, 2022

Do you have examples of issues that I can check?

The discord has a horrible war zone that is called #support, most of which is windows. The stance of system-wide installations however will not change, unless the Flatpak version of OBS Studio has additional safety mechanisms in place to prevent duplicate libraries from being loaded.

There's no need to add anything in my opinion, updates are handled by the software installer GUI.

The updater option will be removed in the future as the updater window will be replaced by a new popup window, this is why i suggested it.

Hmm using GROUPED, it still tries to download dependencies. I'm really not familiar with CMake, but I don't see anywhere in CMakeLists.txt where it tries to find the system libraries?

As far as I know, setting GROUPED is not possible because of the local environment overriding the configure environment. Two of the dependencies are behind a if(STANDALONE ...) check, with the last (libOBS) being behind a if(${PREFIX}OBS_NATIVE) check. Since StreamFX requires a very specific set of dependencies, these downloads must either be patched out, or stay in and FlatPak must be adapted to allow downloading of dependencies during build. See the build guide for how to create a "grouped" StreamFX build, instead of a "standalone" StreamFX build.

A new PR will be opened automatically for new tags to update the manifest.

Who gets the PR? Flathub?

@rmnvgr
Copy link
Contributor

rmnvgr commented May 10, 2022

The discord has a horrible war zone that is called #support, most of which is windows. The stance of system-wide installations however will not change, unless the Flatpak version of OBS Studio has additional safety mechanisms in place to prevent duplicate libraries from being loaded.

Ah, so the issue is duplicate libraries. Well, if the user only installs plugins through Flatpak, this won't be an issue. If they install plugins through Flatpak but also manually install them in their config directory, OBS will try to load both, but at this point I'd say the user was asking for trouble. I tried to do this to check what will happen, and OBS warns about it in the logs. In any case, the Flathub repository has an issue tracker, so you can redirect there users that encounter issues specific to the Flatpak packaging.

The updater option will be removed in the future as the updater window will be replaced by a new popup window, this is why i suggested it.

Noted. What will be the functionality of this window?

As far as I know, setting GROUPED is not possible because of the local environment overriding the configure environment. Two of the dependencies are behind a if(STANDALONE ...) check, with the last (libOBS) being behind a if(${PREFIX}OBS_NATIVE) check. Since StreamFX requires a very specific set of dependencies, these downloads must either be patched out, or stay in and FlatPak must be adapted to allow downloading of dependencies during build. See the build guide for how to create a "grouped" StreamFX build, instead of a "standalone" StreamFX build.

I'll check again, but if I understood correctly, this is the "bundled" section, explaining how to build OBS with the plugin? This is not an option, as OBS is already built, but we have access to the header files and libraries. So I guess the path I took, patching out the downloads, is the way to go.

Who gets the PR? Flathub?

Yes. For example, this is the Flathub repository for another OBS plugin, and this is an automatic PR that was opened against it.

@Xaymar
Copy link
Owner

Xaymar commented May 12, 2022

Noted. What will be the functionality of this window?

The new window will be replacing the about, updater and first-time setup window and merge it into one. The exact design isn't quite known yet, but it will no longer be an optional part of StreamFX. This is why I recommend conditionally replacing the download url with a URL that instructs FlatPak to update StreamFX. Unfortunately this was decided on about two years ago now, and the plans for this will be very unlikely to change.

@rmnvgr
Copy link
Contributor

rmnvgr commented May 13, 2022

Thank you for the explanations.

I guess the update part of this window will have to be patched out when it is implemented, as on the Linux desktop, packaged applications are not in charge of updating themselves, or even notifying about updates, as the updated package may not be ready yet. This is the job of the software installer front-ends, which work similarly to iOS' App Store, for example. That's not specific to Flatpak though, all package systems work that way.

I understand you don't want to implement different behaviors for other platforms, in this case the patching out will be the responsibility of the packagers.

Please let me know if you want to go on, as even if I think it would be great for your users to be able to install StreamFX from their software installer instead of manually copying files around, I don't want this to appear as a burden for you.

@Xaymar
Copy link
Owner

Xaymar commented May 13, 2022

Is there no way to query FlatPak for updates on different update channels? The update notifications have reduced outdated version usage by 99%, so they are an important tool for providing support.

If you are willing to take the FlatPak version support all on yourself, then I'll give the okay. Otherwise I'd prefer no FlatPak at all, especially if FlatPak is behind in updates.

FYI, the canonical reverse dns name for StreamFX (for OBS Studio) is com.xaymar.streamfx.obs.

@rmnvgr
Copy link
Contributor

rmnvgr commented May 13, 2022

Is there no way to query FlatPak for updates on different update channels? The update notifications have reduced outdated version usage by 99%, so they are an important tool for providing support.

The update notification is sent by the software installer front-end itself. Some, like GNOME Software, also automatically install Flatpak updates. This, coupled with the automatic PR pipeline, ensures that users always have the latest version available, even without launching OBS.

It's possible to manually query the org.freedesktop.portal.Flatpak.UpdateMonitor D-Bus interface from an application, but in my opinion it's not worth the hassle: it won't give any more information than the system already gave to the user, and is Flatpak-specific.

If you are willing to take the FlatPak version support all on yourself, then I'll give the okay. Otherwise I'd prefer no FlatPak at all, especially if FlatPak is behind in updates.

Yes, I'll take the packaging support for the Flatpak version. However, to be clear, I won't (and can't) provide support for issues with StreamFX if they're unrelated to the packaging.

FYI, the canonical reverse dns name for StreamFX (for OBS Studio) is com.xaymar.streamfx.obs.

According to the documentation, because this is a plugin to OBS, it has to use its ID as its base. I'll check with the Flatpak team.


I'll clean the patches and send you the repository before submitting it to Flathub. In the meantime, please ask if you have any concerns, it's better to have them addressed.

@rmnvgr
Copy link
Contributor

rmnvgr commented May 13, 2022

Here is what I plan on submitting: https://github.com/rmnvgr/flathub/tree/obsplugin-streamfx

It contains:

  • The build manifest
  • The AppStream metadata
  • Three patches to the CMakeLists.txt file, to prevent the downloads, change the library name and force-enable the front-end

I asked about the ID, and indeed it has to be com.obsproject.Studio.Plugin.StreamFX to indicate to Flatpak that it is a plugin for OBS, not that it is part of the OBS project.

If all is good for you, I can submit it.

@GeorgesStavracas
Copy link

Thanks @rmnvgr for getting this one rolling!

I'd like to clarify the appid situation: on Flatpak, the prefix of plugins' ids must match the parent application's app id. In the case of OBS Studio, I've opted for com.obsproject.Studio.Plugin prefix to clearly indicate it's a plugin. In this case, it's okay not to match the RDNS because the id indicates extension-ship, not ownership.

If you are willing to take the FlatPak version support all on yourself, then I'll give the okay. Otherwise I'd prefer no FlatPak at all, especially if FlatPak is behind in updates.

This is a fair request. On Flathub, we have a pipeline for automatic updates, and @rmnvgr is already making use of that. That ensures that any new releases you publish will show up on Flathub in just a few (2~3) hours. Does that work for you?

In any case, the Flathub repository has an issue tracker, so you can redirect there users that encounter issues specific to the Flatpak packaging.

I think the "implicit" contract between us is that we'll triage bugs reported against the Flathub plugin, and only redirect bugs to this repository when they're not related to Flatpak or packaging in general. Does that work for you?

@Xaymar at last, if at any point you want control over the Flahub package, just let us know and you'll be granted access to it. Authors always have the highest priority when it comes to maintaining packages.

Let me know if there's anything else I can clarify, and again, thanks @rmnvgr for contributing this manifest.

@skeletonbow
Copy link

Thanks @rmnvgr for getting this one rolling!

This is a fair request. On Flathub, we have a pipeline for automatic updates, and @rmnvgr is already making use of that. That ensures that any new releases you publish will show up on Flathub in just a few (2~3) hours. Does that work for you?

One thing I would suggest before updating is to manually check new releases to see if they are new stable releases or new beta releases, and only update when they are new stable releases, as the OBS website publishes them all as "the current release", so people often blindly update to a beta release or similar and may have problems as a result.

@rmnvgr
Copy link
Contributor

rmnvgr commented May 13, 2022

You're right. The regex I use only checks for stable releases.

@Xaymar
Copy link
Owner

Xaymar commented May 14, 2022

In this case, it's okay not to match the RDNS because the id indicates extension-ship, not ownership.

That is the weirdest system I have seen so far, but if it is necessary I have nothing to say against it.

That ensures that any new releases you publish will show up on Flathub in just a few (2~3) hours. Does that work for you?

Anything within <= 8 hours of the actual release date is fine. Above 8 hours we end up in the area of user experience suffering from the FlatPak version being outdated.

I think the "implicit" contract between us is that we'll triage bugs reported against the Flathub plugin, and only redirect bugs to this repository when they're not related to Flatpak or packaging in general. Does that work for you?

Yes this works for me.

I'll clean the patches and send you the repository before submitting it to Flathub. In the meantime, please ask if you have any concerns, it's better to have them addressed.

  1. The primary release system is not tags, but GitHub Releases. FlatPak must respond to GitHub releases, instead of tags, as there may be an intermediate version that is tagged but not actually released. This has happened in the past where a bug slipped by that was caught by external testing and resulted in a version bump with no release.
  2. As the release notes are attached to GitHub Releases only, what will the FlatPak update notes look like? Does FlatPak even have update notes? The current update notes help guide users towards the right mindset for new features, and even showcase highlights for new features or changed features.
  3. Sometimes tags need to be recreated due to GitHub having some sort of meltdown over a specific commit hash for no known reason. Does FlatPak handle this, or will it just break in this case?

@rmnvgr
Copy link
Contributor

rmnvgr commented May 14, 2022

The primary release system is not tags, but GitHub Releases. FlatPak must respond to GitHub releases, instead of tags, as there may be an intermediate version that is tagged but not actually released. This has happened in the past where a bug slipped by that was caught by external testing and resulted in a version bump with no release.

The tool that automatically checks for updates only has generic git support and can only check for tags. I can manually check if a tag is associated with a release before merging the PR. But why not distribute a new version if it contains bug fixes?

  • As the release notes are attached to GitHub Releases only, what will the FlatPak update notes look like? Does FlatPak even have update notes? The current update notes help guide users towards the right mindset for new features, and even showcase highlights for new features or changed features.

Release notes can be added to the AppStream metadata with the releases tag, which will be consumed by software installer front-ends. If you want to have such release notes, please consider maintaining the AppStream metadata upstream. This is not specific to Flatpak and will be used by other packaging systems.

  • Sometimes tags need to be recreated due to GitHub having some sort of meltdown over a specific commit hash for no known reason. Does FlatPak handle this, or will it just break in this case?

The manifest associates a tag with a commit. If the tag doesn't correspond to the same commit, the git checkout will fail. However, a new PR will be opened by the update tool if it detects a commit change. Although, in general, it is advised to never recreate tags.

@rmnvgr
Copy link
Contributor

rmnvgr commented May 14, 2022

The tool that automatically checks for updates only has generic git support and can only check for tags.

Actually, the tool also has a JSON module that can be used to query the GitHub API. I think it should be possible to only get PRs for releases, I'll let you know.

@Xaymar
Copy link
Owner

Xaymar commented May 14, 2022

The tool that automatically checks for updates only has generic git support and can only check for tags.

That means that FlatPak has its own update structure entirely, instead of following GitHub Releases. This is a deal-breaker then, since sometimes updates are not released due to newly discovered problems requiring extra days, weeks or even months of development time.

But why not distribute a new version if it contains bug fixes?

See above, as well as: Please remember that StreamFX is not profitable, and only a hobby for me - there is only 1 active maintainer. It takes time to track down the cause of a bug and fix it.

If you want to have such release notes, please consider maintaining the AppStream metadata upstream. This is not specific to Flatpak and will be used by other packaging systems.

From what I understand of the AppStream format, it does not support the necessary update note information.

Although, in general, it is advised to never recreate tags.

I'm aware of this, but it does not fix GitHub's random corrupted tag problems. If a tag on GitHub gets corrupted, the only choice I have is to recreate it.

@rmnvgr
Copy link
Contributor

rmnvgr commented May 14, 2022

That means that FlatPak has its own update structure entirely, instead of following GitHub Releases.

As per my previous message, I updated the manifest to query the GitHub API for the latest release. It will only create PRs for new (non-draft, non-prerelease) releases.

sometimes updates are not released due to newly discovered problems requiring extra days, weeks or even months of development time.

Ah sorry, I misunderstood: I thought you tagged versions that contained bug fixes without releasing them, not that you didn't release because a tag contained a newly-discovered bug.

I'm aware of this, but it does not fix GitHub's random corrupted tag problems. If a tag on GitHub gets corrupted, the only choice I have is to recreate it.

In any case, the update tool will open a new PR if it finds that a tag doesn't match the commit present in the manifest.

@Xaymar
Copy link
Owner

Xaymar commented May 18, 2022

Hi, sorry about the delayed response. The current plan looks fine to me, so I'd say go ahead and try it. If you can add the Linux installation part on the wiki to instruct users on how to install with Flatpak, that would be great.

@rmnvgr
Copy link
Contributor

rmnvgr commented May 18, 2022

Great!

You can track the submission here: flathub/flathub#3159

By the way, do you want to be added to the Flatpak repository?

If you can add the Linux installation part on the wiki to instruct users on how to install with Flatpak, that would be great.

When it is accepted, I can add this under "Automated Installation":

Linux Linux (Flatpak)

If you installed OBS Studio from Flathub, StreamFX is available as a Flatpak plugin-in. Install it in your app store or with this command:

flatpak install com.obsproject.Studio.Plugin.StreamFX

@Xaymar
Copy link
Owner

Xaymar commented May 26, 2022

By the way, do you want to be added to the Flatpak repository?

If necessary, sure.

Repository owner locked and limited conversation to collaborators Jul 30, 2022
@Xaymar Xaymar converted this issue into discussion #840 Jul 30, 2022

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
enhancement Enhancements
Projects
None yet
Development

No branches or pull requests

6 participants