Page MenuHomePhabricator

No OneTemporary

diff --git a/doc/build-osx.md b/doc/build-osx.md
index fcb9a37f3d..faa31cb023 100644
--- a/doc/build-osx.md
+++ b/doc/build-osx.md
@@ -1,154 +1,160 @@
Mac OS X Build Instructions and Notes
====================================
This guide will show you how to build bitcoind(headless client) for OSX.
Notes
-----
-* Tested on OS X 10.5 through 10.9 on Intel processors only. PPC is not
-supported because it is big-endian.
+* Tested on OS X 10.6 through 10.9 on 64-bit Intel processors only.
+Older OSX releases or 32-bit processors are no longer supported.
+
* All of the commands should be executed in a Terminal application. The
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
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
be done in `Xcode > Preferences > Downloads > Components` and generally must
be re-done or updated every time Xcode is updated.
There's an assumption that you already have `git` installed, as well. If
not, it's the path of least resistance to install [Github for Mac](https://mac.github.com/)
(OS X 10.7+) or
[Git for OS X](https://code.google.com/p/git-osx-installer/). It is also
available via Homebrew or MacPorts.
You will also need to install [Homebrew](http://brew.sh)
or [MacPorts](https://www.macports.org/) in order to install library
dependencies. It's largely a religious decision which to choose, but, as of
December 2012, MacPorts is a little easier because you can just install the
dependencies immediately - no other work required. If you're unsure, read
the instructions through first in order to assess what you want to do.
Homebrew is a little more popular among those newer to OS X.
The installation of the actual dependencies is covered in the Instructions
sections below.
Instructions: MacPorts
----------------------
### Install dependencies
Installing the dependencies using MacPorts is very straightforward.
sudo port install boost db48@+no_java openssl miniupnpc autoconf pkgconfig automake
+Optional: install Qt4
+
+ sudo port install qt4-mac qrencode protobuf-cpp
+
### Building `bitcoind`
1. Clone the github tree to get the source code and go into the directory.
git clone git@github.com:bitcoin/bitcoin.git bitcoin
cd bitcoin
-2. Build bitcoind:
+2. Build bitcoind (and Bitcoin-Qt, if configured):
./autogen.sh
./configure
make
3. It is a good idea to build and run the unit tests, too:
make check
Instructions: Homebrew
----------------------
#### Install dependencies using Homebrew
brew install autoconf automake berkeley-db4 boost miniupnpc openssl pkg-config protobuf qt
Note: After you have installed the dependencies, you should check that the Homebrew installed version of OpenSSL is the one available for compilation. You can check this by typing
openssl version
into Terminal. You should see OpenSSL 1.0.1f 6 Jan 2014.
If not, you can ensure that the Homebrew OpenSSL is correctly linked by running
brew link openssl --force
Rerunning "openssl version" should now return the correct version.
### Building `bitcoind`
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
2. Build bitcoind:
./autogen.sh
./configure
make
3. It is a good idea to build and run the unit tests, too:
make check
Creating a release build
------------------------
+You can ignore this section if you are building `bitcoind` for your own use.
-A bitcoind binary is not included in the Bitcoin-Qt.app bundle. You can ignore
-this section if you are building `bitcoind` for your own use.
+bitcoind/bitcoin-cli binaries are not included in the Bitcoin-Qt.app bundle.
-If you are building `bitcoind` for others, your build machine should be set up
+If you are building `bitcoind` or `Bitcoin-Qt` for others, your build machine should be set up
as follows for maximum compatibility:
All dependencies should be compiled with these flags:
- -mmacosx-version-min=10.5 -arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk
+ -mmacosx-version-min=10.6
+ -arch x86_64
+ -isysroot $(xcode-select --print-path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk
For MacPorts, that means editing your macports.conf and setting
`macosx_deployment_target` and `build_arch`:
- macosx_deployment_target=10.5
- build_arch=i386
+ macosx_deployment_target=10.6
+ build_arch=x86_64
... and then uninstalling and re-installing, or simply rebuilding, all ports.
As of December 2012, the `boost` port does not obey `macosx_deployment_target`.
Download `http://gavinandresen-bitcoin.s3.amazonaws.com/boost_macports_fix.zip`
-for a fix. Some ports also seem to obey either `build_arch` or
-`macosx_deployment_target`, but not both at the same time. For example, building
-on an OS X 10.6 64-bit machine fails. Official release builds of Bitcoin-Qt are
-compiled on an OS X 10.6 32-bit machine to workaround that problem.
-
-Once dependencies are compiled, creating `Bitcoin-Qt.app` is easy:
+for a fix.
- make -f Makefile.osx RELEASE=1
+Once dependencies are compiled, see release-process.md for how the Bitcoin-Qt.app
+bundle is packaged and signed to create the .dmg disk image that is distributed.
Running
-------
It's now available at `./bitcoind`, provided that you are still in the `src`
directory. We have to first create the RPC configuration file, though.
Run `./bitcoind` to get the filename where it should be put, or just try these
commands:
echo -e "rpcuser=bitcoinrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
chmod 600 "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
When next you run it, it will start downloading the blockchain, but it won't
-output anything while it's doing this. This process may take several hours.
+output anything while it's doing this. This process may take several hours;
+you can monitor its process by looking at the debug.log file, like this:
+
+ tail -f $HOME/Library/Application\ Support/Bitcoin/debug.log
Other commands:
- ./bitcoind --help # for a list of command-line options.
./bitcoind -daemon # to start the bitcoin daemon.
- ./bitcoind help # When the daemon is running, to get a list of RPC commands
+ ./bitcoin-cli --help # for a list of command-line options.
+ ./bitcoin-cli help # When the daemon is running, to get a list of RPC commands
diff --git a/doc/release-process.md b/doc/release-process.md
index 459819e596..095d20f9ea 100644
--- a/doc/release-process.md
+++ b/doc/release-process.md
@@ -1,190 +1,192 @@
Release Process
====================
* update translations (ping wumpus, Diapolo or tcatm on IRC)
* see https://github.com/bitcoin/bitcoin/blob/master/doc/translation_process.md#syncing-with-transifex
* * *
###update (commit) version in sources
bitcoin-qt.pro
contrib/verifysfbinaries/verify.sh
doc/README*
share/setup.nsi
src/clientversion.h (change CLIENT_VERSION_IS_RELEASE to true)
###tag version in git
git tag -s v(new version, e.g. 0.8.0)
###write release notes. git shortlog helps a lot, for example:
git shortlog --no-merges v(current version, e.g. 0.7.2)..v(new version, e.g. 0.8.0)
* * *
##perform gitian builds
From a directory containing the bitcoin source, gitian-builder and gitian.sigs
export SIGNER=(your gitian key, ie bluematt, sipa, etc)
export VERSION=(new version, e.g. 0.8.0)
pushd ./bitcoin
git checkout v${VERSION}
popd
pushd ./gitian-builder
Fetch and build inputs: (first time, or when dependency versions change)
mkdir -p inputs; cd inputs/
wget 'http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.8.tar.gz' -O miniupnpc-1.8.tar.gz
wget 'https://www.openssl.org/source/openssl-1.0.1e.tar.gz'
wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'
wget 'http://zlib.net/zlib-1.2.8.tar.gz'
wget 'ftp://ftp.simplesystems.org/pub/png/src/history/libpng16/libpng-1.6.8.tar.gz'
wget 'https://fukuchi.org/works/qrencode/qrencode-3.4.3.tar.bz2'
wget 'https://downloads.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.tar.bz2'
wget 'https://svn.boost.org/trac/boost/raw-attachment/ticket/7262/boost-mingw.patch' -O \
boost-mingw-gas-cross-compile-2013-03-03.patch
wget 'https://download.qt-project.org/official_releases/qt/5.2/5.2.0/single/qt-everywhere-opensource-src-5.2.0.tar.gz'
wget 'https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.bz2'
cd ..
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/boost-linux.yml
mv build/out/boost-*.zip inputs/
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/deps-linux.yml
mv build/out/bitcoin-deps-*.zip inputs/
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/boost-win.yml
mv build/out/boost-*.zip inputs/
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/deps-win.yml
mv build/out/bitcoin-deps-*.zip inputs/
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/qt-win.yml
mv build/out/qt-*.zip inputs/
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/protobuf-win.yml
mv build/out/protobuf-*.zip inputs/
Build bitcoind and bitcoin-qt on Linux32, Linux64, and Win32:
./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
./bin/gsign --signer $SIGNER --release ${VERSION} --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
pushd build/out
zip -r bitcoin-${VERSION}-linux-gitian.zip *
mv bitcoin-${VERSION}-linux-gitian.zip ../../../
popd
./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
./bin/gsign --signer $SIGNER --release ${VERSION}-win --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
pushd build/out
zip -r bitcoin-${VERSION}-win-gitian.zip *
mv bitcoin-${VERSION}-win-gitian.zip ../../../
popd
popd
Build output expected:
1. linux 32-bit and 64-bit binaries + source (bitcoin-${VERSION}-linux-gitian.zip)
2. windows 32-bit and 64-bit binaries + installer + source (bitcoin-${VERSION}-win-gitian.zip)
3. Gitian signatures (in gitian.sigs/${VERSION}[-win]/(your gitian key)/
repackage gitian builds for release as stand-alone zip/tar/installer exe
**Linux .tar.gz:**
unzip bitcoin-${VERSION}-linux-gitian.zip -d bitcoin-${VERSION}-linux
tar czvf bitcoin-${VERSION}-linux.tar.gz bitcoin-${VERSION}-linux
rm -rf bitcoin-${VERSION}-linux
**Windows .zip and setup.exe:**
unzip bitcoin-${VERSION}-win-gitian.zip -d bitcoin-${VERSION}-win
mv bitcoin-${VERSION}-win/bitcoin-*-setup.exe .
zip -r bitcoin-${VERSION}-win.zip bitcoin-${VERSION}-win
rm -rf bitcoin-${VERSION}-win
**Perform Mac build:**
- OSX binaries are created by Gavin Andresen on a 32-bit, OSX 10.6 machine.
+ OSX binaries are created by Gavin Andresen on a 64-bit, OSX 10.6 machine.
- qmake RELEASE=1 USE_UPNP=1 USE_QRCODE=1 bitcoin-qt.pro
+ ./autogen.sh
+ SDK=$(xcode-select --print-path)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk
+ CXXFLAGS="-mmacosx-version-min=10.6 -isysroot $SDK" ./configure --enable-upnp-default
make
export QTDIR=/opt/local/share/qt4 # needed to find translations/qt_*.qm files
T=$(contrib/qt_translations.py $QTDIR/translations src/qt/locale)
- python2.7 share/qt/clean_mac_info_plist.py
- python2.7 contrib/macdeploy/macdeployqtplus Bitcoin-Qt.app -add-qt-tr $T -dmg -fancy contrib/macdeploy/fancy.plist
+ export CODESIGNARGS='--keychain ...path_to_keychain --sign "Developer ID Application: BITCOIN FOUNDATION, INC., THE"'
+ python2.7 contrib/macdeploy/macdeployqtplus Bitcoin-Qt.app -sign -add-qt-tr $T -dmg -fancy contrib/macdeploy/fancy.plist
Build output expected: Bitcoin-Qt.dmg
###Next steps:
-* Code-sign Windows -setup.exe (in a Windows virtual machine) and
- OSX Bitcoin-Qt.app (Note: only Gavin has the code-signing keys currently)
+* Code-sign Windows -setup.exe (in a Windows virtual machine using signtool)
+ Note: only Gavin has the code-signing keys currently.
* upload builds to SourceForge
* create SHA256SUMS for builds, and PGP-sign it
* update bitcoin.org version
make sure all OS download links go to the right versions
* update download sizes on bitcoin.org/_templates/download.html
* update forum version
* update wiki download links
* update wiki changelog: [https://en.bitcoin.it/wiki/Changelog](https://en.bitcoin.it/wiki/Changelog)
Commit your signature to gitian.sigs:
pushd gitian.sigs
git add ${VERSION}/${SIGNER}
git add ${VERSION}-win/${SIGNER}
git commit -a
git push # Assuming you can push to the gitian.sigs tree
popd
-------------------------------------------------------------------------
### After 3 or more people have gitian-built, repackage gitian-signed zips:
From a directory containing bitcoin source, gitian.sigs and gitian zips
export VERSION=(new version, e.g. 0.8.0)
mkdir bitcoin-${VERSION}-linux-gitian
pushd bitcoin-${VERSION}-linux-gitian
unzip ../bitcoin-${VERSION}-linux-gitian.zip
mkdir gitian
cp ../bitcoin/contrib/gitian-downloader/*.pgp ./gitian/
for signer in $(ls ../gitian.sigs/${VERSION}/); do
cp ../gitian.sigs/${VERSION}/${signer}/bitcoin-build.assert ./gitian/${signer}-build.assert
cp ../gitian.sigs/${VERSION}/${signer}/bitcoin-build.assert.sig ./gitian/${signer}-build.assert.sig
done
zip -r bitcoin-${VERSION}-linux-gitian.zip *
cp bitcoin-${VERSION}-linux-gitian.zip ../
popd
mkdir bitcoin-${VERSION}-win-gitian
pushd bitcoin-${VERSION}-win-gitian
unzip ../bitcoin-${VERSION}-win-gitian.zip
mkdir gitian
cp ../bitcoin/contrib/gitian-downloader/*.pgp ./gitian/
for signer in $(ls ../gitian.sigs/${VERSION}-win/); do
cp ../gitian.sigs/${VERSION}-win/${signer}/bitcoin-build.assert ./gitian/${signer}-build.assert
cp ../gitian.sigs/${VERSION}-win/${signer}/bitcoin-build.assert.sig ./gitian/${signer}-build.assert.sig
done
zip -r bitcoin-${VERSION}-win-gitian.zip *
cp bitcoin-${VERSION}-win-gitian.zip ../
popd
- Upload gitian zips to SourceForge
- Announce the release:
- Add the release to bitcoin.org: https://github.com/bitcoin/bitcoin.org/tree/master/_releases
- Release sticky on bitcointalk: https://bitcointalk.org/index.php?board=1.0
- Bitcoin-development mailing list
- Optionally reddit /r/Bitcoin, ...
- Celebrate
diff --git a/share/qt/Info.plist.in b/share/qt/Info.plist.in
index b1c2dcb462..4ed1f1be50 100644
--- a/share/qt/Info.plist.in
+++ b/share/qt/Info.plist.in
@@ -1,86 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
+ <key>LSMinimumSystemVersion</key>
+ <string>10.6.0</string>
+
+ <key>LSArchitecturePriority</key>
+ <array>
+ <string>x86_64</string>
+ </array>
+
<key>CFBundleIconFile</key>
<string>bitcoin.icns</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleGetInfoString</key>
<string>@CLIENT_VERSION_MAJOR@.@CLIENT_VERSION_MINOR@, Copyright © 2009-@COPYRIGHT_YEAR@ The Bitcoin Core developers</string>
<key>CFBundleShortVersionString</key>
<string>@CLIENT_VERSION_MAJOR@.@CLIENT_VERSION_MINOR@</string>
<key>CFBundleVersion</key>
<string>@CLIENT_VERSION_MAJOR@.@CLIENT_VERSION_MINOR@</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>
<string>Bitcoin-Qt</string>
<key>CFBundleIdentifier</key>
<string>org.bitcoinfoundation.Bitcoin-Qt</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>org.bitcoin.BitcoinPayment</string>
<key>CFBundleURLSchemes</key>
<array>
<string>bitcoin</string>
</array>
</dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeIdentifier</key>
<string>org.bitcoin.paymentrequest</string>
<key>UTTypeDescription</key>
<string>Bitcoin payment request</string>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.mime-type</key>
<string>application/x-bitcoin-payment-request</string>
<key>public.filename-extension</key>
<array>
<string>bitcoinpaymentrequest</string>
</array>
</dict>
</dict>
</array>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>LSItemContentTypes</key>
<array>
<string>org.bitcoin.paymentrequest</string>
</array>
<key>LSHandlerRank</key>
<string>Owner</string>
</dict>
</array>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSHighResolutionCapable</key>
<string>True</string>
</dict>
</plist>
diff --git a/share/qt/clean_mac_info_plist.py b/share/qt/clean_mac_info_plist.py
deleted file mode 100755
index df677f50b7..0000000000
--- a/share/qt/clean_mac_info_plist.py
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env python
-# Jonas Schnelli, 2013
-# make sure the Bitcoin-Qt.app contains the right plist (including the right version)
-# fix made because of serval bugs in Qt mac deployment (https://bugreports.qt-project.org/browse/QTBUG-21267)
-
-from string import Template
-from datetime import date
-
-bitcoinDir = "./";
-
-inFile = bitcoinDir+"/share/qt/Info.plist"
-outFile = "Bitcoin-Qt.app/Contents/Info.plist"
-version = "unknown";
-
-fileForGrabbingVersion = bitcoinDir+"bitcoin-qt.pro"
-for line in open(fileForGrabbingVersion):
- lineArr = line.replace(" ", "").split("=");
- if lineArr[0].startswith("VERSION"):
- version = lineArr[1].replace("\n", "");
-
-fIn = open(inFile, "r")
-fileContent = fIn.read()
-s = Template(fileContent)
-newFileContent = s.substitute(VERSION=version,YEAR=date.today().year)
-
-fOut = open(outFile, "w");
-fOut.write(newFileContent);
-
-print "Info.plist fresh created"
\ No newline at end of file

File Metadata

Mime Type
text/x-diff
Expires
Sun, Apr 27, 10:07 (21 h, 17 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5570948
Default Alt Text
(18 KB)

Event Timeline