roc-toolkit icon indicating copy to clipboard operation
roc-toolkit copied to clipboard

FreeBSD builds

Open nolan-veed opened this issue 3 months ago • 5 comments

Why

For https://github.com/roc-streaming/roc-toolkit/issues/759 And https://github.com/roc-streaming/roc-toolkit/issues/360

Hello @gavv, I can work on those tickets. I do have some previous unix experience, but about 15 years ago :)

I was able to install FreeBSD-14.3 in a VirtualBox VM. The sshfs mount roc-toolkit from my host dev machine. I can then code in VSCode.

What

  • Build fixes.

Testing

WIP.

nolan-veed avatar Oct 02 '25 09:10 nolan-veed

Progress notes

These packages are to be installed:

pkg install scons-py311
pkg install pkgconf
pkg install libuv
pkg install libunwind
pkg install libatomic_ops
pkg install speexdsp
pkg install libsndfile
pkg install ragel
pkg install gengetopt
pkg install sox

I was unable to find libopenfec, so I could only build with:

scons --disable-openfec

Todos

  • Figure out where to get libopenfec from.
  • CI script changes.
  • Manual testing of the binaries.

nolan-veed avatar Oct 02 '25 09:10 nolan-veed

Progress notes

More packages needed installing:

pkg install doxygen
pkg install cpputest

Then I was able to do builds with tests:

scons -Q \
  --enable-werror --enable-debug --enable-tests \
  --enable-examples --enable-doxygen test --disable-openfec 

And the tests passed.

Todos

  • google-benchmark isn't available in packages, and a --build-3rdparty=google-benchmark fails. Fix it.

nolan-veed avatar Oct 02 '25 10:10 nolan-veed

Hi @nolan-veed Thank you for your interest. Have you tried adding an option to build openfec from the sources?

scons -Q --build-3rdparty=openfec

If not, please do, and check if the tests pass

baranovmv avatar Oct 02 '25 10:10 baranovmv

I had to also install cmake:

pkg install cmake

And then I could do benchmarks:

scons -Q --build-3rdparty=openfec,google-benchmark \
  --enable-werror --enable-debug --enable-tests --enable-benchmarks \
  --enable-examples --enable-doxygen test bench

Thanks @baranovmv. I'm assuming we're ok with using --build-3rdparty=... as a fallback? Or do we want to try and build all third party stuff without using system packages?

I'll move on to CI & doc stuff - another PR. We can merge this?

nolan-veed avatar Oct 02 '25 11:10 nolan-veed

hi guys, I've taken an interest in this project to see if it can do some nice high quality / low latency audio streaming on my LAN and have made a port of your OpenFEC fork for FreeBSD as a prerequisite of getting this packaged.

https://freshports.org/devel/openfec

now you should be able to simply do pkg install openfec and run your builds in the CI as normal. It may take a few days before the package will officially be on the mirrors

feld avatar Nov 10 '25 20:11 feld