[Privoxy-devel] new windows build system

Lee ler762 at gmail.com
Sat Apr 30 18:04:17 UTC 2016


On 4/30/16, Fabian Keil <fk at fabiankeil.de> wrote:
> Lee <ler762 at gmail.com> wrote:
>
>> On 4/28/16, Fabian Keil <fk at fabiankeil.de> wrote:
>> > Lee <ler762 at gmail.com> wrote:
>> >
>> >> I've been working on getting Privoxy to build under the current
>> >> cygwin, which requires a 'cross-compiler toolchain'.  The autoconf
>> >> stuff in privoxy is so old that it doesn't support --host & --build so
>> >> how do you feel about replacing config.guess & config.sub with
>> >> current/later versions?  What I've been using is
>> >>
>> >> http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=blob_plain;f=build-aux/config.guess;hb=refs/heads/master
>> >>
>> >> http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=blob_plain;f=build-aux/config.sub;hb=refs/heads/master
>> >>
>> >
>> > We're currently using the last revisions that were licensed under
>> > GPLv2 or later. The current versions are licensed under GPLv3 or
>> > later and while there is an exception, it does not apply to Privoxy
>> > (according to my interpretation) because we don't ship files generated
>> > by autoconf.
>>
>> My understanding is the bit about "it does not include the work's
>> System Libraries, or general-purpose tools or generally available free
>> programs which are used unmodified" allows using the latest version of
>> autoconf and/or individual autoconf files since it's a generally
>> available free program that's being used unmodified.  But I'm not a
>> lawyer, so my understanding isn't worth beans..
>>
>> > Hopefully that's just an oversight.
>> >
>> > I've contacted the FSF to ask if they can change the wording of the
>> > exception so it covers Privoxy as well.
>>
>> I'd be surprised if they changed the wording of the GPL.  I wouldn't
>> expect more than an additional FAQ entry to clarify matters.  In any
>> case, please let me know their answer.
>
> I didn't request a change of the GPL itself, but a change of the
> exception they added for config.sub and config.guess. From the header:
>
> # As a special exception to the GNU General Public License, if you
> # distribute this file as part of a program that contains a
> # configuration script generated by Autoconf, you may include it under
> # the same distribution terms that you use for the rest of that
> # program.  This Exception is an additional permission under section 7
> # of the GNU General Public License, version 3 ("GPLv3").

Oops.  I missed that bit

>> >> and replacing AC_CANONICAL_HOST with AC_CANONICAL_SYSTEM in
>> >> configure.in
>> >
>> > Did you try adding AC_CANONICAL_SYSTEM without removing
>> > AC_CANONICAL_HOST?
>>
>> I don't remember if I tried it after updating config.guess &
>> config.sub or not.  And it turns out I shouldn't be using
>> AC_CANONICAL_SYSTEM anyway - see
>> https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Obsolete-Macros.html
>>
>> *sigh* I need to keep better notes.  What I added was
>> AC_CONFIG_HEADER([config.h])
>> dnl LR * AC_CANONICAL_HOST
>> dnl LR * ac-canonical-host does not set up a compiler toolchain
>> dnl LR * as in, it does not support cross-compiling???
>>
>> and I don't remember where I got the idea it doesn't set up a compiler
>> toolchain.
>
> Does this mean the autoconf goo works as is?

Yes - see attached.  I've had too much weirdness with make not
realizing something needs to be done that I did this from the 3.0.24
source tarball to make sure there were no "leftovers" from previous
attempts.

For whatever it's worth, I'm _positive_ the cross-compiler build
didn't work until I updated config.guess & config.sub; dunno what
changed so that it works now.  *sigh*

& I guess it's not relevant now, but take a look at
https://www.gnu.org/software/autoconf/manual/autoconf-2.66/html_node/Canonicalizing.html#Canonicalizing

A cross-compiler toolchain doesn't "need to recognize some special
environments based on their system type" ??

