maintainer.txt: Notas generales para el directorio de configuraciones, root/configs. 'root' se refiere al nivel superior del árbol de linuxcnc en git. ------------------------------------------------------- El directorio config contiene una jerarquía de configuraciones, cada una con uno o más archivos ini, que están destinadas a: 1) ejecutarse tal cual en una compilación RIP (ejecución en el lugar) 2) ejecutarse cuando se copia al directorio de usuario ~/linuxcnc por el selector de configuración (pickconfig.tcl) Nota: Casos especiales. Cualquier archivo llamado _panelui.ini es ignorado Adicionalmente, los scripts de demostración identificados por un archivo con extensión .demo, puede ejecutarse de forma independiente para mostrar funcionalidades relacionadas con linuxcnc sin necesidad de arrancar linuxcnc. Un directorio configs no debe contener archivos .ini y .demo a la vez. Se ofrecen directorios para aplicaciones .demo por defecto para copiar a un directorio de usuario. Algunas aplicaciones no son útiles al copiarlas por lo que un directorio que contiene archivos .demo (y no archivos .ini) no se copiarán si el directorio incluye un archivo llamado 'nodemocopy'. Cuando se crea un acceso directo de escritorio para una aplicación .demo copiada, el acceso directo ejecutará el archivo .demo. El entorno para archivos ejecutados por archivos .desktop es limitado, por lo que se debe tener un cuidado especial para garantizar que un acceso directo de escritorio creado para un archivo .demo sea utilizable. ------------------------------------------------------- El selector de configuración (pickconfig.tcl) recorre las configuraciones _de usuario_ existentes en ~/linuxcnc/configs y /configs del directorio raíz de la distribución. Presenta ambas configuraciones existentes; configuraciones de usuario y de muestra. Cuando se selecciona una configuración de muestra, el selector de configuración: 1) crea un directorio en ~/linuxcnc/configs para el elemento seleccionado y copia todos los archivos y directorios relevantes al directorio recién creado. Cuando se produce una duplicación de nombres, el selector agrega un número al nombre del directorio para que sea distinto. 2) crea un directorio ~/linuxcnc/nc_files (si no existe). Crea enlaces en este directorio a las ubicaciones de ejemplos y bibliotecas en el sistema (examples, ngcgui_lib, gladevcp_lib) 3) edita todos los archivos ini que se copian haciendo que [DISPLAY]PROGRAM_PREFIX = ~/linuxcnc/nc_files. Un proceso similar ocurre para los archivos de demostración (.demo) cuando se copian los directorios de los archivos .demo (solo cuando no hay ningún archivo con el nombre 'nodemocopy'). La mayoría de los scripts de demostración de propósito general pueden ser localizados en el directorio root/configs/apps y su subdirectorios. ------------------------------------------------------- Un directorio de configuración puede contener subdirectorios. Si un subdirectorio contiene un archivo con un sufijo .ini o .demo, se considera un directorio de configuración seleccionable y se incluirá en el árbol de selección proporcionado por el selector de configuraciones. Los subdirectorios requeridos para otros fines no deben contener archivos con sufijo .ini o .demo. Cuando un subdirectorio requiere recursos de otro archivo o directorio que son compartidos por otras configuraciones, debería usar un enlace simbólico al archivo o directorio padres. El selector de configuraciones copia el archivo o directorio al que hace referencia el enlace simbólico. De esta manera, el uso de enlaces simbólicos reduce el número de archivos reales en el árbol git. ------------------------------------------------------- Se anticipa la reubicación ocasional de directorios de configuración dentro del árbol root/configs. Para minimizar la edición de archivos requeridos para tales movimientos, se aplican las siguientes pautas: Es posible que los archivos .ini deban hacer referencia a los recursos de root/nc_files. El caso más común, [DISPLAY]PROGRAM_PREFIX, se maneja como se describió anteriormente. Otros ejemplos incluyen elementos de ruta como: [RS274NGC]SUBROUTINE_PATH = [RS274NGC]USER_M_PATH = Los elementos como estos deben referirse a ../../nc_files y usar enlaces simbólicos apropiados dentro del directorio de configuración. Ejemplo: Una configuración llamada: root/configs/sim/axis/ngcgui podría, por ejemplo, referirse a: [RS274NGC]SUBROUTINE_PATH = ../../nc_files/ngcgui_lib:../../nc_files/ngcgui_lib/utilitysubs El directorio root/configs/sim debe contener un enlace simbólico: root/configs/sim/nc_files --> ../../nc_files para que la referencia del archivo ini funcione en compilaciones RIP. Estas convenciones funcionan porque: 1) Las configuraciones de usuario copiadas tienen configuraciones ubicadas en --------- ~/linuxcnc/configs/ y nc_files ubicados como ------------------- ~/linuxcnc/nc_files/ Así que si los archivos ini siempre se refieren a root/nc_files como ../../nc_files no requerirán modificaciones cuando se copien a directorios de usuarios ni cuando se muevan dentro del árbol de distribución 2) Los enlaces simbólicos generalmente requieren hacer que ../../nc_files resuelva a root/nc_files (para uso RIP). Debido a esto, los enlaces simbólicos para nc_files nunca se copian a los directorios de usuario. -------------------------------------------------------- Cualquier directorio de configuración puede incluir un archivo llamado mantainer.txt para incluir comentarios o detalles sobre el mantenimiento de la configuración. Estos archivos no serán copiados al directorio de configuración del usuario.