V1.9
(10. offizielles Release für DOS, Win95, NT, OS/2 und Linux am
3.9.97)
1. Was ist BinPatch?
2. Die Lizenz
3. Was leistet BinPatch konkret?
4. Wozu ist BinPatch sonst noch einsetzbar?
5. Anforderungen
6. Registrierung
7. Bezugsquellen
8. Distributionen
9. History
10. Geplante Features
11. Kurzanleitung
12. Tips&Tricks
13. Mögliche Probleme
14. Besonderheiten je Plattform
15. Bugreports
16. Danksagungen
Mit BinPatch bezeichne ich mein Programm-Paket zum Erzeugen und Anwenden von Patches auf beliebige binäre Dateien. Ein Programm namens GenPatch kann benutzt werden, um aus zwei Versionen einer Datei (oder zwei kompletten Verzeichnis-Strukturen) eine sogenannte Patchdatei zu erstellen. Diese Patchdatei kann dann einem anderen Programm namens DoPatch zur Vorlage dienen, um die eine vorhandene Version einer Datei oder eines ganzen Programmverzeichnisses in eine andere zu überführen.
Der Sinn dieser Aktion erschließt sich dann, wenn Sie vergleichen, wie klein eine Patchdatei nach der Kompression im Vergleich zur vollständigen neuen Version (auch komprimiert) sein kann. Bei Programmen, Texten oder Datenbanken ist das Verhältnis besonders gut. (Lesen sie dazu auch "Was leistet BinPatch konkret?".)
Im allgemeinen ändern sich bei Programmen von Version zu Version jeweils nur wenige Teile und dann auch nur immer ein wenig. Vieles was durch den Compiler vorgegeben ist, ändert sich sogar gar nicht oder nur minimal. Gerade bei Windows-Programmen ist dieser Anteil recht hoch. Es ist immerwieder überraschend, wieviel BinPatch in der Praxis einspart. Beachten sie aber, daß BinPatch nicht auf gepackten oder verschlüsselten Daten arbeiten kann. Archive müssen entpackt sein und generell ist es die Philosophie von BinPatch lebendige Installationen zu aktualisieren.
Bei Programmen kann es auch sein, daß diese intern gepackt sind. Das erkennen sie z.B. daran, daß ein Packer die Daten nicht weiter komprimieren kann. (Leider erzeugen Packer auch schon bei leicht unterschiedlichen Daten praktisch vollkommen unterschiedliche Archive, so daß BinPatch hier nicht greifen kann.) Dem Packen der erzeugten Patchdatei steht dann aber nichts im Wege und BinPatch arbeitet so, daß es solche Patchdateien erzeugt, die zwar größer sind, als das nötig wäre, aber nach dem Packen dennoch wesentlich kleiner sind!)
Gerade bei Software-Updates hat sich BinPatch inzwischen vielfach
bewährt, dort kann bei der Datenübertragung eine Menge gespart
werden. Ob via Mail oder WWW, letztlich kostet beides sowohl den Entwickler
als auch seine Kunden eine Menge Zeit. Welche sonstigen Anwendungen es für
BinPatch sonst noch gibt, wird explizit unter "Wozu ist
BinPatch sonst noch einsetzbar ?" diskutiert.
Das Verfahren wurde mir durch die Unix-Programme "diff/patch" bekannt, die
eine ähnliche Aufgabe haben, aber leider auf reine Textdateien
beschränkt sind. Da schließt BinPatch also eine Lücke. (Die
Universalität von BinPatch bedeutet übrigens keineswegs, daß
es nicht auch hervorragend mit Textdateien arbeitet und das sogar noch deutlich
effizienter als "diff", siehe auch hier "Was leistet
BinPatch konkret?")
Die Benutzung des Computerprogrammpaketes "BinPatch" erfolgt ausschließlich zu den nachbenannten Bedingungen. Der Benutzer erkennt mit dem Einsatz des Programmpaketes die nachstehenden Bedingungen als verbindlich an. Im Sinne dieses Dokumentes bezeichnet BinPatch sowohl die Programme als auch die Dokumentation auf allen Plattformen. Lesen sie diesen Abschnitt bitte vollständig.
a) Es ist es ausdrücklich erwünscht, daß das vorliegende Release in der unregistrierten Version weitergegeben wird.
Dabei ist nur die vollständige Weitergabe - also insbesondere inklusive dieser Datei - erlaubt. Als Ausnahme davon ist es gestattet, das DoPatch einem Archiv mit einem Patch beizugeben, wobei der Verzicht der Beigabe dieser Datei dann beinhaltet, daß der Weitergebende die volle Haftung übernimmt, bzw. in der Dokumentation des Patches selbst auszuschließen hat. Diese sollte dann einen Verweis auf eine Bezugsquelle für dieses Dokument enthalten oder wenigstens die komplette Lizenz als Ausschnitt enthalten.
b) Die Weitergabe von Keyfiles ist nicht erlaubt. Die gemeinsame Nutzung nur bei einer Firmenlizenz im Auftrag der registrierten Firma.
c) Es ist verboten BinPatch abzuändern. Nur der Autor darf Patches auf BinPatch erzeugten und nur solche, die von ihm erzeugt wurden, dürfen auf BinPatch angewandt werden. Bei Verstoß gegen diese Bestimmung erlischt die Lizenz.
d) Wer eine Übersetzung des Textes oder Programm in eine andere Sprache machen möchte, sollte mir bitte schreiben. Damit nur offizielle Übersetzungen in Umlauf kommen, ist die unauthorisierte Übersetzung nicht gestattet.
e) Die nicht-kommerzielle Nutzung von GenPatch ist auch ohne Registrierung erlaubt. Die Benutzer sind aber aufgefordert, bei Gefallen dennoch BinPatch zu registrieren.
f) Die kommerzielle Nutzung von GenPatch ist nicht ohne vorherige Registrierung erlaubt. Eine Einzellizenz berechtigt eine Einzelperson zur kommerziellen Nutzung von GenPatch. Die Firmenlizenz (site licence) berechtigt die Angestellten einer Firma im Umkreis von 160km in deren Auftrag Patches zu erstellen. Die world-wide licence gestattet das sogar weltweit. Eine Nutzung ist in diesem Sinne kommerziell, wenn die zu patchenden Daten kommerziell sind oder wenn eine Shareware gepatcht wird. Prinzipiell ist es nicht erlaubt, Patches für kommerziellen Daten oder Shareware eines anderen Anbieters mit BinPatch zu erzeugen. Das darf nur der Autor selbst und das dann nur mit der registrierten Version von BinPatch. Das Anwenden von Patches mit DoPatch ist erlaubt, sofern der Patch nicht unter Verletzung der Lizenz entstanden ist. Eine Einzellizenz oder Firmenlizenz muß erworben werden und wird durch ein zu installierendes Keyfile gültig.
g) Eine Registrierung ist jeweils nur entweder für eine Einzelperson oder eine Firma gültig, so daß eine Firma ihre Produkte nicht mit der registrierten Version eines Mitarbeiters erstellen darf. Eine Registrations-Key ist nicht übertragbar und darf nicht an 3. Personen weitergegeben werden.
h) Es ist verboten Bestandteile von BinPatch zurückzuentwickeln, zu entkompilieren oder entassemblieren. Es ist ebenfalls verboten von BinPatch abgeleitete Werke zu erstellen, ohne zunächst die Genehmigung von Kay Hayen <Kay@kayhayen.com> einzuziehen.
i) Der Autor ist optimistisch, daß BinPatch angegebene Zwecke erfüllt. Als einzige Eigenschaft von BinPatch wird garantiert, daß es Platz auf der Festplatte belegt. Die Software kann im Rahmen der Lizenz benutzt werden, aber nur so wie sie ist! Keine Funktion wird garantiert! Für Schäden, die durch die Anwendung von GenPatch oder DoPatch entstehen, ist eine Haftung durch den Autor von BinPatch komplett ausgeschlossen! Außerdem erhebt der Autor von BinPatch keinerlei Rechte auf mit BinPatch erzeugte Dateien, trägt aber auch keinerlei Verantwortung für deren Inhalt.
j) BinPatch ist © 1997 Kay Hayen.
Der Vorteil, den BinPatch gegenüber der vollständigen Übertragung einer neuen Version bietet, wird anhand von Beispielen schnell deutlich.
(Anmerkung: Die meisten Beispiele betreffen United-Edition ,ein PBEM, das ich derzeit entwickle. Es handelt sich um ein mit Delphi erstelltes Windows-Programm inklusive Hilfe-Datei und was so typisch für diese Plattform ist)
Ein vollständiges Release hat als gepacktes Archiv stolze 570k und wer das per Mail an einen Adressaten irgendwo im Internet überträgt, muß wegen der derzeitigen Internet-Standards sogar damit rechnen, daß 760k übertragen und bezahlt werden müssen. Bei der Beschränkung auf jeweils veränderte Dateien kommen dennoch immer mind. 310k bzw. 413k raus, die das Hauptprogramm dabei belegt.
Beispiel A:
Ich hatte einige Texte im Programm vergessen zu lokalisieren, wollte aber dem nur Englisch-sprachigen Freund nicht zumuten, mit den Deutschen auskommen zu müssen. Daher erstellte ich mit GENPATCH UNITED41 UNITED42 UPDATE.UTP eine Patchdatei. (United41 und United42 sind Verzeichnisse älterer und neuerer Version.) Es entstand ein ungepackt 5.7k großes "UPDATE.UTP", das sich noch auf 2.7k packen ließ und als Mail nur 3.6k ausmacht. Mensch sehe den Unterschied von 413k und 3.6k! In Prozent waren es nur noch 0.9%, verschwindend wenig im Vergleich zu vorher, nicht wahr ? Grafisch läßt sich das so veranschaulichen:
Minor bugfix to United-Edition demo | ||
---|---|---|
Full packed version | 570k | ![]() |
Patch | 5.7k | ![]() |
Packed Patch | 2.7k | ![]() |
Mein Freund mußte zur Anwendung der Patches nur "DoPatch update.utp -auto" tippern, schon suchte das Programm die alte Version und bot ihm an sie zu aktualisieren.
Beispiel B:
Ich hatte jemandem nach längerer Zeit ein Update zugeschickt, das viele kleine Abweichungen enthielt. Aber auch da leistet BinPatch hervorragendes.
Major update to United-Edition demo | ||
---|---|---|
Full packed version | 570k | ![]() |
Patch | 77k | ![]() |
Packed Patch | 35k | ![]() |
Wenn sie keine neuen Komponenten hinzufügen, wächst die Größe des Patches in der Regel mit der Zeit nur noch langsam an, obwohl sie mehr verändern. Das hat damit zu tun, daß Änderungen beim Linken (moderne Linker stellen den Code zwecks Optimierung um) und in der Addressierung der globalen Variablen schnell zu 30K führen. Das Umschreiben einer einzelnen Routine ist aber für BinPatch mit weniger Bytes erledigt.
Beispiel C: In den ersten Releases für DOS war GenPatch.EXE nur als Patch von DoPatch.EXE vertreten. Dadurch hatte das Release gepackt nur 47k statt sonst 74k.
Kleinere Releases durch BinPatch | ||
---|---|---|
Full packed version | 74k | ![]() |
Full packed version with install using Patch | 47k | ![]() |
Diese Anwendung ist zugegeben ziemlich untypisch, zeigt aber ein zusätzliches Potential von BinPatch. Sinnvoll wird so ein Patch durch den Overhead von Programmen, die mit dem gleichen Compiler übersetzt wurden. Wenn sie z.B. ein Programm-Paket aus meheren Delphi-Programmen releasen wollen, dann wird die Bilbiothek, die für eine Größe der Programme von mind. 200K sorgt nur einmal eingebunden und Sie müssen sich nicht um die Größe des Archivs sorgen.
Beispiel E:
Ein netter Betatester hatte inkorrekte Links in zwei beigegebenen HTML-Dateien entdeckt. Nachdem er sie selbst korrigierte, sandte er mir den gepackt nur 610 Bytes "großen" Patch zu, der beide Dateien für mich korrigierte. Der war damit natürlich auch deutlich kleiner als die beiden Dokumente, aber vorallem war das für mich sehr komfortabel.
Resumee: Die ideale Anwendung für BinPatch ist der Betatest von komplexer Software über das Internet. Hier kann BinPatch so richtig zeigen, was in ihm steckt. Auch um Bugfixes und kleinere Updates ins WWW zu stellen, ist BinPatch sehr gut geeignet. Wer schonmal ein 1.4M Archiv von einem langsamen Server geladen hat, weiss wohl, wie froh er gewesen wäre, ein Update mit vielleicht nur 100K downloaden zu müssen, nicht wahr ? (Besonders weil meist nach 1.3M die Übertragung stillsteht.)
Durch eine spezielle Option kann GenPatch angewiesen werden, auch Redundanzen in der neueren Version einer Datei auszunutzen. Das klappt nur selten, kann dann aber dazu führen, daß BinPatch als Vorpacker eingesetzt werden kann. Dazu muß momentan BinPatch eine leere Datei als Vorlage gegeben und dann erzeugt es eine "Patchdatei", die nach dem Packen kleiner ist, als das die Datei sofort gepackt. Was damit zu erzielen ist, hängt stark von der Datei ab. Einen Versuch ist es wert (und spätere Versionen von BinPatch sollen den Einsatz als Vorpacker einmal ohne Umweg über leere Dateien erlauben).
Bei einem Programmpaket, das mit dem gleichen Compiler übersetzt wird, kann BinPatch dafür sorgen, daß der Overhead des Compilers und verwendeter Bilbliotheken nur einmal auftaucht anstatt für jedes Programm einmal.
Wenn sie verschiedene Versionen eines Programmes oder einer Datei rausgeben wollen, dann bietet BinPatch ihnen die Möglichkeit eine Reihe kleinererer optionaler Patches statt meherer kompletter Programme anzubieten. Die Installationsroutine muß dann nur DoPatch aufrufen.
DOS/Windows 3.1:
Das Genpatch für DOS setzt beim Benutzer derzeit einen 386er und einen DPMI-Server vorraus. Von letzterem lassen sie sich bitte nicht erschrecken, diese Bedingung erfüllen sie schon, sobald sie GenPatch in einem DOS-Fenster von Windows oder OS/2 laufen lassen. Unter DOS können sie falls vorhanden QEMM verwenden oder alternativ den freien DPMI-Server CWSDPMI.
Das DoPatch für DOS setzt lediglich ein DOS und einen 286er voraus. An Speicher benötigt es praktisch fast keinen. Es ist dazu entwickelt worden, spontan auf jedem x-beliebigen Rechner zu laufen, ohne daß die Benutzer etwas spezielles wissen müssen.
Die Ungleichheit in den Anforderungen liegt zum einen in der hohen Komplexität der Aufgabe von GenPatch, zum anderen aber darin begründet, daß das DoPatch bei jedem Anwender und ohne zusätzlichen Aufwand von dessen Seite laufen soll.
Windows 95/NT:
Das DoPatch für Win95/NT läuft nicht unter purem DOS, aber im DOS-Fenster von Windows 95. Für DOS verwenden Sie bitte DoPatch für DOS.
OS/2:
Die Version für OS/2 sollte ab OS/2 V2 laufen. Getestet wurden OS/2 V2.1, OS/2 Warp 3 FixPack 26 und OS/2 Warp 4.
Linux:
Die Programme benötigen installierte ELF-Libraries, eine Version für aout ist nichtmehr geplant.
Bei Gefallen kann - bei kommerzieller Nutzung muß - BinPatch
registriert werden. Dazu gibt es verschiedene Möglichkeiten, die in
BinPatch Registrierung erklärt werden, u.a.
das sehr komfortable und vielseitige
Register.EXE, das BinPatch beiliegen sollte, (wenn
nicht bitte hier
clicken) und die allerdings Englisch-sprachige
online Registrierung mit Kreditkarte
bei Kagi (auf Wunsch sicher dank SSL).
Die DM-Preise sind:
Preis | Lizenztyp | Beschreibung |
---|---|---|
40DM |
Einzellizenz | Eine einzelne Person. |
820DM |
Standort | Alle Angestellten einer Firma im Radius von 160km. |
8250DM | Weltweit | Alle Angestellten einer Firma weltweit. |
Wie oben erläutert, ist die nicht-kommerzielle Nutzung frei. Ich
möchte aber an dieser Stelle darauf hinweisen, daß ich eine Menge
Arbeit investiert habe, um BinPatch so effizient und komfortabel wie
möglich zu machen und das auch in Zukunft machen werde. Bitte
unterstützen Sie daher bei
regelmäßiger Nutzung von BinPatch dessen Weiterentwicklung.
Ihren
persönlichen BinPatch key. Die Anwender ihrer Patches können
sehen, daß Sie den Patch erzeugt haben.
Eine
Registerierung jetzt beinhaltet alle späteren Updates!
Sie erhalten
alle bugfixes und neue Releases für alle gewählten Plattformen
per EMail zugesandt.
Ein wirklich
gutes Produkt!
Eine Standort- oder Weltweitlizenz gilt nur für Produkte der registrierenden Firma. Angestellte dürfen damit keine eigenen Projekte patchen.
Anmerkung: Dieses Angebot bleibt nur bis zum Erscheinen eines neuen Releases gültig. Schauen sie jeweils nach der aktuellsten Version dieses Dokumentes in einer der Bezugsquellen.
Die folgenden Quellen für BinPatch werden von mir mit den jeweils aktuellen Version versorgt. Von dort lassen sich die jeweils aktuellen Versionen für alle Plattformen beziehen. Lesen Sie vorher dazu auch das Kapitel Distributionen, damit Sie wissen, für welches Archiv Sie sich entscheiden sollten.
1. WWW
Wenn sie diese Seite schon online lesen, dann folgen sie einfach dem Link zum Download-Bereich, um zu der entsprechenden Seite im WWW zu gelangen. Ansonsten können sie die Addresse http://www.kayhayen.com/binpatch/download.htm in ihren Brower eingeben.
2. FTP
Der offizielle anon-FTP Server für BinPatch ist mein eigener: ftp.kayhayen.com. Dort finden sie die neuesten, aber auch ältere Versionen von BinPatch.
3. Filenetze
Das GFD-Filenetz wird regelmässig mit der jeweils aktuellen OS/2-Version zu versorgt. Bei Hinweis werde ich auch andere Filenetze bedienen, teilen Sie mir bitte mit, wenn Sie weitere Filenetze kennen die für die BinPatch geeignet ist.
4. Newsgroups
Die aktuelle Version von BinPatch gehen einige Zeit nach dem Release auch durch die geeigneten Binary-Newsgroups. Momentan geht nur die DOS-Version durch de.alt.binaries.msdos.
Anmerkung: Wer andere Bezugsquellen vorschlagen möchte, ist herzlich eingeladen, das auch zu tun. :-)
Dieses Kapitel listet die einzelnen Distributionen auf und erklärt,
was genau sie enthalten:
- mkpat19f.zip: BinPatch für
DOS/Windows3.1 als InfoZip-File.
Datei | Größe(gepackt) | DOS | Windows 3.1 | Windows 95 | Windows NT | OS/2 |
---|---|---|---|---|---|---|
GENPATCH.EXE | k.a. | Ja, mit DPMI-Server | Im DOS-Fenster | Im DOS-Fenster und mit LFN | Im DOS-Fenster, aber keine LFN |
Im DOS-Fenster |
DOPATCH.EXE | 30k (16k) | Ja | Im DOS-Fenster, keine LFN | |||
DOPATINT.EXE | 36k (18k) |
Datei | Beschreibung |
README.HTM | Die BinPatch Dokomentation im HTML-Format |
REGISTER.EXE | Windows-Programm, um BinPatch über Kagi zu registrieren. |
REGISTER.HTM | Informationen über die Optionen zum Registrieren von BinPatch. |
REGISTER.TXT | Ein ASCII-Text, der die Registrierung bei Kagi (allerdings auf Englisch) erläutert. |
BINPATCH.GIF MINIPNKT.GIF BK101.GIF BAR.GIF |
Grafiken für die HTML-Dateien. |
- mkpat19t.zip: BinPatch für Windows 95&NT als InfoZip-File.
Datei | Größe(gepackt) | DOS | Windows 3.1 | Windows 95 | Windows NT |
---|---|---|---|---|---|
GENPATCH.EXE | k.a. | Nein | Nein | Im DOS-Fenster | Auf der Kommandozeile |
DOPATCH.EXE | 51k (28k) | ||||
DOPATINT.EXE | 57k (32k) |
Sonstige Dateien wie bei mkpat19f.zip.
- mkpat19p.zip: BinPatch für OS/2 V2, Warp3&4 als InfoZip-File.
Datei | Größe(gepackt) | DOS | OS/2 |
---|---|---|---|
GENPATCH.EXE | k.a. | Nein | Im OS/2-Fenster |
DOPATCH.EXE | 46k (27k) | ||
DOPATINT.EXE | 51k (30k) |
Sonstige Dateien wie bei mkpat19f.zip.
- mkpat19l.tgz: BinPatch für Elf-Linux als tgz-file.
Datei | Größe(gepackt) | a-out | ELF |
---|---|---|---|
genpatch | k.a. | Nein | Ja |
dopatch | 30k (15k) |
Sonstige Dateien wie bei mkpat19f.zip.
Hier eine Auflistung der Änderungen von Version zu
Version.
V1.9 (10. offical release for DOS, Win95,
NT, OS/2 and Linux on 3.9.97)
V1.8 (9. offizielles Release für DOS, Win95,
NT, OS/2 und Linux am 11.7.97)
- DoPatch hat eine neue Option "-auto", die es veranlaßt, die
Festplatten nach potentiellen Zielen des übergebenen Patches selbst
zu durchsuchen. Das wird "Autoscan" genannt. Das Feature ist neu und mag
noch Fehler haben, also nicht mit allen Spezialfällen umgehen können,
da das nur sehr schwer testbar ist.
- GenPatch hat eine neue Option "-z", die das anschliessende Packen mit einem
definierten Packer erlaubt. Dieser Packer ist als Vorgabe das freie InfoZip
2.1, kann aber über "-Z" modifiziert werden. Bisher können "-Z1"
(LHA 2.13 bis 2.5) oder "-Z2" (RAR2.0) definiert werden, wobei weitere Packer
noch folgen werden.
- Eine weitere neue Option "-x" weist GenPatch an den Patch nicht nur zu
packen, sondern ein selbstextrahierendes Archiv zu erstellen. Bei InfoZip
und LHA werden bisher nur der Patch und das DoPatch entpackt. Im Fall von
RAR wird ein Menu samt Hilfetexten angezeigt, daß dem Endbenutzer die
wichtigen Optionen von DoPatch zur Verfügung stellt. So sind dann
selbstextrahierende und praktisch selbstanwendende Patches möglich.
- Die neue Option "-q" stellt beim GenPatch die Benutzung eines CoProzessors
ab. Das ist allerdings nur für die wenigen 386er ohne dieses Bauteil
sinnvoll und senkt die Packrate der Patches leider dramatisch.
- Das DoPatch für Windows 95/NT setzt nun ebenfalls das Dateidatum.
- Das DoPatch ist nun als "DoPatInt" erthalten, das eine Erkennung der
Systemsprache und Ausgaben in dieser Sprache durchführt. Bisher werder
English, Deutsch und (teilweise) Französisch unterstützt. Das
DoPatch.EXE versucht nichtmehr die Sprache zu erkennen.
- Das Format der Patches ist mit V1.7 kompatibel.
V1.7 (8. offizielles Release für DOS, Win95, NT, OS/2 und Linux am 18.6.97)
- Ein prinzipieller Fehler im Format der Patches 1.0x wurde aufgedeckt,
eine Annahme bzgl. Einbettungen hat sich bei Patches mit besonders
ungünstigen Eigenschaften als Fehlerquelle erwiesen. Bei großen
Einbettungen und dem Patchen deutlich kleinerer Dateien auf größere
Dateien ohne die Option "-r", erzeugt GenPatch Patches, die vom DoPatch
abgewiesen werden. Dieser Fehler sollte sehr selten vorkommen, erfordert
aber eine sofortige Änderung des Formates der Patches, so daß
nun erstmals eine Inkompatiblität auftritt.
- Die alten Version von DoPatch verweisen auf eine Internetseite, wo das
neue DoPatch erhältlich ist. Die neue Version verweist auf eine Seite,
wo DoPatch 1.06 erhältich ist.
- Das neue Format beinhaltet nun endlich auch das Dateidatum der zu patchenden
Dateien. Bis auf DoPatch für DOS/Windows3.1 setzt allerdings derzeit
noch kein DoPatch dieses Datum um.
- Neuer Parameter "-n" des GenPatch setzt das Datum der Dateien im Patch
auf das aktuelle Datum.
- Die Ausgabe des DoPatch wurde überarbeitet und paßt jetzt komplett
in ein 80x25 Zeichen Fenster, so daß auf den Tastendruck bei "DoPatch
-h" verzichtet werden kann. Nebenbei sollten die Texte jetzt wesentlich
verständlicher sein
als vorher.
- Der Englische Text für unreg. Versionen war leider fehlerhaft
formuliert und wurde nochmals geändert.
- Die Erkennung der Systemsprache durch GenPatch sollte nun besser funktionieren,
ist aber zugegeben noch nicht fehlerlos.
- Die Option "-c" läßt nur noch Werte von 10..255 zu. Andere Werte
sind nicht sinnvoll. Vorgabe ist weiter 20.
- Sowohl Warp 2 als auch Warp 3 haben nochmals Detailverbesserungen erfahren,
die bei relativ vielen Einbettungen einen Gewinn von fast 1% bedeuten.
- Der neue Parameter "-p" erlaubt die Lokalität des Patches in anderer
Hinsicht als "-l" zu beeinflußen. Mit ihm kann von mehr oder weniger
kostanten Eigenschaften bzgl. der Struktur des Patches profitiert werden.
Vorgabe ist 190, teilweise können höhere oder niedriger Werte das
Ergebnis verbessern.
- Der neue Parameter "-b" kann bei sehr gut packbaren Dateien wie z.B. Texte
oder Hilfedateien die Packrate des Patches dramatisch erhöhen, besonders
bei Patches mit vielen kleinen Änderungen. Ansonsten bleibt er fast
bis ganz wirkungslos, bei Programmdateien schadet er eher. Auch dieser Parameter
ändert nur das Packverhalten des Patches, nicht direkt seine
Größe.
V1.06 (7. offizielles Release für DOS, Win95, NT, OS/2 und Linux am 16.6.97)
- Ein Fehler im GenPatch wurde bereinigt. In (seltenen) Fällen
konnte es unter Linux "coredumpen" oder auf anderen Plattformen Patches erzeugen,
die vom DoPatch abgewiesen werden.
- DoPatch für Windows 95/NT benutzte nicht das richtige Verzeichnis
für seine temporären Dateien. Das wurde korrigiert.
- Der Text für Patches, die mit unreg. Versionen von GenPatch erzeugt
wurden, ist deutlich abgemildert worden und formuliert jetzt positiv.
- Schwächen in der Erkennung der Systemsprache für DOS/Windows3.1
und Win95/NT wurden beseitigt.
V1.05 (6. offizielles Release für DOS, Win95,
NT, OS/2 und Linux am 9.6.97)
- GenPatch zeigt nun einen prozentualen Fortschrittszähler für
Warp 1 an, der ohne nennenswerte Performance-Kosten integriert werden
konnte.
- Ab dieser Version darf der Suffix ".utp" bei der Angabe der Patchdatei
bei GenPatch drinstehen, vorher wurde dann unnötigerweise "test.utp.utp"
angelegt, was unter DOS/Windows3.1 zu einem Fehler führt, da das dort
ein illegaler Dateiname ist.
- BinPatch erkennt die Sprache des Systems und wählt seine Texte
entsprechend. Die Zweisprachigkeit von BinPatch wurde beendet. Die Erkennung
erfolgt nicht für Linux, dort wird nur Englisch unterstützt. Zudem
wurden einige Texte geändert, ergänzt oder eleganter formuliert.
- Die Patches werden etwas schneller erstellt. Die Option "-r" des GenPatch
wurde vorübergehend für eine Neuimplementierung deaktiviert.
- Bei einem logischen Fehler, der zum Abbruch von GenPatch führte (etwa
eine nicht lesbare Quelldatei), wurde die bis dahin erzeugte Patchdatei nicht
gelöscht. Der Abbruch mit STRG-C führt nun in der Version für
DOS/Windows3.1 und Linux zu dessen Löschung. Für die anderen
Plattformen wird hier noch recherchiert.
- Das DoPatch für Win95, OS/2 und Linux ist jetzt fähig parallel
zu arbeiten, dh. mehere Patches können gleichzeitig angewendet werden.
Das DoPatch für DOS erlaubt das nicht, um die Dateigröße
minimal zu halten.
- Der Timeout für den Tastendruck funktioniert jetzt auch unter
OS/2.
V1.04 (5. offizielles Release für DOS, Win95,
NT, OS/2 und Linux am 22.5.97)
- Das erste komplett englisch-sprachiges Release ist erfolgt.
- Die Registrierung kann nun auch per
Kreditkarte bei Kagi erfolgen. Auf Wunsch kann auch das sichere
Protokoll SSL verwandt werden.
- Das neuerdings beigelegte Programm REGISTER.EXE
gestattet dem Benutzer via Mail oder Post bei Kagi zu registrieren. Bezahlt
werden kann mit Kreditkarte, Schecks, Geldscheinen und in fast allen
Währungen. Ferner wurde das Formular zur Online-Registrierung in eine
Auflistung der Möglichkeiten umgewandelt und verweist jetzt u.a. auf
Kagi.
V1.03 (4. offizielles Release für DOS, Win95,
NT, OS/2 und Linux am 23.4.97)
- Die OS/2-Version von BinPatch ist jetzt nichtmehr auf eine Runtime angewiesen
und wird daher ab dieser Version erstmals öffentlich released.
- Aufgrund einer verbesserten Arbeitsweise bei Einbettungen erzeugt
GenPatch ab dieser Version um etwa 2-5% kleinere Patchdateien. Möglich
wurde das durch einen bereinigten Algorithmus, der jetzt neue Vorgabewerte
-c20 und -l245 erhält und noch besser auf das nachfolgende Packen
optimiert.
- Diese Version ist dennoch kompatibel zu BinPatch 1.00-1.02.
- Das GenPatch des neuen Release für Windows 95&NT kann unter Windows
NT auch "lange Dateinamen" bearbeiten, läuft dafür aber nur unter
Windows 95 und NT.
- Die Linux-Version des DoPatch ist erheblich geschrumpft. Sie liegt jetzt
bei gepackten 15k und damit in der Region des DoPatch für DOS. So wird
die wichtige Beigabe des DoPatch für Linux ebenfalls praktikabel.
- Ab dieser Version dürfen die Texte von BinPatch-Keys auch Umlaute
enthalten, die von den DoPatch aller unterstützten Plattformen korrekt
angezeigt werden.
- Der Speicherverbrauch von GenPatch bei großen Dateien wurde generell
auf 20% gesenkt. Das steigert die unter DOS/Windows patchbaren
Dateigröße ganz erheblich und erleichtert das Erzeugen von Patches
großer Dateien bei wenig Speicher, weil weniger Speicher ausgelagert
werden muß.
- Die Geschwindigkeit von GenPatch wurde um etwa Faktor 2 gesteigert. Bei
großen Dateien, die viele Einbettungen benötigen, kommt das zum
tragen.
- Sowohl GenPatch als auch DoPatch zeigen jetzt durchgängig alle Meldungen
mit Umlauten an.
- Ein neuer Switch "-f" für GenPatch erstellt Verzeichnis-Patches, die
auch unveränderte Dateien patchen. Dadurch erstellt DoPatch bei Angabe
eines anderen Verzeichnisses eine vollständige Version. Das kann dazu
dienen beim Enduser auf Wunsch bereinigte Installationen nur mit den
nötigen Dateien zu schaffen.
- Eine neue Enviroment-Variable "BINPATCH_OPTS" wird von GenPatch
berücksichtigt. Ihr Inhalt wird stets an die Kommandozeile angehängt.
Dort können global gültige Einstellungen abgelegt werden.
- Einige optische Details, sowie der Grad der Zweisprachigkeit wurden weiter
verbessert.
- Das DoPatch für DOS erkennt jetzt LFN-Parameter bzw. Patches für
Dateinen mit LFN und weist auf ein geeignetes DoPatch hin, anstatt einen
Fehler erst beim Zugriff zu melden.
- DoPatch für DOS hat jetzt einen Timeout beim Warten einen Tastendruck.
(Die anderen DoPatch Plattformen folgen später.) Dadurch ist (wird)
DoPatch jetzt auch im Script-Betrieb einsetzbar.
- Die Dokumentation wurde um das Kapitel
"Distributionen" ergänzt, das erläutert,
welche Archive jeweils was enthalten. Außerdem wurde ein
"Anhang A" eingeführt, der wichtige Begriffe
rund um BinPatch erläutert.
V1.02 (3. offizielles Release für DOS, Win95
und Linux am 17.2.97)
- Ab dieser Version kann ein DoPatch bei Patches in neueren oder älteren
Formaten WWW-Addresse ausgeben, unter der ein geeignetes DoPatch zu finden
ist.
- Der neue Parameter "-a" veranlaßt GenPatch auch versteckte Dateien
einzubeziehen.
- Außerdem kann GenPatch jetzt Dateien der Länge 0 patchen.
Sowohl als Quelle als auch als Ziel.
- Die Testsuite wurde um Checks auf die obigen Bugs ergänzt.
V1.01 (2. offizielles Release für DOS, Win95
und Linux am 11.2.97)
- Das ReadMe zu BinPatch wird jetzt als HTML mitgeliefert.
- Der Infotext von DoPatch wurde überarbeitet.
- Das Projekt wird umbenannt. Der Name "BinDiff" führte leider bei einigen
zunächst zu dem Mißverständnis, daß BinDiff nur die
Unterschiede von Dateien aufgelistet werden. Daher wird das Projekt ab jetzt
"BinPatch" heißen.
- Der Registration-Key muß jetzt nichtmehr in einer Enviroment-Variable
angegeben werden, sondern wird auch in dem Verzeichnis von GenPatch gesucht.
Das schont den unter DOS den knappen Speicher für diese Variablen. Vorrang
hat die Angabe in der Enviroment-Variable.
V1.00 (1. offizielles Release für DOS, Win95
und Linux am 5.2.97)
- Eine Testsuite für alle Plattformen hilft dabei, die Funktionalität
von Releases abzuklopfen. Bekannte Bugs früherer Versionen und Fehlerquellen
werden explizit getestet. Genauso die avisierte Funktionalität. Bisher
werden aber nur die Default-Parameter von Genpatch überprüft. Das
wird zunehmend ausgebaut werden.
- Beim Erstellen der Testsuite sind noch einige Kleinigkeiten aufgefallen
und verbessert worden.
- Ab sofort wird die WWW-Präsenz die aktuellste Bezugsquelle sein.
V0.90 (9. Betaversion für DOS, Win95 und
Linux am 31.1.97)
- Die Überprüfung des Registrations-Keys im GenPatch wurde resistenter
gegen Irrtümer/Zufälle gemacht.
- Die Ausgabe von DoPatch wurde überarbeitet. Sie passt jetzt unter
DOS auch auf einen 80x25 Bildschirm.
- Die Linux-Version hat eine hoffentlich etwas mehr dem Standard entsprechende
Verzeichnis-Struktur bekommen.
V0.89 (8. Betaversion für DOS, Win95 und
Linux am 22.1.97)
- Ab dieser Version ist BinDiff über das WWW zu beziehen. Es finden
sich neben Texten zu BinDiff ein
Registrationsformular und jeweils
die aktuellste Fassung
dieses Textes im HTML-Format.
V0.88 (7. Betaversion für DOS, Win95 und Linux am 20.1.97)
- Der Algorithmus wurde wieder ein wenig verbessert. Für kleinere
Dateien erzeugt BinDiff jetzt nochmals etwa 1% kleinere Dateien.
- Die theoretische Grenze für die Dateigröße von patchbaren
Dateien von bisher 16M wurde auf 2 Gigabyte angehoben.
- Nicht zulässige Registrations-Keys werden im allgemeinen schon von
GenPatch erkannt, vorher hätte eine falsche Konfiguration dazu führen
können, daß erst DoPatch sich verweigert.
V0.87 (6. Betaversion für DOS, Win95 und Linux am 16.1.97)
- Neue Optionen "-r", "-c" und "-l", um das Patchformat von GenPatch
zu kontrollieren.
- Der Einsatz von GenPatch als Vorpacker ist jetzt möglich.
V0.86 (5. Betaversion für DOS, Win95 und Linux am 14.1.97)
- GenPatch produziert um ca. 5% kleinere Patches als bisher.
- Der Speicherverbrauch von GenPatch wurde auf 60% reduziert.
- GenPatch wurde um Faktor 10 schneller, was sich vorallem bei Dateien ab
1M lohnt.
- DoPatch kann jetzt auf bestehenden Daten arbeiten.
- DoPatch ist nochmals geschrumpft und ist jetzt in der Version für
DOS/Windows3.1 gepackt kleiner als 16k.
- DoPatch für Windows 95 kann in dessen DOS-Fenster lange Dateinamen
bearbeiten.
- DoPatch überprüft den Patch auf Beschädigung und meldet
diese.
V0.85 (4. Betaversion für DOS und Linux
am 23.12.96)
- Große Dateien wurden nur bei relativ guter Patchbarkeit bearbeitet.
Der Konservatismus wurde da gelockert.
- Das DoPatch ist nochmals einen Tick geschrumpft, jetzt gepackt weniger
als 19k.
V0.84 (3. Betaversion für DOS und Linux
am 19.12.96)
- Neue Plattformen OS/2 und Linux, wobei Linux sehr kleine Programme liefert,
das gleiche aber für OS/2 leider noch nicht erreicht wurde und momentan
eine Runtime benötigt würde, daher noch kein Release.
- Alle Plattformen kompatibel untereinander
- Nochmals kleinere EXEs für DOS
V0.83 (2. Betaversion für DOS am 16.12.96)
- Wesentlich kleineres DoPatch, gepackt weniger als 20k
- Ausführlichere Fehlermeldungen beider Programme
- Nochmals unfangreichere Dokumentation
V0.82 (1. Betaversion für DOS am 11.12.96)
Alle frühereren Versionen waren rein interne Alpha-Versionen.
Anmerkung: Erscheinende Releases können in Funktion und Implementierung von dieser Ankündigung abweichen.
V2.0 (Release in Vorbereitung für
8/9.97)
- DoPatch erkennt sogenannte "Authorisierungen". Diese fälschungssicheren
Dateien können Benutzer der registrierten Version benutzen, um vor dem
Anwenden von Patches von 3. Seite zu warnen. Das DoPatch zeigt dann ihren
Text an und läßt den Anwender entscheiden, was passieren soll.
- Eine Progress-Anzeige auch für DoPatch ist vorhanden.
- Das DoPatch erkennt auch unter Linux einen Timeout beim Warten auf einen
Tastendruck.
- Unter Windows 95 kann ein eigenes Icon für BinPatch's UTP-Dateien
beim System angemeldet werden. Bei Doppelclick startet dann DoPat95.EXE.
Unter OS/2 werden DoPatch und dem EAs beigefügt, die ohne besondere
Anmeldung auskommen.
- Die Versionen für Windows95/NT beinhaltet nun eine kleine Installtion
für das DoPatch, die nur ausgeführt werden muß, wenn die
neuen Icons für UTP-Dateien beim System angemeldet werden
sollen.
Es fehlt was? Ein Feature brauchen Sie unbedingt? Eine wichtige Option fehlt
noch? Sie halten ein geplantes Feature für einen Fehler? Sie können
Information anbieten? Dann schreiben
Sie mir! Ich bin für Anregungen immer offen. :-)
Die einfachste Anwendung ist das Erstellen eines Patches von einer Datei auf eine andere. Nehmen wir an, wir haben zwei Dateien ALT.EXE und NEU.EXE. Wenn wollen einen Patch erstellen, der aus der Datei ALT.EXE die Datei NEU.EXE erstellt.
Dazu braucht GenPatch die Namen der beiden Dateien als Parameter und für den Patch noch eine Benennung, sagen wir "ALT2NEU". Der Name des Patches sollte dem späteren Anwender ungefähr sagen, was das für ein Patch ist, wobei "Update" meist weniger aussagekräftig ist als "V21_V22". Der stets verwendete Suffix ".UTP" für BinPatch Patches muß bei der Benennung an dieser Stelle übrigens weggelassen werden. Für unser Beispiel reicht also die Eingabe am DOS-Prompt:
GenPatch ALT.EXE NEU.EXE ALT2NEU
und schon legt das Programm los. An die Stelle von ALT.EXE kann jeder beliebige Pfad auf eine Datei treten, das gleiche gilt für NEU.EXE. Auch der erzeugte Patch darf eine Pfadangabe beinhalten, normalerweise werden aber die Dateien im aktuellen Verzeichnis gesucht.
Eine beim Vertrieb einer Software-Paketes übliche Praxis ist das Patchen ganzer Verzeichnisse. Im Prinzip funktioniert das ganz ähnlich wie oben gesehen bei einzelnen Dateien. Geben sie statt Dateinamen einfach die Pfade von Verzeichnissen an und schon löst GenPatch auch diese Aufgabe für sie:
GenPatch ALT_DIR NEU_DIR ALT2NEU
Dabei scannt es NEU_DIR und sucht nach *namensgleichen* Dateien in ALT_DIR, die dann verglichen werden und im Falle von Ungleichheit, wird der Patch um die Information ergänzt, wie diese Datei zu aktualisieren wäre. Bei gleichen Dateien werden diese ignoriert und wenn keine Datei dieses Namens in der alten Version existiert, dann wird die Datei komplett in den Patch eingebettet. Bei der Suche bezieht GenPatch übrigens auch Unterverzeichnisse mit ein.
Beim Anwenden eines Patches muß dem Dopatch neben der Patch noch mitgeteilt werden welche Daten er patchen soll. In den obigen Beispielen sind das die älteren Daten ALT.EXE bzw. ALT_DIR. Natürlich darf der Name auch anders als beim Erzeugen des Patches lauten, wichtig ist nur, daß in ALT_DIR dann die Dateien wirklich den gleichen Namen haben. Der Aufruf
DoPatch ALT2NEU.UTP ALT.EXE MIAU.EXE
würde aus ALT.EXE und ALT2NEU die Datei MIAU.EXE erzeugen. Bei einem Verzeichnis-Patch würde
DoPatch ALT2NEU.UTP ALT_DIR NEU_DIR
ein Verzeichnis NEU_DIR anlegen (sofern es noch nicht existiert) und dort die neuen Dateien reinschreiben. Sollen die Veränderung direkt an den alten Daten durchgeführt werden, dann würde
DoPatch ALT2NEU.UTP ALT_DIR
die alten Daten mit den neuen überschreiben. Und wenn Sie das aktuelle Verzeichnis patchen wollen, dann reicht sogar ein noch kürzeres
DoPatch ALT2NEU.UTP
aus, um die alten Daten im aktuellen Verzeichnis durch neuere zu ersetzen.
Bei GenPatch können sie bisher 5 Optionen angeben. Hier wird der Versuch gemacht, eine kurze Erläuterung zu geben:
Mit "-r" erlauben sie BinPatch auf bereits abgebildete Teile des Ergebnisses Bezug zu nehmen. Das kann Sinn machen, ist aber in der Voreinstellung nicht aktiviert. Probieren sie einfach im konkreten Fall aus, was in ihrem Fall passiert. Eine generelle Empfehlung kann nicht gegeben werden, da sowohl bei Programmen als auch Textdateien beides, Verbesserungen und auch Verschlechterungen im Ergebnis beobachtet wurden. Achten sie auch darauf, daß im Normalfall die gepackte Dateigröße maßgebend ist. Obwohl die Dateigröße des Patches mit "-r" Option kleiner ist, sagt das häufig nichts über die Verhältnisse nach dem Packen beider Dateien aus. Anmerkung: In der momentanen Version bleibt diese Option wirkungslos, weil sie bis zu einer Neuimplementierung deaktiviert wurde.
Mit "-c" legen sie die Schrittweite beim Optimieren von nicht abbildbaren Teilen fest. Grössere Werte produzieren kleinere Patches, die dann aber wiederum schlechter zu packen sind. Im Normalfall ist die Voreinstellung von 20 für EXE-Dateien sehr gut, für Textdateien sollten sie eher mit grösseren Werten wie 200 experimentieren, da Textdateien recht stabile Eigenschaften im Vergleich zu EXE Dateien haben. Zugelassen sind nur Werte von 20..200, andere machen kaum Sinn.
Mit "-l" legen sie den Grad der Lokalität beim Optimieren von nicht abbildbaren Teilen fest. Dieser Wert beeinflußt nicht direkt die Grösse des Patches, sondern nur dessen Größe nach dem Packen! Für EXE-Dateien ist die Voreinstellung von 245 recht vernünftig. Bei kleineren Werten steigt dann in der Regel die Größe der gepackten Datei an. Der Idealwert hängt hier von der Datei ab. In der Regel lohnt es sich nicht oder kaum, die Voreinstellung von Hand zu ändern, Ausnahme dabei sind Textdateien, dort gibt ein Wert von 2000 wesentlich bessere Ergebnisse, noch höhere Werte erzielen dort meist nur wenig bessere Ergebnisse, zumal "Warp 3:" dadurch enorm verlangsamt wird.
Anmerkung: Im Verzeichnis-Modus können sie momentan nicht individuelle Parameter für jede Datei einzeln einstellen. Ich bin auch unsicher, ob sich der Aufwand hierfür lohnen würde. Stattdessen soll GenPatch zukünftig über eine Analyse-Funktion verfügen, die für jede Datei relativ gute Parameter zu wählen versucht. Dazu wäre ich dankbar, wenn Anwender von BinPatch mit ihre Erfahrungen mit BinPatch mitteilen würden.
Mit "-f" wird GenPatch angewiesen, beim Verzeichnis-Patch auch Dateien, die nicht verändert wurden, zu patchen. Die Information dafür ist sehr kurz, hat aber zwei Konsequenzen: Zum einen verweigert DoPatch seine Arbeit, wenn die Datei fehlt, zum anderen kann DoPatch so dazu gebracht werden, dem Anwender aus einer "benutzten" Installation eine saubere Installation mit nur den unbedingt notwendigen Dateien zu erzeugen
Mit "-n" weisen sie GenPatch an, das Datum der eingetteten oder zu patchenden Dateien nicht auf das der Vorlage, sondern auf das aktuelle Systemdatum zu setzen.
Mit "-z" veranlassen sie GenPatch nach dem Packen die Datei direkt an einen Packer zu übergeben. Das erspart ihnen den Aufruf des Packers. Dieser Packer muß auf ihrem Rechner installiert sein und wird mit "-Z" ausgewählt. Mit "-x" können sie sogar ein selbextrahierendes Archiv mit einem DoPatch dabei erzeugen, wobei Sie beachten sollten, daß nicht jeder Packer auf jeder Plattform selbstextrahierende Patches erzeugen kann.
Tip: Es kommt vor, daß eine "automatische" Zuteilung von DPMI-Speicher unter Windows fehlschlägt, weil Windows unter "automatisch" eben nicht "nach Bedarf" versteht, sondern einen Wert, der auf der physischen Speichermenge beruht. Legen Sie dann ein spezielles DOS-Fenster an, dem Sie die benötigte Menge Speicher fest zuteilen. Tragen sie ruhig 32000 oder auch 60000 ein, ich hatte damit bisher keine Probleme, kann dafür aber keine Garantie geben. Sollte auch das nicht helfen, so müssen Sie auf GenPatch für NT, OS/2 oder Linux ausweichen. Diese Betriebssysteme sind großzügiger, was den Bedarf von Speicher angeht. Die damit erstellten Patches lassen sich dann ohne weiteres von einem DoPatch für DOS anwenden.
Tip: Die Enviroment-Variable "BINPATCH_OPTS" wird von GenPatch in jedem Fall an die Befehlszeile angehängt. Tragen Sie dort die Parameter ein, die sie immer verwendet haben möchten.
Tip: Achten sie darauf, daß sie beim Übersetzen ihrer Programme immer die gleichen Einstellungen beim Compiler haben, ansonsten entstehen nur unnötige Unterschiede, die sich negativ auf den Patch auswirken.
Tip: Die Option "-r" erreicht bei manchen Patches wesentlich bessere Ergebnisse, wenn von der zu erzeugenden Datei bekannt ist, daß sie Redundanzen (Teile treten in ähnlicher Form auf) enthält, die in den alten Daten noch nicht drin waren. Das Erzeugen und insbesondere das Anwenden der Patches wird dadurch zwar langsamer, aber es kann sich sehr lohnen. Eine Anwendung hierfür ist z.B. das Patchen von ZConnect-Puffern. Viele Puffer enthalten Nachrichten und Antworten darauf. Das kann GenPatch -r mit anschliessendem Packen besser als ein Packer allein ausnutzen.
Tip: Wenn sie Texte patchen wollen, dann verwenden sie die beiden Optionen -c250 und -l2000, die das Standardverhalten von GenPatch modifizieren. Normalerweise ist GenPatch nämlich auf EXE Dateien optimiert, was derzeit -c20 und -l245 entspricht. Das bedeutet im wesentlichen, daß GenPatch sein Verhalten lokaler optimiert, was bei Texten aber garnicht nötig ist, im Gegenteil sogar schädlich ist.
Unter DOS oder im DOS-Fenster kann es bei sehr großen Dateien vorkommen, daß GenPatch sich mit dem Hinweis beendet, daß leider nicht genug Speicher vorhanden sei und Sie die DPMI-Einstellungen überprüfen sollten. Eine Lösung hierfür finden sie in den Tips oben.
Dateien grösser als 2 Gigabyte bearbeitet BinPatch leider nicht,
was allerdings noch nicht genau überprüft wurde. ;-)
Beim Abbruch mit STRG-C bleibt eine "angefangene" Patchdatei stehen. Das
DoPatch kann damit aber nicht umgehen. Ab der 1.05 ist dieses Problem zumindest
beim GenPatch für DOS/Windows3.1 und Linux behoben. Ab 1.8 habe ich
es für Linux wieder einführen müssen, weil die Routine vermutlich
die "coredumps" (unten) hervorrief.
Alle Versionen von DoPatch sind auch für den parallelen Betrieb geeignet, eine Ausnahme stellt das DoPatch für DOS dar. Nutzen sie stattdessen das DoPatch für andere Plattformen.
Für die Linux Version 1.05/6/7 wurde gemeldet, daß GenPatch nach jedem erzeugten Patch einen "coredump" liefert. Die erzeugten Patches sind aber ohne Probleme anwendbar. Ab 1.8 sollte das Problem behoben sein.
Das Datum für Einbettungen wird in den Versionen 1.7 und 1.8 nicht gesetzt, nur gepatchte Dateien erhalten das Datum des Originals.
DOS/Windows 3.1: Keine.
Windows 95/NT: Keine, aber DoPatch für Windows95/NT erfordert bei Win95 den GUI-Modus. Benutzen sie DoPatch für DOS, wenn Sie Patches im MS-DOS Modus anwenden möchten.
Linux: Momentan ist Linux die einzige unterstützte Plattform, die bei Dateinamen die Gross/Kleinschreibung unterscheidet. Das kann zu Problemen führen, wenn mit dem GenPatch einer anderen Plattform erzeugte Patches durch das DoPatch für Linux angewenden. Erzeugen Sie Verzeichnis-Patches mit GenPatch für Linux bis das Problem behoben ist.
OS/2: Keine, nur beachten Sie bitte, daß GenPatch unter OS/2 noch nicht richtig mit STRG-C umgeht und eine unvollständige Patchdatei nicht löscht.
Wenn Sie nur DoPatch anwenden, dann fragen Sie bitte den Ersteller des Patches! Kein verantwortungsvoller Autor wird Patches rausgeben, die er nicht selbst getestet hat.
Wenn sie einen vermeintlichen Fehler in GenPatch oder DoPatch gefunden haben, dann lesen sie bitte unbedingt vorher die Kapitel "Besonderheiten je Plattform" und "Mögliche Probleme", um zu sehen, ob es sich um ein bekanntes Problem handelt. Dann schauen sie bitte vorher in einer der Bezugsquellen nach, ob das Problem in einer neueren Version behoben ist.
Dann versuchen sie bitte zunächst das Problem zu reproduzieren.
Bei zu patchenden Verzeichnissen entfernen sie alle Dateien, die nicht
nötig sind, um das Problem zu reproduzieren. Sofern der Fehler bei einer
einzelnen Datei auftritt, versuchen Sie bitte auch, einen Dateipatch genau
dieser Datei zu machen und sehen sie, ob das Problem auch dort auftritt.
Sofern möglich versuchen sie bitte auch die Versionen anderer Plattformen,
um zu sehen, on das Problem nur für eine Plattform besteht. Toll wäre
auch, wenn sie ältere Versionen von BinPatch ausprobieren könnten,
ob das Problem da schon bestanden hat.
Dann versuchen Sie bitte ein Mail an mich zu fomulieren, die folgende Punkte beinhaltet:
Schicken sie diese Mail an <bugreport@kayhayen.com> und wählen sie den Betreff "Bugreport BinPatch Vx.xx", so daß es mir ist, eine Vorsortierung zu machen. Die binären Dateien schicken sie BITTE NICHT gleich mit. Wenn es dazu Grund gibt, werde ich Sie dazu auffordern. Die registrierten Benutzer mögen selbst abwägen, ob ihr Anliegen wirklich dringend ist. In der Regel wird das Zusenden der Binärdateien aber nicht nötig sein, zumal Sie mit schneller Antwort von mir rechnen können.
Mein genereller Dank gilt in ersten Linie meinem Bruder Andree, der mir über seine Site Edition das Tor zum Internet geöffnet hat. Sein brüderlicher Rat hat mir oft geholfen und mich vor mancher Dummheit bewahrt.
Außerdem seien DJ Delorie und Eli Zaretski gedankt. Ihnen verdanke ich viel Support was 'djgpp' einem GNU-Port des gcc für DOS angeht.
Mein Dank auch an den hilfsbereiter Übersetzer Roger Malin, der mir bei der Übersetzung von BinPatch in das Französische hilft.
Und last but not least geht ein Danke an alle Betatester und Kunden von BinPatch, sehr viele guten Ideen in BinPatch, habe ich ihren Anregungen entnommen: Ich habe hier diejenigen unter Ihnen mit besonders großer Hilfsbereitschaft in alphabetischer Reihenfolge aufgezählt:
Viel Spaß beim Ausprobieren!
Gruß, Kay Hayen
PS: Für Hinweise auf Defizite oder Verbesserungen im Inhalt, Layout oder HTML-Code dieser Doku bin ich mehr als dankbar!
Ausführbare Patches: Normalerweise ist zum Anwenden von Patches ein spez. Programm names DoPatch nötig. Anders bei ausführbaren Patches. Diese müssen als Programme nur gestartet werden und aktualisieren dann die vorhandenen Daten. Diese Patches enthalten quasi selbst ein DoPatch und sind daher auch größer als Patches, die nicht ausführbar sind.
BinPatch: Bezeichnet das Programmpaket zum Erzeugen und Anwenden von Patches. Manchmal werden auch die erzeugten UTP-Dateien BinPatch(es) genannt.
Compiler: Ein Programm, das von Entwicklern genutzt wird, um Programme zu erzeugen. Normalerweise geben sie einem Programm gewissen Standard-Funktionalität mit, die bei allen Programmen, die den gleichen Compiler nutzen, vorhanden sind.
DoPatch: Bezeichnet das Programm zum Anwenden von Patches, Teil von BinPatch.
DPMI: Methode mit der DOS-Programme auf mehr Speicher zugreifen können als DOS früher einmal vorgesehen hatte. Jedes DOS-Fenster von Windows oder OS/2 hat einen sog. DPMI-Server auf den die DOS-Programme zugreifen können und genau das macht auch GenPatch für DOS/Windows 3.1.
GenPatch: Bezeichnet das Programm zum Erzeugen von Patches, Teil von BinPatch.
Lange Dateinamen: So werden die mit Windows 95 eingeführten Dateinamen genannt, die nichtmehr den Konventionen von DOS 6 und davor genügen müssen. Insbesondere dürfen Dateinamen länger als 8 Zeichen sein, mehr als einen Punkt enthalten und danach auch mehr als 3 Zeichen. Nur DoPatch für Windows 95/NT kann diese Dateinamen bearbeiten und nur GenPatch für NT kann unter NT diese Dateinamen bearbeiten.
Multipatch: Für gewöhnlich werden Patches für eine bekannte Quelle auf ein festgelegtes Ziel erzeugt. Beim Multipatch handelt es sich um Patches, die mehr als eine Quelle auf ein Ziel aktualisieren können. Damit lassen sich dann z.B. 1.0a und 1.0b mit dem gleichen Patch zur 1.1 aktualisieren.
Patch(datei): Eine Datei (bei BinPatch eine mit der Endung ".UTP", daher auch UTP-Datei genannt) mit der es möglich ist aus einer älteren Version einer Datei eine neuere Version zu erstellen. Bei BinPatch kann ein Patch sich auf eine gesamten Verzeichnis mitsamt Unterverzeichnissen beziehen.
Redundanz: So wird es genannt, wenn Information sich in gleicher Weise wiederholt. Für BinPatch ist auch z.B. auch ein zitierten Newsartikel redundant, weil BinPatch kleine Abweichungen gut kompensiert. Solche Redundanzen werden auch von modernen Packern nicht erkannt, wohl aber von GenPatch, wenn Sie die Option "-r" aktivieren.
Overhead: Anteil eines Programmes, der eigentlich keine Funktion hat, aber aus technischen Gründen dennoch im Programm enthalten ist.
Dies ist Seite http://www.kayhayen.com/binpatch/liesmich.htm
Copyright © 1997 Kay Hayen. Letzte Änderungen 25.10.1997. Alle erwähnten Namen und Warenzeichen sind Eigentum der jeweiligen Firmen. Verantwortlich ist webmaster@kayhayen.com, Kay Hayen Software, Hamburger Ch.114, 24113 Kiel - Germany.