Changeset View
Changeset View
Standalone View
Standalone View
doc/gitian-building/gitian-building-manual.md
Getting and building the inputs | Getting and building the inputs | ||||
------------------------------- | ------------------------------- | ||||
At this point you have two options, you can either use the automated script (found in [https://github.com/Bitcoin-ABC/bitcoin-abc/blob/master/contrib/gitian-build.py](https://github.com/Bitcoin-ABC/bitcoin-abc/blob/master/contrib/gitian-build.py), only works in Debian/Ubuntu) or you could manually do everything by following this guide. | At this point you have two options, you can either use the automated script (found in [https://github.com/Bitcoin-ABC/bitcoin-abc/blob/master/contrib/gitian-build.py](https://github.com/Bitcoin-ABC/bitcoin-abc/blob/master/contrib/gitian-build.py), only works in Debian/Ubuntu) or you could manually do everything by following this guide. | ||||
If you are using the automated script, then run it with the `--setup` command. Afterwards, run it with the `--build` command (example: `contrib/gitian-build.py -b signer 0.15.0`). Otherwise ignore this. | If you are using the automated script, then run it with the `--setup` command. Afterwards, run it with the `--build` command (example: `contrib/gitian-build.py -b signer 0.15.0`). Otherwise ignore this. | ||||
Follow the instructions in [https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md](https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md#fetch-and-create-inputs-first-time-or-when-dependency-versions-change) | Follow the instructions in [https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md](https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md#fetch-and-create-inputs-first-time-or-when-dependency-versions-change) | ||||
in the bitcoin repository under 'Fetch and create inputs' to install sources which require | in the ecash repository under 'Fetch and create inputs' to install sources which require | ||||
manual intervention. Also optionally follow the next step: 'Seed the Gitian sources cache | manual intervention. Also optionally follow the next step: 'Seed the Gitian sources cache | ||||
and offline git repositories' which will fetch the remaining files required for building | and offline git repositories' which will fetch the remaining files required for building | ||||
offline. | offline. | ||||
Building Bitcoin ABC | Building Bitcoin ABC | ||||
-------------------- | -------------------- | ||||
To build Bitcoin ABC (for Linux, OS X and Windows) just follow the steps under 'perform | To build Bitcoin ABC (for Linux, OS X and Windows) just follow the steps under 'perform | ||||
Gitian builds' in [https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md](https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md#setup-and-perform-gitian-builds) in the bitcoin repository. | Gitian builds' in [https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md](https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md#setup-and-perform-gitian-builds) in the ecash repository. | ||||
This may take some time as it will build all the dependencies needed for each descriptor. | This may take some time as it will build all the dependencies needed for each descriptor. | ||||
These dependencies will be cached after a successful build to avoid rebuilding them when possible. | These dependencies will be cached after a successful build to avoid rebuilding them when possible. | ||||
At any time you can check the package installation and build progress with | At any time you can check the package installation and build progress with | ||||
```bash | ```bash | ||||
tail -f var/install.log | tail -f var/install.log | ||||
Show All 39 Lines | |||||
./bin/gbuild --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin-abc/contrib/gitian-descriptors/gitian-win.yml | ./bin/gbuild --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin-abc/contrib/gitian-descriptors/gitian-win.yml | ||||
./bin/gbuild --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin-abc/contrib/gitian-descriptors/gitian-osx.yml | ./bin/gbuild --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin-abc/contrib/gitian-descriptors/gitian-osx.yml | ||||
``` | ``` | ||||
Building fully offline | Building fully offline | ||||
---------------------- | ---------------------- | ||||
For building fully offline including attaching signatures to unsigned builds, the detached-sigs repository | For building fully offline including attaching signatures to unsigned builds, the detached-sigs repository | ||||
and the bitcoin git repository with the desired tag must both be available locally, and then gbuild must be | and the ecash git repository with the desired tag must both be available locally, and then gbuild must be | ||||
told where to find them. It also requires an apt-cacher-ng which is fully-populated but set to offline mode, or | told where to find them. It also requires an apt-cacher-ng which is fully-populated but set to offline mode, or | ||||
manually disabling gitian-builder's use of apt-get to update the VM build environment. | manually disabling gitian-builder's use of apt-get to update the VM build environment. | ||||
To configure apt-cacher-ng as an offline cacher, you will need to first populate its cache with the relevant | To configure apt-cacher-ng as an offline cacher, you will need to first populate its cache with the relevant | ||||
files. You must additionally patch target-bin/bootstrap-fixup to set its apt sources to something other than | files. You must additionally patch target-bin/bootstrap-fixup to set its apt sources to something other than | ||||
plain archive.ubuntu.com: us.archive.ubuntu.com works. | plain archive.ubuntu.com: us.archive.ubuntu.com works. | ||||
So, if you use LXC: | So, if you use LXC: | ||||
Show All 35 Lines |