Develop and Download Open Source Software

Browse Subversion Repository

Contents of /branches/4-stable/doc/ja/html/reference/develop.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 10929 - (show annotations) (download) (as text)
Tue Sep 12 10:14:48 2023 UTC (6 months, 4 weeks ago) by nmaya
File MIME type: text/html
File size: 37177 byte(s)
OpenSSL 1.1.1w へ更新
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2 "http://www.w3.org/TR/html4/strict.dtd">
3 <HTML>
4 <HEAD>
5 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
6 <TITLE>Tera Term 開発者向け</TITLE>
7 <META http-equiv="Content-Style-Type" content="text/css">
8 <link rel="stylesheet" href="../style.css" type="text/css">
9 </HEAD>
10 <BODY>
11
12 <h1 class="center">Tera Term 開発者向け</h1>
13
14 <ol>
15 <li><a href="#environment">開発環境・ライブラリ</a>
16 <ol>
17 <li><a href="#compiler">コンパイラ・ツール</a></li>
18 <li><a href="#library">使用しているライブラリ</a></li>
19 </ol>
20 </li>
21 <li><a href="#build">ビルドする</a>
22 <ol>
23 <li><a href="#build-env">環境構築</a></li>
24 <li><a href="#build-detail">ビルド手順</a>
25 <ol>
26 <li><a href="#build-checkout">ソースコードのチェックアウト</a></li>
27 <li><a href="#build-library">ライブラリのビルド</a></li>
28 <li><a href="#build-teraterm">Tera Termのビルド</a></li>
29 <li><a href="#build-ttssh">TTSSHのビルド</a></li>
30 <li><a href="#build-ttproxy">TTProxyのビルド</a></li>
31 <li><a href="#build-ttxkanjimenu">TTXKanjiMenuのビルド</a></li>
32 <li><a href="#build-ttxsamples">TTXSamplesのビルド</a></li>
33 <li><a href="#build-teraterm-menu">TeraTerm Menuのビルド</a></li>
34 <li><a href="#build-cygterm">CygTerm+のビルド</a></li>
35 <li><a href="#build-htmlhelp">ヘルプファイルのビルド</a></li>
36 </ol>
37 </li>
38 </ol>
39 </li>
40 <li><a href="#develop">開発作業メモ</a>
41 <ol>
42 <li><a href="#ini-entry">TERATERM.INI への項目追加</a></li>
43 <li><a href="#menu-id">メニューID追加時の命名規則</a></li>
44 <li><a href="#add-macro-command">マクロコマンド追加時の作業リスト</a></li>
45 <li><a href="#icon">アイコン</a></li>
46 <li><a href="#editor">言語ファイル編集時の注意</a></li>
47 </ol>
48 </li>
49 <li><a href="#release">リリースの手順</a>
50 <ol>
51 <li><a href="#start-rc">リリース作業の開始からRC作成まで</a></li>
52 <li><a href="#rc-release">RC作成からリリースまで</a></li>
53 <li><a href="#release-operation">リリース作業</a></li>
54 <li><a href="#code-freeze">コードフリーズについて</a></li>
55 </ol>
56 </li>
57 </ol>
58
59 <hr>
60
61 <h2 id="environment">開発環境・ライブラリ</h2>
62
63 <h3 id="compiler">コンパイラ・ツール</h3>
64
65 <p>
66 Tera Term Project でリリースに使用しているコンパイラは以下の通りです。
67 </p>
68
69 <ul>
70 <li>Visual Studio 2005 SP1 (Standard Edition 以上)</li>
71 <li>Cygwin gcc (<a href="https://www.cygwin.com/" target="_blank">https://www.cygwin.com/</a>)<br />
72 CygTerm+ のビルドに使用します。
73 <!--Cygwin の最新版は 32bit バイナリが生成できません。32bit バイナリを生成できる cygwin32-gcc-g++ を Cygwin Time Machine (<a href="http://www.crouchingtigerhiddenfruitbat.org/Cygwin/timemachine.html" target="_blank">http://www.crouchingtigerhiddenfruitbat.org/Cygwin/timemachine.html</a>) からダウンロードします。-->
74 </li>
75 </ul>
76
77 <p>
78 Tera Term は以下のコンパイラでもビルドできます。
79 </p>
80
81 <ul>
82 <li>Visual Studio Community 2019 (最新版)<br />
83 注: コンパイルされた実行ファイルは Windows XP, 2000, NT 4.0, 95, 98, Me で動きません。
84 </li>
85 <li>Visual Studio Community 2022 (最新版)<br />
86 注: コンパイルされた実行ファイルは Windows Vista, XP, 2000, NT 4.0, 95, 98, Me で動きません。
87 </li>
88 </ul>
89
90 <p>
91 ビルドに必要なツールは以下の通りです。
92 </p>
93
94 <ul>
95 <li>Perl<br />
96 以下のいずれか:
97 <ul>
98 <li>Strawberry Perl 5.30.1.1 以上 (<a href="https://strawberryperl.com/" target="_blank">https://strawberryperl.com/</a>)</li>
99 <li>ActivePerl 5.10 以上 (<a href="https://www.activestate.com/products/perl/" target="_blank">https://www.activestate.com/products/perl/</a>)</ li>
100 </ul>
101 ビルド過程で使用します。<br />
102 <ul>
103 <li>OpenSSL のコンパイル(必須)</li>
104 <li>ドキュメントファイルの文字コード・改行コード変換(必須)</li>
105 <li>リビジョン番号取得 (perlがない場合リビジョン番号を取得せずにビルドします)</li>
106 </ul>
107 </li>
108 <li>Subversion<br />
109 以下のいずれか:
110 <ul>
111 <li>VisualSVN (<a href="https://www.visualsvn.com/downloads/" target="_blank">https://www.visualsvn.com/downloads/</a>)</li>
112 <li>TortoiseSVN (<a href="https://tortoisesvn.net/downloads.html" target="_blank">https://tortoisesvn.net/downloads.html</a>)</li>
113 <li>Subversion for Windows (<a href="http://sourceforge.net/projects/win32svn/" target="_blank">http://sourceforge.net/projects/win32svn/</a>)</li>
114 </ul>
115 ソースのチェックアウトに使用します。<br />
116 また、リビジョン番号の取得のために、ソースのチェックアウトに使ったのと互換性のあるバージョンのコマンドライン版が必要です。
117 </li>
118 <li>Patch<br />
119 OpenSSL にパッチを適用するのに使用します。
120 </li>
121 <li>HTML Help Compiler<br />
122 ヘルプの作成に使用します。
123 </li>
124 <li>Inno Setup<br />
125 <ul>
126 <li>Inno Setup 5.6.1 ANSI (http://www.jrsoftware.org/isinfo.php)</li>
127 <li>ISTool 5.3.0.1 (https://sourceforge.net/projects/istool/)</li>
128 </ul>
129 インストーラの作成に使用します。
130 </li>
131 </ul>
132
133 <h3 id="library">ライブラリ</h3>
134
135 <ul>
136 <li>Oniguruma 6.9.8 (<a href="https://github.com/kkos/oniguruma/" target="_blank">https://github.com/kkos/oniguruma/</a>)<br />
137 Tera Term Macro で正規表現のために使用します。
138 </li>
139 <li>SFMT 1.5.1 (<a href="http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index-jp.html" target="_blank">http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index-jp.html</a>)<br />
140 Tera Term Macro で乱数生成のために使用します。
141 </li>
142 <li>OpenSSL 1.1.1w (<a href="https://www.openssl.org/" target="_blank">https://www.openssl.org/</a>)<br />
143 TTSSH で暗号のために使用します。
144 </li>
145 <li>zlib 1.3 (<a href="https://www.zlib.net/" target="_blank">https://www.zlib.net/</a>)<br />
146 TTSSH で圧縮のために使用します。
147 </li>
148 <li>PuTTY 0.70 (<a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/" target="_blank">https://www.chiark.greenend.org.uk/~sgtatham/putty/</a>)<br />
149 TTSSH で Pageant との通信に使用します。
150 </li>
151 <li>The reference C implementation of Argon2 20190702 (<a href="https://github.com/P-H-C/phc-winner-argon2/" target="_blank">https://github.com/P-H-C/phc-winner-argon2/</a>)<br />
152 TTSSH で PuTTY の秘密鍵ファイル形式バージョン3 (PPK3) の読み込みに使用します。
153 </li>
154 </ul>
155
156
157 <h2 id="build">ビルド</h2>
158
159 <h3 id="build-env">環境構築</h3>
160
161 <ul>
162 <li>Visual Studio 2005 のインストール
163 <ul>
164 <li>Visual Studio 2005</li>
165 <li>Service Pack 1 (VS80sp1-KB926601-X86-ENU.exe)</li>
166 <li>Microsoft Visual Studio 2005 Service Pack 1 MFC セキュリティ更新プログラム (VS80sp1-KB2538218-v2-X86-INTL.exe)</li>
167 <li>Windows Vista 以上でビルドする場合は、Visual Studio 2005 Service Pack 1 Update for Windows Vista (VS80sp1-KB932236-X86-JPN.exe)</li>
168 </ul>
169 </li>
170 <li>Windows SDK 7.0 のインストール
171 <ul>
172 <li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E15438AC-60BE-41BD-AA14-7F1E0F19CA0D&displaylang=en" target="_blank">Windows Server 2003 R2 Platform SDK (Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1)</a> ... 5.2.3790.2075.51.PlatformSDK_Svr2003R2_rtm.img<br />
173 注: Microsoftのサイトからは入手不可能(2019/04/07時点)
174 </li>
175 <li>Platform SDK の INCLUDE, LIB ディレクトリが優先されるよう設定します。<br />
176 "Start" - "All Programs" - "Mirosoft Platform SDK for Windows Server 2003 R2" - "Visual Studio Registration" - "Register PSDK Directories with Visual Studio" を実行します。<br />
177 Visual Studio の "ツール" - "オプション" - "プロジェクトおよびソリューション" - "VC++ ディレクトリ" で、"インクルードファイル", "ライブラリファイル" に Platform SDK のパスが追加されているか確認してください。
178 <pre>
179 e.g.
180 INCLUDE "C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include"
181 LIB "C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib"
182 </pre>
183 </li>
184 </ul>
185 </li>
186 <!--
187 <li>Windows SDK 7.1 のインストール
188 <ul>
189 <li><a href="https://www.microsoft.com/en-us/download/details.aspx?id=8442" target="_blank">Microsoft Windows SDK for Windows 7 and .NET Framework 4</a> ... GRMSDK_EN_DVD.iso</li>
190 <li>Visual Studio 2005で利用するにはKB949009(VS80sp1-KB949009-X86-INTL.exe)かKB980422(VS80sp1-KB980422-x86-INTL.exe)が必要<br />
191 注: KB949009,KB980422はMicrosoftのサイトから入手不可能
192 </li>
193 </ul>
194 </li>
195 -->
196 <li>Cygwin のインストール<br />
197 必要なパッケージについては<a href="../usage/cygwin.html#build">このページ</a>を参照してください。
198 </li>
199 <li>Perl をインストールします。</li>
200 <li>Subversion をインストールします。<br />
201 "libs\svn\bin\svnversion.exe", "PATHが通ったところの svnversion" の順で探して見つかった "svnversion" コマンドが使用されます。<br />
202 PATH の通ったところに "svnversion" がない場合は、libs\svn\bin に "svnversion.exe" が配置されるようにしてください。
203 </li>
204 <li>Patch をインストールします。<br />
205 "libs\openssl_patch\patch.exe", "PATHが通ったところの patch" の順で探して見つかった patch が使用されます。<br />
206 PATH の通ったところに patch がない場合は、libs\openssl_patch に "patch.exe" が配置されるようにしてください。<br />
207 https://gitforwindows.org/ (https://github.com/git-for-windows/git/releases/latest) からであれば、Git-x.xx.x-32-bit.tar.bz2 をダウンロードして展開し、usr\bin 内の patch.exe, msys-gcc_s-1.dll, msys-2.0.dll をコピーします。</li>
208 </li>
209 <li>HTML Help Compiler のインストール<br />
210 TBC: Visual Studio (2017 以降) を "C++ MFC" オプションを選択してインストールすると、HTML Help Compiler (hhc.exe) がインストールされます。
211 </li>
212 <li>Inno Setup をインストールします。</li>
213 </ul>
214
215
216 <h3 id="build-detail">ビルド手順</h3>
217
218 <h4 id="build-checkout">ソースコードのチェックアウト</h4>
219
220 <p>
221 ソースコードをOSDN(http://svn.osdn.net/svnroot/ttssh2/branches/4-stable/)からチェックアウトします。<br />
222 プロジェクトメンバは svn+ssh://&lt;username&gt;@svn.osdn.net/svnroot/ttssh2/branches/4-stable/ または https://svn.osdn.net/svnroot/ttssh2/branches/4-stable/ からチェックアウトします。
223 </p>
224
225 <h4 id="build-library">ライブラリのビルド</h4>
226
227 <p>
228 "Visual Studio 2005 コマンド プロンプト" を立ち上げるか、適切な PATH を通しておく必要があります。<br />
229 * の bat を個別に実行するかわりに、libs\buildall.bat を実行することでまとめてビルドすることができます。
230 </p>
231
232 <ul>
233 <li>Oniguruma
234 <ol>
235 <li>oniguruma のソースを libs/oniguruma の中に展開する。</li>
236 <li>libs\buildoniguruma6.bat を実行する。*</li>
237 </ol>
238 </li>
239 <li>SFMT
240 <ol>
241 <li>SFMT のソースを libs/SFMT の中に展開する。</li>
242 <li>libs\buildSFMT.bat を実行する。*</li>
243 <li>必要に応じて libs/SFMT/SFMT_version_for_teraterm.h のバージョン番号を修正する。</li>
244 </ol>
245 </li>
246 <li>OpenSSL
247 <ol>
248 <li>openssl のソースを libs/openssl の中に展開する。<br />
249 注: OpenSSL 1.0.0e 以降で、libs/openssl/Makefile.bak が最初から存在する場合は、一度だけ手動で削除してください。</li>
250 <li>buildopenssl11.bat を実行する。*</li>
251 </ol>
252 </li>
253 <li>Zlib
254 <ol>
255 <li>zlib のソースを libs/zlib の中に展開する。</li>
256 <li>buildzlib.bat を実行する。*</li>
257 </ol>
258 </li>
259 <li>PuTTY
260 <ol>
261 <li>PuTTY のソースを libs/putty の中に展開する。<br />
262 ttssh ソリューション配下の putty プロジェクトにより必要な機能のみが静的ライブラリ化され、ttxssh.dll にリンクされるため、展開するだけでよい。</li>
263 </ol>
264 </li>
265 <li>The reference C implementation of Argon2
266 <ol>
267 <li>argon2 のソースを libs/argon2 の中に展開する。<br />
268 argon2 リファレンス実装には静的ライブラリを生成するプロジェクトファイルが含まれていない。<br />
269 ttssh ソリューション配下の argon2 プロジェクトにより静的ライブラリが生成され、ttxssh.dll にリンクされるため、展開するだけでよい。</li>
270 </ol>
271 </li>
272 </ul>
273
274 <h4 id="build-teraterm">Tera Termのビルド</h4>
275
276 <ol>
277 <li>teraterm\ttermpro.sln をVisual Studioで開く。<br />
278 .slnファイルの改行コードが"LF"になっていると、Visual Studioが起動しないので注意願います。</li>
279 <li>ソリューションをビルドする。</li>
280 <li>ビルドに成功すると teraterm\Debug / teraterm\Release ディレクトリに実行プログラムが生成される。</li>
281 </ol>
282
283 <h4 id="build-ttssh">TTSSHのビルド</h4>
284
285 あらかじめ teraterm\ttermpro.sln によって ttpcmn.dll (ttpcmn.lib) がビルドされている必要があります。
286
287 <ol>
288 <li>ttssh2\ttssh.sln をVisual Studioで開く。</li>
289 <li>ソリューションをビルドする。</li>
290 <li>ビルドに成功すると ttssh2\ttxssh\Debug / ttssh2\ttxssh\Release ディレクトリにDLLが生成される。</li>
291 </ol>
292
293 <h4 id="build-ttproxy">TTProxyのビルド</h4>
294
295 あらかじめ teraterm\ttermpro.sln によって ttpcmn.dll (ttpcmn.lib) がビルドされている必要があります。
296
297 <ol>
298 <li>TTProxy\TTProxy.sln をVisual Studioで開く。</li>
299 <li>ソリューションをビルドする。</li>
300 <li>ビルドに成功すると TTProxy\Debug / TTProxy\Release ディレクトリにDLLが生成される。</li>
301 </ol>
302
303 <h4 id="build-ttxkanjimenu">TTXKanjiMenuのビルド</h4>
304
305 あらかじめ teraterm\ttermpro.sln によって ttpcmn.dll (ttpcmn.lib) がビルドされている必要があります。
306
307 <ol>
308 <li>TTXKanjiMenu\ttxkanjimenu.sln をVisual Studioで開く。</li>
309 <li>ソリューションをビルドする。</li>
310 <li>ビルドに成功すると TTXKanjiMenu\Debug / TTXKanjiMenu\Release ディレクトリに ttxkanjimenu.dll が生成される。</li>
311 </ol>
312
313 <h4 id="build-ttxsamples">TTXSamplesのビルド</h4>
314
315 <p>
316 リポジトリのTTXSamplesに Tera Term Extension (TTX)のサンプルがあります。TTXを作る際の参考にしてください。
317 </p>
318
319 あらかじめ teraterm\ttermpro.sln によって ttpcmn.dll (ttpcmn.lib) がビルドされている必要があります。
320
321 <ol>
322 <li>TTXSamples\TTXSamples.sln をVisual Studioで開く。</li>
323 <li>ソリューションをビルドする。</li>
324 <li>ビルドに成功すると TTXSamples\Debug / TTXSamples\Release ディレクトリにDLLが生成される。</li>
325 </ol>
326
327 <p>
328 各TTXの詳細については、プロジェクト内のReadMe-ja.txtを参照してください。
329 </p>
330
331 <h4 id="build-teraterm-menu">TeraTerm Menuのビルド</h4>
332
333 <ol>
334 <li>ttpmenu\ttpmenu.sln をVisual Studioで開く。</li>
335 <li>ソリューションをビルドする。</li>
336 <li>ビルドに成功すると ttpmenu\Debug / ttpmenu\Release ディレクトリに ttpmenu.exe が生成される。</li>
337 </ol>
338
339 <h4 id="build-cygterm">CygTerm+のビルド</h4>
340
341 <ol>
342 <li>Cygwinのシェルを起動し、cygterm ディレクトリへ移動する。
343 <pre>
344 # cd cygterm
345 </pre>
346 </li>
347 <li>CygTerm+をコンパイルする。
348 <pre>
349 # make
350 </pre>
351 </li>
352 <li>cygterm.exe, cyglaunch.exe が生成される。</li>
353 </ol>
354
355 <h4 id="build-htmlhelp">ヘルプファイルのビルド</h4>
356
357 <ol>
358 <li>doc\makechm.bat を実行する。</li>
359 </ol>
360
361
362 <h2 id="develop">開発作業メモ</h2>
363
364
365 <h3 id="ini-entry">TERATERM.INI への項目追加</h3>
366
367 <p>
368 項目名<br />
369 すでに EnableFoo... や DisableBar... が混在してしまっているが、混乱しやすい。<br />
370 今後は Baz... という形式にするのが望ましい。
371 </p>
372
373
374 <h3 id="menu-id">メニューID追加時の命名規則</h3>
375
376 <pre>
377 1桁目は 5
378 </pre>
379 <pre>
380 2桁目は
381 Tera Term VT ウィンドウなら 0
382 Tera Term TEK ウィンドウなら 1
383 TTSSH なら 2
384 TTProxy なら 3
385 TTXKanjiMenu なら 4
386 </pre>
387 <pre>
388 3桁目は
389 [File] メニューなら 1
390 [Edit] メニューなら 2
391 [Setup] メニューなら 3
392 [Control] メニューなら 4
393 [Window] メニューなら 8
394 [Help] メニューなら 9
395 </pre>
396
397 <p>
398 例:File配下にTTSSHのメニューを追加する
399 </p>
400 <pre>
401 #define ID_SSHSCPMENU 52110
402 </pre>
403
404
405 <h3 id="add-macro-command">マクロコマンド追加時の作業リスト</h3>
406
407 <p>
408 Tera Termマクロを新設するときの作業手順について、以下に示します。
409 </p>
410
411 <ul>
412 <li>ソースコードの修正
413 <ul>
414 <li>コマンドの内部 ID を採番する。(「内部 ID」は"helpid.h"にも使用される)<br />
415 ... teraterm/ttmacro/ttmparse.h</li>
416 <li>コマンド名を走査して内部 ID に変換する。<br />
417 ... CheckReservedWord@teraterm/ttmacro/ttmparse.c</li>
418 <li>コマンドの内部 ID から実際に処理をする関数を呼ぶ。<br />
419 ... ExecCmnd@teraterm/ttmacro/ttl.c</li>
420 <li>処理する関数を作る。</li>
421 </ul>
422 </li>
423 <li>ヘルプ(言語ごと)
424 <ul>
425 <li>コマンドのヘルプを作る。<br />
426 ... doc/LANG/html/macro/command/hogefunc.html</li>
427 <li>コマンド一覧ページに追加する。<br />
428 ... doc/LANG/html/macro/command/index.html</li>
429 <li>ヘルプトピックに追加する。<br />
430 ... doc/LANG/teraterm.hhc</li>
431 <li>ヘルプページのコンテキスト ID を採番する。<br />
432 値は コマンドの内部 ID + 92000。<br />
433 ... teraterm/common/helpid.h</li>
434 <li>コンテキスト ID と呼び出すファイルのエイリアスを作成する。<br />
435 テキストエディタで直接開き、[ALIAS]にHTMLを追加する。<br />
436 ... doc/LANG/teraterm.hhp</li>
437 </ul>
438 </li>
439 </ul>
440
441
442 <h3 id="icon">アイコン</h3>
443
444 <p>
445 アイコンファイルには、4bit の 32px, 16px 画像、32bit の 256px, 48px, 32px, 16px 画像を含めます。<br />
446 各アイコンファイルには以下の種類の画像が含まれています。<br />
447 Visual Studio 2005 は PNG 画像が含まれたアイコンをサポートしていません。
448 </p>
449
450 <strong>T (Tera Term)</strong>
451 <table border="1">
452 <tr>
453 <th>icon file </th><th>icon name </th><th>4bit 32px</th><th>4bit 16px</th><th>32bit 256px</th><th>32bit 48px</th><th>32bit 32px</th><th>32bit 16px</th>
454 </tr>
455 <tr>
456 <td>teraterm\common\teraterm.ico </td><td>TTERM (Default)</td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td>
457 </tr>
458 <tr>
459 <td>teraterm\common\teraterm_classic.ico</td><td>TTERM_CLASSIC </td><td>BMP </td><td>BMP </td><td>- </td><td>- </td><td>- </td><td>- </td>
460 </tr>
461 <tr>
462 <td>teraterm\common\teraterm_3d.ico </td><td>TTERM_3D </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td>
463 </tr>
464 </table>
465
466 <strong>VT (VT Window)</strong>
467 <table border="1">
468 <tr>
469 <th>icon file </th><th>icon name </th><th>4bit 32px</th><th>4bit 16px</th><th>32bit 256px</th><th>32bit 48px</th><th>32bit 32px</th><th>32bit 16px</th>
470 </tr>
471 <tr>
472 <td>teraterm\common\vt.ico </td><td>VT (Default)</td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td>
473 </tr>
474 <tr>
475 <td>teraterm\common\vt_classic.ico</td><td>VT_CLASSIC </td><td>BMP </td><td>BMP </td><td>- </td><td>- </td><td>- </td><td>- </td>
476 </tr>
477 <tr>
478 <td>teraterm\common\vt_3d.ico </td><td>VT_3D </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td>
479 </tr>
480 </table>
481
482 <strong>TEK (TEK Windows)</strong>
483 <table border="1">
484 <tr>
485 <th>icon file </th><th>icon name</th><th>4bit 32px</th><th>4bit 16px</th><th>32bit 256px</th><th>32bit 48px</th><th>32bit 32px</th><th>32bit 16px</th>
486 </tr>
487 <tr>
488 <td>teraterm\common\tek.ico</td><td>TEK </td><td>BMP </td><td>BMP </td><td>- </td><td>- </td><td>- </td><td>- </td>
489 </tr>
490 </table>
491
492 <strong>M (Macro)</strong>
493 <table border="1">
494 <tr>
495 <th>icon file </th><th>icon name</th><th>4bit 32px</th><th>4bit 16px</th><th>32bit 256px</th><th>32bit 48px</th><th>32bit 32px</th><th>32bit 16px</th>
496 </tr>
497 <tr>
498 <td>teraterm\ttpmacro\ttmacro.ico </td><td>- </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td>
499 </tr>
500 <tr>
501 <td>teraterm\ttpmacro\ttmacro_3d.ico </td><td>- </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td>
502 </tr>
503 </table>
504
505 <strong>keycode</strong>
506 <table border="1">
507 <tr>
508 <th>icon file </th><th>icon name</th><th>4bit 32px</th><th>4bit 16px</th><th>32bit 256px</th><th>32bit 48px</th><th>32bit 32px</th><th>32bit 16px</th>
509 </tr>
510 <tr>
511 <td>teraterm\keycode\keycode.ico</td><td>- </td><td>BMP </td><td>BMP </td><td>- </td><td>BMP </td><td>- </td><td>- </td>
512 </tr>
513 </table>
514
515 <strong>TTSSH</strong>
516 <table border="1">
517 <tr>
518 <th>icon file </th><th>icon name </th><th>4bit 32px</th><th>4bit 16px</th><th>32bit 256px</th><th>32bit 48px</th><th>32bit 32px</th><th>32bit 16px</th>
519 </tr>
520 <tr>
521 <td>teraterm\ttpmacro\ttsecure.ico </td><td>flat (Default) </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td>
522 </tr>
523 <tr>
524 <td>teraterm\ttpmacro\ttsecure_classic.ico</td><td>classic </td><td>BMP </td><td>BMP </td><td>- </td><td>- </td><td>- </td><td>- </td>
525 </tr>
526 <tr>
527 <td>teraterm\ttpmacro\ttsecure_yellow.ico </td><td>yellow </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td>
528 </tr>
529 <tr>
530 <td>teraterm\ttpmacro\ttsecure_green.ico </td><td>green </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td><td>BMP </td>
531 </tr>
532 </table>
533
534 <strong>TeraTerm Menu</strong>
535 <table border="1">
536 <tr>
537 <th>icon file </th><th>icon name </th><th>4bit 32px</th><th>4bit 16px</th><th>32bit 256px</th><th>32bit 48px</th><th>32bit 32px</th><th>32bit 16px</th>
538 </tr>
539 <tr>
540 <td>ttpmenu\teraterm.ico</td><td>- </td><td>BMP </td><td>BMP </td><td>- </td><td>BMP </td><td>BMP </td><td>BMP </td>
541 </tr>
542 </table>
543
544 <strong>Cygterm+</strong>
545 <table border="1">
546 <tr>
547 <th>icon file </th><th>icon name </th><th>4bit 32px</th><th>4bit 16px</th><th>32bit 256px</th><th>32bit 48px</th><th>32bit 32px</th><th>32bit 16px</th>
548 </tr>
549 <tr>
550 <td>cygwin\cygterm\cygterm.ico</td><td>CYGTERM </td><td>BMP </td><td>BMP </td><td>- </td><td>BMP </td><td>BMP </td><td>BMP </td>
551 </tr>
552 </table>
553
554 <p>
555 アイコンファイルへの画像の格納順は「ビット数が小さい順、サイズが大きい順」とします。<br />
556 そうでないと、プログラムがサイズを指定せずに「最大サイズの画像」を取得しようとしたときに「最初の画像」が取り出されるためです。
557 </p>
558
559 <p>
560 アイコンファイルには 4bit 画像を含めます。<br />
561 Windows NT 4.0 は 4bit アイコンのみサポートしているためです。また、Windows 2000 の通知領域も 4bit アイコンのみサポートしています。<br />
562 4bit アイコンには以下の色が使用できます。
563 </p>
564
565 <table border="1">
566 <tr>
567 <td style="background-color:#000000;">&nbsp;&nbsp;</td><td>#000000</td><td>(0,0,0)</td>
568 </tr>
569 <tr>
570 <td style="background-color:#800000;">&nbsp;&nbsp;</td><td>#800000</td><td>(128,0,0)</td>
571 </tr>
572 <tr>
573 <td style="background-color:#ff0000;">&nbsp;&nbsp;</td><td>#ff0000</td><td>(255,0,0)</td>
574 </tr>
575 <tr>
576 <td style="background-color:#ff00ff;">&nbsp;&nbsp;</td><td>#ff00ff</td><td>(255,0,255)</td>
577 </tr>
578 <tr>
579 <td style="background-color:#008080;">&nbsp;&nbsp;</td><td>#008080</td><td>(0,128,128)</td>
580 </tr>
581 <tr>
582 <td style="background-color:#008000;">&nbsp;&nbsp;</td><td>#008000</td><td>(0,128,0)</td>
583 </tr>
584 <tr>
585 <td style="background-color:#00ff00;">&nbsp;&nbsp;</td><td>#00ff00</td><td>(0,255,0)</td>
586 </tr>
587 <tr>
588 <td style="background-color:#00ffff;">&nbsp;&nbsp;</td><td>#00ffff</td><td>(0,255,255)</td>
589 </tr>
590 <tr>
591 <td style="background-color:#000080;">&nbsp;&nbsp;</td><td>#000080</td><td>(0,0,128)</td>
592 </tr>
593 <tr>
594 <td style="background-color:#800080;">&nbsp;&nbsp;</td><td>#800080</td><td>(128,0,128)</td>
595 </tr>
596 <tr>
597 <td style="background-color:#0000ff;">&nbsp;&nbsp;</td><td>#0000ff</td><td>(0,0,255)</td>
598 </tr>
599 <tr>
600 <td style="background-color:#c0c0c0;">&nbsp;&nbsp;</td><td>#c0c0c0</td><td>(192,192,192)</td>
601 </tr>
602 <tr>
603 <td style="background-color:#808080;">&nbsp;&nbsp;</td><td>#808080</td><td>(128,128,128)</td>
604 </tr>
605 <tr>
606 <td style="background-color:#808000;">&nbsp;&nbsp;</td><td>#808000</td><td>(128,128,0)</td>
607 </tr>
608 <tr>
609 <td style="background-color:#ffff00;">&nbsp;&nbsp;</td><td>#ffff00</td><td>(255,255,0)</td>
610 </tr>
611 <tr>
612 <td style="background-color:#ffffff;">&nbsp;&nbsp;</td><td>#ffffff</td><td>255,255,255</td>
613 </tr>
614 </table>
615
616 <p>
617 アイコン用画像のソースファイルは以下に格納されています。
618 </p>
619
620 <table border="1" style="margin-bottom:1ex;">
621 <tr>
622 <th>source file</th>
623 <th>bit</th>
624 <th>T</th>
625 <th>VT</th>
626 <th>Macro</th>
627 <th>SSH</th>
628 <th>Cygwin</th>
629 </tr>
630 <tr>
631 <td rowspan="2">teraterm\common\flat_icon_16.psd</td>
632 <td>4bit</td>
633 <td>v</td>
634 <td>v</td>
635 <td>v</td>
636 <td>v</td>
637 <td>v</td>
638 </tr>
639 <tr>
640 <td>32bit</td>
641 <td>v</td>
642 <td>v</td>
643 <td>v</td>
644 <td>v</td>
645 <td>v</td>
646 </tr>
647 <tr>
648 <td rowspan="2">teraterm\common\flat_icon_32.psd</td>
649 <td>4bit</td>
650 <td>v</td>
651 <td>v</td>
652 <td>v</td>
653 <td>v</td>
654 <td>v</td>
655 </tr>
656 <tr>
657 <td>32bit</td>
658 <td>v</td>
659 <td>v</td>
660 <td>v</td>
661 <td>v</td>
662 <td>v</td>
663 <tr>
664 <td>teraterm\common\flat_icon_48.psd</td>
665 <td>32bit</td>
666 <td>v</td>
667 <td>v</td>
668 <td>v</td>
669 <td>v</td>
670 <td>v</td>
671 </tr>
672 <tr>
673 <td>teraterm\common\flat_icon_256.psd</td>
674 <td>32bit</td>
675 <td>v</td>
676 <td>v</td>
677 <td>v</td>
678 <td>v</td>
679 <td>-</td>
680 </tr>
681 </table>
682 <table border="1" style="margin-bottom:1ex;">
683 <tr>
684 <th>source file</th>
685 <th>bit</th>
686 <th>Keycode</th>
687 </tr>
688 <tr>
689 <td rowspan="2">teraterm\common\keycode_48.psd</td>
690 <td>4bit</td>
691 <td>v</td>
692 </tr>
693 </table>
694
695
696 <h3 id="editor">言語ファイル編集時の注意</h3>
697 <p>
698 言語ファイル(installer\release\lang\*.lng)は多言語対応エディタ(vim, EmEditor, Notepad++等)で編集してください。
699 </p>
700
701
702 <h2 id="release">リリースの手順</h2>
703
704 <p>
705 TeraTerm Project でのリリース手順について以下に示します。
706 </p>
707
708 <h3 id="start-rc">リリース作業の開始からRC作成まで</h3>
709
710 <ol>
711 <li>チケット、ブランチなどを確認する
712 <ul>
713 <li>プロジェクトチーム内で確認する
714 <ul>
715 <li>今回のリリースに入れるもの・次回以降に延期するものを整理・決定する</li>
716 </ul>
717 </li>
718 <li>ブランチをマージする
719 <ul>
720 <li>trunk と 4-stable 間、作業中のブランチなど</li>
721 </ul>
722 </li>
723 <li>チケットをクローズする
724 <ul>
725 <li>すでに修正済み、処理済みのものはクローズする<br />
726 リリース時には、対象のマイルストーンのチケットはすべてクローズされている状態になる</li>
727 <li>次のリリースへ回すものはマイルストーンを変更する<br />
728 次のリリース用マイルストーンを作成する</li>
729 </ul>
730 </li>
731 <li>この時点で新たに出てくるチケットの対応を検討する</li>
732 </ul>
733 </li>
734 <li>ツール、ライブラリ、インポート元の最新版をチェックする
735 <ul>
736 <li>Visual Studio (<a href="https://visualstudio.microsoft.com/" target="_blank">https://visualstudio.microsoft.com/</a>)</li>
737 <li>Inno Setup (<a href="https://jrsoftware.org/isdl.php" target="_blank">https://jrsoftware.org/isdl.php</a>)</li>
738 <li>Oniguruma (<a href="https://github.com/kkos/oniguruma/" target="_blank">https://github.com/kkos/oniguruma/</a>)</li>
739 <li>SFMT (<a href="http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index-jp.html" target="_blank">http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index-jp.html</a>)</li>
740 <li>OpenSSL (<a href="https://www.openssl.org/" target="_blank">https://www.openssl.org/</a>)</li>
741 <li>zlib (<a href="https://www.zlib.net/" target="_blank">http://www.zlib.net/</a>)</li>
742 <li>PuTTY (<a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/" target="_blank">http://www.chiark.greenend.org.uk/~sgtatham/putty/</a>)</li>
743 <li>The reference C implementation of Argon2 (<a href="https://github.com/P-H-C/phc-winner-argon2/" target="_blank">https://github.com/P-H-C/phc-winner-argon2/</a>)</li>
744 </ul>
745 <p>リリースに使うバージョンはこの時点でおおむね決定する。</p>
746 </li>
747 <li>今回のリリースに入れたいものが落ち着く</li>
748 </ol>
749
750 <h3 id="rc-release">RC作成からリリースまで</h3>
751
752 <ol>
753 <li>ドキュメントを確認する
754 <ul>
755 <li>ダイアログ上の設定項目・UIのない特別オプション・コマンドラインパラメータ・新規マクロコマンドなど、対応するドキュメントに漏れがないか確認する。</li>
756 <li>変更履歴を確認し、書き忘れがあれば追記する。</li>
757 <li>変更履歴の順番を変更する。だいたいの指針としては、ターミナルエミュレーション関係・アプリケーションとしての変更・マクロの順。</li>
758 <li>ドキュメント差分が翻訳されていることを確認し、翻訳忘れがあれば翻訳する。</li>
759 </ul>
760 </li>
761 <li>バージョンを一つインクリメントする
762 <p>一般にテストを呼びかけ、旧バージョンとの同時実行が考えられるため、このタイミングとする(例: TT_FILEMAPNAME 定義 など)。</p>
763 <ul>
764 <li>teraterm\common\tt-version.h</li>
765 <li>ttssh2\ttxssh\ttxssh-version.h</li>
766 <li>Onttpmenu\ttpmenu.rc // 変更時のみ</li>
767 <li>TTProxy\TTProxy.rc // 変更時のみ</li>
768 <li>TTXKanjiMenu\ttxkanjimenu.rc // 変更時のみ</li>
769 </ul>
770 <p>
771 CygTerm+ は例外で、リリースとは関係なくバージョンが上がる。<br />
772 修正がコミットされると即リリース扱いになり、リリース日はその日付となる。そのため、修正・バージョンのインクリメント・変更履歴を同時にコミットする。<br />
773 これはコンパイラの入手が容易なため。
774 </p>
775 </li>
776 <li>この年における最初のリリースの場合は、著作権表示の「最後の発行の年」をインクリメントする
777 <ul>
778 <li>teraterm\keycode\keycode-version.rc // VERSIONINFO</li>
779 <li>teraterm\teraterm\tt-version.rc // VERSIONINFO</li>
780 <li>teraterm\ttpcmn\ttpcmn-version.rc // VERSIONINFO</li>
781 <li>teraterm\ttpdlg\ttpdlg.rc // dialog</li>
782 <li>teraterm\ttpfile\ttpfile-version.rc // VERSIONINFO</li>
783 <li>teraterm\ttpmacro\ttm-version.rc // VERSIONINFO</li>
784 <li>teraterm\ttpset\ttpset-version.rc // VERSIONINFO</li>
785 <li>teraterm\ttptek\ttptek-version.rc // VERSIONINFO</li>
786 <li>ttssh2\ttxssh\ttxssh.rc // dialog</li>
787 <li>ttssh2\ttxssh\ttxssh-version.rc // VERSIONINFO</li>
788 <li>ttpmenu\ttpmenu.rc // dialog, VERSIONINFO</li>
789 <li>TTProxy\TTProxy.rc // dialog, VERSIONINFO(en), VERSIONINFO(ja)</li>
790 <li>TTXKanjiMenu\ttxkanjimenu.rc // VERSIONINFO</li>
791 <li>installer\teraterm.iss</li>
792 <li>installer\release\license.txt // Tera Term, TTSSH, Cygterm+, TTProxy, TeraTerm Menu, TTX KanjiMenu</li>
793 <li>doc\en\html\index.html</li>
794 <li>doc\en\html\about\copyright.html // Tera Term, TTSSH, Cygterm+, TTProxy, TeraTerm Menu, TTX KanjiMenu</li>
795 <li>doc\en\html\macro\index.html</li>
796 <li>doc\ja\html\index.html</li>
797 <li>doc\ja\html\about\copyright.html // Tera Term, TTSSH, Cygterm+, TTProxy, TeraTerm Menu, TTX KanjiMenu</li>
798 <li>doc\ja\html\macro\index.html</li>
799 </ul>
800 </li>
801 <li>64bit Cygwin バイナリを差し替える
802 <p>
803 前回のリリースから CygTerm+ に変更がある場合は、64bit Cygwinでビルドした cygterm\cygterm+-x86_64\cygterm.exe をコミットする。<br />
804 ソース修正をコミットするときに、同時にバイナリがコミットされていれば、リリース時にこの工程を行う必要はない。
805 </p>
806 </li>
807 <li>インストーラを作成する
808 <ul>
809 <li>teraterm.iss の AppVer を「次のバージョン-RC」とする
810 <pre>
811 - #define AppVer "4.105"
812 + #define AppVer "4.106-RC1"
813 </pre>
814 </li>
815 <li>teraterm.iss の snapshot をコメントアウトする
816 <pre>
817 - #define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', '');
818 + ;#define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', '');
819 </pre>
820 </li>
821 <li>teraterm.iss から起動するバッチを、リリース用に「リビルド有効」「アーカイブ作成有効」にする
822 <pre>
823 [_ISToolPreCompile]
824 Name: makechm.bat
825 - Name: build.bat
826 - ;Name: build.bat; Parameters: rebuild
827 + ;Name: build.bat
828 + Name: build.bat; Parameters: rebuild
829
830 [_ISToolPostCompile]
831 - ;Name: makearchive.bat; Parameters: release
832 + Name: makearchive.bat; Parameters: release
833 </pre>
834 </li>
835 <li id="RC_commit">この状態でコミットする</li>
836 <li>ISTool で teraterm\installer\teraterm.iss を開き、"Project"-"Compile Setup" でインストーラを作成する</li>
837 <li>作成されたポータブル版を zip で圧縮する</li>
838 </ul>
839 </li>
840 <li>サポートされている全 OS でインストーラの実行、起動、接続をチェックする</li>
841 <li>OSDN のリリース物件に追加する
842 <ul>
843 <li>「Tera Term RC」パッケージに新しいリリース(例: "4.106 RC")を追加する</li>
844 <li>新しいリリースに、インストーラ・ポータブル版の zip ファイルを追加する</li>
845 </ul>
846 </li>
847 <li>RCの作成をアナウンスする
848 <ul>
849 <li><a href="https://lists.osdn.me/mailman/listinfo/ttssh2-users" target="_blank">ttssh2-users</a> メーリングリスト</li>
850 <li>Twitter (<a href="https://twitter.com/Tera_Term" target="_blank">https://twitter.com/Tera_Term</a>)</li>
851 </ul>
852 </li>
853 <li>フィードバックを受け入れる
854 <p>修正が入ったら再度「ドキュメントを確認する」「サポートされている全 OS で起動・接続チェックする」</p>
855 </li>
856 </ol>
857
858 <h3 id="release-operation">リリース作業</h3>
859
860 <ol>
861 <li>ドキュメントを確認する (詳細は同上)</li>
862 <li>リリース日を変更する
863 <ul>
864 <li>html/about/hisotry.html</li>
865 </ul>
866 </li>
867 <li>インストーラを作成する
868 <ul>
869 <li>teraterm.iss の AppVer を変更する
870 <pre>
871 - #define AppVer "4.106-RC1"
872 + #define AppVer "4.106"
873 </pre>
874 </li>
875 <li>ISTool で teraterm\installer\teraterm.iss を開き、"Project"-"Compile Setup" で作成する</li>
876 </ul>
877 </li>
878 <li>この状態でコミットする</li>
879 <li>SVN のタグを作成する<br />
880 タグ名は「teraterm-バージョン」。(例: v4.106ならば"teraterm-4_106")
881 <pre>
882 svn copy -m "Release 4.106" \
883 svn+ssh://svn.osdn.net/svnroot/ttssh2/branches/4-stable \
884 svn+ssh://svn.osdn.net/svnroot/ttssh2/tags/teraterm-4_106
885 </pre>
886 </li>
887 <li>リリース用のタグでチェックアウトし直す<br />
888 <p>SVN のリビジョン以外のすべてが、開発ブランチと同じ状態になる</p>
889 </li>
890 <li>インストーラを作成する
891 <ul>
892 <li>ISTool で teraterm\installer\teraterm.iss を開き、"Project"-"Compile Setup" で作成する</li>
893 <li>作成されたポータブル版を zip で圧縮する</li>
894 </ul>
895 </li>
896 <li>OSDN を更新する
897 <ul>
898 <li>「Tera Term」パッケージに新しいリリース(例: "4.106")を追加する</li>
899 <li>新しいリリースに、インストーラ・ポータブル版の zip ファイルを追加する</li>
900 <li>ドキュメントの変更履歴から、リリースの「変更履歴」に(Wikiフォーマットで)転記する(日本語・英語とも)</li>
901 <li>ニュース記事を作成する</li>
902 </ul>
903 </li>
904 <li>プロジェクトページ (<a href="https://ttssh2.osdn.jp" target="_blank">https://ttssh2.osdn.jp</a>) を更新する
905 <p>更新のしかたは <a href="https://osdn.net/projects/ttssh2/wiki/%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AE%E6%9B%B4%E6%96%B0%E6%89%8B%E9%A0%86" target="_blank">プロジェクトページの更新手順</a> を参照</p>
906 </li>
907 <li>リリースをアナウンスする
908 <ul>
909 <li><a href="https://lists.osdn.me/mailman/listinfo/ttssh2-users" target="_blank">ttssh2-users</a> メーリングリスト</li>
910 <li>Twitter (<a href="https://twitter.com/Tera_Term" target="_blank">https://twitter.com/Tera_Term</a>)
911 <ul>
912 <li>リリースアナウンスのツイートを固定ツイートにする</li>
913 </ul>
914 </li>
915 </ul>
916 </li>
917 <li id="revert_teraterm_iss">開発ブランチの teraterm.iss を戻し、コミットする
918 <pre>
919 - ;#define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', '');
920 + #define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', '');
921
922 [_ISToolPreCompile]
923 Name: makechm.bat
924 - ;Name: build.bat
925 - Name: build.bat; Parameters: rebuild
926 + Name: build.bat
927 + ;Name: build.bat; Parameters: rebuild
928
929 [_ISToolPostCompile]
930 - Name: makearchive.bat; Parameters: release
931 + ;Name: makearchive.bat; Parameters: release
932 </pre>
933 </li>
934 <li>Chocolatey の登録を更新する</li>
935 </ol>
936
937 <h3 id="code-freeze">コードフリーズについて</h3>
938
939 <p>
940 コードフリース中は、原則的には致命的なバグの修正のみ可能となります。<br />
941 コードフリーズは、RC作成(<a href="#RC_commit">開発ブランチ で teraterm.iss に RC を付けるコミット</a></a>からリリース(<a href="#revert_teraterm_iss">開発ブランチの teraterm.iss を戻すコミット</a>)までとします。
942 </p>
943
944 </body>
945 </html>

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26