it-swarm-ja.com

Ubuntu:彼らはバニラソースに何をしているのですか?

間違っている場合は訂正してください

私の知る限り、Debian/Ubuntu/Fedoraのようなディストリビューションは通常、パッケージを作成する前にVanillaソースコードを変更します。これらの変更の背後にある理由は何ですか?元のソースに問題はありますか?変更のリストと特定のパッケージに加えられた変更の理由を取得するにはどうすればよいですか?

助けてくれてありがとう!

12
user5210
apt-get source package

2つまたは3つのファイルを取得します:「元の」tarball(変更されることもありますが、まれに...唯一の変更はファイル名であることがよくあります)-*。orig.tar.gzという名前で、debianは* .diffの形式で変更されます.gzファイルといくつかのメタデータ。 .diff.gzファイルが欠落している場合があります。これは、パッケージがdebian/ubuntu専用にビルドされ、debianアーカイブのアップロードを管理するdakなどの非常に特殊なディストリビューション作業を処理することを意味します。その後、すべてのコードは元のtarballに含まれます。

理由は複数あります。ソフトウェアのバグを修正する(アップストリームが望まない場合)、ソフトウェアをDebianに適合させる(ファイルパスを調整するなど)。 Debianは、すべてのパッケージが FileSystem Hierarchy Standard に準拠することを望んでおり、これは非常に一般的な調整です。

元のtarballは、パッケージの問題のために作成されたアップストリームと同じでない場合があります。プログラムが複数のtarballで配布されているのを見たのを覚えていますが、実行可能ファイルは1つしか生成されませんでした。Debianメンテナーは、tarされたアップストリームtarballで構成される独自の「オリジナル」tarballを作成することにしました。もう1つの理由は、Debianメンテナがバイナリファイルをパッケージに追加することを決定した場合です。バイナリを.diff.gzファイル内に配置するのは難しいため、元のtarballが変更されます(これは通常、パッケージのドキュメントに明確に記載されています)。

時々(非常にまれに)ライセンスが問題になります。一部のライセンスが原因で、アップストリームが影響を理解していないか、理解したくない場合があります。 Debianはすべてのライセンス問題を解決したいので、debianパッチが特定のことを行うか、元のtarballが違法に配布されたファイルから削除されることがあります。

また、一部のコンテンツは、使用はできるが配布はできないようにライセンスされている場合があります。通常(例:msttcorefontsflashplugin-nonfree)debianパッケージは、パッケージのインストーラーの一種にすぎず、パッケージ内に元のコンテンツはありません。

pineパッケージも興味深いものです。ライセンスでは、コンパイルされたフォームの配布が禁止されているからです。したがって、pineバイナリパッケージはありませんが、pineソースパッケージはあります。上記のコマンドを使用してダウンロードし、自分でdebianパッケージにコンパイルできます。

18
liori

その理由はおそらくメンテナやパッケージと同じくらい多くあります。私は通常、彼らがソフトウェアを変更して、ディストリビューション内の他のソフトウェアとよりよく統合したり、「公式」バージョンにない機能を追加したりしていると思います。

コマンドラインでSudo apt-get source PACKAGENAMEと入力すると、ソース(およびubuntu固有の差分)を取得できます。バニラソースとパッケージの差分を現在のディレクトリにダウンロードします。それらは通常、ソースにいくつかのコメントも含みます。

2
Kim

このように考えてください。 ./configure; make; make installを介して元のソースtarballからプログラムをインストールした場合でも、まだやるべきことがいくつかあります。メニューエントリを作成したり、設定ファイルを設定したりする必要があります。 ./configure--prefixを与える必要があるかもしれません。ディストロメンテナの変更は、多くの場合、これらのありふれたタスクの自動化にすぎません。

1