本日の野良リポジトリ (2014-07-30)
下記のパッケージを nora-test セクションに投入しました。
- choqok-1.4.0-3.3.e6729ff2
-
- kde-4.13.3 上で再ビルドしました。
--- Linux 備忘録 ---
下記のパッケージを nora-test セクションに投入しました。
下記のパッケージを nora-test セクションに投入しました。
以前にも書いたことがありますが、現在の apt-sources-list-1.1-2pclos2014 パッケージで提供されているリポジトリのリストに記載されている JAIST の URL には誤りがあり、リポジトリ先として JAIST を選択してもエラーとなります。
JAIST のリポジトリを使用する場合には、下記の様に URL を修正する必要があります。
[誤] http://ftp.jaist.ac.jp/pub/Linux/PCLinuxOS/apt/
[正] http://ftp.jaist.ac.jp/pub/Linux/PCLinuxOS/pclinuxos/apt/
12月12日付けで更新された apt-sources-list-1.1-4pclos2014 で、この誤りは修正されました。
なお kddilabs でのミラーが少し前に中止された為、この更新でリポジトリのリストから kddilabs が削除されています。
下記のパッケージを nora セクションに投入しました。
下記のパッケージを nora セクションに投入しました。
下記に付いては self-build-* 初出時のエントリ や self-build-setup パッケージの説明欄にも記載していますが、注意喚起の意味を込めて再掲しておきます。
野良リポジトリで提供している self-build-mozc+utdict などの self-build-* パッケージや、install-assist-* パッケージのインストールを行う際には、必ず事前に self-build-setup パッケージを単独でインストールしておく必要があります。
さらに、self-build-setup パッケージのインストールを Synaptic で行った場合には、Synaptic を再起動する必要があります。
この様な事前準備を行う必要があるのは、self-build-setup パッケージに apt の設定ファイルが含まれている為です。
この事前準備を行わずに self-build-* パッケージのインストールを行った場合、依存関係から self-build-setup が同時にインストールされはします。
しかしこの場合、self-build-* によるパッケージのビルドは完了はするものの、パッケージのインストール処理は行われておらず、ビルドされたパッケージの正常な動作は期待できません。この状態はシステムを再起動しても変わりません。
この様な状態になってしまった場合には、何か他のパッケージのインストールを行えば、self-build-* によってビルドされたパッケージのインストール処理も同時に完了します。
下記のパッケージを nora セクションに投入しました。
mozc+utdict の About Mozc-UT のダイアログに於いて、Mozc-UT 辞書のバージョン(日付)を表示するようにしました。
下記のパッケージを nora セクションに投入しました。
Twitter から始まり、このブログのコメント欄でのやり取りに発展した mako999 さんとの Fedora 20 での mozc のビルドに関する話ですが、私自身がちょっと興味を持ったこともあって、Fedora 20 LXDE (64bit) を実際にインストールして mozc のビルドの検証を行ってみました。
※ インストールするデスクトップ環境に LXDE を選択したのには特別な意味はありません。ただ単に ISO イメージのファイルサイズが一番小さかったからです。(^_^;)
そして公式パッケージの mozc-1.15.1814.102-1.fc20.src.rpm の SPEC ファイルを基にして、これに修正を加えて 1.15.1834.102 をビルドすることに成功しました。
そのソースパッケージを置いておきます。
以下、SPEC ファイルでの 1.15.1814.102 からの変更点などを書いておきます。(SPEC の %changelog セクションにも変更点を書いています)
Fedora のユーザーさんで「自分で mozc-1.15.1834.102 をビルドしてみよう」と考えておられる方の何かの参考になれば幸いです。
mozc では 1.13.1651.102 以降、ソースは tar 玉では提供されていません。従って何らかの方法で mozc のリポジトリから取得する必要があるのですが、私は LinuxBuildInstructions のページの Get the Code の手順に準じてソースを取得しています。この手順で取得したソースには、mozc のビルドに必要となる protobuf や gyp などのサードパーティー製のツールも含まれています。
さらに 1.15.1834.102 からはビルドに ninja が必要になったことから、depot_tools に含まれている ninja, ninja-linux32, ninja-linux64, ninja-mac, ninja.exe の5つのファイルを取り出して来て、mozc のソースの build_tools ディレクトリ下に置いています。
※ build_tools ディレクトリ下に置いたのは私の勝手な判断であり、「このディレクトリでなければならない」ということではありません。また、Linux でのビルドには ninja-mac や ninja.exe は必要ありませんが一応置いてあります。
これらのソースを取得する手順を毎回手作業でやるのは面倒なので、自前でシェルスクリプトを書いて使っています。今回のソースパッケージにはこのスクリプト (mozc-svn-checkout.sh) を同梱しています。エラー処理などが甘いかなり稚拙なスクリプトですが、「そのソースはどうやって取得したのだ?」という疑問に対する回答として同梱しています。
mozc のビルドでは必須の gcc-c++ が何故か BuildRequires で指定されていなかった為、これがインストールされていない環境で公式のソースパッケージをリビルドしようとするとビルドエラーとなってしまっていました。
Fedora が提供しているものを使用するか、depot_tools のものを使用するかの設定を行う
%define use_system_installed_ninja
を追加しました。
これを 1 に設定した場合には Fedora が提供しているものを、0 に設定した場合には depot_tools のものを使用してビルドを行います。
なお、1 が設定された場合には、
BuildRequires: ninja-build
が同時に指定されます。
Fedora では ninja という同名の別のアプリが存在しており、mozc のビルドで必要とされる ninja は ninja-build という名前で提供されています。その為 ninja-build パッケージをインストールしていても実行ファイル名の違いから mozc 側から ninja を認識できずにビルドエラーとなってしまいます。
mozc のソースにパッチを当ててビルドエラーを回避する手段も取れますが、今回は /usr/bin/ninja-build に対してビルドディレクトリ上に ninja という名前でシンボリックリンクを張り、さらにそのビルドディレクトリに PATH を通すというちょっと強引な方法を取っています。
※ ninja という同名の別のアプリがインストールされている環境も考慮して、ビルドディレクトリを PATH の先頭に置いています。
depot_tools から取り出してきた ninja を置いている mozc のソースの build_tools ディレクトリに対して PATH を通しています。
※ ninja という同名の別のアプリがインストールされている環境も考慮して、build_tools ディレクトリを PATH の先頭に置いています。
Fedora が提供しているものを使用するか、mozc のソースに同梱されているものを使うかの設定を行う
%define use_system_installed_third_party
を追加しました。
これを 1 に設定した場合には Fedora が提供しているものを、0 に設定した場合には mozc のソースに同梱されているものを使用してビルドを行います。
mako999 さんとのやり取りの中で私が最も困惑したのがこの件です。なぜ Fedora では事前に環境変数の設定(しかもそれが Qt3 関係)が必要なのか、当初は不可解でした。しかし実際に Fedora であれこれやってみて、やっと理解できました。
つまり Fedora では、qt3 パッケージがインストールされている環境では自動的に Qt3 関係の環境変数が設定されており、それが mozc のビルドに悪影響を与えてビルドエラーを引き起こすのですね。それ故に事前に環境変数の設定(リセット)が必要なのだと。(当然のことながら、qt3 パッケージがインストールされていない環境ではこの様な問題は発生しません)
この問題への対応策としては、
BuildConflicts: qt3
を設定する手段もあるのですが、これでは qt3 を必要としている人がビルドする場合の影響が大き過ぎます。
そこで今回は、システムに qt3 パッケージがインストルされている場合には、Qt3 関係の環境変数をリセットする処理を %build セクションへ追加することにしました。なおこのリセットはビルドを行っているセッション内でのみ有効になりますので、システム側で設定されている Qt3 関係の環境変数の設定には影響を与えません。
1.15.1834.102 では ibus-mozc が使用する mozc.xml の生成位置が変更されました。これに対応するため、%install セクションの該当部分を修正しました。
out_linux/Release/obj/gen/unix/ibus/mozc.xml
↓
out_linux/Release/gen/unix/ibus/mozc.xml
mozc パッケージのインストール後に、動作中の旧バージョンの mozc_server を終了させる様にしました。この処理を行わないと mozc_server のバージョン不整合によってシステム全体の動作が不安定となり、システムの再起動が必要となります。
このパッチはビルドの際に make に対して冗長 (verbose) モードにするオプションである V=1 を与える為のものでしたが、1.15.1834.102 からはビルドには make に替わって ninja が使用されるように仕様変更されましたから、このパッチ自体が意味の無いものになりました。
mozc では 1.15.1785.102 から openssl は不必要になっています。
Adobe と Google や各国のフォントメーカーが共同開発し、Adobe と Google のそれぞれからリリースされた新しい日本語フォントを PCLinuxOS 用にパッケージ化して nora セクションに投入しました。
※ どちらのフォントも Kate などの Qt アプリ上では全て太字表示になってしまう様な…
下記のパッケージを nora セクションに投入しました。
下記のパッケージを nora セクションに投入しました。
下記のパッケージを nora セクションに投入しました。
下記のパッケージを nora セクションに投入しました。
------------------------------
下記のパッケージを nora セクションに投入しました。