0

私の主な質問は、autotools が INSTALL、COPYING、missing、install-sh、および depcomp へのリンクを作成したことです。それらを表示しようとすると、リンクとしてアップロードされていることがわかったので、実際のファイルに置き換えて表示できるようにしました。基本的な何かが欠けていますか?「make dist」から gz ファイルを解凍すると、次のようになります。

配布ツリー (マイナス ソース ディレクトリ)

-rw-r--r-- 1 ojblass ユーザー 18591 2009-05-30 03:23 Makefile.in
-rwxr-xr-x 1 ojblass ユーザー 136168 2009-05-30 03:20 構成
drwxr-xr-x 3 ojblass ユーザー 4096 2009-05-30 03:20 autom4te.cache
-rw-r--r-- 1 ojblass ユーザー 32230 2009-05-30 03:20 aclocal.m4
-rw-r--r-- 1 ojblass ユーザー 251 2009-05-30 03:20 configure.ac
-rw-r--r-- 1 ojblass ユーザー 626 2009-05-30 03:11 作者
-rwxr-xr-x 1 ojblass ユーザー 120 2009-05-30 03:11 autogen.sh
-rw-r--r-- 1 ojblass ユーザー 737 2009-05-30 03:11 ChangeLog
-rw-r--r-- 1 ojblass ユーザー 35147 2009-05-30 03:11 コピー
-rwxr-xr-x 1 ojblass ユーザー 17867 2009-05-30 03:11 depcomp
-rwxr-xr-x 1 ojblass ユーザー 199 2009-05-30 03:11 example.pl
-rwxr-xr-x 1 ojblass ユーザー 152 2009-05-30 03:11 example.sh
-rw-r--r-- 1 ojblass ユーザー 9512 2009-05-30 03:11 インストール
-rwxr-xr-x 1 ojblass ユーザー 13620 2009-05-30 03:11 install-sh
-rw-r--r-- 1 ojblass ユーザー 215 2009-05-30 03:11 Makefile.am
-rwxr-xr-x 1 ojblass ユーザー 11135 2009-05-30 03:11 行方不明
-rw-r--r-- 1 ojblass ユーザー 75 2009-05-30 03:11 ニュース
-rwxr-xr-x 1 ojblass ユーザー 507 2009-05-30 03:11 profile.sh
-rw-r--r-- 1 ojblass ユーザー 2605 2009-05-30 03:11 README
-rw-r--r-- 1 ojblass ユーザー 201 2009-05-30 03:11 README_developers
-rwxr-xr-x 1 ojblass ユーザー 382 2009-05-30 03:11 run.sh
-rw-r--r-- 1 ojblass ユーザー 481 2009-05-30 03:11 TODO
-rwxr-xr-x 1 ojblass ユーザー 117 2009-05-30 03:11 便利な.sh

README_developers を削除し、README に 2 つのセクションを作成する予定です。また、run.sh と profile.sh を削除して、make テスト ターゲットの一部にすることも検討しています (いくつかの読み取りが必要です)。TODO アイテムがソース ディストリビューションに属しているとは思いませんが、プロジェクトのソース ツリーに含まれていても問題ないかもしれません。リンクの質問を超えた追加のポインターは大歓迎です。

4

2 に答える 2

2

簡単な回答: これらのシンボリック リンク (INSTALL 以外) を残すと、GNU コーディング標準への準拠を偽装することになります。

デフォルトでは、automake は GNU 標準への準拠をチェックします (次のファイルが必要です: INSTALL、NEWS、README、COPYING、AUTHORS、および ChangeLog)。automake に --foreign オプションを渡すことで、そのチェックをオフにする (そしてそれらのファイルの一部を安全に削除する) ことができます (そのためには、autogen.sh を編集して再実行します)。

--add-missing オプションを指定して automake が呼び出されたときにリンクが作成されました。 --copy オプションが指定されていない限り、不足しているファイルをコピーするのではなく、それらのシンボリック リンクを作成します。これは、新しい automake をインストールするたびに、これらのファイル (実際には INSTALL のみ) を最新の状態に保つためです。Jonathan の回答に関して、これらのシンボリック リンクは問題ではありません。すべての配布ファイルは、tarball を作成する前に別のディレクトリにコピーされます。編集する場合は、通常のファイルに変更してください。

他のファイル (README_developers、run.sh、profile.sh、TODO など) はおそらく、使用している IDE によって生成され EXTRA_DIST、最上位の Makefile.am の変数に追加されたものです。それらを編集して配布からEXTRA_DIST削除することも、後でソースから削除することもできます。

残りは autoconf と automake によって自動的に生成されます:

  • aclocal.m4
  • autom4te.cache
  • 構成、設定
  • depcomp
  • インストール-sh
  • Makefile.in
  • ない

最上位のソース ディレクトリをさらに整理したい場合は AC_CONFIG_AUX_DIR([scripts])、configure.ac に追加できます。このようにして、一部のスクリプトがscriptsディレクトリ内の場所を見つけます。

アップデート:

GNU コーディング標準は、これらのドキュメント ファイルがディストリビューション内に存在するための要件と、そこに含まれるべき情報を記述しているだけです。--add-missing オプションは、どのファイルを書き込む必要があるかをプログラマーに思い出させるためのものです。NEWS ファイルや AUTHORS ファイルが空であっても、プロジェクトが標準に準拠したものになるわけではありません。

ChangeLog ファイルのみが、その形式に厳密な要件があります。一部のプロジェクトでは、適切な形式のコミット メッセージから ChangeLog が自動的に生成されます。Darcs では、単純にdarcs changes >ChangeLog. Subversion を使用している場合は、次を参照してください: svn2logsvn2cl

前述のように、INSTALL ファイルはシンボリック リンクとして保持するのが合理的かもしれませんが、インストールに関して必要なプロジェクト固有の情報がない場合 (つまり、追加の構成スクリプト引数がない場合など) に限られます。

于 2009-06-04T11:16:03.027 に答える
1

TODO ファイルはディストリビューションに入れることができます。これは、製品に欠陥があると思われるものを消費者に示すものであり、製品の改善に役立つ可能性のある分野への潜在的な貢献者へのポインタです. (また、バスに落ちた場合は、他の人が現在のリリース マテリアルを使用して引き継ぐのに役立ちます。)

サブディレクトリを使用して、構成資料の大部分を保持する価値がある場合があります。

あなたの主な質問に関して-ファイルは「リンク」または「シンボリックリンク」でしたか?-hシンボリック リンクは、(GNU) tar にシンボリック リンクをたどるように指示しない限り (' ' または ' ') 、パッケージングにはあまり役に立ちません--dereference。それらのファイルへのシンボリックリンクのみがあれば、それは機能します。ディストリビューション自体でシンボリック リンクを使用すると、逆効果になる可能性があります。

于 2009-06-04T05:10:47.590 に答える