From 8bdf7b55a98c69e758a9d80e13e7ab23208c9caa Mon Sep 17 00:00:00 2001 From: cyBerta <cyberta@riseup.net> Date: Sat, 5 Nov 2022 01:39:19 +0100 Subject: [PATCH] update README how to add new dependencies --- README.md | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 173ec0c..aea1bd8 100644 --- a/README.md +++ b/README.md @@ -8,4 +8,47 @@ This repository contains all golang dependencies currently used in Bitmask Andro Run the follwing command to build Bitmask Core for all Android build flavors (runs currently only on Linux 64-bit distros): -`./build_core.sh` \ No newline at end of file +`./build_core.sh` + +## Adding new go libraries + +1. In order to add new library we currently add them as git submodules. +``` +git submodule add git://<repository_url.git> <new_lib_directory> +``` + +2. Most of the time the new library has its own `go.mod` and `go.sum` file. You need to copy and paste all `required` dependencies from the new libraries `go.mod` to the `go.mod` in the bitmaskcore directory. Similarly, you have also to take care about `replace` entries. + +3. delete `go.mod` and `go.sum` from the new library +``` +# you should be in bitmaskcore +cd <new_lib_directory> +rm go.mod go.sum +``` +4. create a patch from the diff +``` +# you should be in bitmaskcore/<new_lib_directory> +git diff > ../<new_lib>.patch +git stash +cd .. +``` +4. Make sure the `bitmaskcore/golang` directory is empty. +``` +# you should be in bitmaskcore +rm -rf ./golang/* +``` +5. And let go add any missing modules. +``` +# you should be in bitmaskcore +go mod tidy +``` +6. Update [build_core.sh](build_core.sh) and add some lines of code below the exting patches section + +``` +# -------- preparing <new_lib> --------------- +showtitle "Applying patch to <new_lib>" +patch --directory=<new_lib_directory> --strip=1 < <new_lib>.patch || quit +``` + +7. `git add` your changes and commit them +8. run `./build_core.sh` and make sure it succeeds -- GitLab