sandreas / tone

tone is a cross platform audio tagger and metadata editor to dump and modify metadata for a wide variety of formats, including mp3, m4b, flac and more. It has no dependencies and can be downloaded as single binary for Windows, macOS, Linux and other common platforms.
https://pilabor.com
Apache License 2.0
410 stars 17 forks source link

Add Support for FreeBSD #36

Open QantumEntangled opened 1 year ago

QantumEntangled commented 1 year ago

The Linux executables are not compatible with the BSD (specifically FreeBSD in my case) architecture. I believe DotNet has support for compiling to FreeBSD now, but I am not familiar enough to do it myself (I couldn't find compiling instructions for Tone to follow).

sandreas commented 1 year ago

I believe DotNet has support for compiling to FreeBSD now

Mmh could you provide a source? Usually I keep an eye on the runtime id catalog on every dotnet release, but I do not see anything bsd related here.

There are some guides how to get some dotnet stuff working on FreeBSD, but it is a lot of effort and compiling dotnet sdk from scratch would definitely exceed the time limit of the github action to build releases for tone.

Maybe you could try to give docker on FreeBSD a shot?

https://wiki.freebsd.org/Docker

Example (be careful - this is untested sample scripting!)

# change these to your liking
DOCKER_USER="sandreas"
ZROOT="rpool"

# get root
su -

# install docker packages
pkg install docker-freebsd ca_root_nss

# create zfs dataset
zfs create -o mountpoint=/usr/docker $ZROOT/docker

# make docker available for user (instead of root only)
pw usermod $DOCKER_USER -G operator

# enable docker service on boot and start it now
sysrc -f /etc/rc.conf docker_enable="YES"
service docker start

# logout and login again

Then

docker pull sandreas/tone:v0.1.4
alias tone='docker run -it --rm -u $(id -u):$(id -g) -v "$(pwd)":/mnt sandreas/tone:v0.1.4'
tone --version 
tone dump a-file-in-current-dir.mp3

I never tried, but since FreeBSD is POSIX, it may work like that.

rookiejet commented 10 months ago

From cursory reading, it seems like upstream support for FreeBSD in .NET is getting close, so that's good news. https://wiki.freebsd.org/.NET

In the meantime, you can run tone's Linux binaries through FreeBSD's linuxemu as well. That is how I'm using it atm, and it works reasonably well. https://docs.freebsd.org/en/books/handbook/linuxemu/

sandreas commented 10 months ago

@rookiejet Thank you for providing this information. As soon as I find the time, tone will get some love again. It was a pretty busy summer this year but end of october is close \o/...