GoXLR-on-Linux / goxlr-utility

An unofficial GoXLR App replacement for Linux, Windows and MacOS
MIT License
667 stars 37 forks source link

Flatpak Support? #186

Open RileyMeta opened 1 month ago

RileyMeta commented 1 month ago

Hiya, I noticed the AUR install currently has a broken dependency with Rust/Cargo and wont install, so I made a temporary work-a-round that installs the .rpm package. (Not future proofed, only functional for the current release).

# Maintainer: Craig McLure <craig@mclure.net>
pkgname=goxlr-utility
pkgver=1.1.1
pkgrel=1
pkgdesc="A utility for monitoring and controlling a TC-Helicon GoXLR or GoXLR Mini."
arch=('x86_64')
url="https://github.com/GoXLR-on-Linux/goxlr-utility"
license=('MIT' 'custom')
depends=('libusb' 'bzip2' 'libpulse' 'speech-dispatcher')
source=("$pkgname-$pkgver.rpm::https://github.com/GoXLR-on-Linux/goxlr-utility/releases/download/v1.1.1/goxlr-utility-1.1.1-1.x86_64.rpm")
noextract=("$pkgname-$pkgver.rpm")
sha512sums=('SKIP')

build() {
    cd "${srcdir}"
    rpmextract.sh "${srcdir}/goxlr-utility-${pkgver}.rpm"
}

package() {
    mkdir -p "${pkgdir}/usr"
    cd "${srcdir}/usr"
    cp -r * "${pkgdir}/usr/"
}

In saying that, would you guys be interested in porting the GoXLR Utility to Flatpak?

Flatpaks are basically self-contained little virtual environments, that would make things more consistent, safer and convenient to install.

Currently, Stream Controller, another third-party app that replaces proprietary software for the Stream Deck has a flatpak and it works the same as a Native install, if not faster. I could absolutely look into this and try building it myself if it would help.

FrostyCoolSlug commented 1 month ago

I have a new release scheduled in the next day or two which will solve the build issue (it seems like run 1.80 broke compatibility with a dependency of a dependency), so figured it would be easier to wait until that release rather than spend time working around it.

As far as flatpaks are concerned, I have investigated this, but because the utility requires a file in /etc/udev/rules.d/ to be present to allow access to the GoXLR in user space, it would still require manual intervention from the user to make it functional.

RileyMeta commented 1 month ago

Correct, the same manually intervention is required for StreamController. I'm not sure how they do it, but after installing, a dialog box from both Gnome Software and KDE Discover pops up showing a command.

Looking at a forum post, it would be a single command that could be ran. Example: flatpak override --filesystem=/etc/udev:ro com.visualsutdio.code.oss

RileyMeta commented 1 month ago

After a little more research it looks like you can get really specific with flatpak's override command. It looks like you can add a flag for "additional configuration" with flatpaks that would prompt the user for the command, or maybe a post install script. Looking through all the possible overrides, I think it would be something like: flatpak override --device=all --filesystem=home --share=network com.goxlr.utility

You could specify common directories for the utility instead of entire system access

There's also: