This is a patch against the compressloop implementation at http://projects.openoffice.nl/downloads/compressloop/

(I use this because it doesn't need huge amounts of RAM, since you can specify the image size in advance.)

For some reason, atoi() and atol() don't like numbers greater than 2^31. (Most likely because they assume signed results???)

As a result, compressloop is limited to a maximum input image size of 2^31 (2 gigs) instead of the 2^32 (4 gigs) limit of a long.

I'm sure the best way to fix this would be to replace atoi(), but it's 1:34 AM and I want to compress UT2k3 now, so my patch to the utilities is as follows:

Code:
diff cloop/compressloop.c cloop-sectorpatch/compressloop.c
74a75
> fprintf(stderr, "\t-s sectors\t\tset number of 2048-byte sectors instead of image size in bytes\n");
105a107
>       unsigned long imagesec;
111c113
<       while ((optionchar=getopt(argc,argv,"b:i:I:c:Fv"))!=-1) {
---
>       while ((optionchar=getopt(argc,argv,"b:s:i:I:c:Fv"))!=-1) {
119a122,125
>                               break;
>                       case 's':
>                               imagesec=atoi(optarg);
>                               imagesize=imagesec*2048;
This allows you to set the input image size in 2048-byte sectors. This gets around the atoi() limitation, and also makes compressloop easier to use in scripts with mkisofs -q -print-size