[Varnish] #840: Varnish on Cygwin-Windows Platform

Varnish varnish-bugs at varnish-cache.org
Tue Dec 28 02:17:08 CET 2010

#840: Varnish on Cygwin-Windows Platform
 Reporter:  jdzst            |        Type:  enhancement
   Status:  new              |    Priority:  normal     
Milestone:                   |   Component:  build      
  Version:  trunk            |    Severity:  normal     
 Keywords:  cygwin, windows  |  
 I have been working last weeks improving varnish support of cygwin
 (windows) platform. [[BR]]
 Software version numbers are Cygwin 1.7.7(0.230/5/3) over Windows XP SP3
 and varnish-trunk SVN 5661M

 Al my previous modifications for Cygwin support are explained in:
 [http://www.varnish-cache.org/trac/ticket/736 Ticket 736]

 After some changes and bugfixes in varnish, all regression tests works
 There are three minor issues in some tests:
    - '''c00005.vtc''' test fails because there is a IPv6 address "::" in
 VCL that it is not supported by Cygwin in Windows XP. c00005.vtc works OK
 removing the IPv6 address and testing only IPv4. Perhaps in Windows Vista
 it will work: [http://www.cygwin.com/cygwin-ug-net/ov-new1.7.html]
    - '''m00002.vtc''' tests some random functions (drand48). The test
 checks the value returned for srand48 seed=1. In Cygwin after some fixes,
 the random numbers works OK, but their values are diferent than test
 expected for Unix systems.
    - '''s00002.vtc''' (Check grace with sick backends). The test does not
 works properly, but if we use the revision 4554 instead newer 5412, it
 works ok.

 There are also new improvements:
    - VMOD functionality that exists in svn trunk is added to Cygwin
    - Windows paths "c:\path, c:/path, \\machine\path" now are allowed in
 configuration parameters, only for Cygwin Builds. This allows to launch
 Varnish from Windows cmd.exe, outside Cygwin bash environment (using the
 Cygwin DLL)
    - It is possible to compile against windows native PDCurses
 ([http://pdcurses.sourceforge.net/]) instead Cygwin Ncurses 10. PDCurses
 programs can be used in Windows cmd.exe shell and Cygwin bash. NCurses 10
 library only works inside Cygwin bash environment.

 After all this modifications, I am able to compile a Varnish-cygwin
 version that is linked against the following libraries:
    - '''cygwin1.dll :''' Cygwin main library
    - '''pdcurses.dll :''' PDCurses windows32 '''native''' library
    - '''pcre3.dll :''' Pcre for windows '''native''' library
    - '''Varnish own libraries:''' cygvarnish-1.dll, cygvarnishapi-1.dll,
 cygvarnishcompat-1.dll, cygvcl-1.dll
    - '''Windows own libraries:''' kernel32.dll, msvcrt.dll, ntdll.dll,
 GDI32.dll, etc...

 This minimal subset of DLL allows us to get rid of all the BIG cygwin
 installation and only install the proper '''cygwin1.dll''', our natives
 DLL (curses, pcre, varnish) and a reduced copy of a GCC installation in
 order to compile VCL.

 I have prepared a ZIP file with a complete Cygwin-Windows Varnish
 enviroment. It is a compressed ZIP of 5 Mb and does not need any previous
 software installation. It is stored in a sourceforge project:

 In the future I think it will be possible to make a source rewrite and
 replace in Windows all the Unix functions that now are managed by
 Cygwin1.dll. In that case, Cygwin could be used as only a Build plataform,
 using automake, make, gcc and others that will produce a native win32
 program but this changes will be expensive.

Ticket URL: <http://www.varnish-cache.org/trac/ticket/840>
Varnish <http://varnish-cache.org/>
The Varnish HTTP Accelerator

More information about the varnish-bugs mailing list