From 2040061acb27a1a65b555dd91c62622886efdb2a Mon Sep 17 00:00:00 2001 From: Duke Leto Date: Sun, 20 Oct 2019 11:27:31 -0400 Subject: [PATCH] add dev doc --- DEVELOPING.md | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 DEVELOPING.md diff --git a/DEVELOPING.md b/DEVELOPING.md new file mode 100644 index 000000000..a6b1d3a89 --- /dev/null +++ b/DEVELOPING.md @@ -0,0 +1,57 @@ +# Being a Hush Developer + +## Compiling Hush + +Normal compiling is as simple as: + + ./zcutil/build.sh + +To make it use as many CPU threads as you have: + + ./zcutil/build.sh -j$(nproc) # assumes linux + ./zcutil/build.sh -j8 # use a fixed 8 threads, more portable + +## Good Hygiene + +To avoid weirld build system issues, it's often good to run: + + make clean + +*before* you switch Git branches. Otherwise, the new branches Makefiles +often are incompatible and `make clean` will be impossible, which can +sometimes introduce weird bugs or make compiling really annoying. + +## Switching branches + +Switching branches and doing partial compiles in Komodo/Hush source code +can introduce weird bugs, which are fixed by running `build.sh` again. +When in doubt, if you run into a compile error, especially if it mentions +`OCTET_STRING`, run `build.sh` again. Running `make clean` before switching +branches can often prevent those problems. + +## Partial compiles + +At any point, you can modify hush source code and then use `make` or `build.sh` +to do a partial compile. The first is faster but the latter is more likely to +work correctly in all circustances. Sometimes partial compiles break weird +build system dependencies, and you must do a `make clean` first, or even +`git clean -fdx` (look up what it means first!) to clean things. The nuclear +option is to re-clone the repo, which sometimes is the least work to fix +the problem. + +## Generating new unix man pages + +Make sure that you have updated all version numbers in hushd and compiled, then +to generate new unix man pages for that version : + + ./contrib/devtools/gen-manpages.sh + +## Generating new debian packages + +After successfully compiling Hush, you can generate a debian package of these binaries with: + + ./zcutil/build-debian-package.sh + +This command will not work on Mac OS X. Currently you cannot generate a Debian package +from operating systems other than Linux. +