ビットコイン・インスティテュート

Gentoo Linux Ebuild

4件のメッセージ BitcoinTalk サトシ・ナカモト, BioMike, mizerydearia 2010年8月27日 — 2010年8月27日

-datadir= を試してみてほしい。

前回$(shell /usr/bin/wx-config)を試した時、すぐにビルド問題について騒ぎになった。当時は調査する時間がなかった。

$(shell /usr/bin/wx-config)の問題の一つは、そこにたまたまあるどのバージョン(wx 2.8)やどの設定(非UTF-8)のwxWidgetsでも拾ってしまうことだ。-lwx_gtk2ud-2.9は正しい設定にのみ一致する。wxWidgetsが間違った設定でビルドされていると失敗する。

思い出せば、freenodeの#wxwidgetsでチャットした時、そこの開発者はなぜそれが使われているのか困惑していた。

なぜ困惑していたのか、言っていたかな?

mizerydearia

これは私のシステムではパスが /usr/include/wx-2.9/wx/wx.hだからだ

なぜそこにあるのだろう? OSに含まれていたのかな、それともビルドする必要があったのかな? ビルドした場合、なぜ別の場所にインストールされるのか不思議だ。

wxWidgets 2.9はついにDebianパッケージとして利用可能になり始めたのかな?

おそらくこうすべきだろう:

INCLUDEPATHS=
-I”/usr/local/include/wx-2.9”
-I”/usr/local/lib/wx/include/gtk2-unicode-debug-static-2.9”
-I”/usr/include/wx-2.9”
-I”/usr/lib/wx/include/gtk2-unicode-debug-static-2.9”

繰り返すが、これらのパスは2.9のみであることを確認し、2.8では失敗するようにするのに役立つ。

wxWidgets 2.8にはANSIとUTF-16があり、どちらも私たちには合わない。パッケージとして簡単に入手できるため魅力的だが、多くの人が2.9をmakefileにハードコードし始めるまでフラストレーションを感じていた。

BioMike 2010年8月27日05:22 UTC

いくつか:

  1. ヘッダーを直す必要があることを覚えておいてくれ。
  2. wxgtkはGUIをビルドするときだけ必要で、デーモンには不要だ(USEフラグで切り替えられるようにしてくれ)
  3. gtk+はwxgtkの依存だから、自分で要求しないでくれ。
  4. eselect経由で他のプログラムがwxwidgetsをどう使っているかを確認してくれ(同じシステムに2.6と2.8をスロットで共存できる、必要なのは2.9だ)
  5. /home/bticoin?
  6. Makefileから最適化フラグを取り除いて、ユーザーが指定できるようにしてくれ(あるいは適切に除去してくれ)
  7. 静的コードはビルドしないでくれ。動的コードをビルドするMakefileを持っている。欲しければ送れる。手を入れる必要はあるが。

参考になる読み物:http://devmanual.gentoo.org/ http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml

mizerydearia 2010年8月27日08:03 UTC
サトシ・ナカモトの投稿(2010年8月27日00:49 UTC)

前回$(shell /usr/bin/wx-config)を試した時、すぐにビルド問題について騒ぎになった。当時は調査する時間がなかった。

$(shell /usr/bin/wx-config)の問題の一つは、そこにたまたまあるどのバージョン(wx 2.8)やどの設定(非UTF-8)のwxWidgetsでも拾ってしまうことだ。-lwx_gtk2ud-2.9は正しい設定にのみ一致する。wxWidgetsが間違った設定でビルドされていると失敗する。

参考までに、Gentooには特定のwxWidgetsバージョンに対して以下の回避策がある:

$ eselect wxwidgets list
Available wxWidgets profiles:
  [1]   gtk2-ansi-release-2.6
  [2]   gtk2-unicode-2.9 *
  [3]   gtk2-unicode-release-2.6
  [4]   gtk2-unicode-release-2.8

$ /usr/bin/wx-config --version
2.9.1

# eselect wxwidgets set 1

Setting wxWidgets profile to gtk2-ansi-release-2.6

$ /usr/bin/wx-config --version
2.6.4

他のディストロについては分からないが。

サトシ・ナカモト

これは私のシステムではパスが /usr/include/wx-2.9/wx/wx.hだからだ

なぜそこにあるのだろう? OSに含まれていたのかな、それともビルドする必要があったのかな? ビルドした場合、なぜ別の場所にインストールされるのか不思議だ。

Quote from: bonsaikitten

<bonsaikitten> necrodearia: それは正しい場所だからそこにある
<bonsaikitten> necrodearia: /usr/localにないのは、そこが正しい場所ではないからだ
<bonsaikitten> さらなる質問はFHSを読めば解決するかもしれない

http://www.pathname.com/fhs/

Gentoo Linuxは(99.99%の)パッケージをソースからコンパイルするように設計されているので、そう、私はGentoo Linuxのパッケージ管理ソフトウェアであるPortageのebuildを使ってwxGTKをコンパイルした。

BioMikeの投稿(2010年8月27日05:22 UTC)
  1. ヘッダーを直す必要があることを覚えておいてくれ。

これが分からない。どのヘッダー?

BioMike
  1. /home/bticoin?

bitcoinをどこでスペルミスしたか分からない。どのファイル?

BioMike
  1. Makefileから最適化フラグを取り除いて、ユーザーが指定できるようにしてくれ(あるいは適切に除去してくれ)

「最適化」が何なのかはっきりしない。

BioMike
  1. 静的コードはビルドしないでくれ。動的コードをビルドするMakefileを持っている。欲しければ送れる。手を入れる必要はあるが。

コードのどの部分が静的で、動的に変換できるのかが分からない。誰もやっていないようだったのでebuildを準備しただけだ。ebuildを完璧にできるほどのスキルはないが、誰か他に改善に貢献したい人がいれば、gitリポジトリを用意した:http://github.com/mizerydearia/bitcoin_gentoo_ebuild

BioMike 2010年8月27日18:52 UTC
mizerydeariaの投稿(2010年8月27日08:03 UTC)
BioMikeの投稿(2010年8月27日05:22 UTC)
  1. ヘッダーを直す必要があることを覚えておいてくれ。

これが分からない。どのヘッダー?

# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-mobilephone/lightblue/lightblue-0.4.ebuild,v 1.3 2010/03/27 17:57:36 arfrever Exp $

このヘッダーだ 😉

mizerydearia
BioMike
  1. /home/bticoin?

bitcoinをどこでスペルミスしたか分からない。どのファイル?

私のミスだ。/home/bitcoinと書こうとしていた。私の言いたかったのは、これは /var/lib/bitcoinにすべきだ、ということだ。

mizerydearia
BioMike
  1. Makefileから最適化フラグを取り除いて、ユーザーが指定できるようにしてくれ(あるいは適切に除去してくれ)

「最適化」が何なのかはっきりしない。

“-msse2 -O3 -march=amdfam10” のようなものだ。Gentooユーザーは通常、これらを /etc/make.confで自分で指定する。

mizerydearia
BioMike
  1. 静的コードはビルドしないでくれ。動的コードをビルドするMakefileを持っている。欲しければ送れる。手を入れる必要はあるが。

コードのどの部分が静的で、動的に変換できるのかが分からない。誰もやっていないようだったのでebuildを準備しただけだ。ebuildを完璧にできるほどのスキルはないが、誰か他に改善に貢献したい人がいれば、gitリポジトリを用意した:http://github.com/mizerydearia/bitcoin_gentoo_ebuild

それは手伝える。もう一つあると良いのは、起動時にデーモンを起動・停止するinit.dスクリプトだ。<edit>ああ……すでに入っている。</edit>