>> >> Any suggestions on privoxy-regression-test.pl parameters for testing
>> >> this thing?  I'm a bit surprised it even works at all, but it hasn't
>> >> crashed yet & old vs. new test results for
>> >> privoxy-regression-test.pl --max-level 200  --privoxy-address
>> >> 127.0.0.1:8118
>> >
>> > The parameters seem reasonable, but I'm not sure I understand the
>> > question.
>>
>> I don't have much confidence in software built on guesses & cargo-cult
>> programming (which is what I did).  So I'd like to use
>> privoxy-regression-test.pl to check as much as I can.  hrmm.. yes, I
>> should have said that before asking for suggestions on which
>> parameters to use.  Sorry :(
>
> You could additionally use the --forks and --shuffle-tests which
> may reveal thread-related issues, but there is no option to
> specifically test cross-compiled builds.

OK - I'll try it with --max-level 999 and keep on bumping --forks
until I hit a system limit or it takes over an hour to complete.

Thanks,
Lee
-------------- next part --------------
--- winsetup dir changes

- GNUmakefile

change
$(SOURCE)/config.h: $(SOURCE)/configure $(SOURCE)/config.h.in
        cd $(SOURCE) && ./configure --enable-mingw32 --disable-pthread --disable-dynamic-pcre --enable-zlib

to
$(SOURCE)/config.h: $(SOURCE)/configure $(SOURCE)/config.h.in
        cd $(SOURCE) && ./configure --enable-mingw32 --disable-pthread --disable-dynamic-pcre --enable-zlib --enable-strptime-sanity-checks --build=i686-pc-cygwin --host=i686-w64-mingw32




--- current dir changes

- configure.in

remove -mno-cygwin from SPECIAL_CFLAGS

change PTHREAD_LIB to -lpthread


I don't want to include libwinpthread-1.dll & zlib1.dll in the distribution, so
- edit GNUmakefile.in
and add -static to LIBS
LIBS         = @LIBS@ $(W32_LIB) $(SOCKET_LIB) $(PTHREAD_LIB) -static



==== build log ====================================================================

/source/privoxy-3.0.24/winsetup
$ make
cd ../current && autoconf
cd ../current && autoheader
autoheader-2.69: WARNING: Using auxiliary files such as `acconfig.h', `config.h.bot'
autoheader-2.69: WARNING: and `config.h.top', to define templates for `config.h.in'
autoheader-2.69: WARNING: is deprecated and discouraged.
autoheader-2.69:
autoheader-2.69: WARNING: Using the third argument of `AC_DEFINE' and
autoheader-2.69: WARNING: `AC_DEFINE_UNQUOTED' allows one to define a template without
autoheader-2.69: WARNING: `acconfig.h':
autoheader-2.69:
autoheader-2.69: WARNING:   AC_DEFINE([NEED_FUNC_MAIN], 1,
autoheader-2.69:                [Define if a function `main' is needed.])
autoheader-2.69:
autoheader-2.69: WARNING: More sophisticated templates can also be produced, see the
autoheader-2.69: WARNING: documentation.
cd ../current && ./configure --enable-mingw32 --disable-pthread --disable-dynamic-pcre --enable-zlib --enable-strptime-sanity-checks --build=i686-pc-cygwin --host=i686-w64-mingw32
checking build system type... i686-pc-cygwin
checking host system type... i686-w64-mingw32
checking for i686-w64-mingw32-gcc... i686-w64-mingw32-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether i686-w64-mingw32-gcc accepts -g... yes
checking for i686-w64-mingw32-gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... i686-w64-mingw32-gcc -E
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking whether make sets $(MAKE)... yes
checking for gawk... awk
checking for gdb... yes
checking for groups... /usr/bin/groups
checking for id... /usr/bin/id
configure: WARNING: There is no user 'privoxy' on this system
checking for user... none specified
checking for group... none specified
Using mingw32 (Win32 GUI)
checking for rpm... no
checking for jade... jade
checking for man2html... no
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
configure: WARNING: pthreads seem to be available but you are using --disable-pthread.
configure: WARNING: This is almost always a mistake and can render Privoxy unacceptable slow.
Using native threads
checking for gethostbyname in -lnsl... no
checking for gethostbyaddr_r... no
no
checking for gethostbyname_r... no
no
checking for gmtime_r... no
no
checking for localtime_r... no
no
checking for socklen_t... no
checking for ANSI C header files... (cached) yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for an ANSI C-conforming const... yes
checking for size_t... yes
checking for pid_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking size of int... 4
checking size of char *... 4
checking size of long... 4
checking size of long long... 8
checking size of size_t... 4
checking OS.h usability... no
checking OS.h presence... no
checking for OS.h... no
checking arpa/inet.h usability... no
checking arpa/inet.h presence... no
checking for arpa/inet.h... no
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking netdb.h usability... no
checking netdb.h presence... no
checking for netdb.h... no
checking netinet/in.h usability... no
checking netinet/in.h presence... no
checking for netinet/in.h... no
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/ioctl.h usability... no
checking sys/ioctl.h presence... no
checking for sys/ioctl.h... no
checking sys/socket.h usability... no
checking sys/socket.h presence... no
checking for sys/socket.h... no
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/timeb.h usability... yes
checking sys/timeb.h presence... yes
checking for sys/timeb.h... yes
checking sys/wait.h usability... no
checking sys/wait.h presence... no
checking for sys/wait.h... no
checking for unistd.h... (cached) yes
checking for bcopy... no
checking whether i686-w64-mingw32-gcc needs -traditional... no
checking return type of signal handlers... void
checking for access... yes
checking for atexit... yes
checking for getcwd... yes
checking for gethostbyaddr... no
checking for gethostbyaddr_r... (cached) no
checking for gethostbyname... no
checking for gethostbyname_r... (cached) no
checking for gettimeofday... yes
checking for inet_ntoa... no
checking for memchr... yes
checking for memmove... yes
checking for memset... yes
checking for poll... no
checking for putenv... yes
checking for random... no
checking for regcomp... no
checking for select... no
checking for setlocale... yes
checking for shutdown... no
checking for snprintf... yes
checking for socket... no
checking for strchr... yes
checking for strdup... yes
checking for strerror... yes
checking for strftime... yes
checking for strlcat... no
checking for strlcpy... no
checking for strptime... no
checking for strtoul... yes
checking for timegm... no
checking for tzset... yes
checking for main in -lws2_32... yes
checking getaddrinfo in ws2_32...
checking getnameinfo in ws2_32...
checking for pcre_compile in -lpcre... no
checking for regcomp in -lpcreposix... no
checking for zlibVersion in -lz... yes
configure: WARNING: You are using the static PCRE code which is out of date and scheduled for removal, for details see:
    http://sourceforge.net/mailarchive/forum.php?thread_name=20080511195555.2dc6cfdc%40fabiankeil.de&forum_name=ijbswa-developers
Enabling connection-sharing support.
configure: creating ./config.status
config.status: creating GNUmakefile
config.status: creating doc/source/ldp.dsl
config.status: creating config.h
cd ../current && make clean
make[1]: Entering directory '/source/privoxy-3.0.24/current'
rm -f a.out actions.o cgi.o cgiedit.o cgisimple.o deanimate.o encode.o errlog.o filters.o gateway.o jbsockets.o jcc.o list.o loadcfg.o loaders.o miscutil.o parsers.o ssplit.o urlmatch.o w32log.o w32taskbar.o win32.o w32svrapi.o w32.res pcrs.o pcre/get.o pcre/maketables.o pcre/study.o pcre/pcre.o pcre/pcreposix.o w32.res config.txt trust.txt privoxy.exe default.action \
        config.base config.tmp \
        `find . \( -name TAGS -o -name tags \) -and -not -path "./.git/refs/tags"` \
        `find . -name "*.orig" -a -not -name rc.privoxy.orig`
make[1]: Leaving directory '/source/privoxy-3.0.24/current'
cd ../current && make
make[1]: Entering directory '/source/privoxy-3.0.24/current'
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  actions.c -o actions.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  cgi.c -o cgi.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  cgiedit.c -o cgiedit.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  cgisimple.c -o cgisimple.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  deanimate.c -o deanimate.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  encode.c -o encode.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  errlog.c -o errlog.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  filters.c -o filters.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  gateway.c -o gateway.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  jbsockets.c -o jbsockets.o
jbsockets.c: In function 'set_no_delay_flag':
jbsockets.c:143:49: warning: passing argument 4 of 'setsockopt' from incompatible pointer type
    if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &mi, sizeof(int)))
                                                 ^
