Les liens générés par autotools doivent être remplacés avant de le télécharger?

StackOverflow https://stackoverflow.com/questions/929425

  •  06-09-2019
  •  | 
  •  

Question

Ma question principale est que les autotools créé des liens à installer, COPIER, manquant, installez-sh et depcomp. Quand j'ai essayé de les voir, j'ai vu qu'ils ont été téléchargés sous forme de liens, donc je les ai remplacés par des fichiers réels pour qu'ils soient visibles. Suis-je manque quelque chose de fondamental? Quand je déballe mon fichier gz de make dist 'c'est ce qu'il ressemble à:

Arbre de distribution (moins Annuaires Source)

-rw-r--r-- 1 ojblass users  18591 2009-05-30 03:23 Makefile.in
-rwxr-xr-x 1 ojblass users 136168 2009-05-30 03:20 configure
drwxr-xr-x 3 ojblass users   4096 2009-05-30 03:20 autom4te.cache
-rw-r--r-- 1 ojblass users  32230 2009-05-30 03:20 aclocal.m4
-rw-r--r-- 1 ojblass users    251 2009-05-30 03:20 configure.ac
-rw-r--r-- 1 ojblass users    626 2009-05-30 03:11 AUTHORS
-rwxr-xr-x 1 ojblass users    120 2009-05-30 03:11 autogen.sh
-rw-r--r-- 1 ojblass users    737 2009-05-30 03:11 ChangeLog
-rw-r--r-- 1 ojblass users  35147 2009-05-30 03:11 COPYING
-rwxr-xr-x 1 ojblass users  17867 2009-05-30 03:11 depcomp
-rwxr-xr-x 1 ojblass users    199 2009-05-30 03:11 example.pl
-rwxr-xr-x 1 ojblass users    152 2009-05-30 03:11 example.sh
-rw-r--r-- 1 ojblass users   9512 2009-05-30 03:11 INSTALL
-rwxr-xr-x 1 ojblass users  13620 2009-05-30 03:11 install-sh
-rw-r--r-- 1 ojblass users    215 2009-05-30 03:11 Makefile.am
-rwxr-xr-x 1 ojblass users  11135 2009-05-30 03:11 missing
-rw-r--r-- 1 ojblass users     75 2009-05-30 03:11 NEWS
-rwxr-xr-x 1 ojblass users    507 2009-05-30 03:11 profile.sh
-rw-r--r-- 1 ojblass users   2605 2009-05-30 03:11 README
-rw-r--r-- 1 ojblass users    201 2009-05-30 03:11 README_developers
-rwxr-xr-x 1 ojblass users    382 2009-05-30 03:11 run.sh
-rw-r--r-- 1 ojblass users    481 2009-05-30 03:11 TODO
-rwxr-xr-x 1 ojblass users    117 2009-05-30 03:11 usefull.sh

Je prévois sur l'élimination des README_developers et de faire deux sections dans le README. Je cherche également à éliminer les run.sh et profile.sh et les faisant partie d'une cible make test (une lecture obligatoire). Je ne pense pas qu'un élément TODO appartient dans la distribution source, mais peut-être il est normal d'avoir dans l'arbre source du projet. Tous les pointeurs supplémentaires ci-dessus et au-delà de la question des liens est apprécié.

Était-ce utile?

La solution

Réponse courte: Leaving ces liens symboliques (autres que INSTALL) serait conformité truquée GNU standards de codage .

Par automake par défaut pour effectuer un contrôle de la conformité aux normes GNU (EXIGE des fichiers suivants existent: INSTALLER, NOUVELLES, README, COPIES AUTEURS, et ChangeLog). On peut tourner de cette vérification (et supprimer en toute sécurité certains de ces fichiers) en passant l'option --foreign à automake (pour le faire modifier autogen.sh et réexécuter).

Les liens ont été créés lorsque automake a été appelé avec --add-manquant des options qui, à moins --copy option a été donnée crée des liens symboliques pour les fichiers manquants plutôt que de les copier. Ceci afin de maintenir les fichiers (en fait installer uniquement) jusqu'à ce jour chaque fois que vous installez plus récent automake. Regerding réponse de Jonathan ces liens symboliques ne sont pas un problème: tous les fichiers distribués sont copiés dans le répertoire séparé avant de tarball. Changez-les fichiers réguliers si vous voulez les modifier.

D'autres fichiers (README_developers, run.sh, profile.sh, TODO etc.) ont probablement été générés par l'IDE que vous utilisez et ajouté à EXTRA_DIST variable dans Makefile.am haut. Vous pouvez les retirer de la distribution par l'édition EXTRA_DIST et ensuite vous pouvez également supprimer les de la source.

Le reste est généré automatiquement par autoconf et automake:

  • aclocal.m4
  • autom4te.cache
  • configure
  • depcomp
  • install-sh
  • Makefile.in
  • manquant

Si vous souhaitez désencombrer davantage votre répertoire source haut, vous pouvez ajouter AC_CONFIG_AUX_DIR([scripts]) à configure.ac. De cette façon, quelques-uns des scripts trouveront place dans le répertoire de scripts.

Mise à jour:

Les normes de codage GNU décrivent simplement l'exigence de ceux les fichiers de documentation à être présents dans la distribution et ce informations devraient y être inclus. L'option --add-manquante est programmeur rappeler quels fichiers doivent être écrits. De toute évidence, avoir vide fichier NOUVELLES ou AUTEURS ne sera pas rendre le projet plus conforme à la norme.

Seul fichier ChangeLog ont sur son format . Dans certains projets ChangeLog est généré automatiquement à partir correctement formated engager des messages. Sur Darcs il est tout simplement darcs changes >ChangeLog. Si vous utilisez Subversion vous pouvez consulter: svn2log , svn2cl .

Comme mentionné fichier INSTALL pourrait être raisonnable de garder le lien symbolique mais seulement s'il n'y a pas d'information spécifique du projet nécessaire sur l'installation (À savoir pas d'arguments de script de configuration supplémentaires, etc.).

Autres conseils

Le fichier TODO peut aller dans la distribution; il est une indication aux consommateurs des choses que vous pensez sont déficients dans le produit, et ils sont un pointeur vers des contributeurs potentiels aux zones où ils pourraient peut-être aider à améliorer le produit. (De plus, si vous êtes tombé dans un bus, cela aiderait d'autres personnes prennent le relais en utilisant le matériel de la version actuelle.)

Il pourrait être intéressant d'utiliser un sous-répertoire pour la plus grande partie du matériel de configuration.

En ce qui concerne votre question principale - étaient des liens «les fichiers ou « liens symboliques »? Les liens symboliques sont moins utiles pour l'emballage à moins que vous dites (GNU) tar de les suivre de toute façon ( « -h » ou « --dereference »). Si les seuls liens symboliques à ces fichiers, qui fonctionne; si vous utilisez des liens symboliques dans la distribution elle-même, il peut être plus contre-productif.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top