How do I compile Jicofo from source?

931 views Asked by At

I've previously installed Jicofo using sudo apt install jitsi-meet, but now I want to change some things so I'm trying to compile Jicofo from source.

I did mvn clean compile package -DskipTests and it created a JAR file. I then replaced /usr/share/jicofo/jicofo.jar with this file and ran sudo service jicofo restart, but now when I try to join a room in my browser the video never connects. I get an error in my jicofo.log file:

Jicofo 2017-09-18 04:58:59.972 INFO: [36] org.jitsi.impl.protocol.xmpp.OperationSetJingleImpl.processPacket().148 Error while handling incoming Jingle packet:
java.lang.NoSuchMethodError: net.java.sip.communicator.impl.protocol.jabber.extensions.colibri.SourcePacketExtension.hasSSRC()Z
        at org.jitsi.jicofo.SSRCValidator.tryAddSourcesAndGroups(SSRCValidator.java:132)
        at org.jitsi.jicofo.Participant.addSourcesAndGroupsFromContent(Participant.java:541)
        at org.jitsi.jicofo.JitsiMeetConferenceImpl.onSessionAccept(JitsiMeetConferenceImpl.java:1174)
        at org.jitsi.protocol.xmpp.AbstractOperationSetJingle.processJingleIQ(AbstractOperationSetJingle.java:297)
        at org.jitsi.impl.protocol.xmpp.OperationSetJingleImpl.processPacket(OperationSetJingleImpl.java:135)
        at org.jivesoftware.smack.Connection$ListenerWrapper.notifyListener(Connection.java:867)
        at org.jivesoftware.smack.PacketReader$ListenerNotification.run(PacketReader.java:457)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

Just to make sure that I'm not suffering from XY Problem I'll quickly explain some background. I'm trying to get Jitsi Meet to run on a Raspberry Pi, but the Raspberry Pi only supports h/w acceleration for h264, not VP8. When I set preferH264 in Jitsi Meet's settings it works, but I can no longer use Jitsi in Google Chrome. It seems this may be caused by a case-sensitivity issue, so I'm trying to apply the patch found here (https://github.com/jitsi/jitsi-meet/issues/877#issuecomment-269054479). That's why I'm trying to compile from source.

I'm not experienced with Java so my apologies if I'm missing something obvious.

1

There are 1 answers

0
Joshua Walsh On

I got some help from the Jitsi Users mailing list. The issue was out of date dependencies. The solution was to build it using the following line:

mvn -U clean compile package -DskipTests -Dassembly.skipAssembly=false

and then extract the generated zip file and copy all the contents into /usr/share/jicofo.