In file included from /usr/i686-w64-mingw32/sys-root/mingw/include/windows.h:92:0,
                 from jbsockets.c:53:
/usr/i686-w64-mingw32/sys-root/mingw/include/winsock.h:303:34: note: expected 'const char *' but argument is of type 'int *'
   WINSOCK_API_LINKAGE int WSAAPI setsockopt(SOCKET s,int level,int optname,const char *optval,int optlen);
                                  ^
jbsockets.c: In function 'accept_connection':
jbsockets.c:1310:55: warning: passing argument 4 of 'setsockopt' from incompatible pointer type
       if (0 != setsockopt(afd, SOL_SOCKET, SO_LINGER, &linger_options, sizeof(linger_options)))
                                                       ^
In file included from /usr/i686-w64-mingw32/sys-root/mingw/include/windows.h:92:0,
                 from jbsockets.c:53:
/usr/i686-w64-mingw32/sys-root/mingw/include/winsock.h:303:34: note: expected 'const char *' but argument is of type 'struct linger *'
   WINSOCK_API_LINKAGE int WSAAPI setsockopt(SOCKET s,int level,int optname,const char *optval,int optlen);
                                  ^
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  jcc.c -o jcc.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  list.c -o list.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  loadcfg.c -o loadcfg.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  loaders.c -o loaders.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  miscutil.c -o miscutil.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  parsers.c -o parsers.o
In file included from parsers.c:90:0:
strptime.h: In function 'strptime_internal':
strptime.h:538:7: warning: suggest explicit braces to avoid ambiguous 'else' [-Wparentheses]
    if (!match_string (HERE_AM_STR, rp))
       ^
