mirror of
https://github.com/status-im/status-mobile.git
synced 2025-01-17 12:12:17 +00:00
cb9a620f40
fixes #19802 Contract Tests are failing with missing symbols runtime error on `MacOS` after `golang` version was upgraded to 1.20 A simple hack fix such a case is to use `go 1.19` only to build the status-go library that is used specifically for these integration tests. Its ugly but it works and unblocks devs from running tests locally. - execute `make test-contract` on MacOS and it should not fail. not needed since this impacts only the integration tests. - macOS status: ready
38 lines
1.1 KiB
Nix
38 lines
1.1 KiB
Nix
{ 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 {
|
|
pname = source.repo;
|
|
version = "${source.cleanVersion}-${source.shortRev}";
|
|
|
|
inherit meta;
|
|
inherit (source) src goPackagePath;
|
|
|
|
phases = ["unpackPhase" "configurePhase" "buildPhase"];
|
|
|
|
# https://pkg.go.dev/net#hdr-Name_Resolution
|
|
# https://github.com/status-im/status-mobile/issues/19736
|
|
# https://github.com/status-im/status-mobile/issues/19581
|
|
# TODO: try removing when go is upgraded to 1.22
|
|
GODEBUG = "netdns=cgo+2";
|
|
|
|
preBuild = ''
|
|
pushd go/src/$goPackagePath
|
|
go run cmd/library/*.go > $NIX_BUILD_TOP/main.go
|
|
popd
|
|
'';
|
|
|
|
# Build the Go library
|
|
buildPhase = ''
|
|
runHook preBuild
|
|
go build \
|
|
-buildmode='c-archive' \
|
|
-tags='gowaku_skip_migrations gowaku_no_rln' \
|
|
-o "$out/libstatus.a" \
|
|
$NIX_BUILD_TOP/main.go
|
|
runHook postBuild
|
|
'';
|
|
}
|