Enlaces generados por autotools deben ser reemplazados antes de subir?
-
06-09-2019 - |
Pregunta
Mi pregunta principal es que los autotools enlaces creados para instalar, COPIAR, desaparecidos, install-sh, y depcomp. Cuando traté de verlos vi que se cargan como enlaces por lo que los reemplazó con los archivos reales por lo que se pueden ver. Me estoy perdiendo algo fundamental? Cuando desempaqueto mi archivo gz de 'make dist' esto es lo que parece:
árbol de distribución (menos Fuente Directorios)
-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
Estoy pensando en la eliminación de los README_developers y haciendo dos secciones en el README. También estoy buscando en la eliminación de la run.sh y profile.sh y hacerlos parte de un blanco de prueba de maquillaje (un poco de lectura requerido). No creo que un elemento de TODO pertenece en la distribución fuente, pero tal vez está bien tener en el árbol de código fuente del proyecto. Cualquier punteros adicionales más allá de la cuestión enlaces es apreciado.
Solución
Respuesta corta: dejando a los enlaces simbólicos (excepto INSTALAR) sería fingido conformidad con GNU estándares de codificación .
Por defecto automake realizar la comprobación de la conformidad con los estándares de GNU (Requiere los siguientes archivos de existir: INSTALAR, NOTICIAS, README, COPIA, los autores y los Cambios). Uno puede convertir en la comprobación (y quitar con seguridad algunos de esos archivos) al pasar a la opción --foreign automake (hacerlo edición autogen.sh y volver a ejecutarlo).
Los enlaces se crean cuando se invoca con automake --add-desaparecida opciones, que a no ser que se le dio la opción de --copy crea enlaces simbólicos para la falta de archivos en lugar de copiarlos. Esto es con el fin de mantener los archivos (en realidad sólo INSTALAR) hasta la fecha cada vez que instale más reciente automake. Regerding respuesta de Jonathan esos enlaces simbólicos no son un problema: todos archivos distribuidos se copian al directorio separado antes de hacer tar. Cambiarlos a los archivos regulares si quieres editarlos.
Otros archivos (README_developers, run.sh, profile.sh, TODO
etc.) y fueron generadas por el IDE está utilizando y se añade a
EXTRA_DIST
variable en la parte superior Makefile.am. Es posible eliminarlos de
distribución por EXTRA_DIST
edición y luego también se puede quitar
ellos desde la fuente.
El resto se genera automáticamente por autoconf y automake:
- aclocal.m4
- autom4te.cache
- configure
- depcomp
- install-sh
- Makefile.in
- faltante
Si desea eliminar el desorden aún más su directorio de origen cima se puede añadir
AC_CONFIG_AUX_DIR([scripts])
a configure.ac. De esta manera algunos de los scripts
encontrarán su lugar en el directorio scripts
.
Actualización:
Los estándares de codificación de GNU limitan a describir el requisito de los archivos de documentación para estar presente en la distribución y lo información debe ser incluida allí. La opción --add-falta es a recordarle programador qué archivos deben ser escritos. Obviamente tener vacía NOTICIAS o autores archivo no hacer el proyecto más conformes a las normas.
Sólo fichero de cambios tienen requisitos en su formato .
En algunos proyectos de registro de cambios se genera automáticamente a partir adecuadamente
formated los mensajes de confirmación. En Darcs es simplemente darcs changes >ChangeLog
.
Si utiliza Subversion puede mirar en: svn2log , svn2cl .
Como se mencionó INSTALAR archivo podría ser razonable para mantener como enlace simbólico pero sólo si no hay información específica del proyecto necesaria sobre la instalación (Es decir, no hay argumentos adicionales script configure en etc.).
Otros consejos
El archivo TODO puede ir en la distribución; es una indicación de que los consumidores de las cosas que usted piensa que son deficientes en el producto, y son un puntero a los posibles contribuyentes a zonas en las que tal vez podrían ayudar a mejorar el producto. (También, si se cayó debajo de un autobús, que ayudaría a otras personas asumen el control utilizando el material de liberación en curso.)
Podría ser vale la pena utilizar un subdirectorio para mantener la mayor parte del material de configuración.
En cuanto a su pregunta principal - eran los archivos de 'enlaces' o 'enlaces simbólicos'? Los enlaces simbólicos son menos útiles para el envasado a menos que se diga de alquitrán (GNU) para seguir de todos modos ( '-h
' o '--dereference
'). Si los únicos enlaces simbólicos son a esos archivos, que trabaja; si utiliza enlaces simbólicos en la distribución en sí, puede ser más contraproducente.