strptime.h:277:21: warning: variable 'era' set but not used [-Wunused-but-set-variable]
   struct era_entry *era;
                     ^
strptime.h:265:15: warning: variable 'rp_backup' set but not used [-Wunused-but-set-variable]
   const char *rp_backup;
               ^
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  ssplit.c -o ssplit.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  urlmatch.c -o urlmatch.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  w32log.c -o w32log.o
In file included from w32log.c:60:0:
cygwin.h:43:0: warning: "_RICHEDIT_VER" redefined
 #define _RICHEDIT_VER 0x0300
 ^
In file included from w32log.c:45:0:
/usr/i686-w64-mingw32/sys-root/mingw/include/richedit.h:23:0: note: this is the location of the previous definition
 #define _RICHEDIT_VER 0x0800
 ^
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  w32taskbar.c -o w32taskbar.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  win32.c -o win32.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  w32svrapi.c -o w32svrapi.o
windres -D__MINGW32__=0.2 -O coff -i w32.rc -o w32.res
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  pcrs.c -o pcrs.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  pcre/get.c -o pcre/get.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  pcre/maketables.c -o pcre/maketables.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  pcre/study.c -o pcre/study.o
pcre/study.c: In function 'set_start_bits':
pcre/study.c:98:14: warning: variable 'dummy' set but not used [-Wunused-but-set-variable]
 volatile int dummy;
              ^
i686-w64-mingw32-gcc -o pcre/dftables.exe -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre pcre/dftables.c
pcre/dftables.exe >pcre/chartables.c
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  pcre/pcre.c -o pcre/pcre.o
i686-w64-mingw32-gcc -c -pipe -O2 -DWINVER=0x501   -mwindows -Wall -Ipcre  pcre/pcreposix.c -o pcre/pcreposix.o
i686-w64-mingw32-gcc  -mwindows -o privoxy.exe actions.o cgi.o cgiedit.o cgisimple.o deanimate.o encode.o errlog.o filters.o gateway.o jbsockets.o jcc.o list.o loadcfg.o loaders.o miscutil.o parsers.o ssplit.o urlmatch.o w32log.o w32taskbar.o win32.o w32svrapi.o w32.res pcrs.o pcre/get.o pcre/maketables.o pcre/study.o pcre/pcre.o pcre/pcreposix.o -lws2_32  -lz -lwsock32 -lcomctl32   -static
grep -v '^#MASTER#' default.action.master > default.action
make[1]: Leaving directory '/source/privoxy-3.0.24/current'
cp /bin/mgwz.dll ./build
chmod u+rwx ./build/mgwz.dll
strip -o build/privoxy.exe ../current/privoxy.exe
sed -e $'s,$,\r,' < ../current/default.action > build/default.action
cp -r ../current/doc/webserver/developer-manual ./build/doc
cp -r ../current/doc/webserver/faq ./build/doc
cp -r ../current/doc/webserver/images ./build/doc
cp ../current/doc/webserver/p_doc.css ./build/doc
cp ../current/doc/webserver/p_doc.css ./build/doc/user-manual/
./nsis/nsis-2.30.exe privoxy_winthreads.nsi
MakeNSIS v2.30 - Copyright 1995-2007 Contributors
See the file COPYING for license details.
Credits can be found in the Users Manual.

