Gauche:Translation:Devlog:ありゃりゃ - gauche-package リグレッション

Gauche:Translation:Devlog:ありゃりゃ - gauche-package リグレッション

原文


Gauche 0.9.4 を使用して新しい拡張パッケージを書き始める人のために警告します。 gauche-package generate によってスケルトンファイルを作成するときは、動作させるために生成されたファイルを微調整する必要があります。

詳細に入る前に、何をすべきかについてだけ説明します。

スケルトンファイルを生成後、;; Output 行の直後に 次のものを追加するよう configure スクリプトを編集してください。

(use gauche.package)
(let1 gpd-file #"~(cf$ 'PACKAGE_NAME).gpd"
  (with-output-to-file gpd-file
    (cut write-gauche-package-description
      (make <gauche-package-description>
        :name (cf$ 'PACKAGE_NAME)
        :version (cf$ 'PACKAGE_VERSION)
        :configure (string-join (command-line))))))

そして Makefile.in において、このパッチに示すように maintainer-clean ターゲットのルールから設定を削除して下さい。

  maintainer-clean : clean
-       rm -rf $(CONFIG_GENERATED) configure VERSION
+       rm -rf $(CONFIG_GENERATED) VERSION

では説明します。

Gauche の拡張をビルドするための autoconf ベースの設定を置き換えようと、新しい gauche.configure モジュールが 0.9.4 には同梱されています。

Autoconf はしっかりとしたシステムですが、最小限の環境で configure スクリプトを動作させようとすると大変な努力を行います。 そうするためには、 configure.ac などから configure スクリプトを生成するという開発者にとって余分な手間が必要です。 それらが欠けているプラットフォームに基本的なツールを配布するためには合理的です。

しかし、 Gauche の拡張機能をインストールする場合、インストール先のプラットフォームには既に Gauche がインストールされていることがわかっていますので、 configure スクリプトは、最小限のシェル機能に制限する必要はありません。 実際、 Gauche スクリプトとして configure スクリプト自体を記述し、他のファイルから configure スクリプトを生成することで開発者のための手間を排除することが出来ます。

今日では、ますます多くのプロジェクトが、配布用 tarball を作成する手間をかけず、リポジトリから直接プルするように勧めています。 生成するかわりに configure スクリプトをソースとして用意することは、 autoconf を実行するようユーザーに要求しないという利点があります。

だから私は、デフォルトのスケルトンファイルを新しい configure 機能へと移行しました。 ですが、上記のように、私はいくつかの点をカバーするのを忘れていました。

.gpd ファイルは、拡張パッケージのメタデータを維持するためのものです。 古いスケルトン configure.ac ファイルでは、 gauche-package make-gpd を呼び出すことによって生成されます。 私の計画は Gauche の次のバージョンで、 gauche.configure 内に簡単なAPIを提供することです。

そしてもちろん、私たちはもはや maintainer-clean で configure を削除する必要がありません!

autoconf は gauche.configure が対抗できないほどの包括的機能テストを持っています。 高度な機能テストを必要とする場合でも、 autoconf ベースの設定を使用することができます。 gauche-package generate に --autoconf のオプションを与えるだけで、 configure.ac が得られます。

gauche-package generate --autoconf YOUR-PACKAGE-NAME

Last modified : 2014/07/21 10:07:23 UTC