お茶漬けぶろぐ

monacoinをビルドするPKGBUILDを書く

特に意味は無いけれど(普通にビルド出来たし)、makepkgを一発叩くだけであとは待ってれば完了する状態というのもいいかなと思って勉強がてら書いてみた。

/usr/share/pacman/PKGBUILD.protoを雛形に、それらしく書く。

[bash]
$ cd ~
$ mkdir monacoin_build_test && cd monacoin_build_test
$ cp /usr/share/pacman/PKGBUILD.proto ./PKGBUILD
$ vi PKGBUILD
$ cat PKGBUILD

This is an example PKGBUILD file. Use this as a start to creating your own,

and remove these comments. For more information, see ‘man PKGBUILD’.

NOTE: Please fill out the license field for your package! If it is unknown,

then please put ‘unknown’.

Maintainer: Your Name youremail@domain.com

pkgname=monacoin
pkgver=0.10.2.2
pkgrel=1
pkgdesc=”peer to peer crypto currency Monacoin full client.”
arch=(‘i686’ ‘x86_64’)
url=”http://monacoin.org/”
license=(‘MIT’)
depends=(‘boost-libs’ ‘qt4’ ‘qrencode’ ‘protobuf’ ‘db4.8’)
makedepends=(‘boost’ ‘qrencode’ ‘protobuf’)
source=(“https://github.com/monacoinproject/monacoin/archive/v$pkgver-hotfix.tar.gz”)
md5sums=(‘cffdf0e505820b62fe8104c9c47d8fa9’)

build() {
cd “$srcdir/$pkgname-$pkgver-hotfix”
./autogen.sh
./configure
make
}

package() {
cd “$srcdir/$pkgname-$pkgver-hotfix”

make DESTDIR=”$pkgdir/” install

install -Dm755 src/qt/monacoin-qt “$pkgdir”/usr/bin/monacoin-qt
install -Dm755 src/monacoind “$pkgdir”/usr/bin/monacoind
install -Dm755 src/monacoin-cli “$pkgdir”/usr/bin/monacoin-cli
install -Dm755 src/monacoin-tx “$pkgdir”/usr/bin/monacoin-tx
install -Dm644 share/pixmaps/bitcoin128.png “$pkgdir”/usr/share/pixmaps/monacoin128.png
install -Dm644 COPYING “$pkgdir/usr/share/licenses/$pkgname/COPYING”
}
[/bash]

dependsとかmakedependsとかpackage()とか、大部分をlitecoin-qtを参考にてきとうに埋めた。

makepkg出来るかチェックする。

[bash]
$ makepkg
~略~
==> 作成完了: monacoin 0.10.2.2-1 (2015年 11月 18日 水曜日 18:02:04 JST)
[/bash]

なんとかうまくいった。出来上がったパッケージが正常かチェックする。pacman -Qlp(Qip)やnamcapで調べ、実際にパッケージをインストールして動作チェックする。

[bash]
$ pacman -Qlp monacoin-0.10.2.2-1-x86_64.pkg.tar.xz
monacoin /usr/
monacoin /usr/bin/
monacoin /usr/bin/monacoin-cli
monacoin /usr/bin/monacoin-qt
monacoin /usr/bin/monacoin-tx
monacoin /usr/bin/monacoind
monacoin /usr/share/
monacoin /usr/share/licenses/
monacoin /usr/share/licenses/monacoin/
monacoin /usr/share/licenses/monacoin/COPYING
monacoin /usr/share/pixmaps/
monacoin /usr/share/pixmaps/monacoin128.png
$ pacman -Qip monacoin-0.10.2.2-1-x86_64.pkg.tar.xz
名前      : monacoin
バージョン   : 0.10.2.2-1
説明      : monacoin full client.
アーキテクチャ : x86_64
URL : http://monacoin.org/
ライセンス   : MIT
グループ    : なし
Provides : なし
依存パッケージ : boost-libs qt4 qrencode protobuf db4.8
提案パッケージ : なし
衝突パッケージ : なし
置換パッケージ : なし
圧縮した容量  : 4.10 MiB
インストール容量: 15.25 MiB
パッケージ作成者: Unknown Packager
ビルド日時   : 2015年11月18日 18時01分56秒
Install Script : No
Validated By : なし
署名      : なし
[/bash]

[bash]
$ namcap PKGBUILD
PKGBUILD (monacoin) W: Description should not contain the package name.
$ namcap monacoin-0.10.2.2-1-x86_64.pkg.tar.xz
monacoin W: Description should not contain the package name.
monacoin W: ELF file (‘usr/bin/monacoin-tx’) has executable stack.
monacoin W: ELF file (‘usr/bin/monacoin-qt’) has executable stack.
monacoin W: ELF file (‘usr/bin/monacoind’) has executable stack.
[/bash]

Descriptionにはパッケージ名突っ込むなって書いてあるけどまぁほっとこ、大した事じゃないし…

他にも3つもWarning出てるけど、まぁErrorじゃなくてWarningだし…ほっとこ()

[bash]
$ sudo pacman -U monacoin-0.10.2.2-1-x86_64.pkg.tar.xz
[sudo] tea のパスワード:
パッケージをロード…
依存関係を解決しています…
衝突するパッケージがないか確認しています…

パッケージ (1) monacoin-0.10.2.2-1

合計インストール容量: 15.25 MiB

:: インストールを行いますか? [Y/n] y
(1/1) キーリングのキーを確認 [########] 100%
(1/1) パッケージの整合性をチェック [########] 100%
(1/1) パッケージファイルのロード [########] 100%
(1/1) ファイルの衝突をチェック [########] 100%
(1/1) 空き容量を確認 [########] 100%
(1/1) インストール monacoin [########] 100%
[/bash]

monacoin-qt, monacoind, monacoin-cliなど使ってみて正常に動作しそうな事を確認(割愛)する。monacoin-txは使い方よくわかんないので放置。それらしい場所に入っている事もhashで確認する。

[bash]
$ hash
hits command
2 /usr/bin/monacoin-cli
1 /usr/bin/monacoind
1 /usr/bin/monacoin-qt
[/bash]

うまくいった。一応削除しておく。

[bash]
$ sudo pacman -R monacoin
[sudo] tea のパスワード:
依存関係を確認しています…

パッケージ (1) monacoin-0.10.2.2-1

合計削除容量: 15.25 MiB

:: 以上のパッケージを削除しますか? [Y/n] y
(1/1) 削除 monacoin [######################] 100%
[/bash]

死ぬほどてきとうに書いたから(一応動いたって事でおしまい)どうなるかわかんないけど、これでいいや

< CLIからツイートするだけのプログラム書いた

monacoindをビルドする >