Fix integration tests for MacOS (#20248)

With go 1.20 its necessary to pass `lresolv` flag when building c-archives and `netgo` for networking on MacOS.
This was the primary reason why integration tests were failing.
ref 
-> https://github.com/golang/go/issues/58416
-> https://github.com/golang/go/issues/58159

This commit adds those flags to the derivation which builds status-go-library for integration tests and fixes the missing symbol crash.
This commit is contained in:
Siddarth Kumar 2024-05-29 21:23:24 +05:30 committed by GitHub
parent 139bd8feea
commit 7613de74ae
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 7 additions and 7 deletions

View File

@ -1,9 +1,6 @@
{ stdenv, meta, source, buildGo119Package, buildGo120Package }:
let
# https://github.com/status-im/status-mobile/issues/19802
# only for Darwin to fix Integration Tests failing with missing symbols on go 1.20
buildGoPackageIntegrationTest = if stdenv.isDarwin then buildGo119Package else buildGo120Package;
in buildGoPackageIntegrationTest {
{ lib, stdenv, meta, source, buildGoPackage }:
buildGoPackage {
pname = source.repo;
version = "${source.cleanVersion}-${source.shortRev}";
@ -25,11 +22,14 @@ in buildGoPackageIntegrationTest {
'';
# Build the Go library
# ld flags and netgo tag are necessary for integration tests to work on MacOS
# https://github.com/status-im/status-mobile/issues/20135
buildPhase = ''
runHook preBuild
go build \
-buildmode='c-archive' \
-tags='gowaku_skip_migrations gowaku_no_rln' \
${lib.optionalString stdenv.isDarwin "-ldflags=-extldflags=-lresolv"} \
-tags='gowaku_skip_migrations gowaku_no_rln ${lib.optionalString stdenv.isDarwin "netgo"}' \
-o "$out/libstatus.a" \
$NIX_BUILD_TOP/main.go
runHook postBuild