Wladimir J. van der Laan
12 years ago
11 changed files with 443 additions and 399 deletions
@ -1,33 +0,0 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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