17/11/2000 I have removed the tarball of squid 2.4dev3 from this site. Use squid 2.4 snapshots from http://www.squid-cache.org. The instructions on this page are still valid however.

22/10/2000 Breaking news: The cygwin patches are now part of squid 2.4 HEAD cvs version. This means you will be able to build squid 2.4 out of the box on cygwin 1.1.4 and above without any blocking issues.

I will be summarising the info on page and moving it to the squid documentation at some point. 


This port of Squid 2.4 to Cygwin is based on Squid 2.4Dev3. You can download the latest and greatest changes via anonymous CVS, see http://squid.sourceforge.net for more information. I am providing a tarball snapshot of the source, as the CVS branch may not always run stably (it is a development branch!)

To use this you must have cygwin 1.1.3 or greater, with bind installed and a valid /etc/resolv.conf file. Bind is used for it's name resolver. The windows native name resolver may work, but I have not tested squid without bind present. I suggest you use your local DNS server or your ISP's. If you are on a dial-up link, squid will not start unless you are connected or you disable the DNS resolver tests. Cygwin 1.1.3 is required for bugfixes in functions squid depends on. Without Cygwin 1.1.3 you will be unable to: launch squid from explorer or a shortcut or run in Daemon mode. 

You should be able to run squid with this on any Windows 32-bit platform, including windows 95, 98, NT 4 and windows 2000. If you have any problems with a given platform, be sure to let me know via the mailing list.

You will need perl, and may need autoconf & autoheader to successfully configure and make squid on your system. 

There are links from the Cygwin site to ports of both Bind and perl. I got a rpm's of autoconf and autoheader from Rebums' excellent Cygwin RPM collection - http://cygwin.cjb.net. If you download the CVS code you will need CVS, sharutils, and gettext. CVS was on Rebums site, and sharutils and gettext ran out of the box from the gnu source.

You will need /etc/group and /etc/passwd and /etc/resolv.conf present on your system.

The instructions below are for the CVS source.

  1. Check out the cygwin branch of squid.
  2. run autoconf
  3. run autoheader
  4. follow the tarball instructions from step 3

The instructions below are for the tarball :

  1. download squid-cygwin.tar.gz
  2. Extract squid wherever you want to build it. use the cygwin tar not winzip, as tar understands posix paths.
  3. run ./configure. I have tested delay-pools but not any of the other optional modules (yet). (feedback wanted!)
  4. make
  5. make install
  6. the default install location is /usr/local/squid. edit /usr/local/squid/etc/squid.conf for your site. See the Squid FAQ if this is new to you.
  7. you can now run squid. If you want it to launch as a service when the machine is booted see these notes.

CVS code status:

This is the status of the version obtainable via CVS. 

Module Caveats Plans
All Stackdumps occur when running in daemon mode, AND squid exits w/error very quickly. Looks like a memory overwrite issue in cygwin.

Not seen in normal operation

Unable to reproduce.
Client_Persistent_connections Occasionally squid paused, and the client doesn't see any data until a signal is sent. Observed with ie5 and 5.5, with and w/out http1.1 thru proxy turned on. Use client_persistent_connections off.  Workaround committed to CVS. Looking into the root cause in cygwin so the workaround can be removed.
Plain install Works with no errors. No known problems other than the ALL issue above.  
AIO this needs pthread_cond_t which is not present in cygwin (yet). investigate coding around this/implement for cygwin. Some reports for other thread dependent applications on cygwin mention success with GNU portable threads. YMMV
Delay pools, CARP, SNMP, HTCP, cache-digests no know problems  
lru, heap  no known problems  
AUFS See AIO. Other than that it should be fine.  
DISKD CYGIPC package needed (see sources.redhat.com/cygwin - related sites). Some errors during compile. In theory it should work, investigating
UFS no known problems  
Pinger Makefile doesn't have the .exe extension Fixed in CVS
Pinger ICMP packets not being sent properly Under investigation
use poll untested, but cygwin has poll so it _should_ work Working.



Please provide any feedback either to me: (the email has been obfuscated to fool spam email-grabbing web crawlers).. replace at with @ and dot with . < robert.collins at itdomain dot com dot au> or via the squid-users mailing list (you can subscribe from http://www.squid-cache.org/mailing-lists.html)
Your best bet is the mailing list. The list is there to help with general squid issues, and any cygwin-specific ones, I will pick up from there, usually on the same day.