Gnulib(グニューリブ)は、様々な
オペレーティングシステム間でのプログラムの移植性を高め、アプリケーションコードの共有を促進することを目的とした、基礎的な関数群を提供する
ソースコードライブラリです。
現在、Gnulibは30を超えるパッケージを含んでおり、これらのパッケージは、異なるプラットフォーム間でプログラムを動作させる上で必要な、共通の機能を提供します。特に、
UNIX環境で開発されたアプリケーションをWindows環境へ移植する際に、その効果を発揮します。
従来の
ライブラリは、
バイナリ形式のオブジェクトコードとして配布・利用されることが一般的ですが、Gnulibは
ソースコードライブラリとして提供される点が大きな特徴です。このため、Gnulibを利用するパッケージは、Gnulibの
ソースコードを組み込んだ状態で配布する必要があります。この組み込み作業を容易にするため、`gnulib-tool`というスクリプトが用意されており、これを用いて各パッケージの状況に合わせてカスタマイズを行うことが可能です。
また、Gnulibは、Autoconfのスクリプト`configure.ac`から`gl_XX`という形で呼び出し設定を行うことができます。これにより、Gnulibの機能をAutoconfを利用したビルドシステムに容易に統合できます。
Gnulibには、従来のソフトウェアのようなバージョン番号という概念が存在しません。そのため、各パッケージのメンテナーは、必要に応じてGnulibの
リポジトリから最新のコードを取得し、自身のパッケージに組み込む必要があります。この継続的な更新により、常に最新の機能と修正が利用可能になる一方、メンテナーは最新の状態を維持する責任を負うことになります。
Gnulibは、その設計思想から、柔軟性と移植性を重視する開発者にとって非常に価値のあるツールです。
ソースコードライブラリとして提供されるため、個々のニーズに合わせたカスタマイズが可能であり、複数のプラットフォームをターゲットとするソフトウェア開発において、コードの再利用性を大きく向上させることができます。
関連項目
Autotools
Gnulibのホームページ
外部リンク(Gnulibを取り込んだパッケージ)
*
the virtualization API