八津尾です。 kernel-handbook 5 章 versions の日本語訳です。 査読をお願いします。 なお、titanpad にも貼りつけました。 突っ込みがあればそちらを編集していただくと助かります。 (もちろんメールでの指摘でもかまいません) うまく訳せない箇所がありました。 5.2.2 の <p> In order to avoid the need for users to rebuild out-of-tree modules frequently, we try to avoid changing the kernel ABI during updates to a Debian stable or oldstable release. Most importantly, we avoid making such changes without changing the ABI name, except where it appears that out-of-tree modules do not depend on that part of the ABI. </p> という文章ですが、2文目に出てくる "such changes" の such と "depend on that part of the ABI" の that が指す内容がいまいちよくわかりません。 <こう解釈しました> ・ツリー外のモジュールのビルドを極力避けるためstable/oldstableのアップデートではABIを極力変更しません ・カーネルモジュールをビルドしなければならないようなABIの変更は必ずABI名を変更します ・カーネルモジュールをビルドする必要がないABIの変更の場合はABI名を変更しません ・ただし、ツリー外のモジュールが "その" 部分 (変更対象となるABIの一部) に依存していない場合を除きます で、素直に訳すとこんな感じになりました。 <p> 私達は、ユーザがツリー外のモジュールを頻繁にビルドする必要が無いよう、 Debian 安定版や旧安定版に対するアップデートでは、カーネルの ABI を変更しません。 最も重要なことは、ツリー外のモジュールが ABI のある部分に依存していないと 思われる場合を除き、ABI 名を変更せずにそのような変更を行うことを避ける ということです。 </p> 日本語がおかしいので助けてください。 <chapt id="versions"> <heading>バージョン番号と ABI</heading> <sect id="version-types"> 異なるバージョンのタイプ <!-- <p> <taglist> <tag>Upstream version</tag> <item> The version that Linus or a stable series maintainer uses for a release. Currently Linus will use the version format: 3.<var>x</var>[-rc<var>y</var>]. Stable series maintainers use the version format: 3.<var>x</var>.<var>y</var>. </item> <tag>Package version</tag> <item> The version used in a Debian package. Following Debian policy, it should follow the format <var>upstreamversion</var>-<var>debianrevision</var>. However, for an upstream release candidate, the string '-rc' must be replaced with '~rc' so that it will be recognised as an earlier version than the following release. </item> <tag>Kernel version</tag> <item> This is the version that appears in kernel messages, filenames, package names and the output of 'uname -r'. In official kernel packages it follows the format <var>upstreamversion</var>[-<var>abiname</var>][-<var>featureset</var>]-<var>flavour</var>. It is not changed for every new package version. The <var>abiname</var> is changed as explained below. </item> </taglist> </p> --> <p> <taglist> <tag>アップストリームバージョン</tag> <item> Linus や安定版のメンテナがリリースに使用するバージョンです。 現在 Linus はバージョンナンバに 3.<var>x</var>[-rc<var>y</var>] というフォーマット を使用しています。 安定版のメンテナはバージョンナンバに 3.<var>x</var>.<var>y</var>. というフォーマット を使用しています。 </item> <tag>パッケージバージョン</tag> <item> Debian パッケージで使用されるバージョンナンバDebian ポリシーによると、 <var>アップストリームのバージョン</var>-<var>Debian のリビジョン</var> というフォーマットに従う必要がります。しかし、アップストリームのリリース候補版で 使用される 「-rc」 は 「~rc」 で置き換える必要があります。これ以降にリリースされ るバージョンよりも前のバージョンであると認識させるためです。 </item> <tag>カーネルバージョン</tag> <item> これはカーネルメッセージ、ファイル名、パッケージ名、「uname -r」 コマンドで 出力されるバージョンナンバです。公式のカーネルパッケージでは <var>upstreamversion</var>[-<var>abiname</var>][-<var>featureset</var>]-<var>flavour</var> というフォーマットに従います。これは全ての新しいパッケージバージョンで 変わるものではありません。<var>abiname</var>は以下のルールに従い変更されます。 </item> </taglist> </p> <!-- <p> Many programs parse the kernel version string reported by the <tt>uname</tt> system call or command and expect to find at least 3 version components separated by dots. For compatibility, the official kernel packages currently add '.0' to the upstream version, but this will be dropped in wheezy+1. </p> --> <p> 多くのプログラムがカーネルバージョンを<tt>uname</tt>システムコールかコマンドから パースしますが、最低でも 3 つのバージョンのパーツがドットで区切られていることが 前提となっています。互換性のために、公式のカーネルパッケージは現在アップストリーム バージョンに「.0」を付けていますが、これは wheezy+1 (訳注:Wheezy の 次のバージョン Jessie) で廃止される予定です。 </p> </sect> <sect id="abi"> <!-- The kernel ABI --> カーネルの ABI <!-- <p> An ABI (Application Binary Interface) is an interface between two software components, considered at the level of register allocation and memory layout. The ABI between the kernel and user-space is generally maintained carefully, and is not a concern here. However, the ABI between the kernel and its modules is not. In order to support out-of-tree modules, the kernel version should be changed when the ABI between the kernel and modules changes. </p> --> <p> ABI (Application Binary Interface) はレジスタの割り当てやメモリのレイアウト のレベルで考慮されているソフトウェアコンポーネント間のインタフェースです。 カーネルとユーザ空間の間の ABI は定常的に注意深くメンテナンスされているため、 ここでは考慮する必要はありません。しかし、カーネルとカーネルモジュール間の ABI はその限りではありません。ツリー外のモジュールをサポートするためには、 カーネルとモジュール間の ABI に変更があるたびにカーネルバージョンを変更しなけ ればなりません。 </p> <sect1 id="abi-name"> <!-- The ABI name --> ABI 名 <!-- <p> In official kernel packages, we change the <var>abiname</var> part of the kernel version to mark ABI changes that aren't due to a new upstream version. This part comes from the <tt>abiname</tt> setting in <tt>debian/config/defines</tt>. We use either a number or 'trunk' (for experimental), but for a custom package it should be some other string. </p> --> <p> 公式のカーネルパッケージでは、私達はカーネルバージョン名の一部である <var>abiname</var>を変更します。これは、新しいアップストリームバージョン に起因しない ABI の変更をマークするためです。この部分は <tt>debian/config/defines</tt> 中の <tt>abiname</tt> の設定で管理されています。 私達は、この部分に 「trunk」(experimental 用) か番号を使用しますが、 カスタムパッケージにはそれ以外の文字列を使うべきです。 </p> </sect1> <sect1 id="abi-maintenance"> <!-- Maintaining and updating the ABI --> ABI の管理と更新 <!-- <p> In order to avoid the need for users to rebuild out-of-tree modules frequently, we try to avoid changing the kernel ABI during updates to a Debian stable or oldstable release. Most importantly, we avoid making such changes without changing the ABI name, except where it appears that out-of-tree modules do not depend on that part of the ABI. </p> --> <p> 私達は、ユーザがツリー外のモジュールを頻繁にビルドする必要が無いよう、 Debian 安定版や旧安定版に対するアップデートでは、カーネルの ABI を変更しません。 最も重要なことは、ツリー外のモジュールが ABI のある部分に依存していないと 思われる場合を除き、ABI 名を変更せずにそのような変更を行うことを避ける ということです。 </p> <!-- <p> Bug fixes or configuration changes to the kernel may alter the ABI. If an exported function is conditional on <tt>CONFIG_</tt><var>FOO</var>, or it uses a type whose definition depends on <tt>CONFIG_</tt><var>FOO</var>, then turning <tt>CONFIG_</tt><var>FOO</var> on or off changes the ABI of that function, and thus of the kernel as a whole. Enabling or changing the configuration of a single driver usually doesn't change the ABI, because most drivers don't export anything. </p> --> <p> カーネルへのバグ修正や設定の変更は ABI の変更をともなう場合があります。 もしエクスポートされた関数が <tt>CONFIG_</tt><var>FOO</var> を条件としているか、 もしくは型定義が <tt>CONFIG_</tt><var>FOO</var> に依存するものを使用している場合、 <tt>CONFIG_</tt><var>FOO</var> の有効無効によってその関数の ABI、 ひいてはカーネル全体の ABI が変更になります。 1 つのドライバの設定を有効化したり変更したりする場合、たいてい ABI は変更しません。 ほとんどのドライバは何もエクスポートしないからです。 </p> <!-- <p> The kernel build process generates a 'symbol version' for each exported function or variable. This is a hash of the definitions that it depends on, and should change whenever the function's ABI changes. The kernel module loader detects incompatible modules by comparing symbol versions. The whole set of symbol versions represents the kernel ABI. </p> --> <p> カーネルのビルドプロセスによって 、それぞれのエクスポートされた関数や変数用に 「シンボルバージョン」が生成されます。これは自身が依存している定義のハッシュで、 関数の ABI が変更された場合は必ず変更しなければなりません。 シンボルバージョンを比較することで、カーネルモジュールローダは非互換のモジュール を検出します。シンボルバージョンの完全なセットはカーネル ABI で表現されます。 </p> <!-- <p> We collect the symbol versions for previously uploaded packages under the directory <tt>debian/abi</tt> and then compare the new kernel with those. If the ABI name is unchanged but the ABI itself is changed - except for additions, or changes that we have marked as acceptable - then the build is aborted. </p> --> <p> 私達は以前アップロードした <tt>debian/abi</tt> ディレクトリ以下のパッケージの シンボルバージョンを修正し、新しいカーネルのものと比較します。もし ABI 名が 変更さないにも関わらず ABI そのものに変更がある場合は、ビルドを中止します。 </p> <!-- <p> If the kernel ABI has changed you must then change the ABI name in <tt>debian/config/defines</tt>. Then run the command <example> $ fakeroot debian/rules debian/control-real </example> to regenerate the package definitions for this ABI name. </p> --> <p> カーネル ABI が変更された場合は、<tt>debian/config/defines</tt> の ABI 名 を変更しなければなりません。それから、この ABI に対応したパッケージ定義を再生成する ために、<example> $ fakeroot debian/rules debian/control-real </example> コマンド を実行しましょう。 </p> </sect1> </sect> </chapt>
Attachment:
signature.asc
Description: Digital signature