第2章 Debian カーネルソース

目次

2.1. 素のカーネルソースへの変更
2.2. Debian カーネルパッチ
2.3. パッチ受入れのポリシー

2.1. 素のカーネルソースへの変更

Debian のカーネルはバイナリ形式で配布されており、 Debian カーネルソースからビルドされます。Debian カーネルソースは (大抵の場合)www.kernel.orgとそのミラーで配布されているアップストリームの (または "素" の) カーネルソースとは異なる可能性があるということを認識しておきましょう。ライセンスの制約により、不明確なライセンス情報や Debian フリーソフトウェアガイドライン (DFSG) に合致しないカーネルのパーツは Debian アーカイブの main セクションから除外されます。この除外プロセスを経て linux_version.orig.tar.xz の tarball ができます。これはオリジナルのアップストリームソースとして提供されます。version は実際のアップストリームのバージョンです。

ファームウェアを除外するガイドラインが一般決議: "Linux Kernel のソースが無いファームウェアの扱いについて で採択され、 リリースマネージャによって 基本方針表明 が行われました。バージョン 2.6.31-1 以降、ソースが無いファームウェアは全て Debian パッケージから削除されましたが、多くは firmware-nonfree パッケージに収録されています。ファームウェアのライセンス情報と、削除に関連した追加の情報は Debian WikiKernelFirmwareLicensing の項目を参照して下さい。

2.2. Debian カーネルパッチ

Debian のバイナリ形式のカーネルをビルドするためのソースはlinux_version.orig.tar.xzから入手したソース (このソースは問題のある箇所を除外した素のカーネルソースです) にDebian パッチを当てることで手に入ります。 これらのパッチは深刻なバグやセキュリティホールに対する必須の修正が実装されているものがほとんどです。Debian の カーネルパッケージは version-revision というフォーマットになっており、このversionはアップストリームのカーネルバージョン (例えば 3.2.20等) を、revisionはパッチレベルをあらわします。たとえば、3.2.20-1 というバージョンナンバは linux_3.2.20.orig.tar.xz のソースにパッチレベル 1 のパッチが当たっているという意味になります。特定のパッケージには、アップストリームのソースには入っていない rt のようなオプション機能が組込まれている場合があります。

2.3. パッチ受入れのポリシー

Debian カーネルチームの基本となるポリシーは、パッチはバグを修正するものかハードウェアのサポートを追加するものでなければならないことと、アップストリームのカーネルメンテナによってすでに受入れられた変更にもとづいていなければならないことです。ただし、この変更はアップストリームのリリースに含まれている必要はありません。このポリシーにより、次のアップストリームバージョンへ移行する際に、増え続ける Debian 特有のパッチをメンテナンスし続けることなく、ほとんどのパッチを捨てることができます。オプション機能を提供するパッチを取込んでもらうためには、まずアップトリームのメンテナにパッチを投げてみましょう。