status-go/nix
Siddarth Kumar 139484a2d5
chore_: bring in xcodewrapper nix derivation (#5473)
This commit brings in xcode-wrapper nix derivation and doesn't rely on the version in nixpkgs.

There is a fix for this in nixpkgs here -> https://github.com/NixOS/nixpkgs/pull/324248
We can remove this derivation when this fix is available and backported to a release we use.

Fixes the following issue :

```
Running phase: unpackPhase
unpacking source archive /nix/store/6pgidabd04p8ggj76j7z948i0dskvd74-source
error: builder for '/nix/store/81hpb4179zgsr5hrw3m8f92bbs8a36fa-xcode-wrapper-plus-14.3.drv'
failed with exit code 141
error (ignored): error: cannot unlink
'"/private/tmp/nix-build-golangci-lint-1.54.0.drv-9/source/test/testdata"': Directory not empty
error: build of '/nix/store/81hpb4179zgsr5hrw3m8f92bbs8a36fa-xcode-wrapper-plus-14.3.drv',
'/nix/store/ahpl1sjw5g633kdcwafz2jjcc5rxz5i3-golangci-lint-1.54.0.drv',
'/nix/store/h3sj6grz66svlr9rg8w5grkl91x64pk6-gomobile-unstable-2022-05-18.drv',
'/nix/store/jp500nsqmm7wg3ch6lkp07lf5fg5lixs-go-modvendor-0.5.0.drv',
'/nix/store/p06sr4p6fb01b55pkkbk68cvfhszr891-cc-test-reporter-0.11.1.drv' failed
make: *** [shell] Error 1
```
2024-07-04 16:37:05 +05:30
..
pkgs chore_: bring in xcodewrapper nix derivation (#5473) 2024-07-04 16:37:05 +05:30
scripts fix(nix)_: add USER var when sourcing profile 2024-04-11 16:22:01 +03:00
KNOWN_ISSUES.md nix: Updating Nix Shell and Makefile to use nix-shell 2024-04-09 12:49:06 +03:00
README.md nix: Updating Nix Shell and Makefile to use nix-shell 2024-04-09 12:49:06 +03:00
default.nix nix: Updating Nix Shell and Makefile to use nix-shell 2024-04-09 12:49:06 +03:00
nix.conf nix: Updating Nix Shell and Makefile to use nix-shell 2024-04-09 12:49:06 +03:00
overlay.nix chore_: upgrade go to 1.21 (#5216) 2024-05-30 14:22:57 +05:30
pkgs.nix nix: Updating Nix Shell and Makefile to use nix-shell 2024-04-09 12:49:06 +03:00
shell.nix chore_: bring in xcodewrapper nix derivation (#5473) 2024-07-04 16:37:05 +05:30
shells.nix nix: Updating Nix Shell and Makefile to use nix-shell 2024-04-09 12:49:06 +03:00

README.md

Description

This folder contains configuration for Nix, a purely functional package manager used by the Status Go for its build process.

Configuration

The main config file is nix/nix.conf and its main purpose is defining the binary caches which allow download of packages to avoid having to compile them yourself locally.

Shell

In order to access an interactive Nix shell a user should run make shell.

The Nix shell is started in this repo via the nix/scripts/shell.sh script, which is a wrapper around the nix-shell command and is intended for use with our main Makefile. This allows for an implicit use of nix-shell as the default shell in the Makefile.

⚠️ WARNING: To have Nix pick up all changes a new nix-shell needs to be spawned.

Resources

You can learn more about Nix by watching these presentations:

And you can read nix/DETAILS.md for more information.

Known Issues

See KNOWN_ISSUES.md.