libp2p was pulled in solely for its `minprotobuf` field codec, dragging
in its full transitive tree (secp256k1, nimcrypto, websock, etc.). Swap
it for nim-protobuf-serialization, whose low-level `codec` module gives
the same protobuf wire primitives without the networking stack.
The wire/snapshot codecs build messages by hand at the field level and
rely on a backward-compatible decode path the type-driven
`Protobuf.encode/decode` API cannot express. To keep that code intact,
`protobufutil.nim` is a thin `ProtoBuffer` shim over the new `codec`
module, preserving the exact field-level behaviour the codecs depend on
(plain varints, length-delimited bytes/strings with no UTF-8 validation,
unknown-wire-type fields skipped as protoc does).
Dependency closure (nimble.lock, nix/deps.nix) regenerated accordingly:
libp2p and its 8 exclusive transitive deps dropped, protobuf_serialization
and its npeg dependency added.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Otherwise we end up with cache collisions like this in CI :
```
> Error: cannot open '/tmp/nim/libsds_d/@z..@f..@f..@f..@f..@f..
@ffgber@f6y2zz1uv2lzi4ln2717py8m0aix64u56-avz-hajenccrq-2.2.4@favz
@fyvo@fflfgrz@frkprcgvbaf.nim.c'
```
Changes include:
- Removing all submodules from vendor folder.
- Updating sds.nimble with required depndencies.
- Generating a nimble.lock file using Nimble.
- Updated Nim code to reference depndencies correctly.
- Added nix/deps.nix fixed output derivation that calls Nimble.
- Updated nixpkgs to use 25.11 commit which provides Nimbe 0.20.1.
- Disabled Nix Android builds on MacOS due to Nimble segfault.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
The assert for Android NDK is obsolete. But we also can avoid fetching
the Android dependencies when not building for Android.
Also, lsb-release is a linux-only tool.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Otherwise it fails with:
error: aarch64-darwin not supported for Android SDK. Use: NIXPKGS_SYSTEM_OVERRIDE=x86_64-darwin
Signed-off-by: Jakub Sokołowski <jakub@status.im>
For some unknown reason the builds would fail with:
/bin/sh: line 1: clang: command not found
Unless we added Android NDK toolchains/llvm/prebuilt to PATH.
Signed-off-by: Jakub Sokołowski <jakub@status.im>