MDIFF - MPATCH Release 1.50 Simples mas completo este programa produz e aplica patches em seus programas e arquivos de dados para Dos, OS/2, Windows95 e WindowsNT. Manual em Portuguˆs(Brasileiro) (C) 1995/96 Maurizio Giunti - Todos os Direitos Reservados 1.INDICE 1.INDICE 2 2.DISCLAIMER OF WARRANTY 3 3.DISTRIBUI€AO E USO 3 4.PORQUE? 3 5.O QUE O MDIFF-MPATCH FAZEM? 3 6.EXAMPLO 3 7.DOS, OS/2, WINDOWS 95 E WINDOWS NT 4 8.LIMITES E BUGS CONHECIDOS 4 9.MDIFF - MDIFF2 - MDIFFW 4 10.MPATCH - MPATCH2 - MPATCHW 5 11.MDF2EXE - MDF2EXE2 - MDF2EXEW 6 12.SUGEST™ES 6 13.BIBLIOTECAS PARA APLICAR PATCHES 6 14.REGISTERANDO O MDIFF 6 15.COMO CONTACTAR O AUTHOR 7 16.AGRADECIMENTOS 7 2 2.GARANTIA Esse software e os arquivos que o acompanham sao vendidos como estao, sem garantias de performance de vendas ou nenhuma outra garantia, implicita ou explicita. A unica garantia que acompanha esse software eh que ele ocupara espaco de disco. Eu absolutamente NAO posso garantir que ele funcionara perfeitamente ou que ele sera a solucao dos seus problemas. No entanto ele nao eh um virus e nao contem (a menos que infectado ou modificado apos a compilacao) "cavalos de troia", acessos escusos nem armadilhas similares. De qualquer forma, o autor nao eh responsavel por nenhum dano, moral ou material, direto ou indireto, derivado do seu uso. 3.DISTRIBUI€ŽO E USO Este software ‚ um programa Shareware : todos podem distribui-lo e usa-lo por um periodo de avalia‡„o de 15 dias. Ap¢s este periodo, os usu rios que desejarem continuar usando o programa, precisam registra-lo junto ao seu autor, Maurizio Giunti. Os usu rios registrados, receber„o a sua "key de registro" que cont‚m seu nome (ou da empresa/organiza‡„o no caso de licen‡a de site). Este software pode ser distribuido livrimente sem cisto, exceto no caso de custos de c¢pia/envio. imperativo que seja sempre distribuido o PACOTE original sem qualquer modifica‡„o. Esta ‚ a unica exece‡„o: vocˆ pode distribuir o MPATCH.EXE, MPATCH2.EXE e/ou MPATCHW.EXE com um ou mais arquivos *.MDF produzidos com uma c¢pia REGISTERADA do MDIFF. Tamb‚m pode ser distribuido qualquer executavel produzido com o MDF2EXE.EXE, MDF2EXE2.EXE e MDF2EXEW.EXE que contenha SOMENTE patches MDF criados com uma c¢pia registrada do MDIFF. Sobre os patches *.MDF o autor deste programa n„o reclama direitos. 4.PORQUE? A alguns meses atr s, eu atualizava um programa meu: desde que o pacote compactado tivesse 200 Kbytes, Eu pensei que seria ¢timo usar patch, mas Eu n„o pude encontrar um programa que me satisfizesse pata fazer e aplicar patches. Adcionalmente, n„o encontrei nada que rodasse sob DOS e OS/2. Eu decidi fazer meu software de patch e.....aqui est  ele ! 8-) 5.O QUE O MDIFF-MPATCH FAZEM? MDIFF cria arquivos de diferen‡a binaria entre dois arquivos. Com MPATCH e o velho arquivo vocˆ pode criar o novo arquivo usando o arquivo de diferen‡a. Qual ‚ a vantagem? Usualmente o arquivo de diferen‡a ‚ menor e de mais f cil distribui‡„o, especialmente via modem. 6.EXAMPLO Como exemplo, Eu pus em dois diret¢rios chamados OLD e NEW, respectivamente MDIFF.EXE release 1.45a (um trabalho em progresso vers„o alpha) e MDIFF.EXE release 1.45: Diret¢rio de OLD\*.EXE MDIFF.EXE 46602 16/08/95 21.01 Diret¢rio de NEW\*.EXE MDIFF.EXE 46602 21/08/95 00.45 3 C:\>mdiff OLD\MDIFF.EXE NEW\MDIFF.EXE MDIFF V1.50 - MDF file generator (Dos) (C) Copyright 1995/96 Maurizio Giunti Registered to: MAURIZIO GIUNTI OLD\MDIFF.EXE,NEW\MDIFF.EXE => MDIFF.MDF Working...(100%) MDF size: 1215 bytes Rate: 2% Diret¢rio de *.MDF MDIFF.MDF 1215 7/10/95 13.43 Agora, n¢s podemos aplicar o patch chamado MDIFF.MDF no arquivo velho e obter o novo a partir dele : C:\>mpatch MDIFF.MDF old\MDIFF.EXE MPATCH V1.50 - MDF file applier (Dos) (C) Copyright 1995/96 Maurizio Giunti MDF file produced by: MAURIZIO GIUNTI Working: 0% |###########| 100% Eu obtenho o seguinte arquivo: Diret¢rio de *.EXE MDIFF.EXE 46602 21/08/95 0.41 com o BINARIO IGUAL ao novo arquivo. 7.DOS, OS/2, WINDOWS 95 E WINDOWS NT Eu usualmente crio MDIFF e MPATCH para Dos, OS/2 e Windows32 s¢ compilando o mesmo fonte, sem NENHUMA diferen‡a entre eles. Tamb‚m os arquivos de diferen‡a produzidos com MDIFF para Dos podem ser usados com MPATCH para OS/2 ou Windows32 e viceversa. 8.LIMITES E BUGS CONHECIDOS MDIFF n„o pode trabalhar com arquivos maiores que 16 Mbytes e nao processa arquivcos 20 veses menores que o corrente "chunk length". Desde que o fonte ‚ o mesmo para o MDIFF Dos, o MDIFF OS/2 n„o reconhece Atributos Extendidos: simplismente os ignora. Tamb‚m se vocˆ cria patches com o MDIFF para Dos ou OS/2, e vocˆ aplicar com MPATCH para Windows32 e viceversa, se vocˆ cria patches com MDIFF para Windows32 e aplicar com MPATCH para Dos ou OS/2, vocˆ vai obter uma data e hora errada para o novo arquivo. Este bug depende de uma implementa‡„o diferente da fun‡„o utime() nos compiladores da Borland and Microsoft. 9.MDIFF - MDIFF2 - MDIFFW MDIFF comparra 2 arquivos e grava as diferen‡as entre eles num aqruivo de diferen‡a. Esta ‚ a sintaxe de linha de comando: 4 MDIFF [-C] [-R] [-F] [-S] [-Z] [-P] [] ‚ o nome do arquivo antigo, ‚ o nome do novo arquivo. Se vocˆ quiser, pode especificar o nome do arquivo de diferen‡a que o MDIFF produzir , sen„o o MDIFF criar  um arquivo com o mesmo nome do novo arquivo, por‚m com a extens„o ".MDF". Para procurar as diferen‡as entre arquivos, MDIFF usa uma string base de tamanho definido chamada "Chunk". O tamanho do Chunk por default ‚ de 16 bytes, mas vocˆ pode mud -lo, a faixa ‚ de 4-256, com a chave -C seguida do tamanho desejado. Quando o MDIFF perde o sincronismo entre os dois arquivos comparados, ele busca o arquivo velho pelo chunk corrente. Esta busca ‚ executada, por default, numa faixa de 8 blocos de 512 bytes cada. Vocˆ pode mudar o n£mero de blocos procurados, numa faixa de 1-16, com a chave -R seguida pelo n£mero desejado de blocos. Se esta busca falha, MDIFF tenta frocar o sincronismo com uma faixa de busca maior. Esta faixa ‚ definida como 1/16 do tamanho do arquivo antigo, mas vocˆ pode mudar isto com a chave -F na linha de comando. Se Vocˆ especificar a chave -S, MDIFF ir  prover alguma informa‡”es sobre a composi‡„o do arquivo de diferen‡a. Tamb‚m vocˆ pode adicionar ao arquivo de diferen‡a um pequeno coment rio (max. 2 Kbytes) para ser mostrado quando o patch for aplicado, usando a chave -Z . MDIFF pega o coment rio do input standard, vocˆ pode digitar diretamente ou redireciona-lo de um arquivo com o comando "<". Vocˆ pode proteger o patch com uma password usando a chave -P seguida da password. Note que a password e case sensitive. 10.MPATCH - MPATCH2 - MPATCHW Com o arquivo antigo e o arquivo .MDF, vocˆ pode criar o novo arquivo com o MPATCH. Esta ‚ a sintaxe de linha de comando: MPATCH [-P] [ []] MPATCH precisa apenas do nome do arquivo MDF () porque ele cont‚m os nome dos dois outros arquivos, mas ‚ poss¡vel sobrepor esses nomes especificando os nomes na linha de comando. MPATCH tem apenas a chave -P para que vocˆ possa especificar a paddword (caso exista). Se algunm erro acontecer durante a aplica‡„o do patch, MPATCH retorna um errorlevel como abaixo: 0 "OK!" 1 "Sem mem¢ria !" 2 "N„o pode abrir o arquivo MDF !" 3 "Arquivo MDF inv lido !" 4 "Vers„o do arquivo MDF incomp tivel !" 5 "UNREGISTERED !" 6 "Arquivo ANTIGO incorreto ou ruim !" 7 "N„o pode abrir o arquivo ANTIGO !" 8 "N„o pode criar o NOVO arquivo !" 9 "Falha geral: NOVO arquivo corrompido !" 10 "Velho e NOVO arquivo nŽo podem ser os mesmos !" 11 "NOVO arquivo j  sofreu patch !" 12 "Password errada !" 5 11.MDF2EXE - MDF2EXE2 - MDF2EXEW MDF2EXE ‚ um utilit rio simples que p”e um ou mais (mais de 127) arquivos de patch MDF criados pelo MDIFF, em um execut vel (Dos, OS/2 ou Windows32). Isto permite que a simples chamada do execut vel, instale os patches. A sintaxe do MDF2EXE ‚: MDF2EXE [....] Onde pode conter wildcards. O (PRECISA ter a extens„o .EXE) ser  executado sem nenhum parametro na linha de comando. Ele ir  automaticamente procurar e fazer os updates necess rios. Eventualmente voce poder  usar a chave -P para especificar a password ou as chaves -V ou -L para listar os patches que fazem parte do arquivo. Aten‡„o: N„o comprima o arquivo self-extract com o PKLite ou LZexe ou outro programa similar de compress„o/encripta‡„o. 12.SUGESTOES O melhor metodo de aplicar os arquivos de diferen‡a e procurar o chunks do novo arquivo dentro do antigo arquivo, mas isto ‚ muito lento para fazer ! o algoritimo do MDIFF tenta fazer um diff pequeno para melhorar isto; as veses ‚ necess rio que vocˆ mude os parametros da linha de comando para ajudar tamb‚m. Veja esta solu‡”es tipicas: 1. Arquivos muito pequenos: use um chunk grande (32, 64 ou mais) para redizir o tamanfo do arquivo diff, em particular de arquivos que contem arquivos texto ou compactados. 2. Arquivos texto: tente usaar um chunk de 32, algumas veses ‚ melhor que desligue o sync for‡ado or reduza este sync com a chave -F. 3. Execut veis muito grandes: tente usar uma faixa de resync grande (16 ou mais),com a chave -R. Lembre-se: MDIFF n„o faz milagers! Se dois arquivos s„o muito diferentes, o patch ser  um arquivo muito grande. Nesta situa‡„o, talvez seja vantagem distribuir o novo arquivo. MDIFF ‚ £til apenas quanto a quantidade de altera‡”es ‚ limitada. 13.BIBLIOTECAS PARA APLICAR PATCHES Incluido neste pacote, vocˆ encontrar  um set completo de bibliotecas para fazer seu programa de aplicar patches. Estas bibliotecas NŽO aplicam patches gerados com uma c¢pia UNREGISTERED do MDIFF. Ou seja estas bibliotecas somente aplicam patches gerados com uma vers„o registrada do MDIFF. 14.REGISTRANDO O MDIFF Registrando o MDIFF vocˆ obter  sua KEY DE REGISTRO que conter  o seu nome (ou da firma/organiza‡„o para site-licenses). Quando vocˆ produzir um patch com o MDIFF registrado, ele gravar  seu nome no patch. Quando o MPATCH for instalar seus patches, seu nome ser  mostrado. Tamb‚m qualquer usu rio registrado tem a permiss„o de distribuir livremente o MPATCH.EXE, MPATCH2.EXE e MPATCHW.EXE com qualquer MDF preparado pelo usu rioa. Qualquer patch self-extract produzido por um usu rio registrado, pode ser distribuido livremente. Nenhum royalty ou taxa extra ‚ requerido! Incluso no pacote do MDIFF vocˆ ir  encontrar um programa de registro for Windows chamado REGISTER.EXE. Por favor, rode-o de DENTRO do Windows. 6 REGISTER.EXE ‚ uma pequena aplica‡„o Windows escrita por Grzegorz (Greg) Kochaniak, que provˆ as informa‡”es para comprar o MDIFF e permite que vocˆ envie diretamente para o Kagi Shareware service por snail mail, e-mail ou fax. Se vocˆ n„o usa Windows, Por favor, me contacte. Para informa‡”es sobre Kagi Shareware por favor leia o arquivo KAGI.TXT. 15.COMO CONTACTAR O AUTOR Para qualquer problema ou pergunta, vocˆ pode me contactar no seguinte endere‡o: snail mail: 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.AGRADECIMENTOS Eu gostaria de agrade‡er a quem me ajudou a desenvolver este software, escrever a documenta‡„o e a todos que ajudaram-me como beta-testers. Em ordem alfabetica: 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