home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
mdf160.zip
/
MDF_ITA.TXT
< prev
next >
Wrap
Text File
|
1997-01-11
|
18KB
|
466 lines
MDIFF - MPATCH
Release 1.60
Un software semplice ma completo per produrre e applicare patch a
programmi e file di dati per Dos, OS/2, Windows95 e WindowsNT.
Manuale in lingua italiana.
(C) 1997/98 Maurizio Giunti - Tutti i diritti riservati
1.SOMMARIO
1.SOMMARIO 2
2.GARANZIE 3
3.USO E DISTRIBUZIONE 3
4.PERCHE' 3
5.A COSA SERVE 3
6.ESEMPIO 4
7.DOS, OS/2, WINDOWS 95 E WINDOWS NT 4
8.LIMITI E BUG NOTI 4
9.MDIFF - MDIFF2 - MDIFFW 5
10.MPATCH - MPATCH2 - MPATCHW 5
11.MDF2EXE - MDF2EXE2 - MDF2EXEW 6
12.ALCUNI CONSIGLI 6
13.LIBRERIE PER APPLICARE PATCH 7
14.COME REGISTRARSI 7
15.COME CONTATTARE L'AUTORE 7
16.RINGRAZIAMENTI 8
2
2.GARANZIE
QUESTO SOFTWARE E I FILE CHE LO ACCOMPAGNANO SONO DISTRIBUITI COSI' COME
SONO, E SENZA GARANZIE DI FUNZIONAMENTO O QUALUNQUE ALTRA GARANZIA.
L'unica garanzia fornita con questo software è che occupa spazio su
disco. Non posso assolutamente garantire che funzioni perfettamente o
rappresenti la soluzione di ogni vostro problema. Sono inoltre sicuro che
non è un virus e non contiene (a meno che non sia stato infettato o
modificato dopo la compilazione) Trojan-Horses, Back-Doors o altre
diavolerie simili. In ogni caso l'autore declina ogni responsabilità
diretta o indiretta, per eventuali danni morali o materiali derivanti
dal suo uso.
3.USO E DISTRIBUZIONE
Questo software appartiene allo Shareware, ciò significa che chiunque può
liberamente distribuirlo e può usarlo gratuitamente per un periodo di
prova di 15 giorni. Dopo tale periodo gli utenti che continueranno ad
usarlo devono registrare la loro copia mandando il contributo richiesto
all'autore, Maurizio Giunti.
Gli utenti così registrati riceveranno un "codice di registrazione" che
conterrà il loro nome (o il nome della loro impresa in caso di site
license).
Questo software può essere liberamente distribuito ma gratuitamente,
salvo le spese di copia e spedizione.
E' imperativo che il pacchetto originale che contiene il software sia
distribuito senza alcuna modifica.
Gli utenti registrati potranno distribuire liberamente MPATCH.EXE,
MPATCH2.EXE e MPATCHW.EXE insieme a uno o più file *.MDF prodotti con la
loro copia registrata di MDIFF. Inoltre gli utenti registrati potranno
liberamente distribuire patch auto installanti create con MDF2EXE.EXE,
MDF2EXE2.EXE e MDF2EXEW.EXE, che contengano solo file *.MDF realizzate
con una copia registrata di MDIFF.
In ogni caso i file di patch *.MDF create da MDIFF possono essere
liberamente distribuiti, l'autore di MDIFF non reclama alcun diritto su
di essi.
4.PERCHE'
Qualche tempo fa dovevo rilasciare una versione aggiornata di un mio
programma: il pacchetto compresso "pesava" più di 200 Kbyte, e sarebbe
stato sicuramente più conveniente per tutti aggiornare il vecchio
eseguibile tramite una patch. Mi misi in caccia di un software che mi
permettesse di creare e distribuire patch dei miei programmi per Dos e
OS/2: per Dos ne ho trovati alcuni (ma non mi hanno soddisfatto per vari
motivi), per OS/2 neanche uno! Ho quindi deciso di farmene uno
e....eccolo qui ! 8-)
5.A COSA SERVE
MDIFF crea un file binario di differenza tra due file. Con MPATCH e il
vecchio file si può ricreare il nuovo file partendo dal file di
differenza. Cosa c'è di buono in tutto ciò? Semplice: supponendo che il
file di differenza sia più breve del nuovo file, è più conveniente
distribuire solo quello invece di tutto il file, soprattutto se la
distribuzione avviene via modem.
3
6.ESEMPIO
A titolo di esempio ho messo in due directory chiamate OLD e NEW
rispettivamente MDIFF.EXE release 1.45a (una release intermedia sulla
quale stavo lavorando) e MDIFF.EXE release 1.45 definitiva:
Directory of OLD\*.EXE
MDIFF.EXE 46602 16/08/95 21.01
Directory of NEW\*.EXE
MDIFF.EXE 46602 21/08/95 00.45
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%
<Done!>
Directory of *.MDF
MDIFF.MDF 1215 7/10/95 13.43
Adesso possiamo applicare la patch MDIFF.MDF al vecchio eseguibile per
ricostruire quello nuovo:
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%
<Done!>
Ottenendo il seguente file:
Directory of *.EXE
MDIFF.EXE 46602 21/08/95 0.41
che è identico al file MDIFF.EXE che della directory NEW.
7.DOS, OS/2, WINDOWS 95 E WINDOWS NT
MDIFF e MPATCH per Dos, OS/2 e Windows sono ottenuti tramite la
compilazione dei medesimi sorgenti, quindi non c'è alcuna differenza
nella funzione e nell'uso di tali programmi sui vari sistemi operativi.
Inoltre i files *.MDF prodotti con MDIFF per Dos possono essere
utilizzati con MPATCH per OS/2 o Windows32 e viceversa.
8.LIMITI E BUG NOTI
MDIFF non può trattare files più ampi di 16 Megabyte o più piccoli di 20
volte la lunghezza del chunk settata.
4
Dato che MDIFF per OS/2, è ottenuto tramite una compilazione diretta dei
sorgenti di MDIFF per Dos, non è in grado di trattare gli attributi
estesi, quindi si limiterà ad ignorarli.
Inoltre se si costruisce un file di patch con MDIFF per Dos o OS/2 e si
applica con MPATCH per Windows32 (o viceversa) il file che si otterrà
avrà la data errata; ciò dipende da una diversa implementazione della
funzione utime() nei compilatori Borland e Microsoft.
9.MDIFF - MDIFF2 - MDIFFW
Il programma MDIFF si occupa di comparare due files e di immagazzinare le
differenze tra di essi in un terzo file che, generalmente, è molto più
compatto. Vediamo come si usa:
MDIFF [-C<c>] [-R<r>] [-F<f>] [-S] [-Z] [-P<pwd>] <OldFile> <NewFile>
[<MDFfile>]
<OldFile> ovviamente è il nome della versione precedente del file da
comparare, mentre <NewFile> è il nome della versione attuale. Se
necessario si può specificare il nome del file di differenza da creare
<MDFfile>, altrimenti MDIFF crea un file che ha lo stesso nome di
<NewFile> ma estensione ".MDF". Per cercare le parti simili nei files,
MDIFF si serve di una stringa base di lunghezza predefinita detta chunk.
La lunghezza del chunk per default viene scelta automaticamente ma può
essere impostata (in un range 4-1024) con lo switch -C seguito dalla
lunghezza voluta. Quando MDIFF perde il sincronismo tra i due files che
sta confrontando, cerca di ritrovarlo scandendo il vecchio file alla
ricerca del chunk che sta elaborando. Tale ricerca viene effettuata, in
un intorno dell'ultimo chunk trovato, nel range definito dallo switch -R.
Per default tale range è di 8 blocchi di 512 byte, ma può variare tra 1 e
16. Se tale ricerca fallisce MDIFF cerca di forzare il sincronismo
cercando in un raggio più ampio di quello definito solitamente ampio 1/16
della lunghezza del file. Questa seconda ricerca può essere disabilitata
o il suo range può essere cambiato tramite lo switch -F. Specificando lo
switch -S, alla fine dell'operazione, MDIFF fornirà alcuni dati sulla
composizione del file di patch.
E' inoltre possibile, tramite lo switch -Z, inserire nel file di
differenza un breve commento (al massimo 2 Kbyte), che sarà visualizzato
durante l'applicazione della patch da parte di MPATCH. Il commento viene
prelevato direttamente dallo standard input e quindi può essere o
digitato o prelevato da un file tramite l'apposito comando di redirezione
"<".
Tramite lo switch -P si può proteggere la patch con una password (<pwd>):
chi non conosce tale password non potrà applicare la patch.
10.MPATCH - MPATCH2 - MPATCHW
MDIFF sarebbe un programma inutile se non esistesse MPATCH. Infatti
MPATCH si occupa, dati <OldFile> e <MDFfile>, di ricreare <NewFile>.
Vediamo come si usa:
MPATCH [-P<pwd>] <MDFfile> [<OldFile> [<NewFile>]]
L'unico parametro necessario è il nome del file di differenza <MDFfile>
perchè esso contiene i nomi degli altri due file, ma è possibile
modificare tale impostazione semplicemente specificando i nomi voluti
5
nell'esatto ordine. MPATCH ha il solo switch -P che permette di
specificare una eventuale password necessaria per applicare la patch.
In caso di errore MPATCH ritorna un errorlevel che deve essere
interpretato secondo la seguente tabella:
Codice Descrizione
0 "OK!"
1 "Out of memory !"
2 "Can't open MDF file !"
3 "Invalid MDF file !"
4 "MDF file version mismatch !"
5 "UNREGISTERED !"
6 "Bad or incorrect OLD file !"
7 "Can't open OLD file !"
8 "Can't create NEW file !"
9 "General failure: NEW file corrupted !"
10 "OLD and NEW can't be the same file !"
11 "NEW file was already patched ! "
12 "Wrong password !"
11.MDF2EXE - MDF2EXE2 - MDF2EXEW
MDF2EXE si occupa di trasformare un file di patch *.MDF creato con MDIFF
in un file ESEGUIBILE autoinstallante per Dos (MDF2EXE), OS/2 (MDF2EXE2)
o Windows95/WindowsNT (MDF2EXEW).
Il file così creato conterrà al suo interno il programma di installazione
e un certo numero di file di patch (al massimo 127).
La sintassi per creare una patch autoinstallante è:
MDF2EXE <mdf_file 1> [<mdf_file 2>....<mdf_file n>] <exe_file>
I vari <mdf_file x> possono contenere anche wildcard, in questo caso
MDF2EXE crchera' automaticamente i files da inserire.
Il file eseguibile creato (che DEVE avere estensione .EXE) potrà essere
avviato senza alcun parametro sulla linea di comando e cercherà
automaticamente i file da aggiornare. Opzionalmente può essere utilizzato
lo switch -P per specificare una password oppure gli switch -V o -L per
visualizzare la lista delle patch contenute nel file.
Un'unica nota: non comprimete le patch autoinstallanti con PKLite, LZExe
o altri software simili, altrimenti esse cesseranno di funzionare.
12.ALCUNI CONSIGLI
Il metodo ottimale per costruire un file di differenza sarebbe quello di
ricercare per tutto il vecchio file i chunks che compongono il nuovo
file; ovviamente tale metodo sarebbe di una lentezza esasperante.
L'algoritmo su cui è basato MDIFF rappresenta un compromesso tra
risultato e velocità di esecuzione, per questo è talvolta opportuno
regolare i parametri di funzionamento di MDIFF tramite gli appositi
switch. Vediamo come comportarsi in alcune situazioni tipiche:
1. File con pochissime modifiche: è opportuno utilizzare un chunk molto
ampio (32, 64 o più) in modo da ridurre il più possibile le dimensioni
del file di differenza, soprattutto se si sta lavorando con files di
testo o con archivi.
2. File di testo: di solito un chunk di dimensione 32 è il più indicato, è
opportuno provare a diminuire o togliere il sincronismo forzato
tramite lo switch -F.
6
3. File eseguibili molto ampi: spesso si ottengono risultati migliori
allargando il range di ricerca del sincronismo tramite lo switch -R.
Un ultimo consiglio: non attendetevi miracoli da MDIFF. Se i due file
confrontati sono molto dissimili il file di patch risulterà molto ampio.
In questi casi c'è ben poco da fare, bisogna rassegnarsi a distribuire il
nuovo file interamente. MDIFF è realmente utile solo se il numero delle
modifiche apportate ai file non è troppo grande.
13.LIBRERIE PER APPLICARE PATCH
Fino alla release 1.50 nel pacchetto di distribuzione di MDIFF erano
incluse alcune librerie per realizzare programmi per applicare patch.
Tali librerie non sono più distribuite. Al loro posto è invece possibile
ordinare (vedi cap. 14) i sorgenti in linguaggio C di un programma di
esempio per applicare patch prodotte da una copia registrata di MDIFF.
14.COME REGISTRARSI
Registrando MDIFF otterrete un "codice di registrazione" che contiene il
vostro nome (o il nome della vostra impresa in caso di site license).
Producendo una patch con una copia registrata di MDIFF nel file *.MDF
risultante verrà incluso tale nome, in questo modo al momento in cui la
patch verrà applicata MPATCH potrà mostrare il nome di chi ha realizzato
la patch stessa.
Inoltre gli utenti registrati sono autorizzati a distribuire liberamente
MPATCH.EXE, MPATCH2.EXE e MPATCHW.EXE insieme alle patch *.MDF da essi
prodotte, e a distribuire ogni patch auto installante che contenga solo
file *.MDF prodotti con la loro copia registrata di MDIFF.
Per registrare MDIFF dovrete utilizzare il programma REGISTER.EXE che
troverete nel pacchetto di distribuzione. REGISTER.EXE è una applicazione
per Windows scritta da Grzegorz (Greg) Kochaniak che si occupa di
raccogliere interattivamente tutte le informazioni necessarie per
richiedere la registrazione di MDIFF, e a prepararle per spedirle via
Posta, TeleFAX o e-mail alla Kagi Shareware. Se non siete utenti Windows
contattatemi.
Per qualunque informazioni sui servizi di Kagi Shareware vi invito a
leggere il file KAGI.TXT o a esplorare il seguente URL:
http://www.kagi.com/
15.COME CONTATTARE L'AUTORE
Se avete qualche domanda potete contattarmi ai seguenti indirizzi:
Posta:
Maurizio Giunti
Via G.B. Foggini, 24
50142 Firenze (FI)
ITALY
e-mail:
Fidonet: 2:332/102.3
Internet: giunti@kagi.com
URL: http://www.kagi.com/authors/giunti/
7
16.RINGRAZIAMENTI
Vorrei brevemente ringraziare gli amici che mi hanno aiutato nello
sviluppo di questo software e della documentazione allegata, o che si
sono coraggiosamente offerti come beta-testers. In ordine alfabetico:
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
8