rabbit-slide-kenhys-tokyodebian-update-mozc 2024.11.16.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 25accec88621f34846b6b8b414121711cc787aff2bc46d1ec47aeb6daf39f60c
4
+ data.tar.gz: 44080056ecae472b69d7a95a2c65c1413bb290a10b8681ebd50af64b0f6d177e
5
+ SHA512:
6
+ metadata.gz: 69a9b5fc7bdc1d67570e4d1b9b13a3107497b97b70b9b4af213f98a107ffe2ec084b65ca11b52bd1cda3d278b035843128121f6ddcb214bacf6e76cae0230147
7
+ data.tar.gz: 6f54ebe1193b96ee2f424892e5a9caad005e3ca7636f6e61d9b29e5cf3fb904b1619adb103d180233abff9ca5b4b915cdfbd6cbc329709962f172864e2d44a87
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ --size=1920,1080 update-mozc.md
data/README.md ADDED
@@ -0,0 +1,16 @@
1
+ # Tokyo Debian Update Mozc
2
+
3
+ ## How to show
4
+
5
+ % rabbit
6
+
7
+ ## How to install
8
+
9
+ % gem install rabbit-slide-kenhys-tokyodebian-update-mozc
10
+
11
+ ## How to create PDF
12
+
13
+ % rake pdf
14
+
15
+ # References
16
+
data/Rakefile ADDED
@@ -0,0 +1,35 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ # spec.add_runtime_dependency("rabbit-theme-YOUR-THEME")
11
+ end
12
+
13
+ desc "Preview"
14
+ task :preview do
15
+ sh("rabbit", "-w", "1024", "-h", "768")
16
+ end
17
+
18
+ desc "Tag #{spec.version}"
19
+ task :tag do
20
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
21
+ sh("git", "push", "--tags")
22
+ end
23
+
24
+ desc "Extract slide as a image"
25
+ task :extract do
26
+ 9.times do |i|
27
+ sh("pdftk", "slides.pdf", "cat", "#{i+1}", "output", "images/slides#{i+1}.pdf")
28
+ sh("pdftocairo", "-png", "-singlefile", "images/slides#{i+1}.pdf", "images/slides#{i+1}")
29
+ end
30
+ end
31
+
32
+ desc "Show mini slide to preview"
33
+ task :minislide do
34
+ sh("rabbit", "-w", "960", "-h", "540")
35
+ end
data/config.yaml ADDED
@@ -0,0 +1,25 @@
1
+ ---
2
+ id: tokyodebian-update-mozc
3
+ base_name: update-mozc
4
+ tags:
5
+ - rabbit
6
+ - debian
7
+ - mozc
8
+ presentation_date: 2024-11-16
9
+ presentation_start_time:
10
+ presentation_end_time:
11
+ slideshare_id:
12
+ version: 2024.11.16.1
13
+ licenses:
14
+ - CC-BY-SA-4.0
15
+ slideshare_id: kenhys
16
+ speaker_deck_id:
17
+ vimeo_id:
18
+ youtube_id:
19
+ author:
20
+ markup_language: :md
21
+ name: Kentaro Hayashi
22
+ email: kenhys@gmail.com
23
+ rubygems_user: kenhys
24
+ slideshare_user:
25
+ speaker_deck_user: kenhys
data/theme.rb ADDED
@@ -0,0 +1,5 @@
1
+ @default_font = "Ubuntu"
2
+ @monospace_font = "Ubuntu"
3
+ include_theme("debian")
4
+ #@slide_show_span = 1300
5
+ @slide_show_loop = true
data/update-mozc.md ADDED
@@ -0,0 +1,325 @@
1
+ # より新しいMozcを\\nDebianでも使いたい
2
+
3
+ subtitle
4
+ : メンテナンス上の課題をどう解決するか
5
+
6
+ author
7
+ : Kentaro Hayashi
8
+
9
+ institution
10
+ : ClearCode Inc.
11
+
12
+ content-source
13
+ : 2024年11月 東京エリア・関西合同Debian勉強会
14
+
15
+ allotted-time
16
+ : 25m
17
+
18
+ theme
19
+ : .
20
+
21
+ # スライドは\\nRabbit Slide Showにて公開済み
22
+
23
+ * より新しいMozcをDebianでも使いたい
24
+ * {::note}<https://slide.rabbit-shocker.org/authors/kenhys/tokyodebian-update-mozc-202411>{:/note}
25
+
26
+ # 本日の内容
27
+
28
+ * Debianにおける日本語入力パッケージの話
29
+ * UpstreamであるMozcの動向
30
+ * DebianにおけるMozcのメンテナンス状況
31
+
32
+ ## note
33
+
34
+ # 本日の内容
35
+
36
+ * **Debianにおける日本語入力パッケージの話**
37
+ * UpstreamであるMozcの動向
38
+ * DebianにおけるMozcのメンテナンス状況
39
+
40
+ # Debianにおける日本語入力\\nパッケージの話
41
+
42
+ * task-japanese-dekstop
43
+ * 日本語を扱うデスクトップ環境にインストールすべきものを規定
44
+ * 推奨はuimもしくはanthy
45
+ * 通常uim-mozcが選択される
46
+
47
+ # task-japanese-desktop
48
+
49
+ ```bash
50
+ $ apt depends task-japanese-desktop
51
+ task-japanese-desktop
52
+ 依存: tasksel (= 3.77)
53
+ |推奨: firefox-esr-l10n-ja
54
+ 推奨: firefox-l10n-ja
55
+ 推奨: fonts-vlgothic
56
+ 推奨: fonts-ipafont
57
+ 推奨: uim
58
+ |推奨: uim-mozc
59
+ 推奨: uim-anthy
60
+ 推奨: mozc-utils-gui
61
+ 推奨: anthy
62
+ 推奨: libreoffice-l10n-ja
63
+ 推奨: libreoffice-help-ja
64
+ 推奨: poppler-data
65
+ ```
66
+
67
+ # GNOME環境だったら?
68
+
69
+ * task-japanese-gnome-dekstop
70
+
71
+ * 日本語を扱うGNOMEデスクトップ環境にインストールすべきものを規定
72
+ * 推奨はibus-mozcもしくはibus-anthy
73
+ * 通常ibus-mozcが選択される
74
+
75
+ # task-japanse-gnome-desktopパッケージ
76
+
77
+ ```bash
78
+ $ apt depends task-japanese-gnome-desktop
79
+ task-japanese-gnome-desktop
80
+ 依存: tasksel (= 3.77)
81
+ 推奨: thunderbird
82
+ 推奨: thunderbird-l10n-ja
83
+ |推奨: ibus-mozc
84
+ 推奨: ibus-anthy
85
+ ```
86
+
87
+ # Debianにおける日本語入力の概要
88
+
89
+ * Debianにおける日本語入力(変換エンジン)はMozcを前提(既定では)
90
+ * インプットメソッドのフレームワークは好みで選択(im-configによる支援)
91
+ * もちろんAnthyとかSKKとかいろいろ選択肢はあるけど今回は割愛
92
+
93
+ # 本日の内容
94
+
95
+ * Debianにおける日本語入力パッケージの話
96
+ * **UpstreamであるMozcの動向**
97
+ * DebianにおけるMozcのメンテナンス状況
98
+
99
+
100
+ # UpstreamであるMozcの変遷
101
+
102
+ * 2010年: Mozcの公開
103
+ * 2023年10月以降のMozcに対する主な変更
104
+ * <https://zenn.dev/komatsuh/articles/komatsuh_mozc_updates_from_2023_10>
105
+ * ✅PRの受け入れ範囲の制限の撤廃
106
+
107
+ # UpstreamであるMozcの変遷
108
+
109
+ * 継続的なメンテナンス
110
+ * ✅ビルドシステムがGYPからBazelに変更
111
+ * ✅候補ウィンドウはGTK+からQtへ変更
112
+ * ✅辞書・記号、絵文字データの更新
113
+
114
+ ## note
115
+
116
+ * 2020年以降のMozcに対する主な変更
117
+ * <https://zenn.dev/komatsuh/articles/d6844edd398402>
118
+ * 2021年以降のMozcに対する主な変更
119
+ * <https://zenn.dev/komatsuh/articles/9821ea8be015f0>
120
+
121
+ # 本日の内容
122
+
123
+ * Debianにおける日本語入力の概要
124
+ * UpstreamであるMozcの動向
125
+ * **DebianにおけるMozcのメンテナンス状況**
126
+
127
+ # DebianにおけるMozcの\\nメンテナンス状況
128
+
129
+ * <https://salsa.debian.org/debian/mozc>
130
+ * GunnarさんやIwamatsuさんによるメンテナンス
131
+ * <https://discourse.ubuntu.com/t/in-memoriam-gunnar-hjalmarsson/42284>
132
+ * 2022年以降はやや停滞気味 🤔
133
+ * 2024年はFTBFSへの対処がメイン
134
+ * メンテナンスしてくれている"誰か"によるベストエフォート
135
+
136
+ # mozc 2.28.4715.102+dfsg-2.3
137
+
138
+ ![](images/mozc-2.28.4715.102+dfsg-2.3.png){:relative-height="80"}
139
+ {:.center}
140
+ {::tag name="x-small"}<https://tracker.debian.org/news/1533411/accepted-mozc-2284715102dfsg-23-source-into-unstable/>{:/tag}
141
+
142
+ # MozcがFTBFSになると困ること
143
+
144
+ * testingから削除される
145
+ * ローカルビルドに支障がでる
146
+ * 独自にシステム辞書を差し替えて使う場合にリビルドできない
147
+ * 例: src/data/dictionary_oss/
148
+ * <https://github.com/utuhiro78/merge-ut-dictionaries>
149
+ * <https://github.com/reasonset/mozcdict-ext.git>
150
+
151
+ # Mozcのリリースとの乖離
152
+
153
+ * Mozc (Debian) 2.28.4715.102+dfsg
154
+ * 一時期testingから削除されていたことも
155
+ * Mozc (Upstream): Debian採用バージョンより新しいもの
156
+ * 2.28系: 2.28.4880.102, 2.28.5029.102
157
+ * 2.29系: 2.29.5160.102, 2.29.5268.102, 2.29.5374.102, 2.29.5544.102
158
+ * 2.30系: 2.30.5544.102
159
+
160
+ ## note
161
+
162
+ 経過日数については2009年5月 or 6月あたりが基準。ただしGitHubのタグが付与された日付のN日前を計算するとずれがある。
163
+
164
+ # 他のディストリビューションの状況
165
+
166
+ * Fedora
167
+ * 2.29.5111.102
168
+ * GTK renderer
169
+ * openSUSE
170
+ * 2.29.5268.102
171
+ * Bazelに移行済み
172
+
173
+ # DebianにおけるMozcの更新の壁
174
+
175
+ * ビルドシステム変更の壁
176
+ * 依存ライブラリの壁
177
+ * パッチ更新の壁
178
+
179
+ # ビルドシステム変更の壁(影響:大)
180
+
181
+ * MozcはビルドシステムをGYPからBazelに変更
182
+ * 2.29.5544.102でGYPは非推奨になった
183
+ * GYP対応は(それ以前からすでに)削除がはじまっている
184
+ * 例: `--use_gyp_for_ibus_build`は2.29.5160.102で削除済み
185
+
186
+ # ビルドシステム変更の壁(影響:大)
187
+
188
+ * Bazelは4.2.3までしかパッケージングされていない (Debian sid)
189
+ * Bazel 7.xにMozcは対応している
190
+ * Bazelのパッケージングどうする?🤔
191
+ * メーリングリスト(debian-bazel@lists.d.o)でも反応なし😭
192
+ * <https://lists.debian.org/debian-bazel/2024/07/msg00000.html>
193
+
194
+ # 依存ライブラリの壁(影響:中)
195
+
196
+ * Mozcはabseilに依存
197
+ * 2.30.5544.102からabseil 20240116.1以降が必要
198
+ * Debian sidは20230802.1
199
+ * experimentalに20240722.0が投入されている
200
+ * mozc 2.28.4715.102+abseil 20240722.0でFTBFSは発生しない😌
201
+
202
+ # 依存ライブラリの壁(影響:中)
203
+
204
+ * Mozcはprotobufに依存
205
+ * 特定のバージョンのprotobufでないとビルドに失敗する🤔
206
+ * experimentalに3.25.4-1が投入されている
207
+ * mozc 2.28.4715.102+protobuf 3.25.4-1ではFTBFS発生💣
208
+
209
+ # パッチ更新の壁(影響:大)
210
+
211
+ * 既存のパッチを更新していく必要がある
212
+ * Fcitx5サポート(Mozcのリポジトリとは独立)
213
+ * uim-mozcのサポート
214
+ * GYPサポートの復活と追従
215
+
216
+ # パッチ更新の壁(影響:大)
217
+
218
+ * 既存のパッチの棚卸し
219
+
220
+ ```
221
+ 0001-Update-uim-mozc-to-c979f127acaeb7b35d3344e8b1e40848e.patch
222
+ 0002-Support-fcitx.patch
223
+ 0003-Change-compiler-from-clang-to-gcc.patch
224
+ 0004-Add-usage_dict.txt.patch
225
+ 0005-Enable-verbose-build.patch
226
+ 0006-Update-gyp-using-absl.patch
227
+ 0007-common.gypi-Use-command-v-instead-of-which.patch
228
+ 0008-renderer-Convert-Gtk2-to-Gtk3.patch
229
+ 0009-protobuf.gyp-Add-latomic-to-link_settings.patch
230
+ 0010-Fix-the-compile-error-of-ParseCommandLineFlags-with.patch
231
+ 0011-Fix-missing-abseil-gyp-link-settings.patch
232
+ ```
233
+
234
+
235
+ # どこまで視野に入れて\\n更新していくか?
236
+
237
+ * 時間的な制約
238
+ * Debian 13 (trixie)のフリーズが来年からはじまるはず
239
+ * Bazel 7.xのtrixieへの投入は間に合わないだろう(私見)
240
+ * → GYPのパッチを維持していくのが現実的か
241
+ * ❌upstreamが放棄したものをメンテしていくコスト発生
242
+
243
+ # どこまで視野に入れて\\n更新していくか?(GUI)
244
+
245
+ * 依存上の制約
246
+ * Qtに移行する or しない
247
+ * 移行する → 2.29.5268.102以降
248
+ * 移行しない → 2.29.5160.102まで
249
+
250
+ # どこまで視野に入れて\\n更新していくか?(abseil)
251
+
252
+ * 依存上の制約
253
+ * abseil 20240722.0がDebian sidに投入されたら?
254
+ * → 2.30.5544.102以降も狙えるかも
255
+ * abseil 20230802.1のまま
256
+ * → 最大でも2.29.5544.102まで
257
+
258
+ # どこまで視野に入れて更新していくか?
259
+
260
+ * Mozcのベースバージョンをどこに設定するか
261
+ * uim対応パッチの追従コスト💴
262
+ * fcitx対応パッチの追従コスト💵
263
+ * GYP対応パッチの追従コスト💶
264
+
265
+ # Fcitx対応パッチ
266
+
267
+ * <https://github.com/fcitx/mozc>
268
+ * upstreamとのtagの対応がわかりづらい
269
+ * <https://github.com/fcitx/mozc/pull/68>
270
+ * Bazel対応はすすめられていそう
271
+ * base/vlog.h使っているかどうかで対応バージョンを推測できる
272
+
273
+ # UIM対応パッチ
274
+
275
+ * <https://github.com/e-kato/macuim>
276
+ * upstreamによるメンテナンス状況が不透明
277
+ * upstreamパッチ+Debian独自パッチのメンテナンスが必要なはず
278
+ * fcitx/mozc方式のメンテナンスのほうが都合がよい?
279
+
280
+ # 個人的なビルド実験
281
+
282
+ * 2.29.5160.102 をターゲット
283
+ * ~~いきなり2.30系はいろいろ違いすぎてつらそうな予感~~
284
+ * GTK rendererがまだ削除されていない
285
+ * GYP非推奨化が本格化していない
286
+
287
+ # 2.29.5160.102 をターゲット
288
+
289
+ * ✅既存の11パッチの棚卸し
290
+ * ✅abseil GYPパッチ更新(システムのabseilを使う)
291
+ * ✅IBus向けGYPのバックポート
292
+ * `--use_gyp_for_ibus_build`オプションの復活
293
+ * ✅sidのprotobufでビルドできるように修正
294
+
295
+ # Mozc本体のビルド実験
296
+
297
+ * ✅unix/ibus/ibus.gyp:ibus_mozc
298
+ * ✅unix/emacs/emacs.gyp:mozc_emacs_helper
299
+ * ✅renderer/renderer.gyp:mozc_renderer
300
+ * ✅server/server.gyp:mozc_server
301
+
302
+ # Fcitx対応
303
+
304
+ * mozc/fcitxの追従状況を見極めてパッチを再作成
305
+ * ✅unix/fcitx/fcitx.gyp:fcitx-mozc
306
+ * ✅unix/fcitx5/fcitx5.gyp:fcitx5-mozc
307
+
308
+ # UIM対応
309
+
310
+ * macuimの最新からパッチを再作成
311
+ * コンパイルできるように追加修正
312
+ * 💣unix/uim/uim.gyp:uim-mozc
313
+
314
+ # TODO:
315
+
316
+ * Debianパッケージへのパッチの適用とビルドの整備
317
+ * d/copyrightのrepack整備
318
+ * d/watchのとりこみ
319
+ * 動作確認とかもろもろ...
320
+
321
+ # さいごに
322
+
323
+ * Debian sidではMozcのupstreamにあまり追従できていないのが現状
324
+ * openSUSEは対応すすんでいるのでとりくみが参考になるかも
325
+ * 興味がある人はぜひ手を動かしていると面白いかも
metadata ADDED
@@ -0,0 +1,65 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-kenhys-tokyodebian-update-mozc
3
+ version: !ruby/object:Gem::Version
4
+ version: 2024.11.16.1
5
+ platform: ruby
6
+ authors:
7
+ - Kentaro Hayashi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-11-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ description: ''
28
+ email:
29
+ - kenhys@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".rabbit"
35
+ - README.md
36
+ - Rakefile
37
+ - config.yaml
38
+ - images/mozc-2.28.4715.102+dfsg-2.3.png
39
+ - pdf/tokyodebian-update-mozc-update-mozc.pdf
40
+ - theme.rb
41
+ - update-mozc.md
42
+ homepage: https://slide.rabbit-shocker.org/authors/kenhys/tokyodebian-update-mozc/
43
+ licenses:
44
+ - CC-BY-SA-4.0
45
+ metadata: {}
46
+ post_install_message:
47
+ rdoc_options: []
48
+ require_paths:
49
+ - lib
50
+ required_ruby_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ required_rubygems_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ requirements: []
61
+ rubygems_version: 3.4.19
62
+ signing_key:
63
+ specification_version: 4
64
+ summary: Tokyo Debian Update Mozc
65
+ test_files: []