Para ello pego está chuleta con la que podremos crear un parche. Pasos;
- Puedes trabjar con CVS o subversion pero tambien puedes tener el directorio original y una copia donde realizaras tus modificaciones.
[root@logadmin etc]# ll samba-3.0.24
samba-3.0.24/ samba-3.0.24-MOD/
- Realiza las modificaciones necesarias en el código (en este ejemplo, simplemente he hecho alguna modificación -sin sentido- para mostrarlo de una manera práctica. Simplemente he cambiado algunos mensajes de debug de inglés a castellano en el archivo
vi samba-3.0.24-MOD/source/smbd/password.c - Una vez hechas las modificaciones necesarias, creamos nuestro parche con:
LC_ALL=C TZ=GMT0 diff -Naur samba-3.0.24/source/smbd/password.c samba-3.0.24-MOD/source/smbd/password.c
Explicación de los parámetros:
La variable de entorno LC_ALL configura el escenario para el comando diff, concretamente, nos aseguramos que todas las traducciones o formatos locales como fecha, hora o similares no serán relevantes en la máquina del usuario.
La variable TZ con el valor GMT0 se asegura que la hora y fecha de la salida de diff estan en "hora universal" para tener las fechas y horas configuradas correctamente en los archivos de patch.
Estas dos opciones se deben principalmente a la peculiaridad de los proyectos Open Source, donde desarrolladores de todo el mundo pueden colaborar. :)
Las opciones de diff son:
-N En la comparación de directorio si un archivo se encuentra en un sólo directorio lo tratará como está, y vacío en el otro directorio (esta opción aunque la pongo por defecto en este caso concreto con dos ficheros únicamente no es necesario)
-a trata todos los archivos como texto y los comparará línea a línea.
-u usará la salida de format unificada, incluirá algún contexto sobre las diferencias que ayudarán a "patch" a encontrar el lugar exacto para aplicar los cambios.
-r cuando se comparen directorios, usa una búsqueda recursiva en los subdirectorios.
[root@logadmin etc]# LC_ALL=C TZ=GMT0 diff -Naur samba-3.0.24/source/smbd/password.c samba-3.0.24-MOD/source/smbd/password.c
--- samba-3.0.24/source/smbd/password.c 2007-02-04 18:59:13.000000000 +0000
+++ samba-3.0.24-MOD/source/smbd/password.c 2007-05-21 06:58:47.000000000 +0000
@@ -276,7 +276,7 @@
vuser->user.unix_name, vuser->user.smb_name,
vuser->user.domain, vuser->guest ));
- DEBUG(3, ("User name: %s\tReal name: %s\n", vuser->user.unix_name,
+ DEBUG(3, ("Nombre de usuario: %s\tReal name: %s\n", vuser->user.unix_name,
vuser->user.full_name));
if (server_info->ptok) {
@@ -688,7 +688,7 @@
BOOL ok = False;
#ifdef DEBUG_PASSWORD
- DEBUG(100,("authorise_login: checking authorisation on "
+ DEBUG(100,("authorise_login: comprobando autorizacion en "
"user=%s pass=%s\n", user,password.data));
#endif
- La salida de este comando la puedes redirigir a un fichero que habrás nombrado con algo signficativo de la acción que realiza.
Existen multitud de proyectos open source que esperan tu ayuda.
4 comentarios:
simple y eficiente post :), muy bueno
Gracias blaxter, de eso se trata :)
Lo mismo digo. Las dos variables que has puesto antes del diff no las conocía
Impresionante, gracias.
Publicar un comentario