tWin32 installer now uses libbz2 rather than libz for compression. - vaccinewars - be a doctor and try to vaccinate the world
 (HTM) git clone git://src.adamsgaard.dk/vaccinewars
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 8b171504a7e2a3cee902c6e438424b9524f12836
 (DIR) parent 3521db4a721ef8de4665a2a4e6382b0fb8c24991
 (HTM) Author: Ben Webb <ben@salilab.org>
       Date:   Wed, 18 Sep 2002 10:15:41 +0000
       
       Win32 installer now uses libbz2 rather than libz for compression.
       
       
       Diffstat:
         M win32/Makefile                      |      10 +++++-----
         A win32/bzlib/Makefile.nocygwin       |      33 +++++++++++++++++++++++++++++++
         A win32/bzlib/README.bzlib            |       6 ++++++
         M win32/makeinstall.c                 |      63 ++++++++++++++++---------------
         M win32/setup.c                       |      70 ++++++++++++++++---------------
         M win32/setup.rc                      |       2 +-
         D win32/zlib/Makefile.nocygwin        |     155 -------------------------------
         D win32/zlib/README.zlib              |       6 ------
       
       8 files changed, 115 insertions(+), 230 deletions(-)
       ---
 (DIR) diff --git a/win32/Makefile b/win32/Makefile
       t@@ -2,10 +2,10 @@ all: setup makeinstall uninstall
        
        clean:
                /bin/rm -f *.o *.res uninstall.exe setup.exe makeinstall.exe core *~
       -        /bin/rm -f installfiles.gz manifest
       +        /bin/rm -f installfiles.bz2 manifest
        
        setup: setup.o util.o guifunc.o setup.res
       -        gcc -Wall -mno-cygwin -mwindows -o setup setup.o util.o guifunc.o setup.res zlib/libz.a -lcomctl32 -lole32 -luuid
       +        gcc -Wall -mno-cygwin -mwindows -o setup setup.o util.o guifunc.o setup.res bzlib/libbz2.a -lcomctl32 -lole32 -luuid
                strip setup.exe
        
        uninstall: uninstall.o util.o guifunc.o uninstall.res
       t@@ -27,7 +27,7 @@ util.o: util.c util.h
        guifunc.o: guifunc.c guifunc.h
                gcc -Wall -mno-cygwin -c guifunc.c
        
       -manifest installfiles.gz: filelist makeinstall uninstall
       +manifest installfiles.bz2: filelist makeinstall uninstall
                sed -e 's/LICENCE/licence.txt/' < ../doc/index.html > index.html
                sed -e 's/LICENCE/licence.txt/' < ../doc/developer.html > developer.html
                sed -e 's/example-cfg/example-cfg.txt/' < ../doc/configfile.html > configfile.html
       t@@ -38,11 +38,11 @@ manifest installfiles.gz: filelist makeinstall uninstall
                /bin/rm -f index.html configfile.html developer.html licence.txt
                /bin/rm -f example-cfg.txt readme.txt
        
       -setup.res: setup.rc dialogs.rc contid.h manifest installfiles.gz
       +setup.res: setup.rc dialogs.rc contid.h manifest installfiles.bz2
                windres -O coff -o setup.res setup.rc
        
        makeinstall: makeinstall.o util.o
       -        gcc -Wall -mno-cygwin -o makeinstall makeinstall.o util.o zlib/libz.a
       +        gcc -Wall -mno-cygwin -o makeinstall makeinstall.o util.o bzlib/libbz2.a
        
        makeinstall.o: makeinstall.c util.h
                gcc -Wall -mno-cygwin -c makeinstall.c
 (DIR) diff --git a/win32/bzlib/Makefile.nocygwin b/win32/bzlib/Makefile.nocygwin
       t@@ -0,0 +1,33 @@
       +
       +SHELL=/bin/sh
       +
       +# To assist in cross-compiling
       +CC=gcc
       +AR=ar
       +RANLIB=ranlib
       +LDFLAGS=
       +
       +# Suitably paranoid flags to avoid bugs in gcc-2.7
       +BIGFILES=-D_FILE_OFFSET_BITS=64
       +CFLAGS=-mno-cygwin -Wall -Winline -O2 -fomit-frame-pointer -fno-strength-reduce -DBZ_NO_STDIO $(BIGFILES)
       +
       +# Where you want it installed when you do 'make install'
       +PREFIX=/usr
       +
       +
       +OBJS= blocksort.o  \
       +      huffman.o    \
       +      crctable.o   \
       +      randtable.o  \
       +      compress.o   \
       +      decompress.o \
       +      bzlib.o
       +
       +libbz2.a: $(OBJS)
       +        rm -f libbz2.a
       +        $(AR) cq libbz2.a $(OBJS)
       +        @if ( test -f $(RANLIB) -o -f /usr/bin/ranlib -o \
       +                -f /bin/ranlib -o -f /usr/ccs/bin/ranlib ) ; then \
       +                echo $(RANLIB) libbz2.a ; \
       +                $(RANLIB) libbz2.a ; \
       +        fi
 (DIR) diff --git a/win32/bzlib/README.bzlib b/win32/bzlib/README.bzlib
       t@@ -0,0 +1,6 @@
       +If you are intending to build the Win32 installer for dopewars, then place
       +the bzlib distribution into this directory. The installer expects to
       +statically link with the file libbz2.a in this directory; the libbz2.a file
       +included in the Cygwin distribution should _not_ be used, as this requires
       +the CYGWIN.DLL file, which is not a standard Windows DLL. Use the
       +Makefile.nocygwin file to compile bzlib, as this adds in the -mno-cygwin flag.
 (DIR) diff --git a/win32/makeinstall.c b/win32/makeinstall.c
       t@@ -23,7 +23,7 @@
        #include <windows.h>
        #include <stdio.h>
        #include <stdlib.h>
       -#include "zlib/zlib.h"
       +#include "bzlib/bzlib.h"
        #include "util.h"
        
        char *read_line(HANDLE hin)
       t@@ -166,7 +166,7 @@ InstData *ReadInstallData()
        }
        
        #define BUFFER_SIZE (32*1024)
       -#define COMPRESSION Z_BEST_COMPRESSION
       +#define COMPRESSION 9
        
        void OpenNextFile(InstFiles *filelist, InstFiles **listpt, HANDLE *fin)
        {
       t@@ -203,23 +203,23 @@ int main()
          char *inbuf, *outbuf;
          int status, count;
          bstr *str;
       -  z_stream z;
       +  bz_stream bz;
        
          idata = ReadInstallData();
        
       -  fout = CreateFile("installfiles.gz", GENERIC_WRITE, 0, NULL,
       +  fout = CreateFile("installfiles.bz2", GENERIC_WRITE, 0, NULL,
                            CREATE_ALWAYS, 0, NULL);
        
          outbuf = bmalloc(BUFFER_SIZE);
          inbuf = bmalloc(BUFFER_SIZE);
        
       -  z.zalloc = Z_NULL;
       -  z.zfree = Z_NULL;
       -  z.opaque = Z_NULL;
       -  deflateInit(&z, COMPRESSION);
       -  z.avail_in = 0;
       -  z.next_out = outbuf;
       -  z.avail_out = BUFFER_SIZE;
       +  bz.bzalloc = NULL;
       +  bz.bzfree = NULL;
       +  bz.opaque = NULL;
       +  BZ2_bzCompressInit(&bz, COMPRESSION, 0, 30);
       +  bz.avail_in = 0;
       +  bz.next_out = outbuf;
       +  bz.avail_out = BUFFER_SIZE;
        
          filept = NULL;
          fin = NULL;
       t@@ -229,8 +229,8 @@ int main()
          }
        
          while (fin != INVALID_HANDLE_VALUE) {
       -    if (z.avail_in == 0) {
       -      z.next_in = inbuf;
       +    if (bz.avail_in == 0) {
       +      bz.next_in = inbuf;
              bytes_read = 0;
              while (!bytes_read && fin) {
                if (!ReadFile(fin, inbuf, BUFFER_SIZE, &bytes_read, NULL)) {
       t@@ -241,29 +241,27 @@ int main()
                if (!bytes_read)
                  OpenNextFile(idata->instfiles, &filept, &fin);
              }
       -      z.avail_in = bytes_read;
       +      bz.avail_in = bytes_read;
            }
       -    if (z.avail_in == 0) {
       -      status = deflate(&z, Z_FINISH);
       -      count = BUFFER_SIZE - z.avail_out;
       -      if (!WriteFile(fout, outbuf, count, &bytes_written, NULL)) {
       -        printf("Write error\n");
       -      }
       -      break;
       -    }
       -    status = deflate(&z, Z_NO_FLUSH);
       -    count = BUFFER_SIZE - z.avail_out;
       +    status = BZ2_bzCompress(&bz, bz.avail_in == 0 ? BZ_FINISH : BZ_RUN);
       +    count = BUFFER_SIZE - bz.avail_out;
            if (!WriteFile(fout, outbuf, count, &bytes_written, NULL)) {
              printf("Write error\n");
            }
       -    z.next_out = outbuf;
       -    z.avail_out = BUFFER_SIZE;
       +    bz.next_out = outbuf;
       +    bz.avail_out = BUFFER_SIZE;
       +    if (status == BZ_STREAM_END) {
       +      break;
       +    } else if (status != BZ_RUN_OK && status != BZ_FINISH_OK) {
       +      printf("Unexpected bzlib status: %d\n", status);
       +      break;
       +    }
          }
        
       -  printf("Written compressed data: raw %lu, compressed %lu\n",
       -         z.total_in, z.total_out);
       -  bytes_written = z.total_out;
       -  deflateEnd(&z);
       +  printf("Written compressed data: raw %d, compressed %d\n",
       +         bz.total_in_lo32, bz.total_out_lo32);
       +  bytes_written = bz.total_out_lo32;
       +  BZ2_bzCompressEnd(&bz);
        
          CloseHandle(fout);
        
       t@@ -310,3 +308,8 @@ int main()
        
          return 0;
        }
       +
       +void bz_internal_error(int errcode)
       +{
       +  printf("bzip error %d\n", errcode);
       +}
 (DIR) diff --git a/win32/setup.c b/win32/setup.c
       t@@ -25,7 +25,7 @@
        #include <stdio.h>
        #include <stdlib.h>
        #include <string.h>
       -#include "zlib/zlib.h"
       +#include "bzlib/bzlib.h"
        #include <shlobj.h>
        
        #include "contid.h"
       t@@ -429,7 +429,7 @@ char *GetFirstFile(InstFiles *filelist, DWORD totalsize)
          DWORD bufsiz;
          char *inbuf, *outbuf;
          int status;
       -  z_stream z;
       +  bz_stream bz;
        
          if (!filelist)
            return NULL;
       t@@ -441,22 +441,22 @@ char *GetFirstFile(InstFiles *filelist, DWORD totalsize)
          bufsiz = filelist->filesize;
          outbuf = bmalloc(bufsiz + 1);
        
       -  z.zalloc = Z_NULL;
       -  z.zfree = Z_NULL;
       -  z.opaque = Z_NULL;
       -  z.next_in = inbuf;
       -  z.avail_in = totalsize;
       +  bz.bzalloc = NULL;
       +  bz.bzfree = NULL;
       +  bz.opaque = NULL;
       +  bz.next_in = inbuf;
       +  bz.avail_in = totalsize;
        
       -  inflateInit(&z);
       -  z.next_out = outbuf;
       -  z.avail_out = bufsiz;
       +  BZ2_bzDecompressInit(&bz, 0, 0);
       +  bz.next_out = outbuf;
       +  bz.avail_out = bufsiz;
        
          while (1) {
       -    status = inflate(&z, Z_SYNC_FLUSH);
       -    if ((status != Z_OK && status != Z_STREAM_END) || z.avail_out == 0)
       +    status = BZ2_bzDecompress(&bz);
       +    if ((status != BZ_OK && status != BZ_STREAM_END) || bz.avail_out == 0)
              break;
          }
       -  inflateEnd(&z);
       +  BZ2_bzDecompressEnd(&bz);
        
          outbuf[bufsiz] = '\0';
          return outbuf;
       t@@ -827,7 +827,7 @@ DWORD WINAPI DoInstall(LPVOID lpParam)
          BOOL skipfile, service_installed;
          char *inbuf, *outbuf;
          int status, count;
       -  z_stream z;
       +  bz_stream bz;
          InstFiles *listpt;
          InstData *oldidata;
        
       t@@ -877,28 +877,28 @@ DWORD WINAPI DoInstall(LPVOID lpParam)
        
          outbuf = bmalloc(BUFFER_SIZE);
        
       -  z.zalloc = Z_NULL;
       -  z.zfree = Z_NULL;
       -  z.opaque = Z_NULL;
       -  z.next_in = inbuf;
       -  z.avail_in = idata->totalsize;
       +  bz.bzalloc = NULL;
       +  bz.bzfree = NULL;
       +  bz.opaque = NULL;
       +  bz.next_in = inbuf;
       +  bz.avail_in = idata->totalsize;
        
       -  inflateInit(&z);
       -  z.next_out = outbuf;
       -  z.avail_out = BUFFER_SIZE;
       +  BZ2_bzDecompressInit(&bz, 0, 0);
       +  bz.next_out = outbuf;
       +  bz.avail_out = BUFFER_SIZE;
        
          while (1) {
       -    status = inflate(&z, Z_SYNC_FLUSH);
       -    if (status == Z_OK || status == Z_STREAM_END) {
       -      count = BUFFER_SIZE - z.avail_out;
       -      z.next_out = outbuf;
       +    status = BZ2_bzDecompress(&bz);
       +    if (status == BZ_OK || status == BZ_STREAM_END) {
       +      count = BUFFER_SIZE - bz.avail_out;
       +      bz.next_out = outbuf;
              while (count >= fileleft) {
                if (fileleft && !skipfile
       -            && !WriteFile(fout, z.next_out, fileleft, &bytes_written, NULL)) {
       +            && !WriteFile(fout, bz.next_out, fileleft, &bytes_written, NULL)) {
                  printf("Write error\n");
                }
                count -= fileleft;
       -        z.next_out += fileleft;
       +        bz.next_out += fileleft;
                if (!OpenNextOutput(&fout, idata->instfiles, idata->keepfiles,
                                    &listpt, &fileleft, logf, &skipfile))
                  break;
       t@@ -906,18 +906,18 @@ DWORD WINAPI DoInstall(LPVOID lpParam)
              if (fout == INVALID_HANDLE_VALUE)
                break;
              if (count && !skipfile
       -          && !WriteFile(fout, z.next_out, count, &bytes_written, NULL)) {
       +          && !WriteFile(fout, bz.next_out, count, &bytes_written, NULL)) {
                printf("Write error\n");
              }
              fileleft -= count;
       -      z.next_out = outbuf;
       -      z.avail_out = BUFFER_SIZE;
       +      bz.next_out = outbuf;
       +      bz.avail_out = BUFFER_SIZE;
            }
       -    if (status != Z_OK)
       +    if (status != BZ_OK)
              break;
          }
        
       -  inflateEnd(&z);
       +  BZ2_bzDecompressEnd(&bz);
          if (!skipfile)
            CloseHandle(fout);
        
       t@@ -1174,3 +1174,7 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
        
          return 0;
        }
       +
       +void bz_internal_error(int errcode)
       +{
       +}
 (DIR) diff --git a/win32/setup.rc b/win32/setup.rc
       t@@ -3,6 +3,6 @@
        1   24        "setup.manifest"
        
        0   INSTLIST  "manifest"
       -1   INSTFILE  "installfiles.gz"
       +1   INSTFILE  "installfiles.bz2"
        
        #include "dialogs.rc"
 (DIR) diff --git a/win32/zlib/Makefile.nocygwin b/win32/zlib/Makefile.nocygwin
       t@@ -1,155 +0,0 @@
       -# Makefile for zlib
       -# Copyright (C) 1995-1998 Jean-loup Gailly.
       -# For conditions of distribution and use, see copyright notice in zlib.h 
       -
       -# To compile and test, type:
       -#   ./configure; make test
       -# The call of configure is optional if you don't have special requirements
       -# If you wish to build zlib as a shared library, use: ./configure -s
       -
       -# To install /usr/local/lib/libz.* and /usr/local/include/zlib.h, type:
       -#    make install
       -# To install in $HOME instead of /usr/local, use:
       -#    make install prefix=$HOME
       -
       -CC=gcc -mno-cygwin
       -
       -CFLAGS=-O
       -#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
       -#CFLAGS=-g -DDEBUG
       -#CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
       -#           -Wstrict-prototypes -Wmissing-prototypes
       -
       -LDFLAGS=-L. -lz
       -LDSHARED=$(CC)
       -CPP=$(CC) -E
       -
       -VER=1.1.3
       -LIBS=libz.a
       -SHAREDLIB=libz.so
       -
       -AR=ar rc
       -RANLIB=ranlib
       -TAR=tar
       -SHELL=/bin/sh
       -
       -prefix = /usr/local
       -exec_prefix = ${prefix}
       -libdir = ${exec_prefix}/lib
       -includedir = ${prefix}/include
       -
       -OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \
       -       zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o
       -
       -OBJA =
       -# to use the asm code: make OBJA=match.o
       -
       -DISTFILES = README FAQ INDEX ChangeLog configure Make*[a-z0-9] *.[ch] *.mms \
       -  algorithm.txt zlib.3 msdos/Make*[a-z0-9] msdos/zlib.def msdos/zlib.rc \
       -  nt/Make*[a-z0-9] nt/zlib.dnt amiga/Make*.??? os2/M*.os2 os2/zlib.def \
       -  contrib/RE*.contrib contrib/*.txt contrib/asm386/*.asm contrib/asm386/*.c \
       -  contrib/asm386/*.bat contrib/asm386/zlibvc.d?? contrib/asm[56]86/*.?86 \
       -  contrib/asm[56]86/*.S contrib/iostream/*.cpp \
       -  contrib/iostream/*.h  contrib/iostream2/*.h contrib/iostream2/*.cpp \
       -  contrib/untgz/Makefile contrib/untgz/*.c contrib/untgz/*.w32 \
       -  contrib/minizip/[CM]*[pe] contrib/minizip/*.[ch] contrib/minizip/*.[td]?? \
       -  contrib/delphi*/*.???
       -
       -all: libz.a
       -
       -libz.a: $(OBJS) $(OBJA)
       -        $(AR) $@ $(OBJS) $(OBJA)
       -        -@ ($(RANLIB) $@ || true) >/dev/null 2>&1
       -
       -match.o: match.S
       -        $(CPP) match.S > _match.s
       -        $(CC) -c _match.s
       -        mv _match.o match.o
       -        rm -f _match.s
       -
       -$(SHAREDLIB).$(VER): $(OBJS)
       -        $(LDSHARED) -o $@ $(OBJS)
       -        rm -f $(SHAREDLIB) $(SHAREDLIB).1
       -        ln -s $@ $(SHAREDLIB)
       -        ln -s $@ $(SHAREDLIB).1
       -
       -install: $(LIBS)
       -        -@if [ ! -d $(includedir)  ]; then mkdir $(includedir); fi
       -        -@if [ ! -d $(libdir) ]; then mkdir $(libdir); fi
       -        cp zlib.h zconf.h $(includedir)
       -        chmod 644 $(includedir)/zlib.h $(includedir)/zconf.h
       -        cp $(LIBS) $(libdir)
       -        cd $(libdir); chmod 755 $(LIBS)
       -        -@(cd $(libdir); $(RANLIB) libz.a || true) >/dev/null 2>&1
       -        cd $(libdir); if test -f $(SHAREDLIB).$(VER); then \
       -          rm -f $(SHAREDLIB) $(SHAREDLIB).1; \
       -          ln -s $(SHAREDLIB).$(VER) $(SHAREDLIB); \
       -          ln -s $(SHAREDLIB).$(VER) $(SHAREDLIB).1; \
       -          (ldconfig || true)  >/dev/null 2>&1; \
       -        fi
       -# The ranlib in install is needed on NeXTSTEP which checks file times
       -# ldconfig is for Linux
       -
       -uninstall:
       -        cd $(includedir); \
       -        v=$(VER); \
       -        if test -f zlib.h; then \
       -          v=`sed -n '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`; \
       -          rm -f zlib.h zconf.h; \
       -        fi; \
       -        cd $(libdir); rm -f libz.a; \
       -        if test -f $(SHAREDLIB).$$v; then \
       -          rm -f $(SHAREDLIB).$$v $(SHAREDLIB) $(SHAREDLIB).1; \
       -        fi
       -
       -clean:
       -        rm -f *.o *~ libz.a libz.so* foo.gz so_locations \
       -           _match.s maketree
       -
       -distclean:        clean
       -
       -zip:
       -        mv Makefile Makefile~; cp -p Makefile.in Makefile
       -        rm -f test.c ztest*.c contrib/minizip/test.zip
       -        v=`sed -n -e 's/\.//g' -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\
       -        zip -ul9 zlib$$v $(DISTFILES)
       -        mv Makefile~ Makefile
       -
       -dist:
       -        mv Makefile Makefile~; cp -p Makefile.in Makefile
       -        rm -f test.c ztest*.c contrib/minizip/test.zip
       -        d=zlib-`sed -n '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\
       -        rm -f $$d.tar.gz; \
       -        if test ! -d ../$$d; then rm -f ../$$d; ln -s `pwd` ../$$d; fi; \
       -        files=""; \
       -        for f in $(DISTFILES); do files="$$files $$d/$$f"; done; \
       -        cd ..; \
       -        GZIP=-9 $(TAR) chofz $$d/$$d.tar.gz $$files; \
       -        if test ! -d $$d; then rm -f $$d; fi
       -        mv Makefile~ Makefile
       -
       -tags:        
       -        etags *.[ch]
       -
       -depend:
       -        makedepend -- $(CFLAGS) -- *.[ch]
       -
       -# DO NOT DELETE THIS LINE -- make depend depends on it.
       -
       -adler32.o: zlib.h zconf.h
       -compress.o: zlib.h zconf.h
       -crc32.o: zlib.h zconf.h
       -deflate.o: deflate.h zutil.h zlib.h zconf.h
       -gzio.o: zutil.h zlib.h zconf.h
       -infblock.o: infblock.h inftrees.h infcodes.h infutil.h zutil.h zlib.h zconf.h
       -infcodes.o: zutil.h zlib.h zconf.h
       -infcodes.o: inftrees.h infblock.h infcodes.h infutil.h inffast.h
       -inffast.o: zutil.h zlib.h zconf.h inftrees.h
       -inffast.o: infblock.h infcodes.h infutil.h inffast.h
       -inflate.o: zutil.h zlib.h zconf.h infblock.h
       -inftrees.o: zutil.h zlib.h zconf.h inftrees.h
       -infutil.o: zutil.h zlib.h zconf.h infblock.h inftrees.h infcodes.h infutil.h
       -minigzip.o:  zlib.h zconf.h 
       -trees.o: deflate.h zutil.h zlib.h zconf.h trees.h
       -uncompr.o: zlib.h zconf.h
       -zutil.o: zutil.h zlib.h zconf.h  
 (DIR) diff --git a/win32/zlib/README.zlib b/win32/zlib/README.zlib
       t@@ -1,6 +0,0 @@
       -If you are intending to build the Win32 installer for dopewars, then place
       -the zlib distribution into this directory. The installer expects to
       -statically link with the file libz.a in this directory; the libz.a file
       -included in the Cygwin distribution should _not_ be used, as this requires
       -the CYGWIN.DLL file, which is not a standard Windows DLL. Use the
       -Makefile.nocygwin file to compile zlib, as this adds in the -mno-cygwin flag.