@ -26,7 +26,7 @@ Unpack the files into a directory and run:
@@ -26,7 +26,7 @@ Unpack the files into a directory and run:
Unpack the files into a directory, and then run bitcoin-qt.exe.
### OSX
### OSX
Drag Bitcoin-Qt to your applications folder, and then run Bitcoin-Qt.
@ -41,7 +41,7 @@ Building
@@ -41,7 +41,7 @@ Building
---------------------
The following are developer notes on how to build Bitcoin on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.
Unfortunately, the usual linux tools (7zip, hpmount, loopback mount) are incapable of opening this file.
To create a tarball suitable for gitian input, mount the dmg in OSX, then create it with:
To create a tarball suitable for Gitian input, mount the dmg in OS X, then create it with:
$ tar -C /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ -czf MacOSX10.9.sdk.tar.gz MacOSX10.9.sdk
The gitian descriptors build 2 sets of files: Linux tools, then Apple binaries
The Gitian descriptors build 2 sets of files: Linux tools, then Apple binaries
which are created using these tools. The build process has been designed to
avoid including the SDK's files in Gitian's outputs. All interim tarballs are
fully deterministic and may be freely redistributed.
@ -64,20 +64,20 @@ Ideally, the creation could be fixed and genisoimage would no longer be necessar
@@ -64,20 +64,20 @@ Ideally, the creation could be fixed and genisoimage would no longer be necessar
Background images and other features can be added to DMG files by inserting a
.DS_Store before creation. The easiest way to create this file is to build a
DMG without one, move it to a device running OSX, customize the layout, then
DMG without one, move it to a device running OSX, customize the layout, then
grab the .DS_Store file for later use. That is the approach taken here.
As of OSX Mavericks (10.9), using an Apple-blessed key to sign binaries is a
As of OSX Mavericks (10.9), using an Apple-blessed key to sign binaries is a
requirement in order to satisfy the new Gatekeeper requirements. Because this
private key cannot be shared, we'll have to be a bit creative in order for the
build process to remain somewhat deterministic. Here's how it works:
- Builders use gitian to create an unsigned release. This outputs an unsigned
- Builders use Gitian to create an unsigned release. This outputs an unsigned
dmg which users may choose to bless and run. It also outputs an unsigned app
structure in the form of a tarball, which also contains all of the tools
that have been previously (deterministically) built in order to create a
final dmg.
- The Apple keyholder uses this unsigned app to create a detached signature,
using the script that is also included there.
- Builders feed the unsigned app + detached signature back into gitian. It
- Builders feed the unsigned app + detached signature back into Gitian. It
uses the pre-built tools to recombine the pieces into a deterministic dmg.
This guide will show you how to build bitcoind (headless client) for OSX.
This guide will show you how to build bitcoind (headless client) for OSX.
Notes
-----
@ -13,8 +13,8 @@ built-in one is located in `/Applications/Utilities`.
@@ -13,8 +13,8 @@ built-in one is located in `/Applications/Utilities`.
Preparation
-----------
You need to install XCode with all the options checked so that the compiler
and everything is available in /usr not just /Developer. XCode should be
You need to install Xcode with all the options checked so that the compiler
and everything is available in /usr not just /Developer. Xcode should be
available on your OS X installation media, but if not, you can get the
current version from https://developer.apple.com/xcode/. If you install
Xcode 4.3 or later, you'll need to install its command line tools. This can
@ -38,7 +38,7 @@ NOTE: Building with Qt4 is still supported, however, could result in a broken UI
@@ -38,7 +38,7 @@ NOTE: Building with Qt4 is still supported, however, could result in a broken UI
### Building `bitcoind`
1. Clone the github tree to get the source code and go into the directory.
1. Clone the GitHub tree to get the source code and go into the directory.
git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin
@ -62,7 +62,7 @@ Use Qt Creator as IDE
@@ -62,7 +62,7 @@ Use Qt Creator as IDE
You can use Qt Creator as IDE, for debugging and for manipulating forms, etc.
Download Qt Creator from http://www.qt.io/download/. Download the "community edition" and only install Qt Creator (uncheck the rest during the installation process).
1. Make sure you installed everything through homebrew mentioned above
1. Make sure you installed everything through Homebrew mentioned above
2. Do a proper ./configure --with-gui=qt5 --enable-debug
3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project
4. Enter "bitcoin-qt" as project name, enter src/qt as location
*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
Core executables. It provides a way to be reasonably sure that the
@ -13,7 +13,7 @@ Multiple developers build the source code by following a specific descriptor
@@ -13,7 +13,7 @@ Multiple developers build the source code by following a specific descriptor
These results are compared and only if they match, the build is accepted and uploaded
to bitcoin.org.
More independent gitian builders are needed, which is why this guide exists.
More independent Gitian builders are needed, which is why this guide exists.
It is preferred you follow these steps yourself instead of using someone else's
VM image to avoid 'contaminating' the build.
@ -22,9 +22,9 @@ Table of Contents
@@ -22,9 +22,9 @@ Table of Contents
- [Create a new VirtualBox VM](#create-a-new-virtualbox-vm)
- [Connecting to the VM](#connecting-to-the-vm)
- [Setting up Debian for gitian building](#setting-up-debian-for-gitian-building)
- [Installing gitian](#installing-gitian)
- [Setting up the gitian image](#setting-up-the-gitian-image)
- [Setting up Debian for Gitian building](#setting-up-debian-for-gitian-building)
- [Installing Gitian](#installing-gitian)
- [Setting up the Gitian image](#setting-up-the-gitian-image)
- [Getting and building the inputs](#getting-and-building-the-inputs)
- [Building Bitcoin](#building-bitcoin)
- [Building an alternative repository](#building-an-alternative-repository)
@ -43,7 +43,7 @@ Any kind of virtualization can be used, for example:
@@ -43,7 +43,7 @@ Any kind of virtualization can be used, for example:
- [KVM](http://www.linux-kvm.org/page/Main_Page)
- [LXC](https://linuxcontainers.org/), see also [Gitian host docker container](https://github.com/gdm85/tenku/tree/master/docker/gitian-bitcoin-host/README.md).
You can also install gitian on actual hardware instead of using virtualization.
You can also install Gitian on actual hardware instead of using virtualization.
Create a new VirtualBox VM
---------------------------
@ -201,7 +201,7 @@ After Installation
@@ -201,7 +201,7 @@ After Installation
The next step in the guide involves logging in as root via SSH.
SSH login for root users is disabled by default, so we'll enable that now.
Login to the VM using username `root` and the root password you choose earlier.
Login to the VM using username `root` and the root password you chose earlier.
You'll be presented with a screen similar to this.
![](gitian-building/debian_root_login.png)
@ -243,7 +243,7 @@ For example, to connect as `root` from a Linux command prompt use
@@ -243,7 +243,7 @@ For example, to connect as `root` from a Linux command prompt use
Replace `root` with `debian` to log in as user.
Setting up Debian for gitian building
Setting up Debian for Gitian building
--------------------------------------
In this section we will be setting up the Debian installation for Gitian building.
@ -260,7 +260,7 @@ Then set up LXC and the rest with the following, which is a complex jumble of se
@@ -260,7 +260,7 @@ Then set up LXC and the rest with the following, which is a complex jumble of se
```bash
# the version of lxc-start in Debian 7.4 needs to run as root, so make sure
# that the build script can exectute it without providing a password
# that the build script can execute it without providing a password
@ -102,4 +102,3 @@ setting the BITCOIND and FLAGS environment variables in the file
@@ -102,4 +102,3 @@ setting the BITCOIND and FLAGS environment variables in the file
Auto respawning is currently only configured for Upstart and systemd.
@ -181,7 +181,7 @@ configured specifically to process scriptPubKey and not scriptSig scripts.
@@ -181,7 +181,7 @@ configured specifically to process scriptPubKey and not scriptSig scripts.
- Removed bitrpc.py from contrib
Addition of ZMQ-based Notifcations
Addition of ZMQ-based Notifications
==================================
Bitcoind can now (optionally) asynchronously notify clients through a
@ -34,17 +34,17 @@ Check out the source code in the following directory hierarchy.
@@ -34,17 +34,17 @@ Check out the source code in the following directory hierarchy.
Ensure your gitian.sigs are up-to-date if you wish to gverify your builds against other gitian signatures.
Ensure your gitian.sigs are up-to-date if you wish to gverify your builds against other Gitian signatures.
pushd ./gitian.sigs
git pull
@ -61,7 +61,7 @@ Check out the source code in the following directory hierarchy.
@@ -61,7 +61,7 @@ Check out the source code in the following directory hierarchy.
@ -71,15 +71,15 @@ Check out the source code in the following directory hierarchy.
@@ -71,15 +71,15 @@ Check out the source code in the following directory hierarchy.
###Optional: Seed the Gitian sources cache and offline git repositories
By default, gitian will fetch source files as needed. To cache them ahead of time:
By default, Gitian will fetch source files as needed. To cache them ahead of time:
make -C ../bitcoin/depends download SOURCES_PATH=`pwd`/cache/common
Only missing files will be fetched, so this is safe to re-run for each build.
NOTE: Offline builds must use the --url flag to ensure gitian fetches only from local URLs. For example:
NOTE: Offline builds must use the --url flag to ensure Gitian fetches only from local URLs. For example:
```
./bin/bguild --url bitcoin=/path/to/bitcoin,signature=/path/to/sigs {rest of arguments}
./bin/gbuild --url bitcoin=/path/to/bitcoin,signature=/path/to/sigs {rest of arguments}
```
The gbuild invocations below <b>DO NOT DO THIS</b> by default.
@ -108,8 +108,8 @@ The gbuild invocations below <b>DO NOT DO THIS</b> by default.
@@ -108,8 +108,8 @@ The gbuild invocations below <b>DO NOT DO THIS</b> by default.
1. source tarball (bitcoin-${VERSION}.tar.gz)
2. linux 32-bit and 64-bit dist tarballs (bitcoin-${VERSION}-linux[32|64].tar.gz)
3. windows 32-bit and 64-bit unsigned installers and dist zips (bitcoin-${VERSION}-win[32|64]-setup-unsigned.exe, bitcoin-${VERSION}-win[32|64].zip)
4. OSX unsigned installer and dist tarball (bitcoin-${VERSION}-osx-unsigned.dmg, bitcoin-${VERSION}-osx64.tar.gz)
5. Gitian signatures (in gitian.sigs/${VERSION}-<linux|{win,osx}-unsigned>/(your gitian key)/
4. OSX unsigned installer and dist tarball (bitcoin-${VERSION}-osx-unsigned.dmg, bitcoin-${VERSION}-osx64.tar.gz)
5. Gitian signatures (in gitian.sigs/${VERSION}-<linux|{win,osx}-unsigned>/(your Gitian key)/
###Next steps:
@ -123,12 +123,12 @@ Commit your signature to gitian.sigs:
@@ -123,12 +123,12 @@ Commit your signature to gitian.sigs:
git push # Assuming you can push to the gitian.sigs tree
popd
Wait for Windows/OSX detached signatures:
Wait for Windows/OSX detached signatures:
Once the Windows/OSX builds each have 3 matching signatures, they will be signed with their respective release keys.
Once the Windows/OSX builds each have 3 matching signatures, they will be signed with their respective release keys.
Detached signatures will then be committed to the [bitcoin-detached-sigs](https://github.com/bitcoin/bitcoin-detached-sigs) repository, which can be combined with the unsigned apps to create signed binaries.
Create (and optionally verify) the signed OSX binary:
Create (and optionally verify) the signed OSX binary:
@ -87,4 +87,3 @@ If you only want to use Tor to reach onion addresses, but not use it as a proxy
@@ -87,4 +87,3 @@ If you only want to use Tor to reach onion addresses, but not use it as a proxy
@ -107,4 +107,3 @@ The second example reduces the number of pluralized words that translators have
@@ -107,4 +107,3 @@ The second example reduces the number of pluralized words that translators have
During a string freeze (often before a major release), no translation strings are to be added, modified or removed.
This can be checked by executing `make translate` in the `src` directory, then verifying that `bitcoin_en.ts` remains unchanged.