status-mobile/nix/deps/nodejs-patched
Jakub Sokołowski 80a75c5232
nix: patch all Gradle configs of nodejs deps
Before we were patching only `build.gradle`, which is not the only type
of Gradle config file. If we do not cover them all we can encounter
errors about missing package because they will continue using remote
repositories instead of `mavenLocal()`, to which pass Nix store path.

We also need to cover `gradlePluginPortal()` to provide plugins.

This is also necessary for the React Native upgrade:
https://github.com/status-im/status-mobile/pull/15203

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2023-03-04 13:01:26 +01:00
..
README.md Gradle: drop unavailable JCenter Bintray from config 2022-05-05 11:50:50 +02:00
default.nix nix: patch all Gradle configs of nodejs deps 2023-03-04 13:01:26 +01:00

README.md

Description

This Nix derivation takes the result of the nix/deps/nodejs/default.nix derivation and adjusts it for use with Gradle.

Details

Modules provided by yarn2nix are normally fine, but we use react-native-* packages which have their own gradle.build files that reference external Maven repositories:

repositories {
    google()
    maven { url "https://www.jitpack.io" }
}

And these need to be patched and replaced with mavenLocal() to make sure Gradle doesn't try to fetch dependencies from remote repos.

This derivation symlinks most of the modules found in the yarn2nix result and copies the ones that require patching of gradle.build files in patchGradlePhase.

It also applies other fixes like making BuildId static in patchBuildIdPhase and fixing a Hermes bug in patchHermesPhase.