signal-ringrtc-node icon indicating copy to clipboard operation
signal-ringrtc-node copied to clipboard

Repo contains pre-built binaries, BUILDING.md is missing

Open kpcyrd opened this issue 3 years ago • 3 comments

hey!

Any chance build/ can be dropped from the repo? The concern is that pre-built binaries are pulled into the signal-desktop build, for example the only difference between signal-desktop 1.35.1 and 1.35.2 seems to be 4ad4a1b0fcc9d89231ea48d62523f57936d69b2a, which is a little intransparent. Preferably the binary would be built during the regular signal-desktop build.

There's a BUILDING.md linked in the README, but the link 404s unfortunately.

Thank you very much!

kpcyrd avatar Sep 07 '20 19:09 kpcyrd

Came here as I also got a 404 for the BUILDING.md file.

Any info which which node version(s) are supported?

olof-nord avatar Sep 19 '20 21:09 olof-nord

I did some digging in the meantime and I think this repo is prebuilt binaries of https://github.com/signalapp/ringrtc plus some bindings. Possibly because the build instructions would become more complicated due to the dependency on rust. It'd be great if there'd be an option to build the content of this repo from source as well. :)

kpcyrd avatar Sep 19 '20 22:09 kpcyrd

I did some work on prebuilding for different architectures in https://github.com/signalapp/ringrtc/pull/12 and now have a GitHub workflow set up for this: https://github.com/dennisameling/signal-native-deps/blob/34f9117a9f592665196b84afb37779023504391f/.github/workflows/build.yaml#L162-L282, which you can see in action here: https://github.com/dennisameling/signal-native-deps/actions/runs/871146189

Thing is, it takes ~1hr to build ringrtc because it needs to build Signal's WebRTC fork as well, so you really don't want to bother builders of Signal Desktop with this. Basically the build steps are:

  • Clone https://github.com/signalapp/ringrtc
  • Clone https://github.com/signalapp/signal-ringrtc-node
  • Follow the steps in BUILDING.md (in the main repo). This does the following automatically for you:
    • Build Signal's WebRTC fork (which needs Google's depot_tools to be installed), this downloads around ~20GB of dependencies and takes around 90% of the whole build time
    • Build the Rust native binaries
    • Copy the binaries to src/node/build/<platform>/libringrtc-<arch>.node
  • Then run cd src/node && scripts/copy_repo.sh . ../../../signal-ringrtc-node --> this will copy your freshly built binaries into the signal-ringrtc-node you cloned earlier.

dennisameling avatar May 24 '21 12:05 dennisameling