mirror of https://github.com/lukechilds/komodo.git
Wladimir J. van der Laan
12 years ago
11 changed files with 443 additions and 399 deletions
@ -1,33 +0,0 @@ |
|||
Bitcoin 0.8.2 BETA |
|||
|
|||
Copyright (c) 2009-2013 Bitcoin Developers |
|||
Distributed under the MIT/X11 software license, see the accompanying |
|||
file COPYING or http://www.opensource.org/licenses/mit-license.php. |
|||
This product includes software developed by the OpenSSL Project for use in |
|||
the OpenSSL Toolkit (http://www.openssl.org/). This product includes |
|||
cryptographic software written by Eric Young (eay@cryptsoft.com). |
|||
|
|||
|
|||
Intro |
|||
----- |
|||
Bitcoin is a free open source peer-to-peer electronic cash system that is |
|||
completely decentralized, without the need for a central server or trusted |
|||
parties. Users hold the crypto keys to their own money and transact directly |
|||
with each other, with the help of a P2P network to check for double-spending. |
|||
|
|||
|
|||
Setup |
|||
----- |
|||
You need the Qt4 run-time libraries to run Bitcoin-Qt. On Debian or Ubuntu: |
|||
sudo apt-get install libqtgui4 |
|||
|
|||
Unpack the files into a directory and run: |
|||
bin/32/bitcoin-qt (GUI, 32-bit) |
|||
bin/32/bitcoind (headless, 32-bit) |
|||
bin/64/bitcoin-qt (GUI, 64-bit) |
|||
bin/64/bitcoind (headless, 64-bit) |
|||
|
|||
|
|||
See the documentation at the bitcoin wiki: |
|||
https://en.bitcoin.it/wiki/Main_Page |
|||
for help and more information. |
@ -0,0 +1,46 @@ |
|||
Bitcoin 0.8.2 BETA |
|||
==================== |
|||
|
|||
Copyright (c) 2009-2013 Bitcoin Developers |
|||
|
|||
Distributed under the MIT/X11 software license, see the accompanying |
|||
file COPYING or http://www.opensource.org/licenses/mit-license.php. |
|||
This product includes software developed by the OpenSSL Project for use in the [OpenSSL Toolkit](http://www.openssl.org/). This product includes |
|||
cryptographic software written by Eric Young ([eay@cryptsoft.com](mailto:eay@cryptsoft.com)), and UPnP software written by Thomas Bernard. |
|||
|
|||
|
|||
Intro |
|||
--------------------- |
|||
Bitcoin is a free open source peer-to-peer electronic cash system that is |
|||
completely decentralized, without the need for a central server or trusted |
|||
parties. Users hold the crypto keys to their own money and transact directly |
|||
with each other, with the help of a P2P network to check for double-spending. |
|||
|
|||
|
|||
Setup |
|||
--------------------- |
|||
You need the Qt4 run-time libraries to run Bitcoin-Qt. On Debian or Ubuntu: |
|||
`sudo apt-get install libqtgui4` |
|||
|
|||
Unpack the files into a directory and run: |
|||
|
|||
- bin/32/bitcoin-qt (GUI, 32-bit) |
|||
- bin/32/bitcoind (headless, 32-bit) |
|||
- bin/64/bitcoin-qt (GUI, 64-bit) |
|||
- bin/64/bitcoind (headless, 64-bit) |
|||
|
|||
See the documentation at the [Bitcoin Wiki](https://en.bitcoin.it/wiki/Main_Page) |
|||
for help and more information. |
|||
|
|||
|
|||
Other Pages |
|||
--------------------- |
|||
- [Unix Build Notes](build-unix.md) |
|||
- [OSX Build Notes](build-osx.md) |
|||
- [Windows Build Notes](build-msw.md) |
|||
- [Coding Guidelines](coding.md) |
|||
- [Release Process](release-process.md) |
|||
- [Release Notes](release-notes.md) |
|||
- [Multiwallet Qt Development](multiwallet-qt.md) |
|||
- [Unit Tests](unit-tests.md) |
|||
- [Translation Process](translation_process.md) |
@ -0,0 +1,94 @@ |
|||
Coding |
|||
==================== |
|||
|
|||
Please be consistent with the existing coding style. |
|||
|
|||
Block style: |
|||
|
|||
bool Function(char* psz, int n) |
|||
{ |
|||
// Comment summarising what this section of code does |
|||
for (int i = 0; i < n; i++) |
|||
{ |
|||
// When something fails, return early |
|||
if (!Something()) |
|||
return false; |
|||
... |
|||
} |
|||
|
|||
// Success return is usually at the end |
|||
return true; |
|||
} |
|||
|
|||
- ANSI/Allman block style |
|||
- 4 space indenting, no tabs |
|||
- No extra spaces inside parenthesis; please don't do ( this ) |
|||
- No space after function names, one space after if, for and while |
|||
|
|||
Variable names begin with the type in lowercase, like nSomeVariable. |
|||
Please don't put the first word of the variable name in lowercase like |
|||
someVariable. |
|||
|
|||
Common types: |
|||
|
|||
n integer number: short, unsigned short, int, unsigned int, int64, uint64, sometimes char if used as a number |
|||
d double, float |
|||
f flag |
|||
hash uint256 |
|||
p pointer or array, one p for each level of indirection |
|||
psz pointer to null terminated string |
|||
str string object |
|||
v vector or similar list objects |
|||
map map or multimap |
|||
set set or multiset |
|||
bn CBigNum |
|||
|
|||
------------------------- |
|||
Locking/mutex usage notes |
|||
|
|||
The code is multi-threaded, and uses mutexes and the |
|||
LOCK/TRY_LOCK macros to protect data structures. |
|||
|
|||
Deadlocks due to inconsistent lock ordering (thread 1 locks cs_main |
|||
and then cs_wallet, while thread 2 locks them in the opposite order: |
|||
result, deadlock as each waits for the other to release its lock) are |
|||
a problem. Compile with -DDEBUG_LOCKORDER to get lock order |
|||
inconsistencies reported in the debug.log file. |
|||
|
|||
Re-architecting the core code so there are better-defined interfaces |
|||
between the various components is a goal, with any necessary locking |
|||
done by the components (e.g. see the self-contained CKeyStore class |
|||
and its cs_KeyStore lock for example). |
|||
|
|||
------- |
|||
Threads |
|||
|
|||
- StartNode : Starts other threads. |
|||
|
|||
- ThreadGetMyExternalIP : Determines outside-the-firewall IP address, sends addr message to connected peers when it determines it. |
|||
|
|||
- ThreadSocketHandler : Sends/Receives data from peers on port 8333. |
|||
|
|||
- ThreadMessageHandler : Higher-level message handling (sending and receiving). |
|||
|
|||
- ThreadOpenConnections : Initiates new connections to peers. |
|||
|
|||
- ThreadTopUpKeyPool : replenishes the keystore's keypool. |
|||
|
|||
- ThreadCleanWalletPassphrase : re-locks an encrypted wallet after user has unlocked it for a period of time. |
|||
|
|||
- SendingDialogStartTransfer : used by pay-via-ip-address code (obsolete) |
|||
|
|||
- ThreadDelayedRepaint : repaint the gui |
|||
|
|||
- ThreadFlushWalletDB : Close the wallet.dat file if it hasn't been used in 500ms. |
|||
|
|||
- ThreadRPCServer : Remote procedure call handler, listens on port 8332 for connections and services them. |
|||
|
|||
- ThreadBitcoinMiner : Generates bitcoins |
|||
|
|||
- ThreadMapPort : Universal plug-and-play startup/shutdown |
|||
|
|||
- Shutdown : Does an orderly shutdown of everything |
|||
|
|||
- ExitTimeout : Windows-only, sleeps 5 seconds then exits application |
@ -1,96 +0,0 @@ |
|||
Please be consistent with the existing coding style. |
|||
|
|||
Block style: |
|||
|
|||
bool Function(char* psz, int n) |
|||
{ |
|||
// Comment summarising what this section of code does |
|||
for (int i = 0; i < n; i++) |
|||
{ |
|||
// When something fails, return early |
|||
if (!Something()) |
|||
return false; |
|||
... |
|||
} |
|||
|
|||
// Success return is usually at the end |
|||
return true; |
|||
} |
|||
|
|||
- ANSI/Allman block style |
|||
- 4 space indenting, no tabs |
|||
- No extra spaces inside parenthesis; please don't do ( this ) |
|||
- No space after function names, one space after if, for and while |
|||
|
|||
Variable names begin with the type in lowercase, like nSomeVariable. |
|||
Please don't put the first word of the variable name in lowercase like |
|||
someVariable. |
|||
|
|||
Common types: |
|||
n integer number: short, unsigned short, int, unsigned int, |
|||
int64, uint64, sometimes char if used as a number |
|||
d double, float |
|||
f flag |
|||
hash uint256 |
|||
p pointer or array, one p for each level of indirection |
|||
psz pointer to null terminated string |
|||
str string object |
|||
v vector or similar list objects |
|||
map map or multimap |
|||
set set or multiset |
|||
bn CBigNum |
|||
|
|||
------------------------- |
|||
Locking/mutex usage notes |
|||
|
|||
The code is multi-threaded, and uses mutexes and the |
|||
LOCK/TRY_LOCK macros to protect data structures. |
|||
|
|||
Deadlocks due to inconsistent lock ordering (thread 1 locks cs_main |
|||
and then cs_wallet, while thread 2 locks them in the opposite order: |
|||
result, deadlock as each waits for the other to release its lock) are |
|||
a problem. Compile with -DDEBUG_LOCKORDER to get lock order |
|||
inconsistencies reported in the debug.log file. |
|||
|
|||
Re-architecting the core code so there are better-defined interfaces |
|||
between the various components is a goal, with any necessary locking |
|||
done by the components (e.g. see the self-contained CKeyStore class |
|||
and its cs_KeyStore lock for example). |
|||
|
|||
------- |
|||
Threads |
|||
|
|||
StartNode : Starts other threads. |
|||
|
|||
ThreadGetMyExternalIP : Determines outside-the-firewall IP address, |
|||
sends addr message to connected peers when it determines it. |
|||
|
|||
ThreadSocketHandler : Sends/Receives data from peers on port 8333. |
|||
|
|||
ThreadMessageHandler : Higher-level message handling (sending and |
|||
receiving). |
|||
|
|||
ThreadOpenConnections : Initiates new connections to peers. |
|||
|
|||
ThreadTopUpKeyPool : replenishes the keystore's keypool. |
|||
|
|||
ThreadCleanWalletPassphrase : re-locks an encrypted wallet after user |
|||
has unlocked it for a period of time. |
|||
|
|||
SendingDialogStartTransfer : used by pay-via-ip-address code (obsolete) |
|||
|
|||
ThreadDelayedRepaint : repaint the gui |
|||
|
|||
ThreadFlushWalletDB : Close the wallet.dat file if it hasn't been used |
|||
in 500ms. |
|||
|
|||
ThreadRPCServer : Remote procedure call handler, listens on port 8332 |
|||
for connections and services them. |
|||
|
|||
ThreadBitcoinMiner : Generates bitcoins |
|||
|
|||
ThreadMapPort : Universal plug-and-play startup/shutdown |
|||
|
|||
Shutdown : Does an orderly shutdown of everything |
|||
|
|||
ExitTimeout : Windows-only, sleeps 5 seconds then exits application |
@ -0,0 +1,164 @@ |
|||
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 -a v0.8.0 |
|||
|
|||
###write release notes. git shortlog helps a lot, for example: |
|||
|
|||
git shortlog --no-merges v0.7.2..v0.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=0.8.0 |
|||
cd ./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.6.tar.gz' -O miniupnpc-1.6.tar.gz |
|||
wget 'http://www.openssl.org/source/openssl-1.0.1c.tar.gz' |
|||
wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz' |
|||
wget 'http://zlib.net/zlib-1.2.6.tar.gz' |
|||
wget 'ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.5.9.tar.gz' |
|||
wget 'http://fukuchi.org/works/qrencode/qrencode-3.2.0.tar.bz2' |
|||
wget 'http://downloads.sourceforge.net/project/boost/boost/1.50.0/boost_1_50_0.tar.bz2' |
|||
wget 'http://releases.qt-project.org/qt4/source/qt-everywhere-opensource-src-4.8.3.tar.gz' |
|||
cd .. |
|||
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/boost-win32.yml |
|||
mv build/out/boost-win32-1.50.0-gitian2.zip inputs/ |
|||
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/qt-win32.yml |
|||
mv build/out/qt-win32-4.8.3-gitian-r1.zip inputs/ |
|||
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/deps-win32.yml |
|||
mv build/out/bitcoin-deps-0.0.5.zip inputs/ |
|||
|
|||
Build bitcoind and bitcoin-qt on Linux32, Linux64, and Win32: |
|||
|
|||
./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian.yml |
|||
./bin/gsign --signer $SIGNER --release ${VERSION} --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian.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-win32.yml |
|||
./bin/gsign --signer $SIGNER --release ${VERSION}-win32 --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win32.yml |
|||
pushd build/out |
|||
zip -r bitcoin-${VERSION}-win32-gitian.zip * |
|||
mv bitcoin-${VERSION}-win32-gitian.zip ../../ |
|||
popd |
|||
|
|||
Build output expected: |
|||
|
|||
1. linux 32-bit and 64-bit binaries + source (bitcoin-${VERSION}-linux-gitian.zip) |
|||
2. windows 32-bit binary, installer + source (bitcoin-${VERSION}-win32-gitian.zip) |
|||
3. Gitian signatures (in gitian.sigs/${VERSION}[-win32]/(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}-win32-gitian.zip -d bitcoin-${VERSION}-win32 |
|||
mv bitcoin-${VERSION}-win32/bitcoin-*-setup.exe . |
|||
zip -r bitcoin-${VERSION}-win32.zip bitcoin-${VERSION}-win32 |
|||
rm -rf bitcoin-${VERSION}-win32 |
|||
|
|||
**Perform Mac build:** |
|||
|
|||
OSX binaries are created by Gavin Andresen on a 32-bit, OSX 10.6 machine. |
|||
|
|||
qmake RELEASE=1 USE_UPNP=1 USE_QRCODE=1 bitcoin-qt.pro |
|||
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 |
|||
|
|||
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) |
|||
|
|||
* 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 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}-win32/${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=0.5.1 |
|||
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}-win32-gitian |
|||
pushd bitcoin-${VERSION}-win32-gitian |
|||
unzip ../bitcoin-${VERSION}-win32-gitian.zip |
|||
mkdir gitian |
|||
cp ../bitcoin/contrib/gitian-downloader/*.pgp ./gitian/ |
|||
for signer in $(ls ../gitian.sigs/${VERSION}-win32/); do |
|||
cp ../gitian.sigs/${VERSION}-win32/${signer}/bitcoin-build.assert ./gitian/${signer}-build.assert |
|||
cp ../gitian.sigs/${VERSION}-win32/${signer}/bitcoin-build.assert.sig ./gitian/${signer}-build.assert.sig |
|||
done |
|||
zip -r bitcoin-${VERSION}-win32-gitian.zip * |
|||
cp bitcoin-${VERSION}-win32-gitian.zip ../ |
|||
popd |
|||
|
|||
- Upload gitian zips to SourceForge |
|||
- Celebrate |
@ -1,144 +0,0 @@ |
|||
* 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 -a v0.8.0 |
|||
|
|||
* write release notes. git shortlog helps a lot, for example: |
|||
|
|||
git shortlog --no-merges v0.7.2..v0.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=0.8.0 |
|||
cd ./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.6.tar.gz' -O miniupnpc-1.6.tar.gz |
|||
wget 'http://www.openssl.org/source/openssl-1.0.1c.tar.gz' |
|||
wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz' |
|||
wget 'http://zlib.net/zlib-1.2.6.tar.gz' |
|||
wget 'ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.5.9.tar.gz' |
|||
wget 'http://fukuchi.org/works/qrencode/qrencode-3.2.0.tar.bz2' |
|||
wget 'http://downloads.sourceforge.net/project/boost/boost/1.50.0/boost_1_50_0.tar.bz2' |
|||
wget 'http://releases.qt-project.org/qt4/source/qt-everywhere-opensource-src-4.8.3.tar.gz' |
|||
cd .. |
|||
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/boost-win32.yml |
|||
mv build/out/boost-win32-1.50.0-gitian2.zip inputs/ |
|||
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/qt-win32.yml |
|||
mv build/out/qt-win32-4.8.3-gitian-r1.zip inputs/ |
|||
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/deps-win32.yml |
|||
mv build/out/bitcoin-deps-0.0.5.zip inputs/ |
|||
|
|||
* Build bitcoind and bitcoin-qt on Linux32, Linux64, and Win32: |
|||
./bin/gbuild --commit bitcoin=v${VERSION} ../bitcoin/contrib/gitian-descriptors/gitian.yml |
|||
./bin/gsign --signer $SIGNER --release ${VERSION} --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian.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-win32.yml |
|||
./bin/gsign --signer $SIGNER --release ${VERSION}-win32 --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win32.yml |
|||
pushd build/out |
|||
zip -r bitcoin-${VERSION}-win32-gitian.zip * |
|||
mv bitcoin-${VERSION}-win32-gitian.zip ../../ |
|||
popd |
|||
|
|||
Build output expected: |
|||
1. linux 32-bit and 64-bit binaries + source (bitcoin-${VERSION}-linux-gitian.zip) |
|||
2. windows 32-bit binary, installer + source (bitcoin-${VERSION}-win32-gitian.zip) |
|||
3. Gitian signatures (in gitian.sigs/${VERSION}[-win32]/(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}-win32-gitian.zip -d bitcoin-${VERSION}-win32 |
|||
mv bitcoin-${VERSION}-win32/bitcoin-*-setup.exe . |
|||
zip -r bitcoin-${VERSION}-win32.zip bitcoin-${VERSION}-win32 |
|||
rm -rf bitcoin-${VERSION}-win32 |
|||
|
|||
* perform Mac build |
|||
OSX binaries are created by Gavin Andresen on a 32-bit, OSX 10.6 machine. |
|||
|
|||
qmake RELEASE=1 USE_UPNP=1 USE_QRCODE=1 bitcoin-qt.pro |
|||
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 |
|||
|
|||
Build output expected: |
|||
Bitcoin-Qt.dmg |
|||
|
|||
* Code-sign Windows -setup.exe (in a Windows virtual machine) and |
|||
OSX Bitcoin-Qt.app (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 forum version |
|||
|
|||
* update wiki download links |
|||
|
|||
* update wiki changelog: https://en.bitcoin.it/wiki/Changelog |
|||
|
|||
* Commit your signature to gitian.sigs: |
|||
pushd gitian.sigs |
|||
git add ${VERSION}/${SIGNER} |
|||
git add ${VERSION}-win32/${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=0.5.1 |
|||
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}-win32-gitian |
|||
pushd bitcoin-${VERSION}-win32-gitian |
|||
unzip ../bitcoin-${VERSION}-win32-gitian.zip |
|||
mkdir gitian |
|||
cp ../bitcoin/contrib/gitian-downloader/*.pgp ./gitian/ |
|||
for signer in $(ls ../gitian.sigs/${VERSION}-win32/); do |
|||
cp ../gitian.sigs/${VERSION}-win32/${signer}/bitcoin-build.assert ./gitian/${signer}-build.assert |
|||
cp ../gitian.sigs/${VERSION}-win32/${signer}/bitcoin-build.assert.sig ./gitian/${signer}-build.assert.sig |
|||
done |
|||
zip -r bitcoin-${VERSION}-win32-gitian.zip * |
|||
cp bitcoin-${VERSION}-win32-gitian.zip ../ |
|||
popd |
|||
|
|||
* Upload gitian zips to SourceForge |
Loading…
Reference in new issue