Archive: can lzma compress files individually rather than compress ALL


can lzma compress files individually rather than compress ALL
Basically it comes down to the temp space requirement.
bzip requires 2x the output size to install - half of that is used for temp files.
lzma is the same.

The other plain style compression seems to compress and extract each file individually meaning that only the total + the size of the largest file is needed in the worst case.
That one is much easier for large installs. There are many users that struggle to find 2gig free which means we ended up having to trade download size for temp usage. 40mb extra to download (540mb) but it didnt require much overhead in temp space.

I am hoping there's a way to enable lzma to compress each file individually and then add it to the install archive. imho there should be a minimal loss of compression and minimal overheads without the requirement for 2x install size free.

I'd appreciate you guys consider this.


LZMA gives the best results when using solid compression. However, you can recompile NSIS without solid compression for LZMA (see config.h).


Thanks, however I am not exactly comfortable with recompiling the exe.

Is there a possibility for a future build to have this function?

Say :
SetCompressor lzmafull ; requires 1x the total output size for temp space - all files are bundled and then compressed as a whole
Or,
SetCompressor lzmasafe ; loses a bit of compression for lower temp requirements - each file is individually compressed and THEN archived


I'd really appreciate, and I'm sure others would, if you could do something similar to this. I wouldnt expect much more than a 5% loss of compression using the individual option


That is a planned feature. But you shouldn't worry about recompiling as long as you follow the exact instructions in the documentation.

As for the %5 precent loss, I wouldn't count on it being that low...


Thanks :)