Gentoo Linux Ebuild
-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にハードコードし始めるまでフラストレーションを感じていた。
いくつか:
- ヘッダーを直す必要があることを覚えておいてくれ。
- wxgtkはGUIをビルドするときだけ必要で、デーモンには不要だ(USEフラグで切り替えられるようにしてくれ)
- gtk+はwxgtkの依存だから、自分で要求しないでくれ。
- eselect経由で他のプログラムがwxwidgetsをどう使っているかを確認してくれ(同じシステムに2.6と2.8をスロットで共存できる、必要なのは2.9だ)
- /home/bticoin?
- Makefileから最適化フラグを取り除いて、ユーザーが指定できるようにしてくれ(あるいは適切に除去してくれ)
- 静的コードはビルドしないでくれ。動的コードをビルドするMakefileを持っている。欲しければ送れる。手を入れる必要はあるが。
参考になる読み物:http://devmanual.gentoo.org/
http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml
前回$(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
他のディストロについては分からないが。
SNサトシ・ナカモトこれは私のシステムではパスが /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をコンパイルした。
BBioMikeの投稿(2010年8月27日05:22 UTC)
- ヘッダーを直す必要があることを覚えておいてくれ。
これが分からない。どのヘッダー?
BBioMike
- /home/bticoin?
bitcoinをどこでスペルミスしたか分からない。どのファイル?
BBioMike
- Makefileから最適化フラグを取り除いて、ユーザーが指定できるようにしてくれ(あるいは適切に除去してくれ)
「最適化」が何なのかはっきりしない。
BBioMike
- 静的コードはビルドしないでくれ。動的コードをビルドするMakefileを持っている。欲しければ送れる。手を入れる必要はあるが。
コードのどの部分が静的で、動的に変換できるのかが分からない。誰もやっていないようだったのでebuildを準備しただけだ。ebuildを完璧にできるほどのスキルはないが、誰か他に改善に貢献したい人がいれば、gitリポジトリを用意した:http://github.com/mizerydearia/bitcoin_gentoo_ebuild
BBioMikeの投稿(2010年8月27日05:22 UTC)
- ヘッダーを直す必要があることを覚えておいてくれ。
これが分からない。どのヘッダー?
# 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 $
このヘッダーだ 😉
MmizerydeariaBBioMike
- /home/bticoin?
bitcoinをどこでスペルミスしたか分からない。どのファイル?
私のミスだ。/home/bitcoinと書こうとしていた。私の言いたかったのは、これは /var/lib/bitcoinにすべきだ、ということだ。
MmizerydeariaBBioMike
- Makefileから最適化フラグを取り除いて、ユーザーが指定できるようにしてくれ(あるいは適切に除去してくれ)
「最適化」が何なのかはっきりしない。
“-msse2 -O3 -march=amdfam10” のようなものだ。Gentooユーザーは通常、これらを /etc/make.confで自分で指定する。
MmizerydeariaBBioMike
- 静的コードはビルドしないでくれ。動的コードをビルドするMakefileを持っている。欲しければ送れる。手を入れる必要はあるが。
コードのどの部分が静的で、動的に変換できるのかが分からない。誰もやっていないようだったのでebuildを準備しただけだ。ebuildを完璧にできるほどのスキルはないが、誰か他に改善に貢献したい人がいれば、gitリポジトリを用意した:
http://github.com/mizerydearia/bitcoin_gentoo_ebuild
それは手伝える。もう一つあると良いのは、起動時にデーモンを起動・停止するinit.dスクリプトだ。<edit>ああ……すでに入っている。</edit>