Mageia 7: 本日の野良リポジトリ (2020-01-25)

下記のパッケージを投入しました。

mozc-2.23.2815.102-5
  • python 3 対応パッチを更新し、こちらのエントリーで書いた Fedora 31 で使用されているものに少し変更を加えて適用しました。
  • ビルドディレクトリのルートで ln -s /usr/bin/python3 python としてシンボリックリンクを張り、その python の位置を PATH の先頭に追記するという処理を追加することで、上記のパッチを適用した際のビルドエラーを回避しています。
  • protobuf は従来は mozc のソースに同梱のものを使用してビルドしていましたが、今回から別途取得したもの (ver.3.7.1) を使用してビルドしています。
  • gyp は前回のビルドでは Mageia のリポジトリで提供されているものを使用しましたが、今回は最新のリビジョンを別途取得してきて使用しています。
mozc-neolog-ut-2.23.2815.102-11.20191230.2
  • mozc パッケージと同様の変更を行っています。
Mageia | comments (0) | -

Mageia 7: 昨日・今日の野良リポジトリ (2020-01-18)

下記のパッケージを投入しました。

mozc-2.23.2815.102-4
  • 郵便番号のデータを2019年12月版に更新しています。
mozc-neolog-ut-2.23.2815.102-10.20191230.2
  • Mozc NEologd UT 辞書を 20191230.2 版へ更新しています。
  • Mozc NEologd UT 辞書の提供形態が変更になったため、ビルド方法を少し変更しました。
jdim-0.3.0-1
  • ver.0.3.0 へ更新しました。(0.3.0 の主な変更点)
  • 今回から従来の GTK2 に替えて GTK3 を用いてビルドしています。
  • 【注意】0.3.0 からデフォルトのキャッシュディレクトリの位置が $HOME/.cache/jdim に変更されています。但し $HOME/.jd が存在する場合には、そちらが優先使用されます。
Mageia | comments (0) | -

Mozc を python3 対応にする 3 つのパッチ

Mozc を python3 対応にするパッチは、現在のところ下記の3つが存在することを確認しています。(これら以外にも公開されているものがあれば教えてください)

  1. Debian の 2.23.2815.102+dfsg-7 パッケージで適用されている パッチ (約3.5KiB)
  2. Fedora31 の mozc-2.23.2815.102-8.fc31 パッケージで適用されているパッチ (約48KiB)
  3. Mozcの Issue #462 でArfrever氏によって投稿されたパッチ (約108KiB)

3つのパッチのサイズがかなり異なっていますが、Debian のものは Linux 上でビルドする際の必要最低限な修正のみを行ったということなのでしょうか?

ちなみに Mageia で 2 または 3 のパッチを適用すると、ビルド時にエラーを吐いてしまいます。例えば 3 のパッチを使用した場合には下記のような感じ。

[266/957] ACTION(host) [oss] Generating user pos data.
FAILED: gen/data_manager/oss/user_pos_token_array.data gen/data_manager/oss/user_pos_string_array.data gen/data_manager/oss/pos_list.data 
cd ../../data_manager/oss; python ../../dictionary/gen_user_pos_data.py "--id_file=../../data/dictionary_oss/id.def" "--special_pos_file=../../data/rules/special_pos.def" "--user_pos_file=../../data/rules/user_pos.def" "--cforms_file=../../data/rules/cforms.def" "--output_token_array=../../out_linux/Release/gen/data_manager/oss/user_pos_token_array.data" "--output_string_array=../../out_linux/Release/gen/data_manager/oss/user_pos_string_array.data" "--output_pos_list=../../out_linux/Release/gen/data_manager/oss/pos_list.data"
Traceback (most recent call last):
  File "../../dictionary/gen_user_pos_data.py", line 107, in 
    main()
  File "../../dictionary/gen_user_pos_data.py", line 99, in main
    options.output_token_array, options.output_string_array)
  File "../../dictionary/gen_user_pos_data.py", line 67, in OutputUserPosData
    sorted(x.encode('utf-8') for x in string_index.keys()), output_string_array)
  File "../../dictionary/gen_user_pos_data.py", line 67, in 
    sorted(x.encode('utf-8') for x in string_index.keys()), output_string_array)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)
[268/957] ACTION(host) Generating gen/dictionary/pos_map.inc
FAILED: gen/dictionary/pos_map.inc 
cd ../../dictionary; python gen_pos_map.py "--user_pos_file=../data/rules/user_pos.def" "--third_party_pos_map_file=../data/rules/third_party_pos_map.def" "--output=../out_linux/Release/gen/dictionary/pos_map.inc"
Traceback (most recent call last):
  File "gen_pos_map.py", line 129, in 
    main()
  File "gen_pos_map.py", line 125, in main
    OutputPosMap(pos_map, stream)
  File "gen_pos_map.py", line 93, in OutputPosMap
    key = code_generator_util.ToCppStringLiteral(key)
  File "/home/tomcat/rpm/BUILD/mozc-2.23.2815.102/src/build_tools/code_generator_util.py", line 48, in ToCppStringLiteral
    return b'"%b"' % b''.join(br'\x%02X' % c for c in s)
  File "/home/tomcat/rpm/BUILD/mozc-2.23.2815.102/src/build_tools/code_generator_util.py", line 48, in 
    return b'"%b"' % b''.join(br'\x%02X' % c for c in s)
TypeError: %X format: a number is required, not str
[271/957] ACTION Generating gen/gui/character_pad/data/unihan_data.h.
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
  File "build_mozc.py", line 1236, in 
    main()
  File "build_mozc.py", line 1223, in main
    BuildMain(cmd_opts, cmd_args)
  File "build_mozc.py", line 854, in BuildMain
    BuildWithNinja(options, targets)
  File "build_mozc.py", line 828, in BuildWithNinja
    RunOrDie([ninja, '-C', build_arg] + ninja_targets)
  File "/home/tomcat/rpm/BUILD/mozc-2.23.2815.102/src/build_tools/util.py", line 99, in RunOrDie
    '==========']))
build_tools.util.RunOrDieError: 
==========
 ERROR: ninja -C out_linux/Release mozc_server mozc_renderer mozc_tool mozc_emacs_helper uim-mozc fcitx-mozc ibus_mozc

python3 やその他のライブラリーなどのバージョンの違いによるものなのか、あるいは他の原因によるものなのか、私のスキルでは原因解明は難しそうなので深追いしていません(-_-;)
なので拙作の野良パッケージでは、Debian のパッチを多少モディファイしたものを使っています。

【2020年1月22日 追記】

上述のエラーの件ですが、システムのデフォルトの python のバージョンが 2 系の場合に発生する模様です。

Mageia | comments (0) | -