[izpack-users] Having install.jar independant from packages content

Hal Vaughan hal at thresholddigital.com
Wed Oct 11 16:03:07 CEST 2006


On Wednesday 11 October 2006 07:32, Frederic Lapeyre wrote:
> Hello,
>
> I am a new IzPack user and really like it!
>
> I have a need that I cannot find covered by the current IzPack
> functionalities: to install packs dynamically without the need to
> recompile the install.jar file when packs change.
>
> Why? Because I have frequent update to the content of the packages
> and they are quite large files. So I was thinking that if I have both
> the "web" and the "loose" functionality combined, that would seem to
> work perfectly. Without the loose option, install.jar would have to
> be recompiled every time a package changes. And without the web
> option, users would have to download the installer and the packages
> rather than just the installer, which defeats the purpose of having
> an installer!

I have a similar situation and the way I handle it might help you.  I 
use a few other tools on Linux to take care of this.  I believe I 
actually posted a question close to yours a while back.

I have a program that has to install itself, RealVNC, and OpenOffice 
(unless OpenOffice is already installed).  That means I have one HUGE 
pack to install.  I also have to upload the web install files to my web 
site so my clients can, at any time they need to, download and 
re-install.  My storage space on the web site is limited AND my 
Internet provider, who brags about download speeds, allows slower 
upload speeds, so it takes hours to upload an install file to my web 
site.  If I change a line of code in my program, that means re-building 
the installs for each client (both web and standard), then re-uploading 
ALL the files to the web site, which could literally take well over a 
day. (And, btw, due to passwords and encryption, which is a feature 
I'll contribute once we get the SimpleConfig added in, each client has 
to have a different install build.)

I solved that by creating a master installer.  Then when I add a new 
client, I create a new install for them, which, as I said, is huge.  
Uploading it is just impractical.  I wrote a Perl script that will 
compare the installer for a client to the master installer (which means 
comparing the install.jar and the packs).  It uses rdiff and produces 
delta files, which are quite small, that record the changes between my 
master install setup and that client's install setup.  Then I upload 
the delta files to the website.  When a client needs their installer, a 
Perl script on the website uses the master install and the delta files 
for that client to rebuild their install files, which takes, usually, 
less than 10 seconds.

When I change a line or two in my source and recompile, it's not enough 
to seriously effect the size of the delta files, so I can do a number 
of changes before I have to rebuild the master and all the client delta 
files.  When I have to do that, and upload the master, it takes a few 
hours, but then all the delta files are uploaded quickly.

This still means you have to take time to rebuild with each change, but 
it's possible, since file size seems to be an issue (not the worst, but 
an issue), you might be able to use delta files to store the changes 
until there are so many changes it forces a new "master" install 
rebuild.

Hal



More information about the izpack-users mailing list