home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
mdf160.zip
/
MDF_ESP.TXT
< prev
next >
Wrap
Text File
|
1995-11-12
|
18KB
|
441 lines
MDIFF - MPATCH
Versión 1.50
Un programa simple pero completo para producir y aplicar patches a
programas y archivos de datos para DOS, OS/2, Windows 95 y Windows NT.
Manual en idioma español.
(C) 1995/96 Maurizio Giunti - Todos los derechos reservados
1.INDICE
1.INDICE 2
2.GARANTIA 3
3.DISTRIBUCION Y USO 3
4.¿POR QUE? 3
5.¿QUE HACE MDIFF-MPATCH? 3
6.EJEMPLOS 3
7.DOS, OS/2, WINDOWS 95 Y WINDOWS NT 4
8.LIMITES Y ERRORES CONOCIDOS 4
9.MDIFF - MDIFF2 - MDIFFW 4
10.MPATCH - MPATCH2 - MPATCHW 5
11.MDF2EXE - MDF2EXE2 - MDF2EXEW 6
12.SUGERENCIAS 6
13.LIBRERIAS PARA APLICAR PATCHES 6
14.REGISTRANDO MDIFF 6
15.COMO CONTACTAR AL AUTOR 7
16.AGRADECIMIENTOS 7
2
2.GARANTIA
ESTE SOFTWARE Y LOS ARCHIVOS QUE LO ACOMPAÑAN SE VENDEN "COMO ESTAN" Y SIN
GARANTIA EN CUANTO A SU FUNCIONAMIENTO O COMERCIABILIDAD U OTRAS GARANTIAS
TANTO EXPLICITAS COMO IMPLICITAS.
La única garantía otorgada con este software es que ocupa espacio en su
disco. No se puede garantizar absolutamente que funcione perfectamente o
que sea la solución para su problema. Sin embargo, no es un virus y no
contiene (a menos que haya sido infectado o modificado después de la
compilación) troyanos, back-doors u otras basuras similares. En cada caso
el autor declina su responsabilidad directa o indirecta, por daños morales
o materiales que eventualmente puedan resultar de su uso.
3.DISTRIBUCION Y USO
Este software pertenece a la categoría de programas Shareware: por lo que
se puede copiar y utilizar libremente por un período de prueba de 15 días.
Después de este período el usuario que desee continuar utilizándolo debe
registrar su copia enviando el importe de la registración al autor,
Maurizio Giunti.
Los usuarios que paguen el importe de la registración recibirán una "clave
de registración" que contenga su nombre (o el de su empresa/organización
para licencias a empresas).
Este software puede ser distribuído sin costo alguno, exceptuando el cargo
eventual por gastos de copiado o transporte/flete.
De todos modos, es imperativo que se distribuya el PAQUETE ORIGINAL sin
modificación ALGUNA.
Unica excepción: se puede distribuir el programa MPATCH.EXE, MPATCH2.EXE
y/o MPATCHW.EXE con uno o más archivos *.MDF creados con una copia
REGISTRADA de MDIFF. Además se puede distribuir cualquier archivo
ejecutable producido con MDF2EXE.EXE, MDF2EXE2.EXE y MDF2EXEW.EXE que
contengan únicamente patches MDF creados con una copia registrada de
MDIFF.
El autor de este programa no reclama derechos sobre los patches *.MDF.
4.¿POR QUE?
Hace un tiempo tenía que distribuir una versión actualizada de un programa
mío: el paquete comprimido ocupaba más de 200 KB, y seguramente hubiera
sido más conveniente para todos actualizar el viejo ejecutable mediante
un patch. Me puse en búsqueda de un software que me permitiera crear y
distribuir un patch de mis programas para DOS y OS/2: para DOS encontré
algunos (pero ninguno me satisfizo por varios motivos); para OS/2 no
encontré ni uno! Por lo tanto, decidí hacer uno y... aquí está! 8-)
5.¿QUE HACE MDIFF-MPATCH?
MDIFF crea un archivo binario con las diferencias entre dos archivos. Con
MPATCH y el archivo original se puede recrear el nuevo archivo partiendo
del archivo de diferencias. Qué hay de bueno en todo ésto? Simple:
suponiendo que el archivo de diferencias sea más pequeño que el nuevo
archivo, es más conveniente distribuir sólo ésto, en lugar del archivo
completo, sobre todo si la distribución se hace por modem.
6.EJEMPLOS
Como un ejemplo puse en dos directorios de nombre VIEJO y NUEVO, el MDIFF
versión 1.45a (una versión alfa (de prueba) en progreso) y MDIFF 1.45
respectivamente:
Directorio de VIEJO\*.EXE
MDIFF.EXE 46602 16/08/95 21.01
Directorio de NUEVO\*.EXE
MDIFF.EXE 46602 21/08/95 00.45
3
C:\>mdiff VIEJO\MDIFF.EXE NUEVO\MDIFF.EXE
MDIFF V1.50 - MDF file generator (Dos)
(C) Copyright 1995/96 Maurizio Giunti
Registered to: MAURIZIO GIUNTI
VIEJO\MDIFF.EXE,NUEVO\MDIFF.EXE => MDIFF.MDF
Working...(100%) MDF size: 1215 bytes Rate: 2%
<Done!>
Directorio de *.MDF
MDIFF.MDF 1215 7/10/95 13.43
Ahora podemos aplicar el patch llamado MDIFF.MDF al archivo viejo para
reconstruir el nuevo:
C:\>mpatch MDIFF.MDF VIEJO\MDIFF.EXE
MPATCH V1.50 - MDF file applier (Dos)
(C) Copyright 1995/96 Maurizio Giunti
MDF file produced by: MAURIZIO GIUNTI
Working: 0% |###########| 100%
<Done!>
I obtain the following file:
Directorio de *.EXE
MDIFF.EXE 46602 21/08/95 0.41
que es el EQUIVALENTE a nivel BINARIO del nuevo archivo.
7.DOS, OS/2, WINDOWS 95 Y WINDOWS NT
MDIFF y MPATCH para DOS, OS/2 y Windows32 se obtienen a través de la
compilación del mismo fuente, por lo tanto, no existe ninguna diferencia
en la funcionalidad en el uso de los programas sobre los distintos
sistemas operativos. Además, los archivos *.MDF producidos con MDIFF para
DOS pueden ser utilizados con MPATCH para OS/2 o Windows32 y viceversa.
8.LIMITES Y ERRORES CONOCIDOS
MDIFF no puede trabajar con archivos de más de 16 MB y no puede procesar
archivos más pequeños que 20 veces el largo de un chunk.
Además, MDIFF para OS/2, habiéndose obtenido a través de una compilación
directa del fuente de MDIFF para DOS, no está capacitado para trabajar
con los atributos extendidos (EA) y simplemente se limitará a ignorarlos.
Además, si se construye un patch usando MDIFF para DOS u OS/2, al
aplicarlo usando MPATCH para Windows32 se obtendrá una fecha y hora
incorrecta en el nuevo archivo. Lo mismo sucede si se construye un patch
con MDIFF para Windows32 y se lo aplica con MPATCH para DOS u OS/2. Esto
error surge de una implementación distinta de la función utime() en los
compiladores de Microsoft y Borland.
9.MDIFF - MDIFF2 - MDIFFW
El programa MDIFF se ocupa de comparar dos archivos y de almacenar las
diferencias entre ellos en un tercer archivo que, generalmente, es mucho
más compacto. Esta es la sintaxis de la línea de comandos:
4
MDIFF [-C<c>] [-R<r>] [-F<f>] [-S] [-Z] [-P<pwd>] <OldFile> <NewFile>
[<MDFfile>]
<OldFile> es obviamente el nombre de la versión anterior del archivo a
comparar, mientras que <NewFile> es el nombre de la versión actual. Si es
necesario, se puede especificar el nombre del archivo de diferencias a
crear <MDFFile>; si no, MDIFF crea un archivo que tiene el mismo nombre
que <NewFile> pero con extensión ".MDF".
Para buscar las partes similares en los archivos MDIFF usa un string base
de largo predefinido de nombre chunk. El largo del chunk es de 16 bytes
por defecto, pero puede ser cambiado, en un rango 4-256, con el switch -C
seguido del largo deseado.
Cuando MDIFF pierde el sincronismo entre los dos archivos que está
comparando trata de resincronizarlos buscando el chunk que está elaborando
en el archivo viejo. Esa búsqueda se efectúa en un entorno del último
chunk encontrado, en el rango definido por el switch -R. Por defecto ese
rango es de 8 bloques de 512 bytes, pero puede variar entre 1 y 16.
Si esa búsqueda falla MDIFF trata de forzar ese sincronismo entre los dos
archivos buscando en un rango mayor, definido por 1/16 del tamaño del
archivo viejo. Esta segunda búsqueda puede ser deshabilitada o su rango
puede ser cambiado mediante el switch -F.
Especificando el switch -S, una vez terminada la operación, MDIFF arrojará
algunos datos acerca de la composición del archivo de diferencias.
También es posible, mediante el switch -Z, insertar en el archivo de
diferencias un breve comentario (con un máximo de 2 KB), que será
visualizado durante la aplicación del patch por parte de MPATCH. El
comentario se toma del dispositivo de entrada standard (stdin) y, por lo
tanto, puede ser tomado de un archivo usando el comando de redirección
"<".
Mediante el switch -P se puede proteger el patch con una clave de
acceso (<pwd>): aquel que no conozca la clave no podrá aplicar el patch.
Por favor tenga en cuenta que el campo de clave hace distinción entre
mayúsculas y minúsculas.
10.MPATCH - MPATCH2 - MPATCHW
Con el archivo anterior y el archivo de diferencias .MDF se puede
reconstruir el archivo nuevo usando MPATCH. Esta es la sintaxis de la
línea de comandos:
MPATCH [-P<pwd>] <MDFfile> [<OldFile> [<NewFile>]]
El único parámetro obligatorio es el nombre del archivo de diferencias
<MDFFile>, ya que el mismo contiene el nombre de los otros dos archivos,
pero es posible modificar esa imposición simplemente especificando los
nombres deseados en el orden correspondiente. MPATCH acepta sólo el
switch -P que permite especificar una eventual clave de acceso
necesaria para aplicar el patch.
En caso de error MPATCH retorna un errorlevel que debe ser interpretado
según la siguiente tabla:
0 "¡OK!"
1 "¡Memoria insuficiente!"
2 "¡No se puede abrir el archivo MDF!"
3 "¡Archivo MDF inválido!"
4 "¡Las versión del archivo MDF no coincide!"
5 "¡NO REGISTRADO!"
6 "¡Archivo VIEJO corrupto o incorrecto!"
7 "¡No se puede abrir el archivo VIEJO!"
9 "¡No se puede crear el archivo NUEVO!"
10 "¡Falla general: archivo NUEVO corrupto!"
11 "¡El archivo VIEJO y el NUEVO no pueden ser el mismo!"
12 "¡El archivo nuevo ya fue patcheado!"
13 "¡Clave de acceso incorrecta!"
5
11.MDF2EXE - MDF2EXE2 - MDF2EXEW
MDF2EXE es un simple programa que se ocupa de almacenar uno o más (hasta
127) archivos de patch MDF en un archivo ejecutable (DOS, OS/2 o
Windows32).
Este tipo de ejecutable se llama patch autoinstalable.
La sintaxis del programa MDF2EXE:
MDF2EXE <mdf_file 1> [<mdf_file 2>....<mdf_file n>] <exe_file>
Los distintos <mdf_file x> pueden contener "wildcards" (*,?); en este
caso MDF2EXE buscará automáticamente los archivos a insertar.
El archivo ejecutable creado (que DEBE tener extensión .EXE) podrá ser
ejecutado sin ningún parámetro en la línea de comandos y buscará
automáticamente los archivos a actualizar. Opcionalmente se puede
utilizar el switch -P para especificar la clave de acceso, o los switches
-V o -L para visualizar la lista de los patches contenidos en el archivo.
Advertencia: no se deben comprimir los patches autoinstalables con PKLite,
LZexe u otros programas de compresión/encriptación similares; de otro
modo, dejarán de funcionar.
12.SUGERENCIAS
El método óptimo para construir un archivo de diferencias sería el de
buscar en todo el archivo viejo los chunks que componen el nuevo archivo;
obviamente, ese método sería de una lentitud exasperante.
El algoritmo en que se basa MDIFF representa un compromiso entre resultado
y velocidad de ejecución, por eso conviene regular los parámetros de
funcionamiento de MDIFF mediante los switches correspondientes. Veamos
cómo actuar en algunas situaciones típicas:
1.Archivos con poquísimas modificaciones: es bueno utilizar un chunk muy
amplio (32, 64 o más) para reducir al máximo el tamaño del archivo de
diferencias, sobre todo si se está trabajando con archivos de texto o de
bases de datos.
2.Archivos de texto: cada tanto un chunk de largo 32 es el más indicado; es
conveniente probar de disminuir o eliminar el sincronismo forzado
mediante el switch -F.
3.Archivos ejecutables muy grandes: a menudo se obtienen resultados
mejores agrandando el rango de búsqueda del sincronismo mediante el
switch -R.
Un último consejo: no esperen milagros de MDIFF. Si los dos archivos
comparados son muy distintos el archivo de patch resultará muy grande. En
estos casos hay poco que hacer, y hay que resignarse a distribuir el nuevo
archivo entero. MDIFF es realmente útil sólo si el número de
modificaciones hechas a los archivos no es demasiado grande.
13.LIBRERIAS PARA APLICAR PATCHES
Incluído en este paquete encontrará un conjunto de librerías para crear
sus propios programas para aplicar patches. Estas librerías NO PUEDEN
aplicar patches MDF creados con una copia NO REGISTRADA de MDIFF.
Esto no significa que no sean completamente funcionales. Significa que
las librerías sólo pueden aplicar patches producidos por una copia
registrada de MDIFF.
14.COMO REGISTRARSE
Si registra MDIFF obtendrá una CLAVE DE REGISTRACION que contenga su
nombre (o el de su (o el de su empresa/organización para licencias a
empresas). Cuando produzca un patch con un MDIFF registrado, se grabará su
nombre en el patch y cuando MPATCH aplique los mismos mostrará su nombre.
Además, todo usuario registrado tiene autorización para distribuir
libremente MPATCH.EXE, MPATCH2.EXE y MPATCHW.EXE con cualquier archivo MDF
que haya creado. También se pueden distribuir libremente los patches
autoinstalables creados por usuarios registrados.
¡No se requiere el pago de royalties ni de cargos extras!
Incluído en el paquete de MDIFF encontrará un programa de registración
para Windows de nombre REGISTER.EXE. Por favor ejecútelo en el entorno
Windows.
6
REGISTER.EXE es una pequeña aplicación para Windows escrita por Grzegorz
(Greg) Kochaniak, que provee toda la información necesaria para comprar
MDIFF y que permite mandarla directamente al servicio Kagi Shareware por
correo postal, correo electrónico (e-mail) o fax. Si no usa Windows, por
favor contáctese conmigo.
Por cualquier información acerca de Kagi Shareware por favor lea el
archivo KAGI.TXT.
15.COMO CONTACTAR AL AUTOR
Por cualquier problema o pregunta puede contactarme en las siguientes
direcciones:
correo postal:
Maurizio Giunti
Via G.B. Foggini, 24
50142 Firenze (FI)
ITALY
e-mail:
Fidonet: 2:332/102.3
Internet: giunti@kagi.com
giunti@abeline.it
giunti@statsun.ds.unifi.it
16.AGRADECIMIENTOS
Querría agradecer brevemente a todos aquellos que me han ayudado en el
desarrollo de este software y de su documentación, y a aquellos que se
ofrecieron con coraje como beta-testers. En orden alfabético:
Mauricio Mello de Andreade
Andrea Baitelli
Silvia Borri
Juan Jose Comellas
Filippo Dini
Fabrizio Fioravanti
Cristiano Guidoccio
Giovanni Lopes Pegna
Marco Maccaferri
Marco Menichelli
Giuseppe Scarpi
Toni Tatafiore
Duncan Wilcox
7