Bug 44327

Summary: Пакет jicofo не собран для архитектуры aarch64
Product: Sisyphus Reporter: jqt4 <jqt4>
Component: jicofoAssignee: viy <viy>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: viy
Version: unstable   
Hardware: aarch64   
OS: Linux   
See Also: https://bugzilla.altlinux.org/show_bug.cgi?id=44496
https://bugzilla.altlinux.org/show_bug.cgi?id=44494

Description jqt4@altlinux.org 2022-11-16 15:59:18 MSK
Согласно документации https://www.altlinux.org/Jitsi_Meet Jicofo является необходимым компонентом для работы сервера Jitsi Meet.
Однако, пакет jicofo не собирается для архитектуры aarch64, что делает невозможным установку сервера Jitsi Meet.
Прошу организовать сборку jicofo для aarch64.
Comment 1 jqt4@altlinux.org 2022-11-30 14:49:02 MSK
При сборке jicofo-1.1-alt0.4 под aarch64 выдаются ошибки:
Exception in thread "Smack-Single Threaded Executor 0 (3)" java.lang.UnsatisfiedLinkError: /tmp/nativeutils106925306743618/libjnisctp.so: /tmp/nativeutils106925306743618/libjnisctp.so: cannot open shared object file: No such file or directory (Possible cause: can't load AMD 64-bit .so on a AARCH64-bit platform)
Exception in thread "Smack-Single Threaded Executor 0 (11)" java.lang.NoClassDefFoundError: Could not initialize class org.jitsi.videobridge.sctp.SctpManager
SEVERE: mockjvb.test-server - failed to allocate channels, will consider the bridge faulty: Creator thread has failed to allocate channels: Timed out waiting for a response.

Причина в отсутствии libjnisctp.so под aarch64.
В исходниках jicofo-1.1-alt0.4 в тарболе m2-jicofo-1.1.tar
https://git.altlinux.org/gears/j/jicofo.git?p=jicofo.git;a=blob;f=.gear/m2-jicofo-1.1.tar;h=5ae6b433161a5804de6c856492756fa6de2d02f2;hb=262c8205338db5b60511c8e43ee4b000c187db01
.m2/repository/org/jitsi/jniwrapper-native/1.0-SNAPSHOT/jniwrapper-native-1.0-20190319.172748-1.jar
lib/linux/libjnisctp.so
имеется библиотека только под x86-64

Нашел процедуру сборки jniwrapper-native для aarch64:
https://github.com/jitsi/jitsi-meet/issues/6449

Собрал на p10 под aarch64 следующим образом:
git clone https://github.com/sctplab/usrsctp.git
git clone https://github.com/jitsi/jitsi-sctp
mv ./usrsctp ./jitsi-sctp/usrsctp/
cd ./jitsi-sctp
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-0.aarch64
mvn package -DbuildSctp -DbuildNativeWrapper -DdeployNewJnilib -DskipTests
mkdir -p ./jniwrapper/native/src/main/resources/lib/linux/
cp ./jniwrapper/native/target/libjnisctp-linux-aarch64.so  ./jniwrapper/native/src/main/resources/lib/linux/libjnisctp.so
mvn package

Получил искомый файл jitsi-sctp/jniwrapper/native/target/jniwrapper-native-1.0-SNAPSHOT.jar
Вынул из jar META-INF/maven/org.jitsi/jniwrapper-native/pom.xml
Добавил файлы в исходники jicofo как .gear/jniwrapper-native-1.0-SNAPSHOT.jar .gear/pom.xml
и в jicofo.spec как
Source2:        jniwrapper-native-1.0-SNAPSHOT.jar
Source3:        pom.xml
В %prep добавил в локальный репозиторий:
mvn install:install-file -Dfile=%SOURCE2 -DpomFile=%SOURCE3
https://git.altlinux.org/people/jqt4/packages/?p=jicofo.git;a=commitdiff;h=f7da299e23f99fca171ae9c177bab22a602cd068

После внесения этих исправлений тестовый пакет jicofo под aarch64 успешно собрался. (Задача 310566)

При тестировании jitsi-meet на TF307 обнаружил проблему:
Не передаётся изображение и звук. Иногда получается подключить 2 узла с изображением, но когда подключается 3-й соединения падают.
В файл /var/log/jitsi/jvb.log выдаются сообщения:
2022-11-29 15:26:30.424 SEVERE: [19] RecurringRunnableExecutor.run#230: The invocation of the method org.jitsi.videobridge.health.Health.run() threw an exception.
java.lang.NoClassDefFoundError: Could not initialize class org.jitsi.videobridge.sctp.SctpManager

Нашел описание подобной ситуации:
https://community.jitsi.org/t/java-lang-noclassdeffounderror-could-not-initialize-class-org-jitsi-videobridge-sctp-sctpmanager/76443/6
Это та же проблема с отсутствием libjnisctp.so под aarch64, но в jitsi-videobridge.