When `build_nim.sh` detects that `skipIntegrityCheck` is supported,
it runs the upstream toolchain for building Nim, ignoring the locally
checked out `Nim-csources-v1` and `nimble` sub-repositories. So, having
those repos checked out is not useful in that scenario.
When `skipIntegrityCheck` is unsupported, `build_nim.sh` uses the local
sub-repositories if they are available. But, it also clones them if they
are unavailable using commits as specified by environment variables.
Because the clone will happen as part of the script, having the repos
linked as sub-repositories is also not useful. Even worse, if the script
has different commit hashes than the subrepository, the behaviour is
different depending on whether `build_nim.sh` is run before or after
the submodules are checked out.
Therefore, we can remove the `Nim-csources-v1` and `nimble` sub-repos,
using the upstream build system if available, or the hardcoded commits
inside `build_nim.sh` to have a manual build, as before.
Also moves the various variables that control the used versions into
the manual section to emphasize that these only take effect in manual
mode, but not when using upstream build system (`skipIntegrityCheck`).
If one wants to use a custom `Nimble` version, fork `Nim` and adjust the
config in that fork. That also works with the upstream build system.
In #61 a regression was introduced where Nimble fails to build packages.
```
Prompt: No local packages.json found, download it from internet? -> [forced yes]
Downloading Official package list
Tip: 6 messages have been suppressed, use --verbose to show them.
Error: Refresh failed
... Could not download: No SSL/TLS CA certificates found.
Error: Process completed with exit code 1.
```
Ensure that CA cert is being downloaded once more, even when `koch`
supports `skipIntegrityCheck`.
* Fix checking out of recent Nim tags in shallow repo
When calling `git fetch` on a shallow repo, recent
tags or commits are refused. Fetching with `--tags`
ensures that the latest tags and the commits that
they point to are fetched.
More info:
https://git-scm.com/docs/git-fetch#Documentation/git-fetch.txt---update-shallow
Co-authored-by: Tanguy <tanguy@status.im>
Don't re-build the Nim compiler multiple times until we get identical
binaries, like "build_all.sh" does. Don't build any tools either.
Disabled by default, useful in CI.
so they work with the latest Nim in https://github.com/status-im/Nim
("use the latest...") strategy employed by projects other than Nimbus
and nim-beacon-chain