How to create patches for executables?

This forum can be used to talk about general design strategies, new ideas and questions in general related to wxWidgets. If you feel your questions doesn't fit anywhere, put it here.
Post Reply
JamesPlock
In need of some credit
In need of some credit
Posts: 9
Joined: Tue Aug 09, 2005 5:55 pm
Location: The Netherlands

How to create patches for executables?

Post by JamesPlock »

Hello,
my question refers a little bit to the 'What tools do you use'-topic: How do you deploy updates of your software? When I e.g. change just a spelling error I don't want to distribute the large executable. Can you recommend a cheap or free tool (perhaps with some remarks of your experiences) that creates patches? Or do you know other/better ways?

Thanks,
James
toxicBunny
Super wx Problem Solver
Super wx Problem Solver
Posts: 424
Joined: Tue Jul 12, 2005 8:44 pm
Location: Alabama, USA

Re: How to create patches for executables?

Post by toxicBunny »

JamesPlock wrote:Hello,
my question refers a little bit to the 'What tools do you use'-topic: How do you deploy updates of your software? When I e.g. change just a spelling error I don't want to distribute the large executable. Can you recommend a cheap or free tool (perhaps with some remarks of your experiences) that creates patches? Or do you know other/better ways?

Thanks,
James
Well, it all depends on which platform you're targeting and how you distribute your application. I generally work on Windows so all the information I have is related to Windows installations.

First, there is always WindowsInstaller. As horibble as it is to work with at times, it can create binary patches for an installation so that only the changes are included.

Second, there are the tools built on WindowsInstaller such as InstallShield. You can create a patch with InstallShield, but once you include all of the additional InstallShield files you'll still be distributing a patch that's several megabytes. Of course, this depends on your distribution format.

Third, I remember reading that a patch utility was created for use with the NSIS installer. It could create a binary patch of a single file and then use this to modify the original file on the user's computer. Of course, you had to create a patch for each file that was modified and write the code to update all of them with the installer.

Generally, I find it easier to use InnoSetup and simply release a new installation instead of worrying about patches. Installs for most of my apps have only been a few megabytes so it's not much to worry about.

-Scott
upCASE
Moderator
Moderator
Posts: 3176
Joined: Mon Aug 30, 2004 6:55 am
Location: Germany, Cologne

Post by upCASE »

Hi!
Codefusion is a simple to use patch generator. http://www.softpedia.com/get/Programmin ... sion.shtml
OS: OpenSuSE, Ubuntu, Win XP Pro
wx: svn
Compiler: gcc 4.5.1, VC 2008, eVC 4

"If it was hard to write it should be hard to read..." - the unknown coder
"Try not! Do. Or do not. There is no try." - Yoda
ssigala
Earned some good credits
Earned some good credits
Posts: 109
Joined: Fri Sep 03, 2004 9:30 am
Location: Brescia, Italy

Re: How to create patches for executables?

Post by ssigala »

JamesPlock wrote:Hello,
my question refers a little bit to the 'What tools do you use'-topic: How do you deploy updates of your software? When I e.g. change just a spelling error I don't want to distribute the large executable. Can you recommend a cheap or free tool (perhaps with some remarks of your experiences) that creates patches? Or do you know other/better ways?
A binary diff-patching tool can be xdelta:

http://xdelta.org/

It comes with a command line tool and it provides also a zlib-like API.

Writing an interface (or simply a batch file) should not be difficult...
Sandro Sigala - Kynosoft, Brescia
Post Reply