3ab1664594
Should make it possible to run the resulting GUI executable on Linux distributions that use Qt 4.6, such as Debian Wheezy and Tails. Builds a mini-SDK for building against Qt 4.6. This includes the headers as well as host utilities such as `lrelease`, `qrc` and `moc`. This speeds up the gitian build a bit - libqt4-dev pulled in a lot of packages, and is no longer needed as this provides a replacement of our own. Note: This does not replace the Qt build with at static library. After this commit we still build dynamically against the system Qt library. The only difference is that compatibility with an older version is maintained. This loses minor GUI functionality (such as setPlaceholderText) but still allows integration into the window management of the host OS, unlike when statically linking.
210 lines
8.7 KiB
Markdown
210 lines
8.7 KiB
Markdown
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
|
|
|
|
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.9.tar.gz' -O miniupnpc-1.9.tar.gz
|
|
wget 'https://www.openssl.org/source/openssl-1.0.1g.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://download.qt-project.org/archive/qt/4.6/qt-everywhere-opensource-src-4.6.4.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/qt-linux.yml
|
|
mv build/out/qt-*.tar.gz 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/
|
|
|
|
The expected SHA256 hashes of the intermediate inputs are:
|
|
|
|
35c3dfd8b9362f59e81b51881b295232e3bc9e286f1add193b59d486d9ac4a5c bitcoin-deps-linux32-gitian-r5.zip
|
|
571789867d172500fa96d63d0ba8c5b1e1a3d6f44f720eddf2f93665affc88b3 bitcoin-deps-linux64-gitian-r5.zip
|
|
f29b7d9577417333fb56e023c2977f5726a7c297f320b175a4108cf7cd4c2d29 boost-linux32-1.55.0-gitian-r1.zip
|
|
88232451c4104f7eb16e469ac6474fd1231bd485687253f7b2bdf46c0781d535 boost-linux64-1.55.0-gitian-r1.zip
|
|
74ec2d301cf1a9d03b194153f545102ba45dad02b390485212fe6717de486361 qt-linux32-4.6.4-gitian-r1.tar.gz
|
|
01d0477e299467f09280f15424781154e2b1ea4072c5edb16e044c234954fd9a qt-linux64-4.6.4-gitian-r1.tar.gz
|
|
60dc2d3b61e9c7d5dbe2f90d5955772ad748a47918ff2d8b74e8db9b1b91c909 boost-win32-1.55.0-gitian-r6.zip
|
|
f65fcaf346bc7b73bc8db3a8614f4f6bee2f61fcbe495e9881133a7c2612a167 boost-win64-1.55.0-gitian-r6.zip
|
|
97e62002d338885336bb24e7cbb9471491294bd8857af7a83d18c0961f864ec0 bitcoin-deps-win32-gitian-r11.zip
|
|
ee3ea2d5aac1a67ea6bfbea2c04068a7c0940616ce48ee4f37c264bb9d4438ef bitcoin-deps-win64-gitian-r11.zip
|
|
963e3e5e85879010a91143c90a711a5d1d5aba992e38672cdf7b54e42c56b2f1 qt-win32-5.2.0-gitian-r3.zip
|
|
751c579830d173ef3e6f194e83d18b92ebef6df03289db13ab77a52b6bc86ef0 qt-win64-5.2.0-gitian-r3.zip
|
|
e2e403e1a08869c7eed4d4293bce13d51ec6a63592918b90ae215a0eceb44cb4 protobuf-win32-2.5.0-gitian-r4.zip
|
|
a0999037e8b0ef9ade13efd88fee261ba401f5ca910068b7e0cd3262ba667db0 protobuf-win64-2.5.0-gitian-r4.zip
|
|
|
|
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 64-bit, OSX 10.6 machine.
|
|
|
|
./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)
|
|
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 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
|