Skip to content
This repository
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 132 lines (106 sloc) 5.208 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
* update translations (ping tcatm on IRC for now)

* update (commit) version in sources
  bitcoin-qt.pro
  src/serialize.h
  share/setup.nsi
  doc/README*

* tag version in git

   git tag -a v0.5.1

* write release notes. git shortlog helps a lot:

   git shortlog --no-merges v0.5.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.5.1
   cd ./gitian-builder

  * Fetch and build inputs:
   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.0e.tar.gz'
   wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'
   wget 'http://downloads.sourceforge.net/project/boost/boost/1.47.0/boost_1_47_0.tar.bz2'
   wget 'http://download.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.4.tar.gz'
   cd ..
   ./bin/gbuild ../bitcoin/contrib/gitian-descriptors/boost-win32.yml
   cp build/out/boost-win32-1.47.0-gitian.zip inputs/
   ./bin/gbuild ../bitcoin/contrib/gitian-descriptors/qt-win32.yml
   cp build/out/qt-win32-4.7.4-gitian.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
  See this blog post for how Gavin set up his build environment and
  patched macdeployqt to build the OSX release:
    http://gavintech.blogspot.com/2011/11/deploying-bitcoin-qt-on-osx.html
  qmake USE_SSL=1 USE_UPNP=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)
  contrib/macdeploy/macdeployqtplus Bitcoin-Qt.app -add-qt-tr $T -dmg -fancy contrib/macdeploy/fancy.plist

 Build output expected:
  Bitcoin-Qt.dmg

* upload builds to SourceForge

* create SHA256SUMS for builds, and PGP-sign it

* update bitcoin.org version

* update forum version

* update wiki download links

* 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
Something went wrong with that request. Please try again.