diary/Kojima/2006-04-09
の編集
http://plamo.linet.gr.jp/?diary/Kojima/2006-04-09
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
-- 雛形とするページ --
diary/Template
[[diary/Kojima]] ・Xorg とか Plamo-ML の方で報告されたゴシックが出ない問題,libfreetype がらみらしい ので libfreetype を 2.1.8 から(ゴシック問題のパッチがある) 2.1.10 に入 れ替えようと思ったのだけど,freetype はリリースバージョンが違うだけでも 内部構造に変更が加えられていることが多く,ABI/API の互換性が保証されな いらしいので,libfreetype 単独での更新ではなく Xorg 全体を更新する方向 に変更. Xorg の最新版は 6.9 と 7.0 があって,機能等は同じものの 6.9 は従来型の 全体が一つのソース構成,7.0 は機能ごとに分割(モジュール化)したソースに なっているらしい.とりあえず昔からのなじみということで 6.9 ベースに挑戦. まずは素のままで make World してみたけど,expat.h や ft2build.h が見つ からない,というエラー.Plamo-4.2 ではこれらのヘッダーファイルは /usr/X11R6/include にあるのだけど,どうもインクルードファイルの検索パス に /usr/X11R6/include が含まれていないらしい. 普通の Makefile なら適当に -I とかを付け加えればいいのだけど,X の場合 は Makefile は Imakefile から生成されるので単純に Makefile だけをいじっ てもうまくないから,Imakefile や xmkmf でそれらしい定義が無いかをあれこ れ探して EXTRA_INCLUDES とか LOCAL_LDFLAGS とかを host.def に設定. ところがこれをやると,古いバージョン(Xorg 6.8.2)のヘッダーファイルを読 みこんでしまい,コンパイルエラーになることが判明.仕方ないので,必要な ヘッダーファイルやライブラリを /usr/{include,lib} 以下にリンクを貼って 胡麻化してみる. 本来,freetype のヘッダーや expat のヘッダーは自前のものを使うべきなの になぁ,,と思いながらとりあえずこの環境で make World できることを確認. 実は後からパッチ類を調べていたら,site.def あたりで freetype や expat がインストールされているものを使うかソースコードに含まれているものを使 うかの設定があることに気がついた(涙) その後,山内さんが 6.8.2 をビルドするときに使っていたパッチがあたるかど うか試したり,freetype-2.1.8 から 2.1.10 に更新したりで丸一日 X と戯れ てしまった(苦笑 昔からそうだったけど,X の場合,Makefile を修正をしたい場合, Imakefile に修正を加えて Makefile を生成し,依存関係を解決して,,みた いな作業が必要になるので,どうすればいいか分らず,あれこれ試すような場 合には,ターンアラウンドタイムの長さがずいぶん気になってしまう.特にき ちんと完成させようと思うと Make World で全ての Makefile や依存関係やら を再生成することになるからかなり大変. まぁ,それでも最近のマシンだと 1 時間もかからずに X のフルビルドができ るからずいぶん楽にはなったと思う.昔だと,帰る前に make World を仕掛け て翌朝確認したら typo があってがっくり,みたいなパターンだったからなぁ.. こうやって Imakefile と久しぶりに格闘してみると,やっぱり Imakefile の 仕組みというのは(当時のような多様な環境に対応するためには必要だった面は あるものの)無理があって普及せず,autoconf みたいな仕組みが生まれてきた のかなぁ,,という印象. 何とか libfreetype 回りは通るようになったかと思ったら,今度は module の方で変なエラーが出ているなぁ..(涙^2) -一応 make World も通るようになったけど、X のソースレベルで無理して差し替えるよりは、独立した外部のパッケージとして用意して X は(付属のものではなく)インストール済の libfreetype を使うようにする方が簡単だし、バージョンアップの自由度も高いな。つい近視眼的に腕力で解決しようとしてしまったけど、外部パッケージを使う方法でやり直そう。 -- [[kojima]] &new{2006-04-10 (月) 06:41:11}; #comment
タイムスタンプを変更しない
[[diary/Kojima]] ・Xorg とか Plamo-ML の方で報告されたゴシックが出ない問題,libfreetype がらみらしい ので libfreetype を 2.1.8 から(ゴシック問題のパッチがある) 2.1.10 に入 れ替えようと思ったのだけど,freetype はリリースバージョンが違うだけでも 内部構造に変更が加えられていることが多く,ABI/API の互換性が保証されな いらしいので,libfreetype 単独での更新ではなく Xorg 全体を更新する方向 に変更. Xorg の最新版は 6.9 と 7.0 があって,機能等は同じものの 6.9 は従来型の 全体が一つのソース構成,7.0 は機能ごとに分割(モジュール化)したソースに なっているらしい.とりあえず昔からのなじみということで 6.9 ベースに挑戦. まずは素のままで make World してみたけど,expat.h や ft2build.h が見つ からない,というエラー.Plamo-4.2 ではこれらのヘッダーファイルは /usr/X11R6/include にあるのだけど,どうもインクルードファイルの検索パス に /usr/X11R6/include が含まれていないらしい. 普通の Makefile なら適当に -I とかを付け加えればいいのだけど,X の場合 は Makefile は Imakefile から生成されるので単純に Makefile だけをいじっ てもうまくないから,Imakefile や xmkmf でそれらしい定義が無いかをあれこ れ探して EXTRA_INCLUDES とか LOCAL_LDFLAGS とかを host.def に設定. ところがこれをやると,古いバージョン(Xorg 6.8.2)のヘッダーファイルを読 みこんでしまい,コンパイルエラーになることが判明.仕方ないので,必要な ヘッダーファイルやライブラリを /usr/{include,lib} 以下にリンクを貼って 胡麻化してみる. 本来,freetype のヘッダーや expat のヘッダーは自前のものを使うべきなの になぁ,,と思いながらとりあえずこの環境で make World できることを確認. 実は後からパッチ類を調べていたら,site.def あたりで freetype や expat がインストールされているものを使うかソースコードに含まれているものを使 うかの設定があることに気がついた(涙) その後,山内さんが 6.8.2 をビルドするときに使っていたパッチがあたるかど うか試したり,freetype-2.1.8 から 2.1.10 に更新したりで丸一日 X と戯れ てしまった(苦笑 昔からそうだったけど,X の場合,Makefile を修正をしたい場合, Imakefile に修正を加えて Makefile を生成し,依存関係を解決して,,みた いな作業が必要になるので,どうすればいいか分らず,あれこれ試すような場 合には,ターンアラウンドタイムの長さがずいぶん気になってしまう.特にき ちんと完成させようと思うと Make World で全ての Makefile や依存関係やら を再生成することになるからかなり大変. まぁ,それでも最近のマシンだと 1 時間もかからずに X のフルビルドができ るからずいぶん楽にはなったと思う.昔だと,帰る前に make World を仕掛け て翌朝確認したら typo があってがっくり,みたいなパターンだったからなぁ.. こうやって Imakefile と久しぶりに格闘してみると,やっぱり Imakefile の 仕組みというのは(当時のような多様な環境に対応するためには必要だった面は あるものの)無理があって普及せず,autoconf みたいな仕組みが生まれてきた のかなぁ,,という印象. 何とか libfreetype 回りは通るようになったかと思ったら,今度は module の方で変なエラーが出ているなぁ..(涙^2) -一応 make World も通るようになったけど、X のソースレベルで無理して差し替えるよりは、独立した外部のパッケージとして用意して X は(付属のものではなく)インストール済の libfreetype を使うようにする方が簡単だし、バージョンアップの自由度も高いな。つい近視眼的に腕力で解決しようとしてしまったけど、外部パッケージを使う方法でやり直そう。 -- [[kojima]] &new{2006-04-10 (月) 06:41:11}; #comment
テキスト整形のルールを表示する