Changing directory to: "C:\cygwin\source\privoxy-3.0.24\winsetup"

Processing script file: "privoxy_winthreads.nsi"
Processing plugin dlls: "C:\cygwin\source\privoxy-3.0.24\winsetup\nsis\Plugins\*.dll"

!include: "nsis\WinMessages.nsh"
!define: "WINMESSAGES_INCLUDED"=""
!include: closed: "nsis\WinMessages.nsh"
!define: "NL"="
"
Var: "UpdateExisting"
Name: "Privoxy"
OutFile: "privoxy_setup.exe"
BGGradient: off
SetCompress: auto
SetCompressor: /FINAL /SOLID lzma
SetDatablockOptimize: on
CRCCheck: on
AutoCloseWindow: true
ShowInstDetails: nevershow
SetDateSave: on
SetOverwrite: on
Icon: "privoxy.ico"
UninstallIcon: "uninstall_privoxy.ico"
InstallDir: "$PROGRAMFILES\Privoxy"
DirText: "Select the directory to install Privoxy in:" "" "" ""
ComponentText: "Please select how you want to start Privoxy:" "" ""
Section: ""
StrCpy $UpdateExisting "0" () ()
!insertmacro: ClosePrivoxy
FindWindow: output=$R0, class="PrivoxyLogOwner", text="" hwndparent="" hwndafter=""
IntCmpU $R0:0 equal=NoPrivoxyRunning, < 0, > 0
SendMessage:($R0,0x0010,0,0)
StrCpy $R1 "0" () ()
Sleep: 200 ms
FindWindow: output=$R0, class="PrivoxyLogOwner", text="" hwndparent="" hwndafter=""
IntCmpU $R0:0 equal=NoPrivoxyRunning, < 0, > 0
IntOp: $R1=$R1+1
IntCmp $R1:20 equal=0, < CheckWindowClosed, > 0
Sleep: 200 ms
!insertmacro: end of ClosePrivoxy
SetOutPath: "$INSTDIR"
!insertmacro: BackupOLD
!define: "UniqueID"="144.1"
IfFileExists: "$INSTDIR\config.txt" ? 0 : skip_144.1
StrCpy $UpdateExisting "1" () ()
Delete: "$INSTDIR\old_config.txt"
Rename: $INSTDIR\config.txt->$INSTDIR\old_config.txt
!undef: "UniqueID"
!insertmacro: end of BackupOLD
!insertmacro: BackupOLD
!define: "UniqueID"="145.1"
IfFileExists: "$INSTDIR\match-all.action" ? 0 : skip_145.1
StrCpy $UpdateExisting "1" () ()
Delete: "$INSTDIR\old_match-all.action"
Rename: $INSTDIR\match-all.action->$INSTDIR\old_match-all.action
!undef: "UniqueID"
!insertmacro: end of BackupOLD
!insertmacro: BackupOLD
!define: "UniqueID"="146.1"
IfFileExists: "$INSTDIR\trust.txt" ? 0 : skip_146.1
StrCpy $UpdateExisting "1" () ()
Delete: "$INSTDIR\old_trust.txt"
Rename: $INSTDIR\trust.txt->$INSTDIR\old_trust.txt
!undef: "UniqueID"
!insertmacro: end of BackupOLD
!insertmacro: KeepCur
!define: "UniqueID"="152.1"
IfFileExists: "$INSTDIR\user.action" ? 0 : new_152.1
StrCpy $UpdateExisting "1" () ()
Delete: "$INSTDIR\clean_user.action"
File: "user.action"->"clean_user.action" 8991 bytes
Goto: done_152.1
File: "user.action" 0/8991 bytes
!undef: "UniqueID"
!insertmacro: end of KeepCur
!insertmacro: KeepCur
!define: "UniqueID"="153.1"
IfFileExists: "$INSTDIR\user.filter" ? 0 : new_153.1
StrCpy $UpdateExisting "1" () ()
Delete: "$INSTDIR\clean_user.filter"
File: "user.filter"->"clean_user.filter" 3409 bytes
Goto: done_153.1
File: "user.filter" 0/3409 bytes
!undef: "UniqueID"
!insertmacro: end of KeepCur
File: "AUTHORS.txt" 3215 bytes
File: "LICENSE.txt" 18431 bytes
File: "README.txt" 14769 bytes
File: "config.txt" 64373 bytes
File: "default.action" 93356 bytes
File: "default.filter" 41327 bytes
File: "match-all.action" 643 bytes
File: "mgwz.dll" 86528 bytes
File: "privoxy.exe" 381440 bytes
File: "trust.txt" 3846 bytes
File: Descending to: "build\doc\"
File: "p_doc.css" 1656 bytes
File: Descending to: "build\doc\developer-manual\"
File: "coding.html" 52857 bytes
File: "cvs.html" 6194 bytes
File: "documentation.html" 18943 bytes
File: "index.html" 12044 bytes
File: "introduction.html" 3944 bytes
File: "newrelease.html" 44772 bytes
File: "testing.html" 4525 bytes
File: "webserver-update.html" 4346 bytes
File: Descending to: "build\doc\faq\"
File: "configuration.html" 41867 bytes
File: "contact.html" 15864 bytes
File: "copyright.html" 5831 bytes
File: "general.html" 27215 bytes
File: "index.html" 22687 bytes
File: "installation.html" 12295 bytes
File: "misc.html" 43465 bytes
File: "trouble.html" 36779 bytes
File: Descending to: "build\doc\images\"
File: "files-in-use.jpg" 16587 bytes
File: "proxy_setup.jpg" 33275 bytes
File: Descending to: "build\doc\user-manual\"
File: "actions-file.html" 198289 bytes
File: "appendix.html" 44100 bytes
File: "config.html" 115798 bytes
File: "configuration.html" 11645 bytes
File: "contact.html" 15941 bytes
File: "copyright.html" 29657 bytes
File: "files-in-use.jpg" 0/16587 bytes
File: "filter-file.html" 41964 bytes
File: "index.html" 21192 bytes
File: "installation.html" 22718 bytes
File: "introduction.html" 5414 bytes
File: "p_doc.css" 0/1656 bytes
File: "proxy2.jpg" 45431 bytes
File: "proxy_setup.jpg" 0/33275 bytes
File: "quickstart.html" 20411 bytes
File: "seealso.html" 5713 bytes
File: "startup.html" 15729 bytes
File: "templates.html" 6240 bytes
File: "whatsnew.html" 14031 bytes
File: Descending to: "build\templates\"
File: "blocked" 10087 bytes
File: "cgi-error-404" 4663 bytes
File: "cgi-error-bad-param" 5006 bytes
File: "cgi-error-disabled" 5805 bytes
File: "cgi-error-file" 4073 bytes
File: "cgi-error-file-read-only" 4551 bytes
File: "cgi-error-modified" 5079 bytes
File: "cgi-error-parse" 5194 bytes
File: "cgi-style.css" 5422 bytes
File: "connect-failed" 4692 bytes
File: "connection-timeout" 2219 bytes
File: "default" 3834 bytes
File: "edit-actions-add-url-form" 4400 bytes
File: "edit-actions-for-url" 60157 bytes
File: "edit-actions-for-url-filter" 1603 bytes
File: "edit-actions-list" 9410 bytes
File: "edit-actions-list-button" 1680 bytes
File: "edit-actions-list-section" 3339 bytes
File: "edit-actions-list-url" 2353 bytes
File: "edit-actions-remove-url-form" 4117 bytes
File: "edit-actions-url-form" 4497 bytes
File: "forwarding-failed" 5248 bytes
File: "mod-local-help" 540 bytes
File: "mod-support-and-service" 2574 bytes
File: "mod-title" 300 bytes
File: "mod-unstable-warning" 375 bytes
File: "no-server-data" 2766 bytes
File: "no-such-domain" 4785 bytes
File: "show-request" 4540 bytes
File: "show-status" 15633 bytes
File: "show-status-file" 4254 bytes
File: "show-url-info" 9814 bytes
File: "show-version" 4942 bytes
File: "toggle" 4716 bytes
File: "toggle-mini" 3635 bytes
File: "untrusted" 5794 bytes
File: "url-info-osd.xml" 696 bytes
File: Returning to: "build"
WriteRegStr: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Privoxy\DisplayName=Privoxy (remove only)
WriteRegStr: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Privoxy\UninstallString="$INSTDIR\privoxy_uninstall.exe"
WriteRegStr: HKEY_CLASSES_ROOT\PrivoxyActionFile\shell\open\command\=Notepad.exe "%1"
WriteRegStr: HKEY_CLASSES_ROOT\.action\=PrivoxyActionFile
WriteRegStr: HKEY_CLASSES_ROOT\PrivoxyFilterFile\shell\open\command\=Notepad.exe "%1"
WriteRegStr: HKEY_CLASSES_ROOT\.filter\=PrivoxyFilterFile
WriteUninstaller: "privoxy_uninstall.exe"
SectionEnd
Section: "Add to Start Menu"
SetShellVarContext: all
RMDir: /r "$SMPROGRAMS\Privoxy"
CreateDirectory: "$SMPROGRAMS\Privoxy"
CreateShortCut: "$SMPROGRAMS\Privoxy\Privoxy.lnk"->"$INSTDIR\privoxy.exe"  icon:,0, showmode=0x0, hotkey=0x0, comment=
WriteINIStr: [InternetShortcut] URL=http://config.privoxy.org/ in $SMPROGRAMS\Privoxy\Web-based Configuration.url
CreateShortCut: "$SMPROGRAMS\Privoxy\Web-based Feedback.lnk"->"$INSTDIR\doc\user-manual\contact.html"  icon:,0, showmode=0x0, hotkey=0x0, comment=
CreateDirectory: "$SMPROGRAMS\Privoxy\Edit Config"
CreateShortCut: "$SMPROGRAMS\Privoxy\Edit Config\Main Configuration.lnk"->"Notepad.exe" "$INSTDIR\config.txt" icon:,0, showmode=0x0, hotkey=0x0, comment=
CreateShortCut: "$SMPROGRAMS\Privoxy\Edit Config\Default Actions.lnk"->"Notepad.exe" "$INSTDIR\default.action" icon:,0, showmode=0x0, hotkey=0x0, comment=
CreateShortCut: "$SMPROGRAMS\Privoxy\Edit Config\User Actions.lnk"->"Notepad.exe" "$INSTDIR\user.action" icon:,0, showmode=0x0, hotkey=0x0, comment=
CreateShortCut: "$SMPROGRAMS\Privoxy\Edit Config\Filters.lnk"->"Notepad.exe" "$INSTDIR\default.filter" icon:,0, showmode=0x0, hotkey=0x0, comment=
CreateShortCut: "$SMPROGRAMS\Privoxy\Edit Config\Trust list.lnk"->"Notepad.exe" "$INSTDIR\trust.txt" icon:,0, showmode=0x0, hotkey=0x0, comment=
CreateDirectory: "$SMPROGRAMS\Privoxy\Documentation"
CreateShortCut: "$SMPROGRAMS\Privoxy\Documentation\User Manual.lnk"->"$INSTDIR\doc\user-manual\index.html"  icon:,0, showmode=0x0, hotkey=0x0, comment=
CreateShortCut: "$SMPROGRAMS\Privoxy\Documentation\Frequently Asked Questions.lnk"->"$INSTDIR\doc\faq\index.html"  icon:,0, showmode=0x0, hotkey=0x0, comment=
CreateShortCut: "$SMPROGRAMS\Privoxy\Documentation\Credits.lnk"->"Notepad.exe" "$INSTDIR\AUTHORS.txt" icon:,0, showmode=0x0, hotkey=0x0, comment=
CreateShortCut: "$SMPROGRAMS\Privoxy\Documentation\License.lnk"->"Notepad.exe" "$INSTDIR\LICENSE.txt" icon:,0, showmode=0x0, hotkey=0x0, comment=
CreateShortCut: "$SMPROGRAMS\Privoxy\Documentation\ReadMe file.lnk"->"Notepad.exe" "$INSTDIR\README.txt" icon:,0, showmode=0x0, hotkey=0x0, comment=
WriteINIStr: [InternetShortcut] URL=http://privoxy.org/ in $SMPROGRAMS\Privoxy\Documentation\Web Site.url
CreateShortCut: "$SMPROGRAMS\Privoxy\Uninstall Privoxy.lnk"->"$INSTDIR\privoxy_uninstall.exe"  icon:,0, showmode=0x0, hotkey=0x0, comment=
SectionEnd
Section: "Run automatically at startup"
CreateShortCut: "$SMSTARTUP\Privoxy.lnk"->"$INSTDIR\privoxy.exe"  icon:,0, showmode=0x7, hotkey=0x0, comment=
SectionEnd
Function: ".onInstSuccess"
IntCmp $UpdateExisting:0 equal=0, < updated, > updated
MessageBox: 36: "Privoxy has been installed.

