roc-streaming / roc-toolkit

Real-time audio streaming over the network.
https://roc-streaming.org
Mozilla Public License 2.0
1.06k stars 213 forks source link

Roc Cross-compile RPi 3 B+ ARMv7 - pulseaudio modules #422

Closed b247 closed 4 years ago

b247 commented 4 years ago

Hi, I try to cross compile the pulseaudio ROC modules for a Rpi3 arm device (Raspberry Pi 3 running OSMC - Debian 9+Kodi), using docker (On Ubuntu): docker run -t --rm -u "${UID}" -v "${PWD}:${PWD}" -w "${PWD}" \ rocproject/cross-arm-linux-gnueabihf \ scons -Q \ --enable-pulseaudio-modules \ --disable-tests \ --host=arm-linux-gnueabihf \ --build-3rdparty=libuv,libunwind,openfec,alsa,pulseaudio:10.0,sox

But it failed with error: can't download 'http://dist.libuv.org/dist/v1.35.0/libuv-v1.35.0.tar.gz': <urlopen error [Errno -3] Temporary failure in name resolution> scons: *** Error 1 on both curl/wget It seems that libuv is now here : curl -I https://dist.libuv.org/dist/v1.35.0/libuv-v1.35.0.tar.gz

Can you please check ?

b247 commented 4 years ago

Using manual toolchain ... export PATH="${TOOLCHAIN_DIR}/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin:${PATH}"

Test 1: openfec failed $ scons -Q --enable-pulseaudio-modules --disable-tests --host=arm-linux-gnueabihf --build-3rdparty=libuv,libunwind,openfec,alsa,pulseaudio:10.0,sox

Error: GET 3rdparty/arm-linux-gnueabihf/gcc-7.4.1-release/build/openfec-1.4.2.4 [found downloaded] openfec_v1.4.2.4.tar.gz [found extracted] openfec-1.4.2.4 Traceback (most recent call last): File "scripts/3rdparty.py", line 575, in execute_cmake('..', variant, toolchain, env, logfile, args=[ File "scripts/3rdparty.py", line 218, in execute_cmake '-DCMAKE_FIND_ROOT_PATH=%s' % quote(sysroot), File "/usr/lib/python3.8/shlex.py", line 325, in quote if _find_unsafe(s) is None: TypeError: cannot use a string pattern on a bytes-like object scons: *** Error 1 error: can't make 'openfec-1.4.2.4

Test 2: pulseaudio failed $ scons -Q --enable-pulseaudio-modules --disable-tests --disable-openfec --host=arm-linux-gnueabihf --build-3rdparty=libuv,libunwind,alsa,pulseaudio:10.0,sox

Error: CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/catalin/Downloads/roc-toolkit/3rdparty/arm-linux-gnueabihf/gcc-7.4.1-release/build/pulseaudio-10.0/src/pulseaudio-10.0/build-aux/missing aclocal-1.15 -I m4 /home/catalin/Downloads/roc-toolkit/3rdparty/arm-linux-gnueabihf/gcc-7.4.1-release/build/pulseaudio-10.0/src/pulseaudio-10.0/build-aux/missing: line 81: aclocal-1.15: command not found

Is there any other way I can build pulseaudio roc modules for RPi 3 B+ ARM device (powered by Debian 9)?

gavv commented 4 years ago

Hi, sorry for delay!

It seems that libuv is now here : curl -I https://dist.libuv.org/dist/v1.35.0/libuv-v1.35.0.tar.gz

Pushed a fix to develop.

TypeError: cannot use a string pattern on a bytes-like object

Can't reproduce, but also pushed a possible fix to develop. Likely the problem is caused by different python versions.

aclocal-1.15: command not found

Do you have aclocal 1.15 in your environment? You could also try workarounds mentioned here: https://stackoverflow.com/questions/33278928/how-to-overcome-aclocal-1-15-is-missing-on-your-system-warning

Did you solve your issue already? If you didn't, feel free to reopen this and try develop with the new fix.