Document libgit2 build behavior in CONTRIBUTING.md
Signed-off-by: Hidde Beydals <hello@hidde.co>
This commit is contained in:
parent
cc01df231e
commit
153b122970
|
@ -30,37 +30,37 @@ meeting](https://docs.google.com/document/d/1l_M0om0qUEN_NNiGgpqJ2tvsF2iioHkaARD
|
||||||
|
|
||||||
### Installing required dependencies
|
### Installing required dependencies
|
||||||
|
|
||||||
The dependency [libgit2](https://libgit2.org/) needs to be installed to be able to run
|
The dependency [libgit2](https://libgit2.org/) needs to be installed to be able
|
||||||
Source Controller or its test-suite locally (not in a container).
|
to run source-controller or its test-suite locally (not in a container).
|
||||||
|
|
||||||
**macOS**
|
In case this dependency is not present on your system (at the expected
|
||||||
```
|
version), the first invocation of a `make` target that requires the
|
||||||
brew install libgit2
|
dependency will attempt to compile it locally to `hack/libgit2`. For this build
|
||||||
|
to succeed; CMake, Docker, OpenSSL 1.1 and LibSSH2 must be present on the system.
|
||||||
|
|
||||||
|
Triggering a manual build of the dependency is possible as well by running
|
||||||
|
`make libgit2`. To enforce the build, for example if your system dependencies
|
||||||
|
match but are not linked in a compatible way, append `LIBGIT2_FORCE=1` to the
|
||||||
|
`make` command.
|
||||||
|
|
||||||
|
#### macOS
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ # Ensure libgit2 dependencies are available
|
||||||
|
$ brew install cmake openssl@1.1 libssh2
|
||||||
|
$ LIBGIT2_FORCE=1 make libgit2
|
||||||
```
|
```
|
||||||
|
|
||||||
**Arch Linux**
|
#### Linux
|
||||||
```
|
|
||||||
pacman -S libgit2
|
```console
|
||||||
|
$ # Ensure libgit2 dependencies are available
|
||||||
|
$ pacman -S cmake openssl libssh2
|
||||||
|
$ LIBGIT2_FORCE=1 make libgit2
|
||||||
```
|
```
|
||||||
|
|
||||||
**Building from source**
|
**Note:** Example shown is for Arch Linux, but likewise procedure can be
|
||||||
|
followed using any other package manager, e.g. `apt`.
|
||||||
1. Ensure [`cmake`](https://cmake.org) is available on your system.
|
|
||||||
1. Download and unarchive [the right `libgit2` version](https://github.com/libgit2/git2go#which-go-version-to-use)
|
|
||||||
for our current `git2go` dependency:
|
|
||||||
|
|
||||||
```console
|
|
||||||
$ LIBGIT2_VER=1.1.0
|
|
||||||
$ curl -L https://github.com/libgit2/libgit2/releases/download/v$LIBGIT2_VER/libgit2-$LIBGIT2_VER.tar.gz -o /tmp/libgit2.tar.gz
|
|
||||||
$ tar -xvf /tmp/libgit2.tar.gz -C /tmp/libgit2-$LIBGIT2_VER
|
|
||||||
```
|
|
||||||
1. Build and install the library on your system:
|
|
||||||
|
|
||||||
```console
|
|
||||||
$ mkdir /tmp/libgit2-$LIBGIT2_VER/build && cd /tmp/libgit2-$LIBGIT2_VER/build
|
|
||||||
$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr
|
|
||||||
$ sudo cmake --build . --target install
|
|
||||||
```
|
|
||||||
|
|
||||||
### How to run the test suite
|
### How to run the test suite
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue