no_picture

Gentoo Prefix 環境で git がビルドできないので bug報告してみた

結構前からわかっていたんだけども、Gentoo Prefix on Mac OSX で USE=“subversion” していると gitのビルドに失敗していた。 なので、ビルドできるようにして、パッチを書いて Gentoo Bugzila へバグ報告してみた。 Gentoo Prefix というのは Gentoo Linuxのパッケージ管理である portage を /以外のところにインストールしていろんな環境で利用できるようにしているものです。役割的には MacPorts や Homebrew と同じように Mac で Unixツールをインストールするのに利用しています。 どんなエラーがでていたか USE=“subversion” emerge gitすると LINK svn-fe Undefined symbols for architecture x86_64: "_libintl_ngettext", referenced from: _show_date_relative in libgit.a(date.o) "_libintl_gettext", referenced from: _show_date_relative in libgit.a(date.o) _warn_on_inaccessible in libgit.a(wrapper.o) _xgetpwuid_self in libgit.a(wrapper.o) ld: symbol(s) not found for architecture x86_64 svn-fe をビルドに失敗していました。 いろいろ調べてみると OSX 上では -lintl をつければビルドできることがわかりました。git をビルドするための Makefile はかなり凝ったものが使われてるのですが、その判定が svn-fe の Makefile にないため -lintl が自動でついていませんでした。 どんなパッチをかいたか CHOST で darwin がある場合 contrib/svn-fe/Makefile をかきかえるようなその場しのぎでかいてみました。 diff --git a/dev-vcs/git/git-1.8.1.ebuild b/dev-vcs/git/git-1.8.1.ebuild index 1bfa55a..3338847 100644 --- a/dev-vcs/git/git-1.8.1.ebuild +++ b/dev-vcs/git/git-1.8.1.ebuild @@ -241,6 +241,12 @@ src_prepare() { -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \ -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \ contrib/subtree/Makefile + + if [[ $CHOST == *-darwin* ]]; then + sed -i \ + -e 's:EXTLIBS =:EXTLIBS = -lintl:' \ + contrib/svn-fe/Makefile + fi } git_emake() { いろいろみていると sed -i で改行を入れてから sed の命令をかいていくスタイルが多いのでそれに従いました。 どこに投稿したか https://bugs.gentoo.org/show_bug.cgi?id=452044#c0 に登録されています。 登録方法は アカウントを作成 new をクリック Gentoo/Alt をクリック 類似バグがないか検索 component は Prefix Support を選択 Opereting System は OS X を選択 summaryとdescription を記述 登録 パッチを追加 という感じでした。 component には Mac OSX という項目がありますが、DEAD.