Merge pull request #345 from crowning-/patch-1

Bitcoin references removed
This commit is contained in:
UdjinM6 2015-05-31 05:16:37 +03:00
commit 9cd74bc979

View File

@ -1,9 +1,9 @@
Gitian building Gitian building
================ ================
*Setup instructions for a gitian build of Bitcoin using a Debian VM or physical system.* *Setup instructions for a gitian build of Dash using a Debian VM or physical system.*
Gitian is the deterministic build process that is used to build the Bitcoin Gitian is the deterministic build process that is used to build the Dash
Core executables. It provides a way to be reasonably sure that the Core executables. It provides a way to be reasonably sure that the
executables are really built from source on GitHub. It also makes sure that executables are really built from source on GitHub. It also makes sure that
the same, tested dependencies are used and statically built into the executable. the same, tested dependencies are used and statically built into the executable.
@ -11,7 +11,7 @@ the same, tested dependencies are used and statically built into the executable.
Multiple developers build the source code by following a specific descriptor Multiple developers build the source code by following a specific descriptor
("recipe"), cryptographically sign the result, and upload the resulting signature. ("recipe"), cryptographically sign the result, and upload the resulting signature.
These results are compared and only if they match, the build is accepted and uploaded These results are compared and only if they match, the build is accepted and uploaded
to bitcoin.org. to dashpay.io.
More independent gitian builders are needed, which is why I wrote this More independent gitian builders are needed, which is why I wrote this
guide. It is preferred to follow these steps yourself instead of using someone else's guide. It is preferred to follow these steps yourself instead of using someone else's
@ -26,7 +26,7 @@ Table of Contents
- [Installing gitian](#installing-gitian) - [Installing gitian](#installing-gitian)
- [Setting up gitian images](#setting-up-gitian-images) - [Setting up gitian images](#setting-up-gitian-images)
- [Getting and building the inputs](#getting-and-building-the-inputs) - [Getting and building the inputs](#getting-and-building-the-inputs)
- [Building Bitcoin](#building-bitcoin) - [Building Dash](#building-dash)
- [Building an alternative repository](#building-an-alternative-repository) - [Building an alternative repository](#building-an-alternative-repository)
- [Signing externally](#signing-externally) - [Signing externally](#signing-externally)
- [Uploading signatures](#uploading-signatures) - [Uploading signatures](#uploading-signatures)
@ -277,12 +277,12 @@ cd ..
**Note**: When sudo asks for a password, enter the password for the user *debian* not for *root*. **Note**: When sudo asks for a password, enter the password for the user *debian* not for *root*.
Clone the git repositories for bitcoin and gitian and then checkout the bitcoin version that you want to build. Clone the git repositories for dash and gitian and then checkout the dash version that you want to build.
```bash ```bash
git clone https://github.com/devrandom/gitian-builder.git git clone https://github.com/devrandom/gitian-builder.git
git clone https://github.com/bitcoin/bitcoin git clone https://github.com/dashpay/dash.git
cd bitcoin cd dash
git checkout v${VERSION} git checkout v${VERSION}
cd .. cd ..
``` ```
@ -307,19 +307,27 @@ There will be a lot of warnings printed during build of the images. These can be
**Note**: When sudo asks for a password, enter the password for the user *debian* not for *root*. **Note**: When sudo asks for a password, enter the password for the user *debian* not for *root*.
**Note**: Repeat this step when you have upgraded to a newer version of Gitian.
**Note**: if you get the error message *"bin/make-base-vm: mkfs.ext4: not found"* during this process you have to make the following change in file *"gitian-builder/bin/make-base-vm"* at line 117:
```bash
# mkfs.ext4 -F $OUT-lxc
/sbin/mkfs.ext4 -F $OUT-lxc # (some Gitian environents do NOT find mkfs.ext4. Some do...)
```
Getting and building the inputs Getting and building the inputs
-------------------------------- --------------------------------
Follow the instructions in [doc/release-process.md](release-process.md) in the bitcoin repository Follow the instructions in [doc/release-process.md](release-process.md) in the dash repository
under 'Fetch and build inputs' to install sources which require manual intervention. Also follow under 'Fetch and build inputs' to install sources which require manual intervention. Also follow
the next step: 'Seed the Gitian sources cache', which will fetch all necessary source files allowing the next step: 'Seed the Gitian sources cache', which will fetch all necessary source files allowing
for gitian to work offline. for gitian to work offline.
Building Bitcoin Building Dash
---------------- ----------------
To build Bitcoin (for Linux, OSX and Windows) just follow the steps under 'perform To build Dash (for Linux, OSX and Windows) just follow the steps under 'perform
gitian builds' in [doc/release-process.md](release-process.md) in the bitcoin repository. gitian builds' in [doc/release-process.md](release-process.md) in the dash repository.
This may take a long time as it also builds the dependencies needed for each descriptor. This may take a long time as it also builds 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.
@ -332,12 +340,12 @@ tail -f var/build.log
Output from `gbuild` will look something like Output from `gbuild` will look something like
Initialized empty Git repository in /home/debian/gitian-builder/inputs/bitcoin/.git/ Initialized empty Git repository in /home/debian/gitian-builder/inputs/dash/.git/
remote: Reusing existing pack: 35606, done. remote: Reusing existing pack: 35606, done.
remote: Total 35606 (delta 0), reused 0 (delta 0) remote: Total 35606 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (35606/35606), 26.52 MiB | 4.28 MiB/s, done. Receiving objects: 100% (35606/35606), 26.52 MiB | 4.28 MiB/s, done.
Resolving deltas: 100% (25724/25724), done. Resolving deltas: 100% (25724/25724), done.
From https://github.com/bitcoin/bitcoin From https://github.com/dashpay/dash
... (new tags, new branch etc) ... (new tags, new branch etc)
--- Building for precise x86_64 --- --- Building for precise x86_64 ---
Stopping target if it is up Stopping target if it is up
@ -363,11 +371,11 @@ and inputs.
For example: For example:
```bash ```bash
URL=https://github.com/laanwj/bitcoin.git URL=https://github.com/crowning-/dash.git
COMMIT=2014_03_windows_unicode_path COMMIT=b616fb8ef0d49a919b72b0388b091aaec5849b96
./bin/gbuild --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml ./bin/gbuild --commit dash=${COMMIT} --url dash=${URL} ../dash/contrib/gitian-descriptors/gitian-linux.yml
./bin/gbuild --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin/contrib/gitian-descriptors/gitian-win.yml ./bin/gbuild --commit dash=${COMMIT} --url dash=${URL} ../dash/contrib/gitian-descriptors/gitian-win.yml
./bin/gbuild --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml ./bin/gbuild --commit dash=${COMMIT} --url dash=${URL} ../dash/contrib/gitian-descriptors/gitian-osx.yml
``` ```
Signing externally Signing externally
@ -376,23 +384,24 @@ Signing externally
If you want to do the PGP signing on another device that's also possible; just define `SIGNER` as mentioned If you want to do the PGP signing on another device that's also possible; just define `SIGNER` as mentioned
and follow the steps in the build process as normal. and follow the steps in the build process as normal.
gpg: skipped "laanwj": secret key not available gpg: skipped "crowning-": secret key not available
When you execute `gsign` you will get an error from GPG, which can be ignored. Copy the resulting `.assert` files When you execute `gsign` you will get an error from GPG, which can be ignored. Copy the resulting `.assert` files
in `gitian.sigs` to your signing machine and do in `gitian.sigs` to your signing machine and do
```bash ```bash
gpg --detach-sign ${VERSION}-linux/${SIGNER}/bitcoin-build.assert gpg --detach-sign ${VERSION}-linux/${SIGNER}/dash-build.assert
gpg --detach-sign ${VERSION}-win/${SIGNER}/bitcoin-build.assert gpg --detach-sign ${VERSION}-win/${SIGNER}/dash-build.assert
gpg --detach-sign ${VERSION}-osx/${SIGNER}/bitcoin-build.assert gpg --detach-sign ${VERSION}-osx/${SIGNER}/dash-build.assert
``` ```
This will create the `.sig` files that can be committed together with the `.assert` files to assert your This will create the `.sig` files that can be committed together with the `.assert` files to assert your
gitian build. gitian build.
Uploading signatures Uploading signatures (not yet implemented)
--------------------- ---------------------
After building and signing you can push your signatures (both the `.assert` and `.assert.sig` files) to the In the future it will be possible to push your signatures (both the `.assert` and `.assert.sig` files) to the
[bitcoin/gitian.sigs](https://github.com/bitcoin/gitian.sigs/) repository, or if that's not possible create a pull [dash/gitian.sigs](https://github.com/dashpay/gitian.sigs/) repository, or if that's not possible to create a pull
request. You can also mail the files to me (laanwj@gmail.com) and I'll commit them. request.
There will be an official announcement when this repository is online.