Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build linux-ppc64le native library, with usrsctp tag c1d6cb3bf4344e01e7d0b3157f4e7103d55b0fbf #20

Closed
wants to merge 1 commit into from

Conversation

fitzsim
Copy link

@fitzsim fitzsim commented Dec 17, 2023

Here are binaries for GNU/Linux ppc64-little-endian systems, built on my Debian 12 ppc64le machine.

Here are notes on how I built them:

First I cloned usrsctp into the usrsctp directory and checked out revision c1d6cb3bf4344e01e7d0b3157f4e7103d55b0fbf.

Then I created the target directory:

mkdir -p jniwrapper/native/src/main/resources/lib/linux-ppc64le

otherwise the mvn package step would fail with:

cp: cannot create regular file '[...]/jniwrapper/native/src/main/resources/lib/linux-ppc64le/libjnisctp.so': No such file or directory

Then I ran:

mvn package -DbuildSctp -DbuildNativeWrapper -DdeployNewJnilib

which built the library then failed with:

SEVERE: Error loading native library: 
java.io.FileNotFoundException: File /lib/linux-ppc64le/libjnisctp.so was not found inside JAR.

At this point, I could have re-run the same mvn package command and it would have found the shared library. Instead, I did:

cp -a jniwrapper/native/src/main/resources/lib/linux-ppc64le jniwrapper/native/src/main/resources/lib/linux-ppc64el

to support Ubuntu systems that may refer to "ppc64le" as "ppc64el".

Then I re-ran:

mvn package -DbuildSctp -DbuildNativeWrapper -DdeployNewJnilib

and it found both the linux-ppc64le and linux-ppc64el directories and included them in the jars.

I noticed that paths including my home directory got leaked into libjnisctp.so, so it may be good to rebuild the ppc64-little-endian libjnisctp.so on an official ppc64le or ppc64el Jitsi build server.

…e7d0b3157f4e7103d55b0fbf

Copy libraries to linux-ppc64el for ppc64-little-endian systems that have ppc64el as os.arch.
@JonathanLennox
Copy link
Member

Sctp is now building its libraries automatically using GitHub actions, including for linux-ppc64le.

@fitzsim
Copy link
Author

fitzsim commented Feb 23, 2024

Thank you for the update, @JonathanLennox. I subscribed to the nightly APT repo at download.jitsi.org; as of today, the latest, 2.3-87-gf0e4f851-1, does not have the changes, but I will keep updating until I can confirm the new sctp jar file works. In the meantime, I found the GitHub Actions artifact; the new path, linux-ppc64le/libjnisctp.so, looks like it will work on my system. I suspect I will have to wait for it to hit nightly to test though, due to the sctp file reorganization.

@JonathanLennox
Copy link
Member

JonathanLennox commented Feb 23, 2024

The new sctp is in jitsi-videobridge v2.3-88-g0c54ff7c, just uploaded to our Maven and unstable APT repositories.

@fitzsim
Copy link
Author

fitzsim commented Feb 23, 2024 via email

@fitzsim
Copy link
Author

fitzsim commented Feb 23, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants