mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 20:12:57 +01:00
Update Gitian Build guide to include OSX
This commit is contained in:
parent
dd49e92fb0
commit
3f7a61fc09
@ -4,8 +4,8 @@ Gitian building
|
|||||||
*Setup instructions for a gitian build of Bitcoin using a Debian VM or physical system.*
|
*Setup instructions for a gitian build of Bitcoin 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 Bitcoin
|
||||||
Core executables [1]. 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.
|
||||||
|
|
||||||
Multiple developers build the source code by following a specific descriptor
|
Multiple developers build the source code by following a specific descriptor
|
||||||
@ -17,9 +17,6 @@ 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
|
||||||
VM image to avoid 'contaminating' the build.
|
VM image to avoid 'contaminating' the build.
|
||||||
|
|
||||||
[1] For all platforms except for MacOSX, at this point. Work for deterministic
|
|
||||||
builds for Mac is under way here: https://github.com/theuni/osx-cross-depends .
|
|
||||||
|
|
||||||
Table of Contents
|
Table of Contents
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
@ -38,7 +35,7 @@ Preparing the Gitian builder host
|
|||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
||||||
The first step is to prepare the host environment that will be used to perform the Gitian builds.
|
The first step is to prepare the host environment that will be used to perform the Gitian builds.
|
||||||
In this guide it is explained how to set up the environment, and how to get the builds started.
|
This guide explains how to set up the environment, and how to start the builds.
|
||||||
|
|
||||||
Debian Linux was chosen as the host distribution because it has a lightweight install (in contrast to Ubuntu) and is readily available.
|
Debian Linux was chosen as the host distribution because it has a lightweight install (in contrast to Ubuntu) and is readily available.
|
||||||
Any kind of virtualization can be used, for example:
|
Any kind of virtualization can be used, for example:
|
||||||
@ -134,7 +131,7 @@ and proceed, just press `Enter`. To select a different button, press `Tab`.
|
|||||||
|
|
||||||
![](gitian-building/debian_install_5_configure_the_network.png)
|
![](gitian-building/debian_install_5_configure_the_network.png)
|
||||||
|
|
||||||
- Choose a root password and enter it twice (and remember it for later)
|
- Choose a root password and enter it twice (remember it for later)
|
||||||
|
|
||||||
![](gitian-building/debian_install_6a_set_up_root_password.png)
|
![](gitian-building/debian_install_6a_set_up_root_password.png)
|
||||||
|
|
||||||
@ -143,7 +140,7 @@ and proceed, just press `Enter`. To select a different button, press `Tab`.
|
|||||||
![](gitian-building/debian_install_7_set_up_user_fullname.png)
|
![](gitian-building/debian_install_7_set_up_user_fullname.png)
|
||||||
![](gitian-building/debian_install_8_set_up_username.png)
|
![](gitian-building/debian_install_8_set_up_username.png)
|
||||||
|
|
||||||
- Choose a user password and enter it twice (and remember it for later)
|
- Choose a user password and enter it twice (remember it for later)
|
||||||
|
|
||||||
![](gitian-building/debian_install_9_user_password.png)
|
![](gitian-building/debian_install_9_user_password.png)
|
||||||
|
|
||||||
@ -236,7 +233,7 @@ adduser debian sudo
|
|||||||
When you get a colorful screen with a question about the 'LXC directory', just
|
When you get a colorful screen with a question about the 'LXC directory', just
|
||||||
go with the default (`/var/lib/lxc`).
|
go with the default (`/var/lib/lxc`).
|
||||||
|
|
||||||
Then set up LXC and the rest with the following is a complex jumble of settings and workarounds:
|
Then set up LXC and the rest with the following, which is a complex jumble of settings and workarounds:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# the version of lxc-start in Debian 7.4 needs to run as root, so make sure
|
# the version of lxc-start in Debian 7.4 needs to run as root, so make sure
|
||||||
@ -280,7 +277,7 @@ 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 are willing to build.
|
Clone the git repositories for bitcoin and gitian and then checkout the bitcoin 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
|
||||||
@ -319,10 +316,10 @@ you will find a list of `wget` commands that can be executed to get the dependen
|
|||||||
|
|
||||||
I needed to add `--no-check-certificate` to the OpenSSL wget line to make it work.
|
I needed to add `--no-check-certificate` to the OpenSSL wget line to make it work.
|
||||||
Likely this is because the ca-certificates in Debian 7.4 is fairly old. This does not create a
|
Likely this is because the ca-certificates in Debian 7.4 is fairly old. This does not create a
|
||||||
security issue as the gitian descriptors check integrity of the input archives and refuse to work
|
security issue as the gitian descriptors check the integrity of the input archives and refuse to work
|
||||||
if any one is corrupted.
|
if any one is corrupted.
|
||||||
|
|
||||||
After downloading the archives, execute the `gbuild` commends to build the dependencies.
|
After downloading the archives, execute the `gbuild` commands to build the dependencies.
|
||||||
This can take a long time, but only has to be done when the dependencies change, for example
|
This can take a long time, but only has to be done when the dependencies change, for example
|
||||||
to upgrade the used version.
|
to upgrade the used version.
|
||||||
|
|
||||||
@ -339,7 +336,7 @@ tail -f var/build.log
|
|||||||
Building Bitcoin
|
Building Bitcoin
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
To build Bitcoin (for Linux and/or Windows) just follow the steps under 'perform
|
To build Bitcoin (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 bitcoin repository.
|
||||||
|
|
||||||
Output from `gbuild` will look something like
|
Output from `gbuild` will look something like
|
||||||
@ -372,7 +369,7 @@ can be inspected in `var/install.log` and `var/build.log`.
|
|||||||
Building an alternative repository
|
Building an alternative repository
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
If you want to do a test build of a pull on github it can be useful to point
|
If you want to do a test build of a pull on GitHub it can be useful to point
|
||||||
the gitian builder at an alternative repository, using the same descriptors
|
the gitian builder at an alternative repository, using the same descriptors
|
||||||
and inputs.
|
and inputs.
|
||||||
|
|
||||||
@ -382,13 +379,14 @@ URL=https://github.com/laanwj/bitcoin.git
|
|||||||
COMMIT=2014_03_windows_unicode_path
|
COMMIT=2014_03_windows_unicode_path
|
||||||
./bin/gbuild --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
|
./bin/gbuild --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
|
||||||
./bin/gbuild --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
|
./bin/gbuild --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
|
||||||
|
./bin/gbuild --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
|
||||||
```
|
```
|
||||||
|
|
||||||
Signing externally
|
Signing externally
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
If you want to do the PGP signing on another device that's possible too; 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 normally.
|
and follow the steps in the build process as normal.
|
||||||
|
|
||||||
gpg: skipped "laanwj": secret key not available
|
gpg: skipped "laanwj": secret key not available
|
||||||
|
|
||||||
@ -396,8 +394,9 @@ When you execute `gsign` you will get an error from GPG, which can be ignored. C
|
|||||||
in `gitian.sigs` to your signing machine and do
|
in `gitian.sigs` to your signing machine and do
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
gpg --detach-sign ${VERSION}/${SIGNER}/bitcoin-build.assert
|
gpg --detach-sign ${VERSION}-linux/${SIGNER}/bitcoin-build.assert
|
||||||
gpg --detach-sign ${VERSION}-win/${SIGNER}/bitcoin-build.assert
|
gpg --detach-sign ${VERSION}-win/${SIGNER}/bitcoin-build.assert
|
||||||
|
gpg --detach-sign ${VERSION}-osx/${SIGNER}/bitcoin-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
|
||||||
@ -407,5 +406,5 @@ Uploading signatures
|
|||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
After building and signing you can push your signatures (both the `.assert` and `.assert.sig` files) to the
|
After building and signing you can push your signatures (both the `.assert` and `.assert.sig` files) to the
|
||||||
[bitcoin/gitian.sigs](https://github.com/bitcoin/gitian.sigs/) repository, or if not possible create a pull
|
[bitcoin/gitian.sigs](https://github.com/bitcoin/gitian.sigs/) repository, or if that's not possible create a pull
|
||||||
request. You can also mail the files to me (laanwj@gmail.com) and I'll commit them.
|
request. You can also mail the files to me (laanwj@gmail.com) and I'll commit them.
|
||||||
|
Loading…
Reference in New Issue
Block a user