Linux Mint(LMDE7)を使っていて初めてIssueを報告した記録〜早々に修正してくれた

LMDE Linux Mint Debian Edition Linux
Linux Mint Debian Edition

初めてバグ報告するに至った経緯

Linux Mint debian Editionを使うようになって、Linux Mint Japan 日本語フォーラムに関わることになりました。少しでもLinuxを使う人が増えてくれればと思ってボランティア的にビギナーさんの疑問とかにアドバイスできたらと思ってのことです。

さて、Linux Mint 22.3を使っているという方から、Fcitx5-Mozcを使っていると、Cinnamonデスクトップ右下の日本語入力アイコンに、本来「入力メソッド」と表示されるべきであろうツールチップに「eQ力メソッド」と化けて表示されるという投稿がありました。

このことについては、文字化けなので日本語対応(マルチバイト言語対応)がマズイんだろうなという想像は付きました。Linux MintとLMDEはほとんど共通のパッケージが使用されているため、私のLMDE7環境でも以前からこの症状は出ていました。あんまり気にしていませんでしたが。念の為、Linux Mint 22.3環境を準備して同様にセットアップしてみましたがやはり再現性ありです。再現性ありなら調査に協力できるかも知れません。

ChatGPTを使って原因調査をやってみた

普段はGoogle Geminiを使用するのですが、OSSのコード学習はChatGPTの方が進んでいるという評判を聞いているので、ChatGPTの無料枠を使って地道に追跡してみることにしました。ChatGPTのプロンプトから日本語で症状を伝えると、コマンドを提示されて言われるがままに実行してみました。そして結果をコピペしてChatGPTに投げます。

この手順の繰り返しでChatGPTが切り分けをしていってくれました。

翻訳ファイルの中身を確認したり、論理的に順番に追跡が行われました。途中でChatGPTの無料枠がいっぱいになって打ち止めになりました。数日後また続きを再開して切り分けていった結果、ChatGPTが返した回答は、翻訳の問題はなし。fcitx5は問題なし。Linux Mint(Cinnamon/Xapp)が表示しているツールチップで文字化けが発生しているという結論でした。

バグ報告をする価値があります!
という回答でした。

どうやらChatGPTはGithubにあるCinnamon/Xappのソースコードも調べてくれる様です。どこが悪いということまでは突き止められませんでしたが、開発者がソースコードを修正する必要のあるレベルの不具合だと言うことが分かりました。

そして調べてわかったことをIssueとして報告するための英文例を提示してくれました。

ChatGPTが提示してくれたIssueの文案

Title

Cinnamon panel tooltip for fcitx5 StatusNotifierItem displays corrupted Japanese text

Environment

  • Distribution: Linux Mint Debian Edition 7 (LMDE 7)
  • Cinnamon: 6.6.7
  • libxapp: 3.2.2
  • libayatana-appindicator: 0.5.94
  • fcitx5: 5.1.12
  • fcitx5-mozc installed

The same issue has also been confirmed by another user on Linux Mint 22.3.

Description

When hovering the mouse over the fcitx5 tray icon in the Cinnamon panel, the tooltip text is corrupted.

Expected:

入力メソッド

Actual:

eQ力メソッド

Only the tooltip is affected.

All other Japanese strings (fcitx5 configuration tool, menus, candidate window, etc.) are displayed correctly.

Investigation

The following checks were performed.

Locale

LANG=ja_JP.UTF-8

Locale configuration is correct.

Translation

The Japanese translation in fcitx5.mo is correct.

msgid "Input Method"
msgstr "入力メソッド"
Code language: JavaScript (javascript)

StatusNotifierItem properties

ToolTip property:

('', @a(iiay) [], '', '')
Code language: JavaScript (javascript)

ToolTip is empty.

Title property:

<'入力メソッド'>
Code language: HTML, XML (xml)

The Title property contains the correct UTF-8 string.

Therefore fcitx5 publishes the correct Japanese title through D-Bus.

Conclusion

The corruption appears after the StatusNotifierItem Title is received by Cinnamon.

