Merge pull request #345 from crowning-/patch-1
Bitcoin references removed
This commit is contained in:
commit
9cd74bc979
@ -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.
|
||||||
|
Loading…
Reference in New Issue
Block a user