-
Notifications
You must be signed in to change notification settings - Fork 1
Gitian Buildの方法
とりあえず、現状Gitian Buildは可能だが、ちょっと癖があったのでメモ書き。
特に、Dockerを使う場合。(個人的には一番簡単だけど)
Dockerはセットアップ済みとする。
このページを参考にした。
gpg --gen-key
中で設定させられる(real name)
はGitHubの名前でOK。パスワードとかはいい感じに設定する。
gpg -a --export
この結果をコピーして、GitHubのSSH and GPG Keys
を開き、New GPG key
として登録する。
gpg -k
この結果の2EFE4D7016E2577A23A6B70975A7652FD83DD675
みたいな感じの16進数の結果をコピーしておく
git config --global gpg.program gpg
git config --global user.signingKey <2EFE4D7016E2577A23A6B70975A7652FD83DD675みたいな感じの奴で置き換える>
git config --global commit.gpgSign true
~/.bashrc
の中に
export GPG_TTY=$(tty)
と書いておく。
本来ならばapt-cacher-ng
は./gitian-build.py -d --setup
実行時に自動的にインストールされるが、残念ながらWSLではインストールしたものがdeamonとして自動起動しない設定になっているので、あらかじめインストールしておき、sudo service apt-cacher-ng start
で起動させる
sudo apt install python3-dev git cpio apt-cacher-ng
sudo service apt-cacher-ng start
cd ~
git clone https://github.com/vipstar-dev/VIPSTARCOIN
cp VIPSTARCOIN/contrib/gitian-build.py .
./gitian-build.py -d --setup
export NAME=<GitHub Name>
cd gitian.sigs
git remote add $NAME [email protected]:$NAME/gitian.sigs.git
これにプラスで vipstar-dev/gitian.sigs をフォークしておく
cd ~
git clone https://github.com/bitcoin-core/apple-sdk-tools.git
Windows側でいいのでApple IDを用意して、Developer規約に同意してXcode SDKをダウンロード
WSL側で
cp /mnt/c/Users/<Win User Name>/Downloads/Xcode_10.2.1.zip .
とするか、Windows側からGUIでやるかでWSLのホームディレクトリに投げる
python3 apple-sdk-tools/extract_xcode.py -f Xcode_10.2.1.xip | cpio -d -i
find Xcode.app -type d -name MacOSX.sdk -exec sh -c 'tar --transform="s/MacOSX.sdk/MacOSX10.14.sdk/" -c -C$(dirname {}) MacOSX.sdk/ | gzip -9n > MacOSX10.14.sdk.tar.gz' \;
mkdir -p gitian-builder/inputs
cp MacOSX10.14.sdk.tar.gz gitian-builder/inputs
今回はmaster-1.2ブランチをビルドするので
export VERSION=master-1.2
とセットする。
それ以外にtag指定する場合は
export VERSION=1.2.3-beta
のようにv
を抜いて指定する。(ちなみに、v1.2.3-beta
を指定しても、Gitianビルドの設定がまともにできていないのでビルドできない)
次に、ビルドコマンド。ブランチをビルドする場合は
./gitian-build.py -j 3 -m 5000 -d --detach-sign --no-commit -c -b $NAME $VERSION
として、tag指定する場合は
./gitian-build.py -j 3 -m 5000 -d --detach-sign --no-commit -b $NAME $VERSION
とする。
-j 3
の部分も適当にCPUのコア数+1ぐらいにしておくとちょっと早く終わるかも
gpg --output ${VERSION}-linux/${NAME}/VIPSTARCOIN-core-linux-0.20-build.assert.sig --detach-sign ${VERSION}-linux/$NAME/VIPSTARCOIN-core-linux-0.20-build.assert
gpg --output ${VERSION}-win-unsigned/${NAME}/VIPSTARCOIN-core-win-0.20-build.assert.sig --detach-sign ${VERSION}-win-unsigned/$NAME/VIPSTARCOIN-core-win-0.20-build.assert
gpg --output ${VERSION}-osx-unsigned/${NAME}/VIPSTARCOIN-core-osx-0.20-build.assert.sig --detach-sign ${VERSION}-osx-unsigned/$NAME/VIPSTARCOIN-core-osx-0.20-build.assert
git checkout -b ${VERSION}-not-codesigned
git commit -S -a -m "Add $NAME $VERSION non-code signed signatures"
git push --set-upstream $NAME $VERSION-not-codesigned
あとは、GitHub上でgitian.sigs
の内容をvipstar-dev
にPR送れば大体OK
おわり