Start Privoxy now?" (on IDYES goto execprivoxy)
Goto: done
MessageBox: 52: "Privoxy has been updated.
Don't forget to convert configuration from the 'old*' files!

Start Privoxy now?" (on IDYES goto execprivoxy)
Goto: done
SetOutPath: "$INSTDIR"
Exec: "$INSTDIR\privoxy.exe" (->)
FunctionEnd
UninstallText: "This will uninstall Privoxy from your system" ""
Section: "Uninstall"
SetShellVarContext: all
DeleteRegKey: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Privoxy
DeleteRegKey: HKEY_CLASSES_ROOT\.action
DeleteRegKey: HKEY_CLASSES_ROOT\PrivoxyActionFile
DeleteRegKey: HKEY_CLASSES_ROOT\.filter
DeleteRegKey: HKEY_CLASSES_ROOT\PrivoxyFilterFile
Delete: "$SMSTARTUP\Privoxy.lnk"
!insertmacro: ClosePrivoxy
FindWindow: output=$R0, class="PrivoxyLogOwner", text="" hwndparent="" hwndafter=""
IntCmpU $R0:0 equal=NoPrivoxyRunning, < 0, > 0
SendMessage:($R0,0x0010,0,0)
StrCpy $R1 "0" () ()
Sleep: 200 ms
FindWindow: output=$R0, class="PrivoxyLogOwner", text="" hwndparent="" hwndafter=""
IntCmpU $R0:0 equal=NoPrivoxyRunning, < 0, > 0
IntOp: $R1=$R1+1
IntCmp $R1:20 equal=0, < CheckWindowClosed, > 0
Sleep: 200 ms
!insertmacro: end of ClosePrivoxy
RMDir: /r "$SMPROGRAMS\Privoxy"
RMDir: /r "$INSTDIR"
SectionEnd

Processed 1 file, writing output:
Processing pages... Done!
Removing unused resources... Done!
Generating language tables... Done!
Generating uninstaller... Done!

Output: "C:\cygwin\source\privoxy-3.0.24\winsetup\privoxy_setup.exe"
Install: 4 pages (256 bytes), 3 sections (3144 bytes), 168 instructions (4704 bytes), 211 strings (4238 bytes), 1 language table (250 bytes).
Uninstall: 3 pages (192 bytes),
1 section (1048 bytes), 20 instructions (560 bytes), 66 strings (995 bytes), 1 language table (214 bytes).
Datablock optimizer saved 63938 bytes (~3.0%).

Using lzma (compress whole) compression.

EXE header size:               35328 / 34304 bytes
Install code:                          (12920 bytes)
Install data:                          (1962876 bytes)
Uninstall code+data:                   (5877 bytes)
Compressed data:              480071 / 1981673 bytes
CRC (0xDF235C48):                  4 / 4 bytes

Total size:                   515403 / 2015981 bytes (25.5%)

/source/privoxy-3.0.24/winsetup
$


More information about the Privoxy-devel mailing list