Since

  • gettext translation is correct,
  • D-Bus Title is correct,
  • only the Cinnamon tooltip is corrupted,

the problem is likely somewhere in the Cinnamon/XApp StatusNotifier handling rather than in fcitx5.

It may be worth checking the code path that converts the StatusNotifierItem Title into the tooltip text.

これをLinux Mint Cinnamon/XappにIssueとして報告することにしました。初めてのことなのでどうやるのか分からなかったのですが、英語の項目を翻訳したりしながらどこに何をレポートするか慎重にコピペで入力しました。

すると数日でステータスがCloseになっていました。早速修正された様です。

修正された内容とソースコードの差分を読むと、マルチバイト対応になっていなかった部分がマルチバイト対応に修正されたということが雰囲気的にも分かりました。C言語は正確に読めなくてもなんとなくやっていることは読み取れます。

次のアップデートが中々来ない

「xapp-sn-watcher」の修正をしてくれたみたいですが、中々アップデートが降ってきません。三週間経ったのでどういう状況なのか確認してみたところ、既に開発チームの方では完了した扱いになっており、master.lmde7のページに最新パッケージがビルドされていました。

この後、Linux Mintチームが精査して(検証したりするのでしょう)、不具合が無ければアップデートとして配布される仕組みのようです。

現在の私のLMDE7環境では「3.2.2+gigi」になっているので、これが「3.3.3+gigi」に変わったら不具合が修正されたということになるのでしょう。Linux Mintの現行構成パッケージは、リポジトリを検索するUIが提供されているので下記のサイトを使うと便利です。

後はMintチームに任せておけば、世界中のLinux Mintユーザーの手元に配布されるはずなので、マルチバイト圏のユーザーは文字化けが修正されたことを確認することが出来ます。日本語だけでなく韓国語や中国語などのマルチバイト言語を使っているユーザーに恩恵があります。(軽微なことですけどね)

バグ報告(Issue)をやってみて感じたこと

今回、ChatGPTにおんぶだっこで言われた通りにコマンドを入れて、結果を返してという感じで調査を進めたのですが、凄い勢いでAIが進化するので、私のように非プログラマーであっても不具合の大凡の概要は調べることができるということを学習しました。

また、一度Issueを投稿した経験も大きくて、英文によるIssue案をChatGPTが生成してくれるので(一応確認した後に)、それを元にIssueとして開発者に伝えることが出来ると身を持って体験することが出来ました。(多少アレンジや付け加えをしました)

つまり、非プログラマーであっても(大規模なC言語なんか読めるはずもないし)、AIがソースコードを理解してくれているのであれば、ある程度絞り込めるということがわかったのです。

Issueを上げるにしても、「◯◯が上手くできません」という誰でも言える事では無くて、少し突っ込んで調査し、「◯◯が出来ない件について、◯◯を調べた結果、◯◯は問題が無く、◯◯が怪しいと分かりましたので調査して下さい。」みたいな感じまで足を踏み込むことが出来るわけです。

開発者にとっても、「再現性がある不具合なのか?」「どういう環境で起こるのか?」とかが結構重要であり、こちらで調べた手順や項目を報告することによってある程度の目星をつけて調査をしてくれるのでバグ修正も早くなります。直ぐに原因が思い当たるなら修正の優先度を上げて直ぐに対応してくれることも期待できそうです。

今回はとても良い経験ができたと思います。また別の不具合が自分の環境で再現する様であれば、AIを活用して調査を行い、Issueを上げようと思っています。もちろんAIの手助けはもはや必須と言えます。積極的にOSSのバグレポートに参加出来る協力者(AI)を手に入れた訳ですからね。

コレを読んで、自分でも不具合レポートをしてみようと感じた方は、是非AIの手助けを受けて挑戦してみていただきたいと思います。

コメント

Comment spam is annoying.

There has been an increase in comment spam, but we decline it. It’s pointless because we use Akismet to block spam comments. Spam comments will not be posted.

コメントスパムが増えていますがお断りします。akismetでスパムコメントを弾いているので無意味です。スパムコメントは掲載されません。

ブロックしたスパム

DMM広告

タイトルとURLをコピーしました