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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
|
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
dogecoin-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 dogecoin 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 ./dogecoin
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.1h.tar.gz'
wget 'http://download.oracle.com/berkeley-db/db-5.1.29.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 ../dogecoin/contrib/gitian-descriptors/boost-linux.yml
mv build/out/boost-*.zip inputs/
./bin/gbuild ../dogecoin/contrib/gitian-descriptors/deps-linux.yml
mv build/out/dogecoin-deps-*.zip inputs/
./bin/gbuild ../dogecoin/contrib/gitian-descriptors/boost-win.yml
mv build/out/boost-*.zip inputs/
./bin/gbuild ../dogecoin/contrib/gitian-descriptors/deps-win.yml
mv build/out/dogecoin-deps-*.zip inputs/
./bin/gbuild ../dogecoin/contrib/gitian-descriptors/qt-win.yml
mv build/out/qt-*.zip inputs/
./bin/gbuild ../dogecoin/contrib/gitian-descriptors/protobuf-win.yml
mv build/out/protobuf-*.zip inputs/
Build dogecoind and dogecoin-qt on Linux32, Linux64, and Win32:
./bin/gbuild --commit dogecoin=v${VERSION} ../dogecoin/contrib/gitian-descriptors/gitian-linux.yml
./bin/gsign --signer $SIGNER --release ${VERSION} --destination ../gitian.sigs/ ../dogecoin/contrib/gitian-descriptors/gitian-linux.yml
pushd build/out
zip -r dogecoin-${VERSION}-linux-gitian.zip *
mv dogecoin-${VERSION}-linux-gitian.zip ../../../
popd
./bin/gbuild --commit dogecoin=v${VERSION} ../dogecoin/contrib/gitian-descriptors/gitian-win.yml
./bin/gsign --signer $SIGNER --release ${VERSION}-win --destination ../gitian.sigs/ ../dogecoin/contrib/gitian-descriptors/gitian-win.yml
pushd build/out
zip -r dogecoin-${VERSION}-win-gitian.zip *
mv dogecoin-${VERSION}-win-gitian.zip ../../../
popd
popd
Build output expected:
1. linux 32-bit and 64-bit binaries + source (dogecoin-${VERSION}-linux-gitian.zip)
2. windows 32-bit and 64-bit binaries + installer + source (dogecoin-${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 dogecoin-${VERSION}-linux-gitian.zip -d dogecoin-${VERSION}-linux
tar czvf dogecoin-${VERSION}-linux.tar.gz dogecoin-${VERSION}-linux
rm -rf dogecoin-${VERSION}-linux
**Windows .zip and setup.exe:**
unzip dogecoin-${VERSION}-win-gitian.zip -d dogecoin-${VERSION}-win
mv dogecoin-${VERSION}-win/dogecoin-*-setup.exe .
zip -r dogecoin-${VERSION}-win.zip dogecoin-${VERSION}-win
rm -rf dogecoin-${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: DOGECOIN FOUNDATION, INC., THE"'
python2.7 contrib/macdeploy/macdeployqtplus Dogecoin-Qt.app -sign -add-qt-tr $T -dmg -fancy contrib/macdeploy/fancy.plist
Build output expected: Dogecoin-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 dogecoin.com 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}-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 dogecoin source, gitian.sigs and gitian zips
export VERSION=(new version, e.g. 0.8.0)
mkdir dogecoin-${VERSION}-linux-gitian
pushd dogecoin-${VERSION}-linux-gitian
unzip ../dogecoin-${VERSION}-linux-gitian.zip
mkdir gitian
cp ../dogecoin/contrib/gitian-downloader/*.pgp ./gitian/
for signer in $(ls ../gitian.sigs/${VERSION}/); do
cp ../gitian.sigs/${VERSION}/${signer}/dogecoin-build.assert ./gitian/${signer}-build.assert
cp ../gitian.sigs/${VERSION}/${signer}/dogecoin-build.assert.sig ./gitian/${signer}-build.assert.sig
done
zip -r dogecoin-${VERSION}-linux-gitian.zip *
cp dogecoin-${VERSION}-linux-gitian.zip ../
popd
mkdir dogecoin-${VERSION}-win-gitian
pushd dogecoin-${VERSION}-win-gitian
unzip ../dogecoin-${VERSION}-win-gitian.zip
mkdir gitian
cp ../dogecoin/contrib/gitian-downloader/*.pgp ./gitian/
for signer in $(ls ../gitian.sigs/${VERSION}-win/); do
cp ../gitian.sigs/${VERSION}-win/${signer}/dogecoin-build.assert ./gitian/${signer}-build.assert
cp ../gitian.sigs/${VERSION}-win/${signer}/dogecoin-build.assert.sig ./gitian/${signer}-build.assert.sig
done
zip -r dogecoin-${VERSION}-win-gitian.zip *
cp dogecoin-${VERSION}-win-gitian.zip ../
popd
- Upload gitian zips to SourceForge
- Announce the release:
- Add the release to dogecoin.com
- Announce on reddit /r/dogecoin, /r/dogecoindev
- Release sticky on discuss dogecoin: https://discuss.dogecoin.com/categories/announcements
- Celebrate
|